aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2014-04-04 17:42:34 +0100
committerPeter Maydell <peter.maydell@linaro.org>2014-04-04 18:01:09 +0100
commitd097696eba076da781967827e59f66a7857c8ecb (patch)
treeec234211064b993e936d94db46d8c5db63b47a57
parent3b418d0c45fccd850f9ad9eb4bf9bdcd96b8e6f7 (diff)
downloadqemu-d097696eba076da781967827e59f66a7857c8ecb.zip
qemu-d097696eba076da781967827e59f66a7857c8ecb.tar.gz
qemu-d097696eba076da781967827e59f66a7857c8ecb.tar.bz2
hw/arm/vexpress, hw/arm/highbank: Don't insist that CPU has reset-cbar property
For the machine models which can have a Cortex-A15 CPU (vexpress-a15 and midway), silently continue if the CPU object has no reset-cbar property rather than failing. This allows these boards to be used under KVM with the "-cpu host" option, since the 'host' CPU object has no reset-cbar property. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Rob Herring <rob.herring@linaro.org>
-rw-r--r--hw/arm/highbank.c14
-rw-r--r--hw/arm/vexpress.c7
2 files changed, 10 insertions, 11 deletions
diff --git a/hw/arm/highbank.c b/hw/arm/highbank.c
index 2a88b84..46b9f1e 100644
--- a/hw/arm/highbank.c
+++ b/hw/arm/highbank.c
@@ -230,6 +230,7 @@ static void calxeda_init(QEMUMachineInitArgs *args, enum cxmachines machine)
for (n = 0; n < smp_cpus; n++) {
ObjectClass *oc = cpu_class_by_name(TYPE_ARM_CPU, cpu_model);
+ Object *cpuobj;
ARMCPU *cpu;
Error *err = NULL;
@@ -238,15 +239,14 @@ static void calxeda_init(QEMUMachineInitArgs *args, enum cxmachines machine)
exit(1);
}
- cpu = ARM_CPU(object_new(object_class_get_name(oc)));
+ cpuobj = object_new(object_class_get_name(oc));
+ cpu = ARM_CPU(cpuobj);
- object_property_set_int(OBJECT(cpu), MPCORE_PERIPHBASE, "reset-cbar",
- &err);
- if (err) {
- error_report("%s", error_get_pretty(err));
- exit(1);
+ if (object_property_find(cpuobj, "reset-cbar", NULL)) {
+ object_property_set_int(cpuobj, MPCORE_PERIPHBASE,
+ "reset-cbar", &error_abort);
}
- object_property_set_bool(OBJECT(cpu), true, "realized", &err);
+ object_property_set_bool(cpuobj, true, "realized", &err);
if (err) {
error_report("%s", error_get_pretty(err));
exit(1);
diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
index 67628af..169eb06 100644
--- a/hw/arm/vexpress.c
+++ b/hw/arm/vexpress.c
@@ -192,10 +192,9 @@ static void init_cpus(const char *cpu_model, const char *privdev,
Object *cpuobj = object_new(object_class_get_name(cpu_oc));
Error *err = NULL;
- object_property_set_int(cpuobj, periphbase, "reset-cbar", &err);
- if (err) {
- error_report("%s", error_get_pretty(err));
- exit(1);
+ if (object_property_find(cpuobj, "reset-cbar", NULL)) {
+ object_property_set_int(cpuobj, periphbase,
+ "reset-cbar", &error_abort);
}
object_property_set_bool(cpuobj, true, "realized", &err);
if (err) {