summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2024-07-31 11:18:43 -0600
committerTom Rini <trini@konsulko.com>2024-07-31 11:18:43 -0600
commitc9860d7ac530971e81e36c0b993fbfb02a42afb3 (patch)
treef49eee541d6d5be362ee56c6850abe6c7061e583 /arch
parent4793b683b3ae4aaad9785c36e1d9cc71613a4253 (diff)
parent3911ff576eda8f28d221b91ec58a0bf2e0c7f67f (diff)
downloadu-boot-c9860d7ac530971e81e36c0b993fbfb02a42afb3.tar.gz
u-boot-c9860d7ac530971e81e36c0b993fbfb02a42afb3.tar.bz2
u-boot-c9860d7ac530971e81e36c0b993fbfb02a42afb3.zip
Merge patch series "Endian Kconfig improvements"
Jiaxun Yang <jiaxun.yang@flygoat.com> says: This is a subset of my previous arm64_be work. I wish this could be merged first so it would be easier to work against xtensa and arm64 be support.
Diffstat (limited to 'arch')
-rw-r--r--arch/Kconfig34
-rw-r--r--arch/arc/include/asm/arc-bcr.h10
-rw-r--r--arch/arm/cpu/armv8/linux-kernel-image-header-vars.h4
-rw-r--r--arch/mips/Kconfig20
-rw-r--r--arch/mips/mach-ath79/Kconfig8
-rw-r--r--arch/mips/mach-bmips/Kconfig20
-rw-r--r--arch/mips/mach-jz47xx/Kconfig2
-rw-r--r--arch/mips/mach-mscc/Kconfig4
-rw-r--r--arch/mips/mach-pic32/Kconfig2
9 files changed, 58 insertions, 46 deletions
diff --git a/arch/Kconfig b/arch/Kconfig
index abd406d488..8f1f466701 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -8,6 +8,13 @@ config CREATE_ARCH_SYMLINK
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 @@ config ARC
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 @@ config ARM
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 @@ config M68K
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 @@ config NIOS2
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 @@ config RISCV
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 @@ config SANDBOX
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 SANDBOX
config SH
bool "SuperH architecture"
+ select SUPPORT_LITTLE_ENDIAN
select HAVE_PRIVATE_LIBGCC
select SUPPORT_OF_CONTROL
@@ -231,6 +250,7 @@ config X86
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 X86
config XTENSA
bool "Xtensa architecture"
select CREATE_ARCH_SYMLINK
+ select SUPPORT_LITTLE_ENDIAN
select SUPPORT_OF_CONTROL
endchoice
@@ -515,24 +536,21 @@ endif
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/arc/include/asm/arc-bcr.h b/arch/arc/include/asm/arc-bcr.h
index a6c972bf1e..d4de9b818c 100644
--- a/arch/arc/include/asm/arc-bcr.h
+++ b/arch/arc/include/asm/arc-bcr.h
@@ -15,7 +15,7 @@
union bcr_di_cache {
struct {
-#ifdef CONFIG_CPU_BIG_ENDIAN
+#ifdef CONFIG_SYS_BIG_ENDIAN
unsigned int pad:12, line_len:4, sz:4, config:4, ver:8;
#else
unsigned int ver:8, config:4, sz:4, line_len:4, pad:12;
@@ -26,7 +26,7 @@ union bcr_di_cache {
union bcr_slc_cfg {
struct {
-#ifdef CONFIG_CPU_BIG_ENDIAN
+#ifdef CONFIG_SYS_BIG_ENDIAN
unsigned int pad:24, way:2, lsz:2, sz:4;
#else
unsigned int sz:4, lsz:2, way:2, pad:24;
@@ -37,7 +37,7 @@ union bcr_slc_cfg {
union bcr_generic {
struct {
-#ifdef CONFIG_CPU_BIG_ENDIAN
+#ifdef CONFIG_SYS_BIG_ENDIAN
unsigned int pad:24, ver:8;
#else
unsigned int ver:8, pad:24;
@@ -48,7 +48,7 @@ union bcr_generic {
union bcr_clust_cfg {
struct {
-#ifdef CONFIG_CPU_BIG_ENDIAN
+#ifdef CONFIG_SYS_BIG_ENDIAN
unsigned int pad:7, c:1, num_entries:8, num_cores:8, ver:8;
#else
unsigned int ver:8, num_cores:8, num_entries:8, c:1, pad:7;
@@ -59,7 +59,7 @@ union bcr_clust_cfg {
union bcr_mmu_4 {
struct {
-#ifdef CONFIG_CPU_BIG_ENDIAN
+#ifdef CONFIG_SYS_BIG_ENDIAN
unsigned int ver:8, sasid:1, sz1:4, sz0:4, res:2, pae:1,
n_ways:2, n_entry:2, n_super:2, u_itlb:3, u_dtlb:3;
#else
diff --git a/arch/arm/cpu/armv8/linux-kernel-image-header-vars.h b/arch/arm/cpu/armv8/linux-kernel-image-header-vars.h
index b6394aee16..c6af825dbc 100644
--- a/arch/arm/cpu/armv8/linux-kernel-image-header-vars.h
+++ b/arch/arm/cpu/armv8/linux-kernel-image-header-vars.h
@@ -31,7 +31,7 @@
* when PIE is in effect. So we need to split them up in 32-bit high and low
* words.
*/
-#ifdef CONFIG_CPU_BIG_ENDIAN
+#ifdef CONFIG_SYS_BIG_ENDIAN
#define DATA_LE32(data) \
((((data) & 0x000000ff) << 24) | \
(((data) & 0x0000ff00) << 8) | \
@@ -55,7 +55,7 @@
#endif
#define __MEM_USAGE (__CODE_DATA_SIZE + __MAX_EXTRA_RAM_USAGE)
-#ifdef CONFIG_CPU_BIG_ENDIAN
+#ifdef CONFIG_SYS_BIG_ENDIAN
#define __HEAD_FLAG_BE 1
#else
#define __HEAD_FLAG_BE 0
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index eb7f3ad237..38577af43d 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -28,14 +28,14 @@ config TARGET_MALTA
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 @@ config ARCH_MTMIPS
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 @@ config ARCH_OCTEON
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 @@ config TARGET_BOSTON
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 @@ config TARGET_XILFPGA
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 @@ config MIPS_BOOT_FDT
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 cd85d1b6c3..2fa628568a 100644
--- a/arch/mips/mach-ath79/Kconfig
+++ b/arch/mips/mach-ath79/Kconfig
@@ -8,7 +8,7 @@ config SOC_AR933X
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_AR933X
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 @@ config SOC_QCA953X
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_QCA953X
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 eb9ea34c52..b140552657 100644
--- a/arch/mips/mach-bmips/Kconfig
+++ b/arch/mips/mach-bmips/Kconfig
@@ -23,7 +23,7 @@ config SOC_BMIPS_BCM3380
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 @@ config SOC_BMIPS_BCM6318
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 @@ config SOC_BMIPS_BCM6328
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 @@ config SOC_BMIPS_BCM6338
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 @@ config SOC_BMIPS_BCM6348
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 @@ config SOC_BMIPS_BCM6358
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 @@ config SOC_BMIPS_BCM6368
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 @@ config SOC_BMIPS_BCM6362
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 @@ config SOC_BMIPS_BCM63268
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 @@ config SOC_BMIPS_BCM6838
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 dcaac01628..858173e75b 100644
--- a/arch/mips/mach-jz47xx/Kconfig
+++ b/arch/mips/mach-jz47xx/Kconfig
@@ -6,7 +6,7 @@ config SYS_SOC
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 affc4721f8..367d5248a1 100644
--- a/arch/mips/mach-mscc/Kconfig
+++ b/arch/mips/mach-mscc/Kconfig
@@ -6,10 +6,10 @@ menu "MSCC VCore-III platforms"
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 2afa972074..52d2eec0a7 100644
--- a/arch/mips/mach-pic32/Kconfig
+++ b/arch/mips/mach-pic32/Kconfig
@@ -13,7 +13,7 @@ config SOC_PIC32MZDA
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.