Difference between revisions of "OpenPOWER Firmware"

From RCS Wiki
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 ==
  
* [[Self-Boot Engine|Self-Boot Engine]] (SBE) code - loads Hostboot on a CPU core
+
{| class="wikitable sortable"
* [[Hostboot|Hostboot]] - loads Skiboot
+
! Firmware
* [[Skiboot|Skiboot]] - implements [[OpenPOWER Abstraction Layer|OpenPOWER Abstraction Layer]] (OPAL), loads Petitboot, and loads OCC code into the OCC core
+
! Runtime Location
* [[Petitboot|Petitboot]] - loads the operating system
+
! Function
* [[On-Chip Controller|On-Chip Controller]] (OCC) code - controls thermal regulation on the chip
+
|-
 +
| [[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 18: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)
  • initialises CPU core
  • loads Hostboot
Hostboot CPU core
  • loads Skiboot
  • inits DRAM (zeroing for ECC mem.), Processor Bus, Memory buffer
Skiboot CPU core
  • implements OpenPOWER Abstraction Layer (OPAL) for OS runtime services
  • setup PCIe, device tree, real time clock, NVlink, sensors
  • loads Petitboot, OCC
Petitboot CPU core
  • boot menu
  • loads operating system
On-Chip Controller (OCC) OCC core (on CPU chip)
  • thermal regulation on CPU chip

Process

  1. OpenBMC starts SBE
  2. SBE loads Hostboot
  3. Hostboot loads Skiboot
  4. Skiboot loads OCC, Petitboot
  5. Petitboot loads the operating system
  6. operating system talks to firmware through OPAL

References

External Links