summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/drivers/tpm/cr50.c7
-rw-r--r--src/mainboard/google/brya/Kconfig1
-rw-r--r--src/security/tpm/tss/vendor/cr50/Kconfig10
3 files changed, 18 insertions, 0 deletions
diff --git a/src/drivers/tpm/cr50.c b/src/drivers/tpm/cr50.c
index 22ca3dd2bb..887cf767b7 100644
--- a/src/drivers/tpm/cr50.c
+++ b/src/drivers/tpm/cr50.c
@@ -191,6 +191,13 @@ enum cb_err cr50_get_firmware_version(struct cr50_firmware_version *version)
cr50_firmware_version.minor)
goto success;
+ if (CONFIG(TI50_FIRMWARE_VERSION_NOT_SUPPORTED)) {
+ printk(BIOS_ERR, "Reading Ti50 firmware version is not supported\n");
+ if (version)
+ *version = cr50_firmware_version;
+ return CB_ERR;
+ }
+
int chunk_count = 0;
size_t chunk_size = 50;
char version_str[301];
diff --git a/src/mainboard/google/brya/Kconfig b/src/mainboard/google/brya/Kconfig
index 8c35ebc3c2..c8c2911c61 100644
--- a/src/mainboard/google/brya/Kconfig
+++ b/src/mainboard/google/brya/Kconfig
@@ -67,6 +67,7 @@ config BOARD_GOOGLE_BASEBOARD_NISSA
select SOC_INTEL_ALDERLAKE_PCH_N
select SOC_INTEL_CSE_LITE_COMPRESS_ME_RW
select SYSTEM_TYPE_LAPTOP
+ select TI50_FIRMWARE_VERSION_NOT_SUPPORTED
select TPM_GOOGLE_TI50
if BOARD_GOOGLE_BRYA_COMMON
diff --git a/src/security/tpm/tss/vendor/cr50/Kconfig b/src/security/tpm/tss/vendor/cr50/Kconfig
index f98b8efeb9..1fad3c0686 100644
--- a/src/security/tpm/tss/vendor/cr50/Kconfig
+++ b/src/security/tpm/tss/vendor/cr50/Kconfig
@@ -30,4 +30,14 @@ config CR50_USE_LONG_INTERRUPT_PULSES
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.
+config TI50_FIRMWARE_VERSION_NOT_SUPPORTED
+ bool
+ default n
+ help
+ Ti50 FW versions below 0.15 don't support the firmware_version register,
+ and trying to access it causes I2C errors. This config will skip accesses
+ to the register, and should be selected for boards using Ti50 chips with
+ FW < 0.0.15. The config will be removed once all Ti50 stocks are updated to
+ 0.0.15 or higher.
+
endif