aboutsummaryrefslogtreecommitdiffstats
path: root/src/optionroms.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2008-12-26 23:50:17 -0500
committerKevin O'Connor <kevin@koconnor.net>2008-12-26 23:50:17 -0500
commit4d7c37e12ef4ceb6903dd76ee700beb99fbf5f8e (patch)
tree775ea50649f399752e929bd7cdcdc14e42a548c6 /src/optionroms.c
parent4735877249b30502e4c816bf1dc1a2c0e16be68e (diff)
downloadseabios-4d7c37e12ef4ceb6903dd76ee700beb99fbf5f8e.tar.gz
Support a relocatable ebda segment.
Some option roms will try to relocate the ebda. Also fix an apparent typo in the assignment of ivecs[0x46].
Diffstat (limited to 'src/optionroms.c')
-rw-r--r--src/optionroms.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/src/optionroms.c b/src/optionroms.c
index 89381634..b7bc1108 100644
--- a/src/optionroms.c
+++ b/src/optionroms.c
@@ -96,10 +96,6 @@ callrom(struct rom_header *rom, u16 offset, u16 bdf)
call16big(&br);
debug_serial_setup();
-
- if (GET_BDA(ebda_seg) != SEG_EBDA)
- BX_PANIC("Option rom at %x:%x attempted to move ebda from %x to %x\n"
- , seg, offset, SEG_EBDA, GET_BDA(ebda_seg));
}
// Verify that an option rom looks valid
@@ -154,14 +150,13 @@ get_pci_rom(struct rom_header *rom)
static void
add_ipl(struct rom_header *rom, struct pnp_data *pnp)
{
-#define ebda ((struct extended_bios_data_area_s *)MAKE_FARPTR(SEG_EBDA, 0))
-
// Found a device that thinks it can boot the system. Record
// its BEV and product name string.
if (! CONFIG_BOOT)
return;
+ struct extended_bios_data_area_s *ebda = get_ebda_ptr();
if (ebda->ipl.count >= ARRAY_SIZE(ebda->ipl.table))
return;