diff --git a/arch/mips/include/types.h b/arch/mips/include/types.h index 625f4de274..ae39efa674 100644 --- a/arch/mips/include/types.h +++ b/arch/mips/include/types.h @@ -92,4 +92,3 @@ typedef unsigned int irqstate_t; ****************************************************************************/ #endif /* __ARCH_MIPS_INCLUDE_TYPES_H */ - diff --git a/arch/mips/src/mips32/Kconfig b/arch/mips/src/mips32/Kconfig index 713a05603a..846458c282 100644 --- a/arch/mips/src/mips32/Kconfig +++ b/arch/mips/src/mips32/Kconfig @@ -17,18 +17,22 @@ config MIPS32_TOOLCHAIN_GNU_ELF This option should work for any modern GNU toolchain (GCC 4.5 or newer) configured for mips32-elf. -config MIPS32_TOOLCHAIN_MICROCHIPL - bool "Microchip C32 toolchain under Linux" - depends on HOST_LINUX - config MIPS32_TOOLCHAIN_MICROCHIPL_XC32 bool "Microchip XC32 toolchain under Linux" depends on HOST_LINUX +config MIPS32_TOOLCHAIN_MICROCHIPL + bool "Microchip C32 toolchain under Linux" + depends on HOST_LINUX + config MIPS32_TOOLCHAIN_MICROCHIPL_LITE bool "Microchip C32 toolchain under Linux (Lite edition)" depends on HOST_LINUX +config MIPS32_TOOLCHAIN_MICROCHIPW_XC32 + bool "Microchip XC32 toolchain under Windows" + depends on HOST_WINDOWS + config MIPS32_TOOLCHAIN_MICROCHIPW bool "Microchip C32 toolchain under Windows" depends on HOST_WINDOWS @@ -51,6 +55,15 @@ config MIPS32_TOOLCHAIN_PINGUINOL endchoice +config MIPS32_TOOLCHAIN_MICROCHIP_XC32_LICENSED + bool "Licensed Microchip XC32 toolchain" + default n + depends on MIPS32_TOOLCHAIN_MICROCHIPL_XC32 || MIPS32_TOOLCHAIN_MICROCHIPW_XC32 + ---help--- + If you are using the unlicensed, free XC32 compiler then select this + option so that the build system will not attend to enable + optimization. + config MIPS32_FRAMEPOINTER bool "ABI Uses Frame Pointer" default n diff --git a/arch/mips/src/mips32/Toolchain.defs b/arch/mips/src/mips32/Toolchain.defs index 09f5e1a20a..059c194e51 100644 --- a/arch/mips/src/mips32/Toolchain.defs +++ b/arch/mips/src/mips32/Toolchain.defs @@ -49,24 +49,30 @@ ifeq ($(filter y, \ CONFIG_MIPS32_TOOLCHAIN ?= GNU_ELF endif -ifeq ($(filter y, \ - $(CONFIG_MIPS32_TOOLCHAIN_MICROCHIPL) \ - ),y) - CONFIG_MIPS32_TOOLCHAIN ?= MICROCHIPL -endif - ifeq ($(filter y, \ $(CONFIG_MIPS32_TOOLCHAIN_MICROCHIPL_XC32) \ ),y) CONFIG_MIPS32_TOOLCHAIN ?= MICROCHIPL_XC32 endif +ifeq ($(filter y, \ + $(CONFIG_MIPS32_TOOLCHAIN_MICROCHIPL) \ + ),y) + CONFIG_MIPS32_TOOLCHAIN ?= MICROCHIPL +endif + ifeq ($(filter y, \ $(CONFIG_MIPS32_TOOLCHAIN_MICROCHIPL_LITE) \ ),y) CONFIG_MIPS32_TOOLCHAIN ?= MICROCHIPL_LITE endif +ifeq ($(filter y, \ + $(CONFIG_MIPS32_TOOLCHAIN_MICROCHIPW_XC32) \ + ),y) + CONFIG_MIPS32_TOOLCHAIN ?= MICROCHIPW_XC32 +endif + ifeq ($(filter y, \ $(CONFIG_MIPS32_TOOLCHAIN_MICROCHIPW) \ ),y) @@ -142,6 +148,18 @@ ifeq ($(CONFIG_MIPS32_TOOLCHAIN),GNU_ELF) LDSCRIPT = mips-elf-debug.ld endif +# Microchip XC32 toolchain under Linux + +ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPL_XC32) + CROSSDEV ?= xc32- +ifeq ($(CONFIG_MIPS32_TOOLCHAIN_MICROCHIP_XC32_LICENSED),y) + MAXOPTIMIZATION ?= -O2 +endif + ARCHCPUFLAGS = -mprocessor=$(MIPS_MPROCESSOR) -march=$(MIPS_MARCH) -EL $(MIPS_MICROMIPS) -msmart-io=0 + LDFLAGS += -nostartfiles -nodefaultlibs + LDSCRIPT = xc32-debug.ld +endif + # Microchip C32 toolchain under Linux ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPL) @@ -154,11 +172,16 @@ ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPL) LDSCRIPT = xc32-debug.ld endif -# Microchip XC32 toolchain under Linux +# Microchip XC32 toolchain under Windows -ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPL_XC32) +ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPW_XC32) CROSSDEV ?= xc32- + ifneq ($(CONFIG_WINDOWS_NATIVE),y) + WINTOOL = y + endif +ifeq ($(CONFIG_MIPS32_TOOLCHAIN_MICROCHIP_XC32_LICENSED),y) MAXOPTIMIZATION ?= -O2 +endif ARCHCPUFLAGS = -mprocessor=$(MIPS_MPROCESSOR) -march=$(MIPS_MARCH) -EL $(MIPS_MICROMIPS) -msmart-io=0 LDFLAGS += -nostartfiles -nodefaultlibs LDSCRIPT = xc32-debug.ld @@ -168,7 +191,6 @@ endif ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPW) CROSSDEV ?= pic32- - # CROSSDEV ?= xc32- ifneq ($(CONFIG_WINDOWS_NATIVE),y) WINTOOL = y endif @@ -183,7 +205,6 @@ endif ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPL_LITE) CROSSDEV ?= pic32- - # CROSSDEV ?= xc32- # MAXOPTIMIZATION ?= -O2 ARCHCPUFLAGS = -mprocessor=$(MIPS_MPROCESSOR) $(MIPS_MICROMIPS) -mno-float -mlong32 -membedded-data ARCHPICFLAGS = -fpic -membedded-pic