PEX 8111 PCI-Express to PCI Bridge and FreeBSD

Konstantin Dimitrov kosio.dimitrov at gmail.com
Fri Dec 28 14:39:17 PST 2007


On Dec 28, 2007 8:04 PM, John Baldwin <jhb at freebsd.org> wrote:
> On Thursday 27 December 2007 08:16:59 am Konstantin Dimitrov wrote:
> > hello All,
> >
> > as far as i understand the documentation of the PEX 8111 PCI
> > Express-to-PCI Bridge, which is freely available here:
> >
> > http://www.plxtech.com/products/expresslane/pex8111.asp
> >
> > it is "Fully Transparent PCI Express to PCI Bridge", but under FreeBSD
> > it doesn't seem to behave as transparent, i.e. it doesn't seem to work
> > well with the standard FreeBSD PCI-PCI bridge driver, because it's not
> > possible to read/write from/to the PCI IC behind PEX 8111.
>
> Can you provide more detail on what you mean by read/write?  Can you not do
> config space transactions to child devices of the bridge or can you not
> access mapped BARs of child devices or what exactly?

i can access the PCI configuration registers of the child device
(Envy24HT) connected to the bridge (PEX 8111):

# pciconf -lv
.................
pcib5 at pci0:4:0:0:       class=0x060400 card=0x00000000 chip=0x811110b5 rev=0x21
hdr=0x01
    vendor     = 'PLX Technology Inc.'
    device     = 'PEX 8111 PCI Express-to-PCI Bridge'
    class      = bridge
    subclass   = PCI-PCI
none1 at pci0:5:4:0:       class=0x040100 card=0x41543138 chip=0x17241412 rev=0x01
hdr=0x00
    vendor     = 'VIA Technologies Inc (Was: IC Ensemble Inc)'
    device     = 'VT1720/24 Envy24PT/HT PCI Multi-Channel Audio Controller'
    class      = multimedia
    subclass   = audio

and i can read them:

# pciconf -r pci0:5:4:0: 0:31
17241412 02100005 04010001 00002000
0000a001 0000a401 00000000 00000000

and write to them:

# pciconf -w pci0:5:4:0 0x04 0x04
# pciconf -r pci0:5:4:0: 0:31
17241412 02100004 04010001 00002000
0000a001 0000a401 00000000 00000000

and all those values are the correct values for the child device, but
i can't access mapped BARs of the child device, the code that i'm
testing with is very simple:

http://xkodi.svobodno.com/xkodi/xkodi.c
http://xkodi.svobodno.com/xkodi/xkodi.h
http://xkodi.svobodno.com/xkodi/Makefile

and works if the child (Envy24HT) is connected directly (without the
PEX 8111 bridge) to the PCI bus.

>
> --
> John Baldwin
>


More information about the freebsd-drivers mailing list