SPRUIM2H May 2020 – October 2023 AM2431 , AM2432 , AM2434 , AM6411 , AM6412 , AM6421 , AM6422 , AM6441 , AM6442
The RINGACC provides four distinct offsets to use per ring/queue shown in Table 11-486, totaling 4 KB space per ring/queue.
Secure Proxy always writes to tail, which is the offsets from 0x200 to 0x3FF. Secure Proxy always reads from the head, which is the offsets from 0x000 to 0x1FF. The latter two offsets in RINGACC are not used by this proxy. And if the proxy message size is less than 512 bytes, then it always access the upper bytes of those regions, so that the message always ends on the last byte of each region, byte 511.
Offset |
Operation |
---|---|
0x0 - 0x1FF |
Reads pop from head. Writes push to head. |
0x200 - 0x3FF |
Writes push to tail. Reads pop from tail. |
0x400 - 0x5FF |
Reads peek from head. Writes ignored. |
0x600 - 0x7FF |
Reads peek from tail. Writes ignored. |
0x800 - 0xFFF |
Reserved. |
This means that target writes will use the following calculation:
target base address + (queue × 4KB) + 0x400 - msg_size (17), and burst until offset 0x3FF.
And target reads will use the following calculation:
target base address + (queue × 4KB) + 0x200 - msg_size (18), and burst until offset 0x1FF.