Enable rom size to be over 128K.
Apparently, only the first 128K of the rom are mirrored to the
0xc0000-0xfffff area under qemu, so make sure to copy the rom (via
make_bios_writable) in the non-init part of the startup code. This
ensure the copy code is itself available.
func();
}
-static int HaveRunPost;
-
// Start of Power On Self Test (POST) - the BIOS initilization phase.
// This function sets up for and attempts relocation of the init code.
void VISIBLE32INIT
post(void)
{
- // Allow writes to modify bios area (0xf0000)
- make_bios_writable();
-
- HaveRunPost = 1;
-
// Detect ram and setup internal malloc.
memmap_setup();
qemu_cfg_port_probe();
* POST entry point
****************************************************************/
+static int HaveRunPost;
+
// Attempt to invoke a hard-reboot.
static void
tryReboot(void)
// This is a soft reboot - invoke a hard reboot.
tryReboot();
+ // Allow writes to modify bios area (0xf0000)
+ make_bios_writable();
+ HaveRunPost = 1;
+
// Perform main setup code.
post();
}
finalsize = 64*1024
if datasize > 64*1024:
finalsize = 128*1024
+ if datasize > 128*1024:
+ finalsize = 256*1024
# Sanity checks
start = symbols['code32flat_start'].offset