---------- Forwarded message ---------- From: Justin Eastham jceastham@googlemail.com Date: Mon, Aug 3, 2009 at 9:44 PM Subject: Re: [Fdutils] Second FDC not recognised. To: David C Niemi niemi@tuxers.net
I'm beginning to think it's the PC.
The distro I'm using (System Rescue CD) seems to have all the necessary floppy support.
I'm sure the AHA-1542b is okay, because when it's set to be the primary FDC (mobo's FDC disabled), then I can boot from the FDD connected to the AHA-1542b.
Did PCs from a certain point in time stop supporting a second FDC ? But even then; I'm not convinced as the kernel is just talking to an IO port (in this case 0x370) and using standard stuff like IRQs and DMA channels.
If the AHA-1542b will play ball on 0x3F0, then why not 0x370 ?
I'm satisfied I'm using the correct modprobe floppy command (unless I'm told different)
I'm going to try with an older PC, but I'm running out of ideas :-(
It's frustrating, as I know this should work. I can't use a pre-PCI machine, because I've got a Catweasel PCI card to go in.
The plan was to have a "floppy" PC, with :
2.88Mb 3.5" as fd0 360K 5.25" as fd1
....both connected to the primary FDC via the Catweasel. This means I can read all the DOS formats (apart from 1200K 5.25"), plus Amiga and C64 disk formats.
The secondary FDC was to connect the 1200K 5.25" FDD as fd4
Then I could have a single PC that would handle all the different disk formats and filesystems (FAT, Amiga, C64 etc)
Just tried an ISA I/O card, but it looks like the FDC is broken on it, as it won't even function when configured to be the primary FDC (with the mobo's FDC disabled)
Any help is much appreciated - like what era of PC have people had success with ?
TIA
Justin
On Mon, Aug 3, 2009 at 8:26 PM, David C Niemi niemi@tuxers.net wrote:
Hello Justin,
It's probably been 15 years since I last did this sort of work. I think you're on the right track -- if it found FDC 1 it would have said so, so something must be blocking or disabling it.
DCN
Hi Justin,
These are just guesses, and not very educated ones at that.
Did PCs from a certain point in time stop supporting a second FDC ? But even then; I'm not convinced as the kernel is just talking to an IO port (in this case 0x370) and using standard stuff like IRQs and DMA channels.
If the AHA-1542b will play ball on 0x3F0, then why not 0x370 ?
Have you gone through every BIOS setting to see if there's anything configured there that may be blocking access?
Does dmesg(1) give any more information after you've attempted to access the 1524b?
Cheers,
Ralph.
On Mon, Aug 3, 2009 at 10:23 PM, Ralph Corderoy ralph@inputplus.co.ukwrote:
Have you gone through every BIOS setting to see if there's anything
configured there that may be blocking access?
I've not, to be fair. But the only difference between the AHA-1542b working as the primary FDC and the secondary FDC is the IO port. My understanding is that the two FDCs share the same IRQ and DMA. It works on 0x3F0; it doesn't on 0x370. And cat /proc/ioports doesn't convince me that something else is hogging 0x370. I've tried 2 different PCs (both Athlon T-bird based), 2 different distros. All I can think of, is the PCs are too new, or there's some obscure fault with the AHA-1542b. Unfortunately; I don't think I have any more ISA cards with a FDC on.
Does dmesg(1) give any more information after you've attempted to access
the 1524b?
dmesg (and /var/log/messages) yield nothing about the second FDC, not even when I load the driver with debugging enabled. It's as though it's invisible. If I knew enough about DOS, I'd try and get it working under that.
Is this supposed to work - pure and simply (given good hardware), or is it a bit of a black art ?
Thanks for the response
Justin
Justin Eastham wrote:
Did PCs from a certain point in time stop supporting a second FDC ? But even then; I'm not convinced as the kernel is just talking to an IO port (in this case 0x370) and using standard stuff like IRQs and DMA channels.
Are you using a different IRQ and DMA channel for each controller? I've seen at least one machine that stubbornly refused to let two controllers use the same IRQ and DMA, and the secondary card I had couldn't be jumpered for anything different (in the end I hacked the board and re-routed some of the pins)
I'm going to try with an older PC, but I'm running out of ideas :-(
If you've got other hardware, try it. I had a huge amount of trouble finding a machine that'd both read and write FM-density, allow more than one drive on the primary controller (I've seen HP machines with broken FDC implementations that won't recognise a second drive) and be happy with a second controller.
....both connected to the primary FDC via the Catweasel. This means I can read all the DOS formats (apart from 1200K 5.25"), plus Amiga and C64 disk formats.
What's the CW support like under Linux? I've been put off buying a CW many a time because it wasn't obvious what the support/resources/community was like under different OSes.
cheers
Jules
On Mon, Aug 3, 2009 at 10:24 PM, Jules Richardson < julesrichardsonuk@yahoo.co.uk> wrote
Are you using a different IRQ and DMA channel for each controller? I've
seen
at least one machine that stubbornly refused to let two controllers use the
same IRQ and DMA, and the secondary card I had couldn't be jumpered for anything different (in the end I hacked the board and re-routed some of
the pins)
The secondary FDC is on an Adaptec 1542b card, and the only thing I can change is the IO-port. IRQ6 and DMA2 has to be shared between the 2 FDCs
If you've got other hardware, try it. I had a huge amount of trouble
finding a
machine that'd both read and write FM-density, allow more than one drive
on
the primary controller (I've seen HP machines with broken FDC
implementations
that won't recognise a second drive) and be happy with a second
controller.
I chose these particular mobos, as they both have just the one ISA slot; which is all I need. I'll try a Pentium 233 (socket 7) PC on the weekend. I do have a VIP board (Vesa, ISA and PCI), but I think that's inviting trouble ;-). Need to have PCI for the catweasel. From what you're saying, getting the two FDCs to play nicely under Linux isn't a walk in the park
What's the CW support like under Linux? I've been put off buying a CW many a
time because it wasn't obvious what the support/resources/community was
like
under different OSes.
There's two Linux drivers for the catweasel under Linux : cwfloppy and cwtool
Check out : http://unusedino.de/cw
cwtool seems the better bet, as cwfloppy doesn't have write support under kernel 2.6
I can't speak from experience, as I've not had it working yet.
So from the responses I've had so far, it seems my problem is hardware related; at least no one has suggested an alternative way to load the floppy kernel module
Justin
What-Ho Justin!
So from the responses I've had so far, it seems my problem is hardware related; at least no one has suggested an alternative way to load the floppy kernel module
Having taken a peak at http://lxr.linux.no/linux+v2.6.30/drivers/block/floppy.c#L4058 can I suggest you tinker around with some of the options listed there and look into what they do? E.g.
sudo modprobe floppy 'floppy=debug two_fdc'
and then inspect dmesg for enlightenment. I don't know that will help, but it would be my next move.
Cheers,
Ralph.
I've tried (as root) :
modprobe floppy "floppy=4,4,cmos"
modprobe floppy "floppy=two_fdc 4,4,cmos"
....both with and without debug. Dmesg and /var/log/messages yield nothing
I'd do a jig if I could see "FDC 1 is a...." mentioned ;-)
So far, I've only heard from one person who got two FDCs working under Linux, and that involved hacking the card the secondary FDC was on :-(
On Tue, Aug 4, 2009 at 12:02 AM, Ralph Corderoy ralph@inputplus.co.ukwrote:
What-Ho Justin!
So from the responses I've had so far, it seems my problem is hardware related; at least no one has suggested an alternative way to load the floppy kernel module
Having taken a peak at http://lxr.linux.no/linux+v2.6.30/drivers/block/floppy.c#L4058 can I suggest you tinker around with some of the options listed there and look into what they do? E.g.
sudo modprobe floppy 'floppy=debug two_fdc'
and then inspect dmesg for enlightenment. I don't know that will help, but it would be my next move.
Cheers,
Ralph.
On Tue, 4 Aug 2009, Justin Eastham wrote:
I'd do a jig if I could see "FDC 1 is a...." mentioned ;-)
So far, I've only heard from one person who got two FDCs working under Linux, and that involved hacking the card the secondary FDC was on :-(
Well, I have definitely done it, but it was back in 1993-1994. Even very slow-moving parts of the kernel like the floppy driver have changed a lot since then.
+-----------------------------------------------------------+ | David C Niemi (Reston, VA, USA) niemi at tuxers dot net | +-----------------------------------------------------------+
On Mon, 3 Aug 2009, Justin Eastham wrote:
The secondary FDC is on an Adaptec 1542b card, and the only thing I can change is the IO-port. IRQ6 and DMA2 has to be shared between the 2 FDCs
I don't think that'll work, I'm pretty sure in conventional ISA you need separate IRQs and DMA channels for each device that needs them (as well as IO ports).
However, if you had an IRQ or DMA conflict I think the FDC would still be recognized, as long as nothing else was sittig on its I/O address. Can you turn off serial and parallel ports?
+-----------------------------------------------------------+ | David C Niemi (Reston, VA, USA) niemi at tuxers dot net | +-----------------------------------------------------------+
I've double checked the AHA-1542b documentation, and I can set the FDC to be IRQ10. So I was wrong; I can directly set the IO-port and the IRQ.
On the subject of DMA; would DACK and DREQ correspond to a DMA channel ? If so, I can set DACK and DREQ to 3 (instead of 2). Also, I'm pretty sure I can disable DMA when I load the floppy kernel module.
The only other thing is the "base address", and I must confess; I'm not even sure what that is. I'm not even sure I can tweek it.
But I was sure that the secondary FDC could share the same IRQ and DMA as the primary FDC. After all; four com ports can share 2 IRQs and 2 IO ports.
Thanks for the response though - it's given me some hope
And yes; I don't need the serial or parallel ports, so I can disable them - which frees 3 IRQs (3,4 and 7), but I don't think there's any interference with the IO-ports.
Thanks again
On Tue, Aug 4, 2009 at 1:29 AM, David C Niemi niemi@tuxers.net wrote:
On Mon, 3 Aug 2009, Justin Eastham wrote:
The secondary FDC is on an Adaptec 1542b card, and the only thing I can change is the IO-port. IRQ6 and DMA2 has to be shared between the 2 FDCs
I don't think that'll work, I'm pretty sure in conventional ISA you need separate IRQs and DMA channels for each device that needs them (as well as IO ports).
However, if you had an IRQ or DMA conflict I think the FDC would still be recognized, as long as nothing else was sittig on its I/O address. Can you turn off serial and parallel ports?
+-----------------------------------------------------------+ | David C Niemi (Reston, VA, USA) niemi at tuxers dot net | +-----------------------------------------------------------+ _______________________________________________ Fdutils mailing list Fdutils@fdutils.linux.lu https://fdutils.linux.lu/cgi-bin/mailman/listinfo/fdutils
On Tue, 4 Aug 2009, Justin Eastham wrote:
After all; four com ports can share 2 IRQs and 2 IO ports.
Actually; that's wrong isn't it. Four com ports need 4 IO ports; but only 2 IRQs
I don't think two COM ports can really reliably share even an IRQ, if they're both truly active. I've heard of several cases where that causes hangs or data drops. And they definitely cannot share I/O ports.
+-----------------------------------------------------------+ | David C Niemi (Reston, VA, USA) niemi at tuxers dot net | +-----------------------------------------------------------+
David C Niemi wrote:
On Tue, 4 Aug 2009, Justin Eastham wrote:
After all; four com ports can share 2 IRQs and 2 IO ports.
Actually; that's wrong isn't it. Four com ports need 4 IO ports; but only 2 IRQs
I don't think two COM ports can really reliably share even an IRQ, if they're both truly active. I've heard of several cases where that causes hangs or data drops.
I can't remember for sure, either. But it's one single chip handling two ports, so if there's interrupt sharing going on between the ports then it's under control of the chip designer as to how they implement it.
Any IRQ-sharing issues in the FDC world (and it's not certain that's Justin's problem) arise because there are two FDCs (the Adaptec and the on-board) from different vendors trying to share an IRQ line, and that could easily cause conflicts.
I think the off-the-shelf FDC chips - which the Adaptec probably uses - should work together, so long as they're not being accessed at the same time. The problem's likely with the on-board FDC, which is doubtless integrated into other stuff on the motherboard and designed by folk who never anticipated someone wanting to share it.
Justin, if you come across any more hardware, one test might be to disable the on-board FDC completely and try to get the Adaptec to work alongside another FDC-on-a-card. I suspect that might work (but finding cards with on-board FDCs is tricky these days)
cheers
Jules