lp:ipxe
- Get this branch:
- bzr branch lp:ipxe
Branch information
Import details
This branch is an import of the HEAD branch of the Git repository at https://github.com/ipxe/ipxe.git.
Last successful import was .
Updating branch...
Launchpad is processing new changes to this branch which will be available in a few minutes. Reload to see the changes.
Recent revisions
- 6322. By Michael Brown <email address hidden>
-
[efi] Extend PE header size to cover space up to first section
Hybrid bzImage and UEFI binaries (such as wimboot) may place sections
at explicit offsets within the PE file, as described in commit b30a098
("[efi] Use load memory address as file offset for hybrid binaries").
This can leave a gap after the PE headers that is not covered by any
section. It is not entirely clear whether or not such gaps are
permitted in binaries submitted for Secure Boot signing.To minimise potential problems, extend the PE header size to cover any
space before the first explicitly placed section.Signed-off-by: Michael Brown <email address hidden>
- 6321. By Michael Brown <email address hidden>
-
[efi] Fix dependency list construction in EDK2 header import script
Signed-off-by: Michael Brown <email address hidden>
- 6320. By Michael Brown <email address hidden>
-
[efi] Maximise image base address
iPXE images are linked with a starting virtual address of zero. Other
images (such as wimboot) may use a non-zero starting virtual address.There is no direct equivalent of the PE ImageBase address field within
ELF object files. Choose to use the highest possible address that
accommodates all sections and the PE header itself, since this will
minimise the memory allocated to hold the loaded image.Signed-off-by: Michael Brown <email address hidden>
- 6319. By Michael Brown <email address hidden>
-
[efi] Do not assume canonical PE section ordering
The BaseOfCode (and, in PE32, BaseOfData) fields imply an assumption
that binaries are laid out as code followed by initialised data
followed by uninitialised data. This assumption may not be valid for
complex binaries such as wimboot.Remove this implicit assumption, and use arguably justifiable values
for the assorted summary start and size fields within the PE headers.Signed-off-by: Michael Brown <email address hidden>
- 6318. By Michael Brown <email address hidden>
-
[efi] Treat 16-bit sections as hidden in hybrid binaries
Hybrid bzImage and UEFI binaries (such as wimboot) may include 16-bit
sections such as .bss16 that do not need to consume an entry in the PE
section list. Treat any such sections as hidden.Signed-off-by: Michael Brown <email address hidden>
- 6317. By Michael Brown <email address hidden>
-
[efi] Place PE debug information in a hidden section
The PE debug information generated by elf2efi is used only to hold the
image filename, and the debug information is located via the relevant
data directory entry rather than via the section table.Make the .debug section a hidden section in order to save one entry in
the PE section list. Choose to place the debug information in the
unused space at the end of the PE headers, since it no longer needs to
satisfy the general section alignment constraints.Signed-off-by: Michael Brown <email address hidden>
- 6316. By Michael Brown <email address hidden>
-
[efi] Fix recorded overall size of headers in NT optional header
Commit 1e4c378 ("[efi] Shrink size of data directory in PE header")
reduced the number of entries used in the data directory and reduced
the recorded size of the NT "optional" header, but did not also adjust
the recorded overall size of the PE headers, resulting in unused space
between the PE headers and the first section.Fix by reducing the initial recorded size of the PE headers by the
size of the omitted data directory entries.Signed-off-by: Michael Brown <email address hidden>
- 6315. By Michael Brown <email address hidden>
-
[efi] Write out PE header only after writing sections
Hybrid bzImage and UEFI binaries (such as wimboot) include a bzImage
header within a section starting at offset zero, with the PE header
effectively occupying unused space within this section.Allow for this by treating a section placed at offset zero as hidden,
and by deferring the writing of the PE header until after the output
sections have been written.Signed-off-by: Michael Brown <email address hidden>
- 6314. By Michael Brown <email address hidden>
-
[efi] Use load memory address as file offset for hybrid binaries
Hybrid bzImage and UEFI binaries (such as wimboot) may be loaded as a
single contiguous blob without reference to the PE headers, and the
placement of sections within the PE file must therefore be known at
link time.Use the load memory address (extracted from the ELF program headers)
to determine the physical placement of the section within the PE file
when generating a hybrid binary.Signed-off-by: Michael Brown <email address hidden>
- 6313. By Michael Brown <email address hidden>
-
[efi] Mark PE images as large address aware
The images generated by elf2efi can be loaded anywhere in the address
space, and are not limited to the low 2GB.Indicate this by setting the "large address aware" flag within the PE
header, for compatibility with EFI images generated by the EDK2 build
process. (The EDK2 PE loader does not ever check this flag, and it is
unlikely that any other EFI PE loader ever does so, but we may as well
report it accurately.)Signed-off-by: Michael Brown <email address hidden>
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)