To retrieve the SMID value from an AXI transaction arriving at the PS block, you insert an AXI Sideband Formatter Utility IP core between the fabric interconnect and one of the AXI fabric slave interfaces of the PS block. You then configure the IP to perform SMID extraction, again specifying the width of the SMID field to extract.
It is also acceptable to directly connect an AXI Sideband Formatter Utility IP core configured for SMID extraction to the output of another AXI Sideband Formatter Utility IP core configured for SMID insertion, if no intervening AXI interconnect is needed. (These two functions cannot be performed by the same instance of the core.)
For each AW or AR transfer, the SMID field is extracted from the low-order
aruser and the remainder (if any) is right-shifted and propagated.
The extracted SMID value is propagated as the out-bound
wid if AXI3), which is where the SMMU expects to
find the SMID.
Any in-bound value of
S_ID_WIDTH>0) is pushed into a queue to be restored during the corresponding response
During response transfers, received
bidare discarded and replaced by the saved
AW and AR command traffic gets single-threaded according to SMID (disregarding any
arid). Any transfer received while there is an outstanding transaction with a different SMID value gets stalled. This avoids any response reordering.
In AXI3, W-channel gets stalled until the corresponding AW is received so that
extracted SMID can be propagated as