diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2023-01-09 14:08:13 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2023-01-10 16:05:16 +0100 |
commit | f0e96243021e3f8875dd8d24e62dd4ae9b6b2df1 (patch) | |
tree | f6bd8f1cf5d4827268b4456ec8c5049dae35cde6 | |
parent | 2a44c999d50f86e232e935dde9fde0fa61d089b2 (diff) | |
download | barebox-f0e96243021e3f8875dd8d24e62dd4ae9b6b2df1.tar.gz barebox-f0e96243021e3f8875dd8d24e62dd4ae9b6b2df1.tar.xz |
ARM: at91: sama5d4: add entry point helpers
Like already done for sama5d2 and sama5d3, provide a set of helpers for
use in device-tree-enabled SAMA5D4 boards.
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Link: https://lore.barebox.org/20230109130822.1657470-3-a.fatoum@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | arch/arm/mach-at91/ddramc.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-at91/include/mach/barebox-arm.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-at91/include/mach/ddramc.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-at91/include/mach/sama5_bootsource.h | 3 |
4 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/mach-at91/ddramc.c b/arch/arm/mach-at91/ddramc.c index 6383789f64..1e94fbf9ee 100644 --- a/arch/arm/mach-at91/ddramc.c +++ b/arch/arm/mach-at91/ddramc.c @@ -33,6 +33,13 @@ void __noreturn sama5d3_barebox_entry(unsigned int r4, void *boarddata) barebox_arm_entry(SAMA5_DDRCS, at91sama5d3_get_ddram_size(), boarddata); } +void __noreturn sama5d4_barebox_entry(unsigned int r4, void *boarddata) +{ + __sama5d4_stashed_bootrom_r4 = r4; + + barebox_arm_entry(SAMA5_DDRCS, at91sama5d4_get_ddram_size(), + boarddata); +} static int sama5_ddr_probe(struct device *dev) { diff --git a/arch/arm/mach-at91/include/mach/barebox-arm.h b/arch/arm/mach-at91/include/mach/barebox-arm.h index f6bdd5ab23..707444180c 100644 --- a/arch/arm/mach-at91/include/mach/barebox-arm.h +++ b/arch/arm/mach-at91/include/mach/barebox-arm.h @@ -5,6 +5,7 @@ #include <asm/barebox-arm.h> #include <asm/common.h> #include <mach/sama5d3.h> +#include <mach/sama5d4.h> #define SAMA5_ENTRY_FUNCTION(name, stack_top, r4) \ void name (u32 r0, u32 r1, u32 r2, u32 r3); \ @@ -29,4 +30,7 @@ #define SAMA5D3_ENTRY_FUNCTION(name, r4) \ SAMA5_ENTRY_FUNCTION(name, SAMA5D3_SRAM_BASE + SAMA5D3_SRAM_SIZE, r4) +#define SAMA5D4_ENTRY_FUNCTION(name, r4) \ + SAMA5_ENTRY_FUNCTION(name, SAMA5D4_SRAM_BASE + SAMA5D4_SRAM_SIZE, r4) + #endif diff --git a/arch/arm/mach-at91/include/mach/ddramc.h b/arch/arm/mach-at91/include/mach/ddramc.h index 7daef17636..d09392262e 100644 --- a/arch/arm/mach-at91/include/mach/ddramc.h +++ b/arch/arm/mach-at91/include/mach/ddramc.h @@ -34,5 +34,6 @@ void at91_lpddr1_sdram_initialize(void __iomem *base_address, void __noreturn sama5d2_barebox_entry(unsigned int r4, void *boarddata); void __noreturn sama5d3_barebox_entry(unsigned int r4, void *boarddata); +void __noreturn sama5d4_barebox_entry(unsigned int r4, void *boarddata); #endif /* #ifndef __DDRAMC_H__ */ diff --git a/arch/arm/mach-at91/include/mach/sama5_bootsource.h b/arch/arm/mach-at91/include/mach/sama5_bootsource.h index 931e1f29c8..b31d20bc7c 100644 --- a/arch/arm/mach-at91/include/mach/sama5_bootsource.h +++ b/arch/arm/mach-at91/include/mach/sama5_bootsource.h @@ -49,6 +49,9 @@ static inline int sama5_bootsource_instance(u32 reg) #define __sama5d3_stashed_bootrom_r4 \ (*(volatile u32 *)(SAMA5D3_SRAM_BASE + SAMA5D3_SRAM_SIZE - 0x4)) +#define __sama5d4_stashed_bootrom_r4 \ + (*(volatile u32 *)(SAMA5D4_SRAM_BASE + SAMA5D4_SRAM_SIZE - 0x4)) + static inline void __noreturn sama5_boot_xload(void __noreturn (*bb)(void), u32 r4) { asm volatile("mov r4, %0" : : "r"(r4) : ); |