HomeFreeBSD

stand/multiboot2: add support for booting a Xen dom0 in UEFI mode

Description

stand/multiboot2: add support for booting a Xen dom0 in UEFI mode

Add some basic multiboot2 infrastructure to the EFI loader in order to
be capable of booting a FreeBSD/Xen dom0 when booted from UEFI.

Only a very limited subset of the multiboot2 protocol is implemented
in order to support enough to boot into Xen, the implementation
doesn't intend to be a full multiboot2 capable implementation.

Such multiboot2 functionality is hooked up into the amd64 EFI loader,
which is the only architecture that supports Xen dom0 on FreeBSD.

The options to boot a FreeBSD/Xen dom0 system are exactly the same as
on BIOS, and requires setting the xen_kernel and xen_cmdline options
in loader.conf.

Sponsored by: Citrix Systems R&D
Reviewed by: tsoome, imp
Differential revision: https://reviews.freebsd.org/D28497

(cherry picked from commit adda2797eb2a29487fe26640a9c990fea7e6585d)

stand/multiboot2: fix error message format

Add a missing space in one error message.

Sponsored by: Citrix Systems R&D
MFC after: 3 days
Fixes: adda2797eb2a ('stand/multiboot2: add support for booting a Xen dom0 in UEFI mode')

(cherry picked from commit ab379c15af6fd7c2b94f0e91769fe7e1a4102e25)

stand/multiboot2: fix header length check

Check whether we have reached the end of the buffer using search_size
instead of MULTIBOOT_SEARCH, which is the maximum defined by the
specification, but the file can be shorter than that.

This prevents printing a harmless error message when loading a file
that is smaller than MULTIBOOT_SEARCH.

Sponsored by: Citrix Systems R&D
MFC after: 3 days
Fixes: adda2797eb2a ('stand/multiboot2: add support for booting a Xen dom0 in UEFI mode')

(cherry picked from commit 0eaa97f0e8629bcf678ff4de2678e4cba00f1c91)

Details

Provenance
roygerAuthored on Jan 27 2021, 11:23 AM
impCommitted on Jan 24 2023, 9:49 PM
Reviewer
tsoome
Differential Revision
D28497: stand/multiboot2: add support for booting a Xen dom0 in UEFI mode
Parents
rG8f6f1e27fd18: stand/efi: add modulep to kernel metadata
Branches
Unknown
Tags
Unknown