From 96469d9a078d67af6e66f9bee068371e2e2d9918 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sat, 14 May 2016 02:18:57 +0200 Subject: some basic qemu nios2 support --- target/nios2/Makefile | 75 +++++++++++++++++++++++++++++++++++++++++ target/nios2/kernel/qemu-nios2 | 1 + target/nios2/systems/qemu-nios2 | 8 +++++ 3 files changed, 84 insertions(+) create mode 100644 target/nios2/kernel/qemu-nios2 create mode 100644 target/nios2/systems/qemu-nios2 (limited to 'target/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. + -- cgit v1.2.3