diff mbox

[v9,2/3] Documentation: devicetree: Add new binding for PSCIv0.2

Message ID 1399472847-14377-3-git-send-email-ashwin.chaugule@linaro.org
State New
Headers show

Commit Message

Ashwin Chaugule May 7, 2014, 2:27 p.m. UTC
The PSCI v0.2+ spec defines standard values for PSCI function IDs.
Add a new binding entry so that pre v0.2 implementations can
use DT entries for function IDs and v0.2+ implementations use
standard entries as defined by the PSCIv0.2 specification.

Signed-off-by: Ashwin Chaugule <ashwin.chaugule@linaro.org>
Acked-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/arm/psci.txt | 35 +++++++++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

Comments

Mark Rutland May 12, 2014, 8:54 a.m. UTC | #1
Hi Ashwin,

On Wed, May 07, 2014 at 03:27:26PM +0100, Ashwin Chaugule wrote:
> The PSCI v0.2+ spec defines standard values for PSCI function IDs.
> Add a new binding entry so that pre v0.2 implementations can
> use DT entries for function IDs and v0.2+ implementations use
> standard entries as defined by the PSCIv0.2 specification.
> 
> Signed-off-by: Ashwin Chaugule <ashwin.chaugule@linaro.org>
> Acked-by: Rob Herring <robh@kernel.org>

This looks good to me as a binding, and my prior comments all seem to
have been addressed. So:

Reviewed-by: Mark Rutland <mark.rutland@arm.com>

I have one minor comment regarding the final example. It would be nice
to be a little more explicit about the compatibility story there for
those people who are likely to skim the body of the document and only
read the examples.

[...]

> +Case 3: PSCI v0.2 and PSCI v0.1.
> +
> +	As described above, for compatibility with existing kernels, the
> +	hypervisor will likely want to provide IDs, e.g.

All we'd need here is to point out that the IDs will be ignored by a
PSCI 0.2 capable OS, which will assume the standard PSCI 0.2 IDs.

Could we replace the above with something like:

A DTB may provide IDs for use by kernels without PSCI 0.2 support,
enabling firmware and hypervisors to support existing and new kernels.
These IDs will be ignored by kernels with PSCI 0.2 support, which will
use the standard PSCI 0.2 IDs exclusively.

> +
> +	psci {
> +		compatible = "arm,psci-0.2", "arm,psci";
> +		method = "hvc";
> +
> +		cpu_on = < arbitrary value >;
> +		cpu_off = < arbitrary value >;
> +
> +		...
> +	};

Cheers,
Mark.
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/arm/psci.txt b/Documentation/devicetree/bindings/arm/psci.txt
index 433afe9..d01a90b 100644
--- a/Documentation/devicetree/bindings/arm/psci.txt
+++ b/Documentation/devicetree/bindings/arm/psci.txt
@@ -21,7 +21,15 @@  to #0.
 
 Main node required properties:
 
- - compatible    : Must be "arm,psci"
+ - compatible    : should contain at least one of:
+
+				 * "arm,psci" : for implementations complying to PSCI versions prior to
+					0.2. For these cases function IDs must be provided.
+
+				 * "arm,psci-0.2" : for implementations complying to PSCI 0.2. Function
+					IDs are not required and should be ignored by an OS with PSCI 0.2
+					support, but are permitted to be present for compatibility with
+					existing software when "arm,psci" is later in the compatible list.
 
  - method        : The method of calling the PSCI firmware. Permitted
                    values are:
@@ -45,6 +53,8 @@  Main node optional properties:
 
 Example:
 
+Case 1: PSCI v0.1 only.
+
 	psci {
 		compatible	= "arm,psci";
 		method		= "smc";
@@ -53,3 +63,26 @@  Example:
 		cpu_on		= <0x95c10002>;
 		migrate		= <0x95c10003>;
 	};
+
+
+Case 2: PSCI v0.2 only
+
+	psci {
+		compatible	= "arm,psci-0.2";
+		method		= "smc";
+	};
+
+Case 3: PSCI v0.2 and PSCI v0.1.
+
+	As described above, for compatibility with existing kernels, the
+	hypervisor will likely want to provide IDs, e.g.
+
+	psci {
+		compatible = "arm,psci-0.2", "arm,psci";
+		method = "hvc";
+
+		cpu_on = < arbitrary value >;
+		cpu_off = < arbitrary value >;
+
+		...
+	};