From: "Ira W. Snyder" <iws@ovro•caltech.edu>
To: David Hawkins <dwh@ovro•caltech.edu>
Cc: Saravanan S <sarans1987@gmail•com>,
"linuxppc-dev@lists•ozlabs.org" <linuxppc-dev@lists•ozlabs.org>
Subject: Re: Ethernet over PCIe driver for Inter-Processor Communication
Date: Thu, 22 Aug 2013 15:29:51 -0700 [thread overview]
Message-ID: <20130822222951.GA13201@ovro.caltech.edu> (raw)
In-Reply-To: <5216860A.6060409@ovro.caltech.edu>
On Thu, Aug 22, 2013 at 02:43:38PM -0700, David Hawkins wrote:
> Hi S.Saravanan,
>
> > I have a custom board with four MPC8640 nodes connected over
> > a transparent PCI express switch . In this configuration one node is
> > configured as host(Root Complex) and others as agents(End Point). Thus
> > the legacy PCI software works fine . However the mainline kernel lacks
> > any standard support for Inter-processor communication over PCI. I am
> > in the process of developing an Ethernet over PCI driver for the same
> > on the lines of rionet . However I am facing the following problems.
> >
> > a) I can generate MSI interrupts from End Point to Root Complex over
> > PCI . But the vice-versa is not possible . However i need a method to
> > interrupt the End Point from the Root Complex to complete my driver.
>
> Root complex's would normally interrupt a device via a PCIe write
> to a register in a BAR on the end-point (or in extended configuration
> space registers depending on the hardware implementation).
>
> > Only previous references I can find are this post
> > http://www.mail-archive.com/linuxppc-dev@lists.ozlabs.org/msg25765.html
> > However this uses doorbells and I think may not be possible in MPC8640.
>
> PCIe drivers need some way to interrupt the processor, so there must
> be an option somewhere ... for example, what are the message register
> interrupts intended for? See p479
>
> http://cache.freescale.com/files/32bit/doc/ref_manual/MPC8641DRM.pdf
>
> (Ira and myself have not used the MPC8640 so are not familiar with
> its user manual).
>
> > Any pointers on this issue and guidance on this driver development would
> > be helpful .
>
> We use the Ethernet-over-PCI driver that Ira developed. Our next boards
> will use an MPC8308, but we don't currently have any in a PCIe device
> form-factor (just the MPC8038RDB), so he has not ported it to PCIe.
>
> Feel free to discuss your ideas for your PCIe driver (eg., why start
> with rionet rather than Ira's driver), either on-list, or email Ira
> and myself directly.
>
One further note. You might want to look at rproc/rpmsg and their virtio
driver support. That seems to be where the Linux world is moving for
inter-processor communications. See for example the ARM CPUs interfacing
with DSPs.
Ira
next prev parent reply other threads:[~2013-08-22 22:42 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-22 15:34 Ethernet over PCIe driver for Inter-Processor Communication Saravanan S
2013-08-22 21:38 ` Scott Wood
2013-08-22 21:43 ` David Hawkins
2013-08-22 22:29 ` Ira W. Snyder [this message]
2013-08-25 15:20 ` Saravanan S
2013-08-25 22:38 ` David Hawkins
2013-08-30 17:37 ` Saravanan S
2013-08-30 18:06 ` David Hawkins
2013-09-04 18:34 ` Saravanan S
2013-09-04 19:28 ` David Hawkins
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=20130822222951.GA13201@ovro.caltech.edu \
--to=iws@ovro$(echo .)caltech.edu \
--cc=dwh@ovro$(echo .)caltech.edu \
--cc=linuxppc-dev@lists$(echo .)ozlabs.org \
--cc=sarans1987@gmail$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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