From: Peter Dinda Date: Thu, 18 Jun 2015 21:41:46 +0000 (-0500) Subject: SEABIOS updates to support reset and to simplify X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=commitdiff_plain;h=de96f467a8d9ca35ad81bd21df696933fdc7e728 SEABIOS updates to support reset and to simplify --- diff --git a/bios/seabios/.config b/bios/seabios/.config index 992484a..150785b 100644 --- a/bios/seabios/.config +++ b/bios/seabios/.config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # SeaBIOS Configuration -# Wed Mar 14 18:51:09 2012 +# Thu Jun 18 16:39:59 2015 # # @@ -9,10 +9,11 @@ # # CONFIG_COREBOOT is not set # CONFIG_XEN is not set +CONFIG_PALACIOS=y # CONFIG_THREADS is not set CONFIG_RELOCATE_INIT=y CONFIG_BOOTMENU=y -CONFIG_BOOTSPLASH=y +# CONFIG_BOOTSPLASH is not set CONFIG_BOOTORDER=y # @@ -23,19 +24,12 @@ CONFIG_ATA_DMA=y CONFIG_ATA_PIO32=y # CONFIG_AHCI is not set CONFIG_VIRTIO_BLK=y -CONFIG_FLOPPY=y +# CONFIG_FLOPPY is not set CONFIG_PS2PORT=y -CONFIG_USB=y -CONFIG_USB_UHCI=y -CONFIG_USB_OHCI=y -CONFIG_USB_EHCI=y -CONFIG_USB_MSC=y -CONFIG_USB_HUB=y -CONFIG_USB_KEYBOARD=y -CONFIG_USB_MOUSE=y +# CONFIG_USB is not set CONFIG_SERIAL=y CONFIG_LPT=y -CONFIG_USE_SMM=y +# CONFIG_USE_SMM is not set # CONFIG_MTRR_INIT is not set # @@ -45,8 +39,8 @@ CONFIG_DRIVES=y CONFIG_CDROM_BOOT=y CONFIG_CDROM_EMU=y CONFIG_PCIBIOS=y -CONFIG_APMBIOS=y -CONFIG_PNPBIOS=y +# CONFIG_APMBIOS is not set +# CONFIG_PNPBIOS is not set CONFIG_OPTIONROMS=y CONFIG_OPTIONROMS_DEPLOYED=y CONFIG_PMM=y @@ -54,7 +48,7 @@ CONFIG_BOOT=y CONFIG_KEYBOARD=y CONFIG_KBD_CALL_INT15_4F=y CONFIG_MOUSE=y -CONFIG_S3_RESUME=y +# CONFIG_S3_RESUME is not set # CONFIG_DISABLE_A20 is not set # diff --git a/bios/seabios/out/bios.bin b/bios/seabios/out/bios.bin index 561b6c5..ff7fad4 100644 Binary files a/bios/seabios/out/bios.bin and b/bios/seabios/out/bios.bin differ diff --git a/bios/seabios/out/bios.bin.elf b/bios/seabios/out/bios.bin.elf index c011f97..6be2724 100755 Binary files a/bios/seabios/out/bios.bin.elf and b/bios/seabios/out/bios.bin.elf differ diff --git a/bios/seabios/out/bios.bin.raw b/bios/seabios/out/bios.bin.raw index e92e1b7..8ddcfea 100755 Binary files a/bios/seabios/out/bios.bin.raw and b/bios/seabios/out/bios.bin.raw differ diff --git a/bios/seabios/palacios_config b/bios/seabios/palacios_config index 992484a..150785b 100644 --- a/bios/seabios/palacios_config +++ b/bios/seabios/palacios_config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # SeaBIOS Configuration -# Wed Mar 14 18:51:09 2012 +# Thu Jun 18 16:39:59 2015 # # @@ -9,10 +9,11 @@ # # CONFIG_COREBOOT is not set # CONFIG_XEN is not set +CONFIG_PALACIOS=y # CONFIG_THREADS is not set CONFIG_RELOCATE_INIT=y CONFIG_BOOTMENU=y -CONFIG_BOOTSPLASH=y +# CONFIG_BOOTSPLASH is not set CONFIG_BOOTORDER=y # @@ -23,19 +24,12 @@ CONFIG_ATA_DMA=y CONFIG_ATA_PIO32=y # CONFIG_AHCI is not set CONFIG_VIRTIO_BLK=y -CONFIG_FLOPPY=y +# CONFIG_FLOPPY is not set CONFIG_PS2PORT=y -CONFIG_USB=y -CONFIG_USB_UHCI=y -CONFIG_USB_OHCI=y -CONFIG_USB_EHCI=y -CONFIG_USB_MSC=y -CONFIG_USB_HUB=y -CONFIG_USB_KEYBOARD=y -CONFIG_USB_MOUSE=y +# CONFIG_USB is not set CONFIG_SERIAL=y CONFIG_LPT=y -CONFIG_USE_SMM=y +# CONFIG_USE_SMM is not set # CONFIG_MTRR_INIT is not set # @@ -45,8 +39,8 @@ CONFIG_DRIVES=y CONFIG_CDROM_BOOT=y CONFIG_CDROM_EMU=y CONFIG_PCIBIOS=y -CONFIG_APMBIOS=y -CONFIG_PNPBIOS=y +# CONFIG_APMBIOS is not set +# CONFIG_PNPBIOS is not set CONFIG_OPTIONROMS=y CONFIG_OPTIONROMS_DEPLOYED=y CONFIG_PMM=y @@ -54,7 +48,7 @@ CONFIG_BOOT=y CONFIG_KEYBOARD=y CONFIG_KBD_CALL_INT15_4F=y CONFIG_MOUSE=y -CONFIG_S3_RESUME=y +# CONFIG_S3_RESUME is not set # CONFIG_DISABLE_A20 is not set # diff --git a/bios/seabios/src/Kconfig b/bios/seabios/src/Kconfig index 338f51a..08471c3 100644 --- a/bios/seabios/src/Kconfig +++ b/bios/seabios/src/Kconfig @@ -4,19 +4,27 @@ mainmenu "SeaBIOS Configuration" menu "General Features" + choice + prompt "Target" + default PALACIOS + config COREBOOT bool "Build for coreboot" - default n help Configure as a coreboot payload. config XEN - depends on !COREBOOT bool "Build for Xen HVM" - default n help Configure to be used by xen hvmloader, for a HVM guest. + config PALACIOS + bool "Build for Palacios VMM" + help + Configure to be used by the Palacios VMM for a regular or ROS guest + + endchoice + config THREADS bool "Parallelize hardware init" default y diff --git a/bios/seabios/src/resume.c b/bios/seabios/src/resume.c index 4390fb5..59dc337 100644 --- a/bios/seabios/src/resume.c +++ b/bios/seabios/src/resume.c @@ -128,18 +128,26 @@ tryReboot(void) dprintf(1, "Attempting a hard reboot\n"); // Setup for reset on qemu. - if (! CONFIG_COREBOOT) { + if (! CONFIG_COREBOOT && !CONFIG_PALACIOS) { qemu_prep_reset(); if (HaveRunPost) apm_shutdown(); } + HaveRunPost=0; + + dprintf(1,"Attempting i8042 reboot\n"); + // Try keyboard controller reboot. i8042_reboot(); + dprintf(1,"Attempting PCI reboot\n"); + // Try PCI 0xcf9 reboot pci_reboot(); + dprintf(1,"Attempting int3 reboot\n"); + // Try triple fault asm volatile("int3"); diff --git a/bios/seabios/src/romlayout.S b/bios/seabios/src/romlayout.S index 5983a4a..c6d0248 100644 --- a/bios/seabios/src/romlayout.S +++ b/bios/seabios/src/romlayout.S @@ -459,7 +459,9 @@ entry_18: ORG 0xe05b entry_post: cmpl $0, %cs:HaveRunPost // Check for resume/reboot - jnz entry_resume + + // Do not attempt a resume on Palacios + // jnz entry_resume ENTRY_INTO32 _cfunc32flat_handle_post // Normal entry point ORG 0xe2c3 diff --git a/bios/seabios/tools/layoutrom.pyc b/bios/seabios/tools/layoutrom.pyc index f0425ce..4f8b2b5 100644 Binary files a/bios/seabios/tools/layoutrom.pyc and b/bios/seabios/tools/layoutrom.pyc differ