[PATCH] kvx: exclude dtb from malloc zone
Clément Leger
cleger at kalray.eu
Mon Aug 3 02:51:42 EDT 2020
Hi Sascha,
----- On 11 Jul, 2020, at 12:19, Clément Leger cleger at kalray.eu wrote:
> 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 ?
Do you have any additionnal comments on this one ?
Thanks,
Clément
>
> 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 |
>
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
More information about the barebox
mailing list