On Thu, Feb 13, 2020 at 05:55:44PM +0000, Ard Biesheuvel wrote: > On Thu, 13 Feb 2020 at 18:53, Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote: > > As an alternative to the new section, how about having a CONFIG option > > to emit the 64-bit kernel with a 32-bit PE header instead, which would > > point to efi32_pe_entry? In that case it could be directly loaded by > > existing firmware already. You could even have a tool that can mangle an > > existing bzImage's header from 64-bit to 32-bit, say using the newly > > added kernel_info structure to record the existence and location of > > efi32_pe_entry. > > > > That wouldn't work with, say, signed distro kernels. No, the idea would be that the distro would distribute two signed images, one 32-bit and one 64-bit, which are identical except for the header. At install time, the installer chooses based on the system's firmware bit-ness. > > > Also, the PE header can live anywhere inside the image, right? Is there > > any reason to struggle to shoehorn it into the "boot sector"? > > It cannot. It must live outside a region described by the section headers. It could still be inserted after .setup, or at the very end of the file, no?