summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rwxr-xr-xREADME.md83
1 files changed, 83 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100755
index 000000000..f6575d9bc
--- /dev/null
+++ b/README.md
@@ -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/README.md)
+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/README.md)
+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
+- GPIO
+- I2C
+- SCAN/SCOM/IBSCOM/FSISCOM/XSCOM
+- IPMI
+- LPC
+- MBOX
+- PNOR
+
+##### Base Services
+- Error Logs
+- Targeting
+- FAPI2
+- HWAS
+- Base IPL Service (initservice/isteps)
+- Interrupt Service
+- Trace
+- VFS
+- VPD
+- Console
+- Secureboot
+
+##### Other FW Components
+- SBE
+- HDAT
+- HTMGT
+- PRD/DIAGNOSTICS
+- HBRT
+
+### 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