From: Rob Herring <robherring2@gmail.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Rob Herring <rob.herring@linaro.org>,
Peter Crosthwaite <peter.crosthwaite@xilinx.com>,
qemu-devel@nongnu.org,
Christoffer Dall <christoffer.dall@linaro.org>
Subject: [Qemu-devel] [PATCH v2 5/6] arm/virt: enable PSCI emulation support for system emulation
Date: Thu, 22 May 2014 21:30:08 -0500 [thread overview]
Message-ID: <1400812209-26743-6-git-send-email-robherring2@gmail.com> (raw)
In-Reply-To: <1400812209-26743-1-git-send-email-robherring2@gmail.com>
From: Rob Herring <rob.herring@linaro.org>
Now that we have PSCI emulation, enable it for the virt platform.
This simplifies the virt machine a bit now that PSCI and SMP no longer
need to be KVM only features.
Signed-off-by: Rob Herring <rob.herring@linaro.org>
---
v2:
- Rebased. Mostly a whitespace change removing the kvm_enabled() check.
hw/arm/virt.c | 41 +++++++++++++++--------------------------
1 file changed, 15 insertions(+), 26 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 442363c..e58a07a 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -187,23 +187,19 @@ static void fdt_add_psci_node(const VirtBoardInfo *vbi)
void *fdt = vbi->fdt;
ARMCPU *armcpu = ARM_CPU(qemu_get_cpu(0));
- /* No PSCI for TCG yet */
- if (kvm_enabled()) {
- qemu_fdt_add_subnode(fdt, "/psci");
- if (armcpu->psci_version == 2) {
- const char comp[] = "arm,psci-0.2\0arm,psci";
- qemu_fdt_setprop(fdt, "/psci", "compatible", comp, sizeof(comp));
- } else {
- qemu_fdt_setprop_string(fdt, "/psci", "compatible", "arm,psci");
- }
-
- qemu_fdt_setprop_string(fdt, "/psci", "method", "hvc");
- qemu_fdt_setprop_cell(fdt, "/psci", "cpu_suspend",
- PSCI_FN_CPU_SUSPEND);
- qemu_fdt_setprop_cell(fdt, "/psci", "cpu_off", PSCI_FN_CPU_OFF);
- qemu_fdt_setprop_cell(fdt, "/psci", "cpu_on", PSCI_FN_CPU_ON);
- qemu_fdt_setprop_cell(fdt, "/psci", "migrate", PSCI_FN_MIGRATE);
+ qemu_fdt_add_subnode(fdt, "/psci");
+ if (armcpu->psci_version == 2) {
+ const char comp[] = "arm,psci-0.2\0arm,psci";
+ qemu_fdt_setprop(fdt, "/psci", "compatible", comp, sizeof(comp));
+ } else {
+ qemu_fdt_setprop_string(fdt, "/psci", "compatible", "arm,psci");
}
+
+ qemu_fdt_setprop_string(fdt, "/psci", "method", "hvc");
+ qemu_fdt_setprop_cell(fdt, "/psci", "cpu_suspend", PSCI_FN_CPU_SUSPEND);
+ qemu_fdt_setprop_cell(fdt, "/psci", "cpu_off", PSCI_FN_CPU_OFF);
+ qemu_fdt_setprop_cell(fdt, "/psci", "cpu_on", PSCI_FN_CPU_ON);
+ qemu_fdt_setprop_cell(fdt, "/psci", "migrate", PSCI_FN_MIGRATE);
}
static void fdt_add_timer_nodes(const VirtBoardInfo *vbi)
@@ -418,16 +414,6 @@ static void machvirt_init(QEMUMachineInitArgs *args)
vbi->smp_cpus = smp_cpus;
- /*
- * Only supported method of starting secondary CPUs is PSCI and
- * PSCI is not yet supported with TCG, so limit smp_cpus to 1
- * if we're not using KVM.
- */
- if (!kvm_enabled() && smp_cpus > 1) {
- error_report("mach-virt: must enable KVM to use multiple CPUs");
- exit(1);
- }
-
if (args->ram_size > vbi->memmap[VIRT_MEM].size) {
error_report("mach-virt: cannot model more than 30GB RAM");
exit(1);
@@ -446,6 +432,9 @@ static void machvirt_init(QEMUMachineInitArgs *args)
}
cpuobj = object_new(object_class_get_name(oc));
+ object_property_set_int(cpuobj, QEMU_PSCI_METHOD_HVC, "psci-method",
+ NULL);
+
/* Secondary CPUs start in PSCI powered-down state */
if (n > 0) {
object_property_set_bool(cpuobj, true, "start-powered-off", NULL);
--
1.9.1
next prev parent reply other threads:[~2014-05-23 2:31 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-23 2:30 [Qemu-devel] [PATCH v2 0/6] ARM: add PSCI emulation support Rob Herring
2014-05-23 2:30 ` [Qemu-devel] [PATCH v2 1/6] target-arm: don't set cpu do_interrupt handler for user mode emulation Rob Herring
2014-06-03 15:02 ` Peter Maydell
2014-05-23 2:30 ` [Qemu-devel] [PATCH v2 2/6] target-arm: add powered off cpu state Rob Herring
2014-06-03 14:45 ` Peter Maydell
2014-05-23 2:30 ` [Qemu-devel] [PATCH v2 3/6] target-arm: add hvc and smc exception emulation handling infrastructure Rob Herring
2014-05-26 4:25 ` Edgar E. Iglesias
2014-05-26 8:35 ` Peter Maydell
2014-06-03 14:44 ` Peter Maydell
2014-05-23 2:30 ` [Qemu-devel] [PATCH v2 4/6] target-arm: add emulation of PSCI calls for system emulation Rob Herring
2014-06-03 11:14 ` Peter Maydell
2014-06-04 10:09 ` Rob Herring
2014-06-04 10:16 ` Peter Maydell
2014-05-23 2:30 ` Rob Herring [this message]
2014-06-03 14:43 ` [Qemu-devel] [PATCH v2 5/6] arm/virt: enable PSCI emulation support " Peter Maydell
2014-05-23 2:30 ` [Qemu-devel] [PATCH v2 6/6] arm/highbank: enable PSCI emulation support Rob Herring
2014-06-03 14:42 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1400812209-26743-6-git-send-email-robherring2@gmail.com \
--to=robherring2@gmail.com \
--cc=christoffer.dall@linaro.org \
--cc=peter.crosthwaite@xilinx.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rob.herring@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.