devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Tanmay Inamdar <tinamdar@apm.com>,
	devicetree@vger.kernel.org, Jon Masters <jcm@redhat.com>,
	linux-doc@vger.kernel.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	patches <patches@apm.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Grant Likely <grant.likely@linaro.org>,
	Rob Landley <rob@landley.net>,
	linux-pci@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [RFC PATCH 3/3] dt-bindings: pci: xgene pcie device tree bindings
Date: Tue, 7 Jan 2014 11:31:48 -0700	[thread overview]
Message-ID: <20140107183148.GD4227@obsidianresearch.com> (raw)
In-Reply-To: <201401071635.02006.arnd@arndb.de>

On Tue, Jan 07, 2014 at 04:35:01PM +0100, Arnd Bergmann wrote:

> > >> +                       0x00000000 0x0 0xd0000000 0xe0 0xd0000000 0x0 0x00200000 /* cfg */
> > >
> > > config space is not normally in the ranges property, and I think you will need
> > > it in the pcie node itself as a 'reg' property so the code can access it.
> > 
> > pcie-designware.c does it that way. I just followed their implementation.
> 
> I don't remember what led to that, it still seems wrong and I can't
> find anything in the PCI binding for host bridges telling their
> config space this way.

When we discussed the mvebu PCI driver (which is, so far, the most
throughly discussed PCI binding) it was concluded that the config
space ranges like the above was OK only if it exactly described the
standard ECAM layout.

Idea being that standard/core code should be able to see that ranges,
map the range and issue config accesses via the ECAM rules.

> > >> +             interrupt-map-mask = <0x0 0x0 0x0 0x7>;
> > >> +             interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x1>;
> > >
> > > Only one IRQ for all devices?
> > 
> > The node represents a port. I believe that Linux framework uses only
> > one of the legacy IRQs per port. Rest all remain unused. Hence I
> > removed them. Please correct me if I am wrong.
> 
> Any PCI device can normally have four interrupts (IntA through
> IntD), which are traditionally separate pins on a PCI bus, but get
> emulated on PCIe. While it's not common for any normal device to use
> more than one IRQ, a bridge device will swizzle these (virtual) IRQ
> lines, so a device behind the bridge actually gets a different host
> IRQ.

Agree, the binding should handle all four INTA,B,C,D assertions
delivered to the port. 

If HW is able to decode the 4 ints into seperate Linux interrupt
numbers then that should be described. If HW routes them all to a
single number then interrupt-map-mask should be all 0.

Arnd's point about swizzling effects the layout of the
interrupt-map. When it is placed at the pcie-controller node level the
map will incorporate one swizzle of the on-the-wire INTx messages. If
the HW doesn't swizzle the INTx as the TLP passes through the bridge
then it probably makes more sense to put the interrupt-map in the DT
node of the bridge like mvebu does.

Jason

  parent reply	other threads:[~2014-01-07 18:31 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-23  8:02 [RFC PATCH 0/3] APM X-Gene PCIe driver Tanmay Inamdar
2013-12-23  8:02 ` [RFC PATCH 1/3] pci: APM X-Gene PCIe controller driver Tanmay Inamdar
2014-01-02 21:08   ` Bjorn Helgaas
2014-01-03 12:07   ` Arnd Bergmann
2014-01-07  2:41     ` Tanmay Inamdar
2014-01-07  9:27       ` Arnd Bergmann
2014-01-10  1:20         ` Tanmay Inamdar
2014-01-06  1:47   ` Jingoo Han
2014-01-07  2:45     ` Tanmay Inamdar
2014-01-07  3:31       ` Jingoo Han
2013-12-23  8:02 ` [RFC PATCH 2/3] arm64: dts: APM X-Gene PCIe device tree nodes Tanmay Inamdar
2013-12-23 17:46   ` Jason Gunthorpe
2014-01-02 21:56     ` Tanmay Inamdar
2014-01-03  0:52       ` Jason Gunthorpe
2014-01-07  2:56         ` Tanmay Inamdar
2014-01-07 17:27           ` Jason Gunthorpe
2014-01-10  1:30             ` Tanmay Inamdar
2013-12-23  8:02 ` [RFC PATCH 3/3] dt-bindings: pci: xgene pcie device tree bindings Tanmay Inamdar
     [not found]   ` <1387785725-24262-4-git-send-email-tinamdar-qTEPVZfXA3Y@public.gmane.org>
2014-01-03  9:49     ` Arnd Bergmann
2014-01-07  3:04       ` Tanmay Inamdar
2014-01-07 15:35         ` Arnd Bergmann
2014-01-07 15:44           ` Arnd Bergmann
2014-01-07 18:31           ` Jason Gunthorpe [this message]
2014-01-10  1:32             ` Tanmay Inamdar
2014-01-11  0:12           ` Tanmay Inamdar
2014-01-11 13:06             ` Arnd Bergmann
2013-12-23  8:56 ` [RFC PATCH 0/3] APM X-Gene PCIe driver Tanmay Inamdar

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=20140107183148.GD4227@obsidianresearch.com \
    --to=jgunthorpe@obsidianresearch.com \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=catalin.marinas@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=grant.likely@linaro.org \
    --cc=jcm@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=patches@apm.com \
    --cc=rob@landley.net \
    --cc=tinamdar@apm.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).