From 62eb0ed93e53997925967318e20e13fa0d08799a Mon Sep 17 00:00:00 2001 From: Felix Held Date: Thu, 27 May 2021 20:37:21 +0200 Subject: [PATCH] arch/x86/include/bert_storage: introduce bert_should_generate_acpi_table Since bert_errors_present() is only available when ACPI_BERT is selected the ACPI table generation code needs to check that before calling the function, so add bert_should_generate_acpi_table that returns false when ACPI_BERT isn't selected or the return value of bert_errors_present() when ACPI_BERT is selected. Signed-off-by: Felix Held Change-Id: Ia955f627c190ea38e05b5aaedc7cb2d030274e83 Reviewed-on: https://review.coreboot.org/c/coreboot/+/55024 Reviewed-by: Angel Pons Reviewed-by: Tim Wawrzynczak Reviewed-by: Marshall Dawson Tested-by: build bot (Jenkins) --- src/arch/x86/include/arch/bert_storage.h | 5 +++++ src/soc/amd/stoneyridge/northbridge.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/arch/x86/include/arch/bert_storage.h b/src/arch/x86/include/arch/bert_storage.h index 63783331e4..ea4ec3d2ba 100644 --- a/src/arch/x86/include/arch/bert_storage.h +++ b/src/arch/x86/include/arch/bert_storage.h @@ -56,6 +56,11 @@ void bert_errors_region(void **start, size_t *size); size_t bert_storage_remaining(void); /* Find if errors were added, a BERT region is present, and ACPI table needed */ bool bert_errors_present(void); +/* The BERT table should only be generated when BERT support is enabled and there's an error */ +static inline bool bert_should_generate_acpi_table(void) +{ + return CONFIG(ACPI_BERT) && bert_errors_present(); +} /* Get the number of entries associated with status */ static inline size_t bert_entry_count(acpi_generic_error_status_t *status) diff --git a/src/soc/amd/stoneyridge/northbridge.c b/src/soc/amd/stoneyridge/northbridge.c index eb59cdce4c..e1108de742 100644 --- a/src/soc/amd/stoneyridge/northbridge.c +++ b/src/soc/amd/stoneyridge/northbridge.c @@ -239,7 +239,7 @@ static unsigned long agesa_write_acpi_tables(const struct device *device, current += hest->header.length; /* BERT */ - if (CONFIG(ACPI_BERT) && bert_errors_present()) { + if (bert_should_generate_acpi_table()) { /* Skip the table if no errors are present. ACPI driver reports * a table with a 0-length region: * BERT: [Firmware Bug]: table invalid.