[coreboot-gerrit] Patch set updated for coreboot: AMD K8: Avoid duplicate variables in SSDT on multisocket systems

Jonathan A. Kollasch (jakllsch@kollasch.net) gerrit at coreboot.org
Mon Jul 20 17:17:07 CEST 2015


Jonathan A. Kollasch (jakllsch at kollasch.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/10912

-gerrit

commit 86e0efc1f913d54692a1ca668e7a4cbf909670fa
Author: Jonathan A. Kollasch <jakllsch at kollasch.net>
Date:   Mon Jul 13 21:03:10 2015 -0500

    AMD K8: Avoid duplicate variables in SSDT on multisocket systems
    
    Related-to: I3175c8b29e94a27a2db6b11f8fc9e1d91bde11f9
     (ACPI: Fix corrupt SSDT table on multiprocessor AMD Family 10h systems)
    
    Change-Id: I0b5f265278d90cbaeddc6fc4432933856050f784
    Signed-off-by: Jonathan A. Kollasch <jakllsch at kollasch.net>
---
 src/northbridge/amd/amdk8/acpi.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/northbridge/amd/amdk8/acpi.c b/src/northbridge/amd/amdk8/acpi.c
index 10228cf..ce49b90 100644
--- a/src/northbridge/amd/amdk8/acpi.c
+++ b/src/northbridge/amd/amdk8/acpi.c
@@ -282,6 +282,17 @@ static void k8acpi_write_pci_data(int dlen, const char *name, int offset) {
 
 void k8acpi_write_vars(device_t device)
 {
+	/*
+	 * If more than one physical CPU is installed k8acpi_write_vars()
+	 * is called more than once. If we don't prevent it, a SSDT table
+	 * with duplicate variables will cause some ACPI parsers to be
+	 * confused enough to fail.
+	 */
+	static uint8_t ssdt_generated = 0;
+	if (ssdt_generated)
+		return;
+	ssdt_generated = 1;
+
 	msr_t msr;
 	char pscope[] = "\\_SB.PCI0";
 



More information about the coreboot-gerrit mailing list