mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
target/arm: Restrict system register properties to system binary
Do not expose the following system-specific properties on user-mode binaries: - psci-conduit - cntfrq (ARM_FEATURE_GENERIC_TIMER) - rvbar (ARM_FEATURE_V8) - has-mpu (ARM_FEATURE_PMSA) - pmsav7-dregion (ARM_FEATURE_PMSA) - reset-cbar (ARM_FEATURE_CBAR) - reset-hivecs (ARM_FEATURE_M) - init-nsvtor (ARM_FEATURE_M) - init-svtor (ARM_FEATURE_M_SECURITY) - idau (ARM_FEATURE_M_SECURITY) Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20250623121845.7214-13-philmd@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
committed by
Peter Maydell
parent
38d4089c04
commit
532884658d
+6
-5
@@ -1500,6 +1500,7 @@ static void arm_cpu_initfn(Object *obj)
|
||||
* 0 means "unset, use the default value". That default might vary depending
|
||||
* on the CPU type, and is set in the realize fn.
|
||||
*/
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
static const Property arm_cpu_gt_cntfrq_property =
|
||||
DEFINE_PROP_UINT64("cntfrq", ARMCPU, gt_cntfrq_hz, 0);
|
||||
|
||||
@@ -1509,7 +1510,6 @@ static const Property arm_cpu_reset_cbar_property =
|
||||
static const Property arm_cpu_reset_hivecs_property =
|
||||
DEFINE_PROP_BOOL("reset-hivecs", ARMCPU, reset_hivecs, false);
|
||||
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
static const Property arm_cpu_has_el2_property =
|
||||
DEFINE_PROP_BOOL("has_el2", ARMCPU, has_el2, true);
|
||||
|
||||
@@ -1532,6 +1532,7 @@ static const Property arm_cpu_has_neon_property =
|
||||
static const Property arm_cpu_has_dsp_property =
|
||||
DEFINE_PROP_BOOL("dsp", ARMCPU, has_dsp, true);
|
||||
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
static const Property arm_cpu_has_mpu_property =
|
||||
DEFINE_PROP_BOOL("has-mpu", ARMCPU, has_mpu, true);
|
||||
|
||||
@@ -1544,6 +1545,7 @@ static const Property arm_cpu_pmsav7_dregion_property =
|
||||
DEFINE_PROP_UNSIGNED_NODEFAULT("pmsav7-dregion", ARMCPU,
|
||||
pmsav7_dregion,
|
||||
qdev_prop_uint32, uint32_t);
|
||||
#endif
|
||||
|
||||
static bool arm_get_pmu(Object *obj, Error **errp)
|
||||
{
|
||||
@@ -1731,6 +1733,7 @@ static void arm_cpu_post_init(Object *obj)
|
||||
"Set on/off to enable/disable aarch64 "
|
||||
"execution state ");
|
||||
}
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
if (arm_feature(&cpu->env, ARM_FEATURE_CBAR) ||
|
||||
arm_feature(&cpu->env, ARM_FEATURE_CBAR_RO)) {
|
||||
qdev_property_add_static(DEVICE(obj), &arm_cpu_reset_cbar_property);
|
||||
@@ -1746,7 +1749,6 @@ static void arm_cpu_post_init(Object *obj)
|
||||
OBJ_PROP_FLAG_READWRITE);
|
||||
}
|
||||
|
||||
#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.
|
||||
@@ -1818,6 +1820,7 @@ static void arm_cpu_post_init(Object *obj)
|
||||
qdev_property_add_static(DEVICE(obj), &arm_cpu_has_dsp_property);
|
||||
}
|
||||
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
if (arm_feature(&cpu->env, ARM_FEATURE_PMSA)) {
|
||||
qdev_property_add_static(DEVICE(obj), &arm_cpu_has_mpu_property);
|
||||
if (arm_feature(&cpu->env, ARM_FEATURE_V7)) {
|
||||
@@ -1854,8 +1857,6 @@ static void arm_cpu_post_init(Object *obj)
|
||||
&cpu->psci_conduit,
|
||||
OBJ_PROP_FLAG_READWRITE);
|
||||
|
||||
qdev_property_add_static(DEVICE(obj), &arm_cpu_cfgend_property);
|
||||
|
||||
if (arm_feature(&cpu->env, ARM_FEATURE_GENERIC_TIMER)) {
|
||||
qdev_property_add_static(DEVICE(cpu), &arm_cpu_gt_cntfrq_property);
|
||||
}
|
||||
@@ -1864,7 +1865,6 @@ static void arm_cpu_post_init(Object *obj)
|
||||
kvm_arm_add_vcpu_properties(cpu);
|
||||
}
|
||||
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
if (arm_feature(&cpu->env, ARM_FEATURE_AARCH64) &&
|
||||
cpu_isar_feature(aa64_mte, cpu)) {
|
||||
object_property_add_link(obj, "tag-memory",
|
||||
@@ -1882,6 +1882,7 @@ static void arm_cpu_post_init(Object *obj)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
qdev_property_add_static(DEVICE(obj), &arm_cpu_cfgend_property);
|
||||
}
|
||||
|
||||
static void arm_cpu_finalizefn(Object *obj)
|
||||
|
||||
Reference in New Issue
Block a user