diff options
author | Mary Ruthven <mruthven@chromium.org> | 2020-12-10 05:59:56 +1100 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-12-10 00:57:06 +0000 |
commit | b9c633d0713a9e7c3123ac419354dc8ee65e8904 (patch) | |
tree | eed6d761763b0bd907c3288544789e2bd58fc544 | |
parent | a75a2f19db500bcd1ede45e49db3a422e4ed768f (diff) | |
download | chrome-ec-b9c633d0713a9e7c3123ac419354dc8ee65e8904.tar.gz |
tpm_registers: suppress TPM_STS messages
When the AP polls TPM_STS, tpm_register_get(0x000018 messages overwhelm
the console. This change modifies tpm_register_get to only print the
initial TPM_STS information and a message whenever the tpm status
changes.
BUG=none
TEST=chan 0xffffffff ; sysrst pulse
Change-Id: I3091ab6341f58bbeade0c2a9ef6aa2113105016c
Signed-off-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2582982
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
-rw-r--r-- | common/tpm_registers.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/common/tpm_registers.c b/common/tpm_registers.c index 2bea30bb29..c73a38ab1e 100644 --- a/common/tpm_registers.c +++ b/common/tpm_registers.c @@ -512,8 +512,13 @@ static void fifo_reg_read(uint8_t *dest, uint32_t data_size) void tpm_register_get(uint32_t regaddr, uint8_t *dest, uint32_t data_size) { int i; + static uint32_t last_sts; + static uint32_t checked_sts; - CPRINTF("%s(0x%06x, %d)", __func__, regaddr, data_size); + if (regaddr != TPM_STS) { + CPRINTF("%s(0x%06x, %d)\n", __func__, regaddr, data_size); + checked_sts = 0; + } switch (regaddr) { case TPM_DID_VID: copy_bytes(dest, data_size, (GOOGLE_DID << 16) | GOOGLE_VID); @@ -528,7 +533,18 @@ void tpm_register_get(uint32_t regaddr, uint8_t *dest, uint32_t data_size) copy_bytes(dest, data_size, tpm_.regs.access); break; case TPM_STS: - CPRINTF(" %x", tpm_.regs.sts); + /* + * Print TPM_STS information from the first call and whenever + * the status changes. + */ + if (!checked_sts || last_sts != tpm_.regs.sts) { + CPRINTF("tpm_get_status(%d)(0x%06x, %d) %x\n", + checked_sts, regaddr, data_size, tpm_.regs.sts); + checked_sts = 1; + } else { + checked_sts++; + } + last_sts = tpm_.regs.sts; copy_bytes(dest, data_size, tpm_.regs.sts); break; case TPM_DATA_FIFO: @@ -562,7 +578,6 @@ void tpm_register_get(uint32_t regaddr, uint8_t *dest, uint32_t data_size) CPRINTS("%s(0x%06x, %d) => ??", __func__, regaddr, data_size); return; } - CPRINTF("\n"); } static __preserved interface_control_func if_start; |