devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
To: Mitch Bradley <wmb@firmworks.com>
Cc: Thierry Reding <thierry.reding@avionic-design.de>,
	Lior Amsalem <alior@marvell.com>,
	Russell King - ARM Linux <linux@arm.linux.org.uk>,
	Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>,
	linux-pci@vger.kernel.org, devicetree-discuss@lists.ozlabs.org,
	Eran Ben-Avi <benavi@marvell.com>,
	Nadav Haklai <nadavh@marvell.com>,
	Maen Suleiman <maen@marvell.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Shadi Ammouri <shadi@marvell.com>,
	Tawfik Bayouk <tawfik@marvell.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 24/32] pci: PCIe driver for Marvell Armada 370/XP systems
Date: Fri, 8 Mar 2013 18:31:52 -0700	[thread overview]
Message-ID: <20130309013152.GA3883@obsidianresearch.com> (raw)
In-Reply-To: <513A7845.6040304@firmworks.com>

On Fri, Mar 08, 2013 at 01:46:13PM -1000, Mitch Bradley wrote:
> On 3/8/2013 10:02 AM, Jason Gunthorpe wrote:
> > On Fri, Mar 08, 2013 at 09:43:11AM -1000, Mitch Bradley wrote:
> > 
> >>>> http://www.spinics.net/lists/arm-kernel/msg228749.html
> >>
> >> The example in that posting looks messed up to me.
> >>
> >> 1) It has "reg = <0x0800 0 0 0 0>", but 0x0800 0 0  is not a valid
> >> address in the address space defined by its parent - because the form of
> >> the parent's ranges property indicates that it's a PCI-style address
> >> form.  0x0800 0 0 lacks the top bits that indicate non-relocatable and
> >> the type (I/O, memory, etc).
> > 
> > You need to review the OF PCI bindings to make sense of this.  The
> > subnodes are PCI devices. Those PCI devices show up in the
> > configuration space (ie lspci). They are the PCI root port bridges.
> 
> As it turns out, I wrote those bindings, almost 20 years ago.
> 
> Having dug through old versions of that patch, I think I see the source
> of the confusion.

Not sure, I think this has gone into a weird tangent, your conclusions
don't match how the PCI-E root complex is presented to the kernel.

Lets just go back to the start?

The pci-controller node is a root complex.

The children of that node are elements in the root complex - they are
the root port bridges. They are all on PCI bus 0.

Each root port bridge responds to configuration cycles, and has a PCI
configuration space. They show up in lspci.

The host controller device driver knows how to issue configuration
cycles, and it knows how to deliver configuration cycles on bus 0 to
the bridges.

This one:
+			pcie@0,0 {
+				device_type = "pci";
+				reg = <0x0800 0 0 0 0>;

Responds to bus 0, device 1, function 0.

Each root port bridge has an associated non-PCI MMIO address
space. The child above is associated with 0xd0040000. This MMIO
address space is needed by the host controller driver to operate the
port.

The text after the @ is a mistake, Linux doesn't enforce anything
about this text so nobody noticed till now, it should be corrected to
@1,0, similarly for the second one.

Also, from your comments the top level should gain a 'device_type =
"pci"'.

So, from that point, does the DT start to make sense? Are there other
problems?

The question at hand is how do you associate the non-PCI MMIO space
0xd0040000 with the root port bridge 'pcie@1,0' ? The patch proposes
to use a reg array in the controller plus reg-names to do this.

I have trouble making sense of your suggestions to switch away from
5dw addressing. It is critical that the DT child stanza be associated
with the PCI discovered root port bridge. By my understanding Linux
does this based on the configuration space format 'reg' value. How is
that association possible if you switch things away from 5dw
addressing?

Also, this is for firmware-less embedded. Linux is required to scan
the bus and do full address assignment of all PCI devies, including
the root port bridges. The ranges property on the top node specifies
the addressing apertures that are available for this process. This is
common practice, there are many examples of this in kernel dts for PCI
controllers.

It is impossible to specify any detail for the bridges (be it address
ranges or bus number ranges) because we have no idea what discovery
will find, or what values Linux will choose to assign.

> In neither case would you need the controversial "reg-names" thing.

reg-names has been a standard feature in the Linux kernel for a bit
already..

Thanks a lot for looking at this,
Jason

  reply	other threads:[~2013-03-09  1:31 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1360686546-24277-1-git-send-email-thomas.petazzoni@free-electrons.com>
     [not found] ` <1360686546-24277-25-git-send-email-thomas.petazzoni@free-electrons.com>
     [not found]   ` <20130212223511.GB31555@obsidianresearch.com>
     [not found]     ` <20130306105441.4d24033e@skate>
     [not found]       ` <20130306121118.GA17079@avionic-0098.mockup.avionic-design.de>
     [not found]         ` <20130306180946.GA2433@obsidianresearch.com>
     [not found]           ` <20130307080832.GD3451@avionic-0098.mockup.avionic-design.de>
     [not found]             ` <20130307174955.GC20840@obsidianresearch.com>
     [not found]               ` <20130307194830.GA1811@avionic-0098.mockup.avionic-design.de>
     [not found]                 ` <20130307200235.GB20695@obsidianresearch.com>
     [not found]                   ` <20130307200235.GB20695-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-07 20:47                     ` [PATCH 24/32] pci: PCIe driver for Marvell Armada 370/XP systems Thierry Reding
2013-03-08  0:05                       ` Rob Herring
2013-03-08  7:14                         ` Thierry Reding
2013-03-08 16:52                           ` Jason Gunthorpe
2013-03-08 19:12                             ` Thierry Reding
     [not found]                               ` <20130308191227.GA6551-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2013-03-08 19:43                                 ` Mitch Bradley
2013-03-08 20:02                                   ` Jason Gunthorpe
     [not found]                                     ` <20130308200245.GC29435-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-08 20:13                                       ` Thierry Reding
2013-03-10 15:09                                         ` Thomas Petazzoni
2013-03-11  8:08                                           ` Thierry Reding
2013-03-08 23:46                                       ` Mitch Bradley
2013-03-09  1:31                                         ` Jason Gunthorpe [this message]
     [not found]                                           ` <20130309013152.GA3883-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-10  4:52                                             ` Mitch Bradley
2013-03-10  6:55                                               ` Jason Gunthorpe
     [not found]                                                 ` <20130310065539.GA14704-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-11  5:46                                                   ` Mitch Bradley
     [not found]                                                     ` <513D6F9C.9000100-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2013-03-11  7:46                                                       ` Thierry Reding
     [not found]                                                         ` <20130311074615.GA6365-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2013-03-11 18:04                                                           ` Mitch Bradley
2013-03-11 18:23                                                             ` Jason Gunthorpe
     [not found]                                                               ` <20130311182339.GB10992-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-11 19:49                                                                 ` Mitch Bradley
2013-03-11 18:15                                                     ` Jason Gunthorpe
     [not found]                                                       ` <20130311181554.GA10992-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-11 21:50                                                         ` Mitch Bradley
2013-03-11 23:25                                                           ` Jason Gunthorpe
     [not found]                                                             ` <20130311232516.GA13873-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-11 23:38                                                               ` Mitch Bradley
     [not found]                                                                 ` <513E6AFE.3090304-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2013-03-12  7:08                                                                   ` Thierry Reding
2013-03-12 15:57                                                                     ` Jason Gunthorpe
2013-03-12 20:38                                                                       ` Thierry Reding
2013-03-12 21:03                                                                         ` Jason Gunthorpe
2013-03-12 21:30                                                                           ` Thierry Reding
2013-03-12 22:08                                                                             ` Jason Gunthorpe
2013-03-12 23:25                                                                               ` Mitch Bradley
2013-03-13  8:18                                                                               ` Thierry Reding
2013-03-13 17:02                                                                                 ` Jason Gunthorpe
     [not found]                                                                                   ` <20130313170205.GB24042-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-13 19:26                                                                                     ` Thierry Reding
2013-03-13 19:59                                                                                       ` Jason Gunthorpe
2013-03-13 20:54                                                                                         ` Thierry Reding
2013-03-13 20:58                                                                                       ` Mitch Bradley
2013-03-13 21:33                                                                                         ` Thierry Reding
2013-03-13 22:48                                                                                           ` Mitch Bradley
2013-03-14  0:43                                                                                             ` Rob Herring
2013-03-14  1:20                                                                                               ` Mitch Bradley
2013-03-14  7:11                                                                                             ` Thierry Reding
2013-03-14  4:56                                                                                           ` Stephen Warren
     [not found]                                                                                         ` <5140E85A.3040900-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2013-03-13 22:02                                                                                           ` Thierry Reding
2013-03-13 22:21                                                                                             ` Jason Gunthorpe
2013-03-14  9:01                                                                                               ` Thierry Reding
2013-03-14 17:25                                                                                                 ` Jason Gunthorpe
2013-03-14 20:38                                                                                                   ` Thierry Reding
2013-03-14 21:05                                                                                                     ` Jason Gunthorpe
2013-03-14 21:10                                                                                                     ` Mitch Bradley
2013-03-14 21:09                                                                                                   ` Thierry Reding
2013-03-14 21:29                                                                                                     ` Jason Gunthorpe
2013-03-14 21:37                                                                                                       ` Thierry Reding
2013-03-13 22:22                                                                                         ` Jason Gunthorpe
2013-03-09  8:58                               ` Thomas Petazzoni
2013-03-08 23:12                           ` Rob Herring
     [not found]                             ` <513A7044.1020700-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-03-09 11:10                               ` Thierry Reding
2013-03-10  5:04                               ` Mitch Bradley
2013-03-10 15:06                                 ` Thomas Petazzoni
2013-03-10 18:33                                   ` Mitch Bradley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130309013152.GA3883@obsidianresearch.com \
    --to=jgunthorpe@obsidianresearch.com \
    --cc=alior@marvell.com \
    --cc=andrew@lunn.ch \
    --cc=benavi@marvell.com \
    --cc=bhelgaas@google.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=jason@lakedaemon.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=maen@marvell.com \
    --cc=nadavh@marvell.com \
    --cc=shadi@marvell.com \
    --cc=tawfik@marvell.com \
    --cc=thierry.reding@avionic-design.de \
    --cc=wmb@firmworks.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).