diff --git a/src/acpi/acpi.c b/src/acpi/acpi.c index 84e314c8e9..07e84f6d39 100644 --- a/src/acpi/acpi.c +++ b/src/acpi/acpi.c @@ -281,7 +281,7 @@ static void acpi_create_tpm2(acpi_header_t *header, void *unused) tpm2->platform_class = 0; if (CONFIG(CRB_TPM)) { /* Must be set to 7 for CRB Support */ - tpm2->control_area = CONFIG_CRB_TPM_BASE_ADDRESS + 0x40; + tpm2->control_area = crb_tpm_base_address() + 0x40; tpm2->start_method = 7; } else { /* Must be set to 0 for FIFO interface support */ diff --git a/src/drivers/crb/tpm.c b/src/drivers/crb/tpm.c index ea5e7017fc..c33d63428e 100644 --- a/src/drivers/crb/tpm.c +++ b/src/drivers/crb/tpm.c @@ -346,3 +346,13 @@ bool crb_tpm_is_active(void) return true; } + +/* + * crb_tpm_base_address + * + * Returns the CRB TPM base address. + */ +uintptr_t crb_tpm_base_address(void) +{ + return CONFIG_CRB_TPM_BASE_ADDRESS; +} diff --git a/src/drivers/crb/tpm.h b/src/drivers/crb/tpm.h index aaf63a4a35..dd44a2e2cc 100644 --- a/src/drivers/crb/tpm.h +++ b/src/drivers/crb/tpm.h @@ -68,3 +68,5 @@ size_t crb_tpm_process_command(const void *tpm2_command, size_t command_size, bool crb_tpm_is_active(void); tis_sendrecv_fn crb_tis_probe(enum tpm_family *family); + +uintptr_t crb_tpm_base_address(void);