Re: [PATCH RFC/RFT 0/3] efi/libstub: arm32: Remove dependency on dram_base

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 9, 2020 at 1:52 PM Palmer Dabbelt <palmer@xxxxxxxxxxx> wrote:
>
> On Wed, 09 Sep 2020 08:16:20 PDT (-0700), ardb@xxxxxxxxxx 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 like we're using dram_base to derive two argumets to
> efi_relocate_kernel(): the preferred load address and the minimum load address.
> I don't see any reason why we can't use the same PAGE_OFFSET-like logic that
> x86 uses for the minimum load address, but I don't think we have any mechanism
> like "struct boot_params" so we'd need to come up with something.
>

As discussed in the other thread
(https://www.spinics.net/lists/linux-efi/msg20262.html),
we don't need to do anything special. efi_relocate_kernel can just
take preferred address as 0
so that efi_bs_alloc will fail and efi_low_alloc_above will be used to
allocate 2MB/4MB aligned address as per requirement.

I don't think the other changes in this series will cause any issue
for RISC-V. I will test it and update anyways.

> > 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(-)



-- 
Regards,
Atish



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux