Kconfig: Unify endian support option

Move SUPPORT_BIG_ENDIAN, SUPPORT_LITTLE_ENDIAN to top-level
arch Kconfig and let architectures select them as necessary.

Remove if guard for Endianness selection choice so we can
have one of SYS_BIG_ENDIAN, SYS_LITTLE_ENDIAN config symbol
defined even on single endian system.

Default endian to SYS_BIG_ENDIAN for MIPS || MICROBLAZE
and LITTLE_ENDIAN for the rest to retain old config
behaviour.

Note: PPC, SH, Xtensa are technically bi-endian, but I
checked compiled u-boot image with readelf, U-Boot currently
only support little endian for SH and Xtensa, Big Endian for
PPC.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
diff --git a/arch/Kconfig b/arch/Kconfig
index abd406d..8f1f466 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -8,6 +8,13 @@
 config HAVE_ARCH_IOREMAP
 	bool
 
+config SUPPORT_BIG_ENDIAN
+	bool
+
+config SUPPORT_LITTLE_ENDIAN
+	bool
+	default y if !SUPPORT_BIG_ENDIAN
+
 config SYS_CACHE_SHIFT_4
 	bool
 
@@ -59,6 +66,8 @@
 	select SUPPORT_OF_CONTROL
 	select SYS_CACHE_SHIFT_7
 	select TIMER
+	select SUPPORT_BIG_ENDIAN
+	select SUPPORT_LITTLE_ENDIAN
 	select SYS_BIG_ENDIAN if CPU_BIG_ENDIAN
 	select SYS_LITTLE_ENDIAN if !CPU_BIG_ENDIAN
 
@@ -68,6 +77,7 @@
 	select CREATE_ARCH_SYMLINK
 	select HAVE_PRIVATE_LIBGCC if !ARM64
 	select SUPPORT_ACPI
+	select SUPPORT_LITTLE_ENDIAN
 	select SUPPORT_OF_CONTROL
 
 config M68K
@@ -77,10 +87,13 @@
 	select SYS_BOOT_GET_CMDLINE
 	select SYS_BOOT_GET_KBD
 	select SYS_CACHE_SHIFT_4
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORT_OF_CONTROL
 
 config MICROBLAZE
 	bool "MicroBlaze architecture"
+	select SUPPORT_BIG_ENDIAN
+	select SUPPORT_LITTLE_ENDIAN
 	select SUPPORT_OF_CONTROL
 	imply CMD_TIMER
 	imply SPL_REGMAP if SPL
@@ -101,12 +114,14 @@
 	select DM
 	select DM_EVENT
 	select OF_CONTROL
+	select SUPPORT_LITTLE_ENDIAN
 	select SUPPORT_OF_CONTROL
 	imply CMD_DM
 
 config PPC
 	bool "PowerPC architecture"
 	select HAVE_PRIVATE_LIBGCC
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORT_OF_CONTROL
 	select SYS_BOOT_GET_CMDLINE
 	select SYS_BOOT_GET_KBD
@@ -115,6 +130,7 @@
 	bool "RISC-V architecture"
 	select CREATE_ARCH_SYMLINK
 	select SUPPORT_ACPI
+	select SUPPORT_LITTLE_ENDIAN
 	select SUPPORT_OF_CONTROL
 	select OF_CONTROL
 	select DM
@@ -160,6 +176,8 @@
 	select PCI_ENDPOINT
 	select SPI
 	select SUPPORT_OF_CONTROL
+	select SUPPORT_BIG_ENDIAN
+	select SUPPORT_LITTLE_ENDIAN
 	select SYSRESET_CMD_POWEROFF if CMD_POWEROFF
 	select SYS_CACHE_SHIFT_4
 	select IRQ
@@ -224,6 +242,7 @@
 
 config SH
 	bool "SuperH architecture"
+	select SUPPORT_LITTLE_ENDIAN
 	select HAVE_PRIVATE_LIBGCC
 	select SUPPORT_OF_CONTROL
 
@@ -231,6 +250,7 @@
 	bool "x86 architecture"
 	select SUPPORT_SPL
 	select SUPPORT_TPL
+	select SUPPORT_LITTLE_ENDIAN
 	select CREATE_ARCH_SYMLINK
 	select DM
 	select HAVE_ARCH_IOMAP
@@ -312,6 +332,7 @@
 config XTENSA
 	bool "Xtensa architecture"
 	select CREATE_ARCH_SYMLINK
+	select SUPPORT_LITTLE_ENDIAN
 	select SUPPORT_OF_CONTROL
 
 endchoice
@@ -515,24 +536,21 @@
 
 source "board/keymile/Kconfig"
 
-if MIPS || MICROBLAZE
-
 choice
 	prompt "Endianness selection"
+	default SYS_BIG_ENDIAN if MIPS || MICROBLAZE
+	default SYS_LITTLE_ENDIAN
 	help
-	  Some MIPS boards can be configured for either little or big endian
+	  Some boards can be configured for either little or big endian
 	  byte order. These modes require different U-Boot images. In general there
 	  is one preferred byteorder for a particular system but some systems are
 	  just as commonly used in the one or the other endianness.
 
 config SYS_BIG_ENDIAN
 	bool "Big endian"
-	depends on (SUPPORTS_BIG_ENDIAN && MIPS) || MICROBLAZE
+	depends on SUPPORT_BIG_ENDIAN
 
 config SYS_LITTLE_ENDIAN
 	bool "Little endian"
-	depends on (SUPPORTS_LITTLE_ENDIAN && MIPS) || MICROBLAZE
-
+	depends on SUPPORT_LITTLE_ENDIAN
 endchoice
-
-endif
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index eb7f3ad..38577af 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -28,14 +28,14 @@
 	select OF_ISA_BUS
 	select PCI_MAP_SYSTEM_MEMORY
 	select ROM_EXCEPTION_VECTORS
-	select SUPPORTS_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
 	select SUPPORTS_CPU_MIPS32_R6
 	select SUPPORTS_CPU_MIPS64_R1
 	select SUPPORTS_CPU_MIPS64_R2
 	select SUPPORTS_CPU_MIPS64_R6
-	select SUPPORTS_LITTLE_ENDIAN
+	select SUPPORT_BIG_ENDIAN
+	select SUPPORT_LITTLE_ENDIAN
 	select SWAP_IO_SPACE
 	imply CMD_DM
 
@@ -86,7 +86,7 @@
 	select ROM_EXCEPTION_VECTORS
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
-	select SUPPORTS_LITTLE_ENDIAN
+	select SUPPORT_LITTLE_ENDIAN
 	select SUPPORT_SPL
 
 config ARCH_JZ47XX
@@ -112,7 +112,7 @@
 	select MIPS_TUNE_OCTEON3
 	select MTD
 	select ROM_EXCEPTION_VECTORS
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS64_OCTEON
 	select PHYS_64BIT
 	select OF_CONTROL
@@ -138,14 +138,14 @@
 	select OF_BOARD_SETUP
 	select OF_CONTROL
 	select ROM_EXCEPTION_VECTORS
-	select SUPPORTS_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
 	select SUPPORTS_CPU_MIPS32_R6
 	select SUPPORTS_CPU_MIPS64_R1
 	select SUPPORTS_CPU_MIPS64_R2
 	select SUPPORTS_CPU_MIPS64_R6
-	select SUPPORTS_LITTLE_ENDIAN
+	select SUPPORT_BIG_ENDIAN
+	select SUPPORT_LITTLE_ENDIAN
 	imply CMD_DM
 
 config TARGET_XILFPGA
@@ -159,7 +159,7 @@
 	select ROM_EXCEPTION_VECTORS
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
-	select SUPPORTS_LITTLE_ENDIAN
+	select SUPPORT_LITTLE_ENDIAN
 	imply CMD_DM
 	help
 	  This supports IMGTEC MIPSfpga platform
@@ -413,12 +413,6 @@
 
 endmenu
 
-config SUPPORTS_BIG_ENDIAN
-	bool
-
-config SUPPORTS_LITTLE_ENDIAN
-	bool
-
 config SUPPORTS_CPU_MIPS32_R1
 	bool
 
diff --git a/arch/mips/mach-ath79/Kconfig b/arch/mips/mach-ath79/Kconfig
index cd85d1b..2fa6285 100644
--- a/arch/mips/mach-ath79/Kconfig
+++ b/arch/mips/mach-ath79/Kconfig
@@ -8,7 +8,7 @@
 	bool
 	select MIPS_TUNE_24KC
 	select ROM_EXCEPTION_VECTORS
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
 	help
@@ -17,7 +17,7 @@
 config SOC_AR934X
 	bool
 	select MIPS_TUNE_74KC
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
 	select USB_EHCI_IS_TDI if USB_EHCI_HCD
@@ -28,7 +28,7 @@
 	bool
 	select MIPS_TUNE_24KC
 	select ROM_EXCEPTION_VECTORS
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
 	help
@@ -37,7 +37,7 @@
 config SOC_QCA956X
 	bool
 	select MIPS_TUNE_74KC
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
 	help
diff --git a/arch/mips/mach-bmips/Kconfig b/arch/mips/mach-bmips/Kconfig
index eb9ea34..b140552 100644
--- a/arch/mips/mach-bmips/Kconfig
+++ b/arch/mips/mach-bmips/Kconfig
@@ -23,7 +23,7 @@
 	bool "BMIPS BCM3380 family"
 	select SYS_CACHE_SHIFT_4
 	select MIPS_TUNE_4KC
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SYSRESET_WATCHDOG
 	help
@@ -33,7 +33,7 @@
 	bool "BMIPS BCM6318 family"
 	select SYS_CACHE_SHIFT_4
 	select MIPS_TUNE_4KC
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SYSRESET_SYSCON
 	help
@@ -43,7 +43,7 @@
 	bool "BMIPS BCM6328 family"
 	select SYS_CACHE_SHIFT_4
 	select MIPS_TUNE_4KC
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SYSRESET_SYSCON
 	help
@@ -53,7 +53,7 @@
 	bool "BMIPS BCM6338 family"
 	select SYS_CACHE_SHIFT_4
 	select MIPS_TUNE_4KC
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SYSRESET_SYSCON
 	help
@@ -63,7 +63,7 @@
 	bool "BMIPS BCM6348 family"
 	select SYS_CACHE_SHIFT_4
 	select MIPS_TUNE_4KC
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SYSRESET_WATCHDOG
 	help
@@ -73,7 +73,7 @@
 	bool "BMIPS BCM6358 family"
 	select SYS_CACHE_SHIFT_4
 	select MIPS_TUNE_4KC
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SYSRESET_SYSCON
 	help
@@ -83,7 +83,7 @@
 	bool "BMIPS BCM6368 family"
 	select SYS_CACHE_SHIFT_4
 	select MIPS_TUNE_4KC
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SYSRESET_SYSCON
 	help
@@ -93,7 +93,7 @@
 	bool "BMIPS BCM6362 family"
 	select SYS_CACHE_SHIFT_4
 	select MIPS_TUNE_4KC
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SYSRESET_SYSCON
 	help
@@ -103,7 +103,7 @@
 	bool "BMIPS BCM63268 family"
 	select SYS_CACHE_SHIFT_4
 	select MIPS_TUNE_4KC
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SYSRESET_SYSCON
 	help
@@ -114,7 +114,7 @@
 	bool "BMIPS BCM6838 family"
 	select SYS_CACHE_SHIFT_4
 	select MIPS_TUNE_4KC
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SYSRESET_SYSCON
 	help
diff --git a/arch/mips/mach-jz47xx/Kconfig b/arch/mips/mach-jz47xx/Kconfig
index dcaac01..858173e 100644
--- a/arch/mips/mach-jz47xx/Kconfig
+++ b/arch/mips/mach-jz47xx/Kconfig
@@ -6,7 +6,7 @@
 
 config SOC_JZ4780
 	bool
-	select SUPPORTS_LITTLE_ENDIAN
+	select SUPPORT_LITTLE_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
 	help
diff --git a/arch/mips/mach-mscc/Kconfig b/arch/mips/mach-mscc/Kconfig
index affc472..367d524 100644
--- a/arch/mips/mach-mscc/Kconfig
+++ b/arch/mips/mach-mscc/Kconfig
@@ -6,10 +6,10 @@
 config SOC_VCOREIII
 	select MIPS_TUNE_24KC
 	select ROM_EXCEPTION_VECTORS
-	select SUPPORTS_BIG_ENDIAN
+	select SUPPORT_BIG_ENDIAN
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
-	select SUPPORTS_LITTLE_ENDIAN
+	select SUPPORT_LITTLE_ENDIAN
 	bool
 
 config SYS_SOC
diff --git a/arch/mips/mach-pic32/Kconfig b/arch/mips/mach-pic32/Kconfig
index 2afa972..52d2eec 100644
--- a/arch/mips/mach-pic32/Kconfig
+++ b/arch/mips/mach-pic32/Kconfig
@@ -13,7 +13,7 @@
 	select ROM_EXCEPTION_VECTORS
 	select SUPPORTS_CPU_MIPS32_R1
 	select SUPPORTS_CPU_MIPS32_R2
-	select SUPPORTS_LITTLE_ENDIAN
+	select SUPPORT_LITTLE_ENDIAN
 	select SYS_MIPS_CACHE_INIT_RAM_LOAD
 	help
 	  This supports Microchip PIC32MZ[DA] family of microcontrollers.