This protocol is used by the SMMUv3AEM model to identify the SSD, StreamID, and SubStreamID of an incoming transaction. It is only used if the parameter
howto_identify is set to
identify(unsigned tbu_number_, const pv::TransactionAttributes* attributes_, bool*
out_ssd_ns_, unsigned* out_streamid_, unsigned* out_substreamid_) :
Architecturally, a transaction comes into the SMMUv3AEM model with the following side band signals:
- Security State Determination (SSD):
- Transaction belongs to a device controlled by the secure world.
- Transaction belongs to a device controlled by the non-secure world.
SubStreamID and SubStreamID valid.
If you set
*out_substreamid_ = ~0u, that is interpreted as no SubStreamID because SubStreamIDs are 20 or fewer bits.
How these are transported in the system is SoC-dependent.
The SMMUv3AEM requires that the SoC provides a way of determining this information by