Thread (200 messages) 200 messages, 9 authors, 2013-02-12
STALE4883d

[PATCH v2 18/27] arm: plat-orion: add more flexible PCI configuration space read/write functions

From: Jason Gunthorpe <hidden>
Date: 2013-01-29 17:40:08
Also in: linux-pci

On Tue, Jan 29, 2013 at 09:40:03AM +0100, Thomas Petazzoni wrote:
Dear Jason Gunthorpe,

On Mon, 28 Jan 2013 12:51:11 -0700, Jason Gunthorpe wrote:
quoted
On Mon, Jan 28, 2013 at 07:56:27PM +0100, Thomas Petazzoni wrote:
quoted
However, with the usage of the emulated PCI host bridge and emulated
PCI-to-PCI bridges, this is not the case: bus number 0 is the emulated
bus on which the emulated PCI-to-PCI bridges sit, so from the Linux
point of view, the real busses start at bus 1, but from a hardware
point of view, they start at bus 0.
Hum.. This is a bit funny sounding, can you confirm..
Might be yes, but IIRC, when I try to enumerate the devices in the PCIe
interface 0 (from a hardware point of view), passing a bus number of 1
in the PCI configuration space access registers, then it simply doesn't
work.
Hurm. The trick is you need the chip to issue a type 0 request. The
Marvell docs say this happens automatically basd on the 'internal bus
number'

The only other reference to bus number is in the PCI Express Status
Register (41A04), so that probably needs to be set to the subordinate
bus number of the bridge.
quoted
The bus number programmed into all the end points must match the Linux
number. Ie the PCI-E Link Description register of end point devices
What is this PCI-E Link Description register ? Where is it located ?
Hum, looks like this is only for root complex links not end devices -
PCI-X had a register for this but it seems to have been removed in
PCI-E.

Jason
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help