summaryrefslogtreecommitdiff
path: root/target/x86
diff options
context:
space:
mode:
Diffstat (limited to 'target/x86')
-rw-r--r--target/x86/Makefile18
-rw-r--r--target/x86/kernel/qemu-x86_6420
-rw-r--r--target/x86/sys-available/qemu-x86_64-3211
3 files changed, 45 insertions, 4 deletions
diff --git a/target/x86/Makefile b/target/x86/Makefile
index 736f1c359..89e59095a 100644
--- a/target/x86/Makefile
+++ b/target/x86/Makefile
@@ -8,6 +8,16 @@ include $(TOPDIR)/mk/kernel-build.mk
include $(TOPDIR)/mk/image.mk
KERNEL:=$(LINUX_DIR)/arch/x86/boot/bzImage
+
+QEMU_ARGS:=-M pc
+QEMU_ARGS+=${ADK_QEMU_ARGS}
+
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86_64_32),y)
+QEMU_ARCH:=x86_84
+else
+QEMU_ARCH:=i386
+endif
+
ifeq ($(ADK_TARGET_QEMU_WITH_BOOTLOADER),y)
ifeq ($(ADK_TARGET_QEMU_WITHOUT_GRAPHIC),y)
CREATE:=./scripts/create.sh -g -t
@@ -43,9 +53,9 @@ ifeq ($(ADK_HARDWARE_QEMU),y)
@echo "$(CREATE) qemu-${CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
@echo "Start qemu with following command line:"
ifeq ($(ADK_TARGET_QEMU_WITH_BOOTLOADER),y)
- @echo 'qemu-system-i386 ${ADK_QEMU_ARGS} -net user -net nic,model=e1000 qemu-${CPU_ARCH}.img'
+ @echo 'qemu-system-${QEMU_ARCH} ${QEMU_ARGS} -net user -net nic,model=e1000 qemu-${CPU_ARCH}.img'
else
- @echo 'qemu-system-i386 ${ADK_QEMU_ARGS} -net user -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
+ @echo 'qemu-system-${QEMU_ARCH} ${QEMU_ARGS} -net user -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
endif
endif
ifeq ($(ADK_HARDWARE_VBOX),y)
@@ -72,7 +82,7 @@ imageinstall: $(FW_DIR)/$(INITRAMFS)
@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
ifeq ($(ADK_HARDWARE_QEMU),y)
@echo "Start qemu with following command line:"
- @echo 'qemu-system-i386 ${ADK_QEMU_ARGS} -net user -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
+ @echo 'qemu-system-${QEMU_ARCH} ${QEMU_ARGS} -net user -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
endif
endif
ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
@@ -81,7 +91,7 @@ imageinstall: createinitramfs
@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
ifeq ($(ADK_HARDWARE_QEMU),y)
@echo "Start qemu with following command line:"
- @echo 'qemu-system-i386 ${ADK_QEMU_ARGS} -net user -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL)'
+ @echo 'qemu-system-${QEMU_ARCH} ${QEMU_ARGS} -net user -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL)'
endif
endif
ifeq (${ADK_TARGET_FS},iso)
diff --git a/target/x86/kernel/qemu-x86_64 b/target/x86/kernel/qemu-x86_64
new file mode 100644
index 000000000..7bf96c74c
--- /dev/null
+++ b/target/x86/kernel/qemu-x86_64
@@ -0,0 +1,20 @@
+CONFIG_X86=y
+CONFIG_64BIT=y
+CONFIG_X86_64=y
+CONFIG_GENERIC_CPU=y
+CONFIG_PROCESSOR_SELECT=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_MTRR=y
+CONFIG_X86_PAT=y
+CONFIG_ISA_DMA_API=y
+CONFIG_AMD_NB=y
+CONFIG_IA32_EMULATION=y
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E1000=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_CONSOLE=y
diff --git a/target/x86/sys-available/qemu-x86_64-32 b/target/x86/sys-available/qemu-x86_64-32
new file mode 100644
index 000000000..f96e6ea35
--- /dev/null
+++ b/target/x86/sys-available/qemu-x86_64-32
@@ -0,0 +1,11 @@
+config ADK_TARGET_SYSTEM_QEMU_X86_64_32
+ bool "Qemu Emulator (x86_64) with 32Bit userland"
+ select ADK_x86
+ select ADK_qemu_x86_64_32
+ select ADK_CPU_I686
+ select ADK_HARDWARE_QEMU
+ select ADK_TARGET_KERNEL_BZIMAGE
+ select ADK_TARGET_KERNEL_64
+ help
+ Support for Qemu Emulator (x86_64) with 32 Bit userland.
+