[PATCH] x86/coreboot: Exclude memory regions starting above 4GB

Simon Glass sjg at chromium.org
Tue Feb 17 14:32:06 CET 2026


On Tue, 3 Feb 2026 at 19:42, Jeremy Compostella
<jeremy.compostella at intel.com> wrote:
>
> This commit updates the RAM region filtering logic in
> board_get_usable_ram_top() to skip any memory regions whose start address
> is above 4GB. Previously, only the end address was capped at 4GB, but
> regions entirely above this threshold were still considered.
>
> Typically, the following memory map entries would cause
> board_get_usable_ram_top() to return 0x100000000, which is incorrect.
>
>     start=00000000, end=00001000, type=16
>     start=00001000, end=000a0000, type=1
>     start=000a0000, end=000f6000, type=2
>     start=000f6000, end=000f7000, type=16
>     start=000f7000, end=00100000, type=2
>     start=00100000, end=6f170000, type=1
>     start=6f170000, end=70000000, type=16
>     start=70000000, end=80800000, type=2
>     start=e0000000, end=f8000000, type=2
>     start=fa000000, end=fc000000, type=2
>     start=fc800000, end=fc880000, type=2
>     start=fd800000, end=fe800000, type=2
>     start=feb00000, end=feb80000, type=2
>     start=fec00000, end=fed00000, type=2
>     start=fed20000, end=fed80000, type=2
>     start=feda1000, end=feda2000, type=2
>     start=fedc0000, end=fede0000, type=2
>     start=100000000, end=102400000, type=2
>     start=102400000, end=47f800000, type=1
>     start=4000000000, end=4020000000, type=2
>
> By adding a check to continue the loop if the region's start address
> exceeds 0xffffffffULL, the function now properly ignores regions that are
> not usable in 32-bit address space.
>
> Change-Id: I8cbe0281aeea67a2f5bb9f6669456f5c7df9b409
> Signed-off-by: Jeremy Compostella <jeremy.compostella at intel.com>
> ---
>  arch/x86/cpu/coreboot/sdram.c | 2 ++
>  1 file changed, 2 insertions(+)

Reviewed-by: Simon Glass <simon.glass at canonical.com>


More information about the U-Boot mailing list