[coreboot-gerrit] Patch merged into coreboot/master: drivers/i2c/tpm: Add support for cr50 TPM

gerrit at coreboot.org gerrit at coreboot.org
Tue Sep 6 22:58:32 CEST 2016


the following patch was just integrated into master:
commit ffa765f6eb49d242df6c74f63c4aa1e6f65143e3
Author: Duncan Laurie <dlaurie at chromium.org>
Date:   Thu Sep 1 15:50:22 2016 -0700

    drivers/i2c/tpm: Add support for cr50 TPM
    
    Add support for the cr50 TPM used in apollolake chromebooks.
    This requires custom handling due to chip limitations, which
    may be revisited but are needed to get things working today.
    
    - timeouts need to be longer
    - must use the older style write+wait+read read protocol
    - all 4 bytes of status register must be read at once
    - same limitation applies when reading burst count from status reg
    - burst count max is 63 bytes, and burst count behaves
    slightly differently than other I2C TPMs
    - TPM expects the host to drain the full burst count (63 bytes)
    from the FIFO on a read
    
    Luckily the existing driver provides most abstraction needed to
    make this work seamlessly.  To maximize code re-use the support
    for cr50 is added directly instead of as a separate driver and the
    style is kept similar to the rest of the driver code.
    
    This was tested with the cr50 TPM on a reef board with vboot
    use of TPM for secdata storage and factory initialization.
    
    Change-Id: I9b0bc282e41e779da8bf9184be0a11649735a101
    Signed-off-by: Duncan Laurie <dlaurie at chromium.org>
    Reviewed-on: https://review.coreboot.org/16396
    Tested-by: build bot (Jenkins)
    Reviewed-by: Aaron Durbin <adurbin at chromium.org>
    Reviewed-by: Philipp Deppenwiese <zaolin.daisuki at googlemail.com>


See https://review.coreboot.org/16396 for details.

-gerrit



More information about the coreboot-gerrit mailing list