1.20. Booting OpenBSD¶
barebox can boot OpenBSD on EFI-capable ARM64 systems. It acts as an EFI loader, exposing EFI protocols (block devices, GOP framebuffer, RNG, …) to subsequently loaded EFI binaries before handing off to the OS.
1.20.1. Basic boot¶
When CONFIG_EFI_LOADER_BOOTMGR is enabled, barebox’s default boot order
includes the efibootmgr target, which scans all storage devices for an
ESP partition and boots EFI/BOOT/BOOTAA64.EFI from it. If the OpenBSD
installer placed its EFI bootloader on the ESP in the standard location, a
plain boot invocation should find and start it without any additional
configuration.
To boot from a specific disk explicitly:
boot virtioblk0
or to persist:
#!/bin/sh
nv boot.default=virtioblk0
1.20.2. Framebuffer console¶
OpenBSD’s kernel discovers its framebuffer console by reading
/chosen/stdout-path from the device tree. If that property points at a
simple-framebuffer node, the framebuffer is attached as the system console
before the kernel’s driver subsystem starts.
barebox sets this up when the register_simplefb parameter on the
framebuffer device is set to stdout-path:
fb0.register_simplefb=stdout-path
The three valid values are:
disabledNo simplefb DT node is created (default).
enabledA simplefb DT node is created but
stdout-pathis not set.stdout-pathA simplefb DT node is created and
/chosen/stdout-pathis pointed at it, directing the OpenBSD kernel to use the framebuffer as its boot console.
1.20.3. Systems without a serial console¶
On laptops and desktops without an accessible serial port, stdout-path
mode is required, not optional. Without it the kernel has no console after
ExitBootServices() and the screen stays black.
Enable the framebuffer before booting and persist both settings:
nv dev.fb0.enable=1
nv dev.fb0.register_simplefb=stdout-path