Skip to content
Snippets Groups Projects
  1. Dec 19, 2021
  2. Dec 18, 2021
  3. Nov 10, 2021
  4. Oct 28, 2021
  5. Sep 10, 2021
  6. Sep 09, 2021
  7. Sep 08, 2021
  8. Jul 27, 2021
    • Michael Brown's avatar
      [efi] Record cached ProxyDHCPOFFER and PXEBSACK, if present · e09e1142
      Michael Brown authored
      
      Commit cd3de55e ("[efi] Record cached DHCPACK from loaded image's
      device handle, if present") added the ability for a chainloaded UEFI
      iPXE to reuse an IPv4 address and DHCP options previously obtained by
      a built-in PXE stack, without needing to perform a second DHCP
      request.
      
      Extend this to also record the cached ProxyDHCPOFFER and PXEBSACK
      obtained from the EFI_PXE_BASE_CODE_PROTOCOL instance installed on the
      loaded image's device handle, if present.
      
      This allows a chainloaded UEFI iPXE to reuse a boot filename or other
      options that were provided via a ProxyDHCP or PXE boot server
      mechanism, rather than by standard DHCP.
      
      Tested-by: default avatarAndreas Hammarskjöld <junior@2PintSoftware.com>
      Signed-off-by: default avatarMichael Brown <mcb30@ipxe.org>
      e09e1142
  9. Jul 26, 2021
  10. Jul 20, 2021
    • Michael Brown's avatar
      [cloud] Retry DHCP aggressively in AWS EC2 · 4d180be5
      Michael Brown authored
      
      The DHCP service in EC2 has been observed to occasionally stop
      responding for bursts of several seconds.  This can easily result in a
      failed boot, since the current cloud boot script will attempt DHCP
      only once.
      
      Work around this problem by retrying DHCP in a fairly tight cycle
      within the cloud boot script, and falling back to a reboot after
      several failed DHCP attempts.
      
      Signed-off-by: default avatarMichael Brown <mcb30@ipxe.org>
      4d180be5
  11. Jul 15, 2021
    • Michael Brown's avatar
      [efi] Match signtool expectations for file alignment · c64dfff0
      Michael Brown authored
      
      As of commit f1e9e2b0 ("[efi] Align EFI image sections by page size"),
      our SectionAlignment has been increased to 4kB in order to allow for
      page-level memory protection to be applied by the UEFI firmware, with
      FileAlignment left at 32 bytes.
      
      The PE specification states that the value for FileAlignment "should
      be a power of 2 between 512 and 64k, inclusive", and that "if the
      SectionAlignment is less than the architecture's page size, then
      FileAlignment must match SectionAlignment".
      
      Testing shows that signtool.exe will reject binaries where
      FileAlignment is less than 512, unless FileAlignment is equal to
      SectionAlignment.  This indicates a somewhat zealous interpretation of
      the word "should" in the PE specification.
      
      Work around this interpretation by increasing FileAlignment from 32
      bytes to 512 bytes, and add explanatory comments for both
      FileAlignment and SectionAlignment.
      
      Debugged-by: default avatarAndreas Hammarskjöld <junior@2PintSoftware.com>
      Signed-off-by: default avatarMichael Brown <mcb30@ipxe.org>
      c64dfff0
    • Michael Brown's avatar
      [libc] Allow for externally-defined LITTLE_ENDIAN and BIG_ENDIAN constants · 8d08300a
      Michael Brown authored
      
      When building the Linux userspace binaries, the external system
      headers may have already defined values for the __LITTLE_ENDIAN and
      __BIG_ENDIAN constants.
      
      Fix by retaining the existing values if already defined, since the
      actual values of these constants do not matter.
      
      Signed-off-by: default avatarMichael Brown <mcb30@ipxe.org>
      8d08300a
  12. Jul 01, 2021
  13. Jun 28, 2021
  14. Jun 24, 2021
  15. Jun 23, 2021
  16. Jun 22, 2021
  17. Jun 17, 2021
  18. Jun 14, 2021
  19. Jun 11, 2021
  20. Jun 07, 2021
  21. Jun 04, 2021
  22. Jun 03, 2021
  23. May 24, 2021
  24. May 21, 2021
    • Michael Brown's avatar
      [efi] Provide an "initrd.magic" file for use by UEFI kernels · e5f02551
      Michael Brown authored
      
      Provide a file "initrd.magic" via the EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
      that contains the initrd file as constructed for BIOS bzImage kernels
      (including injected files with CPIO headers constructed by iPXE).
      
      This allows BIOS and UEFI kernels to obtain the exact same initramfs
      image, by adding "initrd=initrd.magic" to the kernel command line.
      For example:
      
        #!ipxe
        kernel boot/vmlinuz initrd=initrd.magic
        initrd boot/initrd.img
        initrd boot/modules/e1000.ko      /lib/modules/e1000.ko
        initrd boot/modules/af_packet.ko  /lib/modules/af_packet.ko
        boot
      
      Do not include the "initrd.magic" file within the root directory
      listing, since doing so would break software such as wimboot that
      processes all files within the root directory.
      
      Signed-off-by: default avatarMichael Brown <mcb30@ipxe.org>
      e5f02551
    • Michael Brown's avatar
      [efi] Allow for non-image-backed virtual files · ef9953b7
      Michael Brown authored
      
      Restructure the EFI_SIMPLE_FILE_SYSTEM_PROTOCOL implementation to
      allow for the existence of virtual files that are not simply backed by
      a single underlying image.
      
      Signed-off-by: default avatarMichael Brown <mcb30@ipxe.org>
      ef9953b7
    • Michael Brown's avatar
      [cpio] Split out bzImage initrd CPIO header construction · bfca3db4
      Michael Brown authored
      
      iPXE will construct CPIO headers for images that have a non-empty
      command line, thereby allowing raw images (without CPIO headers) to be
      injected into a dynamically constructed initrd.  This feature is
      currently implemented within the BIOS-only bzImage format support.
      
      Split out the CPIO header construction logic to allow for reuse in
      other contexts such as in a UEFI build.
      
      Signed-off-by: default avatarMichael Brown <mcb30@ipxe.org>
      bfca3db4
  25. May 18, 2021
Loading