From owner-freebsd-alpha Thu Aug 31 11:18:36 2000 Delivered-To: freebsd-alpha@freebsd.org Received: from wall.polstra.com (rtrwan160.accessone.com [206.213.115.74]) by hub.freebsd.org (Postfix) with ESMTP id 0CB0A37B43E for ; Thu, 31 Aug 2000 11:18:09 -0700 (PDT) Received: from vashon.polstra.com (vashon.polstra.com [206.213.73.13]) by wall.polstra.com (8.9.3/8.9.3) with ESMTP id LAA13670; Thu, 31 Aug 2000 11:18:04 -0700 (PDT) (envelope-from jdp@polstra.com) From: John Polstra Received: (from jdp@localhost) by vashon.polstra.com (8.9.3/8.9.1) id LAA42860; Thu, 31 Aug 2000 11:18:03 -0700 (PDT) (envelope-from jdp@polstra.com) Date: Thu, 31 Aug 2000 11:18:03 -0700 (PDT) Message-Id: <200008311818.LAA42860@vashon.polstra.com> To: alpha@freebsd.org Cc: peter@netplex.com.au Subject: Re: Console problems on alpha with -current In-Reply-To: <200008302317.e7UNHtG96193@netplex.com.au> References: <200008302317.e7UNHtG96193@netplex.com.au> Organization: Polstra & Co., Seattle, WA Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org In article <200008302317.e7UNHtG96193@netplex.com.au>, Peter Wemm wrote: > No, the more I think about it, the more I think something like this is > happening: > > i386: > console selection is done before any output using the low level console > probe routines. > > alpha: > the SRM console is being used until much later, and when sc0 comes up without > vga0 having probed already, then things are breaking. > The difference between static vs. dynamic hints is that loader(8) is sorting > the hints (sc0 comes before vga0) while static hints are preserving the order. Some more info about this. I added printfs to sys/dev/syscons/syscons.c in sc_attach_unit() where the decision is made as to whether this is the kernel console or not. If unit == sc_console_unit then it is the kernel console; otherwise it is not. In the (good) case of static hints, the message said: XXX sc_attach_unit: unit=0, sc_console_unit=0 In the (bad) case of dynamic hints, it said: XXX sc_attach_unit: unit=0, sc_console_unit=-1 The sc_console_unit variable is initialized to -1 and it is only set in one place on the alpha, in sccnattach(). It may be that in the case of dynamic hints, sccnattach() is never being called. I added a printf at the point in sccnattach() where sc_console_unit is set. In the (good) static hints case, this message came out onto the SRM console (white-on-blue) immediately upon booting -- before any other messages. I didn't see it when it came out at boot time, but it was still there when I halted the system and the SRM screen came back. The message didn't appear in the dmesg output at all. In the (bad) dynamic hints case, I did not see the message at all. I should mention one other thing I noticed. When I added the printfs to the heretofore good case, it changed the behavior of the console. The rapidly blinking cursor appeared and remained in the southwest corner of the screen. The colors did go to white-on-black as they ought to, though. I don't know whether this change in behavior was caused by doing a printf at the wrong time, or whether just adding some code made a difference. I don't think the problem is related to the ordering of the hints. From looking at the code in subr_bus.c, they are all scanned at once and the values are saved. After that, any initial ordering is lost. Something else is causing the problem. John -- John Polstra jdp@polstra.com John D. Polstra & Co., Inc. Seattle, Washington USA "Disappointment is a good sign of basic intelligence." -- Chögyam Trungpa To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message