Patrick Georgi (pgeorgi@google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/9405
-gerrit
commit 050f98888ded7c90ca80997c4c89f625297b491c Author: Daisuke Nojiri dnojiri@chromium.org Date: Wed Oct 29 11:14:53 2014 -0700
tpm: allow 0 as valid i2c bus number
tpm driver uses bus=0 as indication of uninitialized tpm device. this change allows 0 as a valid i2c bus number.
BUG=None BRANCH=ToT TEST=Built cosmos.
Change-Id: Ie8d285abff11643cc3efc0fa30e4afcc3ca1c0d5 Signed-off-by: Patrick Georgi pgeorgi@chromium.org Original-Commit-Id: 493077b68cf46b08f0d1ddfe57bf6064d714d537 Original-Change-Id: Iac55e88db4ef757a292270e7201d8fdd37a90b50 Original-Signed-off-by: Daisuke Nojiri dnojiri@chromium.org Original-Reviewed-on: https://chromium-review.googlesource.com/226294 Original-Reviewed-by: Aaron Durbin adurbin@chromium.org --- src/drivers/i2c/tpm/tpm.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/drivers/i2c/tpm/tpm.c b/src/drivers/i2c/tpm/tpm.c index bc36e35..dc4ab78 100644 --- a/src/drivers/i2c/tpm/tpm.c +++ b/src/drivers/i2c/tpm/tpm.c @@ -86,13 +86,14 @@ static const char * const chip_name[] = {
/* Structure to store I2C TPM specific stuff */ struct tpm_inf_dev { - unsigned bus; + int bus; unsigned int addr; uint8_t buf[TPM_BUFSIZE + sizeof(uint8_t)]; // max. buffer size + addr enum i2c_chip_type chip_type; };
static struct tpm_inf_dev tpm_dev = { + .bus = -1, .addr = TPM_I2C_ADDR };
@@ -115,7 +116,7 @@ static int iic_tpm_read(uint8_t addr, uint8_t *buffer, size_t len) int rc; int count;
- if (!tpm_dev.bus) + if (tpm_dev.bus < 0) return -1; if ((tpm_dev.chip_type == SLB9635) || (tpm_dev.chip_type == UNKNOWN)) { /* slb9635 protocol should work in both cases */ @@ -186,7 +187,7 @@ static int iic_tpm_write_generic(uint8_t addr, uint8_t *buffer, size_t len, tpm_dev.buf[0] = addr; memcpy(&(tpm_dev.buf[1]), buffer, len);
- if (!tpm_dev.bus) + if (tpm_dev.bus < 0) return -1; for (count = 0; count < max_count; count++) { rc = i2c_write_raw(tpm_dev.bus, tpm_dev.addr,