arm64: Fix PSCI part of booting.txt
PATCH 1/1 arm64: Fix PSCI part of booting.txt
Correct the PSCI booting text to match the requirements of the PSCI spec.
---
Hi Will,
Based on the PSCI doc (DEN 0022B.b), to use CPU_ON the cpu can only be powered down with CPU_OFF, and it seems from the doc that the code that calls CPU_OFF could be anywhere in memory, since once the CPU_OFF call is made the cpu is powered off and never executes any more instructions from memory. CPU_ON is given an entry_point_address parameter, which would be specific to the code calling CPU_ON.
Did I misunderstand something, or should we change this text as below?
-Geoff
Documentation/arm64/booting.txt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)
Documentation/arm64/booting.txt +6 -7
@@ -167,13 +167,12 @@ following manner: value, so CPUs must convert the read value to their native endianness before jumping to it. -- CPUs with a "psci" enable method should remain outside of - the kernel (i.e. outside of the regions of memory described to the - kernel in the memory node, or in a reserved area of memory described - to the kernel by a /memreserve/ region in the device tree). The - kernel will issue CPU_ON calls as described in ARM document number ARM - DEN 0022A ("Power State Coordination Interface System Software on ARM - processors") to bring CPUs into the kernel. +- CPUs with a "psci" enable method should use the PSCI CPU control + functions described in ARM document number ARM DEN 0022A or newer + ("Power State Coordination Interface System Software on ARM + processors"). The boot loader must power off these CPU's using the + PSCI CPU_OFF function. The kernel will issue CPU_ON calls to bring + CPUs into the kernel. The device tree should contain a 'psci' node, as described in Documentation/devicetree/bindings/arm/psci.txt.
Signature · 1 line
1.9.1
PATCH 1/1 arm64: Fix PSCI part of booting.txt
Hi Geoff,
Quoted 16 lines · Geoff Levand
Correct the PSCI booting text to match the requirements of the PSCI spec.
Signed-off-by Geoff Levand <[email protected]>---
Hi Will,Based on the PSCI doc (DEN 0022B.b), to use
CPU_ONthe cpu can only be powered down withCPU_OFF, and it seems from the doc that the code that callsCPU_OFFcould be anywhere in memory, since once theCPU_OFFcall is made the cpu is powered off and never executes any more instructions from memory.CPU_ONis given anentry_point_addressparameter, which would be specific to the code callingCPU_ON.
Quoted 2 lines
Did I misunderstand something, or should we change this text as below?
The current wording is my fault and is an artifact of working on the bootwrapper, where CPUs which are off from the perspective of the PSCI state machine are actually spinning within the PSCI implementation.
This admittedly is an implementation detail that does not matter to the kernel, and in a real implementation I would certainly not expect the CPUs to be spinning in a non-secure pen.
Quoted 15 lines
(quoted diff) +0
-1-Geoff Documentation/arm64/booting.txt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)Documentation/arm64/booting.txt +0
-1@@ -167,13 +167,12 @@ following manner: value, so CPUs must convert the read value to their native endianness before jumping to it. -- CPUs with a "psci" enable method should remain outside of
Documentation/arm64/booting.txt following manner: · line 173
Quoted 10 lines
Documentation/arm64/booting.txt +4
-6- the kernel (i.e. outside of the regions of memory described to the - kernel in the memory node, or in a reserved area of memory described - to the kernel by a /memreserve/ region in the device tree). The - kernel will issue CPU_ON calls as described in ARM document number ARM - DEN 0022A ("Power State Coordination Interface System Software on ARM - processors") to bring CPUs into the kernel. +- CPUs with a "psci" enable method should use the PSCI CPU control + functions described in ARM document number ARM DEN 0022A or newer + ("Power State Coordination Interface System Software on ARM + processors"). The boot loader must power off these CPU's using the
Nit: s/CPU's/CPUs/
Documentation/arm64/booting.txt following manner: · line 175
Quoted 2 lines
Documentation/arm64/booting.txt +2
-0+ PSCI CPU_OFF function. The kernel will issue CPU_ON calls to bring + CPUs into the kernel.
As the bootloader might never bring those secondaries online, it would be better to state that those secondaries are in OFF state from the perspective of the PSCI state machine.
Otherwise, this looks fine to me.
Cheers,
Mark.
PATCH v2 1/1 arm64: Fix PSCI part of booting.txt
In reply to Geoff LevandCorrect the PSCI booting text to reflect the requirements of the PSCI spec.
---
v2: Change to mention online CPUs only.
Documentation/arm64/booting.txt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)
(quoted diff) +0 -0
b/Documentation/arm64/booting.txt
index beb754e..e5b9c81 100644
Documentation/arm64/booting.txt +0 -5
@@ -167,13 +167,12 @@ following manner: value, so CPUs must convert the read value to their native endianness before jumping to it. -- CPUs with a "psci" enable method should remain outside of - the kernel (i.e. outside of the regions of memory described to the - kernel in the memory node, or in a reserved area of memory described - to the kernel by a /memreserve/ region in the device tree). The - kernel will issue CPU_ON calls as described in ARM document number
ARM
- DEN 0022A ("Power State Coordination Interface System Software on ARM
- processors") to bring CPUs into the kernel.
+- CPUs with a "psci" enable method should use the PSCI CPU control
+ functions described in ARM document number ARM DEN 0022A or newer
+ ("Power State Coordination Interface System Software on ARM
+ processors"). The boot loader must power off any of these CPUs that
+ have been brought online using the PSCI CPU_OFF function. The kernel
+ will issue CPU_ON calls to bring CPUs into the kernel. The device tree should contain a 'psci' node, as described in Documentation/devicetree/bindings/arm/psci.txt.
Signature · 1 line
1.9.1
PATCH v2 1/1 arm64: Fix PSCI part of booting.txt
Quoted 25 lines · Geoff Levand
Correct the PSCI booting text to reflect the requirements of the PSCI spec.
Signed-off-by Geoff Levand <[email protected]>---
v2: Change to mention online CPUs only.Documentation/arm64/booting.txt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)Documentation/arm64/booting.txt +0
-5@@ -167,13 +167,12 @@ following manner: value, so CPUs must convert the read value to their native endianness before jumping to it. -- CPUs with a "psci" enable method should remain outside of - the kernel (i.e. outside of the regions of memory described to the - kernel in the memory node, or in a reserved area of memory described - to the kernel by a /memreserve/ region in the device tree). The - kernel will issue CPU_ON calls as described in ARM document numberARM
Documentation/arm64/booting.txt
Quoted 8 lines
Documentation/arm64/booting.txt +6
-2- DEN 0022A ("Power State Coordination Interface System Software on ARM - processors") to bring CPUs into the kernel. +- CPUs with a "psci" enable method should use the PSCI CPU control + functions described in ARM document number ARM DEN 0022A or newer + ("Power State Coordination Interface System Software on ARM + processors"). The boot loader must power off any of these CPUs that + have been brought online using the PSCI CPU_OFF function. The kernel + will issue CPU_ON calls to bring CPUs into the kernel.
Can we not just say that the bootloader must ensure these CPUs are in the OFF state? That covers those onlined then offlined by the bootloader and any others (which we don't currently define the state of).
Mark.