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>