@@ -219,6 +219,19 @@ void udbg_init_pas_realmode(void)
#ifdef CONFIG_PPC_EARLY_DEBUG_44x
#include <platforms/44x/44x.h>
+static unsigned long udbg_44x_comport = PPC44x_EARLY_DEBUG_VIRTADDR;
+
+static int __init early_parse_comport(char *p)
+{
+ if (!p || !(*p))
+ return 0;
+
+ udbg_44x_comport = simple_strtoul(p, 0, 16);
+
+ return 0;
+}
+early_param("uart_addr", early_parse_comport);
+
static void udbg_44x_as1_flush(void)
{
if (udbg_comport) {
@@ -249,9 +262,7 @@ static int udbg_44x_as1_getc(void)
void __init udbg_init_44x_as1(void)
{
- udbg_comport =
- (struct NS16550 __iomem *)PPC44x_EARLY_DEBUG_VIRTADDR;
-
+ udbg_comport = (struct NS16550 __iomem *)udbg_44x_comport;
udbg_putc = udbg_44x_as1_putc;
udbg_flush = udbg_44x_as1_flush;
udbg_getc = udbg_44x_as1_getc;
Allow the early debug uart address to be overridden from the kernel command line. I would have preferred use the uart's virtual-reg property, but the device tree hasn't been unflatted yet, and I don't know a reliable way to find it. Signed-off-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Josh Boyer <jwboyer@linux.vnet.ibm.com> Cc: linuxppc-dev@lists.ozlabs.org --- arch/powerpc/kernel/udbg_16550.c | 17 ++++++++++++++--- 1 files changed, 14 insertions(+), 3 deletions(-)