qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC PATCH v1 7/8] arm: realview: Factor out CPU property s


From: Peter Crosthwaite
Subject: [Qemu-devel] [RFC PATCH v1 7/8] arm: realview: Factor out CPU property setters
Date: Sun, 14 Jun 2015 15:37:22 -0700

Into its own function. This prepares support for cpu-inclusive MPCores
which may need to have these props set for them as well.

Signed-off-by: Peter Crosthwaite <address@hidden>
---
 hw/arm/realview.c | 46 +++++++++++++++++++++++++++-------------------
 1 file changed, 27 insertions(+), 19 deletions(-)

diff --git a/hw/arm/realview.c b/hw/arm/realview.c
index ef2788d..251b328 100644
--- a/hw/arm/realview.c
+++ b/hw/arm/realview.c
@@ -45,6 +45,32 @@ static const int realview_board_id[] = {
     0x76d
 };
 
+static inline void realview_init_cpu_props(Object *obj, hwaddr reset_cbar,
+                                           bool do_reset_cbar)
+{
+        Error *err = NULL;
+
+        /* By default A9,A15 and ARM1176 CPUs have EL3 enabled.  This board
+         * does not currently support EL3 so the CPU EL3 property is disabled
+         * before realization.
+         */
+        if (object_property_find(obj, "has_el3", NULL)) {
+            object_property_set_bool(obj, false, "has_el3", &err);
+            if (err) {
+                error_report_err(err);
+                exit(1);
+            }
+        }
+
+        if (do_reset_cbar) {
+            object_property_set_int(obj, reset_cbar, "reset-cbar", &err);
+            if (err) {
+                error_report_err(err);
+                exit(1);
+            }
+        }
+}
+
 static void realview_init(MachineState *machine,
                           enum realview_board_type board_type)
 {
@@ -101,25 +127,7 @@ static void realview_init(MachineState *machine,
         Object *cpuobj = object_new(object_class_get_name(cpu_oc));
         Error *err = NULL;
 
-        /* By default A9,A15 and ARM1176 CPUs have EL3 enabled.  This board
-         * does not currently support EL3 so the CPU EL3 property is disabled
-         * before realization.
-         */
-        if (object_property_find(cpuobj, "has_el3", NULL)) {
-            object_property_set_bool(cpuobj, false, "has_el3", &err);
-            if (err) {
-                error_report_err(err);
-                exit(1);
-            }
-        }
-
-        if (is_pb && is_mpcore) {
-            object_property_set_int(cpuobj, periphbase, "reset-cbar", &err);
-            if (err) {
-                error_report_err(err);
-                exit(1);
-            }
-        }
+        realview_init_cpu_props(cpuobj, periphbase, is_pb && is_mpcore);
 
         object_property_set_bool(cpuobj, true, "realized", &err);
         if (err) {
-- 
2.4.3.3.g905f831




reply via email to

[Prev in Thread] Current Thread [Next in Thread]