Changes between Version 8 and Version 9 of Component/Vci Block Device
- Timestamp:
- Nov 11, 2009, 7:33:29 PM (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Component/Vci Block Device
v8 v9 9 9 * It is acting as an initiator to do the transfer 10 10 11 There is only one block device handled by this component ,limited to 2^41^ bytes.11 There is only one block device handled by this component. It can be seen as one single ''file'', that has a storage capacity limited to 2^41^ bytes. 12 12 An IRQ is optionally asserted when transfer is finished. 13 13 … … 17 17 It contains the following memory-mapped registers: 18 18 19 * `BLOCK_DEVICE_BUFFER` Physical address of the buffer in SoC memory 19 * '''BLOCK_DEVICE_BUFFER''' (read/write) 20 Physical address of the source (or destination) buffer in SoC memory. 20 21 21 * `BLOCK_DEVICE_COUNT` Count of blocks to transfer 22 * '''BLOCK_DEVICE_COUNT''' (read/write) 23 Number of blocks to be transfered. 22 24 23 * `BLOCK_DEVICE_LBA` Base sector for transfer 25 * '''BLOCK_DEVICE_LBA''' (read/write) 26 Logical Base Address (index of the first block in the block device) 24 27 25 * `BLOCK_DEVICE_OP` Type of operation, writing here initiates the operation.[[BR]]26 This register goes back to BLOCK_DEVICE_NOOP when operation is finished. (write only) 28 * '''BLOCK_DEVICE_OP''' (write only) 29 Type of operation, writing here initiates the operation.This register goes back to BLOCK_DEVICE_NOOP when operation is finished. 27 30 28 * `BLOCK_DEVICE_STATUS` State of the transfer. Reading this register while not busy resets its value to IDLE. Value may be one of 31 * '''BLOCK_DEVICE_STATUS''' (read only) 32 State of the transfer. Reading this register while not busy resets its value to IDLE, and acknowledge the IRQ. Value may be one of : 29 33 * `BLOCK_DEVICE_IDLE` 30 34 * `BLOCK_DEVICE_BUSY` … … 35 39 * `BLOCK_DEVICE_ERROR` 36 40 37 * `BLOCK_DEVICE_IRQ_ENABLE` Boolean enabling the IRQ line 41 * '''BLOCK_DEVICE_IRQ_ENABLE''' (read/write) 42 Boolean enabling the IRQ line 38 43 39 * `BLOCK_DEVICE_SIZE` Number of blocks addressable in the controller (read-only) 44 * '''BLOCK_DEVICE_SIZE''' (read only) 45 Number of blocks addressable in the block device 40 46 41 * `BLOCK_DEVICE_BLOCK_SIZE` Block size (in bytes) (read-only) 47 * '''BLOCK_DEVICE_BLOCK_SIZE''' (read only) 48 Block size (in bytes) 42 49 43 50 The following operations codes are defined: … … 45 52 * `BLOCK_DEVICE_NOOP` Nothing 46 53 47 * `BLOCK_DEVICE_READ` read()54 * `BLOCK_DEVICE_READ` from flock device to memory 48 55 49 * `BLOCK_DEVICE_WRITE` write()56 * `BLOCK_DEVICE_WRITE` from memory to block device 50 57 51 58 For extensibility issues, you should access this component using globally-defined offsets.