[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH V3 5/7] hw/arm/virt: Use PSCI v0.2 function IDs
From: |
Pranavkumar Sawargaonkar |
Subject: |
[Qemu-devel] [RFC PATCH V3 5/7] hw/arm/virt: Use PSCI v0.2 function IDs when kernel supports it |
Date: |
Thu, 10 Apr 2014 17:16:52 +0530 |
If we have in-kernel emulation of PSCI v0.2 for KVM ARM/ARM64 then
we enable PSCI v0.2 for each VCPU at the time of VCPU init hence we
need to provide PSCI v0.2 function IDs via generated DTB.
This patch updates generated DTB to have PSCI v0.2 function IDs when
we have in-kernel emulation PSCI v0.2 for KVM ARM/ARM64.
Signed-off-by: Pranavkumar Sawargaonkar <address@hidden>
Signed-off-by: Anup Patel <address@hidden>
---
hw/arm/virt.c | 28 +++++++++++++++++++++++-----
1 file changed, 23 insertions(+), 5 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 2bbc931..cf6a774 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -187,11 +187,29 @@ static void create_fdt(VirtBoardInfo *vbi)
qemu_fdt_add_subnode(fdt, "/psci");
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);
+ if (kvm_check_extension(kvm_state, KVM_CAP_ARM_PSCI_0_2)) {
+ qemu_fdt_setprop_cell(fdt, "/psci", "cpu_suspend",
+ QEMU_PSCI_0_2_FN_CPU_SUSPEND);
+ qemu_fdt_setprop_cell(fdt, "/psci", "cpu_off",
+ QEMU_PSCI_0_2_FN_CPU_OFF);
+ qemu_fdt_setprop_cell(fdt, "/psci", "cpu_on",
+ QEMU_PSCI_0_2_FN_CPU_ON);
+ qemu_fdt_setprop_cell(fdt, "/psci", "migrate",
+ QEMU_PSCI_0_2_FN_MIGRATE);
+ qemu_fdt_setprop_cell(fdt, "/psci", "system_off",
+ QEMU_PSCI_0_2_FN_SYSTEM_OFF);
+ qemu_fdt_setprop_cell(fdt, "/psci", "system_reset",
+ QEMU_PSCI_0_2_FN_SYSTEM_RESET);
+ } else {
+ qemu_fdt_setprop_cell(fdt, "/psci", "cpu_suspend",
+ QEMU_PSCI_FN_CPU_SUSPEND);
+ qemu_fdt_setprop_cell(fdt, "/psci", "cpu_off",
+ QEMU_PSCI_FN_CPU_OFF);
+ qemu_fdt_setprop_cell(fdt, "/psci", "cpu_on",
+ QEMU_PSCI_FN_CPU_ON);
+ qemu_fdt_setprop_cell(fdt, "/psci", "migrate",
+ QEMU_PSCI_FN_MIGRATE);
+ }
}
}
--
1.7.9.5
- [Qemu-devel] [RFC PATCH V3 0/7] PSCI v0.2 support for KVM ARM/ARM64, Pranavkumar Sawargaonkar, 2014/04/10
- [Qemu-devel] [RFC PATCH V3 1/7] linux-headers: Update KVM headers from v3.15, Pranavkumar Sawargaonkar, 2014/04/10
- [Qemu-devel] [RFC PATCH V3 2/7] kvm: Handle exit reason KVM_EXIT_SYSTEM_EVENT, Pranavkumar Sawargaonkar, 2014/04/10
- [Qemu-devel] [RFC PATCH V3 3/7] target-arm: Enable KVM_ARM_VCPU_PSCI_0_2 feature when possible, Pranavkumar Sawargaonkar, 2014/04/10
- [Qemu-devel] [RFC PATCH V3 4/7] target-arm: Provide PSCI v0.2 constants to generic QEMU code, Pranavkumar Sawargaonkar, 2014/04/10
- [Qemu-devel] [RFC PATCH V3 5/7] hw/arm/virt: Use PSCI v0.2 function IDs when kernel supports it,
Pranavkumar Sawargaonkar <=
- [Qemu-devel] [RFC PATCH V3 6/7] target-arm: Common kvm_arm_vcpu_init() for KVM ARM and KVM ARM64, Pranavkumar Sawargaonkar, 2014/04/10
- [Qemu-devel] [RFC PATCH V3 7/7] target-arm: Implement kvm_arch_reset_vcpu() for KVM ARM64, Pranavkumar Sawargaonkar, 2014/04/10
- Re: [Qemu-devel] [RFC PATCH V3 0/7] PSCI v0.2 support for KVM ARM/ARM64, Peter Maydell, 2014/04/28