Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Nov 2004 06:56:34 -0700
From:      Scott Long <scottl@freebsd.org>
To:        Chuck Swiger <cswiger@mac.com>
Cc:        "Wilkinson, Alex" <alex.wilkinson@dsto.defence.gov.au>
Subject:   Re: Transparent bridges (a. k. a. HUB-to-PCI bridges)?
Message-ID:  <41A49312.5@freebsd.org>
In-Reply-To: <41A416E7.4030107@mac.com>
References:  <200411231226.38172.jkim@niksun.com> <200411231343.22760.jhb@FreeBSD.org> <20041124002603.GD20881@squash.dsto.defence.gov.au> <41A416E7.4030107@mac.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Chuck Swiger wrote:
> Wilkinson, Alex wrote:
> 
>> Trying to understand your nomenclature John, so that I can follow this 
>> thread.
> 
> 
> I'm no John Kennedy, nor even John Baldwin, but I'll give this a shot.  :-)
> 
>> Can you please elaborate on the following .... please ;-\
>>
>> 1. PCI bridges    - Host-PCI
>>    - PCI-PCI
> 
> 
> A host-PCI bridge is typically part of the "southbridge" chip of modern 
> motherboards; on Intel motherboards this is also called the ICH chip, 
> such as the 82801AA/BA/CA/etc.  VIA Southbridges include the 
> VT8233/8235/8237/etc.

Nope.  The southbridge typically holds a PCI-ISA bridge.  The host-pci
bridge is usually found in the northbridge part of the chipset.  The
whole point it to bridge the CPU to one or more PCI buses.

> 
> A PCI-PCI bridge is commonly found on multifunction PCI cards, an 
> example would be the DEC 21151 chip found on various four-port NICs.

PCI-PCI bridges are also quite common on motherboards, especially with
PCI-X.

> 
>> 2. OOPish device object (device_t) ? 
> 
> 
> True OOP involves encapsulation, polymorphism, and inheritence, and 
> requires language support which is not really available in pure C.  That 
> being said, careful programming in C lets you create several 
> closely-related structs for different types of "objects" which can all 
> be utilized by a common set of functions.
> 
> The most common example of this would probably be the 
> protocol-independent struct sockaddr, which can handle IPv4, IPv6, and 
> other types of network address formats using a common structure (or a 
> related group of structures, depending on how you want to look at it).  
> See "man getaddrinfo".

The particular reference to device_t refers to it's ability to have
limited inheritence of methods from it's parent 'class'.

> 
>> 3. $PIR table 
> 
> 
> Stands for PCI Interrupt Routing table.  When your computer boots, the 
> BIOS is responsible for configuring at least the devices required to 
> boot such that they and the BIOS agree as to which IRQ each device ought 
> to use.
> 
> Blah, I couldn't find a good link outside of Microsoft, but see here:
> 
> http://www.microsoft.com/whdc/archive/pciirq.mspx
> 

Scott



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