On Thu, Oct 06, 2022 at 01:29:55PM +0200, Ard Biesheuvel wrote: > Documentation/x86/boot.rst has a section on this (at the end), Ah, and I really like that NOTE at the end. > but we should really stop using it. It is only implemented by > out-of-tree GRUB at the moment (last time I checked) and leaking all > those struct bootparams specific details into every bootloader is not > great, especially the ones that intend to be generic and boot any EFI > OS on any EFI arch. I'm all for making early asm code simpler so yes, can we start removing it? Dunno, maybe ifdef around it with a Kconfig option which is default off and see who complains... > That is the same thing. The EFI stub is what enables the kernel (or > decompressor) to masquerade as a PE/COFF executable. > > In short, every EFI stub kernel on every architecture has a native > PE/COFF entry point that calls the EFI stub, and the EFi stub does the > arch-specific bootloader work and boots it. Right. > In addition, the x86_64 EFI stub kernel has an extra, non-native > PE/COFF entry point, which is exposed in a way that is not covered by > the EFI spec, but which allows Linux specific loaders such as > systemd-boot to boot such kernels on 32-bit firmware without having to > do the whole struct bootparams dance in the bootloader. Ok, thanks for explaining. I like the simplification and obviating the need for the bootloader to do any dancing before loading the kernel. -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette