Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 29 Dec 2007 00:39:15 +0200
From:      "Konstantin Dimitrov" <kosio.dimitrov@gmail.com>
To:        "John Baldwin" <jhb@freebsd.org>
Cc:        freebsd-drivers@freebsd.org
Subject:   Re: PEX 8111 PCI-Express to PCI Bridge and FreeBSD
Message-ID:  <8103ad500712281439h513c288cke761a0ee45c42f18@mail.gmail.com>
In-Reply-To: <200712281304.47922.jhb@freebsd.org>
References:  <8103ad500712270516l5db13e1ao388835d01fd19fc3@mail.gmail.com> <200712281304.47922.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Dec 28, 2007 8:04 PM, John Baldwin <jhb@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@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@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
>



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