skiboot-5.1.0¶
skiboot-5.1.0 was released on August 17th, 2015.
skiboot-5.1.0 is the first stable release of 5.1.0 following two beta releases. This new stable release replaces skiboot-5.0 as the current stable skiboot release (5.0 was released April 14th 2015).
Skiboot 5.1.0 contains all fixes from skiboot-5.0 stable branch up to skiboot-5.0.5 and everything from 5.1.0-beta1 and 5.1.0-beta2.
Over skiboot-5.1.0-beta2, we have the following changes:
opal_prd now supports multiple socket systems
fix compiler warnings in gard and libflash
Below are the changes introduced in previous skiboot-5.1.0 releases over the previous stable release, skiboot-5.0:
New features¶
Add Naples chip (CPU, PHB, LPC serial interrupts) support
Added qemu platform
improvements to FSI error handling
improvements in chip TOD failover (some only on FSP systems)
Set Relative Priority Register (RPR) to recommended value
this affects thread priority in SMT modes
greatly reduce memory consumption by CPU stacks for non-present CPUs
Previously we would reserve enough memory for max PIR for each CPU type.
This fix frees up 77MB of RAM on a typical P8 system.
increased OPAL API documentation
Asynchronous preloading of resources from FSP/flash
improves boot time on some systems
Basic Garrison platform support
Add Mambo platform (P8 Functional Simulator, systemsim)
includes fake NVRAM, RTC
Support building with GCOV, increasing memory for skiboot binary to 2MB
includes boot code coverage testing
Increased skiboot HEAP size.
We are not aware of any system where you would run out, but on large systems it was getting closer than we liked.
add boot_tests.sh for helping automate boot testing on FSP and BMC machines
Versioning of pflash and gard utilities to help Linux (or other OS) distributions with packaging.
OCC throttle status messages to host
CAPP timebase sync (“ibm,capp-timebase-sync” in DT to indicate CAPP timebase was synced by OPAL)
opal-api: Add OPAL call to handle abnormal reboots.
OPAL_CEC_REBOOT2
currently supports two reboot types:
normal reboot, that will behave similar to that of opal_cec_reboot() call
platform error reboot.
Long term, this is designed to replace OPAL_CEC_REBOOT.
New features for FSP based machines¶
in-band IPMI support
ethernet adaptor location codes
add DIMM frequency information to device tree
improvements in FSP error log code paths
fix some boot time memory leaks
harmless to end user
New features for AMI BMC based machines¶
PCIe power workaround for K80
Added support for Macronix 128Mbit flash chips
Initial PRD support for Firestone platform
improved reliability when BMC reboots
The following bugs have been fixed¶
Increase PHB3 timeout for electrical links coming up to 2 seconds.
fixes issues with some Mellanox cards
Hang in opal_reinit_cpus() that could prevent kdump from functioning
PHB3: fix crash in phb3_init
PHB3: fix crash with fenced PHB in phb3_init_hw()
Fix bugs in hw/bt.c (interface for IPMI on BMC machines) that could possibly lead to a crash (dereferencing invalid address, deadlock)
ipmi/sel: fix use-after-free
Bug fixes in EEH handling
opal_pci_next_error() cleared OPAL_EVENT_PCI_ERROR unconditionally, possibly leading to missed errors.
external/opal-prd: Only map each PRD range once
could eventually lead to failing to map PRD ranges
On skiboot crash, don’t try to print symbol when we didn’t find one
makes backtrace prettier
On skiboot crash, dump hssr0 and hsrr1 registers correctly.
Better support old and biarch compilers
test “new” compiler flags before using them
Specify -mabi=elfv1 if supported (which means it’s needed)
fix boot-coverage-report makefile target
ipmi: Fix the opal_ipmi_recv() call to handle the error path
Could make kernel a sad panda when in continues with other IPMI commands
IPMI: truncate SELs at 2kb
it’s the limit of the astbmc. We think.
IPMI/SEL/PEL:
As per PEL spec, we should log events with severity >= 0x22 and “service action flag” is “on”. But in our case, all logs OPAL originagted logs are makred as report externally. We now only report logs with severity >= 0x22
IPMI: fixes to eSEL logging
hw/phb3: Change reserved PE to 255
Currently, we have reserved PE#0 to which all RIDs are mapped prior to PE assignment request from kernel. The last M64 BAR is configured to have shared mode. So we have to cut off the first M64 segment, which corresponds to reserved PE#0 in kernel. If the first BAR (for example PF’s IOV BAR) requires huge alignment in kernel, we have to waste huge M64 space to accommodate the alignment. If we have reserved PE#256, the waste of M64 space will be avoided.
FSP-specific bugs fixed¶
(also fixed in skiboot-5.0.2) Fix race in firenze_get_slot_info() leading to assert() with many PCI cards
With many PCI cards, we’d hit a race where calls to firenze_add_pcidev_to_fsp_inventory would step on each other leading to memory corruption and finally an assert() in the allocator being hit during boot.
PCIe power workaround for K80 cards
/ibm,opal/led renamed to /ibm,opal/leds in Device Tree
compatible change as no FSP based systems shipped with skiboot-5.0
General improvements¶
Preliminary Centaur i2c support
lays framework for supporting Centaur i2c
don’t run pollers on non-boot CPUs in time_wait
improvements to opal-prd, pflash, libflash
including new blocklevel interface in libflash
many minor fixes to issues found by static analysis
improvements in FSP error log code paths
code cleanup in memory allocator
Don’t expose individual nvram partitions in the device tree, just the whole flash device.
build improvements for building on ppc64el host
improvements in cpu_relax() for idle threads, needed for GCOV on large machines.
Optimized memset() for POWER8, greatly reducing number of instructions executed for boot, which helps boot time in simulators.
Major improvements in hello_world kernel
Bloat of huge 17 instruction test case reduced to 10.
Disable bust_locks for general calls of abort()
Should enable better error messages during abort() when other users of LPC bus exist (e.g. flash)
unified version numbers for bundled utilities
external/boot_test/boot_test.sh
better usable for automated boot testing
Contributors¶
Since skiboot-5.0, we’ve had the following changesets:
Processed 372 csets from 27 developers 2 employers found A total of 15868 lines added, 3359 removed (delta 12509)
Developers with the most changesets
Developer |
Changesets |
---|---|
Stewart Smith |
117 (31.5%) |
Jeremy Kerr |
37 (9.9%) |
Cyril Bur |
33 (8.9%) |
Vasant Hegde |
32 (8.6%) |
Benjamin Herrenschmidt |
32 (8.6%) |
Kamalesh Babulal |
22 (5.9%) |
Joel Stanley |
12 (3.2%) |
Mahesh Salgaonkar |
12 (3.2%) |
Alistair Popple |
12 (3.2%) |
Neelesh Gupta |
9 (2.4%) |
Gavin Shan |
8 (2.2%) |
Cédric Le Goater |
8 (2.2%) |
Ananth N Mavinakayanahalli |
8 (2.2%) |
Vipin K Parashar |
6 (1.6%) |
Michael Neuling |
6 (1.6%) |
Samuel Mendoza-Jonas |
3 (0.8%) |
Frederic Bonnard |
3 (0.8%) |
Andrew Donnellan |
2 (0.5%) |
Vaidyanathan Srinivasan |
2 (0.5%) |
Philippe Bergheaud |
1 (0.3%) |
Shilpasri G Bhat |
1 (0.3%) |
Daniel Axtens |
1 (0.3%) |
Hari Bathini |
1 (0.3%) |
Michael Ellerman |
1 (0.3%) |
Andrei Warkentin |
1 (0.3%) |
Dan Horák |
1 (0.3%) |
Anton Blanchard |
1 (0.3%) |
Developers with the most changed lines
Stewart Smith |
4499 (27.3%) |
Benjamin Herrenschmidt |
3782 (22.9%) |
Jeremy Kerr |
1887 (11.4%) |
Cyril Bur |
1654 (10.0%) |
Vasant Hegde |
959 (5.8%) |
Mahesh Salgaonkar |
886 (5.4%) |
Neelesh Gupta |
473 (2.9%) |
Samuel Mendoza-Jonas |
387 (2.3%) |
Vipin K Parashar |
332 (2.0%) |
Philippe Bergheaud |
171 (1.0%) |
Shilpasri G Bhat |
165 (1.0%) |
Alistair Popple |
151 (0.9%) |
Joel Stanley |
105 (0.6%) |
Cédric Le Goater |
89 (0.5%) |
Gavin Shan |
83 (0.5%) |
Frederic Bonnard |
76 (0.5%) |
Kamalesh Babulal |
65 (0.4%) |
Michael Neuling |
46 (0.3%) |
Daniel Axtens |
31 (0.2%) |
Andrew Donnellan |
22 (0.1%) |
Ananth N Mavinakayanahalli |
20 (0.1%) |
Anton Blanchard |
3 (0.0%) |
Vaidyanathan Srinivasan |
2 (0.0%) |
Hari Bathini |
2 (0.0%) |
Michael Ellerman |
1 (0.0%) |
Andrei Warkentin |
1 (0.0%) |
Dan Horák |
1 (0.0%) |
Developers with the most lines removed
Michael Neuling |
24 (0.7%) |
Hari Bathini |
1 (0.0%) |
Developers with the most signoffs (total 253)
Stewart Smith |
249 (98.4%) |
Mahesh Salgaonkar |
4 (1.6%) |
Developers with the most reviews (total 24)
Vasant Hegde |
9 (37.5%) |
Joel Stanley |
3 (12.5%) |
Gavin Shan |
2 (8.3%) |
Kamalesh Babulal |
2 (8.3%) |
Samuel Mendoza-Jonas |
2 (8.3%) |
Alistair Popple |
2 (8.3%) |
Stewart Smith |
1 (4.2%) |
Andrei Warkentin |
1 (4.2%) |
Preeti U Murthy |
1 (4.2%) |
Ananth N Mavinakayanahalli |
1 (4.2%) |
Developers with the most test credits (total 1)
Chad Larson |
1 (100.0%) |
Developers who gave the most tested-by credits (total 1)
Gavin Shan |
1 (100.0%) |
Developers with the most report credits (total 4)
Benjamin Herrenschmidt |
2 (50.0%) |
Chad Larson |
1 (25.0%) |
Andrei Warkentin |
1 (25.0%) |
Developers who gave the most report credits (total 4)
Stewart Smith |
3 (75.0%) |
Gavin Shan |
1 (25.0%) |
Top changeset contributors by employer
IBM |
369 (99.2%) |
(Unknown) |
3 (0.8%) |
Top lines changed by employer
IBM |
16497 (100.0%) |
(Unknown) |
3 (0.0%) |
Employers with the most signoffs (total 253)
IBM |
253 (100.0%) |
Employers with the most hackers (total 27)
IBM |
24 (88.9%) |
(Unknown) |
3 (11.1%) |