[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH V7 7/8] target-arm: Introduce per-CPU field for PSCI
From: |
Pranavkumar Sawargaonkar |
Subject: |
[Qemu-devel] [PATCH V7 7/8] target-arm: Introduce per-CPU field for PSCI version |
Date: |
Mon, 16 Jun 2014 12:23:24 +0530 |
We require to know the PSCI version available to given CPU at
potentially many places. Currently, we need to know PSCI version
when generating DTB for virt machine.
This patch introduce per-CPU 32bit field representing the PSCI
version available to the CPU. The encoding of this 32bit field
is same as described in PSCI v0.2 spec.
Signed-off-by: Pranavkumar Sawargaonkar <address@hidden>
Signed-off-by: Anup Patel <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
---
target-arm/cpu-qom.h | 6 ++++++
target-arm/cpu.c | 1 +
target-arm/kvm32.c | 1 +
target-arm/kvm64.c | 1 +
4 files changed, 9 insertions(+)
diff --git a/target-arm/cpu-qom.h b/target-arm/cpu-qom.h
index 2bd7df8..eaee944 100644
--- a/target-arm/cpu-qom.h
+++ b/target-arm/cpu-qom.h
@@ -94,6 +94,12 @@ typedef struct ARMCPU {
/* 'compatible' string for this CPU for Linux device trees */
const char *dtb_compatible;
+ /* PSCI version for this CPU
+ * Bits[31:16] = Major Version
+ * Bits[15:0] = Minor Version
+ */
+ uint32_t psci_version;
+
/* Should CPU start in PSCI powered-off state? */
bool start_powered_off;
diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index b877835..05e52e0 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -260,6 +260,7 @@ static void arm_cpu_initfn(Object *obj)
* picky DTB consumer will also provide a helpful error message.
*/
cpu->dtb_compatible = "qemu,unknown";
+ cpu->psci_version = 1; /* By default assume PSCI v0.1 */
cpu->kvm_target = QEMU_KVM_ARM_TARGET_NONE;
if (tcg_enabled() && !inited) {
diff --git a/target-arm/kvm32.c b/target-arm/kvm32.c
index 52d626c..068af7d 100644
--- a/target-arm/kvm32.c
+++ b/target-arm/kvm32.c
@@ -184,6 +184,7 @@ int kvm_arch_init_vcpu(CPUState *cs)
cpu->kvm_init_features[0] |= 1 << KVM_ARM_VCPU_POWER_OFF;
}
if (kvm_check_extension(cs->kvm_state, KVM_CAP_ARM_PSCI_0_2)) {
+ cpu->psci_version = 2;
cpu->kvm_init_features[0] |= 1 << KVM_ARM_VCPU_PSCI_0_2;
}
diff --git a/target-arm/kvm64.c b/target-arm/kvm64.c
index fca5f58..5d217ca 100644
--- a/target-arm/kvm64.c
+++ b/target-arm/kvm64.c
@@ -92,6 +92,7 @@ int kvm_arch_init_vcpu(CPUState *cs)
cpu->kvm_init_features[0] |= 1 << KVM_ARM_VCPU_POWER_OFF;
}
if (kvm_check_extension(cs->kvm_state, KVM_CAP_ARM_PSCI_0_2)) {
+ cpu->psci_version = 2;
cpu->kvm_init_features[0] |= 1 << KVM_ARM_VCPU_PSCI_0_2;
}
--
1.9.1
- [Qemu-devel] [PATCH V7 0/8] PSCI v0.2 support for KVM ARM/ARM64, Pranavkumar Sawargaonkar, 2014/06/16
- [Qemu-devel] [PATCH V7 1/8] update-linux-headers.sh: Add psci.h to linux header sync-up script, Pranavkumar Sawargaonkar, 2014/06/16
- [Qemu-devel] [PATCH V7 2/8] linux-headers: Update KVM headers with kvm tree's next branch., Pranavkumar Sawargaonkar, 2014/06/16
- [Qemu-devel] [PATCH V7 3/8] kvm: Handle exit reason KVM_EXIT_SYSTEM_EVENT, Pranavkumar Sawargaonkar, 2014/06/16
- [Qemu-devel] [PATCH V7 4/8] target-arm: Common kvm_arm_vcpu_init() for KVM ARM and KVM ARM64, Pranavkumar Sawargaonkar, 2014/06/16
- [Qemu-devel] [PATCH V7 5/8] target-arm: Enable KVM_ARM_VCPU_PSCI_0_2 feature when possible, Pranavkumar Sawargaonkar, 2014/06/16
- [Qemu-devel] [PATCH V7 6/8] target-arm: Implement kvm_arch_reset_vcpu() for KVM ARM64, Pranavkumar Sawargaonkar, 2014/06/16
- [Qemu-devel] [PATCH V7 7/8] target-arm: Introduce per-CPU field for PSCI version,
Pranavkumar Sawargaonkar <=
- [Qemu-devel] [PATCH V7 8/8] Use PSCI v0.2 compatible string when KVM or TCG provides it, Pranavkumar Sawargaonkar, 2014/06/16
- Re: [Qemu-devel] [PATCH V7 0/8] PSCI v0.2 support for KVM ARM/ARM64, Peter Maydell, 2014/06/16