blob: 260f87013d9eaee877247b482bac9113fd23451a [file] [log] [blame]
Introduction to OpenPOWER Firmware
==================================
The ``op-build`` project constructs a host firmware image for OpenPOWER
machines.
Firmware Components
-------------------
Buildroot_
We use http://buildroot.net/ as the build system for assembling a firmware
image. `op-build` is a "Buildroot overlay". We build a kernel and initramfs
using buildroot to run the Petitboot boot loader in. We maintain a branch
with a minimum number of patches on top of upstream buildroot.
op-build_
A buildroot overlay that assembles OpenPOWER Firmware images.
SBE_
the Self Boot Engine is the first unit inside the POWER processor to start
executing. It's job is to set up a core and load Hostboot.
Hostboot_
Low level system boot firmware. It brings up CPU cores, the OCC, Memory
and hands control over to OPAL (skiboot)
OCC_
The On Chip Controller is responsible for thermal limits and frequency
management.
OPAL
The OpenPOWER Abstraction Layer, provided by skiboot
skiboot_
skiboot implements OPAL (the OpenPOWER Abstraction Layer). Skiboot is
boot and runtime firmware and is responsible for bringing up PCI and
providing runtime abstractions to the running OS.
Linux_
Once skiboot has finished setting up the machine, it hands control over
to a Linux kernel. This kernel provides device drivers and userspace to
run the bootloader, Petitboot. We maintain our own branch with a minimal
number of patches on top of the latest upstream stable release.
Petitboot_
The bootloader. It is a normal user-space process running on Linux that
searches the system for disks and network devices that it can boot the
OS from.
HCODE_
Firmware for the power management PPE. Implements heavy lifting for deeper
STOP states.
.. _Buildroot: https://github.com/open-power/buildroot
.. _op-build: https://github.com/open-power/op-build
.. _SBE: https://github.com/open-power/sbe
.. _OCC: https://github.com/open-power/occ
.. _Hostboot: https://github.com/open-power/hostboot
.. _skiboot: https://open-power.github.io/skiboot/
.. _Linux: https://github.com/open-power/linux
.. _Petitboot: https://github.com/open-power/petitboot/
.. _HCODE: https://github.com/open-power/hcode
Introductory Videos
-------------------
There are a number of good recorded presentations from various conferences
around the world that have overviews and deep dives into various parts of
the firmware stack.
Here, we present technical presentations that may be useful in learning
about topics relevant to OpenPOWER firmware development.
For broader OpenPOWER topics, check out the following channels:
- `OpenPOWER Foundation` <https://github.com/open-power/op-build/pull/2983>`_
Introductory
^^^^^^^^^^^^
.. youtube:: https://www.youtube.com/watch?v=a4XGvssR-ag
.. youtube:: https://www.youtube.com/watch?v=hcLhKjxa-40
Secure Boot
^^^^^^^^^^^
.. youtube:: https://www.youtube.com/watch?v=hwB1bkXQep4
Interfaces and standards
^^^^^^^^^^^^^^^^^^^^^^^^
.. youtube:: https://www.youtube.com/watch?v=2TroT3ORw0s
OpenCAPI
^^^^^^^^
.. youtube:: https://www.youtube.com/watch?v=h3pLBDCqY-I
.. youtube:: https://www.youtube.com/watch?v=K4dhx0ctjkQ
XIVE Interrupt Controller
^^^^^^^^^^^^^^^^^^^^^^^^^
.. youtube:: https://www.youtube.com/watch?v=s88beMQWkks
Petitboot
^^^^^^^^^
.. youtube:: https://www.youtube.com/watch?v=4JbDb4bRBK4
.. youtube:: https://www.youtube.com/watch?v=oxmMJMibZQ8
Booting Faster
^^^^^^^^^^^^^^
.. youtube:: https://www.youtube.com/watch?v=fTLsS_QZ8us
Testing
^^^^^^^
.. youtube:: https://www.youtube.com/watch?v=znEM2xqJhBU
Bringup and customisation
^^^^^^^^^^^^^^^^^^^^^^^^^
.. youtube:: https://www.youtube.com/watch?v=v73Nw7NDxYI
.. youtube:: https://www.youtube.com/watch?v=dBEBQQYP_eI