*BSD News Article 13598


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