Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 Aug 2000 11:18:03 -0700 (PDT)
From:      John Polstra <jdp@polstra.com>
To:        alpha@freebsd.org
Cc:        peter@netplex.com.au
Subject:   Re: Console problems on alpha with -current 
Message-ID:  <200008311818.LAA42860@vashon.polstra.com>
In-Reply-To: <200008302317.e7UNHtG96193@netplex.com.au>
References:  <200008302317.e7UNHtG96193@netplex.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <200008302317.e7UNHtG96193@netplex.com.au>,
Peter Wemm  <peter@netplex.com.au> 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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200008311818.LAA42860>