• Ard Biesheuvel's avatar
    efi: libstub: Implement devicepath support for initrd commandline loader · 70912985
    Ard Biesheuvel authored
    Currently, the initrd= command line option to the EFI stub only supports
    loading files that reside on the same volume as the loaded image, which
    is not workable for loaders like GRUB that don't even implement the
    volume abstraction (EFI_SIMPLE_FILE_SYSTEM_PROTOCOL), and load the
    kernel from an anonymous buffer in memory. For this reason, another
    method was devised that relies on the LoadFile2 protocol.
    
    However, the command line loader is rather useful when using the UEFI
    shell or other generic loaders that have no awareness of Linux specific
    protocols so let's make it a bit more flexible, by permitting textual
    device paths to be provided to initrd= as well, provided that they refer
    to a file hosted on a EFI_SIMPLE_FILE_SYSTEM_PROTOCOL volume. E.g.,
    
      initrd=PciRoot(0x0)/Pci(0x3,0x0)/HD(1,MBR,0xBE1AFDFA,0x3F,0xFBFC1)/rootfs.cpio.gz
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    70912985
efistub.h 28.8 KB