This article is from a FAQ concerning SCO operating systems. While some of the information may be applicable to any OS, or any Unix or Linux OS, it may be specific to SCO Xenix, Open This is an old article about floppy drive reliability on SCO Unix and is only left here for historical purposes. There is lots of Linux, Mac OS X and general Unix info elsewhere on this site: Search this site is the best way to find anything.
First things first - it may be a bad diskette, a bad floppy drive, or the cable connecting your floppy drive to its controller may be loose. If this is newer SCO, it probably is. Older SCO may be helped by the rest of this discussion.
If the problem gets worse if the system is under load (particularly, when anything is doing DMA - and that usually means a SCSI host adapter) and is particularly bad when trying to format a floppy, you may be running into a problem with the FIFO on the floppy controller.
Briefly, older floppy controllers have a one-byte buffer, and the system must grab that byte before the next byte is read from the drive or else you have a problem. If the DMA controller (floppies use DMA) is blocked long enough, usually by a SCSI host adapter, the buffer gets overwritten. Newer controllers generally have a 16-byte buffer, but it may or may not be turned on by your BIOS. SCO Unix doesn't program the buffer by default, but the floppy driver in OSR5 can be set to use the buffer if you wish.
Make a backup of /etc/conf/pack.d/fd/space.c (just in case). Now edit the file. At the bottom you will see
int fd_enable_FIFO = 0; int fd_FIFOthresh = 0;
Change them to
int fd_enable_FIFO = 1; int fd_FIFOthresh = 15;
The first one simply enables or disables programming of the FIFO; the second one sets the FIFO's size if you've enabled it. There's probably no reason to set it to anything other than 15.
Relink and reboot to activate the change.
Making this change can actually be counterproductive if your system is working properly. Some floppy drive controllers will not work properly if you try enabling the FIFO, and you will end up with a system with floppy drives which do not work. Trust me on this one.
See Bela Lubkin's discussion of DMA at scotec9.html#vhand also.
Got something to add? Send me email.