X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fpost.c;h=70d98a67224b71d091d7ec69e74f9d4b47c0689a;hb=74c78786719b202557d4f177bd290ddd98e979fe;hp=7d2b5f28290e2219b259b41e986adbb155058125;hpb=1442c31529b951d4a2b90bdcf1adbd32d1ceffa8;p=seabios.git diff --git a/src/post.c b/src/post.c index 7d2b5f2..70d98a6 100644 --- a/src/post.c +++ b/src/post.c @@ -23,6 +23,7 @@ #include "usb.h" // usb_setup #include "smbios.h" // smbios_init #include "paravirt.h" // qemu_cfg_port_probe +#include "xen.h" // xen_probe_hvm_info #include "ps2port.h" // ps2port_setup #include "virtio-blk.h" // virtio_blk_setup @@ -101,6 +102,8 @@ ram_probe(void) dprintf(3, "Find memory size\n"); if (CONFIG_COREBOOT) { coreboot_setup(); + } else if (usingXen()) { + xen_setup(); } else { // On emulators, get memory size from nvram. u32 rs = ((inb_cmos(CMOS_MEM_EXTMEM2_LOW) << 16) @@ -158,6 +161,10 @@ init_bios_tables(void) coreboot_copy_biostable(); return; } + if (usingXen()) { + xen_copy_biostables(); + return; + } create_pirtable(); @@ -380,6 +387,9 @@ _start(void) // This is a soft reboot - invoke a hard reboot. tryReboot(); + // Check if we are running under Xen. + xen_probe(); + // Allow writes to modify bios area (0xf0000) make_bios_writable(); HaveRunPost = 1;