Messages in this thread |  | | Date | Sun, 27 Oct 1996 12:08:35 GMT | From | Sean Holdsworth <> | Subject | Floppy controller not found |
| |
[ This is a first posting to this list; I've followed it on and off as a lurker since 1.1 days but I'll apologise in advance for any failures to follow accepted protocol ;-) ]
If hardware works on an earlier version of Linux but fails on a more recent version then I assume this is a 'Bad Thing'[tm]? I have two instances, one which relates to 2.0.0 vs 2.0.22 and one which is lost in the mists of time.
I have a motherboard with an onboard floppy controller which is reported as a post-1991 92077 (an 82077AA). In version 2.0.0 things work as advertised but on 2.0.22 the controller isn't seen. In this case, I get the following messages.
Oct 26 00:04:15 elfland kernel: Floppy drive(s): fd0 is 1.44M Oct 26 00:04:15 elfland kernel: Started kswapd v 1.4.2.2 Oct 26 00:04:15 elfland kernel: floppy0: no floppy controllers found
If, however, I use .../drivers/block/floppy.c from the 2.0.0 kernel as a plug in replacement for the version in 2.0.22, things work and I get
Oct 26 11:57:21 elfland kernel: Floppy drive(s): fd0 is 1.44M Oct 26 11:57:21 elfland kernel: Started kswapd v 1.4.2.2 Oct 26 11:57:21 elfland kernel: FDC 0 is a post-1991 82077
(Yes, I have checked if this has been fixed in 2.0.23 to the extent of examining the patches file to see if any changes to floppy.c have been made but it doesn't look like it.)
I've managed to trace the problem to the call to user_reset_fdc from floppy_init failing and suspect the problem is in what is happening in wait_til_done (called via the WAIT macro in user_reset_fdc). I'm afraid I don't understand the details of bottom half handlers well enough yet to get much further than this.
Anyway, I thought I'd better mention this or I can see me having to add another patch to standard kernels to get Linux running on my hardware. Which brings me to my second point. I'm running on something called an SA486P AIO-U motherboard which has an onboard NCR53C810 SCSI controller which works fine except that I suspect it can only deal with edge triggered interrupts as opposed to level sensitive ones. Well back in the days of 1.1.59 the standard 53c7,8xx driver worked fine on this board, but by the time of 1.2.13 it no longer worked. I tracked this problem and *KLUDGE* things with the following patch to 53c7,8xx.c.
1022,1024d1021 < < /* Commented out by SH to make my broken on board NCR 53c810 work... */ < #if 0 1027,1029d1023 < #else < hostdata->saved_dcntl |= DCNTL_800_IRQM; < #endif
(The BSD derived driver also fails in the same way on my hardware but I've not needed to do anything about it so far.)
Regards, Sean -- * Home: sh@elfland.demon.co.uk Play: sh@aii.co.uk * "We are trying to bring up an Air Traffic Control display on an X window * terminal and there seems to be some problems." -- from comp.windows.x
|  |