ARM bootm regression

Sascha Hauer s.hauer at pengutronix.de
Wed Oct 21 10:44:04 EDT 2020


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 |



More information about the barebox mailing list