summaryrefslogtreecommitdiff
path: root/src/southbridge
diff options
context:
space:
mode:
Diffstat (limited to 'src/southbridge')
-rw-r--r--src/southbridge/intel/i82801dx/smi.c6
-rw-r--r--src/southbridge/intel/i82801gx/smi.c6
-rw-r--r--src/southbridge/intel/i82801ix/smi.c6
3 files changed, 6 insertions, 12 deletions
diff --git a/src/southbridge/intel/i82801dx/smi.c b/src/southbridge/intel/i82801dx/smi.c
index 71ef5fd8ee..93e28452e0 100644
--- a/src/southbridge/intel/i82801dx/smi.c
+++ b/src/southbridge/intel/i82801dx/smi.c
@@ -25,9 +25,6 @@
#include <string.h>
#include "i82801dx.h"
-extern unsigned char _binary_smm_start;
-extern unsigned char _binary_smm_size;
-
/* I945 */
#define SMRAM 0x90
#define D_OPEN (1 << 6)
@@ -321,7 +318,8 @@ static void smm_install(void)
D_OPEN | G_SMRAME | C_BASE_SEG);
/* copy the real SMM handler */
- memcpy((void *)0xa0000, &_binary_smm_start, (size_t)&_binary_smm_size);
+ memcpy((void *)0xa0000, _binary_smm_start,
+ _binary_smm_end - _binary_smm_start);
wbinvd();
/* close the SMM memory window and enable normal SMM */
diff --git a/src/southbridge/intel/i82801gx/smi.c b/src/southbridge/intel/i82801gx/smi.c
index 3487aabd56..c9d4cd92ca 100644
--- a/src/southbridge/intel/i82801gx/smi.c
+++ b/src/southbridge/intel/i82801gx/smi.c
@@ -25,9 +25,6 @@
#include <string.h>
#include "i82801gx.h"
-extern unsigned char _binary_smm_start;
-extern unsigned char _binary_smm_size;
-
/* I945 */
#define SMRAM 0x9d
#define D_OPEN (1 << 6)
@@ -345,7 +342,8 @@ static void smm_install(void)
D_OPEN | G_SMRAME | C_BASE_SEG);
/* copy the real SMM handler */
- memcpy((void *)0xa0000, &_binary_smm_start, (size_t)&_binary_smm_size);
+ memcpy((void *)0xa0000, _binary_smm_start,
+ _binary_smm_end - _binary_smm_start);
wbinvd();
}
diff --git a/src/southbridge/intel/i82801ix/smi.c b/src/southbridge/intel/i82801ix/smi.c
index 358a1a9ee7..421746df7e 100644
--- a/src/southbridge/intel/i82801ix/smi.c
+++ b/src/southbridge/intel/i82801ix/smi.c
@@ -26,9 +26,6 @@
#include <string.h>
#include "i82801ix.h"
-extern unsigned char _binary_smm_start;
-extern unsigned char _binary_smm_size;
-
/* I945/GM45 */
#define SMRAM 0x9d
#define D_OPEN (1 << 6)
@@ -344,7 +341,8 @@ static void smm_install(void)
D_OPEN | G_SMRAME | C_BASE_SEG);
/* copy the real SMM handler */
- memcpy((void *)0xa0000, &_binary_smm_start, (size_t)&_binary_smm_size);
+ memcpy((void *)0xa0000, _binary_smm_start,
+ _binary_smm_end - _binary_smm_start);
wbinvd();
}