tree: 31ed5bc7575c0203b5dde0845e32c6aee73c5511 [path history] [tgz]
  1. build/
  2. include/
  3. lib/
  4. scripts/
  5. src/
  8. NOTES.txt

The Gigaboot boot loader

The Gigaboot boot loader is a UEFI boot shim for Zircon that can load images via chaining from iPXE, from a UEFI-accessible filesystem, or from local disk partitions.


Arguments are taken from the kernel command line, or additionally from the EFI command line for Gigaboot itself.

  • bootloader.zircon-a: Sets the fallback filename to use for loading the Zircon-A image (default: zircon.bin).
  • bootloader.zircon-b: Sets the fallback filename to use for loading the Zircon-B image (default: zedboot.bin).
  • bootloader.zircon-r: Sets the fallback filename to use for loading the Zircon-R (recovery) image (default: none).
  • bootloader.fbres: Sets the framebuffer resolution (e.g. 1024x768; default: automatic).
  • bootloader.default: Sets the default boot choice in the boot menu; default is the first in the list. Possible values are network, local or zedboot.

Chaining with iPXE

Here is an example iPXE script showing how to chain Gigaboot. In this example, the files are loaded from a web server running on; we chain from Gigaboot into Zedboot.


echo Chain loader

prompt --key 0x02 --timeout 3000 Chain Loader: Press Ctrl-B for the iPXE command line... && shell ||
kernel bootloader.default=local bootloader.zircon-a=zedboot.zbi || goto loop2

initrd || goto loop2

boot || goto loop2

Build notes

Since UEFI images are in PE32+ file format, we require that our binaries be position independent executables with no relocations. For the most part this does not require any extra effort on x86-64, but it does mean that you cannot statically initialize any variables that hold an address. (These addresses may be assigned at runtime however.)

External Dependencies

qemu-system-x86_64 is needed to test in emulation; gnu parted and mtools are needed to generate the disk.img for Qemu.

Useful Resources & Documentation

ACPI & UEFI Specifications:

Intel 64 and IA-32 Architecture Manuals:

Tianocore UEFI Open Source Community (Source for OVMF, EDK II Dev Environment, etc):