[U-Boot] [PATCH 1/6] MIPS: kconfig: add options for endianess select

Daniel Schwierzeck daniel.schwierzeck at gmail.com
Sun Oct 26 14:37:51 CET 2014


Add new Kconfig option to let the user select the targets
endianess. Each target have to select SUPPORTS_BIG_ENDIAN
and/or SUPPORTS_LITTLE_ENDIAN to indicate which endianess
is supported.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck at gmail.com>
---

 arch/mips/Kconfig                               | 38 +++++++++++++++++++++++++
 configs/dbau1000_defconfig                      |  1 +
 configs/dbau1100_defconfig                      |  1 +
 configs/dbau1500_defconfig                      |  1 +
 configs/dbau1550_defconfig                      |  1 +
 configs/dbau1550_el_defconfig                   |  3 +-
 configs/malta_defconfig                         |  2 +-
 configs/maltael_defconfig                       |  2 +-
 configs/pb1000_defconfig                        |  1 +
 configs/qemu_mips64_defconfig                   |  2 +-
 configs/qemu_mips64el_defconfig                 |  2 +-
 configs/qemu_mips_defconfig                     |  2 +-
 configs/qemu_mipsel_defconfig                   |  2 +-
 configs/vct_platinum_defconfig                  |  1 +
 configs/vct_platinum_onenand_defconfig          |  1 +
 configs/vct_platinum_onenand_small_defconfig    |  1 +
 configs/vct_platinum_small_defconfig            |  1 +
 configs/vct_platinumavc_defconfig               |  1 +
 configs/vct_platinumavc_onenand_defconfig       |  1 +
 configs/vct_platinumavc_onenand_small_defconfig |  1 +
 configs/vct_platinumavc_small_defconfig         |  1 +
 configs/vct_premium_defconfig                   |  1 +
 configs/vct_premium_onenand_defconfig           |  1 +
 configs/vct_premium_onenand_small_defconfig     |  1 +
 configs/vct_premium_small_defconfig             |  1 +
 25 files changed, 63 insertions(+), 7 deletions(-)

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 9b72bab..b8f9741 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -12,21 +12,31 @@ choice
 
 config TARGET_QEMU_MIPS
 	bool "Support qemu-mips"
+	select SUPPORTS_BIG_ENDIAN
+	select SUPPORTS_LITTLE_ENDIAN
 
 config TARGET_MALTA
 	bool "Support malta"
+	select SUPPORTS_BIG_ENDIAN
+	select SUPPORTS_LITTLE_ENDIAN
 
 config TARGET_VCT
 	bool "Support vct"
+	select SUPPORTS_BIG_ENDIAN
 
 config TARGET_DBAU1X00
 	bool "Support dbau1x00"
+	select SUPPORTS_BIG_ENDIAN
+	select SUPPORTS_LITTLE_ENDIAN
 
 config TARGET_PB1X00
 	bool "Support pb1x00"
+	select SUPPORTS_BIG_ENDIAN
 
 config TARGET_QEMU_MIPS64
 	bool "Support qemu-mips64"
+	select SUPPORTS_BIG_ENDIAN
+	select SUPPORTS_LITTLE_ENDIAN
 
 endchoice
 
@@ -36,4 +46,32 @@ source "board/micronas/vct/Kconfig"
 source "board/pb1x00/Kconfig"
 source "board/qemu-mips/Kconfig"
 
+if MIPS
+
+choice
+	prompt "Endianness selection"
+	help
+	  Some MIPS 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
+
+config SYS_LITTLE_ENDIAN
+	bool "Little endian"
+	depends on SUPPORTS_LITTLE_ENDIAN
+
+endchoice
+
+config SUPPORTS_BIG_ENDIAN
+	bool
+
+config SUPPORTS_LITTLE_ENDIAN
+	bool
+
+endif
+
 endmenu
diff --git a/configs/dbau1000_defconfig b/configs/dbau1000_defconfig
index 7c95629..aa4d338 100644
--- a/configs/dbau1000_defconfig
+++ b/configs/dbau1000_defconfig
@@ -1,3 +1,4 @@
 CONFIG_SYS_EXTRA_OPTIONS="DBAU1000"
 CONFIG_MIPS=y
 CONFIG_TARGET_DBAU1X00=y
+CONFIG_SYS_BIG_ENDIAN=y
diff --git a/configs/dbau1100_defconfig b/configs/dbau1100_defconfig
index 506f5da..db6f98e 100644
--- a/configs/dbau1100_defconfig
+++ b/configs/dbau1100_defconfig
@@ -1,3 +1,4 @@
 CONFIG_SYS_EXTRA_OPTIONS="DBAU1100"
 CONFIG_MIPS=y
 CONFIG_TARGET_DBAU1X00=y
+CONFIG_SYS_BIG_ENDIAN=y
diff --git a/configs/dbau1500_defconfig b/configs/dbau1500_defconfig
index 5a02a78..d2fbff9 100644
--- a/configs/dbau1500_defconfig
+++ b/configs/dbau1500_defconfig
@@ -1,3 +1,4 @@
 CONFIG_SYS_EXTRA_OPTIONS="DBAU1500"
 CONFIG_MIPS=y
 CONFIG_TARGET_DBAU1X00=y
+CONFIG_SYS_BIG_ENDIAN=y
diff --git a/configs/dbau1550_defconfig b/configs/dbau1550_defconfig
index 9015023..3142391 100644
--- a/configs/dbau1550_defconfig
+++ b/configs/dbau1550_defconfig
@@ -1,3 +1,4 @@
 CONFIG_SYS_EXTRA_OPTIONS="DBAU1550"
 CONFIG_MIPS=y
 CONFIG_TARGET_DBAU1X00=y
+CONFIG_SYS_BIG_ENDIAN=y
diff --git a/configs/dbau1550_el_defconfig b/configs/dbau1550_el_defconfig
index 53b35ce..514f227 100644
--- a/configs/dbau1550_el_defconfig
+++ b/configs/dbau1550_el_defconfig
@@ -1,3 +1,4 @@
-CONFIG_SYS_EXTRA_OPTIONS="DBAU1550,SYS_LITTLE_ENDIAN"
+CONFIG_SYS_EXTRA_OPTIONS="DBAU1550"
 CONFIG_MIPS=y
 CONFIG_TARGET_DBAU1X00=y
+CONFIG_SYS_LITTLE_ENDIAN=y
diff --git a/configs/malta_defconfig b/configs/malta_defconfig
index f3788b6..5a178a7 100644
--- a/configs/malta_defconfig
+++ b/configs/malta_defconfig
@@ -1,3 +1,3 @@
-CONFIG_SYS_EXTRA_OPTIONS="SYS_BIG_ENDIAN"
 CONFIG_MIPS=y
 CONFIG_TARGET_MALTA=y
+CONFIG_SYS_BIG_ENDIAN=y
diff --git a/configs/maltael_defconfig b/configs/maltael_defconfig
index 97d0e89..011525f 100644
--- a/configs/maltael_defconfig
+++ b/configs/maltael_defconfig
@@ -1,3 +1,3 @@
-CONFIG_SYS_EXTRA_OPTIONS="SYS_LITTLE_ENDIAN"
 CONFIG_MIPS=y
 CONFIG_TARGET_MALTA=y
+CONFIG_SYS_LITTLE_ENDIAN=y
diff --git a/configs/pb1000_defconfig b/configs/pb1000_defconfig
index e226358..7d9509b 100644
--- a/configs/pb1000_defconfig
+++ b/configs/pb1000_defconfig
@@ -1,3 +1,4 @@
 CONFIG_SYS_EXTRA_OPTIONS="PB1000"
 CONFIG_MIPS=y
 CONFIG_TARGET_PB1X00=y
+CONFIG_SYS_BIG_ENDIAN=y
diff --git a/configs/qemu_mips64_defconfig b/configs/qemu_mips64_defconfig
index 2948355..36897b9 100644
--- a/configs/qemu_mips64_defconfig
+++ b/configs/qemu_mips64_defconfig
@@ -1,3 +1,3 @@
-CONFIG_SYS_EXTRA_OPTIONS="SYS_BIG_ENDIAN"
 CONFIG_MIPS=y
 CONFIG_TARGET_QEMU_MIPS64=y
+CONFIG_SYS_BIG_ENDIAN=y
diff --git a/configs/qemu_mips64el_defconfig b/configs/qemu_mips64el_defconfig
index 13a039f..70d226a 100644
--- a/configs/qemu_mips64el_defconfig
+++ b/configs/qemu_mips64el_defconfig
@@ -1,3 +1,3 @@
-CONFIG_SYS_EXTRA_OPTIONS="SYS_LITTLE_ENDIAN"
 CONFIG_MIPS=y
 CONFIG_TARGET_QEMU_MIPS64=y
+CONFIG_SYS_LITTLE_ENDIAN=y
diff --git a/configs/qemu_mips_defconfig b/configs/qemu_mips_defconfig
index 6b2c029..0a385af 100644
--- a/configs/qemu_mips_defconfig
+++ b/configs/qemu_mips_defconfig
@@ -1,3 +1,3 @@
-CONFIG_SYS_EXTRA_OPTIONS="SYS_BIG_ENDIAN"
 CONFIG_MIPS=y
 CONFIG_TARGET_QEMU_MIPS=y
+CONFIG_SYS_BIG_ENDIAN=y
diff --git a/configs/qemu_mipsel_defconfig b/configs/qemu_mipsel_defconfig
index 57c8701..d0acb28 100644
--- a/configs/qemu_mipsel_defconfig
+++ b/configs/qemu_mipsel_defconfig
@@ -1,3 +1,3 @@
-CONFIG_SYS_EXTRA_OPTIONS="SYS_LITTLE_ENDIAN"
 CONFIG_MIPS=y
 CONFIG_TARGET_QEMU_MIPS=y
+CONFIG_SYS_LITTLE_ENDIAN=y
diff --git a/configs/vct_platinum_defconfig b/configs/vct_platinum_defconfig
index 9ff8b68..85584e3 100644
--- a/configs/vct_platinum_defconfig
+++ b/configs/vct_platinum_defconfig
@@ -1,3 +1,4 @@
 CONFIG_SYS_EXTRA_OPTIONS="VCT_PLATINUM"
 CONFIG_MIPS=y
 CONFIG_TARGET_VCT=y
+CONFIG_SYS_BIG_ENDIAN=y
diff --git a/configs/vct_platinum_onenand_defconfig b/configs/vct_platinum_onenand_defconfig
index f33c97d..0ba7ae6 100644
--- a/configs/vct_platinum_onenand_defconfig
+++ b/configs/vct_platinum_onenand_defconfig
@@ -1,3 +1,4 @@
 CONFIG_SYS_EXTRA_OPTIONS="VCT_PLATINUM,VCT_ONENAND"
 CONFIG_MIPS=y
 CONFIG_TARGET_VCT=y
+CONFIG_SYS_BIG_ENDIAN=y
diff --git a/configs/vct_platinum_onenand_small_defconfig b/configs/vct_platinum_onenand_small_defconfig
index 58c7995..d70a979 100644
--- a/configs/vct_platinum_onenand_small_defconfig
+++ b/configs/vct_platinum_onenand_small_defconfig
@@ -1,4 +1,5 @@
 CONFIG_SYS_EXTRA_OPTIONS="VCT_PLATINUM,VCT_ONENAND,VCT_SMALL_IMAGE"
 CONFIG_MIPS=y
 CONFIG_TARGET_VCT=y
+CONFIG_SYS_BIG_ENDIAN=y
 # CONFIG_CMD_CRC32 is not set
diff --git a/configs/vct_platinum_small_defconfig b/configs/vct_platinum_small_defconfig
index f4f56c4..ab5c2e1 100644
--- a/configs/vct_platinum_small_defconfig
+++ b/configs/vct_platinum_small_defconfig
@@ -1,4 +1,5 @@
 CONFIG_SYS_EXTRA_OPTIONS="VCT_PLATINUM,VCT_SMALL_IMAGE"
 CONFIG_MIPS=y
 CONFIG_TARGET_VCT=y
+CONFIG_SYS_BIG_ENDIAN=y
 # CONFIG_CMD_CRC32 is not set
diff --git a/configs/vct_platinumavc_defconfig b/configs/vct_platinumavc_defconfig
index 8aaac56..691325d 100644
--- a/configs/vct_platinumavc_defconfig
+++ b/configs/vct_platinumavc_defconfig
@@ -1,3 +1,4 @@
 CONFIG_SYS_EXTRA_OPTIONS="VCT_PLATINUMAVC"
 CONFIG_MIPS=y
 CONFIG_TARGET_VCT=y
+CONFIG_SYS_BIG_ENDIAN=y
diff --git a/configs/vct_platinumavc_onenand_defconfig b/configs/vct_platinumavc_onenand_defconfig
index 926c6e4..1e0c399 100644
--- a/configs/vct_platinumavc_onenand_defconfig
+++ b/configs/vct_platinumavc_onenand_defconfig
@@ -1,3 +1,4 @@
 CONFIG_SYS_EXTRA_OPTIONS="VCT_PLATINUMAVC,VCT_ONENAND"
 CONFIG_MIPS=y
 CONFIG_TARGET_VCT=y
+CONFIG_SYS_BIG_ENDIAN=y
diff --git a/configs/vct_platinumavc_onenand_small_defconfig b/configs/vct_platinumavc_onenand_small_defconfig
index 31b4c9a..f254ab6 100644
--- a/configs/vct_platinumavc_onenand_small_defconfig
+++ b/configs/vct_platinumavc_onenand_small_defconfig
@@ -1,4 +1,5 @@
 CONFIG_SYS_EXTRA_OPTIONS="VCT_PLATINUMAVC,VCT_ONENAND,VCT_SMALL_IMAGE"
 CONFIG_MIPS=y
 CONFIG_TARGET_VCT=y
+CONFIG_SYS_BIG_ENDIAN=y
 # CONFIG_CMD_CRC32 is not set
diff --git a/configs/vct_platinumavc_small_defconfig b/configs/vct_platinumavc_small_defconfig
index 23f6561..83670ed 100644
--- a/configs/vct_platinumavc_small_defconfig
+++ b/configs/vct_platinumavc_small_defconfig
@@ -1,4 +1,5 @@
 CONFIG_SYS_EXTRA_OPTIONS="VCT_PLATINUMAVC,VCT_SMALL_IMAGE"
 CONFIG_MIPS=y
 CONFIG_TARGET_VCT=y
+CONFIG_SYS_BIG_ENDIAN=y
 # CONFIG_CMD_CRC32 is not set
diff --git a/configs/vct_premium_defconfig b/configs/vct_premium_defconfig
index 0e16ff9..24bf87e 100644
--- a/configs/vct_premium_defconfig
+++ b/configs/vct_premium_defconfig
@@ -1,3 +1,4 @@
 CONFIG_SYS_EXTRA_OPTIONS="VCT_PREMIUM"
 CONFIG_MIPS=y
 CONFIG_TARGET_VCT=y
+CONFIG_SYS_BIG_ENDIAN=y
diff --git a/configs/vct_premium_onenand_defconfig b/configs/vct_premium_onenand_defconfig
index 29734b8..0039ec1 100644
--- a/configs/vct_premium_onenand_defconfig
+++ b/configs/vct_premium_onenand_defconfig
@@ -1,3 +1,4 @@
 CONFIG_SYS_EXTRA_OPTIONS="VCT_PREMIUM,VCT_ONENAND"
 CONFIG_MIPS=y
 CONFIG_TARGET_VCT=y
+CONFIG_SYS_BIG_ENDIAN=y
diff --git a/configs/vct_premium_onenand_small_defconfig b/configs/vct_premium_onenand_small_defconfig
index 354793e..8fc6ac1 100644
--- a/configs/vct_premium_onenand_small_defconfig
+++ b/configs/vct_premium_onenand_small_defconfig
@@ -1,4 +1,5 @@
 CONFIG_SYS_EXTRA_OPTIONS="VCT_PREMIUM,VCT_ONENAND,VCT_SMALL_IMAGE"
 CONFIG_MIPS=y
 CONFIG_TARGET_VCT=y
+CONFIG_SYS_BIG_ENDIAN=y
 # CONFIG_CMD_CRC32 is not set
diff --git a/configs/vct_premium_small_defconfig b/configs/vct_premium_small_defconfig
index a23ddb7..96bb0ee 100644
--- a/configs/vct_premium_small_defconfig
+++ b/configs/vct_premium_small_defconfig
@@ -1,4 +1,5 @@
 CONFIG_SYS_EXTRA_OPTIONS="VCT_PREMIUM,VCT_SMALL_IMAGE"
 CONFIG_MIPS=y
 CONFIG_TARGET_VCT=y
+CONFIG_SYS_BIG_ENDIAN=y
 # CONFIG_CMD_CRC32 is not set
-- 
2.1.1



More information about the U-Boot mailing list