On Fri, Oct 16, 2020 at 11:49:16AM +0300, Alexander Shiyan wrote: > Hello. > > Found a regression in arm/lib32/bootm.c after a patch > "ARM: bootm: make sure we place the kernel in free memory". > > The initial memory size for the board is set to 8 MB (before reading the real value from DT), You could read the real value from DT earlier using libfdt, see arch/arm/cpu/board-dt-2nd.c for usage examples. That doesn't solve it of course when your board really has only 8MB memory. > so the stack, malloc_space, etc. are placed in the initial 8M space. > Then get_kernel_addresses() gets the real SDRAM area (for my board it is 64M), > but decreases this size by the first children size (malloc_space), > so mem_end is incorrect in this case. Does an additional: if (kaddr < mem_start) kaddr = mem_start; help? Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox