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