[U-Boot] Bug: boot_fdt_add_mem_rsv_regions() can drop upper 32 bits of physical addresses

Dan Hettena danh at ghs.com
Thu May 14 15:09:16 CEST 2015


When phys_addr_t is 32 bits wide, boot_fdt_add_mem_rsv_regions() implicitly uses only the low 32 bits of each memory reservation's address and length to determine what to reserve. So, for example, an FDT memory reservation like

/memreserve/ 0x180000000 0x40000000;

will actually reserve physical memory starting at 0x80000000, not 0x180000000 (though the printf() will claim it is reserving starting at 0x180000000).

Dan



More information about the U-Boot mailing list