diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/acpi/acpi.c | 7 | ||||
-rw-r--r-- | src/include/acpi/acpi.h | 2 | ||||
-rw-r--r-- | src/soc/intel/common/block/acpi/acpi_bert.c | 15 |
3 files changed, 14 insertions, 10 deletions
diff --git a/src/acpi/acpi.c b/src/acpi/acpi.c index 185825bb5f..2326169928 100644 --- a/src/acpi/acpi.c +++ b/src/acpi/acpi.c @@ -1565,7 +1565,10 @@ bool __weak acpi_is_boot_error_src_present(void) return false; } -__weak void acpi_soc_fill_bert(void **region, size_t *length) {} +__weak enum cb_err acpi_soc_get_bert_region(void **region, size_t *length) +{ + return CB_ERR; +} unsigned long __weak fw_cfg_acpi_tables(unsigned long start) { @@ -1815,7 +1818,7 @@ unsigned long write_acpi_tables(unsigned long start) size_t size; printk(BIOS_DEBUG, "ACPI: * BERT\n"); bert = (acpi_bert_t *) current; - acpi_soc_fill_bert(®ion, &size); + acpi_soc_get_bert_region(®ion, &size); acpi_write_bert(bert, (uintptr_t)region, size); if (bert->header.length >= sizeof(acpi_bert_t)) { current += bert->header.length; diff --git a/src/include/acpi/acpi.h b/src/include/acpi/acpi.h index dd00c405db..7b0a7757bf 100644 --- a/src/include/acpi/acpi.h +++ b/src/include/acpi/acpi.h @@ -1342,7 +1342,7 @@ unsigned long acpi_create_lpi_desc_ncst(acpi_lpi_desc_ncst_t *lpi_desc, uint16_t /* For crashlog. */ bool acpi_is_boot_error_src_present(void); -void acpi_soc_fill_bert(void **region, size_t *length); +enum cb_err acpi_soc_get_bert_region(void **region, size_t *length); /* For ACPI S3 support. */ void __noreturn acpi_resume(void *wake_vec); diff --git a/src/soc/intel/common/block/acpi/acpi_bert.c b/src/soc/intel/common/block/acpi/acpi_bert.c index f94026d9bc..168f3294b6 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) |