The xload function allows to build the FSBL without piggy data and load the SSBL from QSPI.
Signed-off-by: Michael Tretter <[email protected]> --- arch/arm/mach-socfpga/atf.c | 10 ++++++++++ include/mach/socfpga/generic.h | 1 + 2 files changed, 11 insertions(+) diff --git a/arch/arm/mach-socfpga/atf.c b/arch/arm/mach-socfpga/atf.c index a59a73d1c31f..7583a20b16f5 100644 --- a/arch/arm/mach-socfpga/atf.c +++ b/arch/arm/mach-socfpga/atf.c @@ -128,6 +128,16 @@ static void agilex5_el3_init(void) agilex5_start_image_via_tfa(bl33); } +void __noreturn agilex5_barebox_entry_xload(void) +{ + /* Using xload in EL1 is not supported */ + if (current_el() != 3) + hang(); + + agilex5_el3_init(); + __builtin_unreachable(); +} + void __noreturn agilex5_barebox_entry(void *fdt) { phys_addr_t membase; diff --git a/include/mach/socfpga/generic.h b/include/mach/socfpga/generic.h index 16e117f4206c..a2a3fad58b18 100644 --- a/include/mach/socfpga/generic.h +++ b/include/mach/socfpga/generic.h @@ -101,6 +101,7 @@ static inline void arria10_watchdog_disable(void) {} int agilex5_clk_init(void); void __noreturn agilex5_barebox_entry(void *fdt); +void __noreturn agilex5_barebox_entry_xload(void); static inline void __udelay(unsigned us) { -- 2.47.3
