Enable EFI Loader to load FreeBSD Xen Dom0

Project description

Currently only BIOS FreeBSD Loader can load Xen kernel which then uses FreeBSD as Dom0 (Control domain). The EFI FreeBSD Loader can’t load Xen kernel, because it can’t load multiboot2 compliant binaries. The first part of project is to add multiboot2 protocol support to EFI FreeBSD Loader, so that it will be able to load Xen kernel (multiboot2 support is useful feature in itself, even if it wasn’t related to Xen Kernel). The second part of project is to correctly pass all the needed information to Xen kernel (using multiboot2 protocol) so that it can load FreeBSD kernel as Dom0.

Approach to solving the problem

Study multiboot2 protocol and get familiar with source code in stand/. At first I will try to understand how EFI FreeBSD loader currently behaves when it loads FreeBSD kernel and when it loads Xen kernel, so that I can see where loader starts to behave differently. I guess that will the place where I will add my code. I will refer to currently implemented multiboot1 support under BIOS loader.

Deliverables

Milestones

Test Plan

I can test multiboot2 implementation by trying to load simple multiboot2 binaries inside QEMU. Second part can be tested by trying to boot FreeBSD Xen Dom0 on bare-metal.

The Code

The first deliverable: https://github.com/kristapuciitis/freebsd/tree/gsoc2018_first_eval

https://github.com/kristapuciitis/freebsd/tree/gsoc2018

Notes

multiboot2 specification: https://www.gnu.org/software/grub/manual/multiboot2/multiboot.html

SummerOfCode2018Projects/EFILoaderForXenDom0 (last edited 2018-06-14T06:41:42+0000 by KristapsCivkulis)