On 09/09/2020 16:16, Ard Biesheuvel wrote:
Maxim reports boot failures on platforms that describe reserved memory regions in DT that are disjoint from system DRAM, and which are converted to EfiReservedMemory regions by the EFI subsystem in u-boot. As it turns out, the whole notion of discovering the base of DRAM is problematic, and it would be better to simply rely on the EFI memory allocation routines instead, and derive the FDT and initrd allocation limits from the actual placement of the kernel (which is what defines the start of the linear region anyway) Finally, we should be able to get rid of get_dram_base() entirely. However, as RISC-V only just started using it, we will need to address that at a later time.
Looks reasonable to me. Presumably all special cases (platform specific spin tables, etc) are covered as reserved in the UEFI memory map, correct?
g.
Cc: Maxim Uvarov <maxim.uvarov@xxxxxxxxxx> Cc: Heinrich Schuchardt <xypron.glpk@xxxxxx> Cc: Atish Patra <atish.patra@xxxxxxx> Cc: Palmer Dabbelt <palmer@xxxxxxxxxxx> Cc: Jens Wiklander <jens.wiklander@xxxxxxxxxx> Cc: Francois Ozog <francois.ozog@xxxxxxxxxx> Cc: Etienne CARRIERE <etienne.carriere@xxxxxx> Cc: Takahiro Akashi <takahiro.akashi@xxxxxxxxxx> Cc: Patrice CHOTARD <patrice.chotard@xxxxxx> Cc: Sumit Garg <sumit.garg@xxxxxxxxxx> Cc: Grant Likely <Grant.Likely@xxxxxxx> Cc: Ilias Apalodimas <ilias.apalodimas@xxxxxxxxxx> Cc: Christophe Priouzeau <christophe.priouzeau@xxxxxxxxxx> Cc: Rouven Czerwinski <r.czerwinski@xxxxxxxxxxxxxx> Cc: Patrick DELAUNAY <patrick.delaunay@xxxxxx> Ard Biesheuvel (3): efi/libstub: Export efi_low_alloc_above() to other units efi/libstub: Use low allocation for the uncompressed kernel efi/libstub: base FDT and initrd placement on image address not DRAM base arch/arm/include/asm/efi.h | 6 +- arch/arm64/include/asm/efi.h | 2 +- drivers/firmware/efi/libstub/arm32-stub.c | 177 ++++---------------- drivers/firmware/efi/libstub/efi-stub.c | 2 +- drivers/firmware/efi/libstub/efistub.h | 3 + drivers/firmware/efi/libstub/relocate.c | 4 +- 6 files changed, 47 insertions(+), 147 deletions(-)