skiboot 5.0

Skiboot 5.0 was released Friday 10th April 2015.

Changes in 5.0 (since rc3):

  • Fix chip id for nx coprocessors.
  • hw/ipmi: Fix FW Boot Progress sensor
  • bt: Add a temporary workaround for bmc dropping messages
  • FSP/CUPD: Fix lock issue

Changes in rc3 (since rc2):

  • add support for cec_power_down on mambo
  • external/opal-prd: Use link register for cross-endian branch
  • opal header file rework, Linux and skiboot now very closely match (API in opal-api.h)
  • libflash: don’t use the low level interface if it doesn’t exist
  • libflash/file: add file abstraction for libflash
  • external: create a GUARD partition parsing utility

Changes in rc2 (since rc1):

  • opal: Fix an issue where partial LID load causes opal to hang.
  • nx: use proc_gen instead of param
  • use chip id for NX engine Coproc Instance num
  • Fix (hopefully) missing dot symbols in skiboot.map
  • exceptions: Catch exceptions at boot time
  • exceptions: Remove deprecated exception patching stuff
  • mambo: Make mambo_utils.tcl optional
  • mambo: Exit mambo when the simulation is stopped
  • add NX register defines
  • set NX crb input queues to 842 only
  • core: Catch attempts to branch through a NULL pointer
  • plat/firestone: Add missing platform hooks
  • plat/firestone: Add missing platform hooks
  • elog: Don’t call uninitialized platform elog_commit
  • external/opal-prd: Use “official” switch-endian syscall
  • hw/ipmi: Rework sensors and fix boot count sensor

Changes in rc1 (since 4.1.1):

General:

  • big OPAL API documentation updates We now document around 19 OPAL calls. There’s still ~100 left to doc though :)

  • skiboot can load FreeBSD kernel payload (thanks to Nathan Whitehorn)

  • You can now run sparse by setting C=1 when building

  • PSI: Revert the timeout for PSI link recovery to architected value now 30mins (prev 15)

  • cpuidle: Add validated metrics for idle states

  • core/flash: Add flash API OPAL_FLASH_(READ|WRITE|ERASE)

  • capi: Dynamically calculate which CAPP port to use no longer hardwired to PHB0

  • vpd: Use slca parent-child relationship to create vpd tree

  • opal: Do not overwrite same HMI event for multiple HMI errors. Now Linux will get a HMI event for each HMI error

  • HMI event v2 now includes information about checkstop

  • HMI improvements, handle more conditions gracefully:

    • TB residue error
    • TFMR firmware control error
    • TFMR parity
    • TFMR HDEC parity error
    • TFMR DEC parity error
    • TFMR SPURR/PURR parity error
    • TB residue and HDEC parity HMI errors on split core
  • hostservices: Cache lids prior to first load request

  • Warn when pollers are called with a lock held and keep track of lock depth.

    NOTE: This means we will get backtraces in skiboot msglog on FSP machines This is a KNOWN ISSUE and is largely harmless. There’s still a couple that we haven’t yet cleaned, these messages can be thought of as a TODO list for developers.

  • Don’t run pollers in time_wait if lock held

  • pci: Don’t hang if we have only one CPU

  • Detect recursive poller entry

  • General cleanup

  • Cleanup of opal.h so that we can have Linux and skiboot match

  • add sparse annotations to opal.h

  • Platform hooks for loading and preloading resources (LIDs) This lays the groundwork for cutting 4-20 seconds off boot in a future skiboot release.

  • Fix potential race when clearing OCC interrupt status

  • Add platform operation for reading sensors

    • add support to read core and memory buffer temperatures

Mambo/POWER8 Functional Simulator:

  • Replace is_mambo_chip() with a better quirks mechanism.
  • Don’t hang if we only have one CPU and PCI.

BMC systems:

  • BMC can load payload from flash
  • IPMI on BMC systems: graceful poweroff and reboot
  • IPMI on BMC systems: watchdog timer support
  • IPMI on BMC systems: PNOR locking
  • Support for IPMI progress sensor
  • IPMI boot count sensor
  • capi: Rework microcode flash download and CAPP upload load microcode on non-fsp systems
  • NEW opal-prd userspace tool that handles PRD on non-FSP systems. and OPAL PRD calls to support it.
  • Improvements to opal-prd, libflash, and ipmi
  • ECC support in libflash
  • Load CAPI micro code, enabling CAPI on OpenPower systems.
  • Dynamically calculate which CAPP port to use, don’t hardcode to PHB0
  • memboot flash backend

POWER8

  • add nx-842 coproc support

FSP systems:

  • Make abort() update sp attn area (like assert does) On FSP systems this gives better error logs/dumps when abort() is hit
  • FSP/LEDS: Many improvements and bug fixes
  • LED support for FSP machines Adds OPAL_LEDS_(GET|SET)_INDICATOR and device-tree bindings
  • Refactor of fsp-rtc
  • OCC loading fixes, including possible race condition where we would fail to IPL.

POWER7

  • Fix unsupported return code of OPAL_(UN)REGISTER_DUMP_REGION on P7
  • occ: Don’t do bad XSCOMs on P7 The OCC interrupt register only exists on P8, accessing it on P7 causes not only error logs but also causes PRD to eventually gard chips.
  • cpu: Handle opal_reinit_cpus() more gracefully on P7 no longer generate error logs
  • libflash updates for openpower
  • misc code cleanup
  • add nx-842 coproc support