aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/asm-i386/u-boot-i386.h6
-rw-r--r--lib_i386/bios_setup.c6
-rw-r--r--lib_i386/board.c11
-rw-r--r--lib_i386/realmode.c5
4 files changed, 11 insertions, 17 deletions
diff --git a/include/asm-i386/u-boot-i386.h b/include/asm-i386/u-boot-i386.h
index dfec3074c62..1e8def77d55 100644
--- a/include/asm-i386/u-boot-i386.h
+++ b/include/asm-i386/u-boot-i386.h
@@ -35,12 +35,6 @@ extern ulong i386boot_bss_size; /* bss size */
extern ulong i386boot_stack_end; /* first usable RAM address after bss and stack */
extern ulong i386boot_ram_end; /* end of ram */
-extern ulong i386boot_realmode; /* start of realmode entry code */
-extern ulong i386boot_realmode_size;/* size of realmode entry code */
-extern ulong i386boot_bios; /* start of BIOS emulation code */
-extern ulong i386boot_bios_size; /* size of BIOS emulation code */
-
-
/* cpu/.../cpu.c */
int cpu_init(void);
diff --git a/lib_i386/bios_setup.c b/lib_i386/bios_setup.c
index 33c842c6a0a..6491e522ec4 100644
--- a/lib_i386/bios_setup.c
+++ b/lib_i386/bios_setup.c
@@ -45,6 +45,9 @@ DECLARE_GLOBAL_DATA_PTR;
#define BIOS_BASE ((char*)0xf0000)
#define BIOS_CS 0xf000
+extern ulong _i386boot_bios;
+extern ulong _i386boot_bios_size;
+
/* these are defined in a 16bit segment and needs
* to be accessed with the RELOC_16_xxxx() macros below
*/
@@ -138,6 +141,9 @@ static void setvector(int vector, u16 segment, void *handler)
int bios_setup(void)
{
+ ulong i386boot_bios = (ulong)&_i386boot_bios;
+ ulong i386boot_bios_size = (ulong)&_i386boot_bios_size;
+
static int done=0;
int vector;
#ifdef CONFIG_PCI
diff --git a/lib_i386/board.c b/lib_i386/board.c
index ebd70476c8b..44fa0e31a48 100644
--- a/lib_i386/board.c
+++ b/lib_i386/board.c
@@ -53,11 +53,6 @@ extern long _i386boot_romdata_size;
extern long _i386boot_bss_start;
extern long _i386boot_bss_size;
-extern long _i386boot_realmode;
-extern long _i386boot_realmode_size;
-extern long _i386boot_bios;
-extern long _i386boot_bios_size;
-
/* The symbols defined by the linker script becomes pointers
* which is somewhat inconveient ... */
ulong i386boot_start = (ulong)&_i386boot_start; /* code start (in flash) defined in start.S */
@@ -68,12 +63,6 @@ ulong i386boot_romdata_size = (ulong)&_i386boot_romdata_size; /* size of data
ulong i386boot_bss_start = (ulong)&_i386boot_bss_start; /* bss start */
ulong i386boot_bss_size = (ulong)&_i386boot_bss_size; /* bss size */
-ulong i386boot_realmode = (ulong)&_i386boot_realmode; /* start of realmode entry code */
-ulong i386boot_realmode_size = (ulong)&_i386boot_realmode_size; /* size of realmode entry code */
-ulong i386boot_bios = (ulong)&_i386boot_bios; /* start of BIOS emulation code */
-ulong i386boot_bios_size = (ulong)&_i386boot_bios_size; /* size of BIOS emulation code */
-
-
const char version_string[] =
U_BOOT_VERSION" (" U_BOOT_DATE " - " U_BOOT_TIME ")";
diff --git a/lib_i386/realmode.c b/lib_i386/realmode.c
index 6cf273885b8..3c3c1fc961f 100644
--- a/lib_i386/realmode.c
+++ b/lib_i386/realmode.c
@@ -31,10 +31,15 @@
#define REALMODE_MAILBOX ((char*)0xe00)
+extern ulong _i386boot_realmode;
+extern ulong _i386boot_realmode_size;
extern char realmode_enter;
int realmode_setup(void)
{
+ ulong i386boot_realmode = (ulong)&_i386boot_realmode;
+ ulong i386boot_realmode_size = (ulong)&_i386boot_realmode_size;
+
/* copy the realmode switch code */
if (i386boot_realmode_size > (REALMODE_MAILBOX-REALMODE_BASE)) {
printf("realmode switch too large (%ld bytes, max is %d)\n",