[PATCH] kvx: exclude dtb from malloc zone

Clément Leger cleger at kalray.eu
Sat Jul 11 06:19:38 EDT 2020


Hi Sascha

----- On 11 Jul, 2020, at 06:41, Sascha Hauer s.hauer at pengutronix.de wrote:

> Hi Clement,
> 
> On Thu, Jul 09, 2020 at 10:22:04PM +0200, Clement Leger wrote:
>> When dtb is provided by the FSBL (first stage bootloader), it might
>> end up in the malloc zone initialized by barebox. While the dtb is
>> discarded after being unflatten, if the dtb is provided right after
>> barebox elf, then the malloc can overwrite it while unflattening it when
>> allocating nodes.
>> To avoid that, exclude the dtb from the malloc zone by checking if it
>> overlaps it. If so, determine the largest zone for the allocation and
>> modify the memory area to use that.
> 
> Isn't there some safe place where the dtb can be copied to? Making the
> malloc area smaller seems a bit wasteful.

Currently, the FSBL now always put the dtb after the barebox elf which lead
to a minimal impact on the malloc zone (~3Gib) malloc area since barebox runs
in DDR. 

We could reserve some space in barebox to recopy the dtb early after boot
before setting up the malloc. However, what size should it be to accomodate
all devices trees ? We could also copy it in smem but since the kvx barebox
port is memory agnostic (ie can run in either SMEM or DDR), I'm not sure
this is future proof.
Do you have any other idea ? 

Thanks,

Clément

> 
> 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