summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Held <felix-coreboot@felixheld.de>2021-05-27 20:37:21 +0200
committerFelix Held <felix-coreboot@felixheld.de>2021-06-08 18:22:24 +0000
commit62eb0ed93e53997925967318e20e13fa0d08799a (patch)
tree0d2c73ca444e8745d0a355c05b68a6f1e9905180
parentfba479267b0294f3d6cf43bf751ffd3dc300cf25 (diff)
downloadcoreboot-62eb0ed93e53997925967318e20e13fa0d08799a.tar.gz
coreboot-62eb0ed93e53997925967318e20e13fa0d08799a.tar.bz2
coreboot-62eb0ed93e53997925967318e20e13fa0d08799a.zip
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 <felix-coreboot@felixheld.de> Change-Id: Ia955f627c190ea38e05b5aaedc7cb2d030274e83 Reviewed-on: https://review.coreboot.org/c/coreboot/+/55024 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/arch/x86/include/arch/bert_storage.h5
-rw-r--r--src/soc/amd/stoneyridge/northbridge.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/src/arch/x86/include/arch/bert_storage.h b/src/arch/x86/include/arch/bert_storage.h
index 63783331e4e5..ea4ec3d2ba6d 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 eb59cdce4c2a..e1108de742d1 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.