[OpenPower-Firmware] op-build v2.0.9 released

Stewart Smith stewart at linux.ibm.com
Thu Aug 16 19:52:09 AEST 2018


Release Notes for OpenPower Firmware v2.0.9
*******************************************

op-build v2.0.9 was released on Thursday August 16th, 2018 and
replaces op-build v2.0.8 as the current stable release in the 2.0.x
series.

It is recommended that v2.0.9 be used over any previous v2.0.x version
on POWER9 systems due to the bug fixes contained within.

The only update in this release is to skiboot. Skiboot v6.0.8 includes
the following bug fixes: - i2c: Ensure ordering between
i2c_request_send() and completion

   i2c_request_send loops waiting for a flag “uc.done” set by the
   completion routine, and then look for a result code also set by
   that same completion.

   There is no synchronization, the completion can happen on another
   processor, so we need to order the stores to uc and the reads from
   uc so that uc.done is stored last and tested first using memory
   barriers.

* i2c: Fix multiple-enqueue of the same request on NACK

  i2c_request_send() will retry the request if the error is a NAK,
  however it forgets to clear the “ud.done” flag. It will thus loop
  again and try to re-enqueue the same request causing internal
  request list corruption.

* phb4: Disable 32-bit MSI in capi mode

  If a capi device does a DMA write targeting an address lower than
  4GB, it does so through a 32-bit operation, per the PCI spec. In
  capi mode, the first TVE entry is configured in bypass mode, so the
  address is valid. But with any (bad) luck, the address could be
  0xFFFFxxxx, thus looking like a 32-bit MSI.

  We currently enable both 32-bit and 64-bit MSIs, so the PHB will
  interpret the DMA write as a MSI, which very likely results in an
  EEH (MSI with a bad payload size).

  We can fix it by disabling 32-bit MSI when switching the PHB to capi
  mode. Capi devices are 64-bit.

* capp: Fix the capp recovery timeout comparison

  The current capp recovery timeout control loop in
  do_capp_recovery_scoms() uses a wrong comparison for return value of
  tb_compare(). This may cause do_capp_recovery_scoms() to report an
  timeout earlier than the 168ms stipulated time.

  The patch fixes this by updating the loop timeout control branch in
  do_capp_recovery_scoms() to use the correct enum tb_cmpval.

* phb4/capp: Update DMA read engines set in APC_FSM_READ_MASK based
  on link-width

  Commit 47c09cdfe7a3(“phb4/capp: Calculate STQ/DMA read engines based
  on link-width for PEC”) update the CAPP init sequence by calculating
  the needed STQ/DMA-read engines based on link width and populating
  it in XPEC_NEST_CAPP_CNTL register. This however needs to be
  synchronized with the value set in CAPP APC FSM Read Machine Mask
  Register.

  Hence this patch update phb4_init_capp_regs() to calculate the link
  width of the stack on PEC2 and populate the same values as
  previously populated in PEC CAPP_CNTL register.

* core/cpu: Call memset with proper cpu_thread offset

-- 
Stewart Smith
OPAL Architect, IBM.



More information about the OpenPower-Firmware mailing list