[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH V2 6/6] hw/arm/virt: Use PSCI v0.2 function IDs
From: |
Pranavkumar Sawargaonkar |
Subject: |
[Qemu-devel] [RFC PATCH V2 6/6] hw/arm/virt: Use PSCI v0.2 function IDs when kernel supports its |
Date: |
Tue, 1 Apr 2014 17:23: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 V2 0/6] PSCI v0.2 support for KVM ARM/ARM64, Pranavkumar Sawargaonkar, 2014/04/01
- [Qemu-devel] [RFC PATCH V2 1/6] linux-headers: Update KVM headers from v3.14, Pranavkumar Sawargaonkar, 2014/04/01
- [Qemu-devel] [RFC PATCH V2 2/6] kvm: Handle exit reason KVM_EXIT_SYSTEM_EVENT, Pranavkumar Sawargaonkar, 2014/04/01
- [Qemu-devel] [RFC PATCH V2 3/6] target-arm: Enable KVM_ARM_VCPU_PSCI_0_2 feature when possible, Pranavkumar Sawargaonkar, 2014/04/01
- [Qemu-devel] [RFC PATCH V2 4/6] target-arm: Implement kvm_arch_reset_vcpu() for KVM ARM64, Pranavkumar Sawargaonkar, 2014/04/01
- [Qemu-devel] [RFC PATCH V2 5/6] target-arm: Provide PSCI v0.2 constants to generic QEMU code, Pranavkumar Sawargaonkar, 2014/04/01
- [Qemu-devel] [RFC PATCH V2 6/6] hw/arm/virt: Use PSCI v0.2 function IDs when kernel supports its,
Pranavkumar Sawargaonkar <=