Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!constellation!osuunx.ucc.okstate.edu!moe.ksu.ksu.edu!crcnis1.unl.edu!wupost!uunet!pipex!bnr.co.uk!uknet!cf-cm!paul From: paul@isl.cf.ac.uk (Paul) Newsgroups: comp.os.386bsd.bugs Subject: Re: my bug list Message-ID: <1993Mar29.142429.12369@cm.cf.ac.uk> Date: 29 Mar 93 14:24:28 GMT References: <1993Feb27.235240.7476@coe.montana.edu> <C3yxMK.2Lt@agora.rain.com> <C3zn9C.GDx@flatlin.ka.sub.org> <DERAADT.93Mar26160807@newt.fsa.ca> Sender: news@cm.cf.ac.uk (Network News System) Organization: /usr/local/lib/rn/organisation Lines: 58 In article <DERAADT.93Mar26160807@newt.fsa.ca> deraadt@fsa.ca (Theo de Raadt) writes: >XXprobe() does this: it looks at that address, and checks whether >there really is an XX at that address. It should check if the irq is >correct (or intuit what the irq really is). It should ensure that >whatever it finds there really is an XX. > (discussion about config files deleted) >But then the probe() routine has to be smart enough to figure out what >the irq is. This is somewhat hardware dependent, a few very rare >devices are too dumb to do this, but it's not nearly as much of a >problem as Terry claims it to be. A serial chip can tell you what it's >IRQ is -- it's trivial to generate an IRQ from it. I've seen parallel >hardware that is too dumb (you can generate an interrupt, but do you >really want to send a character to the printer?) > >I should be able to swap the base addresses of all the cards in my >system, and the kernel upon boot should find NO devices. Currently, it >will get fooled in some cases. That's simply due to carelessly written >code. I seem to remember that this thread was started because of the clash between the isolan card and the ne2000 cards (I may be wrong but the argument's relevant anyway). When I sent Lynne my isolan driver the probe routine was just a stub, all it did was extract the ethernet address just assuming the card existed. This was hardly satisfactory but I couldn't find anyway of detecting these cards. When the driver appeared in 0.1 the probe routine checked for the existence of a Lance chip, this check actually assumes that the board is an isolan because of the way these cards access the Lance registers. An improvement but certainly not what is advocated by this thread. Now while the arguments for detecting hardware are all well and good the crux of the matter is the two points above. On the pc there are many cards that you just can't detect by probing them. The isolan cards are in this category. There is absolutely no way to get the irq or dma values from these cards. Unlike the western digital cards there isn't even an id so you can see if it's actually an isolan. These cards have a sixteen byte area of rom which contains the ethernet address and two ports which are used to access the Lance registers. Thats IT. If you can find some way of just recognising these cards, let alone work out its irq etc then you deserve a medal. The only way to configure machines with these cards is to actually know where it is and what it's using and put it in the config file. All the probe routine can do in these cases is make sure the card actually works i.e try and get the card to do something and see if it actually does it. This is basically what the isolan probe does. -- Paul Richards, University of Wales, College Cardiff Internet: paul@isl.cf.ac.uk