summaryrefslogtreecommitdiff
path: root/src/mainboard
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2012-10-03 19:01:57 -0700
committerRonald G. Minnich <rminnich@gmail.com>2012-11-14 05:43:26 +0100
commit7f3d442abb2a8ff6f6728527ab7665fd79fd60cd (patch)
tree5c87a60a4d8e3394c8fe47cac8a9b69943759b66 /src/mainboard
parentd396a77b4d144a89a98240541945111280106de6 (diff)
SMM: Avoid use of global variables in SMI handler
Using global variables with the TSEG is a bad idea because they are not relocated properly right now. Instead make the variables static and add accessor functions for the rest of SMM to use. At the same time drop the tcg/smi1 pointers as they are not setup or ever used. (the debug output is added back in a subsequent commit) Change-Id: If0b2d47df4e482ead71bf713c1ef748da840073b Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: http://review.coreboot.org/1764 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/mainboard')
-rw-r--r--src/mainboard/intel/emeraldlake2/mainboard_smi.c7
-rw-r--r--src/mainboard/samsung/lumpy/mainboard_smi.c12
-rw-r--r--src/mainboard/samsung/stumpy/mainboard_smi.c7
3 files changed, 5 insertions, 21 deletions
diff --git a/src/mainboard/intel/emeraldlake2/mainboard_smi.c b/src/mainboard/intel/emeraldlake2/mainboard_smi.c
index 340562a0e5..03c505b816 100644
--- a/src/mainboard/intel/emeraldlake2/mainboard_smi.c
+++ b/src/mainboard/intel/emeraldlake2/mainboard_smi.c
@@ -27,17 +27,12 @@
#include <northbridge/intel/sandybridge/sandybridge.h>
#include <cpu/intel/model_206ax/model_206ax.h>
-/* The southbridge SMI handler checks whether gnvs has a
- * valid pointer before calling the trap handler
- */
-extern global_nvs_t *gnvs;
-
int mainboard_io_trap_handler(int smif)
{
switch (smif) {
case 0x99:
printk(BIOS_DEBUG, "Sample\n");
- gnvs->smif = 0;
+ smm_get_gnvs()->smif = 0;
break;
default:
return 0;
diff --git a/src/mainboard/samsung/lumpy/mainboard_smi.c b/src/mainboard/samsung/lumpy/mainboard_smi.c
index 2d396b03b8..4e73a57938 100644
--- a/src/mainboard/samsung/lumpy/mainboard_smi.c
+++ b/src/mainboard/samsung/lumpy/mainboard_smi.c
@@ -29,17 +29,12 @@
#include <ec/smsc/mec1308/ec.h>
#include "ec.h"
-/* The southbridge SMI handler checks whether gnvs has a
- * valid pointer before calling the trap handler
- */
-extern global_nvs_t *gnvs;
-
int mainboard_io_trap_handler(int smif)
{
switch (smif) {
case 0x99:
printk(BIOS_DEBUG, "Sample\n");
- gnvs->smif = 0;
+ smm_get_gnvs()->smif = 0;
break;
default:
return 0;
@@ -59,7 +54,6 @@ static u8 mainboard_smi_ec(void)
{
u8 cmd;
u32 pm1_cnt;
- extern u16 pmbase; /* Set in southbridge SMI handler */
cmd = read_ec_command_byte(EC_GET_SMI_CAUSE);
@@ -68,9 +62,9 @@ static u8 mainboard_smi_ec(void)
printk(BIOS_DEBUG, "LID CLOSED, SHUTDOWN\n");
/* Go to S5 */
- pm1_cnt = inl(pmbase + PM1_CNT);
+ pm1_cnt = inl(smm_get_pmbase() + PM1_CNT);
pm1_cnt |= (0xf << 10);
- outl(pm1_cnt, pmbase + PM1_CNT);
+ outl(pm1_cnt, smm_get_pmbase() + PM1_CNT);
break;
}
diff --git a/src/mainboard/samsung/stumpy/mainboard_smi.c b/src/mainboard/samsung/stumpy/mainboard_smi.c
index 0b3024bad5..660bb31cd4 100644
--- a/src/mainboard/samsung/stumpy/mainboard_smi.c
+++ b/src/mainboard/samsung/stumpy/mainboard_smi.c
@@ -30,17 +30,12 @@
/* Include romstage serial for SIO helper functions */
#include <superio/ite/it8772f/early_serial.c>
-/* The southbridge SMI handler checks whether gnvs has a
- * valid pointer before calling the trap handler
- */
-extern global_nvs_t *gnvs;
-
int mainboard_io_trap_handler(int smif)
{
switch (smif) {
case 0x99:
printk(BIOS_DEBUG, "Sample\n");
- gnvs->smif = 0;
+ smm_get_gnvs()->smif = 0;
break;
default:
return 0;