[coreboot-gerrit] New patch to review for coreboot: 19d45ee X201: Fix SMI bindings.

Vladimir Serbinenko (phcoder@gmail.com) gerrit at coreboot.org
Fri Jan 10 19:44:24 CET 2014


Vladimir Serbinenko (phcoder at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/4645

-gerrit

commit 19d45ee98177467b7f20c9246ba29604fcb6d6cf
Author: Vladimir Serbinenko <phcoder at gmail.com>
Date:   Fri Jan 10 19:43:33 2014 +0100

    X201: Fix SMI bindings.
    
    Doesn't have a visible effect currently but it's better if those
    bindings are correct.
    
    Change-Id: I0f1a468e59429b14db139cc48e1e68c0e1841300
    Signed-off-by: Vladimir Serbinenko <phcoder at gmail.com>
---
 src/mainboard/lenovo/x201/smihandler.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/src/mainboard/lenovo/x201/smihandler.c b/src/mainboard/lenovo/x201/smihandler.c
index e99030b..0529818 100644
--- a/src/mainboard/lenovo/x201/smihandler.c
+++ b/src/mainboard/lenovo/x201/smihandler.c
@@ -24,6 +24,9 @@
 #include <cpu/x86/smm.h>
 #include "southbridge/intel/ibexpeak/nvs.h"
 #include "southbridge/intel/ibexpeak/pch.h"
+#include "southbridge/intel/ibexpeak/me.h"
+#include <northbridge/intel/sandybridge/sandybridge.h>
+#include <cpu/intel/model_2065x/model_2065x.h>
 #include <ec/acpi/ec.h>
 #include <pc80/mc146818rtc.h>
 #include <ec/lenovo/h8/h8.h>
@@ -134,10 +137,12 @@ static void mainboard_smi_handle_ec_sci(void)
 
 void mainboard_smi_gpi(u32 gpi_sts)
 {
-	if (gpi_sts & (1 << 12))
+	if (gpi_sts & (1 << 1))
 		mainboard_smi_handle_ec_sci();
 }
 
+static int mainboard_finalized = 0;
+
 int mainboard_smi_apmc(u8 data)
 {
 	u16 pmbase = pci_read_config16(PCI_DEV(0, 0x1f, 0), 0x40) & 0xfffc;
@@ -150,6 +155,20 @@ int mainboard_smi_apmc(u8 data)
 		return 0;
 
 	switch (data) {
+	case APM_CNT_FINALIZE:
+		printk(BIOS_DEBUG, "APMC: FINALIZE\n");
+		if (mainboard_finalized) {
+			printk(BIOS_DEBUG, "APMC#: Already finalized\n");
+			return 0;
+		}
+
+		intel_me_finalize_smm();
+		intel_pch_finalize_smm();
+		intel_sandybridge_finalize_smm();
+		intel_model_2065x_finalize_smm();
+
+		mainboard_finalized = 1;
+		break;
 	case APM_CNT_ACPI_ENABLE:
 		/* use 0x1600/0x1604 to prevent races with userspace */
 		ec_set_ports(0x1604, 0x1600);



More information about the coreboot-gerrit mailing list