Browse Source

add qemu support for ppc virtex ml507

Waldemar Brodkorb 9 years ago
parent
commit
4c7e914580

+ 4 - 0
target/config/Config.in.cpu

@@ -64,6 +64,9 @@ config ADK_CPU_GEODE
 config ADK_CPU_PPC
 	boolean
 
+config ADK_CPU_PPC_440
+	boolean
+
 config ADK_CPU_PPC64
 	boolean
 
@@ -127,6 +130,7 @@ config ADK_TARGET_CPU_ARCH
 	default "mips" if ADK_LINUX_MIPS && ADK_big
 	default "mipsel" if ADK_LINUX_MIPS && ADK_little
 	default "ppc" if ADK_CPU_PPC
+	default "ppc" if ADK_CPU_PPC_440
 	default "ppc64" if ADK_CPU_PPC64
 	default "sh4" if ADK_LINUX_SH && ADK_little
 	default "sh4eb" if ADK_LINUX_SH && ADK_big

+ 2 - 1
target/config/Config.in.kernel

@@ -40,7 +40,8 @@ config ADK_TARGET_KERNEL_MINICONFIG
 	default "qemu-arm-terrier" if ADK_TARGET_QEMU_ARM_MODEL_TERRIER
 	default "qemu-mips" if ADK_TARGET_SYSTEM_QEMU_MIPS
 	default "qemu-mips64" if ADK_TARGET_SYSTEM_QEMU_MIPS64
-	default "qemu-ppc" if ADK_TARGET_SYSTEM_QEMU_PPC
+	default "qemu-ppc-mac99" if ADK_TARGET_QEMU_PPC_MACPPC
+	default "qemu-virtex-ml507" if ADK_TARGET_QEMU_PPC_VIRTEX_ML507
 	default "qemu-ppc64" if ADK_TARGET_SYSTEM_QEMU_PPC64
 	default "qemu-sh" if ADK_TARGET_SYSTEM_QEMU_SH
 	default "qemu-sh" if ADK_TARGET_SYSTEM_QEMU_SHEB

+ 14 - 0
target/config/Config.in.qemu

@@ -1,6 +1,20 @@
 # This file is part of the OpenADK project. OpenADK is copyrighted
 # material, please see the LICENCE file in the top-level directory.
 
+choice
+prompt "Qemu PPC Emulation"
+depends on ADK_TARGET_SYSTEM_QEMU_PPC
+
+config ADK_TARGET_QEMU_PPC_VIRTEX_ML507
+	boolean "Xilinx Virtex ML507"
+	select ADK_CPU_PPC_440
+
+config ADK_TARGET_QEMU_PPC_MACPPC
+	boolean "Mac99 PPC"
+	select ADK_CPU_PPC
+
+endchoice
+
 choice
 prompt "Qemu MICROBLAZE Emulation"
 depends on ADK_TARGET_SYSTEM_QEMU_MICROBLAZE

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

@@ -7,6 +7,7 @@ config ADK_TARGET_CFLAGS
 	default "-m4 -ml" if ADK_CPU_SH4 && ADK_little
 	default "-m4 -mb" if ADK_CPU_SH4 && ADK_big
 	default "-mcpu=powerpc" if ADK_CPU_PPC
+	default "-mcpu=440" if ADK_CPU_PPC_440
 	default "-mcpu=powerpc64" if ADK_CPU_PPC64
 	default "-march=geode" if ADK_CPU_GEODE
 	default "-march=i486" if ADK_CPU_I486
@@ -58,7 +59,8 @@ config ADK_TARGET_CMDLINE
 	default "console=ttyUL0" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800
 	default "console=ttyS0,115200" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605
 	default "console=hvc0" if ADK_TARGET_SYSTEM_QEMU_PPC64
-	default "console=ttyS0,9600" if ADK_TARGET_SYSTEM_QEMU_PPC
+	default "console=ttyS0,9600" if ADK_TARGET_QEMU_PPC_MACPPC
+	default "console=ttyS0" if ADK_TARGET_QEMU_PPC_VIRTEX_ML507
 	default "console=ttySC1" if ADK_TARGET_SYSTEM_QEMU_SH
 	default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_QEMU_SPARC64
 	default "console=ttyS0,115200" if ADK_TARGET_SYSTEM_QEMU_X86 || ADK_TARGET_SYSTEM_QEMU_X86_64

+ 12 - 2
target/linux/config/Config.in.ethernet

@@ -125,6 +125,16 @@ config ADK_KERNEL_XILINX_AXI_EMAC
 	help
 	  Xilinx AXI ethernet driver
 
+config ADK_KERNEL_XILINX_LL_TEMAC
+	prompt "Xilinx Temac ethernet driver"
+	tristate
+	select ADK_KERNEL_NET_VENDOR_XILINX
+	depends on ADK_TARGET_QEMU_PPC_VIRTEX_ML507
+	default y if ADK_TARGET_QEMU_PPC_VIRTEX_ML507
+	default n
+	help
+	  Xilinx Temac ethernet driver
+	
 config ADK_KERNEL_XILINX_EMACLITE
 	prompt "Xilinx Emaclite ethernet driver"
 	tristate
@@ -201,7 +211,7 @@ config ADK_KERNEL_E1000
 		ADK_TARGET_SYSTEM_QEMU_X86_64 || \
 		ADK_TARGET_SYSTEM_QEMU_MIPS || \
 		ADK_TARGET_SYSTEM_QEMU_MIPS64 || \
-		ADK_TARGET_SYSTEM_QEMU_PPC || \
+		ADK_TARGET_QEMU_PPC_MACPPC || \
 		ADK_TARGET_SYSTEM_QEMU_ALPHA || \
 		ADK_TARGET_VBOX
 	default y if ADK_TARGET_SYSTEM_IBM_X40
@@ -209,7 +219,7 @@ config ADK_KERNEL_E1000
 	default y if ADK_TARGET_SYSTEM_QEMU_X86_64
 	default y if ADK_TARGET_SYSTEM_QEMU_MIPS
 	default y if ADK_TARGET_SYSTEM_QEMU_MIPS64
-	default y if ADK_TARGET_SYSTEM_QEMU_PPC
+	default y if ADK_TARGET_QEMU_PPC_MACPPC
 	default y if ADK_TARGET_SYSTEM_QEMU_ALPHA
 	default y if ADK_TARGET_VBOX
 	default n

+ 25 - 2
target/ppc/Makefile

@@ -10,9 +10,14 @@ include $(ADK_TOPDIR)/mk/image.mk
 KERNEL:=$(LINUX_DIR)/vmlinux
 OSTRIP:=-R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id
 
-QEMU_ARGS:=-M mac99
-QEMU_ARGS+=${ADK_QEMU_ARGS}
+QEMU_ARGS:=${ADK_QEMU_ARGS}
+ifeq ($(ADK_TARGET_QEMU_PPC_MACPPC),y)
+QEMU_ARGS+=-M macppc
 QEMU_ARGS+=-device e1000,netdev=adk0 -netdev user,id=adk0
+endif
+ifeq ($(ADK_TARGET_QEMU_PPC_VIRTEX_ML507),y)
+QEMU_ARGS+=-M virtex-ml507 -m 256 -dtb $(FW_DIR)/ppc.dtb
+endif
 
 # target helper text
 ifeq ($(ADK_TARGET_FS),archive)
@@ -56,16 +61,34 @@ kernel-strip:
 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) \
+		-j${ADK_MAKE_JOBS} virtex440-ml507.dtb $(MAKE_TRACE)
+	$(CP) $(LINUX_DIR)/arch/powerpc/boot/virtex440-ml507.dtb \
+		$(FW_DIR)/ppc.dtb
+
 # filesystem specific targets
 ifeq ($(ADK_TARGET_FS),archive)
+ifeq ($(ADK_TARGET_QEMU_PPC_VIRTEX_ML507),y)
+imageinstall: dtb-install $(FW_DIR)/$(ROOTFSTARBALL) targethelp
+else
 imageinstall: $(FW_DIR)/$(ROOTFSTARBALL) targethelp
 endif
+endif
 ifeq ($(ADK_TARGET_FS),initramfs)
+ifeq ($(ADK_TARGET_QEMU_PPC_VIRTEX_ML507),y)
+imageinstall: dtb-install kernel-install $(FW_DIR)/$(INITRAMFS) targethelp
+else
 imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp
 endif
+endif
 ifeq ($(ADK_TARGET_FS),initramfsarchive)
 imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
 endif
 ifeq ($(ADK_TARGET_FS),initramfspiggyback)
+ifeq ($(ADK_TARGET_QEMU_PPC_VIRTEX_ML507),y)
+imageinstall: dtb-install createinitramfs targethelp
+else
 imageinstall: createinitramfs targethelp
 endif
+endif

+ 0 - 30
target/ppc/kernel/qemu-ppc

@@ -1,30 +0,0 @@
-CONFIG_PPC=y
-CONFIG_PPC32=y
-CONFIG_32BIT=y
-CONFIG_PPC_BOOK3S_32=y
-CONFIG_PPC_BOOK3S=y
-CONFIG_6xx=y
-CONFIG_PPC_FPU=y
-CONFIG_ALTIVEC=y
-CONFIG_PPC_STD_MMU=y
-CONFIG_PPC_STD_MMU_32=y
-CONFIG_WORD_SIZE=32
-CONFIG_GENERIC_NVRAM=y
-CONFIG_PPC_OF=y
-CONFIG_PPC_UDBG_16550=y
-CONFIG_PPC_CHRP=y
-CONFIG_PPC_PMAC=y
-CONFIG_PPC_NATIVE=y
-CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
-CONFIG_MPIC=y
-CONFIG_PPC_I8259=y
-CONFIG_PPC_RTAS=y
-CONFIG_PPC_MPC106=y
-CONFIG_PPC_4K_PAGES=y
-CONFIG_MACINTOSH_DRIVERS=y
-CONFIG_ADB=y
-CONFIG_ADB_CUDA=y
-CONFIG_INPUT_ADBHID=y
-CONFIG_SERIAL_PMACZILOG=y
-CONFIG_SERIAL_PMACZILOG_TTYS=y
-CONFIG_SERIAL_PMACZILOG_CONSOLE=y

+ 0 - 1
target/ppc/systems/qemu-ppc

@@ -2,7 +2,6 @@ config ADK_TARGET_SYSTEM_QEMU_PPC
 	bool "Qemu Emulator"
 	select ADK_ppc
 	select ADK_qemu_ppc
-	select ADK_CPU_PPC
 	select ADK_TARGET_QEMU
 	help
 	 Support for Qemu Emulator PPC architecture.

+ 1 - 8
toolchain/gcc/Makefile

@@ -98,13 +98,7 @@ GCC_CONFOPTS+=		--disable-lto
 endif
 
 ifeq ($(ADK_LINUX_PPC),y)
-ifeq ($(ADK_TARGET_LIBC),musl)
-GCC_CONFOPTS+=		--disable-target-optspace --with-long-double-64 --enable-secureplt
-else
-GCC_CONFOPTS+=		--disable-target-optspace --with-long-double-128 --enable-secureplt
-endif
-else
-GCC_CONFOPTS+=		--enable-target-optspace
+GCC_CONFOPTS+=		--with-long-double-64 --enable-secureplt
 endif
 
 ifeq ($(ADK_TARGET_ARCH),arm)
@@ -142,7 +136,6 @@ ifeq ($(ADK_CPU_SPARC_V9),y)
 GCC_CONFOPTS+=		--with-cpu=ultrasparc
 endif
 
-
 ifneq ($(ADK_TARGET_MIPS_ABI),)
 GCC_CONFOPTS+=		--with-abi=${ADK_TARGET_MIPS_ABI}
 endif