Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Mar 2004 11:40:41 -0800
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        Ken Smith <kensmith@cse.Buffalo.EDU>
Cc:        freebsd-sparc64@freebsd.org
Subject:   Re: Console patch part II...
Message-ID:  <20040316194041.GA48477@ns1.xcllnt.net>
In-Reply-To: <20040316073406.GC17054@electra.cse.Buffalo.EDU>
References:  <20040316055650.GA15182@electra.cse.Buffalo.EDU> <20040316064541.GA12961@dhcp01.pn.xcllnt.net> <20040316070004.GA16684@electra.cse.Buffalo.EDU> <20040316070937.GA13045@dhcp01.pn.xcllnt.net> <20040316073406.GC17054@electra.cse.Buffalo.EDU>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Mar 16, 2004 at 02:34:06AM -0500, Ken Smith wrote:
> On Mon, Mar 15, 2004 at 11:09:37PM -0800, Marcel Moolenaar wrote:
> 
> > You need to fix the code to call cninit() soon enough that you
> > never need to panic before it?
> 
> Expanding slightly...  cninit() currently is before the first printf()'s
> or calls to panic().  But it can't stay there, at least some of the
> potential consoles (e.g. Kris's Creator-3D) wind up calling make_dev()
> and that was causing his panic's.

Fix syscons.

> Alpha had this same problem and the end solution for alpha is more or
> less identical to what I'm proposing with the kludge hack.

I accepted the hack on alpha simply because there's no developer
base to put in the work to actually fix the problem. Now that
sparc64 appears to suffer from the same, I'm passionately of the
opinion that we cannot kluge our way out of this.

> 	- [ This is a new thought... ] Restructure all the potential
> 	  console drivers to be like ofw_console is.  ofw_console doesn't
> 	  call make_dev() in its attach routine.  Instead it uses a
> 	  sysinit() to handle the make_dev() later in the boot sequence
> 	  instead of doing at attach time.

Look at uart(4). It does everything right and consequently does not
force us to delay cninit() or kdb_init() for that matter. With
uart(4), you do not need ofw_console(4) most of the time. Your
problem is therefore not that cninit() is called to soon. Your
problem is that syscons is broken.

-- 
 Marcel Moolenaar	  USPA: A-39004		 marcel@xcllnt.net



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