aboutsummaryrefslogtreecommitdiff
path: root/pc-bios/optionrom/Makefile
diff options
context:
space:
mode:
authorStefano Garzarella <sgarzare@redhat.com>2019-01-18 13:01:41 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2019-02-05 16:50:17 +0100
commit2785dc7b1786a833ca5ad6d8d39d64eb82e2cddc (patch)
tree0eb715dd8a0ba1312d325fc7ea7ba3351d49fcaf /pc-bios/optionrom/Makefile
parent6dfa01437bea02b2e5ae14f9e163e55610ead6fe (diff)
downloadqemu-2785dc7b1786a833ca5ad6d8d39d64eb82e2cddc.zip
qemu-2785dc7b1786a833ca5ad6d8d39d64eb82e2cddc.tar.gz
qemu-2785dc7b1786a833ca5ad6d8d39d64eb82e2cddc.tar.bz2
optionrom: add new PVH option rom
The new pvh.bin option rom can be used with SeaBIOS to boot uncompressed kernel using the x86/HVM direct boot ABI. pvh.S contains the entry point of the option rom. It runs in real mode, loads the e820 table querying the BIOS, and then it switches to 32bit protected mode and jumps to the pvh_load_kernel() written in pvh_main.c. pvh_load_kernel() loads the cmdline and kernel entry_point using fw_cfg, then it looks for RSDP, fills the hvm_start_info required by x86/HVM ABI, and finally jumps to the kernel entry_point. Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Liam Merwick <liam.merwick@oracle.com>
Diffstat (limited to 'pc-bios/optionrom/Makefile')
-rw-r--r--pc-bios/optionrom/Makefile5
1 files changed, 4 insertions, 1 deletions
diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
index a9a9e5e..e33a24d 100644
--- a/pc-bios/optionrom/Makefile
+++ b/pc-bios/optionrom/Makefile
@@ -37,7 +37,7 @@ Wa = -Wa,
ASFLAGS += -32
QEMU_CFLAGS += $(call cc-c-option, $(QEMU_CFLAGS), $(Wa)-32)
-build-all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin
+build-all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
# suppress auto-removal of intermediate files
.SECONDARY:
@@ -46,6 +46,9 @@ build-all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin
%.o: %.S
$(call quiet-command,$(CPP) $(QEMU_INCLUDES) $(QEMU_DGFLAGS) -c -o - $< | $(AS) $(ASFLAGS) -o $@,"AS","$(TARGET_DIR)$@")
+pvh.img: pvh.o pvh_main.o
+ $(call quiet-command,$(LD) $(LDFLAGS_NOPIE) -m $(LD_I386_EMULATION) -T $(SRC_PATH)/pc-bios/optionrom/flat.lds -s -o $@ $^,"BUILD","$(TARGET_DIR)$@")
+
%.img: %.o
$(call quiet-command,$(LD) $(LDFLAGS_NOPIE) -m $(LD_I386_EMULATION) -T $(SRC_PATH)/pc-bios/optionrom/flat.lds -s -o $@ $<,"BUILD","$(TARGET_DIR)$@")