soc/amd/common/block/cpu/noncar/memmap: move BERT region back into CBMEM

The original reason the BERT table was moved out of CBMEM was because
the OS was not able to access the region. This happened because the
CBMEM region was marked as type 16 in the e820 table. The OS isn't aware
of this type, so it prevents any drivers from accessing it. Depthcharge
now correctly labels the CBMEM region as reserved in the e820 table so
we can move the BERT table into CBMEM.

TEST=BERT ACPI table generation still works on AMD/Mandolin with SeaBIOS
as payload and BERT region inside CBMEM is inside a BIOS-e820 reserved
range. BERT generation also works on Zork with depthcharge.

Link: https://crrev.com/c/2939677
Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ie640e91c19ae5f9b275cc333284b4be34211fbf6
Reviewed-on: https://review.coreboot.org/c/coreboot/+/55279
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
This commit is contained in:
Felix Held 2021-06-07 22:09:04 +02:00 committed by Patrick Georgi
parent 3694cc737a
commit 8c3a8df102
1 changed files with 1 additions and 1 deletions

View File

@ -62,7 +62,7 @@ void smm_region(uintptr_t *start, size_t *size)
void bert_reserved_region(void **start, size_t *size) void bert_reserved_region(void **start, size_t *size)
{ {
*start = cbmem_top(); *start = cbmem_add(CBMEM_ID_ACPI_BERT, CONFIG_ACPI_BERT_SIZE);
*size = CONFIG_ACPI_BERT_SIZE; *size = CONFIG_ACPI_BERT_SIZE;
printk(BIOS_INFO, "Reserved BERT region base: %p, size: 0x%lx\n", *start, *size); printk(BIOS_INFO, "Reserved BERT region base: %p, size: 0x%lx\n", *start, *size);
} }