[PATCH] boot: fdt: Turn all addresses and sizes into u64
Marek Vasut
marex at denx.de
Sun Apr 14 23:25:06 CEST 2024
On 4/14/24 9:29 PM, Laurent Pinchart wrote:
> Hi Marek,
>
> Thank you for the patch.
>
> On Sun, Apr 14, 2024 at 08:37:20PM +0200, Marek Vasut wrote:
>> In case of systems where DRAM bank ends at the edge of 32bit boundary,
>> start + size calculations would overflow. This happens on STM32MP15xx
>> with 1 DRAM bank starting at 0xc0000000 and 1 GiB of DRAM. This is a
>> usual 32bit system DRAM size overflow, fix it by doing all DRAM size
>> and offset calculations using u64 types.
>
> I'm not sure I like this much, as it removes a useful indication
> regarding what the variables store.
That's what the variable name is for, not variable type.
> Wouldn't it be better if the code's
> logic could be modified to avoid those overflows ?
I'd prefer to keep the code simple and blanket avoid the overflows for a
very long time, rather than play whack-a-mole with various odd corner
cases here.
Note that this is a fix for a previous series which changed from
u64/ulong to phys_addr/size_t , which clearly was incorrect .
>> This also covers a case where
>> a 32bit PAE system might be able to address up to 36bits of DRAM.
>
> Shouldn't phys_addr_t be a 64-bit type on PAE systems ?
That depends on CONFIG_PHYS_64BIT , on am57xx this is not set for
example, so there phys_addr_t is 32bit .
More information about the U-Boot
mailing list