class S2CR

Defined at line 403 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_registers.h

There may be up to 128 stream-to-context registers in the implementation, numbered

as [S2CR0 .. S2CR127]. Use Get(

<N

>) to fetch the proper index at runtime.

S2CR registers are a part of a stream match register group. Read IDR0.NUMSMRG

to determine the total number of stream match register groups in the system.

Additionally, there are 3 different encodings for the fields of the S2CR

registers, depending on the value present in "TYPE". They are:

TYPE = 0 : This is a "Translation" context.

TYPE = 1 : This entry is in "Bypass mode", no translation takes place.

TYPE = 2 : This is a "Fault" context. Any transaction that maps to this

Stream mapping group incurs an invalid context fault.

When reading, users may use the base version of the register to perform the

read and examine the type field. Afterwards, they can instantiate an

alternate definition of the register based on the type in order to access

type specific field.s

When writing, users may directly use the properly typed version, but they are

responsible for correctly populating the TYPE field. It will *not* be done

automatically.

Public Members

 field_TYPE_414

Public Methods

hwreg::RegisterAddr<S2CR> Get (uint32_t ndx)

Defined at line 412 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_registers.h

template <, >
Type TYPE ()

Defined at line 414 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_registers.h

template <, >
SelfType & set_TYPE (Type val)

Defined at line 414 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_registers.h

Enumerations

enum class Type
Name Value
kTranslation 0
kBypass 1
kFault 2
kInvalid 3

Defined at line 405 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu_registers.h

Records