summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2016-05-14 02:18:57 +0200
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2016-05-14 02:19:24 +0200
commit96469d9a078d67af6e66f9bee068371e2e2d9918 (patch)
treefea8dd83c13600b5510bceda461f235229e00969
parentc201a77de667d207b4d150cbecc5a9225336de47 (diff)
some basic qemu nios2 support
-rw-r--r--target/config/Config.in.kernelcfg1
-rw-r--r--target/nios2/Makefile75
-rw-r--r--target/nios2/kernel/qemu-nios21
-rw-r--r--target/nios2/systems/qemu-nios28
4 files changed, 85 insertions, 0 deletions
diff --git a/target/config/Config.in.kernelcfg b/target/config/Config.in.kernelcfg
index c84dcfe39..fbbae555d 100644
--- a/target/config/Config.in.kernelcfg
+++ b/target/config/Config.in.kernelcfg
@@ -22,4 +22,5 @@ config ADK_TARGET_KERNEL_DEFCONFIG
default "imx_v7_cbi_hb_defconfig" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
default "nsim_700_defconfig" if ADK_TARGET_SYSTEM_NSIM_ARCV1
default "nsim_hs_defconfig" if ADK_TARGET_SYSTEM_NSIM_ARCV2
+ default "10m50_defconfig" if ADK_TARGET_SYSTEM_QEMU_NIOS2
diff --git a/target/nios2/Makefile b/target/nios2/Makefile
index 03afae8f0..f348c6cd7 100644
--- a/target/nios2/Makefile
+++ b/target/nios2/Makefile
@@ -5,3 +5,78 @@ include $(ADK_TOPDIR)/rules.mk
include $(ADK_TOPDIR)/mk/kernel-build.mk
include $(ADK_TOPDIR)/mk/image.mk
+KERNEL:=$(LINUX_DIR)/vmlinux
+QEMU_ARGS+=-M 10m50-ghrd -dtb $(FW_DIR)/10m50_devboard.dtb
+QEMU_ARGS+=${ADK_QEMU_ARGS}
+
+# target helper text
+ifeq ($(ADK_TARGET_FS),archive)
+targethelp:
+ @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)"
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo "Use following command to create a QEMU Image:"
+ @echo "./scripts/create.sh qemu-${ADK_TARGET_CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
+ @echo "Start qemu with following options:"
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${ADK_TARGET_CPU_ARCH}.img'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),initramfs)
+targethelp:
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),initramfsarchive)
+targethelp:
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
+endif
+ifeq ($(ADK_TARGET_FS),initramfspiggyback)
+targethelp:
+ @echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),nfsroot)
+targethelp:
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo 'The nfs root tarball is: ${FW_DIR}/${ROOTFSUSERTARBALL}'
+endif
+
+# image creation and kernel install
+kernel-strip:
+ cp $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
+
+kernel-install: kernel-strip
+ @cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
+
+dtb-install:
+ env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
+ 10m50_devboard.dtb $(MAKE_TRACE)
+ for x in $(LINUX_DIR)/arch/nios2/boot/*.dtb; do \
+ [[ -e "$$x" ]] && cp $(LINUX_DIR)/arch/nios2/boot/*.dtb $(FW_DIR); \
+ break; \
+ done
+
+# filesystem specific targets
+ifeq ($(ADK_TARGET_FS),archive)
+imageinstall: $(FW_DIR)/$(ROOTFSTARBALL) targethelp
+endif
+ifeq ($(ADK_TARGET_FS),initramfs)
+imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp
+endif
+ifeq ($(ADK_TARGET_FS),initramfsarchive)
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
+endif
+ifeq ($(ADK_TARGET_FS),initramfspiggyback)
+imageinstall: dtb-install createinitramfs targethelp
+endif
+ifeq ($(ADK_TARGET_FS),nfsroot)
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
+endif
diff --git a/target/nios2/kernel/qemu-nios2 b/target/nios2/kernel/qemu-nios2
new file mode 100644
index 000000000..e7515909e
--- /dev/null
+++ b/target/nios2/kernel/qemu-nios2
@@ -0,0 +1 @@
+CONFIG_NIOS2=y
diff --git a/target/nios2/systems/qemu-nios2 b/target/nios2/systems/qemu-nios2
new file mode 100644
index 000000000..97cfe6821
--- /dev/null
+++ b/target/nios2/systems/qemu-nios2
@@ -0,0 +1,8 @@
+config ADK_TARGET_SYSTEM_QEMU_NIOS2
+ bool "Qemu Emulator"
+ select ADK_TARGET_QEMU
+ select ADK_TARGET_CPU_NIOS2
+ select ADK_TARGET_KERNEL_WITH_COMPRESSION
+ help
+ Qemu support for NIOS2 architecture.
+