Browse Source

add support for qemu xilinx zynq emulation

Waldemar Brodkorb 8 years ago
parent
commit
d808fb76b6

+ 11 - 4
target/arm/Makefile

@@ -17,6 +17,9 @@ KERNEL:=$(LINUX_DIR)/arch/arm/boot/xipImage
 endif
 
 QEMU_ARGS:=${ADK_QEMU_ARGS}
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ),y)
+QEMU_ARGS+=-M xilinx-zynq-a9 -dtb $(FW_DIR)/zynq-zc702.dtb -serial null -serial mon:stdio
+endif
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ),y)
 QEMU_ARGS+=-M spitz
 endif
@@ -75,7 +78,7 @@ targethelp:
 	@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}'
+	@echo 'qemu-system-arm ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfsarchive)
@@ -88,7 +91,7 @@ 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)'
+	@echo 'qemu-system-arm ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)'
 endif
 endif
 ifeq ($(ADK_TARGET_FS),nfsroot)
@@ -102,7 +105,7 @@ targethelp:
 	@echo "The RootFS image is: $(FW_DIR)/$(ROOTFSSQUASHFS)"
 ifeq ($(ADK_TARGET_QEMU),y)
 	@echo "Start qemu with following options:"
-	@echo 'qemu-system-${ADK_TARGET_CPU_ARCH} $(QEMU_ARGS) -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL) $(FW_DIR)/$(ROOTFSSQUASHFS)'
+	@echo 'qemu-system-arm $(QEMU_ARGS) -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL) $(FW_DIR)/$(ROOTFSSQUASHFS)'
 endif
 endif
 ifeq ($(ADK_TARGET_FS),jffs2)
@@ -111,7 +114,7 @@ targethelp:
 	@echo "The RootFS image is: $(FW_DIR)/$(ROOTFSJFFS2)"
 ifeq ($(ADK_TARGET_QEMU),y)
 	@echo "Start qemu with following options:"
-	@echo 'qemu-system-${ADK_TARGET_CPU_ARCH} $(QEMU_ARGS) -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL) $(FW_DIR)/$(ROOTFSJFFS2)'
+	@echo 'qemu-system-arm $(QEMU_ARGS) -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL) $(FW_DIR)/$(ROOTFSJFFS2)'
 endif
 endif
 
@@ -131,6 +134,10 @@ ifeq ($(ADK_TARGET_FS),squashfs)
 endif
 
 dtb-install:
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ),y)
+	env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
+		dtbs $(MAKE_TRACE)
+endif
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9),y)
 	env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
 		dtbs $(MAKE_TRACE)

+ 5 - 0
target/arm/kernel/qemu-arm-xilinx-zynq

@@ -0,0 +1,5 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_ZYNQ=y
+CONFIG_KUSER_HELPERS=y
+CONFIG_ATAGS=y

+ 9 - 0
target/arm/systems/qemu-arm-xilinx-zynq

@@ -0,0 +1,9 @@
+config ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
+	bool "Qemu Emulator (Xilinx Zynq)"
+	select ADK_TARGET_CPU_ARM_CORTEX_A9
+	select ADK_TARGET_QEMU
+	select ADK_TARGET_KERNEL_ZIMAGE
+	select ADK_TARGET_KERNEL_WITH_COMPRESSION
+	help
+	  Qemu Emulator for ARM architecture (Xilinx Zynq).
+

+ 1 - 0
target/config/Config.in.runtime

@@ -271,6 +271,7 @@ config ADK_RUNTIME_CONSOLE_SERIAL_DEVICE
 	default "ttyAMA0" if ADK_TARGET_SYSTEM_RASPBERRY_PI2
 	default "ttyDA1" if ADK_TARGET_SYSTEM_QEMU_METAG
 	default "ttyS2" if ADK_TARGET_SYSTEM_KINETIS_K70
+	default "ttyPS0" if ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
 	default "ttysclp0" if ADK_TARGET_SYSTEM_QEMU_S390
 	default "ttyO0" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
 	default "ttyS0"

+ 3 - 1
target/linux/config/Config.in.ethernet

@@ -330,8 +330,10 @@ config ADK_KERNEL_IBMVETH
 config ADK_KERNEL_MACB
 	tristate "Atmel NGW100 network driver"
 	select ADK_KERNEL_NET_CADENCE
-	depends on ADK_TARGET_SYSTEM_ATMEL_NGW100
+	depends on ADK_TARGET_SYSTEM_ATMEL_NGW100 \
+		|| ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
 	default y if ADK_TARGET_SYSTEM_ATMEL_NGW100
+	default y if ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
 	default n
 	help
 	  Atmel NGW100 network driver

+ 12 - 0
target/linux/config/Config.in.serial

@@ -13,6 +13,9 @@ config ADK_KERNEL_SERIAL_8250_PNP
 config ADK_KERNEL_SERIAL_ARC_CONSOLE
 	bool
 
+config ADK_KERNEL_SERIAL_XILINX_PS_UART_CONSOLE
+	bool
+
 config ADK_KERNEL_SERIAL_IMX_CONSOLE
 	bool
 
@@ -157,6 +160,15 @@ config ADK_KERNEL_SERIAL_ARC
 	help
 	  Serial driver for nSIM ARC simulator.
 
+config ADK_KERNEL_SERIAL_XILINX_PS_UART
+	bool "Cadence serial driver"
+	select ADK_KERNEL_SERIAL_XILINX_PS_UART_CONSOLE
+	depends on ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
+	default y if ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
+	default n
+	help
+	  Serial driver for Xilinx Zynq.
+
 config ADK_KERNEL_SERIAL_IMX
 	bool "IMX serial driver"
 	select ADK_KERNEL_SERIAL_IMX_CONSOLE