[Buildroot] [PATCH 1/2] MIPS: add support for XBurst cores

Vicente Olivert Riera Vincent.Riera at imgtec.com
Wed Oct 19 10:17:13 UTC 2016


- There isn't any matching -march option for this core family, so we
  need to stick with the generic mips32r2.
- Add an option to the toolchain wrapper to avoid an FPU bug.
- Add an option to the toolchain wrapper to use the MXU SIMD extension.
  This is currently not supported on upstream gcc and binutils, but the
  Codescape MTI toolchain does support it.

Related: http://www.ingenic.com/en/?xburst.html

Signed-off-by: Vicente Olivert Riera <Vincent.Riera at imgtec.com>
---
 arch/Config.in.mips            | 5 +++++
 toolchain/toolchain-wrapper.c  | 6 ++++++
 toolchain/toolchain-wrapper.mk | 9 +++++++++
 3 files changed, 20 insertions(+)

diff --git a/arch/Config.in.mips b/arch/Config.in.mips
index f7bfa21..fec1b94 100644
--- a/arch/Config.in.mips
+++ b/arch/Config.in.mips
@@ -59,6 +59,10 @@ config BR2_mips_p5600
 	bool "P5600"
 	depends on !BR2_ARCH_IS_64
 	select BR2_MIPS_CPU_MIPS32R5
+config BR2_mips_xburst
+	bool "XBurst"
+	depends on !BR2_ARCH_IS_64
+	select BR2_MIPS_CPU_MIPS32R2
 config BR2_mips_64
 	bool "Generic MIPS64"
 	depends on BR2_ARCH_IS_64
@@ -132,6 +136,7 @@ config BR2_GCC_TARGET_ARCH
 	default "m5100"		if BR2_mips_m5100
 	default "m5101"		if BR2_mips_m5101
 	default "p5600"		if BR2_mips_p5600
+	default "mips32r2"	if BR2_mips_xburst
 	default "mips64"	if BR2_mips_64
 	default "mips64r2"	if BR2_mips_64r2
 	default "mips64r5"	if BR2_mips_64r5
diff --git a/toolchain/toolchain-wrapper.c b/toolchain/toolchain-wrapper.c
index 925d013..188afa1 100644
--- a/toolchain/toolchain-wrapper.c
+++ b/toolchain/toolchain-wrapper.c
@@ -66,6 +66,12 @@ static char *predef_args[] = {
 #ifdef BR_OMIT_LOCK_PREFIX
 	"-Wa,-momit-lock-prefix=yes",
 #endif
+#ifdef BR_NO_FUSED_MADD
+	"-mno-fused-madd",
+#endif
+#ifdef BR_MXU
+	"-Wa,-mmxu",
+#endif
 #ifdef BR_BINFMT_FLAT
 	"-Wl,-elf2flt",
 #endif
diff --git a/toolchain/toolchain-wrapper.mk b/toolchain/toolchain-wrapper.mk
index af39071..5ba9d4c 100644
--- a/toolchain/toolchain-wrapper.mk
+++ b/toolchain/toolchain-wrapper.mk
@@ -26,6 +26,15 @@ ifeq ($(BR2_x86_x1000),y)
 TOOLCHAIN_WRAPPER_ARGS += -DBR_OMIT_LOCK_PREFIX
 endif
 
+ifeq ($(BR2_mips_xburst),y)
+# Avoid FPU bug on XBurst CPUs
+TOOLCHAIN_WRAPPER_ARGS += -DBR_NO_FUSED_MADD
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESCAPE_MTI_MIPS),y)
+# Enable XBurst Media Extension Unit (MXU)
+TOOLCHAIN_WRAPPER_ARGS += -DBR_MXU
+endif
+endif
+
 ifeq ($(BR2_CCACHE_USE_BASEDIR),y)
 TOOLCHAIN_WRAPPER_ARGS += -DBR_CCACHE_BASEDIR='"$(BASE_DIR)"'
 endif
-- 
2.10.1



More information about the buildroot mailing list