if (PLAT_KVM)
+if (ARCH_X86_64)
+
+config KVM_BOOT_PROTO_MULTIBOOT
+ bool
+
+choice
+ prompt "Hypervisor"
+ default KVM_HYPERVISOR_QEMU
+
+config KVM_HYPERVISOR_QEMU
+ bool "QEMU"
+ select KVM_BOOT_PROTO_MULTIBOOT
+
+endchoice
+endif
+
menu "Console Options"
config KVM_KERNEL_SERIAL_CONSOLE
config KVM_PCI
bool "PCI Bus Driver"
default y
- depends on (ARCH_X86_64 || ARCH_ARM_64)
+ depends on (ARCH_X86_64 || ARCH_ARM_64) && KVM_HYPERVISOR_QEMU
select LIBUKBUS
help
PCI bus driver for probing and operating PCI devices
ifeq (x86_64,$(CONFIG_UK_ARCH))
+ifeq ($(CONFIG_KVM_BOOT_PROTO_MULTIBOOT),y)
KVM_LDFLAGS-y += -Wl,-m,elf_x86_64
KVM_LDFLAGS-y += -Wl,--entry=_multiboot_entry
KVM_STRIPFLAGS += --output-target elf32-i386
+endif
else ifeq (arm64,$(CONFIG_UK_ARCH))
KVM_LDFLAGS-y += -Wl,-m,aarch64elf
KVM_LINK_LIBGCC_FLAG := -lgcc
endif
LIBKVMPLAT_SRCS-$(CONFIG_ARCH_X86_64) += $(UK_PLAT_COMMON_BASE)/bootinfo.c|common
LIBKVMPLAT_SRCS-$(CONFIG_ARCH_X86_64) += $(UK_PLAT_COMMON_BASE)/bootinfo.lds.S|common
+ifeq ($(CONFIG_KVM_BOOT_PROTO_MULTIBOOT),y)
LIBKVMPLAT_SRCS-$(CONFIG_ARCH_X86_64) += $(LIBKVMPLAT_BASE)/x86/multiboot.S|x86
LIBKVMPLAT_SRCS-$(CONFIG_ARCH_X86_64) += $(LIBKVMPLAT_BASE)/x86/multiboot.c
+endif
LIBKVMPLAT_SRCS-$(CONFIG_ARCH_X86_64) += $(LIBKVMPLAT_BASE)/x86/pagetable64.S
LIBKVMPLAT_SRCS-$(CONFIG_ARCH_X86_64) += $(LIBKVMPLAT_BASE)/x86/traps.c
LIBKVMPLAT_SRCS-$(CONFIG_ARCH_X86_64) += $(LIBKVMPLAT_BASE)/x86/cpu_vectors_x86_64.S