path: root/
diff options
authorPrachi Gupta <>2018-07-24 12:47:04 -0500
committerWilliam G. Hoffa <>2018-10-04 08:50:53 -0500
commit76ae3d5f09c908fb083072eede6c1ca2702c7937 (patch)
tree1853847f6898f9e8274f62096a6f71050062dc96 /
parentbf70b2a6db71a1b3d99cf9ad4da105059339c1b1 (diff)
Documentation: Initial commit to create base
Change-Id: Iba2230cb79e83bd5b9dc68d95259d730b191ea33 Reviewed-on: Tested-by: Jenkins Server <> Tested-by: Jenkins OP Build CI <> Tested-by: Jenkins OP HW <> Tested-by: FSP CI Jenkins <> Reviewed-by: STEWART E. SMITH <> Reviewed-by: Christian R. Geddes <> Reviewed-by: William G. Hoffa <>
Diffstat (limited to '')
1 files changed, 83 insertions, 0 deletions
diff --git a/ b/
new file mode 100755
index 000000000..f6575d9bc
--- /dev/null
+++ b/
@@ -0,0 +1,83 @@
+# Hostboot
+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.
+## How to compile hostboot?
+- Standalone compile:
+ - `cd hostboot`
+ - `./hb workon`
+ - `make -j32`
+ - **NOTE**: You can run `make clobber` when switching between branches
+ or releases for a fresh start
+ - `hb prime`
+- In OpenPOWER context:
+ - `op-build <system_name>_defconfig && op-build hostboot-rebuild
+ machine-xml-rebuild openpower-pnor-rebuild`
+ - **Example**: `op-build witherspoon_defconfig && op-build
+ hostboot-rebuild machine-xml-rebuild openpower-pnor-rebuild`
+ - **NOTE**: Above command is assuming you have already done a full op-build
+ compile already. If not, then run the following `op-build
+ <system_name>_defconfig && op-build`
+## Various Components
+### [Hostboot Bootloader (HBBL)](src/bootloader/
+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.
+### [Kernel](src/kernel/
+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.
+### User Space Applications
+There are various user space applications, including, device drivers, services
+necessary for base enablement, and other interactions with other components.
+##### Device Drivers
+- Base Device Driver FW (devicefw)
+- FSI
+- I2C
+- LPC
+##### Base Services
+- Error Logs
+- Targeting
+- FAPI2
+- Base IPL Service (initservice/isteps)
+- Interrupt Service
+- Trace
+- VFS
+- VPD
+- Console
+- Secureboot
+##### Other FW Components
+- SBE
+### Build
+This contains all the infrastructure to compile, link, and generate hostboot
+binaries (including a full pnor for standalone compile).
+### Import
+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.
OpenPOWER on IntegriCloud