]> www.infradead.org Git - users/jedix/linux-maple.git/commit
arm64: dts: broadcom: bcmbca: bcm4908: Reserve CFE stub area
authorSam Edwards <cfsworks@gmail.com>
Sat, 5 Oct 2024 05:01:54 +0000 (22:01 -0700)
committerFlorian Fainelli <florian.fainelli@broadcom.com>
Tue, 17 Dec 2024 19:39:20 +0000 (11:39 -0800)
commitcef313931d6424982941e1cb40b89daba68663ff
treeecd200883f58f2cacde7b463773be1ea1ce387a0
parent44308ef54af768d5ea7a5d17527ef30cbd16e7be
arm64: dts: broadcom: bcmbca: bcm4908: Reserve CFE stub area

The CFE bootloader places a stub program in the first page of physical
memory to hold the secondary CPUs until the boot CPU writes the release
address, but does not splice a /reserved-memory node into the FDT to
protect it. If Linux overwrites this program before execution reaches
smp_prepare_cpus(), the secondary CPUs may become inaccessible.

This is only a problem with CFE, and then only until the secondary CPUs
are brought online. Ideally, there would be some hypothetical mechanism
we could use to indicate that this area of memory is sensitive only
during boot. But as there is none, and since it is such a small amount
of memory, it is easiest to reserve it unconditionally.

Therefore, add a /reserved-memory node to bcm4908.dtsi to protect the
first 4KiB of physical memory.

Signed-off-by: Sam Edwards <CFSworks@gmail.com>
Link: https://lore.kernel.org/r/20241005050155.61103-2-CFSworks@gmail.com
Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi