[coreboot] New patch to review: df8d54c Initialize ACPI to prevent spurious events at OS boot

Jonathan A. Kollasch (jakllsch@kollasch.net) gerrit at coreboot.org
Mon Aug 1 22:18:08 CEST 2011


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

-gerrit

commit df8d54c4372f1e851c413c5903db20284eb57c06
Author: Jonathan A. Kollasch <jakllsch at kollasch.net>
Date:   Mon Aug 1 15:17:08 2011 -0500

    Initialize ACPI to prevent spurious events at OS boot
    
    Change-Id: I7e1138360f18ba857cf533baa8ec1db555aebcde
    Signed-off-by: Jonathan A. Kollasch <jakllsch at kollasch.net>
---
 src/southbridge/nvidia/ck804/lpc.c |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/src/southbridge/nvidia/ck804/lpc.c b/src/southbridge/nvidia/ck804/lpc.c
index d371882..b66a569 100644
--- a/src/southbridge/nvidia/ck804/lpc.c
+++ b/src/southbridge/nvidia/ck804/lpc.c
@@ -28,6 +28,7 @@
 #include <device/pci_ops.h>
 #include <pc80/mc146818rtc.h>
 #include <pc80/isa-dma.h>
+#include <delay.h>
 #include <bitops.h>
 #include <arch/io.h>
 #include <arch/ioapic.h>
@@ -104,6 +105,23 @@ static void rom_dummy_write(device_t dev)
 		pci_write_config8(dev, 0x6d, new);
 }
 
+static void lpc_acpi_init(u16 base)
+{
+	u16 word;
+
+	printk(BIOS_SPEW, "%s: base = %x \n", __func__, base);
+
+	/* clear sleep, set SCI_EN */
+	word = inw(base + 4);
+	word &= ~(7 << 10);
+	word |= 1;
+	outw(word, base + 4);
+	udelay(100); /* seems to be needed */
+
+	/* clear ACPI PM1 event status */
+	outw(0xffff, base + 0);
+}
+
 unsigned pm_base = 0;
 
 static void lpc_init(device_t dev)
@@ -169,6 +187,8 @@ static void lpc_init(device_t dev)
 	/* Initialize ISA DMA. */
 	isa_dma_init();
 
+	lpc_acpi_init(pm_base);
+
 	rom_dummy_write(dev);
 }
 




More information about the coreboot mailing list