From b9c633d0713a9e7c3123ac419354dc8ee65e8904 Mon Sep 17 00:00:00 2001 From: Mary Ruthven Date: Thu, 10 Dec 2020 05:59:56 +1100 Subject: 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 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2582982 Reviewed-by: Vadim Bendebury --- common/tpm_registers.c | 21 ++++++++++++++++++--- 1 file 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; -- cgit v1.2.1