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@coresystems.de Acked-by: Stefan Reinauer stepan@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);