Console patch part II...

Ken Smith kensmith at cse.Buffalo.EDU
Tue Mar 16 12:23:46 PST 2004


On Tue, Mar 16, 2004 at 11:40:41AM -0800, Marcel Moolenaar wrote:
> 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.

Ok, sorry.  You sent this while I was editing the reply I made a
few minutes ago.

I'm off to look at syscons then.

-- 
						Ken Smith
- From there to here, from here to      |       kensmith at cse.buffalo.edu
  there, funny things are everywhere.   |
                      - Theodore Geisel |


More information about the freebsd-sparc64 mailing list