X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fpost.c;h=b4ad1fa07b3dde5ec9c7d8870bf18315c116af8f;hb=2762de0867345d059ab70690f98144921f8e151b;hp=6f7aa14651b299c13de5c29f248d1f0ee599789e;hpb=533b6286cbc5a01e8aaafc2a8393a7d109f81958;p=seabios.git diff --git a/src/post.c b/src/post.c index 6f7aa14..b4ad1fa 100644 --- a/src/post.c +++ b/src/post.c @@ -229,6 +229,9 @@ maininit(void) pci_setup(); smm_init(); + // Setup Xen hypercalls + xen_init_hypercalls(); + // Initialize internal tables boot_setup(); @@ -330,10 +333,25 @@ reloc_init(void) func(); } -// Start of Power On Self Test (POST) - the BIOS initilization phase. -// This function does the setup needed for code relocation, and then -// invokes the relocation and main setup code. +// Setup for code relocation and then call reloc_init void VISIBLE32INIT +dopost(void) +{ + HaveRunPost = 1; + + // Detect ram and setup internal malloc. + qemu_cfg_port_probe(); + ram_probe(); + malloc_setup(); + + // Relocate initialization code and call maininit(). + reloc_init(); +} + +// Entry point for Power On Self Test (POST) - the BIOS initilization +// phase. This function makes the memory at 0xc0000-0xfffff +// read/writable and then calls dopost(). +void VISIBLE32FLAT handle_post(void) { debug_serial_setup(); @@ -353,13 +371,7 @@ handle_post(void) // Allow writes to modify bios area (0xf0000) make_bios_writable(); - HaveRunPost = 1; - // Detect ram and setup internal malloc. - qemu_cfg_port_probe(); - ram_probe(); - malloc_setup(); - - // Relocate initialization code and call maininit(). - reloc_init(); + // Now that memory is read/writable - start post process. + dopost(); }