Message ID | 8ddc7276-6296-2284-51d3-01093ccbeccb@oracle.com |
---|---|
State | RFC |
Delegated to: | David Miller |
Headers | show |
On Thu, May 25, 2017 at 4:51 PM, Babu Moger <babu.moger@oracle.com> wrote: > On 5/24/2017 5:18 AM, Arnd Bergmann wrote: >>> I guess the time is ripe for adding (both) symbols to all architectures? >> >> Good idea. I think we can do most of this by adding a few lines to >> arch/Kconfig: >> >> config CPU_BIG_ENDIAN >> bool >> >> config CPU_LITTLE_ENDIAN >> def_bool !CPU_BIG_ENDIAN >> >> This way, we only need to add 'select CPU_BIG_ENDIAN' to the >> architectures that are always big-endian, and we don't need to >> change anything for the ones that have a single 'CPU_BIG_ENDIAN' >> option. >> >> The three architectures that have a 'choice' statement (mips, ppc and >> sh) will have to convert, and m32r will have to replace the > > > what to you mean by "(mips, ppc andsh) will have to convert"? Do you expect > any changes here? > Kconfig does not allow you to have the same symbol as both a regular 'bool' and also 'bool within choice', so those three have to replace the choice with a user-visible 'config CPU_BIG_ENDIAN' option like the other ones have. I also notice that for arch/s390/Kconfig you now have both the 'select CPU_BIG_ENDIAN' and the 'config CPU_BIG_ENDIAN def_bool y', I'd remove the second one in the same patch. Arnd -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 5/25/2017 3:09 PM, Arnd Bergmann wrote: > On Thu, May 25, 2017 at 4:51 PM, Babu Moger <babu.moger@oracle.com> wrote: >> On 5/24/2017 5:18 AM, Arnd Bergmann wrote: >>>> I guess the time is ripe for adding (both) symbols to all architectures? >>> Good idea. I think we can do most of this by adding a few lines to >>> arch/Kconfig: >>> >>> config CPU_BIG_ENDIAN >>> bool >>> >>> config CPU_LITTLE_ENDIAN >>> def_bool !CPU_BIG_ENDIAN >>> >>> This way, we only need to add 'select CPU_BIG_ENDIAN' to the >>> architectures that are always big-endian, and we don't need to >>> change anything for the ones that have a single 'CPU_BIG_ENDIAN' >>> option. >>> >>> The three architectures that have a 'choice' statement (mips, ppc and >>> sh) will have to convert, and m32r will have to replace the >> >> what to you mean by "(mips, ppc andsh) will have to convert"? Do you expect >> any changes here? >> > Kconfig does not allow you to have the same symbol as both a regular > 'bool' and also 'bool within choice', so those three have to replace the > choice with a user-visible 'config CPU_BIG_ENDIAN' option like the > other ones have. Ok. I will address it in my next version. Thanks > > I also notice that for arch/s390/Kconfig you now have both the > 'select CPU_BIG_ENDIAN' and the 'config CPU_BIG_ENDIAN > def_bool y', I'd remove the second one in the same patch. Sure. Will correct it. > Arnd -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
====================================== --- arch/Kconfig | 6 ++++++ arch/frv/Kconfig | 1 + arch/h8300/Kconfig | 1 + arch/m32r/Kconfig | 6 +++--- arch/m68k/Kconfig | 1 + arch/openrisc/Kconfig | 1 + arch/parisc/Kconfig | 1 + arch/s390/Kconfig | 1 + arch/sparc/Kconfig | 1 + 9 files changed, 16 insertions(+), 3 deletions(-) diff --git a/arch/Kconfig b/arch/Kconfig index 6c00e5b..19fcafd 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -867,4 +867,10 @@ config STRICT_MODULE_RWX config ARCH_WANT_RELAX_ORDER bool +config CPU_BIG_ENDIAN + bool + +config CPU_LITTLE_ENDIAN + def_bool !CPU_BIG_ENDIAN + source "kernel/gcov/Kconfig" diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig index eefd9a4..db258a4 100644 --- a/arch/frv/Kconfig +++ b/arch/frv/Kconfig @@ -16,6 +16,7 @@ config FRV select OLD_SIGACTION select HAVE_DEBUG_STACKOVERFLOW select ARCH_NO_COHERENT_DMA_MMAP + select CPU_BIG_ENDIAN config ZONE_DMA bool diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig index 3ae8525..22ebf28 100644 --- a/arch/h8300/Kconfig +++ b/arch/h8300/Kconfig @@ -22,6 +22,7 @@ config H8300 select HAVE_ARCH_KGDB select HAVE_ARCH_HASH select CPU_NO_EFFICIENT_FFS + select CPU_BIG_ENDIAN config RWSEM_GENERIC_SPINLOCK def_bool y diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig index 9547446..d57e37b 100644 --- a/arch/m32r/Kconfig +++ b/arch/m32r/Kconfig @@ -193,9 +193,9 @@ config TIMER_DIVIDE int "Timer divider (integer)" default "128" -config CPU_LITTLE_ENDIAN - bool "Generate little endian code" - default n +config CPU_BIG_ENDIAN + bool "Generate big endian code" + default y config MEMORY_START hex "Physical memory start address (hex)" diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index d140206..b44579b 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig @@ -22,6 +22,7 @@ config M68K select MODULES_USE_ELF_RELA select OLD_SIGSUSPEND3 select OLD_SIGACTION + select CPU_BIG_ENDIAN config RWSEM_GENERIC_SPINLOCK bool diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig index 1e95920..d772983 100644 --- a/arch/openrisc/Kconfig +++ b/arch/openrisc/Kconfig @@ -28,6 +28,7 @@ config OPENRISC select OR1K_PIC select CPU_NO_EFFICIENT_FFS if !OPENRISC_HAVE_INST_FF1 select NO_BOOTMEM + select CPU_BIG_ENDIAN config MMU def_bool y diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index 531da9e..7a8ec28 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig @@ -40,6 +40,7 @@ config PARISC select GENERIC_CLOCKEVENTS select ARCH_NO_COHERENT_DMA_MMAP select CPU_NO_EFFICIENT_FFS + select CPU_BIG_ENDIAN help The PA-RISC microprocessor is designed by Hewlett-Packard and used diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index e161faf..169e50b 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -177,6 +177,7 @@ config S390 select ARCH_HAS_SCALED_CPUTIME select VIRT_TO_BUS select HAVE_NMI + select CPU_BIG_ENDIAN config SCHED_OMIT_FRAME_POINTER diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index c5b5a7b..7a28e8a 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig @@ -45,6 +45,7 @@ config SPARC select CPU_NO_EFFICIENT_FFS select LOCKDEP_SMALL if LOCKDEP select ARCH_WANT_RELAX_ORDER + select CPU_BIG_ENDIAN config SPARC32 def_bool !64BIT