ARM bootm regression

Sascha Hauer s.hauer at pengutronix.de
Mon Oct 19 05:05:38 EDT 2020


Hi Alexander,

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),
> 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.
> 
> barebox 2020.05.0-00393-gf5e96a296-dirty #80 Thu Oct 15 13:08:54 MSK 2020
> Board: Mega-Milas Informer EP7312
> cfi_flash 90000000.nor at 0,0.of: found cfi flash at 0x90000000, size 32 MiB
> i2c-gpio i2c0.of: using pins 16 (SDA) and 35 (SCL)
> Hit any to stop autoboot:    1
> Booting entry 'nor'
> Loading ARM Linux zImage '/dev/nor0.kernel'

The problem might be that you have the kernel in a raw flash partition.
I think we have problems where we somewhere use the partition size where
we should really use the zImage size. The zImage size must be taken from
the zImage header while we just make a stat() on the file which happens
to be the whole partition for you.

Could you try and bootm the same zImage from ramfs?

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