
Now that the relocation offset is in Global Data, we can locate the BIOS code in the U-Boot image --- lib_i386/bios_setup.c | 2 +- lib_i386/realmode.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib_i386/bios_setup.c b/lib_i386/bios_setup.c index 6491e52..a92b77e 100644 --- a/lib_i386/bios_setup.c +++ b/lib_i386/bios_setup.c @@ -141,7 +141,7 @@ static void setvector(int vector, u16 segment, void *handler)
int bios_setup(void) { - ulong i386boot_bios = (ulong)&_i386boot_bios; + ulong i386boot_bios = (ulong)&_i386boot_bios + gd->reloc_off; ulong i386boot_bios_size = (ulong)&_i386boot_bios_size;
static int done=0; diff --git a/lib_i386/realmode.c b/lib_i386/realmode.c index 3c3c1fc..b3f5123 100644 --- a/lib_i386/realmode.c +++ b/lib_i386/realmode.c @@ -37,7 +37,7 @@ extern char realmode_enter;
int realmode_setup(void) { - ulong i386boot_realmode = (ulong)&_i386boot_realmode; + ulong i386boot_realmode = (ulong)&_i386boot_realmode + gd->reloc_off; ulong i386boot_realmode_size = (ulong)&_i386boot_realmode_size;
/* copy the realmode switch code */