Browse Source

arm: Migrate SYS_THUMB_BUILD to Kconfig, introduce SPL_SYS_THUMB_BUILD

Today, we have cases where we wish to build all of U-Boot in Thumb2 mode for
various reasons.  We also have cases where we only build SPL in Thumb2 mode due
to size constraints and wish to build the rest of the system in ARM mode.  So
in this migration we introduce a new symbol as well, SPL_SYS_THUMB_BUILD to
control if we build everything or just SPL (or in theory, just U-Boot) in
Thumb2 mode.

Signed-off-by: Tom Rini <trini@konsulko.com>
Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Tom Rini 7 years ago
parent
commit
3a649407a4
77 changed files with 94 additions and 67 deletions
  1. 3 2
      Makefile
  2. 0 8
      README
  3. 31 0
      arch/arm/Kconfig
  4. 3 5
      arch/arm/config.mk
  5. 1 1
      arch/arm/cpu/arm920t/Makefile
  6. 1 1
      arch/arm/cpu/arm926ejs/Makefile
  7. 1 1
      arch/arm/cpu/arm926ejs/cache.c
  8. 1 1
      arch/arm/cpu/armv7/cache_v7_asm.S
  9. 1 1
      arch/arm/cpu/pxa/cache.c
  10. 1 1
      arch/arm/include/asm/assembler.h
  11. 1 1
      arch/arm/include/asm/cache.h
  12. 1 1
      arch/arm/include/asm/setjmp.h
  13. 1 1
      arch/arm/lib/Makefile
  14. 1 1
      arch/arm/lib/cache.c
  15. 1 1
      arch/arm/lib/crt0.S
  16. 1 1
      arch/arm/lib/lib1funcs.S
  17. 1 1
      arch/arm/lib/memcpy.S
  18. 1 1
      arch/arm/lib/memset.S
  19. 8 0
      arch/arm/mach-at91/arm926ejs/Makefile
  20. 1 1
      arch/arm/mach-orion5x/Makefile
  21. 1 0
      configs/am335x_evm_norboot_defconfig
  22. 1 0
      configs/am3517_crane_defconfig
  23. 1 0
      configs/am3517_evm_defconfig
  24. 1 0
      configs/am43xx_evm_qspiboot_defconfig
  25. 1 0
      configs/apalis_imx6_nospl_com_defconfig
  26. 1 0
      configs/apalis_imx6_nospl_it_defconfig
  27. 1 0
      configs/armadillo-800eva_defconfig
  28. 1 0
      configs/axm_defconfig
  29. 1 0
      configs/bk4r1_defconfig
  30. 1 0
      configs/cm_t3517_defconfig
  31. 1 0
      configs/cm_t35_defconfig
  32. 1 0
      configs/cm_t43_defconfig
  33. 1 0
      configs/colibri_imx6_nospl_defconfig
  34. 1 0
      configs/colibri_imx7_defconfig
  35. 1 0
      configs/colibri_vf_defconfig
  36. 1 0
      configs/eco5pk_defconfig
  37. 1 0
      configs/highbank_defconfig
  38. 1 0
      configs/kzm9g_defconfig
  39. 1 0
      configs/mcx_defconfig
  40. 1 0
      configs/mt_ventoux_defconfig
  41. 1 0
      configs/nokia_rx51_defconfig
  42. 1 0
      configs/omap3_evm_defconfig
  43. 1 0
      configs/omap3_ha_defconfig
  44. 1 0
      configs/openrd_base_defconfig
  45. 1 0
      configs/openrd_client_defconfig
  46. 1 0
      configs/openrd_ultimate_defconfig
  47. 1 0
      configs/pcm052_defconfig
  48. 1 0
      configs/smartweb_defconfig
  49. 1 0
      configs/sniper_defconfig
  50. 1 0
      configs/tao3530_defconfig
  51. 1 0
      configs/taurus_defconfig
  52. 1 0
      configs/tbs2910_defconfig
  53. 1 0
      configs/twister_defconfig
  54. 1 0
      configs/x600_defconfig
  55. 0 1
      include/configs/apalis_imx6.h
  56. 0 1
      include/configs/colibri_imx6.h
  57. 0 2
      include/configs/colibri_imx7.h
  58. 0 1
      include/configs/colibri_vf.h
  59. 0 1
      include/configs/highbank.h
  60. 0 1
      include/configs/imx6_spl.h
  61. 0 2
      include/configs/kc1.h
  62. 0 1
      include/configs/openrd.h
  63. 0 2
      include/configs/pcm052.h
  64. 0 2
      include/configs/rcar-gen2-common.h
  65. 0 1
      include/configs/rk3036_common.h
  66. 0 1
      include/configs/rk3288_common.h
  67. 0 1
      include/configs/smartweb.h
  68. 0 2
      include/configs/socfpga_common.h
  69. 0 1
      include/configs/stm32f429-discovery.h
  70. 0 2
      include/configs/stm32f746-disco.h
  71. 0 7
      include/configs/sunxi-common.h
  72. 0 1
      include/configs/taurus.h
  73. 0 1
      include/configs/tbs2910.h
  74. 0 2
      include/configs/ti_armv7_common.h
  75. 0 2
      include/configs/ti_omap4_common.h
  76. 0 1
      include/configs/tricorder.h
  77. 0 1
      include/configs/x600.h

+ 3 - 2
Makefile

@@ -624,8 +624,9 @@ KBUILD_CFLAGS += $(KCFLAGS)
 UBOOTINCLUDE    := \
 		-Iinclude \
 		$(if $(KBUILD_SRC), -I$(srctree)/include) \
-		$(if $(CONFIG_SYS_THUMB_BUILD), $(if $(CONFIG_HAS_THUMB2),, \
-			-I$(srctree)/arch/$(ARCH)/thumb1/include),) \
+		$(if $(CONFIG_$(SPL_)SYS_THUMB_BUILD), \
+			$(if $(CONFIG_HAS_THUMB2),, \
+				-I$(srctree)/arch/$(ARCH)/thumb1/include),) \
 		-I$(srctree)/arch/$(ARCH)/include \
 		-include $(srctree)/include/linux/kconfig.h
 

+ 0 - 8
README

@@ -592,14 +592,6 @@ The following options need to be configured:
 		Select high exception vectors of the ARM core, e.g., do not
 		clear the V bit of the c1 register of CP15.
 
-		CONFIG_SYS_THUMB_BUILD
-
-		Use this flag to build U-Boot using the Thumb instruction
-		set for ARM architectures. Thumb instruction set provides
-		better code density. For ARM architectures that support
-		Thumb2 this flag will result in Thumb2 code generated by
-		GCC.
-
 		COUNTER_FREQUENCY
 		Generic timer clock source frequency.
 

+ 31 - 0
arch/arm/Kconfig

@@ -181,6 +181,25 @@ config SEMIHOSTING
 	  the hosted environment to call out to the emulator to
 	  retrieve files from the host machine.
 
+config SYS_THUMB_BUILD
+	bool "Build U-Boot using the Thumb instruction set"
+	depends on !ARM64
+	help
+	   Use this flag to build U-Boot using the Thumb instruction set for
+	   ARM architectures. Thumb instruction set provides better code
+	   density. For ARM architectures that support Thumb2 this flag will
+	   result in Thumb2 code generated by GCC.
+
+config SPL_SYS_THUMB_BUILD
+	bool "Build SPL using the Thumb instruction set"
+	default y if SYS_THUMB_BUILD
+	depends on !ARM64
+	help
+	   Use this flag to build SPL using the Thumb instruction set for
+	   ARM architectures. Thumb instruction set provides better code
+	   density. For ARM architectures that support Thumb2 this flag will
+	   result in Thumb2 code generated by GCC.
+
 config SYS_L2CACHE_OFF
 	bool "L2cache off"
 	help
@@ -571,6 +590,7 @@ config ARCH_KEYSTONE
 	bool "TI Keystone"
 	select CPU_V7
 	select SUPPORT_SPL
+	select SYS_THUMB_BUILD
 	select CMD_POWEROFF
 
 config ARCH_MESON
@@ -595,6 +615,7 @@ config ARCH_MX6
 	select SYS_FSL_HAS_SEC if SECURE_BOOT
 	select SYS_FSL_SEC_COMPAT_4
 	select SYS_FSL_SEC_LE
+	select SYS_THUMB_BUILD if SPL
 
 config ARCH_MX5
 	bool "Freescale MX5"
@@ -654,6 +675,7 @@ config OMAP34XX
 	imply SPL_NAND_SUPPORT
 	imply SPL_POWER_SUPPORT
 	imply SPL_SERIAL_SUPPORT
+	imply SYS_THUMB_BUILD
 
 config OMAP44XX
 	bool "OMAP44XX SoC"
@@ -671,11 +693,13 @@ config OMAP44XX
 	imply SPL_NAND_SUPPORT
 	imply SPL_POWER_SUPPORT
 	imply SPL_SERIAL_SUPPORT
+	imply SYS_THUMB_BUILD
 
 config OMAP54XX
 	bool "OMAP54XX SoC"
 	select ARCH_OMAP2
 	select ARM_ERRATA_798870
+	select SYS_THUMB_BUILD
 	imply SPL_DISPLAY_PRINT
 	imply SPL_ENV_SUPPORT
 	imply SPL_EXT_SUPPORT
@@ -693,6 +717,7 @@ config OMAP54XX
 config AM43XX
 	bool "AM43XX SoC"
 	select ARCH_OMAP2
+	imply SYS_THUMB_BUILD
 	help
 	  Support for AM43xx SOC from Texas Instruments.
 	  The AM43xx high performance SOC features a Cortex-A9
@@ -703,6 +728,7 @@ config AM43XX
 config AM33XX
 	bool "AM33XX SoC"
 	select ARCH_OMAP2
+	imply SYS_THUMB_BUILD
 	help
 	  Support for AM335x SOC from Texas Instruments.
 	  The AM335x high performance SOC features a Cortex-A8
@@ -715,6 +741,7 @@ config ARCH_RMOBILE
 	select DM
 	select DM_SERIAL
 	select BOARD_EARLY_INIT_F
+	imply SYS_THUMB_BUILD
 
 config TARGET_S32V234EVB
 	bool "Support s32v234evb"
@@ -744,6 +771,7 @@ config ARCH_SOCFPGA
 	select ARCH_EARLY_INIT_R
 	select ARCH_MISC_INIT
 	select SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
+	select SYS_THUMB_BUILD
 
 config TARGET_CM_T43
 	bool "Support cm_t43"
@@ -766,6 +794,7 @@ config ARCH_SUNXI
 	select SPL_STACK_R if SUPPORT_SPL
 	select SPL_SYS_MALLOC_SIMPLE if SUPPORT_SPL
 	select SYS_NS16550
+	select SPL_SYS_THUMB_BUILD if !ARM64
 	select USB if DISTRO_DEFAULTS
 	select USB_STORAGE if DISTRO_DEFAULTS
 	select USB_KEYBOARD if DISTRO_DEFAULTS
@@ -1095,6 +1124,7 @@ config STM32
 	select CPU_V7M
 	select DM
 	select DM_SERIAL
+	select SYS_THUMB_BUILD
 
 config ARCH_STI
 	bool "Support STMicrolectronics SoCs"
@@ -1114,6 +1144,7 @@ config ARCH_ROCKCHIP
 	select DM
 	select SPL_DM if SPL
 	select SYS_MALLOC_F
+	select SYS_THUMB_BUILD if !ARM64
 	select SPL_SYS_MALLOC_SIMPLE if SPL
 	select DM_GPIO
 	select DM_I2C

+ 3 - 5
arch/arm/config.mk

@@ -31,7 +31,7 @@ PLATFORM_RELFLAGS	+= $(LLVM_RELFLAGS)
 PLATFORM_CPPFLAGS += -D__ARM__
 
 # Choose between ARM/Thumb instruction sets
-ifeq ($(CONFIG_SYS_THUMB_BUILD),y)
+ifeq ($(CONFIG_$(SPL_)SYS_THUMB_BUILD),y)
 AFLAGS_IMPLICIT_IT	:= $(call as-option,-Wa$(comma)-mimplicit-it=always)
 PF_CPPFLAGS_ARM		:= $(AFLAGS_IMPLICIT_IT) \
 			$(call cc-option, -mthumb -mthumb-interwork,\
@@ -44,8 +44,7 @@ PF_CPPFLAGS_ARM := $(call cc-option,-marm,) \
 endif
 
 # Only test once
-ifneq ($(CONFIG_SPL_BUILD),y)
-ifeq ($(CONFIG_SYS_THUMB_BUILD),y)
+ifeq ($(CONFIG_$(SPL_)SYS_THUMB_BUILD),y)
 archprepare: checkthumb
 
 checkthumb:
@@ -57,7 +56,6 @@ checkthumb:
 		false; \
 	fi
 endif
-endif
 
 # Try if EABI is supported, else fall back to old API,
 # i. e. for example:
@@ -99,7 +97,7 @@ LDFLAGS_u-boot += -pie
 #
 # http://sourceware.org/bugzilla/show_bug.cgi?id=12532
 #
-ifeq ($(CONFIG_SYS_THUMB_BUILD),y)
+ifeq ($(CONFIG_$(SPL_)SYS_THUMB_BUILD),y)
 ifeq ($(GAS_BUG_12532),)
 export GAS_BUG_12532:=$(shell if [ $(call binutils-version) -lt 0222 ] ; \
 	then echo y; else echo n; fi)

+ 1 - 1
arch/arm/cpu/arm920t/Makefile

@@ -16,6 +16,6 @@ obj-$(CONFIG_S3C24X0) += s3c24x0/
 
 # some files can only build in ARM mode
 
-ifdef CONFIG_SYS_THUMB_BUILD
+ifdef CONFIG_$(SPL_)SYS_THUMB_BUILD
 CFLAGS_cpu.o := -marm
 endif

+ 1 - 1
arch/arm/cpu/arm926ejs/Makefile

@@ -23,7 +23,7 @@ obj-$(if $(filter spear,$(SOC)),y) += spear/
 
 # some files can only build in ARM or THUMB2, not THUMB1
 
-ifdef CONFIG_SYS_THUMB_BUILD
+ifdef CONFIG_$(SPL_)SYS_THUMB_BUILD
 ifndef CONFIG_HAS_THUMB2
 
 CFLAGS_cpu.o := -marm

+ 1 - 1
arch/arm/cpu/arm926ejs/cache.c

@@ -63,6 +63,6 @@ void flush_dcache_all(void)
 
 __weak void l2_cache_disable(void) {}
 
-#if defined CONFIG_SYS_THUMB_BUILD
+#if CONFIG_IS_ENABLED(SYS_THUMB_BUILD)
 __weak void invalidate_l2_cache(void) {}
 #endif

+ 1 - 1
arch/arm/cpu/armv7/cache_v7_asm.S

@@ -7,7 +7,7 @@
 #include <linux/sizes.h>
 #include <asm/system.h>
 
-#ifdef CONFIG_SYS_THUMB_BUILD
+#if CONFIG_IS_ENABLED(SYS_THUMB_BUILD)
 #define ARM(x...)
 #define THUMB(x...)	x
 #else

+ 1 - 1
arch/arm/cpu/pxa/cache.c

@@ -52,6 +52,6 @@ void flush_dcache_all(void)
 
 __weak void l2_cache_disable(void) {}
 
-#if defined CONFIG_SYS_THUMB_BUILD
+#if CONFIG_IS_ENABLED(SYS_THUMB_BUILD)
 __weak void invalidate_l2_cache(void) {}
 #endif

+ 1 - 1
arch/arm/include/asm/assembler.h

@@ -77,7 +77,7 @@
  * We disable it especially for Thumb builds since those instructions
  * are not made in a Thumb ready way...
  */
-#ifdef CONFIG_SYS_THUMB_BUILD
+#if CONFIG_IS_ENABLED(SYS_THUMB_BUILD)
 #define CALGN(code...)
 #else
 #define CALGN(code...) code

+ 1 - 1
arch/arm/include/asm/cache.h

@@ -16,7 +16,7 @@
 /*
  * Invalidate L2 Cache using co-proc instruction
  */
-#ifdef CONFIG_SYS_THUMB_BUILD
+#if CONFIG_IS_ENABLED(SYS_THUMB_BUILD)
 void invalidate_l2_cache(void);
 #else
 static inline void invalidate_l2_cache(void)

+ 1 - 1
arch/arm/include/asm/setjmp.h

@@ -39,7 +39,7 @@ static inline int setjmp(jmp_buf jmp)
 		  "x30", "cc", "memory");
 #else
 	asm volatile(
-#ifdef CONFIG_SYS_THUMB_BUILD
+#if CONFIG_IS_ENABLED(SYS_THUMB_BUILD)
 		".align 2\n"
 		"adr r0, jmp_target\n"
 		"add r0, r0, $1\n"

+ 1 - 1
arch/arm/lib/Makefile

@@ -71,7 +71,7 @@ asflags-y += -DCONFIG_ARM_ASM_UNIFIED
 
 # some files can only build in ARM or THUMB2, not THUMB1
 
-ifdef CONFIG_SYS_THUMB_BUILD
+ifdef CONFIG_$(SPL_)SYS_THUMB_BUILD
 asflags-$(CONFIG_HAS_THUMB2) += -DCONFIG_THUMB2_KERNEL
 ifndef CONFIG_HAS_THUMB2
 

+ 1 - 1
arch/arm/lib/cache.c

@@ -107,7 +107,7 @@ phys_addr_t noncached_alloc(size_t size, size_t align)
 }
 #endif /* CONFIG_SYS_NONCACHED_MEMORY */
 
-#if defined(CONFIG_SYS_THUMB_BUILD)
+#if CONFIG_IS_ENABLED(SYS_THUMB_BUILD)
 void invalidate_l2_cache(void)
 {
 	unsigned int val = 0;

+ 1 - 1
arch/arm/lib/crt0.S

@@ -156,7 +156,7 @@ clbss_l:cmp	r0, r1			/* while not at end of BSS */
 	mov     r0, r9                  /* gd_t */
 	ldr	r1, [r9, #GD_RELOCADDR]	/* dest_addr */
 	/* call board_init_r */
-#if defined(CONFIG_SYS_THUMB_BUILD)
+#if CONFIG_IS_ENABLED(SYS_THUMB_BUILD)
 	ldr	lr, =board_init_r	/* this is auto-relocated! */
 	bx	lr
 #else

+ 1 - 1
arch/arm/lib/lib1funcs.S

@@ -368,7 +368,7 @@ ENDPROC(Ldiv0)
 .popsection
 
 /* Thumb-1 specialities */
-#if defined(CONFIG_SYS_THUMB_BUILD) && !defined(CONFIG_HAS_THUMB2)
+#if CONFIG_IS_ENABLED(SYS_THUMB_BUILD) && !defined(CONFIG_HAS_THUMB2)
 .pushsection .text.__gnu_thumb1_case_sqi, "ax"
 ENTRY(__gnu_thumb1_case_sqi)
 	push	{r1}

+ 1 - 1
arch/arm/lib/memcpy.S

@@ -56,7 +56,7 @@
 
 /* Prototype: void *memcpy(void *dest, const void *src, size_t n); */
 	.syntax unified
-#if defined(CONFIG_SYS_THUMB_BUILD) && !defined(MEMCPY_NO_THUMB_BUILD)
+#if CONFIG_IS_ENABLED(SYS_THUMB_BUILD) && !defined(MEMCPY_NO_THUMB_BUILD)
 	.thumb
 	.thumb_func
 #endif

+ 1 - 1
arch/arm/lib/memset.S

@@ -16,7 +16,7 @@
 	.align	5
 
 	.syntax unified
-#if defined(CONFIG_SYS_THUMB_BUILD) && !defined(MEMSET_NO_THUMB_BUILD)
+#if CONFIG_IS_ENABLED(SYS_THUMB_BUILD) && !defined(MEMSET_NO_THUMB_BUILD)
 	.thumb
 	.thumb_func
 #endif

+ 8 - 0
arch/arm/mach-at91/arm926ejs/Makefile

@@ -27,3 +27,11 @@ obj-y	+= timer.o
 ifndef CONFIG_SKIP_LOWLEVEL_INIT
 obj-y	+= lowlevel_init.o
 endif
+
+ifdef CONFIG_$(SPL_)SYS_THUMB_BUILD
+ifndef CONFIG_HAS_THUMB2
+
+CFLAGS_cache.o := -marm
+
+endif
+endif

+ 1 - 1
arch/arm/mach-orion5x/Makefile

@@ -19,7 +19,7 @@ endif
 
 # some files can only build in ARM or THUMB2, not THUMB1
 
-ifdef CONFIG_SYS_THUMB_BUILD
+ifdef CONFIG_$(SPL_)SYS_THUMB_BUILD
 ifndef CONFIG_HAS_THUMB2
 
 CFLAGS_cpu.o := -marm

+ 1 - 0
configs/am335x_evm_norboot_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_AM33XX=y
 CONFIG_TARGET_AM335X_EVM=y
 CONFIG_NOR=y

+ 1 - 0
configs/am3517_crane_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_OMAP34XX=y
 # CONFIG_SPL_GPIO_SUPPORT is not set
 CONFIG_TARGET_AM3517_CRANE=y

+ 1 - 0
configs/am3517_evm_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_OMAP34XX=y
 # CONFIG_SPL_GPIO_SUPPORT is not set
 CONFIG_TARGET_AM3517_EVM=y

+ 1 - 0
configs/am43xx_evm_qspiboot_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_AM43XX=y
 CONFIG_TARGET_AM43XX_EVM=y
 CONFIG_ISW_ENTRY_ADDR=0x30000000

+ 1 - 0
configs/apalis_imx6_nospl_com_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
 CONFIG_ARCH_MX6=y
 CONFIG_TARGET_APALIS_IMX6=y
 CONFIG_VIDEO=y

+ 1 - 0
configs/apalis_imx6_nospl_it_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
 CONFIG_ARCH_MX6=y
 CONFIG_TARGET_APALIS_IMX6=y
 CONFIG_VIDEO=y

+ 1 - 0
configs/armadillo-800eva_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_ARCH_RMOBILE=y
 CONFIG_TARGET_ARMADILLO_800EVA=y
 CONFIG_BOOTDELAY=3

+ 1 - 0
configs/axm_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SPL_SYS_THUMB_BUILD=y
 # CONFIG_SPL_USE_ARCH_MEMCPY is not set
 # CONFIG_SPL_USE_ARCH_MEMSET is not set
 CONFIG_ARCH_AT91=y

+ 1 - 0
configs/bk4r1_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
 CONFIG_TARGET_BK4R1=y
 CONFIG_DEFAULT_DEVICE_TREE="bk4r1"
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/phytec/pcm052/imximage.cfg,ENV_IS_IN_NAND"

+ 1 - 0
configs/cm_t3517_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_OMAP34XX=y
 CONFIG_TARGET_CM_T3517=y
 CONFIG_BOOTDELAY=3

+ 1 - 0
configs/cm_t35_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_OMAP34XX=y
 CONFIG_TARGET_CM_T35=y
 CONFIG_BOOTDELAY=3

+ 1 - 0
configs/cm_t43_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
 CONFIG_TARGET_CM_T43=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y

+ 1 - 0
configs/colibri_imx6_nospl_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
 CONFIG_ARCH_MX6=y
 CONFIG_TARGET_COLIBRI_IMX6=y
 CONFIG_VIDEO=y

+ 1 - 0
configs/colibri_imx7_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
 CONFIG_ARCH_MX7=y
 CONFIG_TARGET_COLIBRI_IMX7=y
 CONFIG_IMX_RDC=y

+ 1 - 0
configs/colibri_vf_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
 CONFIG_TARGET_COLIBRI_VF=y
 CONFIG_DEFAULT_DEVICE_TREE="vf610-colibri"
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri_vf/imximage.cfg,ENV_IS_IN_NAND,IMX_NAND"

+ 1 - 0
configs/eco5pk_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_OMAP34XX=y
 CONFIG_TARGET_ECO5PK=y
 CONFIG_FIT=y

+ 1 - 0
configs/highbank_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
 CONFIG_ARCH_HIGHBANK=y
 CONFIG_FIT=y
 CONFIG_OF_BOARD_SETUP=y

+ 1 - 0
configs/kzm9g_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_ARCH_RMOBILE=y
 CONFIG_TARGET_KZM9G=y
 CONFIG_BOOTDELAY=3

+ 1 - 0
configs/mcx_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_OMAP34XX=y
 # CONFIG_SPL_GPIO_SUPPORT is not set
 CONFIG_TARGET_MCX=y

+ 1 - 0
configs/mt_ventoux_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_OMAP34XX=y
 CONFIG_TARGET_MT_VENTOUX=y
 CONFIG_VIDEO=y

+ 1 - 0
configs/nokia_rx51_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_OMAP34XX=y
 CONFIG_TARGET_NOKIA_RX51=y
 CONFIG_VIDEO=y

+ 1 - 0
configs/omap3_evm_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_OMAP34XX=y
 CONFIG_TARGET_OMAP3_EVM=y
 CONFIG_BOOTDELAY=3

+ 1 - 0
configs/omap3_ha_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_OMAP34XX=y
 CONFIG_TARGET_TAO3530=y
 CONFIG_SYS_EXTRA_OPTIONS="SYS_BOARD_OMAP3_HA"

+ 1 - 0
configs/openrd_base_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
 CONFIG_KIRKWOOD=y
 CONFIG_TARGET_OPENRD=y
 CONFIG_IDENT_STRING="\nOpenRD-Base"

+ 1 - 0
configs/openrd_client_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
 CONFIG_KIRKWOOD=y
 CONFIG_TARGET_OPENRD=y
 CONFIG_IDENT_STRING="\nOpenRD-Client"

+ 1 - 0
configs/openrd_ultimate_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
 CONFIG_KIRKWOOD=y
 CONFIG_TARGET_OPENRD=y
 CONFIG_IDENT_STRING="\nOpenRD-Ultimate"

+ 1 - 0
configs/pcm052_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
 CONFIG_TARGET_PCM052=y
 CONFIG_DEFAULT_DEVICE_TREE="pcm052"
 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/phytec/pcm052/imximage.cfg,ENV_IS_IN_NAND"

+ 1 - 0
configs/smartweb_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SPL_SYS_THUMB_BUILD=y
 # CONFIG_SPL_USE_ARCH_MEMCPY is not set
 # CONFIG_SPL_USE_ARCH_MEMSET is not set
 CONFIG_ARCH_AT91=y

+ 1 - 0
configs/sniper_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_OMAP34XX=y
 CONFIG_TARGET_SNIPER=y
 # CONFIG_SPL_NAND_SUPPORT is not set

+ 1 - 0
configs/tao3530_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_OMAP34XX=y
 CONFIG_TARGET_TAO3530=y
 CONFIG_BOOTDELAY=3

+ 1 - 0
configs/taurus_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SPL_SYS_THUMB_BUILD=y
 # CONFIG_SPL_USE_ARCH_MEMCPY is not set
 # CONFIG_SPL_USE_ARCH_MEMSET is not set
 CONFIG_ARCH_AT91=y

+ 1 - 0
configs/tbs2910_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
 CONFIG_ARCH_MX6=y
 CONFIG_TARGET_TBS2910=y
 CONFIG_PRE_CONSOLE_BUFFER=y

+ 1 - 0
configs/twister_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+# CONFIG_SYS_THUMB_BUILD is not set
 CONFIG_OMAP34XX=y
 CONFIG_TARGET_TWISTER=y
 CONFIG_FIT=y

+ 1 - 0
configs/x600_defconfig

@@ -1,4 +1,5 @@
 CONFIG_ARM=y
+CONFIG_SYS_THUMB_BUILD=y
 # CONFIG_SPL_USE_ARCH_MEMCPY is not set
 # CONFIG_SPL_USE_ARCH_MEMSET is not set
 CONFIG_TARGET_X600=y

+ 0 - 1
include/configs/apalis_imx6.h

@@ -10,7 +10,6 @@
 #define __CONFIG_H
 
 #include "mx6_common.h"
-#define CONFIG_SYS_THUMB_BUILD
 
 #undef CONFIG_DISPLAY_BOARDINFO
 #define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */

+ 0 - 1
include/configs/colibri_imx6.h

@@ -10,7 +10,6 @@
 #define __CONFIG_H
 
 #include "mx6_common.h"
-#define CONFIG_SYS_THUMB_BUILD
 
 #undef CONFIG_DISPLAY_BOARDINFO
 #define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */

+ 0 - 2
include/configs/colibri_imx7.h

@@ -14,8 +14,6 @@
 
 #include "mx7_common.h"
 
-#define CONFIG_SYS_THUMB_BUILD
-
 /*#define CONFIG_DBG_MONITOR*/
 #define PHYS_SDRAM_SIZE			SZ_512M
 

+ 0 - 1
include/configs/colibri_vf.h

@@ -15,7 +15,6 @@
 #include <asm/arch/imx-regs.h>
 
 #define CONFIG_VF610
-#define CONFIG_SYS_THUMB_BUILD
 #define CONFIG_SYS_FSL_CLK
 
 #define CONFIG_DISPLAY_BOARDINFO_LATE	/* Calls show_board_info() */

+ 0 - 1
include/configs/highbank.h

@@ -10,7 +10,6 @@
 #include <config_distro_defaults.h>
 
 #define CONFIG_SYS_DCACHE_OFF
-#define CONFIG_SYS_THUMB_BUILD
 
 #define CONFIG_SYS_BOOTMAPSZ		(16 << 20)
 

+ 0 - 1
include/configs/imx6_spl.h

@@ -24,7 +24,6 @@
  *    and some padding thus 'our' max size is really 0x00908000 - 0x00918000
  *    or 64KB
  */
-#define CONFIG_SYS_THUMB_BUILD
 #define CONFIG_SPL_LDSCRIPT	"arch/arm/mach-omap2/u-boot-spl.lds"
 #define CONFIG_SPL_TEXT_BASE		0x00908000
 #define CONFIG_SPL_MAX_SIZE		0x10000

+ 0 - 2
include/configs/kc1.h

@@ -16,8 +16,6 @@
  * Build
  */
 
-#define CONFIG_SYS_THUMB_BUILD
-
 /*
  * CPU
  */

+ 0 - 1
include/configs/openrd.h

@@ -21,7 +21,6 @@
 #define CONFIG_KW88F6281	1	/* SOC Name */
 #define CONFIG_MACH_OPENRD_BASE	/* Machine type */
 #define CONFIG_SKIP_LOWLEVEL_INIT	/* disable board lowlevel_init */
-#define CONFIG_SYS_THUMB_BUILD
 
 /*
  * Commands configuration

+ 0 - 2
include/configs/pcm052.h

@@ -13,8 +13,6 @@
 
 #define CONFIG_VF610
 
-#define CONFIG_SYS_THUMB_BUILD
-
 #define CONFIG_SKIP_LOWLEVEL_INIT
 
 /* Enable passing of ATAGs */

+ 0 - 2
include/configs/rcar-gen2-common.h

@@ -14,8 +14,6 @@
 #define CONFIG_CMD_DFL
 #define CONFIG_CMD_SDRAM
 
-#define CONFIG_SYS_THUMB_BUILD
-
 /* Support File sytems */
 #define CONFIG_FAT_WRITE
 #define CONFIG_SUPPORT_VFAT

+ 0 - 1
include/configs/rk3036_common.h

@@ -17,7 +17,6 @@
 #define CONFIG_SYS_MALLOC_LEN		(32 << 20)
 #define CONFIG_SYS_CBSIZE		1024
 #define CONFIG_SKIP_LOWLEVEL_INIT
-#define CONFIG_SYS_THUMB_BUILD
 
 #define CONFIG_SYS_TIMER_RATE		(24 * 1000 * 1000)
 #define CONFIG_SYS_TIMER_BASE		0x200440a0 /* TIMER5 */

+ 0 - 1
include/configs/rk3288_common.h

@@ -17,7 +17,6 @@
 #define CONFIG_BAUDRATE			115200
 #define CONFIG_SYS_MALLOC_LEN		(32 << 20)
 #define CONFIG_SYS_CBSIZE		1024
-#define CONFIG_SYS_THUMB_BUILD
 
 #define CONFIG_SYS_TIMER_RATE		(24 * 1000 * 1000)
 #define	CONFIG_SYS_TIMER_BASE		0xff810020 /* TIMER7 */

+ 0 - 1
include/configs/smartweb.h

@@ -270,7 +270,6 @@
 #define CONFIG_SYS_AT91_PLLB		0x10483f0e
 
 #if defined(CONFIG_SPL_BUILD)
-#define CONFIG_SYS_THUMB_BUILD
 #define CONFIG_SYS_ICACHE_OFF
 #define CONFIG_SYS_DCACHE_OFF
 #endif

+ 0 - 2
include/configs/socfpga_common.h

@@ -9,8 +9,6 @@
 /* Virtual target or real hardware */
 #undef CONFIG_SOCFPGA_VIRTUAL_TARGET
 
-#define CONFIG_SYS_THUMB_BUILD
-
 /*
  * High level configuration
  */

+ 0 - 1
include/configs/stm32f429-discovery.h

@@ -8,7 +8,6 @@
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
-#define CONFIG_SYS_THUMB_BUILD
 #define CONFIG_STM32F4DISCOVERY
 
 #define CONFIG_MISC_INIT_R

+ 0 - 2
include/configs/stm32f746-disco.h

@@ -8,8 +8,6 @@
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
-#define CONFIG_SYS_THUMB_BUILD
-
 #define CONFIG_SYS_FLASH_BASE		0x08000000
 #define CONFIG_SYS_INIT_SP_ADDR		0x20050000
 #define CONFIG_SYS_TEXT_BASE		0x08000000

+ 0 - 7
include/configs/sunxi-common.h

@@ -32,13 +32,6 @@
 # define CONFIG_MACH_TYPE_COMPAT_REV	1
 #endif
 
-/*
- * High Level Configuration Options
- */
-#if defined(CONFIG_SPL_BUILD) && !defined(CONFIG_ARM64)
-#define CONFIG_SYS_THUMB_BUILD	/* Thumbs mode to save space in SPL */
-#endif
-
 /* Serial & console */
 #define CONFIG_SYS_NS16550_SERIAL
 /* ns16550 reg in the low bits of cpu reg */

+ 0 - 1
include/configs/taurus.h

@@ -23,7 +23,6 @@
 #include <linux/sizes.h>
 
 #if defined(CONFIG_SPL_BUILD)
-#define CONFIG_SYS_THUMB_BUILD
 #define CONFIG_SYS_ICACHE_OFF
 #define CONFIG_SYS_DCACHE_OFF
 #endif

+ 0 - 1
include/configs/tbs2910.h

@@ -12,7 +12,6 @@
 #include "mx6_common.h"
 
 /* General configuration */
-#define CONFIG_SYS_THUMB_BUILD
 
 #define CONFIG_MACH_TYPE		3980
 

+ 0 - 2
include/configs/ti_armv7_common.h

@@ -278,8 +278,6 @@
 #define CONFIG_CMD_SPL
 #endif
 
-#define CONFIG_SYS_THUMB_BUILD
-
 /* General parts of the framework, required. */
 #define CONFIG_SPL_BOARD_INIT
 

+ 0 - 2
include/configs/ti_omap4_common.h

@@ -18,8 +18,6 @@
 #define CONFIG_OMAP4430		1	/* which is in a 4430 */
 #define CONFIG_MISC_INIT_R
 
-#define CONFIG_SYS_THUMB_BUILD
-
 #ifndef CONFIG_SYS_L2CACHE_OFF
 #define CONFIG_SYS_L2_PL310		1
 #define CONFIG_SYS_PL310_BASE	0x48242000

+ 0 - 1
include/configs/tricorder.h

@@ -17,7 +17,6 @@
 #define __CONFIG_H
 
 /* High Level Configuration Options */
-#define CONFIG_SYS_THUMB_BUILD
 #define CONFIG_OMAP			/* in a TI OMAP core */
 
 #define CONFIG_MACH_TYPE		MACH_TYPE_TRICORDER

+ 0 - 1
include/configs/x600.h

@@ -16,7 +16,6 @@
  */
 #define CONFIG_SPEAR600				/* SPEAr600 SoC */
 #define CONFIG_X600				/* on X600 board */
-#define CONFIG_SYS_THUMB_BUILD
 
 #include <asm/arch/hardware.h>