devicetree: bindings: separate CPU enable method descriptions
Subsystems (3)
PATCH v4 1/1 devicetree: bindings: separate CPU enable method descriptions
The bindings for CPU enable methods are defined in ".../arm/cpus.txt". As additional 32-bit ARM CPUS are converted to use the "enable-method" CPU property to imply a particular set of SMP operations to use, the list of these methods is likely to become unwieldy. The current documentation already contains several property descriptions that are meaningful only for certain enable methods.
This patch defines a new Documentation subdirectory whose purpose is to give each CPU enable method its own place to define how and when it's used, as well as what other properties (optional or required) are associated with the method. The existing enable method documentation is expanded and moved from ".../arm/cpus.txt" into new files accordingly.
---
v4 - Rebased on top of v3.16-rc1.
- Added description files for recently-added enable methods:
"allwinner,sun6i-a31"
"marvell,armada-375-smp"
"marvell,armada-380-smp"
"marvell,armada-xp-smp"
"rockchip,rk3066-smp"
- Updated "psci.txt" with a 32-bit ARM example.v3 - Got rid of contrived examples.
- Identified some compatible CPUs more generically (e.g. using "Any AArch64 CPU") rather than using only specific compatible string values.
- Fixed and reworded the "psci" description (without incorporating "arm/psci.txt").
- Now provide a more real example for the "spin-table" method.
v2 - Rename "arm,psci.txt" to be "psci.txt" and fix its content.
.../bindings/arm/cpu-enable-method/README | 20 +++++++ .../arm/cpu-enable-method/allwinner,sun6i-a31 | 44 +++++++++++++++ .../arm/cpu-enable-method/marvell,armada-xp-smp | 34 +++++++++++ .../arm/cpu-enable-method/marvell,armada375-smp | 31 +++++++++++ .../arm/cpu-enable-method/marvell,armada380-smp | 32 +++++++++++ .../bindings/arm/cpu-enable-method/psci.txt | 65 ++++++++++++++++++++++ .../arm/cpu-enable-method/qcom,gcc-msm8660 | 42 ++++++++++++++ .../arm/cpu-enable-method/qcom,kpss-acc-v1 | 56 +++++++++++++++++++ .../arm/cpu-enable-method/qcom,kpss-acc-v2 | 56 +++++++++++++++++++ .../arm/cpu-enable-method/rockchip,rk3066-smp | 32 +++++++++++ .../bindings/arm/cpu-enable-method/spin-table.txt | 55 ++++++++++++++++++ Documentation/devicetree/bindings/arm/cpus.txt | 29 +--------- 12 files changed, 470 insertions(+), 26 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/cpu-enable-method/README create mode 100644 Documentation/devicetree/bindings/arm/cpu-enable-method/allwinner,sun6i-a31 create mode 100644 Documentation/devicetree/bindings/arm/cpu-enable-method/marvell,armada-xp-smp create mode 100644 Documentation/devicetree/bindings/arm/cpu-enable-method/marvell,armada375-smp create mode 100644 Documentation/devicetree/bindings/arm/cpu-enable-method/marvell,armada380-smp create mode 100644 Documentation/devicetree/bindings/arm/cpu-enable-method/psci.txt create mode 100644 Documentation/devicetree/bindings/arm/cpu-enable-method/qcom,gcc-msm8660 create mode 100644 Documentation/devicetree/bindings/arm/cpu-enable-method/qcom,kpss-acc-v1 create mode 100644 Documentation/devicetree/bindings/arm/cpu-enable-method/qcom,kpss-acc-v2 create mode 100644 Documentation/devicetree/bindings/arm/cpu-enable-method/rockchip,rk3066-smp create mode 100644 Documentation/devicetree/bindings/arm/cpu-enable-method/spin-table.txt
Documentation/devicetree/bindings/arm/cpu-enable-method/README new file +20 -0
@@ -0,0 +1,20 @@ +========================== +CPU enable-method bindings +========================== + +The device tree describes the layout of CPUs in a machine in a single "cpus" +node, which in turn contains a number of "cpu" sub-nodes defining properties +for each cpu. + +For multiprocessing configurations, CPU cores can be individually enabled +and disabled. The enabling capability is used for SMP startup as well as +CPU hotplug. A CPU enable method--normally specified in the device tree +using an "enable-method" property--defines how cores are enabled. If all +CPUs in a machine use the same enable method and related property values, +these properties should be defined in the "cpus" node, which associates the +property values with all CPUs. Alternatively, every "cpu" node can define +its "enable-method" separately. + +Documents in this directory define how each of the CPU enable methods are to +be used, as well the names and possible values of related properties that +are required by or affect each enable method.
Documentation/devicetree/bindings/arm/cpu-enable-method/allwinner,sun6i-a31 new file +44 -0
44 lines not on this page · raw message
Documentation/devicetree/bindings/arm/cpu-enable-method/marvell,armada-xp-smp new file +34 -0
@@ -0,0 +1,34 @@ +=========================================================== +Secondary CPU enable-method "marvell,armada-xp-smp" binding +=========================================================== + +This document describes the "marvell,armada-xp-smp" method for enabling +CPUs. This enable method should be used in the "cpus" node, but can +also be defined in individual "cpu" nodes. + +Enable method name: "marvell,armada-xp-smp" +Compatible machines: "marvell,armadaxp-mv78230" + "marvell,armadaxp-mv78260 + "marvell,armadaxp-mv78460" +Compatible cpu: "marvell,sheeva-v7" +Related properties: (none) + +Example: + + cpus { + #address-cells = <1>; + #size-cells = <0>; + enable-method = "marvell,armada-xp-smp"; + + cpu@0 { + device_type = "cpu"; + compatible = "marvell,sheeva-v7"; + reg = <0>; + }; + + cpu@1 { + device_type = "cpu"; + compatible = "marvell,sheeva-v7"; + reg = <1>; + }; + };
Documentation/devicetree/bindings/arm/cpu-enable-method/marvell,armada375-smp new file +31 -0
@@ -0,0 +1,31 @@ +============================================================ +Secondary CPU enable-method "marvell,armada-375-smp" binding +============================================================ + +This document describes the "marvell,armada-375-smp" method for enabling +CPUs. This enable method should be used in the "cpus" node, but can +also be defined in individual "cpu" nodes. + +Enable method name: "marvell,armada-375-smp" +Compatible machine: "marvell,armada375" +Compatible cpu: "arm,cortex-a9" +Related properties: (none) + +Example: + + cpus { + #address-cells = <1>; + #size-cells = <0>; + enable-method = "marvell,armada-375-smp"; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0>; + }; + cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <1>; + }; + };
Documentation/devicetree/bindings/arm/cpu-enable-method/marvell,armada380-smp new file +32 -0
@@ -0,0 +1,32 @@ +=========================================================== +Secondary CPU enable-method "marvell,armada380-smp" binding +=========================================================== + +This document describes the "marvell,armada380-smp" method for enabling +CPUs. This enable method should be used in the "cpus" node, but can +also be defined in individual "cpu" nodes. + +Enable method name: "marvell,armada-380-smp" +Compatible machine: "marvell,armada380" + "marvell,armada385" +Compatible cpu: "arm,cortex-a9" +Related properties: (none) + +Example: + + cpus { + #address-cells = <1>; + #size-cells = <0>; + enable-method = "marvell,armada-380-smp"; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0>; + }; + cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <1>; + }; + };
Documentation/devicetree/bindings/arm/cpu-enable-method/psci.txt new file +65 -0
65 lines not on this page · raw message
Documentation/devicetree/bindings/arm/cpu-enable-method/qcom,gcc-msm8660 new file +42 -0
42 lines not on this page · raw message
Documentation/devicetree/bindings/arm/cpu-enable-method/qcom,kpss-acc-v1 new file +56 -0
56 lines not on this page · raw message
Documentation/devicetree/bindings/arm/cpu-enable-method/qcom,kpss-acc-v2 new file +56 -0
56 lines not on this page · raw message
Documentation/devicetree/bindings/arm/cpu-enable-method/rockchip,rk3066-smp new file +32 -0
@@ -0,0 +1,32 @@ +========================================================= +Secondary CPU enable-method "rockchip,rk3066-smp" binding +========================================================= + +This document describes the "rockchip,rk3066-smp" method for enabling +CPUs. This enable method should be used in the "cpus" node, but can +also be defined in individual "cpu" nodes. + +Enable method name: "rockchip,rk3066-smp" +Compatible machine: "rockchip,rk3066a" + "rockchip,rk3188" +Compatible cpu: "arm,cortex-a9" +Related properties: (none) + +Example: + + cpus { + #address-cells = <1>; + #size-cells = <0>; + enable-method = "rockchip,rk3066-smp"; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0>; + }; + cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <1>; + }; + };
Documentation/devicetree/bindings/arm/cpu-enable-method/spin-table.txt new file +55 -0
55 lines not on this page · raw message
Documentation/devicetree/bindings/arm/cpus.txt +3 -26
@@ -191,30 +191,8 @@ nodes to be present and contain the properties described below. "qcom,kpss-acc-v1" "qcom,kpss-acc-v2" "rockchip,rk3066-smp" - - - cpu-release-addr - Usage: required for systems that have an "enable-method" - property value of "spin-table". - Value type: <prop-encoded-array> - Definition: - # On ARM v8 64-bit systems must be a two cell - property identifying a 64-bit zero-initialised - memory location. - - - qcom,saw - Usage: required for systems that have an "enable-method" - property value of "qcom,kpss-acc-v1" or - "qcom,kpss-acc-v2" - Value type: <phandle> - Definition: Specifies the SAW[1] node associated with this CPU. - - - qcom,acc - Usage: required for systems that have an "enable-method" - property value of "qcom,kpss-acc-v1" or - "qcom,kpss-acc-v2" - Value type: <phandle> - Definition: Specifies the ACC[2] node associated with this CPU. - + Details about use of these CPU enable methods is documented + elsewhere[1]. Example 1 (dual-cluster big.LITTLE system 32-bit):
@@ -409,5 +387,4 @@ cpus { }; -- -[1] arm/msm/qcom,saw2.txt -[2] arm/msm/qcom,kpss-acc.txt +[1] arm/cpu-enable-method/
Signature · 1 line
1.9.1