|
| 1 | +.. _skiboot-6.0.3: |
| 2 | + |
| 3 | +============= |
| 4 | +skiboot-6.0.3 |
| 5 | +============= |
| 6 | + |
| 7 | +skiboot 6.0.3 was released on Wednesday May 23rd, 2018. It replaces |
| 8 | +:ref:`skiboot-6.0.2` as the current stable release in the 6.0.x series. |
| 9 | + |
| 10 | +It is recommended that 6.0.3 be used instead of any previous 6.0.x version. |
| 11 | + |
| 12 | +Over :ref:`skiboot-6.0.3`, we have bug fixes related to i2c booting in |
| 13 | +secure mode, and general functionality with a TPM present. These changes are: |
| 14 | + |
| 15 | +- p8-i2c: Remove force reset |
| 16 | + |
| 17 | + Force reset was added as an attempt to work around some issues with TPM |
| 18 | + devices locking up their I2C bus. In that particular case the problem |
| 19 | + was that the device would hold the SCL line down permanently due to a |
| 20 | + device firmware bug. The force reset doesn't actually do anything to |
| 21 | + alleviate the situation here, it just happens to reset the internal |
| 22 | + master state enough to make the I2C driver appear to work until |
| 23 | + something tries to access the bus again. |
| 24 | + |
| 25 | + On P9 systems with secure boot enabled there is the added problem |
| 26 | + of the "diagostic mode" not being supported on I2C masters A,B,C and |
| 27 | + D. Diagnostic mode allows the SCL and SDA lines to be driven directly |
| 28 | + by software. Without this force reset is impossible to implement. |
| 29 | + |
| 30 | + This patch removes the force reset functionality entirely since: |
| 31 | + |
| 32 | + a) it doesn't do what it's supposed to, and |
| 33 | + b) it's butt ugly code |
| 34 | + |
| 35 | + Additionally, turn p8_i2c_reset_engine() into p8_i2c_reset_port(). |
| 36 | + There's no need to reset every port on a master in response to an |
| 37 | + error that occurred on a specific port. |
| 38 | + |
| 39 | +- libstb/i2c-driver: Bump max timeout |
| 40 | + |
| 41 | + We have observed some TPMs clock streching the I2C bus for signifigant |
| 42 | + amounts of time when processing commands. The same TPMs also have |
| 43 | + errata that can result in permernantly locking up a bus in response to |
| 44 | + an I2C transaction they don't understand. Using an excessively long |
| 45 | + timeout to prevent this in the field. |
| 46 | +- Add TPM timeout workaround |
| 47 | + |
| 48 | + Set the default timeout for any bus containing a TPM to one second. This |
| 49 | + is needed to work around a bug in the firmware of certain TPMs that will |
| 50 | + clock strech the I2C port the for up to a second. Additionally, when the |
| 51 | + TPM is clock streching it responds to a STOP condition on the bus by |
| 52 | + bricking itself. Clearing this error requires a hard power cycle of the |
| 53 | + system since the TPM is powered by standby power. |
0 commit comments