Difference between revisions of "OpenPOWER Firmware"
Jump to navigation
Jump to search
(add video links) |
(→Components: rewrite into table and process sections; add info from Stewart Smith talk at LCA 2016) |
||
| Line 5: | Line 5: | ||
== Components == | == Components == | ||
| − | + | {| class="wikitable sortable" | |
| − | * [[Hostboot|Hostboot]] | + | ! Firmware |
| − | * [[Skiboot|Skiboot]] | + | ! Runtime Location |
| − | + | ! Function | |
| − | + | |- | |
| + | | [[Self-Boot Engine|Self-Boot Engine]] (SBE) | ||
| + | | SBE core (on CPU chip) | ||
| + | | | ||
| + | * initialises CPU core | ||
| + | * loads Hostboot | ||
| + | |- | ||
| + | | [[Hostboot|Hostboot]] | ||
| + | | CPU core | ||
| + | | | ||
| + | * loads Skiboot | ||
| + | * inits DRAM (zeroing for ECC mem.), Processor Bus, Memory buffer | ||
| + | |- | ||
| + | | [[Skiboot|Skiboot]] | ||
| + | | CPU core | ||
| + | | | ||
| + | * implements [[OpenPOWER Abstraction Layer|OpenPOWER Abstraction Layer]] (OPAL) for OS runtime services | ||
| + | * setup PCIe, device tree, real time clock, NVlink, sensors | ||
| + | * loads Petitboot, OCC | ||
| + | |- | ||
| + | | [[Petitboot|Petitboot]] | ||
| + | | CPU core | ||
| + | | | ||
| + | * boot menu | ||
| + | * loads operating system | ||
| + | |- | ||
| + | | [[On-Chip Controller|On-Chip Controller]] (OCC) | ||
| + | | OCC core (on CPU chip) | ||
| + | | | ||
| + | * thermal regulation on CPU chip | ||
| + | |} | ||
| + | |||
| + | == Process == | ||
| + | |||
| + | # [[OpenBMC|OpenBMC]] starts SBE | ||
| + | # [[Self-Boot Engine|SBE]] loads Hostboot | ||
| + | # [[Hostboot|Hostboot]] loads Skiboot | ||
| + | # [[Skiboot|Skiboot]] loads OCC, Petitboot | ||
| + | # [[Petitboot|Petitboot]] loads the operating system | ||
| + | # operating system talks to firmware through [[OpenPOWER Abstraction Layer|OPAL]] | ||
== References == | == References == | ||
Revision as of 19:39, 21 February 2018
OpenPOWER Firmware is an open-source alternative to OpenFirmware and proprietary IBM firmware used on Power machines.[1] It is a general name for many separate pieces of software used to start recent Power Architecture chips made by IBM.[2]
OpenBMC is a separate project that creates firmware for the Baseboard Management Controller.
Components
| Firmware | Runtime Location | Function |
|---|---|---|
| Self-Boot Engine (SBE) | SBE core (on CPU chip) |
|
| Hostboot | CPU core |
|
| Skiboot | CPU core |
|
| Petitboot | CPU core |
|
| On-Chip Controller (OCC) | OCC core (on CPU chip) |
|
Process
- OpenBMC starts SBE
- SBE loads Hostboot
- Hostboot loads Skiboot
- Skiboot loads OCC, Petitboot
- Petitboot loads the operating system
- operating system talks to firmware through OPAL
References
- ↑ Kerr, Jeremy. OpenPOWER: building an open-source software stack from bare metal. LCA 2015 - video on YouTube
- ↑ Smith, Stewart. Adventures in OpenPOWER Firmware. LCA 2016 - video on YouTube