From 319d017e4cdbd8d9c8fc9ca8c9f28108c7e47659 Mon Sep 17 00:00:00 2001 From: Steffen Trumtrar Date: Fri, 26 Aug 2022 08:49:53 +0200 Subject: ARM: socfpga: achilles: fix entry_function usage Since commit 3e62b38ff641f263df2f6c9e3ebda3c7c62f310b we use ENTRY_FUNCTION_WITHSTACK in the bringup barebox. The patch should have removed the arm_setup_stack line as it is already done in the ENTRY_FUNCTION_WITHSTACK macro. Signed-off-by: Steffen Trumtrar Link: https://lore.barebox.org/20220826064956.507125-1-s.trumtrar@pengutronix.de Signed-off-by: Sascha Hauer --- arch/arm/boards/reflex-achilles/lowlevel.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'arch') diff --git a/arch/arm/boards/reflex-achilles/lowlevel.c b/arch/arm/boards/reflex-achilles/lowlevel.c index ec8c126c2a..f5efb961a1 100644 --- a/arch/arm/boards/reflex-achilles/lowlevel.c +++ b/arch/arm/boards/reflex-achilles/lowlevel.c @@ -94,8 +94,6 @@ ENTRY_FUNCTION_WITHSTACK(start_socfpga_achilles_bringup, ARRIA10_STACKTOP, r0, r arm_cpu_lowlevel_init(); - arm_setup_stack(ARRIA10_OCRAM_ADDR + SZ_256K); - relocate_to_current_adr(); setup_c(); -- cgit v1.2.3 From ba741e6b6cec471010d8f5eb40e651b4698a5c47 Mon Sep 17 00:00:00 2001 From: Steffen Trumtrar Date: Fri, 26 Aug 2022 08:49:54 +0200 Subject: ARM: socfpga: add Arria10-specific errata init The Cortex A9 on the Arria10 has multiple known errata. Enable at least the currently supported ones in barebox. Signed-off-by: Steffen Trumtrar Link: https://lore.barebox.org/20220826064956.507125-2-s.trumtrar@pengutronix.de Signed-off-by: Sascha Hauer --- arch/arm/boards/enclustra-aa1/lowlevel.c | 2 ++ arch/arm/mach-socfpga/Makefile | 1 + arch/arm/mach-socfpga/cpu_init.c | 12 ++++++++++++ arch/arm/mach-socfpga/include/mach/init.h | 8 ++++++++ 4 files changed, 23 insertions(+) create mode 100644 arch/arm/mach-socfpga/cpu_init.c create mode 100644 arch/arm/mach-socfpga/include/mach/init.h (limited to 'arch') diff --git a/arch/arm/boards/enclustra-aa1/lowlevel.c b/arch/arm/boards/enclustra-aa1/lowlevel.c index 9f2d66a6bc..e0d15c84a4 100644 --- a/arch/arm/boards/enclustra-aa1/lowlevel.c +++ b/arch/arm/boards/enclustra-aa1/lowlevel.c @@ -19,6 +19,7 @@ #include "pll-config-arria10.c" #include "pinmux-config-arria10.c" #include +#include #define BAREBOX_PART 0 // the bitstream is located in the second partition in the partition table @@ -40,6 +41,7 @@ ENTRY_FUNCTION_WITHSTACK(start_socfpga_aa1_xload, ARRIA10_STACKTOP, r0, r1, r2) int bitstream = 0; arm_cpu_lowlevel_init(); + arria10_cpu_lowlevel_init(); relocate_to_current_adr(); diff --git a/arch/arm/mach-socfpga/Makefile b/arch/arm/mach-socfpga/Makefile index 935270bfad..008dbc3887 100644 --- a/arch/arm/mach-socfpga/Makefile +++ b/arch/arm/mach-socfpga/Makefile @@ -3,6 +3,7 @@ pbl-$(CONFIG_ARCH_SOCFPGA_CYCLONE5) += cyclone5-init.o cyclone5-freeze-controller.o cyclone5-scan-manager.o cyclone5-system-manager.o pbl-$(CONFIG_ARCH_SOCFPGA_CYCLONE5) += cyclone5-clock-manager.o obj-$(CONFIG_ARCH_SOCFPGA_CYCLONE5) += cyclone5-generic.o nic301.o cyclone5-bootsource.o cyclone5-reset-manager.o +lwl-y += cpu_init.o pbl-$(CONFIG_ARCH_SOCFPGA_ARRIA10) += arria10-xload.o \ arria10-xload-emmc.o diff --git a/arch/arm/mach-socfpga/cpu_init.c b/arch/arm/mach-socfpga/cpu_init.c new file mode 100644 index 0000000000..1e0df1f6a5 --- /dev/null +++ b/arch/arm/mach-socfpga/cpu_init.c @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include +#include +#include +#include + +void arria10_cpu_lowlevel_init(void) +{ + enable_arm_errata_794072_war(); + enable_arm_errata_845369_war(); +} diff --git a/arch/arm/mach-socfpga/include/mach/init.h b/arch/arm/mach-socfpga/include/mach/init.h new file mode 100644 index 0000000000..c0e073ee13 --- /dev/null +++ b/arch/arm/mach-socfpga/include/mach/init.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +#ifndef __MACH_INIT_H +#define __MACH_INIT_H + +void arria10_cpu_lowlevel_init(void); + +#endif -- cgit v1.2.3 From a3a71f1cce0820dd86246226680c9afb34271028 Mon Sep 17 00:00:00 2001 From: Steffen Trumtrar Date: Fri, 26 Aug 2022 08:49:55 +0200 Subject: ARM: socfpga: Enclustra AA1: enable ARM errata Signed-off-by: Steffen Trumtrar Link: https://lore.barebox.org/20220826064956.507125-3-s.trumtrar@pengutronix.de Signed-off-by: Sascha Hauer --- arch/arm/boards/enclustra-aa1/lowlevel.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'arch') diff --git a/arch/arm/boards/enclustra-aa1/lowlevel.c b/arch/arm/boards/enclustra-aa1/lowlevel.c index e0d15c84a4..901adc4640 100644 --- a/arch/arm/boards/enclustra-aa1/lowlevel.c +++ b/arch/arm/boards/enclustra-aa1/lowlevel.c @@ -16,6 +16,7 @@ #include #include #include +#include #include "pll-config-arria10.c" #include "pinmux-config-arria10.c" #include @@ -103,6 +104,7 @@ ENTRY_FUNCTION_WITHSTACK(start_socfpga_aa1_bringup, ARRIA10_STACKTOP, r0, r1, r2 void *fdt; arm_cpu_lowlevel_init(); + arria10_cpu_lowlevel_init(); relocate_to_current_adr(); setup_c(); -- cgit v1.2.3 From 3ae5e01aff4c21ab379cfa488711970eb46bd900 Mon Sep 17 00:00:00 2001 From: Steffen Trumtrar Date: Fri, 26 Aug 2022 08:49:56 +0200 Subject: ARM: Socfpga: Achilles: Enable ARM errata Signed-off-by: Steffen Trumtrar Link: https://lore.barebox.org/20220826064956.507125-4-s.trumtrar@pengutronix.de Signed-off-by: Sascha Hauer --- arch/arm/boards/reflex-achilles/lowlevel.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'arch') diff --git a/arch/arm/boards/reflex-achilles/lowlevel.c b/arch/arm/boards/reflex-achilles/lowlevel.c index f5efb961a1..511b41fd01 100644 --- a/arch/arm/boards/reflex-achilles/lowlevel.c +++ b/arch/arm/boards/reflex-achilles/lowlevel.c @@ -16,6 +16,7 @@ #include #include #include +#include #include "pll-config-arria10.c" #include "pinmux-config-arria10.c" #include @@ -41,6 +42,7 @@ ENTRY_FUNCTION_WITHSTACK(start_socfpga_achilles_xload, ARRIA10_STACKTOP, r0, r1, int bitstream = 0; arm_cpu_lowlevel_init(); + arria10_cpu_lowlevel_init(); relocate_to_current_adr(); setup_c(); @@ -93,6 +95,7 @@ ENTRY_FUNCTION_WITHSTACK(start_socfpga_achilles_bringup, ARRIA10_STACKTOP, r0, r void *fdt; arm_cpu_lowlevel_init(); + arria10_cpu_lowlevel_init(); relocate_to_current_adr(); setup_c(); -- cgit v1.2.3