ARM SMMU versions 1 and 2: Difference between revisions

[unchecked revision][unchecked revision]
Content deleted Content added
Line 213:
* SMMU_IDR2.E2HS==1
 
To set a context bank to be a HYPC bank, set SMMU_CBARn.HYPC==1. ''Do not set the HYPC bit on '''secure''' context banks. See section 2.8.3 for details. Also, the SMMU_CBn_TCR2.SEP field is ignored for HYPC contexts.''.
 
Caveats:
* Do not set the HYPC bit on '''secure''' context banks. See section 2.8.3 for details.
* The SMMU_CBn_TCR2.SEP field is ignored for HYPC contexts.
 
=== Monitor Contexts (MONC) (Section 2.9) ===
 
I couldn't determine whether MONC contexts are meant for use by devices claimed specifically by Monitor Mode (EL3) or whether this bit is meant to be set by all secure mode software. The specific wording of the manual is:
Section 2.9: ''In SMMUv2, '''for a secure bank''', when the value of the corresponding SMMU_CBA2Rn.MONC bit is 1, the bank is a MONC (Secure Monitor) context bank. MONC Translation context banks are intended to be used by the Secure EL3 translation regime.''
 
The phrasing seems to support the latter of the two interpretations.
 
Caveats:
* Do not set both HYPC and MONC on any bank because that is UNPREDICTABLE.
* MONC only pertains to contexts reserved for secure mode use. Non-secure contexts ignore and treat the MONC bit as 0. Set it to 0.
* Sign extension via SMMU_CBn_TCR2.SEP is ignored for MONC banks.
 
== IRQs / SMMU Faults ==