feat(smmu): add SMMU root register page parameter
Add the SMMU Root register page offset as model parameter when
a run config specifies has_smmuv3_params=1 and has_rme=1.
Add the smmu generic trace for RME enabled test cases.
Refactor to use a common set of smmu model parameters for both RME and
non-RME enabled case. The only parameter difference is SMMU_IDR5
defining 48 bits physical address size for RME enabled cases.
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: Ie53f0e29f592cd1e04b42feb04148f1c018d054c
diff --git a/model/base-aemva-common.sh b/model/base-aemva-common.sh
index 1187d61..2d02364 100644
--- a/model/base-aemva-common.sh
+++ b/model/base-aemva-common.sh
@@ -195,28 +195,10 @@
EOF
if [ "$has_smmuv3_params" = "1" ]; then
-# The pci.pci_smmuv3.mmu.SMMU_IDR5
-# parameter is modified for 48 bit
-# physical address if rme is enabled.
-# Also ignores the tracing parameters.
- if [ "$has_rme" = "1" ]; then
cat <<EOF >>"$model_param_file"
-C pci.pci_smmuv3.mmu.SMMU_AIDR=2
--C pci.pci_smmuv3.mmu.SMMU_IDR0=0x0046123B
-C pci.pci_smmuv3.mmu.SMMU_IDR1=0x00600002
-C pci.pci_smmuv3.mmu.SMMU_IDR3=0x1714
--C pci.pci_smmuv3.mmu.SMMU_IDR5=0xFFFF0475
--C pci.pci_smmuv3.mmu.SMMU_S_IDR1=0xA0000002
--C pci.pci_smmuv3.mmu.SMMU_S_IDR2=0
--C pci.pci_smmuv3.mmu.SMMU_S_IDR3=0
-EOF
- else
- cat <<EOF >>"$model_param_file"
--C pci.pci_smmuv3.mmu.SMMU_AIDR=2
--C pci.pci_smmuv3.mmu.SMMU_IDR0=0x0046123B
--C pci.pci_smmuv3.mmu.SMMU_IDR1=0x00600002
--C pci.pci_smmuv3.mmu.SMMU_IDR3=0x1714
--C pci.pci_smmuv3.mmu.SMMU_IDR5=0xFFFF0472
-C pci.pci_smmuv3.mmu.SMMU_S_IDR1=0xA0000002
-C pci.pci_smmuv3.mmu.SMMU_S_IDR2=0
-C pci.pci_smmuv3.mmu.SMMU_S_IDR3=0
@@ -225,10 +207,32 @@
-C pci.tbu0_pre_smmu_logger.trace_snoops=1
-C pci.tbu0_pre_smmu_logger.trace_debug=1
-C pci.pci_smmuv3.mmu.all_error_messages_through_trace=1
-
-C TRACE.GenericTrace.trace-sources=verbose_commentary,smmu_initial_transaction,smmu_final_transaction,*.pci.pci_smmuv3.mmu.*,*.pci.smmulogger.*,*.pci.tbu0_pre_smmu_logger.*,smmu_poison_tw_data
--plugin $warehouse/SysGen/PVModelLib/$model_version/$model_build/external/plugins/$model_flavour/GenericTrace.so
EOF
+
+# If RME is implemented:
+# * pci.pci_smmuv3.mmu.SMMU_IDR5 defines 48 bit physical address size aligned
+# with the model configuration for the PE.
+# * pci.pci_smmuv3.mmu.root_register_page_offset defines the (platform
+# dependent) SMMU Root register page offset.
+# * SMMU_IDR0.RME_IMPL=1: RME features supported for non-secure and secure
+# programming interface.
+# * pci.pci_smmuv3.mmu.SMMU_ROOT_IDR0=3: ROOT_IMPL=1/BGPTM=1.
+# * pci.pci_smmuv3.mmu.SMMU_ROOT_IIDR=0x43B: JEP106 Arm implementer code.
+ if [ "$has_rme" = "1" ]; then
+ cat <<EOF >>"$model_param_file"
+-C pci.pci_smmuv3.mmu.SMMU_IDR0=0x4046123b
+-C pci.pci_smmuv3.mmu.SMMU_IDR5=0xFFFF0475
+-C pci.pci_smmuv3.mmu.SMMU_ROOT_IDR0=3
+-C pci.pci_smmuv3.mmu.SMMU_ROOT_IIDR=0x43B
+-C pci.pci_smmuv3.mmu.root_register_page_offset=0x20000
+EOF
+ else
+ cat <<EOF >>"$model_param_file"
+-C pci.pci_smmuv3.mmu.SMMU_IDR0=0x0046123B
+-C pci.pci_smmuv3.mmu.SMMU_IDR5=0xFFFF0472
+EOF
fi
fi