소스 검색

some basic qemu nios2 support

Waldemar Brodkorb 8 년 전
부모
커밋
96469d9a07
4개의 변경된 파일85개의 추가작업 그리고 0개의 파일을 삭제
  1. 1 0
      target/config/Config.in.kernelcfg
  2. 75 0
      target/nios2/Makefile
  3. 1 0
      target/nios2/kernel/qemu-nios2
  4. 8 0
      target/nios2/systems/qemu-nios2

+ 1 - 0
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
 

+ 75 - 0
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

+ 1 - 0
target/nios2/kernel/qemu-nios2

@@ -0,0 +1 @@
+CONFIG_NIOS2=y

+ 8 - 0
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.
+