On Thu, Oct 22, 2020 at 09:13:27AM +0300, Alexander Shiyan wrote: > >Среда, 21 октября 2020, 17:44 +03:00 от Sascha Hauer <s.hauer@xxxxxxxxxxxxxx>: > > > >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? > > Works fine with the following modification: > > /* > * Make sure we do not place the image outside of the > * available memory. > */ > if (((kaddr + image_size + spacing) > mem_end) && > ((mem_end - image_size - spacing) >= mem_start)) > kaddr = mem_end - image_size - spacing; Ok, nice. Can you send a formal patch for inclusion? 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