Christian Walter has uploaded this change for review.

View Change

soc/intel/xeon_sp/cpx: Prevent acpi to write invalid drhd

This is only meant as a workaround until I found the core reason.
Currently on CPX one acpi drhd entry will be written with reg_base
equals zero.

Tested on: OCP Deltalake

Change-Id: Ib892aa68e8ebe78b2e917c93d73c18f98ac87c5f
Signed-off-by: Christian Walter <christian.walter@9elements.com>
---
M src/soc/intel/xeon_sp/cpx/acpi.c
1 file changed, 4 insertions(+), 2 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/50/45950/1
diff --git a/src/soc/intel/xeon_sp/cpx/acpi.c b/src/soc/intel/xeon_sp/cpx/acpi.c
index cd497c5..df70ddf 100644
--- a/src/soc/intel/xeon_sp/cpx/acpi.c
+++ b/src/soc/intel/xeon_sp/cpx/acpi.c
@@ -665,12 +665,14 @@
printk(BIOS_DEBUG, "[Hardware Unit Definition] Flags: 0x%x, PCI Segment Number: 0x%x, "
"Register Base Address: 0x%x\n",
DRHD_INCLUDE_PCI_ALL, pcie_seg, reg_base);
- current += acpi_create_dmar_drhd(current, DRHD_INCLUDE_PCI_ALL,
+ if (reg_base != 0)
+ current += acpi_create_dmar_drhd(current, DRHD_INCLUDE_PCI_ALL,
pcie_seg, reg_base);
} else {
printk(BIOS_DEBUG, "[Hardware Unit Definition] Flags: 0x%x, PCI Segment Number: 0x%x, "
"Register Base Address: 0x%x\n", 0, pcie_seg, reg_base);
- current += acpi_create_dmar_drhd(current, 0, pcie_seg, reg_base);
+ if (reg_base != 0)
+ current += acpi_create_dmar_drhd(current, 0, pcie_seg, reg_base);
}

// Add PCH IOAPIC

To view, visit change 45950. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Ib892aa68e8ebe78b2e917c93d73c18f98ac87c5f
Gerrit-Change-Number: 45950
Gerrit-PatchSet: 1
Gerrit-Owner: Christian Walter <christian.walter@9elements.com>
Gerrit-Reviewer: Patrick Rudolph <siro@das-labor.org>
Gerrit-MessageType: newchange