diff options
author | Stefan Reinauer <stepan@coresystems.de> | 2009-07-21 21:50:34 +0000 |
---|---|---|
committer | Stefan Reinauer <stepan@openbios.org> | 2009-07-21 21:50:34 +0000 |
commit | 573f7d40be086b35b25d242818ae0e9c26d05022 (patch) | |
tree | 831bf36c8294b2dd1362af4e6de3b3f0df0fff50 /src/southbridge/intel/i82801gx/i82801gx_smi.c | |
parent | 71a3d96bc487f66c84ac869a1215b8a4a4499bf2 (diff) |
Intel ICH7 updates
- code restructuring (move ich7 out of i945)
- ACPI fixes
- major SMI handler updates
- make sure SMBus lives where we expect it
- try to get usb debug working
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Peter Stuge <peter@stuge.se>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4456 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/southbridge/intel/i82801gx/i82801gx_smi.c')
-rw-r--r-- | src/southbridge/intel/i82801gx/i82801gx_smi.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/southbridge/intel/i82801gx/i82801gx_smi.c b/src/southbridge/intel/i82801gx/i82801gx_smi.c index ccbb7334e5..636d2eb3af 100644 --- a/src/southbridge/intel/i82801gx/i82801gx_smi.c +++ b/src/southbridge/intel/i82801gx/i82801gx_smi.c @@ -27,10 +27,7 @@ #include <cpu/x86/cache.h> #include <cpu/x86/smm.h> #include <string.h> -#include "chip.h" - -// Future TODO: Move to i82801gx directory -#include "../../../northbridge/intel/i945/ich7.h" +#include "i82801gx.h" extern unsigned char smm[]; extern unsigned int smm_len; @@ -318,8 +315,12 @@ void smm_install(void) void smm_init(void) { + // FIXME is this a race condition? smm_relocate(); smm_install(); + + // We're done. Make sure SMIs can happen! + smi_set_eos(); } void smm_lock(void) @@ -333,3 +334,13 @@ void smm_lock(void) D_LCK | G_SMRAME | C_BASE_SEG); } +void smm_setup_structures(void *gnvs, void *tcg, void *smi1) +{ + /* The GDT or coreboot table is going to live here. But a long time + * after we relocated the GNVS, so this is not troublesome. + */ + *(u32 *)0x500 = (u32)gnvs; + *(u32 *)0x504 = (u32)tcg; + *(u32 *)0x508 = (u32)smi1; + outb(0xea, 0xb2); +} |