Browse Source

add basic newlib toolchain support for moxie

Waldemar Brodkorb 8 years ago
parent
commit
0011de4cb7

+ 4 - 0
mk/vars.mk

@@ -76,8 +76,12 @@ ifeq ($(ADK_TARGET_ARCH_C6X),y)
 GNU_TARGET_NAME:=	$(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_LINUXTYPE)
 endif
 ifeq ($(ADK_TARGET_LIB_NEWLIB),y)
+ifeq ($(ADK_TARGET_ARCH_MOXIE),y)
+GNU_TARGET_NAME:=	$(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_SUFFIX)
+else
 GNU_TARGET_NAME:=	$(ADK_TARGET_CPU_ARCH)-$(ADK_VENDOR)-$(ADK_TARGET_SUFFIX)
 endif
+endif
 TARGET_CROSS:=		$(TOOLCHAIN_DIR)/usr/bin/$(GNU_TARGET_NAME)-
 TARGET_COMPILER_PREFIX?=${TARGET_CROSS}
 CONFIGURE_TRIPLE:=	--build=${GNU_HOST_NAME} \

+ 1 - 0
target/arch.lst

@@ -16,6 +16,7 @@ metag
 microblaze
 mips
 mips64
+moxie
 nds32
 nios2
 or1k

+ 3 - 0
target/config/Config.in.binutils

@@ -8,6 +8,7 @@ default ADK_TOOLCHAIN_BINUTILS_2_23_ARC if ADK_TARGET_ARCH_ARC
 default ADK_TOOLCHAIN_BINUTILS_2_26 if ADK_TARGET_ARCH_XTENSA && ADK_TARGET_WITHOUT_MMU
 default ADK_TOOLCHAIN_BINUTILS_2_26 if ADK_TARGET_ARCH_BFIN
 default ADK_TOOLCHAIN_BINUTILS_2_26 if ADK_TARGET_ARCH_H8300
+default ADK_TOOLCHAIN_BINUTILS_2_26 if ADK_TARGET_ARCH_MOXIE
 default ADK_TOOLCHAIN_BINUTILS_2_25_1
 
 config ADK_TOOLCHAIN_BINUTILS_GIT
@@ -28,6 +29,7 @@ config ADK_TOOLCHAIN_BINUTILS_2_25_1
 	depends on !ADK_TARGET_ARCH_ARC
 	depends on !ADK_TARGET_ARCH_AVR32
 	depends on !ADK_TARGET_ARCH_H8300
+	depends on !ADK_TARGET_ARCH_MOXIE
 	depends on !ADK_CPU_CRIS_V10
 
 config ADK_TOOLCHAIN_BINUTILS_2_24
@@ -37,6 +39,7 @@ config ADK_TOOLCHAIN_BINUTILS_2_24
 	depends on !ADK_TARGET_ARCH_AVR32
 	depends on !ADK_TARGET_ARCH_CRIS
 	depends on !ADK_TARGET_ARCH_H8300
+	depends on !ADK_TARGET_ARCH_MOXIE
 
 config ADK_TOOLCHAIN_BINUTILS_2_23_ARC
 	bool "2.23-arc"

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

@@ -844,6 +844,10 @@ config ADK_CPU_MICROBLAZE
 	select ADK_TARGET_WITH_MMU if !ADK_LINUX_UCLINUX
 	select ADK_TARGET_WITH_NPTL if ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_MUSL
 
+config ADK_CPU_MOXIE
+	bool
+	select ADK_TARGET_WITH_MMU
+
 config ADK_CPU_NDS32
 	bool
 	select ADK_TARGET_WITH_NPTL
@@ -1382,6 +1386,7 @@ config ADK_TARGET_CPU_ARCH
 	default "mips64el" if ADK_TARGET_ARCH_MIPS64 && ADK_TARGET_LITTLE_ENDIAN
 	default "mips" if ADK_TARGET_ARCH_MIPS && ADK_TARGET_BIG_ENDIAN
 	default "mipsel" if ADK_TARGET_ARCH_MIPS && ADK_TARGET_LITTLE_ENDIAN
+	default "moxie" if ADK_TARGET_ARCH_MOXIE
 	default "nds32le" if ADK_TARGET_ARCH_NDS32 && ADK_TARGET_LITTLE_ENDIAN
 	default "nds32be" if ADK_TARGET_ARCH_NDS32 && ADK_TARGET_BIG_ENDIAN
 	default "nios2" if ADK_TARGET_ARCH_NIOS2

+ 3 - 0
target/config/Config.in.libc

@@ -8,6 +8,7 @@ config ADK_TARGET_LIB_UCLIBC_NG
 	bool "uClibc-ng embedded C library"
 	depends on \
 		   !ADK_TARGET_ARCH_AARCH64 && \
+		   !ADK_TARGET_ARCH_MOXIE && \
 		   !ADK_TARGET_ARCH_NDS32 && \
 		   !ADK_TARGET_ARCH_S390 && \
 		   !ADK_TARGET_ARCH_SPARC64 && \
@@ -40,6 +41,7 @@ config ADK_TARGET_LIB_GLIBC
 	depends on !ADK_TARGET_ARCH_BFIN
 	depends on !ADK_TARGET_ARCH_CRIS
 	depends on !ADK_TARGET_ARCH_H8300
+	depends on !ADK_TARGET_ARCH_MOXIE
 	depends on !ADK_TARGET_ARCH_NDS32
 	depends on !ADK_TARGET_ARCH_SPARC
 	depends on !ADK_TARGET_ARCH_XTENSA
@@ -60,6 +62,7 @@ config ADK_TARGET_LIB_NEWLIB
 		ADK_TARGET_ARCH_LM32 || \
 		ADK_TARGET_ARCH_MICROBLAZE || \
 		ADK_TARGET_ARCH_MIPS || \
+		ADK_TARGET_ARCH_MOXIE || \
 		ADK_TARGET_ARCH_NDS32 || \
 		ADK_TARGET_ARCH_OR1K || \
 		ADK_TARGET_ARCH_PPC || \

+ 56 - 0
target/moxie/Makefile

@@ -0,0 +1,56 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+include $(ADK_TOPDIR)/mk/kernel-build.mk
+include $(ADK_TOPDIR)/mk/image.mk
+
+KERNEL:=$(LINUX_DIR)/$(ADK_TARGET_KERNEL)
+
+# target helper text
+ifeq ($(ADK_TARGET_FS),archive)
+targethelp:
+	@echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)"
+endif
+ifeq ($(ADK_TARGET_FS),initramfs)
+targethelp:
+	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+	@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
+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}'
+endif
+ifeq ($(ADK_TARGET_FS),nfsroot)
+targethelp:
+	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+	@echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
+endif
+
+kernel-strip:
+	@cp $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
+
+kernel-install: kernel-strip
+	@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
+
+# 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: createinitramfs targethelp
+endif
+ifeq ($(ADK_TARGET_FS),nfsroot)
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
+endif

+ 8 - 0
target/moxie/systems/toolchain-moxie

@@ -0,0 +1,8 @@
+config ADK_TARGET_SYSTEM_TOOLCHAIN_MOXIE
+	bool "Toolchain only"
+	select ADK_CPU_MOXIE
+	select ADK_TARGET_TOOLCHAIN
+	select ADK_TARGET_PACKAGE_TXZ
+	help
+	  MOXIE toolchain.
+