Clone of ipxe replica repo
 
 
 
 
 
Go to file
James MacMahon 78ae4f9899 Find a segment where all modules fit
When performing a multiboot of SmartOS, it would error with
ERANGE_SEGMENT. This is due to the fact that the boot_archive was >300M,
and this wasn't fitting in the same segment the kernel occupied.

With the script:

    #!ipxe
    dhcp
    chain https://netboot.smartos.org/smartos.ipxe

The following output was seen:

    https://netboot.smartos.org/os/20220210T011229Z/platform/i86pc/kernel/amd64/unix... ok
    https://netboot.smartos.org/os/20220210T011229Z/platform/i86pc/amd64/boot_archive... ok
    https://netboot.smartos.org/os/20220210T011229Z/platform/i86pc/amd64/boot_archive.hash... ok
    Could not boot: Requested memory not available (https://ipxe.org/46038101)

This commit changes where modules are placed: after placing the image,
grab the memory map and find a segment that has space for *all* modules.
Set the module starting address to this instead of concatenating all
modules right after the image.

After this, SmartOS iPXE boots ok.
2022-02-17 12:07:10 -05:00
.github/workflows [linux] Use host glibc system call wrappers 2021-02-28 23:28:23 +00:00
contrib [cloud] Allow multiple images to be imported simultaneously 2021-05-02 12:38:03 +01:00
src Find a segment where all modules fit 2022-02-17 12:07:10 -05:00
COPYING [legal] Update GPLv2 licence text 2015-02-26 17:59:53 +00:00
COPYING.GPLv2 [legal] Update GPLv2 licence text 2015-02-26 17:59:53 +00:00
COPYING.UBDL [legal] Add support for the Unmodified Binary Distribution Licence 2015-03-02 12:07:14 +00:00
README [doc] Re-add README file 2010-05-28 00:03:47 +01:00

README

iPXE README File

Quick start guide:

   cd src
   make

For any more detailed instructions, see http://ipxe.org