Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | 03-May-2022 | - | ||||
asm/ | H | 25-Dec-2018 | - | 1,426 | 968 | |
ccan/ | H | 25-Dec-2018 | - | 3,770 | 2,409 | |
core/ | H | 25-Dec-2018 | - | 24,354 | 16,134 | |
doc/ | H | 25-Dec-2018 | - | 22,495 | 16,793 | |
external/ | H | 25-Dec-2018 | - | 14,685 | 10,523 | |
hdata/ | H | 25-Dec-2018 | - | 11,629 | 8,805 | |
hw/ | H | 25-Dec-2018 | - | 62,542 | 41,685 | |
include/ | H | 25-Dec-2018 | - | 16,378 | 9,624 | |
libc/ | H | 03-May-2022 | - | 3,306 | 1,878 | |
libfdt/ | H | 25-Dec-2018 | - | 3,154 | 1,411 | |
libflash/ | H | 25-Dec-2018 | - | 6,503 | 4,319 | |
libpore/ | H | 25-Dec-2018 | - | 12,507 | 6,777 | |
libstb/ | H | 25-Dec-2018 | - | 7,440 | 4,745 | |
libxz/ | H | 25-Dec-2018 | - | 2,943 | 1,527 | |
opal-ci/ | H | 25-Dec-2018 | - | 427 | 325 | |
platforms/ | H | 25-Dec-2018 | - | 6,359 | 4,446 | |
test/ | H | 25-Dec-2018 | - | 1,048 | 730 | |
.gitignore | H A D | 25-Dec-2018 | 2 KiB | 94 | 93 | |
.travis.yml | H A D | 25-Dec-2018 | 2.5 KiB | 61 | 52 | |
CONTRIBUTING.md | H A D | 25-Dec-2018 | 2.9 KiB | 82 | 60 | |
LICENCE | H A D | 25-Dec-2018 | 11.1 KiB | 203 | 169 | |
Makefile | H A D | 25-Dec-2018 | 1.2 KiB | 63 | 19 | |
Makefile.main | H A D | 25-Dec-2018 | 8.8 KiB | 294 | 199 | |
Makefile.rules | H A D | 25-Dec-2018 | 1.6 KiB | 78 | 57 | |
README.md | H A D | 25-Dec-2018 | 4.3 KiB | 129 | 95 | |
coverity-model.c | H A D | 25-Dec-2018 | 488 | 24 | 18 | |
extract-gcov.c | H A D | 25-Dec-2018 | 6.6 KiB | 256 | 186 | |
make_offsets.sh | H A D | 25-Dec-2018 | 159 | 11 | 7 | |
make_version.sh | H A D | 25-Dec-2018 | 1 KiB | 61 | 54 | |
skiboot.lds.S | H A D | 25-Dec-2018 | 2.7 KiB | 173 | 122 | |
skiboot.spec | H A D | 25-Dec-2018 | 3.2 KiB | 116 | 89 |
README.md
1# skiboot 2 3Firmware for OpenPower systems. 4 5Source: https://github.com/open-power/skiboot 6 7Mailing list: skiboot@lists.ozlabs.org 8 9Info/subscribe: https://lists.ozlabs.org/listinfo/skiboot 10 11Archives: https://lists.ozlabs.org/pipermail/skiboot/ 12 13Patchwork: http://patchwork.ozlabs.org/project/skiboot/list/ 14 15## Overview 16OPAL firmware (OpenPower Abstraction Layer) comes in several parts. 17 18A simplified flow of what happens when the power button is pressed is: 19 201. The baseboard management controller (BMC) powers the system on. 212. The BMC selects the master chip and releases the self-boot engines (SBEs) 22 on the POWER8 chips, master last. 233. The BMC relinquishes control of the flexible service interface (FSI) 24 SCAN/SCOM engines. 254. The hostboot firmware IPLs the system. It initiates a secondary power-on 26 sequence through a digital power systems sweep (DPSS). 275. The hostboot firmware loads the OPAL image and moves all processors to 28 their execution starting points. 29 30Here, the OPAL image is three parts: 31 321. skiboot (includes OPAL runtime services) 332. skiroot - the bootloader environment 34 * kernel 35 * initramfs (containing petitboot bootloader) 36 37They may be all part of one payload or three separate images (depending on 38platform). 39 40The bootloader will kexec a host kernel (probably linux). The host OS can 41make OPAL calls. The OPAL API is documented in doc/opal-api/ (there are 42missing parts, patches are welcome!) 43 44See doc/overview.txt for a more in depth overview of skiboot. 45 46## Building 47 48Any host OS can build and test skiboot provided it has a C cross compiler 49for *big endian* powerpc64. All good Linux distributions (and several bad 50ones) provide a packaged compiler that can be installed through the usual 51package management tools. 52 53To build on Ubuntu: 54``` 55apt-get install gcc-powerpc64le-linux-gnu gcc valgrind \ 56 expect libssl-dev device-tree-compiler make \ 57 xz-utils 58CROSS=powerpc64le-linux-gnu- make -j`nproc` 59``` 60 61To build on Fedora: 62``` 63dnf install gcc-powerpc64le-linux-gnu binutils-powerpc64-linux-gnu gcc make \ 64 diffutils findutils expect valgrind-devel dtc openssl-devel xz 65CROSS=powerpc64le-linux-gnu- make -j`nproc` 66``` 67 68(The little-endian powerpc64le compilers in Ubuntu and Fedora are actually 69bi-endian and can compile skiboot even though it's big-endian. We recommend 70installing a little-endian toolchain if you plan on building other projects.) 71 72On any POWER system with a bi-endian system compiler: 73``` 74CROSS="" make -j`nproc` 75``` 76 77Alternatively, pre-built cross compilers for x86 systems can be downloaded 78from here: https://www.kernel.org/pub/tools/crosstool/ When using 79these compilers add /opt/cross/gcc-4.8.0-nolibc/powerpc64-linux/bin/ 80to your PATH. Once this is done skiboot can be compiler by just running `make` 81 82## Testing 83Skiboot comes with a set of unit tests that can be run on your desktop. 84They can can be run with: 85``` 86make check 87``` 88 89To test in a simulator, install the IBM POWER8 Functional Simulator from: 90http://www-304.ibm.com/support/customercare/sas/f/pwrfs/home.html 91Also see external/mambo/README.md 92 93Qemu (as of 2.2.0) is not suitable as it does not (yet) implement 94the HyperVisor mode of the POWER8 processor. 95See https://www.flamingspork.com/blog/2015/08/28/running-opal-in-qemu-the-powernv-platform/ for instructions on how to use a work-in-progress patchset 96to qemu that may be suitable for some work. 97 98To run a boot-to-bootloader test, you'll need a zImage.papr built using 99the mambo_defconfig config for op-build. See 100https://github.com/open-power/op-build/ on howto build. Drop zImage.epapr 101in the skiboot directory and the skiboot test suite will automatically pick 102it up. 103 104See opal-ci/README for further testing instructions. 105 106To test on real hardware, you will need to understand how to flash new 107skiboot onto your system. This will vary from platform to platform. 108 109You may want to start with external/boot-tests/boot_test.sh as it can 110(provided the correct usernames/passwords) automatically flash a new 111skiboot onto ASTBMC based OpenPower machines. 112 113## Hacking 114 115All patches should be sent to the mailing list with linux-kernel style 116'Signed-Off-By'. The following git commands are your friends: 117``` 118git commit -s 119git format-patch 120``` 121 122You probably want to read the linux 123https://kernel.org/doc/html/latest/process/submitting-patches.html as 124much of it applies to skiboot. 125 126## License 127 128See LICENSE 129