[PATCH v4 3/3] ARM: dts: broadcom: Use CFE CPU bring-up on the XG6846B
Linus Walleij
linusw at kernel.org
Sun Oct 25 00:15:14 PDT 2026
The XG6846B boots through CFE, which parks CPU1 in a holding pen and does
not provide PSCI. Starting Linux from CFE does not install a PSCI
implementation either. The working PSCI interface in newer GenXOS
firmware belongs to a different boot stack.
Disable the inherited PSCI node on this board so Linux does not issue
SMCs to an interface that is absent. Set the CPUs' enable-method to
brcm,bca-smp to select the BCMBCA CFE SMP operations. Describe the CFE
mailbox in CPU1's cpu-release-addr property. Set CPU0's required release
address to zero since it is already online. Keep both CPU nodes enabled
and leave the SoC's PSCI defaults available to other boards.
Also remove no-map from the secondary-boot reservation. Its overlap
with ARM's initial page tables otherwise causes the reservation to be
rejected, leaving CFE's holding pen unprotected.
Reviewed-by: William Zhang <william.zhang at broadcom.com>
Signed-off-by: Linus Walleij <linusw at kernel.org>
---
arch/arm/boot/dts/broadcom/bcm6846-genexis-xg6846b.dts | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/broadcom/bcm6846-genexis-xg6846b.dts b/arch/arm/boot/dts/broadcom/bcm6846-genexis-xg6846b.dts
index a3616fb7b3a8..23145440e7bc 100644
--- a/arch/arm/boot/dts/broadcom/bcm6846-genexis-xg6846b.dts
+++ b/arch/arm/boot/dts/broadcom/bcm6846-genexis-xg6846b.dts
@@ -34,7 +34,7 @@ reserved-memory {
ranges;
secondary-boot at 0 {
- no-map;
+ /* Includes the kernel's initial page tables. */
reg = <0x00000000 0x00008000>;
};
pmc3-firmware at 8000 {
@@ -56,6 +56,22 @@ button-restart {
};
};
+/* CFE parks CPU1 in its holding pen and does not provide PSCI. */
+&{/psci} {
+ status = "disabled";
+};
+
+&CA7_0 {
+ enable-method = "brcm,bca-smp";
+ /* Dummy release address since CPU0 is already online */
+ cpu-release-addr = <0x00000000>;
+};
+
+&CA7_1 {
+ enable-method = "brcm,bca-smp";
+ cpu-release-addr = <0xff800568>;
+};
+
&gpio0 {
status = "okay";
};
--
2.56.0
More information about the linux-arm-kernel
mailing list