diff mbox

[7/7] arm/highbank: enable PSCI emulation support

Message ID 1399305623-22016-8-git-send-email-robherring2@gmail.com
State New
Headers show

Commit Message

Rob Herring May 5, 2014, 4 p.m. UTC
From: Rob Herring <rob.herring@linaro.org>

Enable PSCI enulation on highbank and midway platforms.

Note that this requires fixing the PSCI function IDs in the DTB to match
what QEMU is using. This should get fixed.

Signed-off-by: Rob Herring <rob.herring@linaro.org>
---
 hw/arm/highbank.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Peter Crosthwaite May 15, 2014, 1:07 p.m. UTC | #1
On Mon, May 5, 2014 at 4:00 PM, Rob Herring <robherring2@gmail.com> wrote:
> From: Rob Herring <rob.herring@linaro.org>
>
> Enable PSCI enulation on highbank and midway platforms.

"emulation"

>
> Note that this requires fixing the PSCI function IDs in the DTB to match
> what QEMU is using. This should get fixed.
>
> Signed-off-by: Rob Herring <rob.herring@linaro.org>
> ---
>  hw/arm/highbank.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/hw/arm/highbank.c b/hw/arm/highbank.c
> index 46b9f1e..092df1f 100644
> --- a/hw/arm/highbank.c
> +++ b/hw/arm/highbank.c
> @@ -242,6 +242,14 @@ static void calxeda_init(QEMUMachineInitArgs *args, enum cxmachines machine)
>          cpuobj = object_new(object_class_get_name(oc));
>          cpu = ARM_CPU(cpuobj);
>
> +        object_property_set_int(cpuobj, QEMU_PSCI_METHOD_SMC, "psci-method",
> +                                NULL);
> +
> +        /* Secondary CPUs start in PSCI powered-down state */
> +        if (n > 0) {
> +            object_property_set_bool(cpuobj, true, "start-powered-off", NULL);

Use &error_abort in cases where things should never possibly fail (and
i think this is the case here). The semantics of a NULL errp is "try
the function and if it fails I don't care".

Regards,
Peter

> +        }
> +
>          if (object_property_find(cpuobj, "reset-cbar", NULL)) {
>              object_property_set_int(cpuobj, MPCORE_PERIPHBASE,
>                                      "reset-cbar", &error_abort);
> --
> 1.9.1
>
>
diff mbox

Patch

diff --git a/hw/arm/highbank.c b/hw/arm/highbank.c
index 46b9f1e..092df1f 100644
--- a/hw/arm/highbank.c
+++ b/hw/arm/highbank.c
@@ -242,6 +242,14 @@  static void calxeda_init(QEMUMachineInitArgs *args, enum cxmachines machine)
         cpuobj = object_new(object_class_get_name(oc));
         cpu = ARM_CPU(cpuobj);
 
+        object_property_set_int(cpuobj, QEMU_PSCI_METHOD_SMC, "psci-method",
+                                NULL);
+
+        /* Secondary CPUs start in PSCI powered-down state */
+        if (n > 0) {
+            object_property_set_bool(cpuobj, true, "start-powered-off", NULL);
+        }
+
         if (object_property_find(cpuobj, "reset-cbar", NULL)) {
             object_property_set_int(cpuobj, MPCORE_PERIPHBASE,
                                     "reset-cbar", &error_abort);