devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Gibson <david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>
To: "Saridakis,
	Dean   (US SSA)"
	<dean.saridakis-IHqVjY1oUdQxoycv7ERPSQ@public.gmane.org>
Cc: "devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org"
	<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>
Subject: Re: DTs, Linux drivers & PCI Devices
Date: Tue, 29 Jan 2013 16:12:44 +1100	[thread overview]
Message-ID: <20130129051244.GH16729@truffula.fritz.box> (raw)
In-Reply-To: <B98BBFB67D89184E8E876F332BDBC3E0A0C372-2l2KXrxQdxTyDgnK/IoVOaDTYR/rgm5H+Z/3o1Xo0Lw@public.gmane.org>


[-- Attachment #1.1: Type: text/plain, Size: 2719 bytes --]

On Mon, Jan 28, 2013 at 02:39:54PM +0000, Saridakis, Dean   (US SSA) wrote:
> I've been diving into Linux kernel drivers & device trees for a new project & am looking for some help. 
> 
> First, is it reasonable/possible to define a PCI (PCIe) device in a
> device tree? Seems like you'd have to reference a BAR#s to do this
> (& still have addresses mapped by enumeration).  A couple reasons
> I'm interested in doing this:
> - The PCI device logic will be migrated to a system bus
> - DT properties provide a nice way to pass in driver configuration data 

It's certainly possible.  On traditional OF systems, PCI devices are
always shown in the device tree (and only OF, not the OS does the PCI
probing).  Only including the host bridges in flattened trees is
essentially a relaxation of the usual rules, because it's usually not
necessary and can be awkward for a flat tree system.

> It's not clear to me how the linux kernel interprets/processes the
> device tree. I'm working w/ powerpc (fsl QorIQ). E.g., shouldn't
> everything from the DT show up in /sys/bus/platform/devices ?

Not necessarily, no.  platform devices are sort of a last-resort place
for things that aren't on a well defined bus.  That usually includes
top level devices from an fdt, and often includes things further down
the fdt for platform specific buses.  But things like PCI devices, or
i2c devices or what have you will still appear under the appropriate
bus types.

> I
> noticed that not everything is there, e.g., only 2 of the 4 PCIe
> RCs. (Noticed this after trying to add my own simple dummy entry to
> a reserved reg space as an experiment).

Hrm.  Not showing all the RCs is a bit odd, though.

> Ultimately I'd like to use the DT to describe a set of logic cores
> on a subordinate bus. There is also a subordinate interrupt
> controller, which I think I can figure out how to describe, but am
> not sure how kernel glue works -- somehow I'd need to bind that
> controller to routing code I provide. 
> 
> Documentation I've been reading includes:
> - ePAPR
> - DT wiki
> - kernel doc (driver-model, devicetree)
> - Linux DDs v3 (no coverage of platform drivers) Any other recommended docs?

Although large parts of it won't be terribly relevant to you, you
should probably look at the original OF spec - IEEE 1275, and also the
PCI Bus binding document for IEEE 1275.

http://www.complang.tuwien.ac.at/forth/1275.ps.gz

http://www.openfirmware.org/ofwg/bindings/pci/pci2_1.pdf

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

[-- Attachment #2: Type: text/plain, Size: 192 bytes --]

_______________________________________________
devicetree-discuss mailing list
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
https://lists.ozlabs.org/listinfo/devicetree-discuss

  parent reply	other threads:[~2013-01-29  5:12 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-28 14:39 DTs, Linux drivers & PCI Devices Saridakis, Dean   (US SSA)
     [not found] ` <B98BBFB67D89184E8E876F332BDBC3E0A0C372-2l2KXrxQdxTyDgnK/IoVOaDTYR/rgm5H+Z/3o1Xo0Lw@public.gmane.org>
2013-01-29  5:12   ` David Gibson [this message]
     [not found]     ` <20130129051244.GH16729-W9XWwYn+TF0XU02nzanrWNbf9cGiqdzd@public.gmane.org>
2013-01-30  0:58       ` Saridakis, Dean   (US SSA)
2013-02-05  4:28     ` David Gibson
  -- strict thread matches above, loose matches on Subject: below --
2013-01-25 16:30 Saridakis, Dean   (US SSA)

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=20130129051244.GH16729@truffula.fritz.box \
    --to=david-xt8fgy+axnrb3ne2bgzf6laj5h9x9tb+@public.gmane.org \
    --cc=dean.saridakis-IHqVjY1oUdQxoycv7ERPSQ@public.gmane.org \
    --cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
    /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).