[PATCH v4 3/3] ARM: dts: broadcom: Use CFE CPU bring-up on the XG6846B
William Zhang
william.zhang at broadcom.com
Sun Oct 25 11:01:58 PDT 2026
On Sun, Oct 25, 2026 at 12:15 AM Linus Walleij <linusw at kernel.org> wrote:
>
> 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>;
Nitpicky. In your dt-bindings patch, you use <0xff800568> as example.
I guess it is better to use the same here to keep consistent, although
what value doe not really matter.
> +};
> +
> +&CA7_1 {
> + enable-method = "brcm,bca-smp";
> + cpu-release-addr = <0xff800568>;
> +};
> +
> &gpio0 {
> status = "okay";
> };
>
> --
> 2.56.0
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5473 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20261025/3e5d54cf/attachment.p7s>
More information about the linux-arm-kernel
mailing list