Date: Sat, 11 May 2002 03:56:23 +0100 From: Brian Somers <brian@Awfulhak.org> To: John Baldwin <jhb@FreeBSD.org> Cc: Brian Somers <brian@Awfulhak.org>, Joerg Wunsch <joerg@FreeBSD.org>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/isa fd.c fdreg.h Message-ID: <200205110256.g4B2uNnA008926@hak.lan.Awfulhak.org> In-Reply-To: Message from John Baldwin <jhb@FreeBSD.org> of "Fri, 10 May 2002 21:39:45 EDT." <XFMail.20020510213945.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
>
> On 11-May-2002 Brian Somers wrote:
> >>
> >> On 11-May-2002 Brian Somers wrote:
> >> >> joerg 2002/05/10 10:56:39 PDT
> >> >>
> >> >> Modified files:
> >> >> sys/isa fd.c fdreg.h
> >> >> Log:
> >> >> Change the PIO loops from a hard counter into a loop that calls DELAY()
> >> >> in each cycle, with a tunable max cycle count defined in fdreg.h.
> >> >>
> >> >> This is said to fix the problem on some Compaq hardware (and perhaps
> >> >> on other machines using the Natsemi PC87317 chip) where the fdc(4)
> >> >> driver failed to operate at all.
> >> >>
> >> >> PR: kern/21397
> >> >> Submitted by: Jung-uk Kim <jkim@niksun.com>
> >> >> MFC after: 3 days
> >> >>
> >> >> Revision Changes Path
> >> >> 1.229 +14 -8 src/sys/isa/fd.c
> >> >> 1.16 +12 -0 src/sys/isa/fdreg.h
> >> >
> >> > As fdc is also a module, would it be better to call tsleep() instead
> >> > of delay if (!cold) ? Like in sys/dev/digi/digi.c:digi_delay()...
> >>
> >> Hmm, we should come up with the real fix for this quick so as to avoid
> >> propagating that hack any farther than we have to. :-/ (Not picking on
> >> you Brian).
> >
> > Yes.
> >
> > NetBSD has an MD delay() function in sys/arch/*/{,*/}clock.c,
> > prototyped in sys/arch/*/include/cpu.h. I guess I could have a go at
> > bringing that into FreeBSD.
>
> No, the real fix is to redo device probing so it's always done in the
> same environment. IOW, you would always use tsleep() and never use
> DELAY().
Well, the environment can't be the same - there's no filesystem yet
during the boot time probe for example (and there can't be if we
expect to be able to load the filesystem driver as a module).
However, I agree that it'd be nice to have interrupts before any
probes occur. Are you suggesting that the contents of configure()
in autoconf.c should be re-arranged so that the spl0() happens before
root_bus_configure() ? I suspect it's not that easy ;*)
--
Brian <brian@Awfulhak.org> <brian@freebsd-services.com>
<http://www.Awfulhak.org> <brian@[uk.]FreeBSD.org>
Don't _EVER_ lose your sense of humour ! <brian@[uk.]OpenBSD.org>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200205110256.g4B2uNnA008926>
