arm64: Kconfig: add a choice for endianess

Message ID 20191112160144.8357-1-anders.roxell@linaro.org
State New
Headers show
Series
  • arm64: Kconfig: add a choice for endianess
Related show

Commit Message

Anders Roxell Nov. 12, 2019, 4:01 p.m.
When building allmodconfig KCONFIG_ALLCONFIG=$(pwd)/arch/arm64/configs/defconfig
CONFIG_CPU_BIG_ENDIAN gets enabled. Which tends not to be what most
people wants. Another concern that thas come up is that ACPI in't built
for an allmodconfig kernel today since that also depends on !CPU_BIG_ENDIAN.

Rework so that we introduce a 'choice' and default the choice to
CPU_LITTLE_ENDIAN. That means that when we build an allmodconfig kernel
it will default to CPU_LITTLE_ENDIAN that most people tends to want.

Signed-off-by: Anders Roxell <anders.roxell@linaro.org>

---
 arch/arm64/Kconfig | 13 +++++++++++++
 1 file changed, 13 insertions(+)

-- 
2.20.1

Comments

John Garry Nov. 12, 2019, 4:24 p.m. | #1
On 12/11/2019 16:01, Anders Roxell wrote:
> When building allmodconfig KCONFIG_ALLCONFIG=$(pwd)/arch/arm64/configs/defconfig

> CONFIG_CPU_BIG_ENDIAN gets enabled. Which tends not to be what most

> people wants. Another concern that thas come up is that ACPI in't built


/s/wants/want/, s/thas/has/, s/in't/isn't/

> for an allmodconfig kernel today since that also depends on !CPU_BIG_ENDIAN.

> 

> Rework so that we introduce a 'choice' and default the choice to

> CPU_LITTLE_ENDIAN. That means that when we build an allmodconfig kernel

> it will default to CPU_LITTLE_ENDIAN that most people tends to want.

> 

> Signed-off-by: Anders Roxell <anders.roxell@linaro.org>


FWIW, apart from spelling mistakes:

Reviewed-by: John Garry <john.garry@huawei.com>


> ---

>   arch/arm64/Kconfig | 13 +++++++++++++

>   1 file changed, 13 insertions(+)

> 

> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig

> index 64764ca92fca..62f83c234a61 100644

> --- a/arch/arm64/Kconfig

> +++ b/arch/arm64/Kconfig

> @@ -877,11 +877,24 @@ config ARM64_PA_BITS

>   	default 48 if ARM64_PA_BITS_48

>   	default 52 if ARM64_PA_BITS_52

>   

> +choice

> +	prompt "Endianess"


Should this be "Endianness"?

> +	default CPU_LITTLE_ENDIAN

> +	help

> +	  Choose what mode you plan on running your kernel in.

> +

>   config CPU_BIG_ENDIAN

>          bool "Build big-endian kernel"

>          help

>            Say Y if you plan on running a kernel in big-endian mode.

>   

> +config CPU_LITTLE_ENDIAN

> +	bool "Build little-endian kernel"

> +	help

> +	  Say Y if you plan on running a kernel in little-endian mode.

> +

> +endchoice

> +

>   config SCHED_MC

>   	bool "Multi-core scheduler support"

>   	help

>
Will Deacon Nov. 12, 2019, 5:27 p.m. | #2
On Tue, Nov 12, 2019 at 04:24:31PM +0000, John Garry wrote:
> On 12/11/2019 16:01, Anders Roxell wrote:

> > When building allmodconfig KCONFIG_ALLCONFIG=$(pwd)/arch/arm64/configs/defconfig

> > CONFIG_CPU_BIG_ENDIAN gets enabled. Which tends not to be what most

> > people wants. Another concern that thas come up is that ACPI in't built

> 

> /s/wants/want/, s/thas/has/, s/in't/isn't/

> 

> > for an allmodconfig kernel today since that also depends on !CPU_BIG_ENDIAN.

> > 

> > Rework so that we introduce a 'choice' and default the choice to

> > CPU_LITTLE_ENDIAN. That means that when we build an allmodconfig kernel

> > it will default to CPU_LITTLE_ENDIAN that most people tends to want.

> > 

> > Signed-off-by: Anders Roxell <anders.roxell@linaro.org>

> 

> FWIW, apart from spelling mistakes:

> 

> Reviewed-by: John Garry <john.garry@huawei.com>

> 

> > ---

> >   arch/arm64/Kconfig | 13 +++++++++++++

> >   1 file changed, 13 insertions(+)

> > 

> > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig

> > index 64764ca92fca..62f83c234a61 100644

> > --- a/arch/arm64/Kconfig

> > +++ b/arch/arm64/Kconfig

> > @@ -877,11 +877,24 @@ config ARM64_PA_BITS

> >   	default 48 if ARM64_PA_BITS_48

> >   	default 52 if ARM64_PA_BITS_52

> > +choice

> > +	prompt "Endianess"

> 

> Should this be "Endianness"?

> 

> > +	default CPU_LITTLE_ENDIAN

> > +	help

> > +	  Choose what mode you plan on running your kernel in.


While we're at it, I'd avoid the use of "mode" here since that has a
different meaning in the architecture, although I see we already use that
terminology for CPU_BIG_ENDIAN. How about:

  "Select the endianness of data accesses performed by the CPU. Userspace
   applications will need to be compiled and linked for the endianness
   that is selected here.

   Little-endian is compatible with x86, but big-endian is faster."

(ok, maybe drop that last sentence ;)

> >   config CPU_BIG_ENDIAN

> >          bool "Build big-endian kernel"

> >          help

> >            Say Y if you plan on running a kernel in big-endian mode.


Then this can be:

  "Say Y if you plan on running a kernel with a big-endian userspace."

> > +config CPU_LITTLE_ENDIAN

> > +	bool "Build little-endian kernel"

> > +	help

> > +	  Say Y if you plan on running a kernel in little-endian mode.



  "Say Y if you plan on running a kernel with a little-endian userspace.
   This is usually the case for distributions targetting arm64."

I think it's userspace that people really care about, so wording it in
terms of that makes most sense to me.

Will

Patch

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 64764ca92fca..62f83c234a61 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -877,11 +877,24 @@  config ARM64_PA_BITS
 	default 48 if ARM64_PA_BITS_48
 	default 52 if ARM64_PA_BITS_52
 
+choice
+	prompt "Endianess"
+	default CPU_LITTLE_ENDIAN
+	help
+	  Choose what mode you plan on running your kernel in.
+
 config CPU_BIG_ENDIAN
        bool "Build big-endian kernel"
        help
          Say Y if you plan on running a kernel in big-endian mode.
 
+config CPU_LITTLE_ENDIAN
+	bool "Build little-endian kernel"
+	help
+	  Say Y if you plan on running a kernel in little-endian mode.
+
+endchoice
+
 config SCHED_MC
 	bool "Multi-core scheduler support"
 	help