Board code will need to find out early endmem to use newly defined scratch space, so factor out a new helper function to get earlymem size. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- arch/arm/mach-imx/esdctl.c | 11 ++++++++--- arch/arm/mach-imx/include/mach/esdctl.h | 3 +++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-imx/esdctl.c b/arch/arm/mach-imx/esdctl.c index a55ee06b8346..8de20ed42338 100644 --- a/arch/arm/mach-imx/esdctl.c +++ b/arch/arm/mach-imx/esdctl.c @@ -923,7 +923,7 @@ void __noreturn vf610_barebox_entry(void *boarddata) boarddata); } -static void __noreturn imx8m_barebox_entry(void *boarddata, unsigned buswidth) +resource_size_t imx8m_barebox_earlymem_size(unsigned buswidth) { resource_size_t size; @@ -937,8 +937,13 @@ static void __noreturn imx8m_barebox_entry(void *boarddata, unsigned buswidth) * pool placement. The rest of the system should be able to * detect and utilize full amount of memory. */ - size = min_t(resource_size_t, SZ_4G - MX8M_DDR_CSD1_BASE_ADDR, size); - barebox_arm_entry(MX8M_DDR_CSD1_BASE_ADDR, size, boarddata); + return min_t(resource_size_t, SZ_4G - MX8M_DDR_CSD1_BASE_ADDR, size); +} + +static void __noreturn imx8m_barebox_entry(void *boarddata, unsigned buswidth) +{ + barebox_arm_entry(MX8M_DDR_CSD1_BASE_ADDR, + imx8m_barebox_earlymem_size(buswidth), boarddata); } void __noreturn imx8mm_barebox_entry(void *boarddata) diff --git a/arch/arm/mach-imx/include/mach/esdctl.h b/arch/arm/mach-imx/include/mach/esdctl.h index b0b531aed4a2..01533478cce8 100644 --- a/arch/arm/mach-imx/include/mach/esdctl.h +++ b/arch/arm/mach-imx/include/mach/esdctl.h @@ -131,6 +131,8 @@ #define ESDCFGx_tRC_16 0x0000000f #ifndef __ASSEMBLY__ +#include <linux/types.h> + void __noreturn imx1_barebox_entry(void *boarddata); void __noreturn imx25_barebox_entry(void *boarddata); void __noreturn imx27_barebox_entry(void *boarddata); @@ -148,6 +150,7 @@ void __noreturn imx8mq_barebox_entry(void *boarddata); void __noreturn imx7d_barebox_entry(void *boarddata); #define imx6sx_barebox_entry(boarddata) imx6ul_barebox_entry(boarddata) void imx_esdctl_disable(void); +resource_size_t imx8m_barebox_earlymem_size(unsigned buswidth); #endif #endif /* __MACH_ESDCTL_V2_H */ -- 2.30.2