grub-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v5 0/6] linux: implement LoadFile2 initrd loading


From: Daniel Kiper
Subject: Re: [PATCH v5 0/6] linux: implement LoadFile2 initrd loading
Date: Fri, 21 Oct 2022 14:50:28 +0200
User-agent: NeoMutt/20170113 (1.7.2)

On Tue, Oct 18, 2022 at 09:05:01PM +0200, Ard Biesheuvel wrote:
> This implements the LoadFile2 initrd loading protocol, which is
> essentially a callback interface into the bootloader to load the initrd
> data into a caller provided buffer. This means the bootloader no longer
> has to contain any policy regarding where to load the initrd (which
> differs between architectures and kernel versions) and no longer has to
> manipulate arch specific data structures such as DT or struct bootparams
> to inform the OS where the initrd resides in memory. This is especially
> relevant for the upcoming LoongArch support, which does not use either
> DT or struct bootparams, and would have to rely on the initrd= command
> line interface, which is deprecated and of limited utility [0].
>
> Sample output from booting a recent Linux/arm64 kernel:
>
>   grub> insmod part_msdos
>   grub> linux (hd0,msdos1)/Image
>   grub> initrd (hd0,msdos1)/initrd.img
>   grub> boot
>   EFI stub: Booting Linux Kernel...
>   EFI stub: EFI_RNG_PROTOCOL unavailable
>   EFI stub: Generating empty DTB
>   EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
>   EFI stub: Exiting boot services...
>   [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd070]
>
> Changes since v4:
> - incorporate review feedback from Daniel regarding whitespace and other
>   minor style deviations
>
> Changes since v3:
> - drop a couple of patches that have been merged independently in the
>   meantime
> - update patch #1 to read the PE image header offset from the file
>   instead of using the harcoded offset
> - add acks from Heinrich and Ilias
>
> Changes since v2:
> - incorporate some ancient feedback from Daniel that I never saw until
>   today. (this is why I am sending two versions of the same series on
>   the same day - apologies for the spam)
>
> [0] The initrd= command line loader can only access files that reside on
> the same volume as the loaded image, which means GRUB would have to
> present this volume abstraction in order to serve the initrd file.
>
> Cc: Daniel Kiper <daniel.kiper@oracle.com>
> Cc: Leif Lindholm <quic_llindhol@quicinc.com>
> Cc: Nikita Ermakov <arei@altlinux.org>
> Cc: Atish Patra <atishp@atishpatra.org>
> Cc: Huacai Chen <chenhuacai@loongson.cn>
> Cc: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
> Cc: dann frazier <dann.frazier@canonical.com>
> Cc: Julian Andres Klode <julian.klode@canonical.com>
> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
>
> Ard Biesheuvel (6):
>   efi: move MS-DOS stub out of generic PE header definition
>   linux/arm: unify ARM/arm64 vs Xen PE/COFF header handling
>   linux/arm: account for COFF headers appearing at unexpected offsets
>   efi/efinet: Don't close connections at fini_hw() time
>   efi: implement LoadFile2 initrd loading protocol for Linux
>   linux: ignore FDT unless we need to modify it

Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> for all patches...

Though one comment. Probably I would pull stdbool.h into include/grub/types.h
in the patch #5. If I do not hear any objections I will do that for you before
merging the patches.

Thank you for doing this work guys! And sorry it took so long to review
all these patches...

Daniel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]