*BSD News Article 9534


Return to BSD News archive

Received: by minnie.vk1xwt.ampr.org with NNTP
	id AA5932 ; Fri, 01 Jan 93 21:05:13 EST
Path: sserve!manuel.anu.edu.au!munnari.oz.au!uunet!mcsun!Germany.EU.net!urmel.informatik.rwth-aachen.de!acds.physik.rwth-aachen.de!kuku
From: kuku@acds.physik.rwth-aachen.de (Christoph Kukulies)
Newsgroups: comp.unix.bsd
Subject: door open with disk inserted problem (fd.c patch)
Date: 4 Jan 1993 17:05:57 GMT
Organization: I.Physikalisches Institut RWTH-Aachen
Lines: 42
Distribution: world
Message-ID: <1i9qplINN37c@urmel.informatik.rwth-aachen.de>
Reply-To: kuku@acds.physik.rwth-aachen.de
NNTP-Posting-Host: acds.physik.rwth-aachen.de
Keywords: patch fix kludge hack fd.c door open


For about half a year I have been living with a behaviour of the
386BSD floppy driver which showed up in not recognizing the presence
of the fd controller when a disk was inserted and the door was left open.
Booting the fd has never been a problem. I always was blaming
some strange BIOS or hardware property for being responsible until
some genious mind kicked me to perhaps try it with door open and disk removed.

I did and the problem could be worked around. I did not like this workaround,though,  because all too often I forget a floppy in the slot and system uptime is a  precious resource - you know. Anyway, here is something
what I would not call a patch because it lacks the proper format, but for applying the fix manually, I leave it here for everyone's convenience:

------------------------- file /sys/i386/isa/fd.c --------------------
/*
!* probe for existence of controller
 */
fdprobe(dev)
struct isa_device *dev;
{
	fdc = dev->id_iobase;

	/* see if it can handle a command */
+	outb(fdc+fdout,0);
+	DELAY(100);
+	outb(fdc+fdout,4);
	if (out_fdc(NE7CMD_SPECIFY) < 0) {
		fdc = 0;
		return(0);
	}
	out_fdc(0xDF);
	out_fdc(2);
	return 1;
}

----------------------------------- end of fix -------------------------- 

--
--Chris
Christoph P. U. Kukulies
kuku@acds.physik.rwth-aachen.de
*** Error code 1
 
Stop.