drivers/spi/tpm: Enable long cr50 ready pulses for Tiger Lake systems

For Volteer (and future Tiger Lake boards) we can enable mode S0i3.4
only if we know that the Cr50 is generating 100us interrupt pulses.
We have to do so, because the SoC is not guaranteed to detect pulses
shorter than 100us in S0i3.4 substate.

A new Kconfig setting CR50_USE_LONG_INTERRUPT_PULSES controls new code
running in verstage, which will program a new Cr50 register, provided that
Cr50 firmware is new enough to support the register.

BUG=b:154333137
TEST=util/abuild/abuild -t GOOGLE_VOLTEER -c max -x

Signed-off-by: Jes Bodi Klinke <jbk@chromium.org>
Change-Id: If83188fd09fe69c2cda4ce1a8bf5b2efe1ca86da
Reviewed-on: https://review.coreboot.org/c/coreboot/+/43741
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
Jes Klinke 2020-07-29 14:22:41 -07:00 committed by Julius Werner
commit dcae8074bf
3 changed files with 147 additions and 25 deletions

View file

@ -12,4 +12,11 @@ config POWER_OFF_ON_CR50_UPDATE
help
Power off machine while waiting for CR50 update to take effect.
config CR50_USE_LONG_INTERRUPT_PULSES
bool
default n
help
Whether to request longer interrupt pulses using Cr50 BOARD_CFG register.
If the Cr50 firmware is too old, it will not be able to honor the request.
endif