From: robherring2@gmail.com (Rob Herring)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4] dt: update PSCI binding documentation for v0.2
Date: Thu, 19 Sep 2013 16:24:28 -0500 [thread overview]
Message-ID: <1379625868-5395-1-git-send-email-robherring2@gmail.com> (raw)
From: Rob Herring <rob.herring@calxeda.com>
The PSCI spec from ARM has been updated to 0.2 version. Update the
binding document to reflect the spec changes. For the binding, the
major changes are the addition of psci_version, affinity_info,
migrate_info_type, migrate_info_up_cpu, system_reset and system_off
functions. The recommended function ID numbering has also changed.
This update also defines 32 and 64 bit calling conventions. The calling
convention is defined on a per function ID basis.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Dave Martin <Dave.Martin@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Marc Zyngier <Marc.Zyngier@arm.com>
Cc: Christoffer Dall <christoffer.dall@linaro.org>,
Cc: Charles Garcia-Tobin <Charles.Garcia-Tobin@arm.com>
Cc: Matt Sealey <neko@bakuhatsu.net>
Cc: devicetree at vger.kernel.org
---
v4: Reword last paragraph concerning calling convention used for
functions without -32 or -64 suffix.
v3: This version implements Mark's suggested binding with -32 and -64
suffixes.
Documentation/devicetree/bindings/arm/psci.txt | 64 +++++++++++++++++++-------
1 file changed, 48 insertions(+), 16 deletions(-)
diff --git a/Documentation/devicetree/bindings/arm/psci.txt b/Documentation/devicetree/bindings/arm/psci.txt
index 433afe9..8675ec2 100644
--- a/Documentation/devicetree/bindings/arm/psci.txt
+++ b/Documentation/devicetree/bindings/arm/psci.txt
@@ -1,16 +1,17 @@
* Power State Coordination Interface (PSCI)
Firmware implementing the PSCI functions described in ARM document number
-ARM DEN 0022A ("Power State Coordination Interface System Software on ARM
+ARM DEN 0022B ("Power State Coordination Interface System Software on ARM
processors") can be used by Linux to initiate various CPU-centric power
operations.
-Issue A of the specification describes functions for CPU suspend, hotplug
-and migration of secure software.
+Issue B of the specification describes functions for CPU suspend, hotplug,
+migration of secure software, and system level reset and powerdown.
Functions are invoked by trapping to the privilege level of the PSCI
firmware (specified as part of the binding below) and passing arguments
-in a manner similar to that specified by AAPCS:
+as defined in ARM document "SMC Calling Convention" (ARM DEN 0028) in a manner
+similar to that specified by AAPCS:
r0 => 32-bit Function ID / return value
{r1 - r3} => Parameters
@@ -21,10 +22,10 @@ to #0.
Main node required properties:
- - compatible : Must be "arm,psci"
+ - compatible : Must contain "arm,psci-0.2" or "arm,psci"
- - method : The method of calling the PSCI firmware. Permitted
- values are:
+ - method : The method defines the calling convention for the PSCI
+ firmware. Permitted values are:
"smc" : SMC #0, with the register assignments specified
in this binding.
@@ -32,24 +33,55 @@ Main node required properties:
"hvc" : HVC #0, with the register assignments specified
in this binding.
+ - psci_version : Function ID for PSCI_VERSION operation. Required for
+ "arm,psci-0.2" compatible version or later.
+
Main node optional properties:
- - cpu_suspend : Function ID for CPU_SUSPEND operation
+ - cpu_suspend[-<32|64] : Function ID for CPU_SUSPEND operation
+
+ - cpu_off : Function ID for CPU_OFF operation
+
+ - cpu_on[-<32|64] : Function ID for CPU_ON operation
+
+ - affinity_info[-<32|64] : Function ID for AFFINITY_INFO operation
- - cpu_off : Function ID for CPU_OFF operation
+ - migrate[-<32|64] : Function ID for MIGRATE operation
- - cpu_on : Function ID for CPU_ON operation
+ - migrate_info_type : Function ID for MIGRATE_INFO_TYPE operation
- - migrate : Function ID for MIGRATE operation
+ - migrate_info_up_cpu[-<32|64] : Function ID for MIGRATE_INFO_UP_CPU operation
+ - system_reset : Function ID for SYSTEM_RESET operation
+
+ - system_off : Function ID for SYSTEM_OFF operation
+
+Some functions have have separate IDs for 32-bit and 64-bit calling
+conventions. These separate function IDs are described with function names with
+"-64" and "-32" suffixes (e.g. cpu_on-64). Where a function name does not have
+a suffix, the ID may be used with either calling convention depending on the
+CPU state -- AArch32 callers should use the 32-bit calling convention, and
+AArch64 callers should use the 64-bit calling convention.
Example:
psci {
- compatible = "arm,psci";
+ compatible = "arm,psci-0.2";
method = "smc";
- cpu_suspend = <0x95c10000>;
- cpu_off = <0x95c10001>;
- cpu_on = <0x95c10002>;
- migrate = <0x95c10003>;
+ psci_version = <0x84000000>;
+ cpu_suspend-32 = <0x84000001>;
+ cpu_suspend-64 = <0xc4000001>;
+ cpu_off = <0x84000002>;
+ cpu_on-32 = <0x84000003>;
+ cpu_on-64 = <0xc4000003>;
+ affinity_info-32 = <0x84000004>;
+ affinity_info-64 = <0xc4000004>;
+ migrate-32 = <0x84000005>;
+ migrate-64 = <0xc4000005>;
+ migrate_info_type = <0x84000006>;
+ migrate_info_up_cpu-32 = <0x84000007>;
+ migrate_info_up_cpu-64 = <0xc4000007>;
+ system_off = <0x84000008>;
+ system_reset = <0x84000009>;
};
+
--
1.8.1.2
next reply other threads:[~2013-09-19 21:24 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-19 21:24 Rob Herring [this message]
2013-09-20 4:36 ` [PATCH v4] dt: update PSCI binding documentation for v0.2 Olof Johansson
2013-09-20 10:20 ` Mark Rutland
2013-09-25 17:15 ` Olof Johansson
2013-09-25 19:20 ` Rob Herring
2013-09-25 19:34 ` Olof Johansson
2013-09-25 20:28 ` Rob Herring
2013-09-26 21:23 ` Matt Sealey
2013-11-15 14:48 ` Stefano Stabellini
2013-11-15 15:39 ` Rob Herring
2013-11-15 15:44 ` Stefano Stabellini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1379625868-5395-1-git-send-email-robherring2@gmail.com \
--to=robherring2@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).