Re: [1/2] powerpc: Add ppc32_allmodconfig defconfig target

2018-07-24 Thread Michael Ellerman
On Mon, 2018-07-09 at 14:24:25 UTC, Michael Ellerman wrote:
> Because the allmodconfig logic just sets every symbol to M or Y, it
> has the effect of always generating a 64-bit config, because
> CONFIG_PPC64 becomes Y.
> 
> So to make it easier for folks to test 32-bit code, provide a phony
> defconfig target that generates a 32-bit allmodconfig.
> 
> The 32-bit port has several mutually exclusive CPU types, we choose
> the Book3S variants as that's what the help text in Kconfig says is
> most common.
> 
> Signed-off-by: Michael Ellerman 

Series applied to powerpc next.

https://git.kernel.org/powerpc/c/8db0c9d416f26018cb7cabfb0b144f

cheers


Re: [PATCH 1/2] powerpc: Add ppc32_allmodconfig defconfig target

2018-07-20 Thread Michael Ellerman
Randy Dunlap  writes:

> On 07/09/2018 07:24 AM, Michael Ellerman wrote:
>> Because the allmodconfig logic just sets every symbol to M or Y, it
>> has the effect of always generating a 64-bit config, because
>> CONFIG_PPC64 becomes Y.
>> 
>> So to make it easier for folks to test 32-bit code, provide a phony
>> defconfig target that generates a 32-bit allmodconfig.
>> 
>> The 32-bit port has several mutually exclusive CPU types, we choose
>> the Book3S variants as that's what the help text in Kconfig says is
>> most common.
>> 
>> Signed-off-by: Michael Ellerman 
>
> Hi Michael,
>
> ppc32_allmodconfig sets CONFIG_ISA=y (and other related symbols) and
> CONFIG_PPC_CHRP=y.  But my builds are failing because they are missing
> the functions isa_bus_to_virt() and isa_virt_to_bus().
>
> Any ideas?

It's old legacy cruft that we've never implemented :)

I don't know if it's possible to implement it for CHRP, Ben implied it
might be, back in 2009:

  https://lists.ozlabs.org/pipermail/linuxppc-dev/2009-June/073232.html

But of course nothing came of it.


It looks like there's only a handful of drivers left using them, we
should probably just mark them as not buildable on PPC.

Arnd did something similar for ARM in:
  e9b106b8fbdb ("net: lance,ni64: don't build for ARM")


cheers


Re: [PATCH 1/2] powerpc: Add ppc32_allmodconfig defconfig target

2018-07-20 Thread Michael Ellerman
Randy Dunlap  writes:

> On 07/09/2018 07:24 AM, Michael Ellerman wrote:
>> Because the allmodconfig logic just sets every symbol to M or Y, it
>> has the effect of always generating a 64-bit config, because
>> CONFIG_PPC64 becomes Y.
>> 
>> So to make it easier for folks to test 32-bit code, provide a phony
>> defconfig target that generates a 32-bit allmodconfig.
>> 
>> The 32-bit port has several mutually exclusive CPU types, we choose
>> the Book3S variants as that's what the help text in Kconfig says is
>> most com
>> Signed-off-by: Michael Ellerman 
>
> Hi Michael,
>
> Sorry for the delay.  I was traveling (out in the boonies).
>
> I'm trying to use 'make ppc32_allmodconfig'.  Cross-building on x86_64
> with crosstools from kernel.org.  (gcc 8.1.0)
>
> I'm getting build errors.  Looks like it's missing a header file or 3.
> I looked into that but it's a long and twisty maze of passages.
> Any ideas?

Urk.

That code was really written for 64-bit and we haven't ever quite made
it fully generic, as you can see.

Christophe got it working for 8xx (a different 32-bit variant), but
clearly it doesn't work for this config.

This might be the solution for now:

diff --git a/arch/powerpc/Kconfig.debug b/arch/powerpc/Kconfig.debug
index c45424c64e19..cb406d00702c 100644
--- a/arch/powerpc/Kconfig.debug
+++ b/arch/powerpc/Kconfig.debug
@@ -362,6 +362,7 @@ config FAIL_IOMMU
 config PPC_PTDUMP
 bool "Export kernel pagetable layout to userspace via debugfs"
 depends on DEBUG_KERNEL && DEBUG_FS
+depends on PPC64 || PPC_8xx
 help
  This option exports the state of the kernel pagetables to a
  debugfs file. This is only useful for kernel developers who are


cheers

>   CC  arch/powerpc/mm/dump_linuxpagetables.o
> In file included from ../arch/powerpc/include/asm/book3s/pgtable.h:8,
>  from ../arch/powerpc/include/asm/pgtable.h:18,
>  from ../include/linux/hugetlb.h:12,
>  from ../arch/powerpc/mm/dump_linuxpagetables.c:19:
> ../arch/powerpc/mm/dump_linuxpagetables.c: In function 'populate_markers':
> ../arch/powerpc/include/asm/book3s/32/pgtable.h:53:19: error: 'PKMAP_BASE' 
> undeclared (first use in this function); did you mean 'AT_BASE'?
>  #define KVIRT_TOP PKMAP_BASE
>^~
> ../arch/powerpc/include/asm/book3s/32/pgtable.h:64:23: note: in expansion of 
> macro 'KVIRT_TOP'
>  #define IOREMAP_TOP ((KVIRT_TOP - CONFIG_CONSISTENT_SIZE) & PAGE_MASK)
>^
> ../arch/powerpc/mm/dump_linuxpagetables.c:456:39: note: in expansion of macro 
> 'IOREMAP_TOP'
>   address_markers[i++].start_address = IOREMAP_TOP;
>^~~
> ../arch/powerpc/include/asm/book3s/32/pgtable.h:53:19: note: each undeclared 
> identifier is reported only once for each function it appears in
>  #define KVIRT_TOP PKMAP_BASE
>^~
> ../arch/powerpc/include/asm/book3s/32/pgtable.h:64:23: note: in expansion of 
> macro 'KVIRT_TOP'
>  #define IOREMAP_TOP ((KVIRT_TOP - CONFIG_CONSISTENT_SIZE) & PAGE_MASK)
>^
> ../arch/powerpc/mm/dump_linuxpagetables.c:456:39: note: in expansion of macro 
> 'IOREMAP_TOP'
>   address_markers[i++].start_address = IOREMAP_TOP;
>^~~
> ../arch/powerpc/mm/dump_linuxpagetables.c:464:39: error: implicit declaration 
> of function 'PKMAP_ADDR'; did you mean 'PCI_IO_ADDR'? 
> [-Werror=implicit-function-declaration]
>   address_markers[i++].start_address = PKMAP_ADDR(LAST_PKMAP);
>^~
>PCI_IO_ADDR
> ../arch/powerpc/mm/dump_linuxpagetables.c:464:50: error: 'LAST_PKMAP' 
> undeclared (first use in this function); did you mean 'LIST_HEAD'?
>   address_markers[i++].start_address = PKMAP_ADDR(LAST_PKMAP);
>   ^~
>   LIST_HEAD
>
>
>
> Thanks.
>
>> ---
>>  arch/powerpc/Makefile | 5 +
>>  arch/powerpc/configs/book3s_32.config | 2 ++
>>  2 files changed, 7 insertions(+)
>>  create mode 100644 arch/powerpc/configs/book3s_32.config
>> 
>> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
>> index 2ea575cb3401..2556c2182789 100644
>> --- a/arch/powerpc/Makefile
>> +++ b/arch/powerpc/Makefile
>> @@ -354,6 +354,11 @@ mpc86xx_smp_defconfig:
>>  $(call merge_into_defconfig,mpc86xx_basic_defconfig,\
>>  86xx-smp 86xx-hw fsl-emb-nonhw)
>>  
>> +PHONY += ppc32_allmodconfig
>> +ppc32_allmodconfig:
>> +$(Q)$(MAKE) 
>> KCONFIG_ALLCONFIG=$(srctree)/arch/powerpc/configs/book3s_32.config \
>> +-f $(srctree)/Makefile allmodconfig
>> +
>>  define archhelp
>>@echo '* zImage  - Build default images selected by kernel config'
>>@echo '  zImage.*- Compressed kernel image 
>> (arch/$(ARCH)/boot/zIm

Re: [PATCH 1/2] powerpc: Add ppc32_allmodconfig defconfig target

2018-07-13 Thread Randy Dunlap
On 07/09/2018 07:24 AM, Michael Ellerman wrote:
> Because the allmodconfig logic just sets every symbol to M or Y, it
> has the effect of always generating a 64-bit config, because
> CONFIG_PPC64 becomes Y.
> 
> So to make it easier for folks to test 32-bit code, provide a phony
> defconfig target that generates a 32-bit allmodconfig.
> 
> The 32-bit port has several mutually exclusive CPU types, we choose
> the Book3S variants as that's what the help text in Kconfig says is
> most common.
> 
> Signed-off-by: Michael Ellerman 

Hi Michael,

ppc32_allmodconfig sets CONFIG_ISA=y (and other related symbols) and
CONFIG_PPC_CHRP=y.  But my builds are failing because they are missing
the functions isa_bus_to_virt() and isa_virt_to_bus().

Any ideas?

Thanks.

> ---
>  arch/powerpc/Makefile | 5 +
>  arch/powerpc/configs/book3s_32.config | 2 ++
>  2 files changed, 7 insertions(+)
>  create mode 100644 arch/powerpc/configs/book3s_32.config
> 
> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> index 2ea575cb3401..2556c2182789 100644
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -354,6 +354,11 @@ mpc86xx_smp_defconfig:
>   $(call merge_into_defconfig,mpc86xx_basic_defconfig,\
>   86xx-smp 86xx-hw fsl-emb-nonhw)
>  
> +PHONY += ppc32_allmodconfig
> +ppc32_allmodconfig:
> + $(Q)$(MAKE) 
> KCONFIG_ALLCONFIG=$(srctree)/arch/powerpc/configs/book3s_32.config \
> + -f $(srctree)/Makefile allmodconfig
> +
>  define archhelp
>@echo '* zImage  - Build default images selected by kernel config'
>@echo '  zImage.*- Compressed kernel image 
> (arch/$(ARCH)/boot/zImage.*)'
> diff --git a/arch/powerpc/configs/book3s_32.config 
> b/arch/powerpc/configs/book3s_32.config
> new file mode 100644
> index ..8721eb7b1294
> --- /dev/null
> +++ b/arch/powerpc/configs/book3s_32.config
> @@ -0,0 +1,2 @@
> +CONFIG_PPC64=n
> +CONFIG_PPC_BOOK3S_32=y
> 


-- 
~Randy


Re: [PATCH 1/2] powerpc: Add ppc32_allmodconfig defconfig target

2018-07-13 Thread Randy Dunlap
On 07/09/2018 07:24 AM, Michael Ellerman wrote:
> Because the allmodconfig logic just sets every symbol to M or Y, it
> has the effect of always generating a 64-bit config, because
> CONFIG_PPC64 becomes Y.
> 
> So to make it easier for folks to test 32-bit code, provide a phony
> defconfig target that generates a 32-bit allmodconfig.
> 
> The 32-bit port has several mutually exclusive CPU types, we choose
> the Book3S variants as that's what the help text in Kconfig says is
> most com
> Signed-off-by: Michael Ellerman 

Hi Michael,

Sorry for the delay.  I was traveling (out in the boonies).

I'm trying to use 'make ppc32_allmodconfig'.  Cross-building on x86_64
with crosstools from kernel.org.  (gcc 8.1.0)

I'm getting build errors.  Looks like it's missing a header file or 3.
I looked into that but it's a long and twisty maze of passages.
Any ideas?


  CC  arch/powerpc/mm/dump_linuxpagetables.o
In file included from ../arch/powerpc/include/asm/book3s/pgtable.h:8,
 from ../arch/powerpc/include/asm/pgtable.h:18,
 from ../include/linux/hugetlb.h:12,
 from ../arch/powerpc/mm/dump_linuxpagetables.c:19:
../arch/powerpc/mm/dump_linuxpagetables.c: In function 'populate_markers':
../arch/powerpc/include/asm/book3s/32/pgtable.h:53:19: error: 'PKMAP_BASE' 
undeclared (first use in this function); did you mean 'AT_BASE'?
 #define KVIRT_TOP PKMAP_BASE
   ^~
../arch/powerpc/include/asm/book3s/32/pgtable.h:64:23: note: in expansion of 
macro 'KVIRT_TOP'
 #define IOREMAP_TOP ((KVIRT_TOP - CONFIG_CONSISTENT_SIZE) & PAGE_MASK)
   ^
../arch/powerpc/mm/dump_linuxpagetables.c:456:39: note: in expansion of macro 
'IOREMAP_TOP'
  address_markers[i++].start_address = IOREMAP_TOP;
   ^~~
../arch/powerpc/include/asm/book3s/32/pgtable.h:53:19: note: each undeclared 
identifier is reported only once for each function it appears in
 #define KVIRT_TOP PKMAP_BASE
   ^~
../arch/powerpc/include/asm/book3s/32/pgtable.h:64:23: note: in expansion of 
macro 'KVIRT_TOP'
 #define IOREMAP_TOP ((KVIRT_TOP - CONFIG_CONSISTENT_SIZE) & PAGE_MASK)
   ^
../arch/powerpc/mm/dump_linuxpagetables.c:456:39: note: in expansion of macro 
'IOREMAP_TOP'
  address_markers[i++].start_address = IOREMAP_TOP;
   ^~~
../arch/powerpc/mm/dump_linuxpagetables.c:464:39: error: implicit declaration 
of function 'PKMAP_ADDR'; did you mean 'PCI_IO_ADDR'? 
[-Werror=implicit-function-declaration]
  address_markers[i++].start_address = PKMAP_ADDR(LAST_PKMAP);
   ^~
   PCI_IO_ADDR
../arch/powerpc/mm/dump_linuxpagetables.c:464:50: error: 'LAST_PKMAP' 
undeclared (first use in this function); did you mean 'LIST_HEAD'?
  address_markers[i++].start_address = PKMAP_ADDR(LAST_PKMAP);
  ^~
  LIST_HEAD



Thanks.

> ---
>  arch/powerpc/Makefile | 5 +
>  arch/powerpc/configs/book3s_32.config | 2 ++
>  2 files changed, 7 insertions(+)
>  create mode 100644 arch/powerpc/configs/book3s_32.config
> 
> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> index 2ea575cb3401..2556c2182789 100644
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -354,6 +354,11 @@ mpc86xx_smp_defconfig:
>   $(call merge_into_defconfig,mpc86xx_basic_defconfig,\
>   86xx-smp 86xx-hw fsl-emb-nonhw)
>  
> +PHONY += ppc32_allmodconfig
> +ppc32_allmodconfig:
> + $(Q)$(MAKE) 
> KCONFIG_ALLCONFIG=$(srctree)/arch/powerpc/configs/book3s_32.config \
> + -f $(srctree)/Makefile allmodconfig
> +
>  define archhelp
>@echo '* zImage  - Build default images selected by kernel config'
>@echo '  zImage.*- Compressed kernel image 
> (arch/$(ARCH)/boot/zImage.*)'
> diff --git a/arch/powerpc/configs/book3s_32.config 
> b/arch/powerpc/configs/book3s_32.config
> new file mode 100644
> index ..8721eb7b1294
> --- /dev/null
> +++ b/arch/powerpc/configs/book3s_32.config
> @@ -0,0 +1,2 @@
> +CONFIG_PPC64=n
> +CONFIG_PPC_BOOK3S_32=y
> 


-- 
~Randy


Re: [PATCH 1/2] powerpc: Add ppc32_allmodconfig defconfig target

2018-07-11 Thread Michael Ellerman
Mathieu Malaterre  writes:
> On Tue, Jul 10, 2018 at 3:47 PM Michael Ellerman  wrote:
>> Mathieu Malaterre  writes:
>> > On Mon, Jul 9, 2018 at 4:24 PM Michael Ellerman  
>> > wrote:
>> >> Because the allmodconfig logic just sets every symbol to M or Y, it
>> >> has the effect of always generating a 64-bit config, because
>> >> CONFIG_PPC64 becomes Y.
>> >>
>> >> So to make it easier for folks to test 32-bit code, provide a phony
>> >> defconfig target that generates a 32-bit allmodconfig.
>> >>
>> >> The 32-bit port has several mutually exclusive CPU types, we choose
>> >> the Book3S variants as that's what the help text in Kconfig says is
>> >> most common.
>> >
>> > Ok then.
>>
>> That was just me taking a stab in the dark. You suggested we should
>> mimic the Debian config, what does that use?
>
> Sorry got confused for a minute. This is the correct value (at least
> the one used in Debian).

OK cool.

>> >> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
>> >> index 2ea575cb3401..2556c2182789 100644
>> >> --- a/arch/powerpc/Makefile
>> >> +++ b/arch/powerpc/Makefile
>> >> @@ -354,6 +354,11 @@ mpc86xx_smp_defconfig:
>> >> $(call merge_into_defconfig,mpc86xx_basic_defconfig,\
>> >> 86xx-smp 86xx-hw fsl-emb-nonhw)
>> >>
>> >> +PHONY += ppc32_allmodconfig
>> >> +ppc32_allmodconfig:
>> >> +   $(Q)$(MAKE) 
>> >> KCONFIG_ALLCONFIG=$(srctree)/arch/powerpc/configs/book3s_32.config \
>> >> +   -f $(srctree)/Makefile allmodconfig
>> >> +
>> >
>> > I this a good time to update line 34 at the same time:
>> >
>> > KBUILD_DEFCONFIG := $(shell uname -m)_defconfig
>> >
>> > ?
>>
>> 34 or 36?
>>
>>   ifeq ($(CROSS_COMPILE),)
>>   KBUILD_DEFCONFIG := $(shell uname -m)_defconfig
>>   else
>>   KBUILD_DEFCONFIG := ppc64_defconfig
>>   endif
>>
>> Do you mean the else case?
>
> As far as I know uname -m on powerpc returns 'ppc' so the following
> has always failed from a ppc32be machine:

Oh yep it does.

I've never built a kernel *on* a 32-bit machine ;)

> $ make ARCH=powerpc defconfig
>
> I was simply suggesting to mimic what was done for ppc64:
>
> ifeq ($(CROSS_COMPILE),)
> KBUILD_DEFCONFIG := ppc32_defconfig
> else
> KBUILD_DEFCONFIG := ppc64_defconfig
> endif

That wouldn't work, CROSS_COMPILE isn't a ppc/ppc64 thing.

In fact setting CROSS_COMPILE doesn't actually mean you're cross
compiling, it just means you're using a different toolchain. I do that
all the time, because I want to use a specific version of GCC, not the
distro one.


What about:

diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 2ea575c..e70d223 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -30,10 +30,13 @@ endif
 endif
 endif
 
-ifeq ($(CROSS_COMPILE),)
-KBUILD_DEFCONFIG := $(shell uname -m)_defconfig
+host_arch := $(shell uname -m)
+ifeq ($(host_arch),ppc)
+   KBUILD_DEFCONFIG := ppc32_defconfig
+else ifeq ($(host_arch),ppc64)
+   KBUILD_DEFCONFIG := ppc64_defconfig
 else
-KBUILD_DEFCONFIG := ppc64_defconfig
+   KBUILD_DEFCONFIG := ppc64le_defconfig
 endif
 
 ifeq ($(CONFIG_PPC64),y)


We obviously need a ppc32_defconfig to make that work.

> If I followed the discussion one would want the file `ppc32_defconfig`
> to contains pretty much the same thing as the .config generated from
> `book3s_32.config`, right ?

Can you boot the resulting kernel if you build ppc32_allmodconfig ?

Maybe we should just make that be ppc32_defconfig.

cheers


Re: [PATCH 1/2] powerpc: Add ppc32_allmodconfig defconfig target

2018-07-11 Thread Mathieu Malaterre
On Tue, Jul 10, 2018 at 3:47 PM Michael Ellerman  wrote:
>
> Mathieu Malaterre  writes:
> > On Mon, Jul 9, 2018 at 4:24 PM Michael Ellerman  wrote:
> >>
> >> Because the allmodconfig logic just sets every symbol to M or Y, it
> >> has the effect of always generating a 64-bit config, because
> >> CONFIG_PPC64 becomes Y.
> >>
> >> So to make it easier for folks to test 32-bit code, provide a phony
> >> defconfig target that generates a 32-bit allmodconfig.
> >>
> >> The 32-bit port has several mutually exclusive CPU types, we choose
> >> the Book3S variants as that's what the help text in Kconfig says is
> >> most common.
> >
> > Ok then.
>
> That was just me taking a stab in the dark. You suggested we should
> mimic the Debian config, what does that use?

Sorry got confused for a minute. This is the correct value (at least
the one used in Debian).

> >> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> >> index 2ea575cb3401..2556c2182789 100644
> >> --- a/arch/powerpc/Makefile
> >> +++ b/arch/powerpc/Makefile
> >> @@ -354,6 +354,11 @@ mpc86xx_smp_defconfig:
> >> $(call merge_into_defconfig,mpc86xx_basic_defconfig,\
> >> 86xx-smp 86xx-hw fsl-emb-nonhw)
> >>
> >> +PHONY += ppc32_allmodconfig
> >> +ppc32_allmodconfig:
> >> +   $(Q)$(MAKE) 
> >> KCONFIG_ALLCONFIG=$(srctree)/arch/powerpc/configs/book3s_32.config \
> >> +   -f $(srctree)/Makefile allmodconfig
> >> +
> >
> > I this a good time to update line 34 at the same time:
> >
> > KBUILD_DEFCONFIG := $(shell uname -m)_defconfig
> >
> > ?
>
> 34 or 36?
>
>   ifeq ($(CROSS_COMPILE),)
>   KBUILD_DEFCONFIG := $(shell uname -m)_defconfig
>   else
>   KBUILD_DEFCONFIG := ppc64_defconfig
>   endif
>
> Do you mean the else case?

As far as I know uname -m on powerpc returns 'ppc' so the following
has always failed from a ppc32be machine:

$ make ARCH=powerpc defconfig

I was simply suggesting to mimic what was done for ppc64:

ifeq ($(CROSS_COMPILE),)
KBUILD_DEFCONFIG := ppc32_defconfig
else
KBUILD_DEFCONFIG := ppc64_defconfig
endif

If I followed the discussion one would want the file `ppc32_defconfig`
to contains pretty much the same thing as the .config generated from
`book3s_32.config`, right ?

> cheers


Re: [PATCH 1/2] powerpc: Add ppc32_allmodconfig defconfig target

2018-07-10 Thread Michael Ellerman
Mathieu Malaterre  writes:
> On Mon, Jul 9, 2018 at 4:24 PM Michael Ellerman  wrote:
>>
>> Because the allmodconfig logic just sets every symbol to M or Y, it
>> has the effect of always generating a 64-bit config, because
>> CONFIG_PPC64 becomes Y.
>>
>> So to make it easier for folks to test 32-bit code, provide a phony
>> defconfig target that generates a 32-bit allmodconfig.
>>
>> The 32-bit port has several mutually exclusive CPU types, we choose
>> the Book3S variants as that's what the help text in Kconfig says is
>> most common.
>
> Ok then.

That was just me taking a stab in the dark. You suggested we should
mimic the Debian config, what does that use?

>> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
>> index 2ea575cb3401..2556c2182789 100644
>> --- a/arch/powerpc/Makefile
>> +++ b/arch/powerpc/Makefile
>> @@ -354,6 +354,11 @@ mpc86xx_smp_defconfig:
>> $(call merge_into_defconfig,mpc86xx_basic_defconfig,\
>> 86xx-smp 86xx-hw fsl-emb-nonhw)
>>
>> +PHONY += ppc32_allmodconfig
>> +ppc32_allmodconfig:
>> +   $(Q)$(MAKE) 
>> KCONFIG_ALLCONFIG=$(srctree)/arch/powerpc/configs/book3s_32.config \
>> +   -f $(srctree)/Makefile allmodconfig
>> +
>
> I this a good time to update line 34 at the same time:
>
> KBUILD_DEFCONFIG := $(shell uname -m)_defconfig
>
> ?

34 or 36?

  ifeq ($(CROSS_COMPILE),)
  KBUILD_DEFCONFIG := $(shell uname -m)_defconfig
  else
  KBUILD_DEFCONFIG := ppc64_defconfig
  endif

Do you mean the else case?

cheers


Re: [PATCH 1/2] powerpc: Add ppc32_allmodconfig defconfig target

2018-07-10 Thread Mathieu Malaterre
On Mon, Jul 9, 2018 at 4:24 PM Michael Ellerman  wrote:
>
> Because the allmodconfig logic just sets every symbol to M or Y, it
> has the effect of always generating a 64-bit config, because
> CONFIG_PPC64 becomes Y.
>
> So to make it easier for folks to test 32-bit code, provide a phony
> defconfig target that generates a 32-bit allmodconfig.
>
> The 32-bit port has several mutually exclusive CPU types, we choose
> the Book3S variants as that's what the help text in Kconfig says is
> most common.

Ok then.

> Signed-off-by: Michael Ellerman 
> ---
>  arch/powerpc/Makefile | 5 +
>  arch/powerpc/configs/book3s_32.config | 2 ++
>  2 files changed, 7 insertions(+)
>  create mode 100644 arch/powerpc/configs/book3s_32.config
>
> diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
> index 2ea575cb3401..2556c2182789 100644
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -354,6 +354,11 @@ mpc86xx_smp_defconfig:
> $(call merge_into_defconfig,mpc86xx_basic_defconfig,\
> 86xx-smp 86xx-hw fsl-emb-nonhw)
>
> +PHONY += ppc32_allmodconfig
> +ppc32_allmodconfig:
> +   $(Q)$(MAKE) 
> KCONFIG_ALLCONFIG=$(srctree)/arch/powerpc/configs/book3s_32.config \
> +   -f $(srctree)/Makefile allmodconfig
> +

I this a good time to update line 34 at the same time:

KBUILD_DEFCONFIG := $(shell uname -m)_defconfig

?

>  define archhelp
>@echo '* zImage  - Build default images selected by kernel config'
>@echo '  zImage.*- Compressed kernel image 
> (arch/$(ARCH)/boot/zImage.*)'
> diff --git a/arch/powerpc/configs/book3s_32.config 
> b/arch/powerpc/configs/book3s_32.config
> new file mode 100644
> index ..8721eb7b1294
> --- /dev/null
> +++ b/arch/powerpc/configs/book3s_32.config
> @@ -0,0 +1,2 @@
> +CONFIG_PPC64=n
> +CONFIG_PPC_BOOK3S_32=y
> --
> 2.14.1
>


[PATCH 1/2] powerpc: Add ppc32_allmodconfig defconfig target

2018-07-09 Thread Michael Ellerman
Because the allmodconfig logic just sets every symbol to M or Y, it
has the effect of always generating a 64-bit config, because
CONFIG_PPC64 becomes Y.

So to make it easier for folks to test 32-bit code, provide a phony
defconfig target that generates a 32-bit allmodconfig.

The 32-bit port has several mutually exclusive CPU types, we choose
the Book3S variants as that's what the help text in Kconfig says is
most common.

Signed-off-by: Michael Ellerman 
---
 arch/powerpc/Makefile | 5 +
 arch/powerpc/configs/book3s_32.config | 2 ++
 2 files changed, 7 insertions(+)
 create mode 100644 arch/powerpc/configs/book3s_32.config

diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 2ea575cb3401..2556c2182789 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -354,6 +354,11 @@ mpc86xx_smp_defconfig:
$(call merge_into_defconfig,mpc86xx_basic_defconfig,\
86xx-smp 86xx-hw fsl-emb-nonhw)
 
+PHONY += ppc32_allmodconfig
+ppc32_allmodconfig:
+   $(Q)$(MAKE) 
KCONFIG_ALLCONFIG=$(srctree)/arch/powerpc/configs/book3s_32.config \
+   -f $(srctree)/Makefile allmodconfig
+
 define archhelp
   @echo '* zImage  - Build default images selected by kernel config'
   @echo '  zImage.*- Compressed kernel image 
(arch/$(ARCH)/boot/zImage.*)'
diff --git a/arch/powerpc/configs/book3s_32.config 
b/arch/powerpc/configs/book3s_32.config
new file mode 100644
index ..8721eb7b1294
--- /dev/null
+++ b/arch/powerpc/configs/book3s_32.config
@@ -0,0 +1,2 @@
+CONFIG_PPC64=n
+CONFIG_PPC_BOOK3S_32=y
-- 
2.14.1