Ignore:
Timestamp:
Mar 26, 2014, 6:44:44 PM (10 years ago)
Author:
alain
Message:

Introducing a major release, to suppoort the tsar_generic_leti platform
and the various (external or internal) peripherals configurations.
The map.xml format has been modified, in order to support the new
vci_iopic componentand a new policy for peripherals initialisation.
The IRQs are nom described in the XICU and IOPIC components
(and not anymore in the processors).
To enforce this major change, the map.xml file signature changed:
The signature value must be: 0xDACE2014

This new release has been tested on the tsar_generic_leti platform
for the following mappings:

  • 4c_4p_sort_leti
  • 4c_4p_sort_leti_ext
  • 4c_4p_transpose_leti
  • 4c_4p_transpose_leti_ext
  • 4c_1p_four_leti_ext
File:
1 edited

Legend:

Unmodified
Added
Removed
  • soft/giet_vm/giet_drivers/ioc_driver.h

    r289 r295  
    1313///////////////////////////////////////////////////////////////////////////////////
    1414
    15 enum IOC_registers
    16 {
    17     BLOCK_DEVICE_BUFFER,
    18     BLOCK_DEVICE_LBA,
    19     BLOCK_DEVICE_COUNT,
    20     BLOCK_DEVICE_OP,
    21     BLOCK_DEVICE_STATUS,
    22     BLOCK_DEVICE_IRQ_ENABLE,
    23     BLOCK_DEVICE_SIZE,
    24     BLOCK_DEVICE_BLOCK_SIZE,
    25     BLOCK_DEVICE_BUFFER_EXT,
    26 };
    27 enum IOC_operations
    28 {
    29     BLOCK_DEVICE_NOOP,
    30     BLOCK_DEVICE_READ,
    31     BLOCK_DEVICE_WRITE,
    32 };
    33 enum IOC_status
    34 {
    35     BLOCK_DEVICE_IDLE,
    36     BLOCK_DEVICE_BUSY,
    37     BLOCK_DEVICE_READ_SUCCESS,
    38     BLOCK_DEVICE_WRITE_SUCCESS,
    39     BLOCK_DEVICE_READ_ERROR,
    40     BLOCK_DEVICE_WRITE_ERROR,
    41     BLOCK_DEVICE_ERROR,
    42 };
    4315enum IOC_driver_modes
    4416{
    45     IOC_BOOT_PA_MODE,  // No V2P translation / Polling IOC_STATUS / no access checking
    46     IOC_BOOT_VA_MODE,  // V2P translation    / Polling IOC_STATUS / no access checking
    47     IOC_KERNEL_MODE,   // V2P translation    / Descheduling + IRQ / no access checking
    48     IOC_USER_MODE,     // V2P translation    / Descheduling + IRQ / access checking
     17    IOC_BOOT_MODE   = 0,     //  Polling IOC_STATUS / no access right checking
     18    IOC_KERNEL_MODE = 1,     //  Descheduling + IRQ / no access right checking
     19    IOC_USER_MODE   = 2,     //  Descheduling + IRQ / access right checking
    4920};
    5021
    5122///////////////////////////////////////////////////////////////////////////////////
    52 // IOC access functions and variables (vci_block_device)
     23// IOC global variables (generic disk controller)
    5324///////////////////////////////////////////////////////////////////////////////////
    5425
    55 extern unsigned int _ioc_lock;
    56 extern unsigned int _ioc_status;
    57 extern volatile unsigned int _ioc_gtid;
    5826extern volatile unsigned int _ioc_iommu_ix1;
    5927extern volatile unsigned int _ioc_iommu_npages;
    6028
     29///////////////////////////////////////////////////////////////////////////////////
     30// IOC access functions  (generic disk controller)
     31///////////////////////////////////////////////////////////////////////////////////
     32
    6133extern unsigned int _ioc_init( unsigned int channel );
    6234
    63 extern unsigned int _ioc_write( unsigned int mode,
     35extern unsigned int _ioc_write( unsigned int channel,
     36                                unsigned int mode,
    6437                                unsigned int lba,
    6538                                const void*  buffer,
    6639                                unsigned int count );
    6740
    68 extern unsigned int _ioc_read(  unsigned int mode,
     41extern unsigned int _ioc_read(  unsigned int channel,
     42                                unsigned int mode,
    6943                                unsigned int lba,
    7044                                void*        buffer,
    7145                                unsigned int count );
    7246
    73 extern unsigned int _ioc_get_status( unsigned int  channel,
    74                                      unsigned int* status );
     47extern unsigned int _ioc_get_status( unsigned int channel );
    7548
    7649extern unsigned int _ioc_get_block_size();
Note: See TracChangeset for help on using the changeset viewer.