
On 3/11/23 11:57, Pali Rohár wrote:
Same change as was done for mvebu in commit 5bb2c550b11e ("arm: mvebu: Move internal registers in arch_very_early_init() function") but for kirkwood.
Signed-off-by: Pali Rohár pali@kernel.org
Applied to u-boot-marvell/next
Thanks, Stefan
Hello! Please test this RFC patch on more Kirkwood boards if there is any issue with it.
arch/arm/mach-kirkwood/Kconfig | 2 ++ arch/arm/mach-kirkwood/Makefile | 1 + arch/arm/mach-kirkwood/cpu.c | 3 --- arch/arm/mach-kirkwood/lowlevel.S | 12 ++++++++++++ 4 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 arch/arm/mach-kirkwood/lowlevel.S
diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig index c8a193dd4cdf..ba39e9ae416e 100644 --- a/arch/arm/mach-kirkwood/Kconfig +++ b/arch/arm/mach-kirkwood/Kconfig @@ -5,9 +5,11 @@ config FEROCEON_88FR131
config KW88F6192 bool
select ARCH_VERY_EARLY_INIT
config KW88F6281 bool
select ARCH_VERY_EARLY_INIT
config SHEEVA_88SV131 bool
diff --git a/arch/arm/mach-kirkwood/Makefile b/arch/arm/mach-kirkwood/Makefile index 3b2eef8d5419..0fb5a2326f5f 100644 --- a/arch/arm/mach-kirkwood/Makefile +++ b/arch/arm/mach-kirkwood/Makefile @@ -6,6 +6,7 @@
obj-y = cpu.o obj-y += cache.o +obj-y += lowlevel.o obj-y += mpp.o
# cpu.o and cache.o contain CP15 instructions which cannot be run in diff --git a/arch/arm/mach-kirkwood/cpu.c b/arch/arm/mach-kirkwood/cpu.c index df3e8f11782a..2b493b36c20d 100644 --- a/arch/arm/mach-kirkwood/cpu.c +++ b/arch/arm/mach-kirkwood/cpu.c @@ -189,9 +189,6 @@ int arch_cpu_init(void) struct kwcpu_registers *cpureg = (struct kwcpu_registers *)KW_CPU_REG_BASE;
- /* Linux expects the internal registers to be at 0xf1000000 */
- writel(KW_REGS_PHY_BASE, KW_OFFSET_REG);
- /* Enable and invalidate L2 cache in write through mode */ writel(readl(&cpureg->l2_cfg) | 0x18, &cpureg->l2_cfg); invalidate_l2_cache();
diff --git a/arch/arm/mach-kirkwood/lowlevel.S b/arch/arm/mach-kirkwood/lowlevel.S new file mode 100644 index 000000000000..3b339f97f056 --- /dev/null +++ b/arch/arm/mach-kirkwood/lowlevel.S @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0+ */
+#include <config.h> +#include <linux/linkage.h>
+ENTRY(arch_very_early_init)
- /* Move internal registers from KW_OFFSET_REG to KW_REGS_PHY_BASE */
- ldr r0, =KW_REGS_PHY_BASE
- ldr r1, =KW_OFFSET_REG
- str r0, [r1]
- bx lr
+ENDPROC(arch_very_early_init)
Viele Grüße, Stefan Roese