From: robin.murphy@arm.com (Robin Murphy)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 0/3] SoCFPGA: L3 NIC driver
Date: Fri, 05 Dec 2014 11:30:10 +0000 [thread overview]
Message-ID: <54819742.3000009@arm.com> (raw)
In-Reply-To: <20141204183730.GB11889@leverpostej>
Hi Mark,
On 04/12/14 18:37, Mark Rutland wrote:
> On Thu, Dec 04, 2014 at 04:30:58PM +0000, Arnd Bergmann wrote:
>> On Sunday 30 November 2014 21:53:31 Robert Schwebel wrote:
>>> On Sun, Nov 30, 2014 at 12:51:58PM +0100, Arnd Bergmann wrote:
>>>>> This series adds support for the SoCFPGA L3 NIC. As the memory range has
>>>>> a lot of holes, where you can not read from, syscon can not be used for
>>>>> this IP core. Instead add a new driver, that knows about all the allowed
>>>>> ranges and guards the access via regmap.
>>>>
>>>> What is an L3 NIC?
>>>
>>> Fron the SoCFPGA manual:
>>>
>>> "
>>> The hard processor system (HPS) level 3 (L3) interconnect and level 4
>>> (L4) peripheral buses are implemented with the ARM CoreLinkTM Network
>>> Interconnect (NIC-301). The NIC-301 provides a foundation for a
>>> high-performance HPS interconnect based on the ARM Advanced
>>> Microcontroller Bus Architecture (AMBA) Advanced eXtensible Interface
>>> (AXI), Advanced High-Performance Bus (AHBTM), and Advanced Peripheral
>>> Bus (APBTM) protocols. The L3 interconnect implements a multilayer,
>>> nonblocking architecture that supports multiple simultaneous
>>> transactions between masters and slaves, including the Cortex-A9
>>> microprocessor unit (MPU) subsystem. The interconnect provides five
>>> independent L4 buses to access control and status registers (CSRs) of
>>> peripherals, managers, and memory controllers Related Information
>>> http://infocenter.arm.com/ Additional information is available in the
>>> AMBA Network Interconnect (NIC-301) Technical Reference Manual, revision
>>> r2p3, which you can download from the ARM info center website.
>>
>> Please put something like this in the introductory mail and later
>> into the pull request then. If the l3-nic is an ARM nic-301, shouldn't
>> the compatible string be "arm,nic-301"?
A common binding like that might work for earlier NIC301 revisions which
were a fairly straightforward N-masters-to-M-slaves IP block. NIC301r2
(and NIC400 after it) is a rather different beast which is massively
configurable and allows manually wiring together various master and
slave ports with switches, register blocks, etc. willy-nilly like some
kind of RTL Lego set. Given that, bindings for individual
implementations make a lot more sense than first appears.
>
> We should also treat the device as a bus, with it's child devices as
> nodes underneath it (rather than a block on the side referred to by
> phandle).
At the risk of reigniting the big hairy topology discussion, a "single"
NIC of this flavour can have multiple unconnected paths through it (as
sounds like may be the case here), with the master ports having entirely
unrelated address maps, so from Linux's point of view it could look like
several different buses which just happen to share a power domain. Add
to that the fun possibility of things like having GPV registers only
visible on one "bus" but controlling remapping of another "bus", and I
think implementation-specific bindings are probably the only way for us
to stay remotely sane.
[Disclaimer: this comes from working on the end-user configuration tool,
so I know more about that than the hardware itself]
Robin.
next prev parent reply other threads:[~2014-12-05 11:30 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-29 20:14 [PATCH v3 0/3] SoCFPGA: L3 NIC driver Steffen Trumtrar
2014-11-29 20:14 ` [PATCH v3 1/3] Documentation: dt: add Altera L3 NIC bindings Steffen Trumtrar
2014-12-02 16:44 ` Dinh Nguyen
2014-11-29 20:14 ` [PATCH v3 2/3] ARM: socfpga: Add driver for the L3 interconnect Steffen Trumtrar
2014-12-02 16:45 ` Dinh Nguyen
2014-12-05 19:51 ` atull
2014-12-05 20:19 ` Steffen Trumtrar
2014-12-15 22:34 ` Pavel Machek
2014-12-16 8:31 ` Steffen Trumtrar
2014-11-29 20:14 ` [PATCH v3 3/3] ARM: dts: socfpga: Add l3nic node Steffen Trumtrar
2014-12-02 16:46 ` Dinh Nguyen
2014-11-30 11:51 ` [PATCH v3 0/3] SoCFPGA: L3 NIC driver Arnd Bergmann
2014-11-30 20:53 ` Robert Schwebel
2014-12-04 16:30 ` Arnd Bergmann
2014-12-04 18:37 ` Mark Rutland
2014-12-05 11:30 ` Robin Murphy [this message]
2014-12-05 22:18 ` Rob Herring
2014-12-01 10:08 ` Mark Rutland
2014-12-01 10:36 ` Steffen Trumtrar
2014-12-02 16:44 ` Dinh Nguyen
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=54819742.3000009@arm.com \
--to=robin.murphy@arm.com \
--cc=linux-arm-kernel@lists.infradead.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).