The reset Value of the CP15 CBAR is a vendor (machine) configurable property. If ARM_FEATURE_CBAR is set, add it as a property at post_init time.
Signed-off-by: Peter Crosthwaite <peter.crosthwa...@xilinx.com> --- Change since v1: Re-implement as dynamic property target-arm/cpu.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/target-arm/cpu.c b/target-arm/cpu.c index a82fa61..7ad2496 100644 --- a/target-arm/cpu.c +++ b/target-arm/cpu.c @@ -20,6 +20,7 @@ #include "cpu.h" #include "qemu-common.h" +#include "qapi/qmp/qerror.h" #if !defined(CONFIG_USER_ONLY) #include "hw/loader.h" #endif @@ -223,6 +224,18 @@ static void arm_cpu_initfn(Object *obj) } } +static void arm_cpu_post_init(Object *obj) +{ + ARMCPU *cpu = ARM_CPU(obj); + Error *err = NULL; + + if (arm_feature(&cpu->env, ARM_FEATURE_CBAR)) { + object_property_add_uint32_ptr(obj, "reset-cbar", &cpu->reset_cbar, + &err); + assert_no_error(err); + } +} + static void arm_cpu_finalizefn(Object *obj) { ARMCPU *cpu = ARM_CPU(obj); @@ -933,6 +946,7 @@ static const TypeInfo arm_cpu_type_info = { .parent = TYPE_CPU, .instance_size = sizeof(ARMCPU), .instance_init = arm_cpu_initfn, + .instance_post_init = arm_cpu_post_init, .instance_finalize = arm_cpu_finalizefn, .abstract = true, .class_size = sizeof(ARMCPUClass), -- 1.8.4.4