Return to BSD News archive
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!msunews!uwm.edu!lll-winken.llnl.gov!sol.ctr.columbia.edu!startide.ctr.columbia.edu!wpaul From: wpaul@ctr.columbia.edu (Bill Paul) Newsgroups: comp.os.386bsd.questions Subject: Re: FreeBSD 2.0R fails to find my HDs Date: 6 Dec 1994 05:28:53 GMT Organization: Columbia University Center for Telecommunications Research Lines: 109 Message-ID: <3c0sql$447@sol.ctr.columbia.edu> References: <3bh42f$5ja@gate.sinica.edu.tw> <JKH.94Nov30115736@whisker.hubbard.ie> <3bm0gn$566@gate.sinica.edu.tw> <3c03jr$50u@pdq.coe.montana.edu> <3c0n36$2su@gate.sinica.edu.tw> NNTP-Posting-Host: startide.ctr.columbia.edu X-Newsreader: TIN [version 1.2 PL2] Daring to challenge the will of the almighty Leviam00se, ywliu@beta.wsl.sinica.edu.tw had the courage to say: : Nate Williams (nate@bsd.coe.montana.edu) wrote: : : So you are saying that FreeBSD doesn't find ANY controller? Are you : : trying to add 2 controllers to your machine? If so, then you need to : : get a controller that allows you to change the I/O address. Sticking : : two un-configurable controllers will not work in ANY operating system. : Of course not; I tested one at a time. Those controllers work : very well under MS-DOS. I just didn't figure out how FreeBSD did to : locate the IDE hard disk controller and why it failed but MS-DOS : always succeeds. : Yen-Wei Liu I would check to make sure something isn't wrong with the controllers' interrupt lines. MS-DOS (to my knowledge) doesn't use interrupt-driven disk I/O: it does polled I/O. This means that if flat-out ignores the interrupt lines from the controller. (You aren't by any chance trying to stuff a 16 bit card into an 8 bit slot, are you?) This, according to my theory, is why IDE controller manufacturers often make boards that allow you to switch I/O addresses, but not IRQs. I happen to have two IDE controllers in my system: one of them is built onto my motherboard, and the other is a DTC-2280 "Super I/O Card" (this card also provides me with a second parallel port and a 3rd COM port). The DTC card has jumpers that let you select the secondary disk controller I/O address, but the interrupt is hardwired to IRQ14 (which is the IRQ used by the primary controller). When I first installed the card and powered up the machine, the system completed its power-on self tests normally, but the FreeBSD 1.1.5.1 bootblock became hopelessly wedged while trying to load the first few sectors of the kernel from wd1 (D:). I finally managed to boot from floppy, but whenever I tried to mount any of my hard disks, I would get device timeout errors from the kernel. At the same time, MS-DOS continued to work normally, presumeably because it didn't care that there was an IRQ conflict between the two controllers. Now, don't get the idea that this is a good thing: it isn't. I imagine that DOS's disk performance is pretty crummy because of the brain-damaged way it does disk I/O. (Unfortunately I can't prove this. If anyone out there can and has proven it, I'd love to hear from you. :) Nevertheless, there's always someone out there who insists that his broken hardware is really okay because 'it works with DOS just fine.' Please: spare me. There was a guy on here a few months back who had his floppy drives wired backwards and didn't even know it because DOS couldn't tell the difference. You call that fine? So, how did I get the second controller to work, you ask? Simple: I did a little hunting around the net, and for my troubles I was rewarded with a copy of the Linux dual controller patch, complete with installation instructions. These instructions show quite clearly where the pins for IRQ14 and IRQ15 are located on a 16 bit ISA card. From there, it was just a matter of 5 minutes work with an X-acto knife and my trusty soldering iron (what!? you don't have a soldering iron!?), and presto! my new controller was now wired for IRQ15 instead of IRQ14. After that, I just plugged it in, slapped a drive on it and booted up: FreeBSD 1.1.5.1 (SKYNET) #20: Thu Oct 13 23:14:15 EDT 1994 CPU: i386DX (386-class CPU) real memory = 4194304 (1024 pages) avail memory = 3264512 (797 pages) [....] wdc0 at 0x1f0-0x1f7 irq 14 on isa wdc0: unit 0 (wd0): <ST351A/X> wd0: 40MB (83300 total sec), 980 cyl, 5 head, 17 sec, bytes/sec 512 wdc0: unit 1 (wd1): <Maxtor 7345 AT> wd1: 329MB (675450 total sec), 790 cyl, 15 head, 57 sec, bytes/sec 512 wdc1 at 0x170-0x177 irq 15 on isa wdc1: unit 0 (wd2): <ST351A/X> wd2: 40MB (83300 total sec), 980 cyl, 5 head, 17 sec, bytes/sec 512 [....] wd0 is a Seagate ST351A/X with DOS on it. wd1 is a Maxtor 7345 with FreeBSD 1.1.5.1 on it: this is my primary FreeBSD boot drive. wd2 is another Seagate with a single 40 meg FreeBSD partition on it: this I use for scratch. I can boot from either wd0 or wd1. wd2 is only visible while running FreeBSD. (I would need a special driver to make it visible in DOS, and I don't really care enough for DOS to go to that much trouble.) My only regret is that there isn't enough room inside my computer for a 4th disk drive. :) Then again, the second Segate is likely to get the heave-ho before too long, since it recently suffered a head crash. Damn thing is slow as molasses anyway. At any rate, the probe routines in the FreeBSD winchester disk driver probably won't detect a board if the interrupt line isn't working correctly. We could be talking about something as simple as oxidation on the pins of the ISA slot, or maybe a bad trace somewhere on the motherboard. Try using a different slot. Try cleaning the current slot. Try making sure the boards are seated correctly. Try checking to see if gremlins have eaten away the copper cladding on the controllers' edge connectors. Try to make sure there isn't something else using IRQ14. Now... I wonder how much trouble it would be to enable the secondary *floppy* controller. :) -Bill -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Bill Paul System Manager wpaul@ctr.columbia.edu Center for Telecommunications Research Columbia University, New York City ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Møøse Illuminati: ignore it and be confused, or join it and be confusing! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~