2.4.17 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):
    0
    Transaction belongs to a device controlled by the secure world.
    1
    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.

Non-ConfidentialPDF file icon PDF version100964_1142_00_en
Copyright © 2014–2018 Arm Limited or its affiliates. All rights reserved.