Correction (see the comment below): the ID map in "Requested scope" is wrong.
XID is block-local, so the real map is 0x50 = PSI-L status, 0x51/0x52/0x53
= threads 1/2/3 - three threads, not four - and global device ID 0 remains the
MPY/MAC accelerator. Status is also two words (Table 6-108), not one.
Please implement against the corrected map, not the text below.
Gap
The XFRDMA/PSI-L bridge is absent. Its XFR device IDs are currently accepted
by the parser but have no model, so data is silently zeroed or dropped.
Requested scope
Model the first useful XFRDMA slice from AM64x/AM243x TRM SPRUIM2J section
6.4.6.3.2:
- status ID 0 exposes
rx_ready[3:0] and tx_ready[3:0];
- IDs
0x50..0x53 address PSI-L threads 0..3;
- receive reads consume an injected packet FIFO; transmit writes enqueue a
packet; full TX has the documented core-stall behavior;
- preserve thread separation and provide deterministic test injection/drain
APIs.
The shared IDs 0x58/0x59 and wider thread count can follow after this
minimal four-thread oracle has tests.
Acceptance
Green vectors cover RX readiness, RX consumption, TX enqueue, a full-TX
stall, and no cross-thread leakage. This is simulator evidence only; it does
not assert PSI-L fabric timing or hardware validation.
Gap
The XFRDMA/PSI-L bridge is absent. Its XFR device IDs are currently accepted
by the parser but have no model, so data is silently zeroed or dropped.
Requested scope
Model the first useful XFRDMA slice from AM64x/AM243x TRM SPRUIM2J section
6.4.6.3.2:
rx_ready[3:0]andtx_ready[3:0];0x50..0x53address PSI-L threads 0..3;packet; full TX has the documented core-stall behavior;
APIs.
The shared IDs
0x58/0x59and wider thread count can follow after thisminimal four-thread oracle has tests.
Acceptance
Green vectors cover RX readiness, RX consumption, TX enqueue, a full-TX
stall, and no cross-thread leakage. This is simulator evidence only; it does
not assert PSI-L fabric timing or hardware validation.