Stewart Smith | 59d3cb4 | 2018-02-12 11:52:12 +1100 | [diff] [blame] | 1 | Introduction to OpenPOWER Firmware |
| 2 | ================================== |
| 3 | |
| 4 | The ``op-build`` project constructs a host firmware image for OpenPOWER |
| 5 | machines. |
| 6 | |
| 7 | Firmware Components |
| 8 | ------------------- |
| 9 | |
| 10 | Buildroot |
| 11 | We use http://buildroot.net/ as the build system for assembling a firmware |
| 12 | image. `op-build` is a "Buildroot overlay". We build a kernel and initramfs |
| 13 | using buildroot to run the Petitboot boot loader in. |
| 14 | SBE |
| 15 | the Self Boot Engine is the first unit inside the POWER processor to start |
| 16 | executing. It's job is to set up a core and load Hostboot. |
| 17 | Hostboot |
| 18 | Low level system boot firmware. It brings up CPU cores, the OCC, Memory |
| 19 | and hands control over to OPAL (skiboot) |
| 20 | OCC |
| 21 | The On Chip Controller is responsible for thermal limits and frequency |
| 22 | management. |
| 23 | OPAL |
| 24 | The OpenPOWER Abstraction Layer, provided by skiboot |
| 25 | skiboot |
| 26 | skiboot implements OPAL (the OpenPOWER Abstraction Layer). Skiboot is |
| 27 | boot and runtime firmware and is responsible for bringing up PCI and |
| 28 | providing runtime abstractions to the running OS. |
| 29 | Linux |
| 30 | Once skiboot has finished setting up the machine, it hands control over |
| 31 | to a Linux kernel. This kernel provides device drivers and userspace to |
| 32 | run the bootloader, Petitboot |
| 33 | Petitboot |
| 34 | The bootloader. It is a normal user-space process running on Linux that |
| 35 | searches the system for disks and network devices that it can boot the |
| 36 | OS from. |