[coreboot] [commit] r5141 - in trunk/src: cpu/x86/smm include/cpu/x86

repository service svn at coreboot.org
Mon Feb 22 10:32:33 CET 2010


Author: stepan
Date: Mon Feb 22 10:32:33 2010
New Revision: 5141
URL: http://tracker.coreboot.org/trac/coreboot/changeset/5141

Log:
mini update SMM:
- allow northbridge and cpu handlers, too
- support for older rev 2 cpus

Signed-off-by: Stefan Reinauer <stepan at coresystems.de>
Acked-by: Stefan Reinauer <stepan at coresystems.de>

Modified:
   trunk/src/cpu/x86/smm/smihandler.c
   trunk/src/include/cpu/x86/smm.h

Modified: trunk/src/cpu/x86/smm/smihandler.c
==============================================================================
--- trunk/src/cpu/x86/smm/smihandler.c	Mon Feb 22 10:28:15 2010	(r5140)
+++ trunk/src/cpu/x86/smm/smihandler.c	Mon Feb 22 10:32:33 2010	(r5141)
@@ -118,6 +118,7 @@
 	printk_spew("\nSMI# #%d\n", node);
 
 	switch (smm_revision) {
+	case 0x00030002:
 	case 0x00030007:
 		state_save.type = LEGACY;
 		state_save.legacy_state_save = (legacy_smm_state_save_area_t *)
@@ -145,8 +146,12 @@
 	/* Call chipset specific SMI handlers. This would be the place to
 	 * add a CPU or northbridge specific SMI handler, too
 	 */
-
-	southbridge_smi_handler(node, &state_save);
+	if (cpu_smi_handler)
+		cpu_smi_handler(node, &state_save);
+	if (northbridge_smi_handler)
+		northbridge_smi_handler(node, &state_save);
+	if (southbridge_smi_handler)
+		southbridge_smi_handler(node, &state_save);
 
 	smi_release_lock();
 

Modified: trunk/src/include/cpu/x86/smm.h
==============================================================================
--- trunk/src/include/cpu/x86/smm.h	Mon Feb 22 10:28:15 2010	(r5140)
+++ trunk/src/include/cpu/x86/smm.h	Mon Feb 22 10:32:33 2010	(r5141)
@@ -254,5 +254,7 @@
 int southbridge_io_trap_handler(int smif);
 int mainboard_io_trap_handler(int smif);
 
-void southbridge_smi_handler(unsigned int node, smm_state_save_area_t *state_save);
+void __attribute__((weak)) cpu_smi_handler(unsigned int node, smm_state_save_area_t *state_save);
+void __attribute__((weak)) northbridge_smi_handler(unsigned int node, smm_state_save_area_t *state_save);
+void __attribute__((weak)) southbridge_smi_handler(unsigned int node, smm_state_save_area_t *state_save);
 




More information about the coreboot mailing list