Skip to content

Model XFRDMA / PSI-L thread bridge and its ready/stall semantics #27

Description

@pratheesh

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions