blob: 260f87013d9eaee877247b482bac9113fd23451a [file] [log] [blame]
Deployment Bot (from Travis CI)6d7e6e92021-06-14 19:18:41 +00001Introduction to OpenPOWER Firmware
2==================================
3
4The ``op-build`` project constructs a host firmware image for OpenPOWER
5machines.
6
7Firmware Components
8-------------------
9
10Buildroot_
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. We maintain a branch
14 with a minimum number of patches on top of upstream buildroot.
15op-build_
16 A buildroot overlay that assembles OpenPOWER Firmware images.
17SBE_
18 the Self Boot Engine is the first unit inside the POWER processor to start
19 executing. It's job is to set up a core and load Hostboot.
20Hostboot_
21 Low level system boot firmware. It brings up CPU cores, the OCC, Memory
22 and hands control over to OPAL (skiboot)
23OCC_
24 The On Chip Controller is responsible for thermal limits and frequency
25 management.
26OPAL
27 The OpenPOWER Abstraction Layer, provided by skiboot
28skiboot_
29 skiboot implements OPAL (the OpenPOWER Abstraction Layer). Skiboot is
30 boot and runtime firmware and is responsible for bringing up PCI and
31 providing runtime abstractions to the running OS.
32Linux_
33 Once skiboot has finished setting up the machine, it hands control over
34 to a Linux kernel. This kernel provides device drivers and userspace to
35 run the bootloader, Petitboot. We maintain our own branch with a minimal
36 number of patches on top of the latest upstream stable release.
37Petitboot_
38 The bootloader. It is a normal user-space process running on Linux that
39 searches the system for disks and network devices that it can boot the
40 OS from.
41HCODE_
42 Firmware for the power management PPE. Implements heavy lifting for deeper
43 STOP states.
44
45.. _Buildroot: https://github.com/open-power/buildroot
46.. _op-build: https://github.com/open-power/op-build
47.. _SBE: https://github.com/open-power/sbe
48.. _OCC: https://github.com/open-power/occ
49.. _Hostboot: https://github.com/open-power/hostboot
50.. _skiboot: https://open-power.github.io/skiboot/
51.. _Linux: https://github.com/open-power/linux
52.. _Petitboot: https://github.com/open-power/petitboot/
53.. _HCODE: https://github.com/open-power/hcode
54
55Introductory Videos
56-------------------
57
58There are a number of good recorded presentations from various conferences
59around the world that have overviews and deep dives into various parts of
60the firmware stack.
61
62Here, we present technical presentations that may be useful in learning
63about topics relevant to OpenPOWER firmware development.
64
65For broader OpenPOWER topics, check out the following channels:
66
67- `OpenPOWER Foundation` <https://github.com/open-power/op-build/pull/2983>`_
68
69Introductory
70^^^^^^^^^^^^
71
72.. youtube:: https://www.youtube.com/watch?v=a4XGvssR-ag
73.. youtube:: https://www.youtube.com/watch?v=hcLhKjxa-40
74
75Secure Boot
76^^^^^^^^^^^
77
78.. youtube:: https://www.youtube.com/watch?v=hwB1bkXQep4
79
80Interfaces and standards
81^^^^^^^^^^^^^^^^^^^^^^^^
82
83.. youtube:: https://www.youtube.com/watch?v=2TroT3ORw0s
84
85OpenCAPI
86^^^^^^^^
87
88.. youtube:: https://www.youtube.com/watch?v=h3pLBDCqY-I
89
90.. youtube:: https://www.youtube.com/watch?v=K4dhx0ctjkQ
91
92XIVE Interrupt Controller
93^^^^^^^^^^^^^^^^^^^^^^^^^
94
95.. youtube:: https://www.youtube.com/watch?v=s88beMQWkks
96
97Petitboot
98^^^^^^^^^
99
100.. youtube:: https://www.youtube.com/watch?v=4JbDb4bRBK4
101.. youtube:: https://www.youtube.com/watch?v=oxmMJMibZQ8
102
103Booting Faster
104^^^^^^^^^^^^^^
105
106.. youtube:: https://www.youtube.com/watch?v=fTLsS_QZ8us
107
108Testing
109^^^^^^^
110
111.. youtube:: https://www.youtube.com/watch?v=znEM2xqJhBU
112
113Bringup and customisation
114^^^^^^^^^^^^^^^^^^^^^^^^^
115
116.. youtube:: https://www.youtube.com/watch?v=v73Nw7NDxYI
117
118.. youtube:: https://www.youtube.com/watch?v=dBEBQQYP_eI