From owner-cvs-all Fri May 10 19:56:36 2002 Delivered-To: cvs-all@freebsd.org Received: from Awfulhak.org (gw.Awfulhak.org [217.204.245.18]) by hub.freebsd.org (Postfix) with ESMTP id 6505537B407; Fri, 10 May 2002 19:56:28 -0700 (PDT) Received: from hak.lan.Awfulhak.org (root@hak.lan.Awfulhak.org [IPv6:fec0::1:12]) by Awfulhak.org (8.12.3/8.12.3) with ESMTP id g4B2uQfK065285; Sat, 11 May 2002 03:56:26 +0100 (BST) (envelope-from brian@Awfulhak.org) Received: from hak.lan.Awfulhak.org (brian@localhost [127.0.0.1]) by hak.lan.Awfulhak.org (8.12.3/8.12.3) with ESMTP id g4B2uNnA008926; Sat, 11 May 2002 03:56:24 +0100 (BST) (envelope-from brian@hak.lan.Awfulhak.org) Message-Id: <200205110256.g4B2uNnA008926@hak.lan.Awfulhak.org> X-Mailer: exmh version 2.5 07/13/2001 with nmh-1.0.4 To: John Baldwin Cc: Brian Somers , Joerg Wunsch , cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/isa fd.c fdreg.h In-Reply-To: Message from John Baldwin of "Fri, 10 May 2002 21:39:45 EDT." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 11 May 2002 03:56:23 +0100 From: Brian Somers Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG > > 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 > >> >> 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 Don't _EVER_ lose your sense of humour ! To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message