Hi Rob, On 26 April 2014 00:17, Rob Herring <robherring2@xxxxxxxxx> wrote: > On Thu, Apr 10, 2014 at 6:46 AM, Pranavkumar Sawargaonkar > <pranavkumar@xxxxxxxxxx> wrote: >> 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 <pranavkumar@xxxxxxxxxx> >> Signed-off-by: Anup Patel <anup.patel@xxxxxxxxxx> >> --- >> 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"); > > Read the binding document for psci 0.2 (not the PSCI spec example). > This needs to be "arm,psci-0.2". > > The virt mach needs to provide either 0.1 only or 0.1 and 0.2 support. > Providing both means both compatible strings and the function IDs for > 0.1. > >> 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); > > None of these are needed for 0.2 binding. The function IDs are fixed. Yes I am aware that we should be using 0.2 bindings, I was just waiting for Ashwin's patches for PSCI 0.2 bindings. I will update and test this patch based on v8 patches from Ashwin. (http://www.spinics.net/lists/arm-kernel/msg326044.html). > >> + 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 >> >> _______________________________________________ >> kvmarm mailing list >> kvmarm@xxxxxxxxxxxxxxxxxxxxx >> https://lists.cs.columbia.edu/mailman/listinfo/kvmarm Thanks, Pranav _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm