lp:ipxe

Created by Peter J. Mello on 2020-01-06 and last modified on 2021-02-19
Get this branch:
bzr branch lp:ipxe

Related bugs

Related blueprints

Branch information

Owner:
Peter J. Mello
Project:
iPXE
Status:
Development

Import details

Import Status: Reviewed

This branch is an import of the HEAD branch of the Git repository at https://github.com/ipxe/ipxe.git.

The next import is scheduled to run in 1 hour.

Last successful import was 4 hours ago.

Import started 4 hours ago on alnitak and finished 4 hours ago taking 15 seconds — see the log
Import started 10 hours ago on alnitak and finished 10 hours ago taking 15 seconds — see the log
Import started 16 hours ago on alnitak and finished 16 hours ago taking 15 seconds — see the log
Import started 22 hours ago on alnitak and finished 22 hours ago taking 10 seconds — see the log
Import started on 2021-02-26 on izar and finished on 2021-02-26 taking 10 seconds — see the log
Import started on 2021-02-25 on izar and finished on 2021-02-25 taking 10 seconds — see the log
Import started on 2021-02-25 on alnitak and finished on 2021-02-25 taking 10 seconds — see the log
Import started on 2021-02-25 on izar and finished on 2021-02-25 taking 10 seconds — see the log
Import started on 2021-02-25 on alnitak and finished on 2021-02-25 taking 15 seconds — see the log
Import started on 2021-02-24 on izar and finished on 2021-02-24 taking 10 seconds — see the log

Recent revisions

5915. By Michael Brown <email address hidden> on 2021-02-19

[efi] Compress EFI ROM images

Use the reference implementation of the EFI compression algorithm
(taken from the EDK2 codebase, with minor bugfixes to allow
compilation with -Werror) to compress EFI ROM images.

Inspired-by: Laszlo Ersek <email address hidden>
Signed-off-by: Michael Brown <email address hidden>

5914. By Michael Brown <email address hidden> on 2021-02-18

[librm] Test for FXSAVE/FXRSTOR instruction support

Assume that preservation of the %xmm registers is unnecessary during
installation of iPXE into memory, since this is an operation that by
its nature substantially disrupts large portions of the system anyway
(such as the E820 memory map). This assumption allows us to utilise
the existing CPUID code to check that FXSAVE/FXRSTOR are supported.

Test for support during the call to init_librm and store the flag for
use during subsequent calls to virt_call.

Reduce the scope of TIVOLI_VMM_WORKAROUND to affecting only the call
to check_fxsr(), to reduce #ifdef pollution in the remaining code.

Debugged-by: Johannes Heimansberg <email address hidden>
Signed-off-by: Michael Brown <email address hidden>

5913. By Michael Brown <email address hidden> on 2021-02-18

[librm] Add missing __asmcall on init_idt()

The __asmcall declaration has no effect on a void function with no
parameters, but should be included for completeness since the function
is called directly from assembly code.

Signed-off-by: Michael Brown <email address hidden>

5912. By Michael Brown <email address hidden> on 2021-02-18

[prefix] Add a generic raw image prefix

Provide a generic raw image prefix, which assumes that the iPXE image
has been loaded in its entirety on a paragraph boundary.

The resulting .raw image can be loaded via RPL using an rpld.conf file
such as:

    HOST {
        ethernet = 00:00:00:00:00:00/6;
        FILE {
            path="ipxe.raw";
            load=0x2000;
        };
        execute=0x2000;
    };

Debugged-by: Johannes Heimansberg <email address hidden>
Signed-off-by: Michael Brown <email address hidden>

5911. By Michael Brown <email address hidden> on 2021-02-18

[initrd] Allow for zero-length initrd files

A zero-length initrd file will currently cause an endless loop during
reshuffling as the empty image is repeatedly swapped with itself.

Fix by terminating the inner loop before considering an image as a
candidate to be swapped with itself.

Reported-by: Pico Mitchell <email address hidden>
Signed-off-by: Michael Brown <email address hidden>

5910. By Michael Brown <email address hidden> on 2021-02-17

[cloud] Do not enable serial console on EFI platforms

Most EFI firmware builds (including those found on ARM64 instances in
AWS EC2) will already send console output to the serial port.

Do not enable direct serial console output in EFI builds using
CONFIG=cloud.

Signed-off-by: Michael Brown <email address hidden>

5909. By Michael Brown <email address hidden> on 2021-02-17

[efi] Record cached DHCPACK from loaded image's device handle, if present

Record the cached DHCPACK 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 the IPv4 address and DHCP
options previously obtained by the built-in PXE stack, as is already
done for a chainloaded BIOS iPXE.

Signed-off-by: Michael Brown <email address hidden>

5908. By Michael Brown <email address hidden> on 2021-02-17

[efi] Defer autoboot link-layer address and autoexec script probing

The code to detect the autoboot link-layer address and to load the
autoexec script currently runs before the call to initialise() and so
has to function without a working heap.

This requirement can be relaxed by deferring this code to run via an
initialisation function. This gives the code a normal runtime
environment, but still invokes it early enough to guarantee that the
original loaded image device handle has not yet been invalidated.

Signed-off-by: Michael Brown <email address hidden>

5907. By Michael Brown <email address hidden> on 2021-02-17

[efi] Split out autoexec script portions of efi_autoboot.c

The "autoboot device" and "autoexec script" functionalities in
efi_autoboot.c are unrelated except in that they both need to be
invoked by efiprefix.c before device drivers are loaded.

Split out the autoexec script portions to a separate file to avoid
potential confusion.

Signed-off-by: Michael Brown <email address hidden>

5906. By Michael Brown <email address hidden> on 2021-02-17

[pxe] Split out platform-independent portions of cachedhcp.c

Split out the portions of cachedhcp.c that can be shared between BIOS
and UEFI (both of which can provide a buffer containing a previously
obtained DHCP packet, and neither of which provide a means to
determine the length of this DHCP packet).

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)
This branch contains Public information 
Everyone can see this information.

Subscribers