Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Aug 1999 22:08:16 -0400 (EDT)
From:      Zhihui Zhang <zzhang@cs.binghamton.edu>
To:        freebsd-hackers@freebsd.org
Subject:   Configuration mechanism of PCI bus
Message-ID:  <Pine.GSO.3.96.990809214913.20038A-100000@sol.cs.binghamton.edu>

next in thread | raw e-mail | index | archive | help

Even with "PCI System Architecture, 4th edition" at hand, I still have
some problems understanding the code in isa/pcibus.c.  Please point out
any misunderstanding I may have in the following:

(1) At first, you can not modify the address port at 0xcf8 without a FULL
32-bit write.  The routine pci_cfgopen() seems to use this fact.

(2) The constant CONF1_ENABLE_MSK includes 4 higher bus number bits, only
4 bits can be used as bus number, so we can have at most 16 PCI buses. 

(3) The variable "mode1res" seems to refer to any residual left by BIOS in
the address port.  If it is non-zero, we will try to find a device using
configuration mechanism 1. 

(3) The magic constant 0xf870ff excludes many devices.  How it is chosen? 
I guess those excluded devices are not important or supported by FreeBSD. 
It seems to me that if pci_cfgcheck() finds at least one device, then the
configuration mechanism is regarded as correctly detected.

Any help is appreciated.

--------------------------------------------------
Zhihui Zhang.  Please visit http://www.freebsd.org
--------------------------------------------------



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.3.96.990809214913.20038A-100000>