drivers/crb: Disable device if CRB TPM not present

If CRB TPM is not detected in the system it may mean it is inactive
due to disabled or neutered ME. In such case, the chipset will route
the TPM traffic to LPC/SPI on Intel systems.

If CRB TPM is not probed, disable the CRB TPM device driver, so that
coreboot will not generate improper SMBIOS/SSDT ACPI tables.

Change-Id: Ie0928536d9042b1f680d585e1ca9ad2cadf0c8ef
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80454
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Reviewed-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
This commit is contained in:
Michał Żygowski
2024-02-13 15:36:25 +01:00
committed by Felix Held
parent 7c587f2d59
commit fb2c09d516

View File

@@ -207,6 +207,11 @@ static struct device_operations __maybe_unused crb_ops = {
static void enable_dev(struct device *dev)
{
if (crb_tis_probe(NULL) == NULL) {
dev->enabled = 0;
return;
}
#if !DEVTREE_EARLY
dev->ops = &crb_ops;
#endif