]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
stm32mp: Increase the reserved memory in board_get_usable_ram_top
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Fri, 7 May 2021 12:50:34 +0000 (14:50 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 7 Jun 2021 14:48:40 +0000 (10:48 -0400)
Add 8M for the U-Boot reserved memory (display, fdt, gd, ...)
mapped cacheable before relocation.

Without this patch the device tree, located before the MALLOC area
is not tagged cacheable just after relocation, before mmu reconfiguration.

This patch reduces the duration for device tree parsing in
lmb_init_and_reserve.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
arch/arm/mach-stm32mp/dram_init.c

index 66e81baccaff0c2c8fcd8a676a749635b0295d21..3c097029bda0be128112df0cadce4e7753bccf5d 100644 (file)
@@ -50,13 +50,16 @@ ulong board_get_usable_ram_top(ulong total_size)
        lmb_init(&lmb);
        lmb_add(&lmb, gd->ram_base, gd->ram_size);
        boot_fdt_add_mem_rsv_regions(&lmb, (void *)gd->fdt_blob);
-       size = ALIGN(CONFIG_SYS_MALLOC_LEN + total_size, MMU_SECTION_SIZE),
+       /* add 8M for reserved memory for display, fdt, gd,... */
+       size = ALIGN(SZ_8M + CONFIG_SYS_MALLOC_LEN + total_size, MMU_SECTION_SIZE),
        reg = lmb_alloc(&lmb, size, MMU_SECTION_SIZE);
 
        if (!reg)
                reg = gd->ram_top - size;
 
-       mmu_set_region_dcache_behaviour(reg, size, DCACHE_DEFAULT_OPTION);
+       /* before relocation, mark the U-Boot memory as cacheable by default */
+       if (!(gd->flags & GD_FLG_RELOC))
+               mmu_set_region_dcache_behaviour(reg, size, DCACHE_DEFAULT_OPTION);
 
        return reg + size;
 }