Changeset 437 for soft/giet_vm/giet_drivers/ioc_driver.h
- Timestamp:
- Nov 3, 2014, 10:53:00 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
soft/giet_vm/giet_drivers/ioc_driver.h
r413 r437 18 18 // USE_IOC_BDV, USE_IOC_SDC, USE_IOC_HBA, USE_IOC_RDK. 19 19 // 20 // Any physical block device driver xxx must provide the following API: 21 // - _xxx_init() 22 // - _xxx_read() 23 // - _xxx_write() 24 // - _xxx_get_status() 25 // - _xxx_get_block_size() 26 // The "channel" parameter is no transmited to single channel devices. 20 // Any physical block device driver must provide the 5 five functions defined 21 // by this generic driver. 27 22 // 28 23 // The _ioc_read() and _ioc_write() functions are always blocking for … … 67 62 // If the RAMDISK is used, an extra memory segment with virtual base address 68 63 // SEG_RDK_BASE, used by RDK driver, must be defined in hard_config.h. 69 ///////////////////////////////////////////////////////////////////////////////////70 // Implementation note:71 64 // 72 // 1) In order to share the code, the two _ioc_read() and _ioc_write() functions 73 // call the same _ioc_access() function. 74 // 75 // 2) The IOMMU is not supported yet, but the method is the following: 65 // The IOMMU is not supported yet, but the method is the following: 76 66 // A fixed size 2 Mbytes vseg is allocated to the IOC peripheral, in the I/O 77 67 // virtual space, and the user buffer is dynamically remapped to one single … … 103 93 104 94 /////////////////////////////////////////////////////////////////////////////////// 105 // IOC access functions (generic disk controller)95 // External functions 106 96 /////////////////////////////////////////////////////////////////////////////////// 107 97 108 98 /////////////////////////////////////////////////////////////////////////////// 109 // This function cheks block size, and desactivates the IOCinterrupts.99 // This function cheks block size, and desactivates interrupts. 110 100 // Return 0 for success, non zero if error. 111 101 /////////////////////////////////////////////////////////////////////////////// … … 113 103 114 104 /////////////////////////////////////////////////////////////////////////////// 115 // Transfer data from a memory buffer to the block device.116 // - mode : BOOT _PA / BOOT_VA/ KERNEL / USER105 // Transfer data from a memory buffer to the disk. 106 // - mode : BOOT / KERNEL / USER 117 107 // - lba : first block index on the block device 118 108 // - buffer : base address of the memory buffer (must be word aligned) … … 127 117 128 118 /////////////////////////////////////////////////////////////////////////////// 129 // Transfer data from the block deviceto a memory buffer.130 // - mode : BOOT _PA / BOOT_VA/ KERNEL / USER119 // Transfer data from the disk to a memory buffer. 120 // - mode : BOOT / KERNEL / USER 131 121 // - lba : first block index on the block device 132 122 // - buffer : base address of the memory buffer (must be word aligned) … … 142 132 /////////////////////////////////////////////////////////////////////////////// 143 133 // This function returns in the status variable, the transfert status, and 144 // acknowledge the IRQ if the IOC controler is not busy.134 // acknowledge the IRQ if required. 145 135 // Returns 0 if success, > 0 if error 146 136 ///////////////////////////////////////////////////////////////////////////////
Note: See TracChangeset
for help on using the changeset viewer.