[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 03/12] target/arm: Disable has_el2 and has_el3 for user-only
From: |
Richard Henderson |
Subject: |
[PATCH v5 03/12] target/arm: Disable has_el2 and has_el3 for user-only |
Date: |
Fri, 28 Feb 2020 17:28:02 -0800 |
In arm_cpu_reset, we configure many system registers so that user-only
behaves as it should with a minimum of ifdefs. However, we do not set
all of the system registers as required for a cpu with EL2 and EL3.
Disabling EL2 and EL3 mean that we will not look at those registers,
which means that we don't have to worry about configuring them.
Signed-off-by: Richard Henderson <address@hidden>
---
target/arm/cpu.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/target/arm/cpu.c b/target/arm/cpu.c
index e6016e33ce..33c28fe868 100644
--- a/target/arm/cpu.c
+++ b/target/arm/cpu.c
@@ -1103,11 +1103,13 @@ static Property arm_cpu_reset_hivecs_property =
static Property arm_cpu_rvbar_property =
DEFINE_PROP_UINT64("rvbar", ARMCPU, rvbar, 0);
+#ifndef CONFIG_USER_ONLY
static Property arm_cpu_has_el2_property =
DEFINE_PROP_BOOL("has_el2", ARMCPU, has_el2, true);
static Property arm_cpu_has_el3_property =
DEFINE_PROP_BOOL("has_el3", ARMCPU, has_el3, true);
+#endif
static Property arm_cpu_cfgend_property =
DEFINE_PROP_BOOL("cfgend", ARMCPU, cfgend, false);
@@ -1222,25 +1224,25 @@ void arm_cpu_post_init(Object *obj)
qdev_property_add_static(DEVICE(obj), &arm_cpu_rvbar_property);
}
+#ifndef CONFIG_USER_ONLY
if (arm_feature(&cpu->env, ARM_FEATURE_EL3)) {
/* Add the has_el3 state CPU property only if EL3 is allowed. This
will
* prevent "has_el3" from existing on CPUs which cannot support EL3.
*/
qdev_property_add_static(DEVICE(obj), &arm_cpu_has_el3_property);
-#ifndef CONFIG_USER_ONLY
object_property_add_link(obj, "secure-memory",
TYPE_MEMORY_REGION,
(Object **)&cpu->secure_memory,
qdev_prop_allow_set_link_before_realize,
OBJ_PROP_LINK_STRONG,
&error_abort);
-#endif
}
if (arm_feature(&cpu->env, ARM_FEATURE_EL2)) {
qdev_property_add_static(DEVICE(obj), &arm_cpu_has_el2_property);
}
+#endif
if (arm_feature(&cpu->env, ARM_FEATURE_PMU)) {
cpu->has_pmu = true;
--
2.20.1
- [PATCH v5 00/12] target/arm: Honor more HCR_EL2 traps, Richard Henderson, 2020/02/28
- [PATCH v5 01/12] target/arm: Improve masking of HCR/HCR2 RES0 bits, Richard Henderson, 2020/02/28
- [PATCH v5 04/12] target/arm: Remove EL2 and EL3 setup from user-only, Richard Henderson, 2020/02/28
- [PATCH v5 05/12] target/arm: Improve masking in arm_hcr_el2_eff, Richard Henderson, 2020/02/28
- [PATCH v5 03/12] target/arm: Disable has_el2 and has_el3 for user-only,
Richard Henderson <=
- [PATCH v5 06/12] target/arm: Honor the HCR_EL2.{TVM,TRVM} bits, Richard Henderson, 2020/02/28
- [PATCH v5 02/12] target/arm: Add HCR_EL2 bit definitions from ARMv8.6, Richard Henderson, 2020/02/28
- [PATCH v5 08/12] target/arm: Honor the HCR_EL2.TACR bit, Richard Henderson, 2020/02/28
- [PATCH v5 07/12] target/arm: Honor the HCR_EL2.TSW bit, Richard Henderson, 2020/02/28
- [PATCH v5 09/12] target/arm: Honor the HCR_EL2.TPCP bit, Richard Henderson, 2020/02/28
- [PATCH v5 12/12] tests/tcg/aarch64: Add newline in pauth-1 printf, Richard Henderson, 2020/02/28
- [PATCH v5 11/12] target/arm: Honor the HCR_EL2.TTLB bit, Richard Henderson, 2020/02/28
- [PATCH v5 10/12] target/arm: Honor the HCR_EL2.TPU bit, Richard Henderson, 2020/02/28