Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Sep 1997 20:09:55 +0930
From:      Mike Smith <mike@smith.net.au>
To:        Terry Lambert <tlambert@primenet.com>
Cc:        sos@sos.freebsd.dk (S ren Schmidt), hackers@FreeBSD.ORG
Subject:   Re: INB question 
Message-ID:  <199709181039.UAA00245@word.smith.net.au>
In-Reply-To: Your message of "Thu, 18 Sep 1997 07:28:55 GMT." <199709180728.AAA19024@usr06.primenet.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
> > > OK, I give up: other than calling INT 0x15, AH=0xC0, how do I detect
> > > whether a machine is MCA or not without hard coding it in my kernel
> > > configuration file?
> > 
> > You giving up, so easy ?? naw....
> > 
> > There must be some device or something on a MCA board thats different 
> > form the ISA/EISA/PCI systems, probe for that...
> 
> Well, I can look for MCA cards.  That assumes I have MCA cards installed
> or locally bridged (I have an MCA SCSI on the motherboard, so that'll
> do my machine, but not anyone else's).

If Jonathan can get the early-kernel BIOS call stuff working, int15 may 
still be the "right" way to go.  Until then, how about you look for the 
MCA configuration information?  One would hope that its location and 
format were documented.

Note that Joerg's comment about a nonresponding bus giving random 
values is *WRONG* for most busses; certainly at least ISA and PCI.

The ISA specification explicitly requires bus pullup resistors.  It may 
be unwise to depend on reading 0xff back-to-back with a previous read/
write operation, but the reader is welcome to calculate the RC time 
constant for a transmission line with a few pF of capacitance and a 10K 
(or less) pullup.

For PCI, I would expect Stefan or one of the PCI lawyers to have the 
ultimate answer.  I get the impression that PCI will actually generate 
the equivalent of a "bus error" if a peripheral doesn't respond; in 
reality the question is moot except in the face of defective hardware.

Now, MCA.  I *don't* have an MCA board here to look at, or the hardware 
standard.  If you are reading a port that is guaranteed to return a 
known value on an MCA system, and the alternative is that there's 
nothing there (ISA), then you are generally safe to assume that you can 
expect 0xff to mean ISA, and (magic) to mean MCA.

... be wary of address ranges that may be inhabited by other 
peripherals.   That really goes without saying, doesn't it?

mike

(Hey, last night we pumped our user-mode I/O interface up from 900KB/sec
 to 2.5MB/sec using some bigger FIFOs and a new clocking strategy.  Am 
 I cool or what?  Stuff PCI, ISA rocks!  8)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709181039.UAA00245>