1.. _skiboot-6.0.8: 2 3============= 4skiboot-6.0.8 5============= 6 7skiboot 6.0.8 was released on Thursday August 16th, 2018. It replaces 8:ref:`skiboot-6.0.7` as the current stable release in the 6.0.x series. 9 10It is recommended that 6.0.8 be used instead of any previous 6.0.x version 11due to the bug fixes it contains. 12 13The bug fixes are: 14 15- i2c: Ensure ordering between i2c_request_send() and completion 16 17 i2c_request_send loops waiting for a flag "uc.done" set by 18 the completion routine, and then look for a result code 19 also set by that same completion. 20 21 There is no synchronization, the completion can happen on another 22 processor, so we need to order the stores to uc and the reads 23 from uc so that uc.done is stored last and tested first using 24 memory barriers. 25- i2c: Fix multiple-enqueue of the same request on NACK 26 27 i2c_request_send() will retry the request if the error is a NAK, 28 however it forgets to clear the "ud.done" flag. It will thus 29 loop again and try to re-enqueue the same request causing internal 30 request list corruption. 31- phb4: Disable 32-bit MSI in capi mode 32 33 If a capi device does a DMA write targeting an address lower than 4GB, 34 it does so through a 32-bit operation, per the PCI spec. In capi mode, 35 the first TVE entry is configured in bypass mode, so the address is 36 valid. But with any (bad) luck, the address could be 0xFFFFxxxx, thus 37 looking like a 32-bit MSI. 38 39 We currently enable both 32-bit and 64-bit MSIs, so the PHB will 40 interpret the DMA write as a MSI, which very likely results in an EEH 41 (MSI with a bad payload size). 42 43 We can fix it by disabling 32-bit MSI when switching the PHB to capi 44 mode. Capi devices are 64-bit. 45 46- capp: Fix the capp recovery timeout comparison 47 48 The current capp recovery timeout control loop in 49 do_capp_recovery_scoms() uses a wrong comparison for return value of 50 tb_compare(). This may cause do_capp_recovery_scoms() to report an 51 timeout earlier than the 168ms stipulated time. 52 53 The patch fixes this by updating the loop timeout control branch in 54 do_capp_recovery_scoms() to use the correct enum tb_cmpval. 55- phb4/capp: Update DMA read engines set in APC_FSM_READ_MASK based on link-width 56 57 Commit 47c09cdfe7a3("phb4/capp: Calculate STQ/DMA read engines based 58 on link-width for PEC") update the CAPP init sequence by calculating 59 the needed STQ/DMA-read engines based on link width and populating it 60 in XPEC_NEST_CAPP_CNTL register. This however needs to be synchronized 61 with the value set in CAPP APC FSM Read Machine Mask Register. 62 63 Hence this patch update phb4_init_capp_regs() to calculate the link 64 width of the stack on PEC2 and populate the same values as previously 65 populated in PEC CAPP_CNTL register. 66 67- core/cpu: Call memset with proper cpu_thread offset 68