From b2f423578ea93bb5f1e56084ba42f4c7b68c130c Mon Sep 17 00:00:00 2001 From: Furquan Shaikh Date: Fri, 9 Jun 2017 17:57:59 -0700 Subject: mainboard/google/poppy: Disable unused TPM interface dynamically MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Based on the config options selected, decide at runtime which TPM interface should be disabled so that ACPI tables are not generated for that interface. TEST=Verified that unused interface does not show up in ACPI tables. Change-Id: Iee8f49e484ed024c549f60c88d874c08873b75cb Signed-off-by: Furquan Shaikh Reviewed-on: https://review.coreboot.org/20141 Reviewed-by: Aaron Durbin Tested-by: build bot (Jenkins) Reviewed-by: Philippe Mathieu-Daudé --- src/mainboard/google/poppy/mainboard.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/mainboard') diff --git a/src/mainboard/google/poppy/mainboard.c b/src/mainboard/google/poppy/mainboard.c index 3ee01467cd..3558ce0c92 100644 --- a/src/mainboard/google/poppy/mainboard.c +++ b/src/mainboard/google/poppy/mainboard.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -56,9 +57,24 @@ static unsigned long mainboard_write_acpi_tables(device_t device, static void mainboard_enable(device_t dev) { + device_t tpm; + dev->ops->init = mainboard_init; dev->ops->acpi_inject_dsdt_generator = chromeos_dsdt_generator; dev->ops->write_acpi_tables = mainboard_write_acpi_tables; + + /* Disable unused interface(s) for TPM. */ + if (!IS_ENABLED(CONFIG_POPPY_USE_SPI_TPM)) { + tpm = PCH_DEV_GSPI0; + if (tpm) + tpm->enabled = 0; + } + + if (!IS_ENABLED(CONFIG_POPPY_USE_I2C_TPM)) { + tpm = PCH_DEV_I2C1; + if (tpm) + tpm->enabled = 0; + } } struct chip_operations mainboard_ops = { -- cgit v1.2.3