diff options
author | Stefan Reinauer <stepan@coresystems.de> | 2009-10-25 19:50:47 +0000 |
---|---|---|
committer | Stefan Reinauer <stepan@openbios.org> | 2009-10-25 19:50:47 +0000 |
commit | 074356ec819be284fb1e8d18a68678b72c5282da (patch) | |
tree | 9f92a9da412d3cb8be7958390164fe44d4b7ec16 /util/x86emu/yabel/compat/functions.c | |
parent | 46a895e633a6b4bd3f4a8391529cc069a8a8d04b (diff) |
Option ROM init x86/x86emu update
- use default display in int 15 5f35
- move REALMODE_BASE to 0x600, 0x500 can be BDA
- add regparm for assembler functions
- use memset instead of own implementation
- YABEL: copy back the IVT, BDA and VBIOS. Some Xorg drivers require this.
- YABEL: use hardware timer instead of emulated timer, because the emulated
timer's base is never initialized (leading to division by zero if the
timer is really used)
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Peter Stuge <peter@stuge.se>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4852 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'util/x86emu/yabel/compat/functions.c')
-rw-r--r-- | util/x86emu/yabel/compat/functions.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/util/x86emu/yabel/compat/functions.c b/util/x86emu/yabel/compat/functions.c index 3b3d223b71..904f786bf6 100644 --- a/util/x86emu/yabel/compat/functions.c +++ b/util/x86emu/yabel/compat/functions.c @@ -17,6 +17,7 @@ #ifndef CONFIG_COREBOOT_V2 #include <config.h> #endif +#include <string.h> #include <device/device.h> #define VMEM_SIZE 1024 *1024 /* 1 MB */ @@ -33,6 +34,9 @@ u32 biosemu(u8 *biosmem, u32 biosmem_size, struct device *dev, void run_bios(struct device * dev, unsigned long addr) { biosemu(vmem, VMEM_SIZE, dev, addr); + memcpy(0x0, vmem + 0x0, 0x400); + memcpy(0x400, vmem + 0x400, 0x100); + memcpy(0xc0000, vmem + 0xc0000, 0x10000); } u64 get_time(void) |