Linux on G5 Xserve?

Greg Johnson gjohnson at lanl.gov
Thu May 20 10:22:07 EST 2004


On Wed, May 19, 2004 at 11:39:34PM +0200, Olaf Hering wrote:
>  On Thu, May 13, Greg Johnson wrote:
>
> > DO-QUIESCE finishedreturning 0x0160000 from prom_init
> >
> >
> > Then nothing.  This is all over the serial port as these machines don't
> > have video cards.  Is it possible that the kernel is booting, but not
> > initializing the serial console?  All the output I'm getting from the
> > kernel comes through the prom.
>
> look at arch/ppc64/kernel/setup.c:set_preferred_console()
> you must add the needed stuff for the pmac zilog console. Do you have a
> device-tree somewhere, of can you figure it out?

Hmm...  I hadn't looked there.  Passing console=ttyS0 seems to work, but
I guess it should default to that anyway.  I think the following patch
should work, but it's not tested yet.  I'm a little confused that
set_preferred_console() is #ifdef CONFIG_PSERIES.  If it is being used
also for powermac, shouldn't it have '|| CONFIG_PMAC' or something?  I
realize that the config options are set together, but still?

Greg


--- setup.c.orig	2004-05-09 20:32:29.000000000 -0600
+++ setup.c	2004-05-19 17:48:27.681889736 -0600
@@ -476,6 +476,7 @@
 {
 	struct device_node *prom_stdout;
 	char *name;
+	char *type;

 	/* The user has requested a console so this is already set up. */
 	if (strstr(saved_command_line, "console="))
@@ -519,6 +520,13 @@
 		return add_preferred_console("hvc", 0, NULL);
 	}

+	type = (char *)get_property(prom_stdout, "device_type", NULL);
+	if (strcmp(type, "serial") == 0) {
+		/* XServe G5 escc serial */
+		if(strcmp(name, "ch-a") == 0) return add_preferred_console("ttyS", 0, NULL);
+		if(strcmp(name, "ch-b") == 0) return add_preferred_console("ttyS", 1, NULL);
+	}
+
 	return -ENODEV;
 }
 console_initcall(set_preferred_console);
@@ -547,7 +555,7 @@
 int __init ppc_init(void)
 {
 	/* clear the progress line */
-	ppc_md.progress(" ", 0xffff);
+	if(ppc_md.progress) ppc_md.progress(" ", 0xffff);

 	if (ppc_md.init != NULL) {
 		ppc_md.init();

** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list