agent_ccc0_ccc_indirect_access_trig
This registers is the indirect access trigger. Indirect access is a mechanism that allows register-based access to the directory RAM. This can be used for testing RAM bits or reading content on an error condition.
The indirect access is based on a content+trigger mechanism. For writes, the content register is written first to accumulate the data that should be written. Once the content is ready, the trigger register is used to kick off the hardware write mechanism. For reads, the trigger register kicks off a read, and provides data by placing the result into the content registers where it can be accessed.
Each of the indirect access commands can be issued during normal operation, but the Write commands can have side-effects that break coherency functionality. The Read Raw is not disruptive, and the Read-Modify-Write can be performed atomically so single-bit errors can be introduced while maintaining functionality.
The indirect access trigger registers is readable and writeable. To trigger the RAM access, this register must be written. Reads will not have side-effects and
will only return the current value of the trigger register.
The trigger register has a number of fields that must be set correctly. The CMD field indicates which kind of indirect access to perform. The WAY field indicates
whether RAM 0 or 1 should be accessed. The RAM index indicates the entry to access within the RAM. The RAM index is a pure index, which will avoid any hashing function for WAY 1.
Module Instance | Base Address | Register Address |
---|---|---|
i_ccu_noc_registers | 0xF7000000 | 0xF7030088 |
Size: 64
Offset: 0x30088
Access: RW
Access mode: SECURE | PRIVILEGEMODE
Note: The processor must make a secure, privileged bus access to this register. You can configure processor mode settings in the control registers of the ARM Cortex-A53 MPcore processor. For more information about processor modes, please refer to the ARM Infocenter.
Bit Fields | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 | 55 | 54 | 53 | 52 | 51 | 50 | 49 | 48 |
UNSD RO 0x0 |
|||||||||||||||
47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 |
UNSD RO 0x0 |
|||||||||||||||
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
UNSD RO 0x0 |
|||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
UNSD RO 0x0 |
INDEX RW 0x0 |
WAY RW 0x0 |
CMD RW 0x0 |
agent_ccc0_ccc_indirect_access_trig Fields
Bit | Name | Description | Access | Reset |
---|---|---|---|---|
63:15 | UNSD |
-: Unused |
RO | 0x0 |
14:3 | INDEX |
|
RW | 0x0 |
2 | WAY |
|
RW | 0x0 |
1:0 | CMD |
11: Read Raw data. When triggered, a read to the directory RAM will be performed and the resulting data, without ECC correction, will be copied into the content register. 10: Write Raw Data. When triggered, the content register values will be written into the directory RAM. This will include the ECC bits if present. 01: Write Data with Generated ECC. When triggered, this will write to the RAM entry. The content register will be used to specify the data to be written. However, if ECC hardware is present, the ECC bits will be generated based on the data instead of coming from the content register. This allows a directory entry to be written with correct ECC value without needing to calculate it first. 00: Read-Modify-Write. This command will perform a specific kind of read-modify-write operation on a directory entry. It will read the content of the directory, XOR that content with the indirect content register, and write the combined value into the same directory entry. This can be used to introduce single or double bit errors into the directory to test error detection and handling. The content register will not be modified during this operation, so it can be used to introduce errors into multiple lines. |
RW | 0x0 |