This osf-builder repo is an open source repo to faciliate the development community to collaborate on Open System Firmware (OSF).
OSF boot starts with coreboot first, then Linux kernel which then executes init, which in this case is provided by u-root.
OSF build also consists of these three stages, executed in the reverse order.
Entire build requires PLATFORM
to be defined, this specifies the platform for which build is being run.
getdeps
is a tool used to fetch dependencies. It can clone Git repos, fetch files, etc.
CONFIG
.CONFIG
consists of three top-level sections: initramfs
, kernel
and coreboot
that specify what to fetch for each of the stages.initramfs
section of the CONFIG
is executed by getdeps
to fetch the u-root sources and the Go toolchain.PATCHES_DIR/initramfs-PLATFORM-*
patches are applied.UROOT_BASE_CMDS
, it can be augmented with UROOT_ADDITIONAL_CMDS
or replaced entirely.UROOT_ADDITIONAL_GOPATH
may be required.UROOT_ADDITIONAL_FILES
as local_path:initramfs_path
pairs.kernel
section of the CONFIG
is executed by getdeps
to fetch the kernel source.PATCHES_DIR/kernel-PLATFORM-*
patches are applied.KERNEL_CONFIG
is used as .config
.coreboot
section of the CONFIG
is executed by getdeps
to fetch the source and toolchain dependencies.PATCHES_DIR/coreboot-PLATFORM-*
patches are applied.COREBOOT_CONFIG
is used as .config
.osf-PLATFORM.rom
in the current directory.make
make run
, it will start a VM with the OSF BIOS image.ALWAYS_BUILD_INITRAMFS=0
and ALWAYS_BUILD_KERNEL=0
respectively.
make ALWAYS_BUILD_INITRAMFS=0 ALWAYS_BUILD_KERNEL=0
- for hacking on coreboot only.make clean
will clean all the components without wiping the work done by getdeps
.
make clean-coreboot
and make clean-kernel
will clean just the coreboot and kernel components.make wipe
will wipe everything, including downloaded deps.
make wipe-coreboot
and make wipe-kernel
will clean just the coreboot and kernel components.OSF Builder is MIT licensed, as found in the LICENSE file.