Apparently, we have an overlap between ramoops/barebox proper and the early malloc area. Before fixing that, let's add a diagram explaining the current state of affairs. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- arch/arm/include/asm/barebox-arm.h | 36 ++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/arch/arm/include/asm/barebox-arm.h b/arch/arm/include/asm/barebox-arm.h index 4d70360b9121..30834233fb96 100644 --- a/arch/arm/include/asm/barebox-arm.h +++ b/arch/arm/include/asm/barebox-arm.h @@ -52,6 +52,42 @@ static inline void arm_fixup_vectors(void) void *barebox_arm_boot_dtb(void); +/* + * ----------------------------- endmem ------------------------------ + * ↑ + * OPTEE_SIZE (depends on CONFIG_OPTEE_SIZE) + * ↓ + * ------------------------- arm_mem_optee() ------------------------- + * ↑ + * SZ_32K + * ↓ + * ------------------------ arm_mem_scratch() ------------------------ + * ↑ + * STACK_SIZE + * ↓ + * ------------------------- arm_mem_stack() ------------------------- + * ↑ + * PAGE_SIZE (depends on CONFIG_STACK_GUARD_PAGE) + * ↓ + * ----------------------- arm_mem_guard_page() ---------------------- + * ↑ + * ARM_EARLY_PAGETABLE_SIZE + * ↓ + * ------------ arm_mem_ttb() / arm_mem_early_malloc_end() ------------ + * ↑ ↑ + * CONFIG_FS_PSTORE_RAMOOPS_SIZE SZ_128K + * (depends on FS_PSTORE_RAMOOPS) | + * | ↓ + * | ------ arm_mem_early_malloc() --- + * ↓ + * ------------------------- arm_mem_ramoops() ------------------------ + * ↑ + * (barebox uncompressed image size + * + BSS) rounded to SZ_1M + * ↓ + * ---------------------- arm_mem_barebox_image() --------------------- + */ + static inline unsigned long arm_mem_optee(unsigned long endmem) { return endmem - OPTEE_SIZE; -- 2.39.2