aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2014-05-27 09:58:14 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2014-05-27 09:58:14 -0400
commit04092204bb66c4f8e17465eeee64357dd2ad2585 (patch)
tree16e62ff55ac394af5d2e6adb4950533578a20ce1 /Documentation
parent9b88ae99d2fe11e359b3b3992aff953e28b0b43a (diff)
parent1252b3313642c3d0dff5b951b625468bf0dcd059 (diff)
Merge tag 'kvm-arm-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-next
Changed for the 3.16 merge window. This includes KVM support for PSCI v0.2 and also includes generic Linux support for PSCI v0.2 (on hosts that advertise that feature via their DT), since the latter depends on headers introduced by the former. Finally there's a small patch from Marc that enables Cortex-A53 support.
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/devicetree/bindings/arm/psci.txt37
-rw-r--r--Documentation/virtual/kvm/api.txt17
2 files changed, 53 insertions, 1 deletions
diff --git a/Documentation/devicetree/bindings/arm/psci.txt b/Documentation/devicetree/bindings/arm/psci.txt
index 433afe9cb590..b4a58f39223c 100644
--- a/Documentation/devicetree/bindings/arm/psci.txt
+++ b/Documentation/devicetree/bindings/arm/psci.txt
@@ -21,7 +21,15 @@ to #0.
21 21
22Main node required properties: 22Main node required properties:
23 23
24 - compatible : Must be "arm,psci" 24 - compatible : should contain at least one of:
25
26 * "arm,psci" : for implementations complying to PSCI versions prior to
27 0.2. For these cases function IDs must be provided.
28
29 * "arm,psci-0.2" : for implementations complying to PSCI 0.2. Function
30 IDs are not required and should be ignored by an OS with PSCI 0.2
31 support, but are permitted to be present for compatibility with
32 existing software when "arm,psci" is later in the compatible list.
25 33
26 - method : The method of calling the PSCI firmware. Permitted 34 - method : The method of calling the PSCI firmware. Permitted
27 values are: 35 values are:
@@ -45,6 +53,8 @@ Main node optional properties:
45 53
46Example: 54Example:
47 55
56Case 1: PSCI v0.1 only.
57
48 psci { 58 psci {
49 compatible = "arm,psci"; 59 compatible = "arm,psci";
50 method = "smc"; 60 method = "smc";
@@ -53,3 +63,28 @@ Example:
53 cpu_on = <0x95c10002>; 63 cpu_on = <0x95c10002>;
54 migrate = <0x95c10003>; 64 migrate = <0x95c10003>;
55 }; 65 };
66
67
68Case 2: PSCI v0.2 only
69
70 psci {
71 compatible = "arm,psci-0.2";
72 method = "smc";
73 };
74
75Case 3: PSCI v0.2 and PSCI v0.1.
76
77 A DTB may provide IDs for use by kernels without PSCI 0.2 support,
78 enabling firmware and hypervisors to support existing and new kernels.
79 These IDs will be ignored by kernels with PSCI 0.2 support, which will
80 use the standard PSCI 0.2 IDs exclusively.
81
82 psci {
83 compatible = "arm,psci-0.2", "arm,psci";
84 method = "hvc";
85
86 cpu_on = < arbitrary value >;
87 cpu_off = < arbitrary value >;
88
89 ...
90 };
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt
index 0581f6c40f2b..cac0ba127576 100644
--- a/Documentation/virtual/kvm/api.txt
+++ b/Documentation/virtual/kvm/api.txt
@@ -2378,6 +2378,8 @@ Possible features:
2378 Depends on KVM_CAP_ARM_PSCI. 2378 Depends on KVM_CAP_ARM_PSCI.
2379 - KVM_ARM_VCPU_EL1_32BIT: Starts the CPU in a 32bit mode. 2379 - KVM_ARM_VCPU_EL1_32BIT: Starts the CPU in a 32bit mode.
2380 Depends on KVM_CAP_ARM_EL1_32BIT (arm64 only). 2380 Depends on KVM_CAP_ARM_EL1_32BIT (arm64 only).
2381 - KVM_ARM_VCPU_PSCI_0_2: Emulate PSCI v0.2 for the CPU.
2382 Depends on KVM_CAP_ARM_PSCI_0_2.
2381 2383
2382 2384
23834.83 KVM_ARM_PREFERRED_TARGET 23854.83 KVM_ARM_PREFERRED_TARGET
@@ -2740,6 +2742,21 @@ It gets triggered whenever both KVM_CAP_PPC_EPR are enabled and an
2740external interrupt has just been delivered into the guest. User space 2742external interrupt has just been delivered into the guest. User space
2741should put the acknowledged interrupt vector into the 'epr' field. 2743should put the acknowledged interrupt vector into the 'epr' field.
2742 2744
2745 /* KVM_EXIT_SYSTEM_EVENT */
2746 struct {
2747#define KVM_SYSTEM_EVENT_SHUTDOWN 1
2748#define KVM_SYSTEM_EVENT_RESET 2
2749 __u32 type;
2750 __u64 flags;
2751 } system_event;
2752
2753If exit_reason is KVM_EXIT_SYSTEM_EVENT then the vcpu has triggered
2754a system-level event using some architecture specific mechanism (hypercall
2755or some special instruction). In case of ARM/ARM64, this is triggered using
2756HVC instruction based PSCI call from the vcpu. The 'type' field describes
2757the system-level event type. The 'flags' field describes architecture
2758specific flags for the system-level event.
2759
2743 /* Fix the size of the union. */ 2760 /* Fix the size of the union. */
2744 char padding[256]; 2761 char padding[256];
2745 }; 2762 };