Handle tables correctly if BX_USE_EBDA_TABLES is set.

- Sebastian
This commit is contained in:
Stanislav Shwartsman 2010-04-04 19:38:02 +00:00
parent 969eb42454
commit bcc5747abe

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: rombios32.c,v 1.69 2010-04-04 19:33:50 sshwarts Exp $
// $Id: rombios32.c,v 1.70 2010-04-04 19:38:02 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// 32 bit Bochs BIOS init code
@ -2371,6 +2371,7 @@ void rombios32_init(uint32_t *s3_resume_vector, uint8_t *shutdown_flag)
pci_bios_init();
#ifndef BX_USE_EBDA_TABLES
if (bios_table_cur_addr != 0 && i440_pcidev.bus != -1) {
mptable_init();
@ -2384,13 +2385,25 @@ void rombios32_init(uint32_t *s3_resume_vector, uint8_t *shutdown_flag)
bios_lock_shadow_ram();
BX_INFO("bios_table_cur_addr: 0x%08lx\n", bios_table_cur_addr);
if (bios_table_cur_addr > bios_table_end_addr)
BX_PANIC("bios_table_end_addr overflow!\n");
}
#ifdef BX_USE_EBDA_TABLES
#else
mptable_init();
if (bios_table_cur_addr != 0 && i440_pcidev.bus != -1) {
uuid_probe();
smbios_init();
}
if (acpi_enabled)
acpi_bios_init();
BX_INFO("ebda_cur_addr: 0x%08lx\n", ebda_cur_addr);
if (ebda_cur_addr > 0xA0000)
BX_PANIC("ebda_cur_addr overflow!\n");
#endif
BX_INFO("bios_table_cur_addr: 0x%08lx\n", bios_table_cur_addr);
if (bios_table_cur_addr > bios_table_end_addr)
BX_PANIC("bios_table_end_addr overflow!\n");
}