You copied the Doc URL to your clipboard.

SMMUv3AEMIdentifyProtocol protocol

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 "use-identify".

identify(unsigned tbu_number_, const pv::TransactionAttributes* attributes_, bool* out_ssd_ns_, unsigned* out_streamid_, unsigned* out_substreamid_) : void

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.
  • StreamID.
  • 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 implementing the identify() function.

Was this page helpful? Yes No