]> git.dujemihanovic.xyz Git - u-boot.git/commit
sunxi: move Cortex SMPEN setting into start.S
authorAndre Przywara <andre.przywara@arm.com>
Sun, 23 Jan 2022 00:27:19 +0000 (00:27 +0000)
committerAndre Przywara <andre.przywara@arm.com>
Fri, 4 Feb 2022 00:09:36 +0000 (00:09 +0000)
commit2564fce7eea33f8828e132d966236e9621bea3cb
treeeee396b78aca58b7af84ba7f2e13ae6360819e9e
parent5bc4cd05d7d4994a1bdea282c0acd7d31b7337ef
sunxi: move Cortex SMPEN setting into start.S

According to their TRMs, Cortex ARMv7 CPUs with SMP support require the
ACTLR.SMPEN bit to be set as early as possible, before any cache or TLB
maintenance operations are done. As we do those things still in start.S,
we need to move the SMPEN bit setting there, too.

This introduces a new ARMv7 wide symbol and code to set bit 6 in ACTLR
very early in start.S, and moves sunxi boards over to use that instead
of the custom code we had in our board.c file (where it was called
technically too late).

In practice we got away with this so far, because at this point all the
other cores were still in reset, so any broadcasting would have been
ignored anyway. But it is architecturally cleaner to do it early, and
we move a core specific piece of code out of board.c.

This also gets rid of the ARM_CORTEX_CPU_IS_UP kludge I introduced a few
years back, and moves the respective logic into the new Kconfig entry.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
arch/arm/Kconfig
arch/arm/cpu/armv7/Kconfig
arch/arm/cpu/armv7/start.S
arch/arm/mach-sunxi/Kconfig
arch/arm/mach-sunxi/board.c