SPRUIM2H May 2020 – October 2023 AM2431 , AM2432 , AM2434 , AM6411 , AM6412 , AM6421 , AM6422 , AM6441 , AM6442
XFR2TR ring is used for accelerating the internal memory copy of worklist from Tranfer Requests (TR).
One XFR2TR ring is attached to each of the RTU_PRU cores. XFR2TR creates a Send list by doing a local memory copy of fixed (preconfigured) TR receive list to the Send list. This is accompished by XOUT commands to define which predefined TRs to add to the list. In this case preconfigured list and Send list are stored in PRU_ICSSG shared RAM (Data RAM2).
Supported features:
Not supported features:
RTU_PRU Register | BS ID | Access Type | Register | Notes |
---|---|---|---|---|
R6[17-0] | 0x70 | XOUT | tr_msrc_base[17-0] Needs to be mode 0x4 | Controller TR list Base Address |
R7[0] | 0x70 | XOUT | tr_size 0h: 8 Bytes 1h: 64 Bytes | Size of the TR element |
R6[17-0] | 0x71 | XOUT | tr_rsrc_base[17-0] Needs to be mode 0x40 or 0x08 Size of TR element | Ring TR list Base Address |
R7[0] | 0x71 | XOUT | Reserved | Reserved |
R7[1] | 0x71 | XOUT | tr_rscr_reset | This reset the ring pointer |
R7[19-8] | 0x71 | XOUT | tr_rsrc_nums 0 = 1 TR 4095 = 4096 TRs | The number of the TRs in the ring. This defines the Ring size, which defines the wrap around. Note: It must be larger than maximum submitted TRs. For example, XOUT of 8 TRs then, tr_rsrc_nums >= 7(8) |
R7[0] | 0x71 | XIN | tr_rsrc_busy 0h: Not Busy 1х: Busy | The busy status. It will be busy until the FIFO is empty AND the last write completed /data has landed. |
R7[11-8] | 0x71 | XIN | tr_rscr_fifo_occ 0h: empty 1h: 1 ID 2h: 2 IDs | The number of elements in the submit FIFO. |
R8[17-0] | 0x71 | XIN | tr_rsrc_wrt_ptr | This is the current Write pointer |
R5:R2 | 0x72 | XOUT | R2[11-0] = ID0[11-0] R2[27-16] = ID1[11-0] R3[11-0] = ID2[11-0] R3[27-16] = ID3[11-0] R4[11-0] = ID4[11-0] R4[27-16] = ID5[11-0] R5[11-0] = ID6[11-0] R5[27-16] = ID7[11-0] | Submit of TRs 1 to 8 IDs per XOUT Left packed ID0 ID1:0 ...... No holes or offsets |