Changes between Version 8 and Version 9 of Component/Vci Block Device


Ignore:
Timestamp:
Nov 11, 2009, 7:33:29 PM (14 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Component/Vci Block Device

    v8 v9  
    99 * It is acting as an initiator to do the transfer
    1010
    11 There is only one block device handled by this component, limited to 2^41^ bytes.
     11There 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.
    1212An IRQ is optionally asserted when transfer is finished.
    1313
     
    1717It contains the following memory-mapped registers:
    1818
    19  * `BLOCK_DEVICE_BUFFER` Physical address of the buffer in SoC memory
     19 * '''BLOCK_DEVICE_BUFFER''' (read/write)
     20Physical address of the source (or destination) buffer in SoC memory.
    2021
    21  * `BLOCK_DEVICE_COUNT` Count of blocks to transfer
     22 * '''BLOCK_DEVICE_COUNT''' (read/write)
     23Number of blocks to be transfered.
    2224
    23  * `BLOCK_DEVICE_LBA` Base sector for transfer
     25 * '''BLOCK_DEVICE_LBA''' (read/write)
     26Logical Base Address (index of the first block in the block device)
    2427
    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)
     29Type of operation, writing here initiates the operation.This register goes back to BLOCK_DEVICE_NOOP when operation is finished.
    2730
    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)
     32State of the transfer. Reading this register while not busy resets its value to IDLE, and acknowledge the IRQ. Value may be one of :
    2933  * `BLOCK_DEVICE_IDLE`
    3034  * `BLOCK_DEVICE_BUSY`
     
    3539  * `BLOCK_DEVICE_ERROR`
    3640
    37  * `BLOCK_DEVICE_IRQ_ENABLE` Boolean enabling the IRQ line
     41 * '''BLOCK_DEVICE_IRQ_ENABLE''' (read/write)
     42Boolean enabling the IRQ line
    3843
    39  * `BLOCK_DEVICE_SIZE` Number of blocks addressable in the controller (read-only)
     44 * '''BLOCK_DEVICE_SIZE''' (read only)
     45Number of blocks addressable in the block device
    4046
    41  * `BLOCK_DEVICE_BLOCK_SIZE` Block size (in bytes) (read-only)
     47 * '''BLOCK_DEVICE_BLOCK_SIZE''' (read only)
     48Block size (in bytes)
    4249
    4350The following operations codes are defined:
     
    4552 * `BLOCK_DEVICE_NOOP` Nothing
    4653
    47  * `BLOCK_DEVICE_READ` read()
     54 * `BLOCK_DEVICE_READ` from flock device to memory
    4855
    49  * `BLOCK_DEVICE_WRITE` write()
     56 * `BLOCK_DEVICE_WRITE` from memory to block device
    5057
    5158For extensibility issues, you should access this component using globally-defined offsets.