Timothy Pearson (tpearson(a)raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8268
-gerrit
commit eafa9c569de4aa5a964ffd6fb181fbe8404005c9
Author: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Date: Fri Jan 23 20:28:13 2015 -0600
amd/amdht: Compile in multiprocessor support when selected
Fix multiprocessor support not being compiled in when selected
via Kconfig on AMD systems.
Change-Id: I44c22f2e11096247285b0fb469ccf51963eace2b
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
---
src/northbridge/amd/amdht/ht_wrapper.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/northbridge/amd/amdht/ht_wrapper.c b/src/northbridge/amd/amdht/ht_wrapper.c
index 5742494..6a01e14 100644
--- a/src/northbridge/amd/amdht/ht_wrapper.c
+++ b/src/northbridge/amd/amdht/ht_wrapper.c
@@ -1,6 +1,7 @@
/*
* This file is part of the coreboot project.
*
+ * Copyright (C) 2015 Timothy Pearson <tpearson(a)raptorengineeringinc.com>, Raptor Engineering
* Copyright (C) 2007-2008 Advanced Micro Devices, Inc.
*
* This program is free software; you can redistribute it and/or modify
@@ -28,7 +29,7 @@
*/
/* Single CPU system? */
-#if CONFIG_MAX_PHYSICAL_CPUS
+#if (CONFIG_MAX_PHYSICAL_CPUS == 1)
#define HT_BUILD_NC_ONLY 1
#endif
Timothy Pearson (tpearson(a)raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8259
-gerrit
commit 6d84a266b74e805b6beb57413d0dad20f1c44e3b
Author: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Date: Fri Jan 23 20:18:56 2015 -0600
ACPI: Fix corrupt SSDT table on multiprocessor AMD Family 10h systems
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Change-Id: I3175c8b29e94a27a2db6b11f8fc9e1d91bde11f9
---
src/northbridge/amd/amdfam10/acpi.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/src/northbridge/amd/amdfam10/acpi.c b/src/northbridge/amd/amdfam10/acpi.c
index 463fb7c..9ffea36 100644
--- a/src/northbridge/amd/amdfam10/acpi.c
+++ b/src/northbridge/amd/amdfam10/acpi.c
@@ -1,6 +1,7 @@
/*
* This file is part of the coreboot project.
*
+ * Copyright (C) 2015 Timothy Pearson <tpearson(a)raptorengineeringinc.com>, Raptor Engineering
* Copyright (C) 2007 Advanced Micro Devices, Inc.
*
* This program is free software; you can redistribute it and/or modify
@@ -187,6 +188,22 @@ void update_ssdtx(void *ssdtx, int i)
void northbridge_acpi_write_vars(void)
{
+ /*
+ * If more than one physical CPU is installed, northbridge_acpi_write_vars()
+ * is called more than once and the resultant SSDT table is corrupted
+ * (duplicated entries).
+ * This prevents Linux from booting, with log messages like these:
+ * ACPI Error: [BUSN] Namespace lookup failure, AE_ALREADY_EXISTS (/dswload-353)
+ * ACPI Exception: AE_ALREADY_EXISTS, During name lookup/catalog (/psobject-222)
+ * followed by a slew of ACPI method failures and a hang when the invalid PCI
+ * resource entries are used.
+ * This routine prevents the SSDT table from being corrupted.
+ */
+ static uint8_t ssdt_generated = 0;
+ if (ssdt_generated)
+ return;
+ ssdt_generated = 1;
+
msr_t msr;
char pscope[] = "\\_SB.PCI0";
int i;
Timothy Pearson (tpearson(a)raptorengineeringinc.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8258
-gerrit
commit ff4a79ac65cdd43fe11dae51646b0f2d491ecb61
Author: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
Date: Fri Jan 23 20:18:19 2015 -0600
nvidia/ck804/lpc.c: Fix power restoration control
Control bits located by changing tristate power
restoration value in proprietary BIOS, booting into
Linux, dumping the entire CK804 configuration space,
then comparing values against those dumped earlier.
"Last state" control bit(s) are unknown at this time.
TEST: Boot ASUS KFSN4-DRE with both coreboot power on
and power off after power failure settings, then
pull power plug / reinsert power plug and verify
mainboard behaviour matches setting.
Change-Id: I737bdd35632fe786968a1cb8458e56c785363cfa
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineeringinc.com>
---
src/southbridge/nvidia/ck804/lpc.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/southbridge/nvidia/ck804/lpc.c b/src/southbridge/nvidia/ck804/lpc.c
index 9b6049c..b24da6d 100644
--- a/src/southbridge/nvidia/ck804/lpc.c
+++ b/src/southbridge/nvidia/ck804/lpc.c
@@ -1,6 +1,7 @@
/*
* This file is part of the coreboot project.
*
+ * Copyright (C) 2015 Timothy Pearson <tpearson(a)raptorengineeringinc.com>, Raptor Engineering
* Copyright (C) 2003 Linux Networx
* Copyright (C) 2003 SuSE Linux AG
* Copyright (C) 2004 Tyan Computer
@@ -40,9 +41,12 @@
#define NMI_OFF 0
-// 0x7a or e3
+// Power restoration control register is at 0x7a
#define PREVIOUS_POWER_STATE 0x7A
+ // Auxiliary power control register possibly located at 0xe3
+#define PREVIOUS_POWER_STATE_AUX 0xe3
+
#define MAINBOARD_POWER_OFF 0
#define MAINBOARD_POWER_ON 1
#define SLOW_CPU_OFF 0
@@ -123,9 +127,9 @@ static void lpc_init(device_t dev)
on = CONFIG_MAINBOARD_POWER_ON_AFTER_POWER_FAIL;
get_option(&on, "power_on_after_fail");
byte = pci_read_config8(dev, PREVIOUS_POWER_STATE);
- byte &= ~0x40;
+ byte &= ~0x45;
if (!on)
- byte |= 0x40;
+ byte |= 0x45;
pci_write_config8(dev, PREVIOUS_POWER_STATE, byte);
printk(BIOS_INFO, "set power %s after power fail\n", on ? "on" : "off");