Re: consinit() problem on -current
"David Ross" <[email protected]> Sun, 12 Jul 2009 11:22:22 -0700
| Newsgroups | gmane.os.netbsd.ports.atari,gmane.os.netbsd.ports.amiga |
|---|---|
| Message-ID | <[email protected]> |
Sorry for the delay. Yes, this one works. (Specifically, it successfully boots to the root device prompt on my TT030. I haven't tested more than that.) David Ross [email protected] ----- Original Message ----- From: "Izumi Tsutsui" <[email protected]> To: <[email protected]>; <[email protected]> Cc: <[email protected]>; <[email protected]>; <[email protected]> Sent: Tuesday, July 07, 2009 7:50 AM Subject: Re: consinit() problem on -current > Frank Wille wrote: >> Izumi Tsutsui wrote: >>> Is there anyone who tried recent -current on atari (and amiga)? >>> I'm afraid -current kernels won't boot (hangs after bootloader). >> >> You are right! I can confirm it for Amiga! >> >> When booting a kernel, the system would just hang, before any graphics >> chip >> initializations have taken place. > > David Ross wrote: >> I see the hang as well. First I tested the 5.0 release kernel just to >> make >> sure it would work. It does. Then I tried this one: >> /pub/NetBSD/NetBSD-daily/HEAD/200907010002Z/atari/binary/kernel/netbsd-ATARITT.gz >> >> It freezes even before the screen would normally go black to start the >> scrolling boot text. > > Could you try the following workaround patch or compiled ATARITT kernel? > It defers one callout(9) function to avoid mutex(9) calls in early boot. > > Of course the real fix is to rewrite console initialization functions > on these ports, but I'm afraid it requires some more confirmation. > > http://www.ceres.dti.ne.jp/~tsutsui/netbsd/netbsd-atari-ATARITT-20090707.gz > > --- > Index: kern/subr_autoconf.c > =================================================================== > RCS file: /cvsroot/src/sys/kern/subr_autoconf.c,v > retrieving revision 1.178 > diff -u -r1.178 subr_autoconf.c > --- kern/subr_autoconf.c 26 Jun 2009 19:30:45 -0000 1.178 > +++ kern/subr_autoconf.c 7 Jul 2009 14:44:55 -0000 > @@ -356,7 +356,6 @@ > cv_init(&config_misc_cv, "cfgmisc"); > > callout_init(&config_twiddle_ch, CALLOUT_MPSAFE); > - callout_setfunc(&config_twiddle_ch, config_twiddle_fn, NULL); > > /* allcfdrivers is statically initialized. */ > for (i = 0; cfdriver_list_initial[i] != NULL; i++) { > @@ -411,6 +410,14 @@ > { > /* Initialize data structures. */ > config_init(); > + /* > + * XXX > + * callout_setfunc() requires mutex(9) so it can't be in config_init() > + * on amiga and atari which use config_init() and autoconf(9) fucntions > + * to initialize console. > + */ > + callout_setfunc(&config_twiddle_ch, config_twiddle_fn, NULL); > + > pmf_init(); > #if NDRVCTL > 0 > drvctl_init(); > > --- > Izumi Tsutsui >