Return to BSD News archive
Received: by minnie.vk1xwt.ampr.org with NNTP id AA325 ; Sun, 31 Jan 93 14:03:03 EST Path: sserve!manuel.anu.edu.au!munnari.oz.au!spool.mu.edu!howland.reston.ans.net!zaphod.mps.ohio-state.edu!cs.utexas.edu!qt.cs.utexas.edu!news.Brown.EDU!stanley.cis.Brown.EDU!tim From: tim@stanley.cis.Brown.EDU (Timothy Miller) Newsgroups: comp.unix.bsd Subject: [386BSD] Any idea why IRQ 12 would not be getting through? Date: 30 Jan 1993 23:17:51 GMT Organization: Brown University Lines: 42 Distribution: world Message-ID: <1kf2avINN26m@cat.cis.Brown.EDU> NNTP-Posting-Host: stanley.cis.brown.edu I have an IBM streaming tape adapter card taken from an RT (where it works). It has io addresses at 1e8-1ef and at 6f4 (the interrupt reset address), and sends IRQ 12. To be as sure as possible that I'm not programming the card wrong, I've taken the driver source from the RT and ported it to BSD. As far as I can tell, the card and drive are working perfectly with the exception that my interrupt routine is not getting called. (The reason I think everything else is working is that I added a timeout to keep calling the interrupt routine pretending that an interrupt has occurred. But this is about 30 times slower than it should be, because either I poll very very often and load the cpu or I don't poll often enough, and there are delays before the cpu recognizes that a block has been successfully read/written etc.) The changes to conf.c and my machine configuration file are both based on the wt and wd drivers. Using ddb, I can tell that IRQ12 is not masked off in either the cpl or imen. Since the code for loading the vector (in isa.c) hasn't been touched by me, and correctly loads the vectors for other drivers, even high-IRQ ones, I assume that that is working correctly too. The card isn't returning any errors or anything, and the reset instructions and interrupt enable stuff is all being performed correctly, and the same as what it does on the RT. The vector statement on the driver line in my config file names the right function, this function is not defined anywhere else, and as far as I can tell, there aren't any namespace conflicts (I'm calling this driver "st", vector stintr, etc.). The driver line also names the right IRQ, 12. I know stintr isn't being called because the first thing it does is printf, and also I've set a ddb breakpoint for it. Does anyone have any idea why I'm not getting this IRQ12? Is there something strange going on I haven't found? Unfortunately there are no jumpers or anything reconfigurable on the card, and I don't have any means of looking at the hardware IRQ12 trace to see if it's actually being raised, nor do I have an in-circuit debugger. I have tried moving the card to a different slot, moving it while it's in the slot, etc, looking for bad connections, but to no avail. If noone knows about anything strange I'm overlooking, does anyone have any ideas about how to proceed trying to debug this? Has anyone out there successfully gotten a card on IRQ12 to work? Does anyone know if there's anything strange with IRQ12 on my machine (which is a Gateway 2000 4DX-33V with 1 340M IDE hard drive, the two floppies, a tower case, the ATI Ultra Pro VLB video card, and nothing else in the main unit. I checked the video card, and none of the IRQ jumpers are turned on, so that's not it. I've checked the Gateway manual, but it doesn't list anything at any of the tape drive adapter's io addresses or IRQ. I don't see anything else in my machine config for the addresses or IRQ (that's not commented out, at least). I have previously gotten an RT card to work in my computer (an Ungerman-Bass ethernet card, with a driver I wrote for 386BSD), so it wouldn't seem to be a bus incompatibility. Help? Tim