All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] powerpc/boot: Fix serial output in boot wrapper
@ 2018-10-09 23:28 Joel Stanley
  2018-10-09 23:28 ` [PATCH 1/2] powerpc/boot: Expose Kconfig symbols to wrapper Joel Stanley
  2018-10-09 23:28 ` [PATCH 2/2] powerpc/boot: Fix opal console in boot wrapper Joel Stanley
  0 siblings, 2 replies; 7+ messages in thread
From: Joel Stanley @ 2018-10-09 23:28 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Oliver O'Halloran

While doing some work on the wrapper I noticed we no longer get serial
output on a powernv system. This is because we compile out the opal
code.

As it turns out, none of the system-specific serial outputs will be
compiled in. This series fixes that. Tested on Qemu powernv, Romulus and
Palmetto.

Joel Stanley (2):
  powerpc/boot: Expose Kconfig symbols to wrapper
  powerpc/boot: Fix opal console in boot wrapper

 arch/powerpc/boot/.gitignore | 1 +
 arch/powerpc/boot/Makefile   | 7 ++++++-
 arch/powerpc/boot/opal.c     | 8 --------
 arch/powerpc/boot/serial.c   | 1 +
 4 files changed, 8 insertions(+), 9 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/2] powerpc/boot: Expose Kconfig symbols to wrapper
  2018-10-09 23:28 [PATCH 0/2] powerpc/boot: Fix serial output in boot wrapper Joel Stanley
@ 2018-10-09 23:28 ` Joel Stanley
  2018-10-10 12:28   ` Michael Ellerman
  2018-10-15  4:01   ` [1/2] " Michael Ellerman
  2018-10-09 23:28 ` [PATCH 2/2] powerpc/boot: Fix opal console in boot wrapper Joel Stanley
  1 sibling, 2 replies; 7+ messages in thread
From: Joel Stanley @ 2018-10-09 23:28 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Oliver O'Halloran

Currently the wrapper is built without including anything in
$(src)/include/, which means there are no CONFIG_ symbols defined. This
means the platform specific serial drivers were never enabled.

We now copy the definitions into the boot directory, so any C file can
now include autoconf.h to depend on configuration options.

Fixes: 866bfc75f40e ("powerpc: conditionally compile platform-specific serial drivers")
Signed-off-by: Joel Stanley <joel@jms.id.au>
---
 arch/powerpc/boot/.gitignore | 1 +
 arch/powerpc/boot/Makefile   | 7 ++++++-
 arch/powerpc/boot/serial.c   | 1 +
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/boot/.gitignore b/arch/powerpc/boot/.gitignore
index f92d0530ceb1..32034a0cc554 100644
--- a/arch/powerpc/boot/.gitignore
+++ b/arch/powerpc/boot/.gitignore
@@ -44,4 +44,5 @@ fdt_sw.c
 fdt_wip.c
 libfdt.h
 libfdt_internal.h
+autoconf.h
 
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 0fb96c26136f..eeed74e0dfca 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -197,9 +197,14 @@ $(obj)/empty.c:
 $(obj)/zImage.coff.lds $(obj)/zImage.ps3.lds : $(obj)/%: $(srctree)/$(src)/%.S
 	$(Q)cp $< $@
 
+$(obj)/serial.c: $(obj)/autoconf.h
+
+$(obj)/autoconf.h: $(obj)/%: $(srctree)/include/generated/%
+	$(Q)cp $< $@
+
 clean-files := $(zlib-) $(zlibheader-) $(zliblinuxheader-) \
 		$(zlib-decomp-) $(libfdt) $(libfdtheader) \
-		empty.c zImage.coff.lds zImage.ps3.lds zImage.lds
+		autoconf.h empty.c zImage.coff.lds zImage.ps3.lds zImage.lds
 
 quiet_cmd_bootcc = BOOTCC  $@
       cmd_bootcc = $(BOOTCC) -Wp,-MD,$(depfile) $(BOOTCFLAGS) -c -o $@ $<
diff --git a/arch/powerpc/boot/serial.c b/arch/powerpc/boot/serial.c
index 48e3743faedf..f045f8494bf9 100644
--- a/arch/powerpc/boot/serial.c
+++ b/arch/powerpc/boot/serial.c
@@ -18,6 +18,7 @@
 #include "stdio.h"
 #include "io.h"
 #include "ops.h"
+#include "autoconf.h"
 
 static int serial_open(void)
 {
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/2] powerpc/boot: Fix opal console in boot wrapper
  2018-10-09 23:28 [PATCH 0/2] powerpc/boot: Fix serial output in boot wrapper Joel Stanley
  2018-10-09 23:28 ` [PATCH 1/2] powerpc/boot: Expose Kconfig symbols to wrapper Joel Stanley
@ 2018-10-09 23:28 ` Joel Stanley
  1 sibling, 0 replies; 7+ messages in thread
From: Joel Stanley @ 2018-10-09 23:28 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Oliver O'Halloran

As of commit 10c77dba40ff ("powerpc/boot: Fix build failure in 32-bit
boot wrapper") the opal code is hidden behind CONFIG_PPC64_BOOT_WRAPPER,
but the boot wrapper avoids include/linux, so it does not get the normal
Kconfig flags.

We can drop the guard entirely as in commit f8e8e69cea49 ("powerpc/boot:
Only build OPAL code when necessary") the makefile only includes opal.c
in the build if CONFIG_PPC64_BOOT_WRAPPER is set.

Fixes: 10c77dba40ff ("powerpc/boot: Fix build failure in 32-bit boot wrapper")
Signed-off-by: Joel Stanley <joel@jms.id.au>
---
I wrote this patch before the kconfig one. We could use autoconf.h, or
fold this in, but I think the clean up of the redundant ifdef is cleaner.

 arch/powerpc/boot/opal.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/arch/powerpc/boot/opal.c b/arch/powerpc/boot/opal.c
index 0272570d02de..dfb199ef5b94 100644
--- a/arch/powerpc/boot/opal.c
+++ b/arch/powerpc/boot/opal.c
@@ -13,8 +13,6 @@
 #include <libfdt.h>
 #include "../include/asm/opal-api.h"
 
-#ifdef CONFIG_PPC64_BOOT_WRAPPER
-
 /* Global OPAL struct used by opal-call.S */
 struct opal {
 	u64 base;
@@ -101,9 +99,3 @@ int opal_console_init(void *devp, struct serial_console_data *scdp)
 
 	return 0;
 }
-#else
-int opal_console_init(void *devp, struct serial_console_data *scdp)
-{
-	return -1;
-}
-#endif /* __powerpc64__ */
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] powerpc/boot: Expose Kconfig symbols to wrapper
  2018-10-09 23:28 ` [PATCH 1/2] powerpc/boot: Expose Kconfig symbols to wrapper Joel Stanley
@ 2018-10-10 12:28   ` Michael Ellerman
  2018-10-11  0:02     ` Michael Ellerman
  2018-10-15  4:01   ` [1/2] " Michael Ellerman
  1 sibling, 1 reply; 7+ messages in thread
From: Michael Ellerman @ 2018-10-10 12:28 UTC (permalink / raw)
  To: Joel Stanley, linuxppc-dev; +Cc: Oliver O'Halloran

Joel Stanley <joel@jms.id.au> writes:
> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> index 0fb96c26136f..eeed74e0dfca 100644
> --- a/arch/powerpc/boot/Makefile
> +++ b/arch/powerpc/boot/Makefile
> @@ -197,9 +197,14 @@ $(obj)/empty.c:
>  $(obj)/zImage.coff.lds $(obj)/zImage.ps3.lds : $(obj)/%: $(srctree)/$(src)/%.S
>  	$(Q)cp $< $@
>  
> +$(obj)/serial.c: $(obj)/autoconf.h
> +
> +$(obj)/autoconf.h: $(obj)/%: $(srctree)/include/generated/%
> +	$(Q)cp $< $@
> +

This gives me:
  make[2]: *** No rule to make target '../include/generated/autoconf.h', needed by 'arch/powerpc/boot/autoconf.h'.  Stop.

The ../ is $(srctree).

cheers

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] powerpc/boot: Expose Kconfig symbols to wrapper
  2018-10-10 12:28   ` Michael Ellerman
@ 2018-10-11  0:02     ` Michael Ellerman
  2018-10-11  0:06       ` Joel Stanley
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Ellerman @ 2018-10-11  0:02 UTC (permalink / raw)
  To: Joel Stanley, linuxppc-dev; +Cc: Oliver O'Halloran

Michael Ellerman <mpe@ellerman.id.au> writes:
> Joel Stanley <joel@jms.id.au> writes:
>> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
>> index 0fb96c26136f..eeed74e0dfca 100644
>> --- a/arch/powerpc/boot/Makefile
>> +++ b/arch/powerpc/boot/Makefile
>> @@ -197,9 +197,14 @@ $(obj)/empty.c:
>>  $(obj)/zImage.coff.lds $(obj)/zImage.ps3.lds : $(obj)/%: $(srctree)/$(src)/%.S
>>  	$(Q)cp $< $@
>>  
>> +$(obj)/serial.c: $(obj)/autoconf.h
>> +
>> +$(obj)/autoconf.h: $(obj)/%: $(srctree)/include/generated/%
>> +	$(Q)cp $< $@
>> +
>
> This gives me:
>   make[2]: *** No rule to make target '../include/generated/autoconf.h', needed by 'arch/powerpc/boot/autoconf.h'.  Stop.
>
> The ../ is $(srctree).

Seems autoconf.h is in objtree:

  ~/linux$ make O=build prepare
  ...
  ~/linux$ find . -name autoconf.h
  ./drivers/staging/rtl8723bs/include/autoconf.h
  ./tools/testing/radix-tree/generated/autoconf.h
  ./build/include/generated/autoconf.h


So I'll fix that up.

cheers

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/2] powerpc/boot: Expose Kconfig symbols to wrapper
  2018-10-11  0:02     ` Michael Ellerman
@ 2018-10-11  0:06       ` Joel Stanley
  0 siblings, 0 replies; 7+ messages in thread
From: Joel Stanley @ 2018-10-11  0:06 UTC (permalink / raw)
  To: Michael Ellerman; +Cc: Oliver O'Halloran, linuxppc-dev

On Thu, 11 Oct 2018 at 10:32, Michael Ellerman <mpe@ellerman.id.au> wrote:
>
> Michael Ellerman <mpe@ellerman.id.au> writes:
> > Joel Stanley <joel@jms.id.au> writes:
> >> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> >> index 0fb96c26136f..eeed74e0dfca 100644
> >> --- a/arch/powerpc/boot/Makefile
> >> +++ b/arch/powerpc/boot/Makefile
> >> @@ -197,9 +197,14 @@ $(obj)/empty.c:
> >>  $(obj)/zImage.coff.lds $(obj)/zImage.ps3.lds : $(obj)/%: $(srctree)/$(src)/%.S
> >>      $(Q)cp $< $@
> >>
> >> +$(obj)/serial.c: $(obj)/autoconf.h
> >> +
> >> +$(obj)/autoconf.h: $(obj)/%: $(srctree)/include/generated/%
> >> +    $(Q)cp $< $@
> >> +
> >
> > This gives me:
> >   make[2]: *** No rule to make target '../include/generated/autoconf.h', needed by 'arch/powerpc/boot/autoconf.h'.  Stop.
> >
> > The ../ is $(srctree).
>
> Seems autoconf.h is in objtree:
>
>   ~/linux$ make O=build prepare
>   ...
>   ~/linux$ find . -name autoconf.h
>   ./drivers/staging/rtl8723bs/include/autoconf.h
>   ./tools/testing/radix-tree/generated/autoconf.h
>   ./build/include/generated/autoconf.h

Ah. That's obvious now that you point it out. Obviously myself and
0day do in-tree builds.

> So I'll fix that up.

Thanks!

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [1/2] powerpc/boot: Expose Kconfig symbols to wrapper
  2018-10-09 23:28 ` [PATCH 1/2] powerpc/boot: Expose Kconfig symbols to wrapper Joel Stanley
  2018-10-10 12:28   ` Michael Ellerman
@ 2018-10-15  4:01   ` Michael Ellerman
  1 sibling, 0 replies; 7+ messages in thread
From: Michael Ellerman @ 2018-10-15  4:01 UTC (permalink / raw)
  To: Joel Stanley, linuxppc-dev; +Cc: Oliver O'Halloran

On Tue, 2018-10-09 at 23:28:02 UTC, Joel Stanley wrote:
> Currently the wrapper is built without including anything in
> $(src)/include/, which means there are no CONFIG_ symbols defined. This
> means the platform specific serial drivers were never enabled.
> 
> We now copy the definitions into the boot directory, so any C file can
> now include autoconf.h to depend on configuration options.
> 
> Fixes: 866bfc75f40e ("powerpc: conditionally compile platform-specific serial drivers")
> Signed-off-by: Joel Stanley <joel@jms.id.au>

Series applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/5e9dcb6188a40e604e66dc30fab30c

cheers

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-10-15  4:35 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-09 23:28 [PATCH 0/2] powerpc/boot: Fix serial output in boot wrapper Joel Stanley
2018-10-09 23:28 ` [PATCH 1/2] powerpc/boot: Expose Kconfig symbols to wrapper Joel Stanley
2018-10-10 12:28   ` Michael Ellerman
2018-10-11  0:02     ` Michael Ellerman
2018-10-11  0:06       ` Joel Stanley
2018-10-15  4:01   ` [1/2] " Michael Ellerman
2018-10-09 23:28 ` [PATCH 2/2] powerpc/boot: Fix opal console in boot wrapper Joel Stanley

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.