Hostboot firmware initializes all processor, bus, and memory within IBM POWER based systems. Furthermore, it is responsible for loading the hostboot image using hostboot bootloader, prepare hardware to load and run an appropriate payload (e.g phyp or skiboot), and provide runtime services while the payload is running. Various hostboot features are easily configurable via compile time CONFIG flags.
cd hostboot
./hb workon
make -j32
make clobber
when switching between branches
or releases for a fresh starthb prime
op-build <system_name>_defconfig && op-build hostboot-rebuild machine-xml-rebuild openpower-pnor-rebuild
op-build witherspoon_defconfig && op-build hostboot-rebuild machine-xml-rebuild openpower-pnor-rebuild
Hostboot Bootloader image is part of the SEEPROM SBE (Self Boot Engine) image. In istep 5.1, SBE loads the bootloader in cache. In istep 5.2, SBE starts instructions on the processor from where the HBBL is loaded. HBBL finds the hostboot images in pnor, loads them into memory, and starts hostboot.
Hostboot uses a custom kernel that enables execution of user-space hostboot IPL firmware and services. The kernel provides the general execution environment, message passing, task control, memory management, interrupt support, and any other functions to support the initialization activities of the user space. It is a micro-kernel that pushes as much function as possible to the user space, which has more safety protections.
There are various user space applications, including, device drivers, services necessary for base enablement, and other interactions with other components.
This contains all the infrastructure to compile, link, and generate hostboot binaries (including a full pnor for standalone compile).
This contains code which does all the hardware accesses required to initialize the hardware. This lives in the import directory because we directly consume it from the hardware team and call it hardware procedures.