summaryrefslogtreecommitdiffstats
path: root/src/soc/intel/common
diff options
context:
space:
mode:
authorFelix Held <felix-coreboot@felixheld.de>2021-05-28 16:01:57 +0200
committerFelix Held <felix-coreboot@felixheld.de>2021-06-07 18:25:57 +0000
commit29405483cedca2035d1d0229a2ec893e53a6dcc9 (patch)
tree685c76c525fe50823db4047315321273fc367b63 /src/soc/intel/common
parent8c8b4d26db910cb3e85a9940a1d9da828a725b22 (diff)
downloadcoreboot-29405483cedca2035d1d0229a2ec893e53a6dcc9.tar.gz
coreboot-29405483cedca2035d1d0229a2ec893e53a6dcc9.tar.bz2
coreboot-29405483cedca2035d1d0229a2ec893e53a6dcc9.zip
acpi: rename acpi_soc_fill_bert and add return value
The return value indicates if the function has found valid BERT data and wrote them to the region and length parameters. This will be used in a follow-up patch to remove the acpi_is_boot_error_src_present function call in the common code. Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Change-Id: Iaaa3eed51645e1b3bc904c6279d171e3a10d59be Reviewed-on: https://review.coreboot.org/c/coreboot/+/55053 Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-by: Lance Zhao Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/intel/common')
-rw-r--r--src/soc/intel/common/block/acpi/acpi_bert.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/soc/intel/common/block/acpi/acpi_bert.c b/src/soc/intel/common/block/acpi/acpi_bert.c
index f94026d9bcd1..168f3294b689 100644
--- a/src/soc/intel/common/block/acpi/acpi_bert.c
+++ b/src/soc/intel/common/block/acpi/acpi_bert.c
@@ -8,7 +8,7 @@
#include <intelblocks/crashlog.h>
-void acpi_soc_fill_bert(void **region, size_t *length)
+enum cb_err acpi_soc_get_bert_region(void **region, size_t *length)
{
acpi_generic_error_status_t *status = NULL;
size_t cpu_record_size, pmc_record_size;
@@ -16,19 +16,19 @@ void acpi_soc_fill_bert(void **region, size_t *length)
if (!cl_get_total_data_size()) {
printk(BIOS_ERR, "Error: No crashlog record present\n");
- return;
+ return CB_ERR;
}
status = bert_new_event(&CPER_SEC_FW_ERR_REC_REF_GUID);
if (!status) {
printk(BIOS_ERR, "Error: unable to allocate GSB\n");
- return;
+ return CB_ERR;
}
if (cl_get_total_data_size() > bert_storage_remaining()) {
printk(BIOS_ERR, "Error: Crashlog entry would exceed "
"available region\n");
- return;
+ return CB_ERR;
}
cpu_record_size = cl_get_cpu_record_size();
@@ -38,7 +38,7 @@ void acpi_soc_fill_bert(void **region, size_t *length)
printk(BIOS_ERR, "Error: Crashlog CPU entry(size %lu) "
"would exceed available region\n",
cpu_record_size);
- return;
+ return CB_ERR;
}
printk(BIOS_DEBUG, "cl_data %p, cpu_record_size %lu\n",
cl_data, cpu_record_size);
@@ -51,7 +51,7 @@ void acpi_soc_fill_bert(void **region, size_t *length)
if (cpu_record_size && !bert_append_fw_err(status)) {
printk(BIOS_ERR, "Error: Crashlog PMC entry would "
"exceed available region\n");
- return;
+ return CB_ERR;
}
cl_data = new_cper_fw_error_crashlog(status, pmc_record_size);
@@ -59,7 +59,7 @@ void acpi_soc_fill_bert(void **region, size_t *length)
printk(BIOS_ERR, "Error: Crashlog PMC entry(size %lu) "
"would exceed available region\n",
pmc_record_size);
- return;
+ return CB_ERR;
}
printk(BIOS_DEBUG, "cl_data %p, pmc_record_size %lu\n",
cl_data, pmc_record_size);
@@ -69,6 +69,7 @@ void acpi_soc_fill_bert(void **region, size_t *length)
*length = status->raw_data_length;
*region = (void *)status;
+ return CB_SUCCESS;
}
bool acpi_is_boot_error_src_present(void)