[PATCH] powerpc: Add Marvell mv64x60 udbg putc/getc functions

Dale Farnsworth dale at farnsworth.org
Thu Jun 7 03:29:01 EST 2007


On Wed, Jun 06, 2007 at 04:06:05PM +1000, Paul Mackerras wrote:
> Dale Farnsworth writes:
> 
> > Paul, this patch is unchanged from the one I posted 10 days ago.
> > At that time, I saw no discussion, other than Mark's ACK.  I'd 
> > argue that this is a bugfix, and hope that it could go into 2.6.22.
> 
> Um, it seems rather large, and in particular adds a fair bit of
> completely new code.  Is there a simpler way of getting to an
> acceptable point - e.g. just not use the udbg console on these boards?

Yeah, that was the first approach I took.  Unfortunately, currently the
udbg console is included unconditionally on arch/powerpc.  I created the
patch below to conditionalize the use of udbg console.  I thought it a
bit risky for 2.6.22, but I think it's the right approach long term.

> If we don't have udbg support for them then the udbg console would
> seem a bit pointless, no?

There is value in that with the udbg console we do see console output
much earlier.  While there's some new code (I didn't think it was all
that much), the impact is limited to the single platform now using the
mv64x60 console port, the prpmc2800.

-Dale

---------------- begin patch ------------------------
[POWERPC] Make the use of the udbg console conditional

Create a new config variable: PPC_UDBG and make the inclusion
of the udbg console dependent on it.

Signed-off-by: Dale Farnsworth <dale at farnsworth.org>
---
 arch/powerpc/Kconfig                    |    4 ++++
 arch/powerpc/Kconfig.debug              |    1 +
 arch/powerpc/kernel/Makefile            |    3 ++-
 arch/powerpc/platforms/Kconfig          |    2 ++
 arch/powerpc/platforms/iseries/Kconfig  |    1 +
 arch/powerpc/platforms/powermac/Kconfig |    1 +
 include/asm-powerpc/udbg.h              |    9 +++++++++
 7 files changed, 20 insertions(+), 1 deletion(-)

Index: linux-2.6-powerpc-df/arch/powerpc/Kconfig
===================================================================
--- linux-2.6-powerpc-df.orig/arch/powerpc/Kconfig
+++ linux-2.6-powerpc-df/arch/powerpc/Kconfig
@@ -99,9 +99,13 @@ config ARCH_MAY_HAVE_PC_FDC
 config PPC_OF
 	def_bool y
 
+config PPC_UDBG
+	bool
+
 config PPC_UDBG_16550
 	bool
+	select PPC_UDBG
 	default n
 
 config GENERIC_TBSYNC
 	bool
Index: linux-2.6-powerpc-df/arch/powerpc/Kconfig.debug
===================================================================
--- linux-2.6-powerpc-df.orig/arch/powerpc/Kconfig.debug
+++ linux-2.6-powerpc-df/arch/powerpc/Kconfig.debug
@@ -135,6 +135,7 @@ config BDI_SWITCH
 config BOOTX_TEXT
 	bool "Support for early boot text console (BootX or OpenFirmware only)"
 	depends PPC_OF
+	select PPC_UDBG
 	help
 	  Say Y here to see progress messages from the boot firmware in text
 	  mode. Requires either BootX or Open Firmware.
Index: linux-2.6-powerpc-df/arch/powerpc/kernel/Makefile
===================================================================
--- linux-2.6-powerpc-df.orig/arch/powerpc/kernel/Makefile
+++ linux-2.6-powerpc-df/arch/powerpc/kernel/Makefile
@@ -52,7 +52,8 @@ extra-$(CONFIG_8xx)		:= head_8xx.o
 extra-y				+= vmlinux.lds
 
 obj-y				+= time.o prom.o traps.o setup-common.o \
-				   udbg.o misc.o io.o
+				   misc.o io.o
+obj-$(CONFIG_PPC_UDBG)		+= udbg.o
 obj-$(CONFIG_PPC32)		+= entry_32.o setup_32.o misc_32.o
 obj-$(CONFIG_PPC64)		+= misc_64.o dma_64.o iommu.o
 obj-$(CONFIG_PPC_MULTIPLATFORM)	+= prom_init.o
Index: linux-2.6-powerpc-df/arch/powerpc/platforms/Kconfig
===================================================================
--- linux-2.6-powerpc-df.orig/arch/powerpc/platforms/Kconfig
+++ linux-2.6-powerpc-df/arch/powerpc/platforms/Kconfig
@@ -61,6 +61,7 @@ config UDBG_RTAS_CONSOLE
 config PPC_UDBG_BEAT
 	bool "BEAT based debug console"
 	depends on PPC_CELLEB
+	select PPC_UDBG
 	default n
 
 config XICS
@@ -87,6 +88,7 @@ config U3_DART
 
 config PPC_RTAS
 	bool
+	select PPC_UDBG
 	default n
 
 config RTAS_ERROR_LOGGING
Index: linux-2.6-powerpc-df/include/asm-powerpc/udbg.h
===================================================================
--- linux-2.6-powerpc-df.orig/include/asm-powerpc/udbg.h
+++ linux-2.6-powerpc-df/include/asm-powerpc/udbg.h
@@ -11,6 +11,8 @@
 #define _ASM_POWERPC_UDBG_H
 #ifdef __KERNEL__
 
+#ifdef CONFIG_PPC_UDBG
+
 #include <linux/compiler.h>
 #include <linux/init.h>
 
@@ -49,5 +51,12 @@ extern void __init udbg_init_debug_beat(
 extern void __init udbg_init_btext(void);
 extern void __init udbg_init_44x_as1(void);
 
+#else
+
+#define udbg_early_init()
+#define register_early_udbg_console()
+
+#endif /* CONFIG_PPC_UDBG */
+
 #endif /* __KERNEL__ */
 #endif /* _ASM_POWERPC_UDBG_H */
Index: linux-2.6-powerpc-df/arch/powerpc/platforms/iseries/Kconfig
===================================================================
--- linux-2.6-powerpc-df.orig/arch/powerpc/platforms/iseries/Kconfig
+++ linux-2.6-powerpc-df/arch/powerpc/platforms/iseries/Kconfig
@@ -2,6 +2,7 @@ config PPC_ISERIES
 	bool "IBM Legacy iSeries"
 	depends on PPC_MULTIPLATFORM && PPC64
 	select PPC_INDIRECT_IO
+	select PPC_UDBG
 
 menu "iSeries device drivers"
 	depends on PPC_ISERIES
Index: linux-2.6-powerpc-df/arch/powerpc/platforms/powermac/Kconfig
===================================================================
--- linux-2.6-powerpc-df.orig/arch/powerpc/platforms/powermac/Kconfig
+++ linux-2.6-powerpc-df/arch/powerpc/platforms/powermac/Kconfig
@@ -5,6 +5,7 @@ config PPC_PMAC
 	select PPC_INDIRECT_PCI if PPC32
 	select PPC_MPC106 if PPC32
 	select PPC_NATIVE
+	select PPC_UDBG
 	default y
 
 config PPC_PMAC64



More information about the Linuxppc-dev mailing list