Copyright (C) 2015 Freescale Semiconductor Inc.
-DPAA2 (Data Path Acceleration Architecture Gen2)
-------------------------------------------------
+DPAA2 (Data Path Acceleration Architecture Gen2) Overview
+---------------------------------------------------------
This document provides an overview of the Freescale DPAA2 architecture
and how it is integrated into the Linux kernel.
-Ethernet
-MAC
-DPAA2 Overview
---------------
+Introduction
+------------
DPAA2 is a hardware architecture designed for high-speeed network
packet processing. DPAA2 consists of sophisticated mechanisms for
interfaces, an L2 switch, or accelerator instances.
The MC provides memory-mapped I/O command interfaces (MC portals)
-which DPAA2 software drivers use to operate on DPAA2 objects:
+which DPAA2 software drivers use to operate on DPAA2 objects.
The diagram below shows an overview of the DPAA2 resource management
architecture:
level.
DPRCs can be defined statically and populated with objects
- via a config file passed to the MC when firmware starts
- it.
+ via a config file passed to the MC when firmware starts it.
-DPAA2 Objects for an Ethernet Network Interface
-IRQs: command completion
-commands: IRQ config, enable, reset
- Object Connections
- ------------------
+Object Connections
+------------------
Some objects have explicit relationships that must
be configured:
Ethernet driver configures the DPBPs associated with
the network interface.
- Interrupts
- ----------
+Interrupts
+----------
All interrupts generated by DPAA2 objects are message
interrupts. At the hardware level message interrupts
generated by devices will normally have 3 components--
For ARM-based SoC this is the same as the stream ID.
-DPAA2 Linux Driver Overview
----------------------------
+DPAA2 Linux Drivers Overview
+----------------------------
This section provides an overview of the Linux kernel drivers for
DPAA2-- 1) the bus driver and associated "DPAA2 infrastructure"
+----+--------------+ | +--+---+
| MC-bus driver | | | PHY |
| | | |driver|
- | /soc/fsl-mc | | +--+---+
+ | /bus/fsl-mc | | +--+---+
+-------------------+ | |
| |
================================ HARDWARE =========|=================|======
a bind of the root DPRC to the DPRC driver
The binding for the MC-bus device-tree node can be consulted here:
Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt
+ The sysfs bind/unbind interfaces for the MC-bus can be consulted here:
+ Documentation/ABI/testing/sysfs-bus-fsl-mc*
DPRC driver
-----------
active in the kernel-- Ethernet, crypto, compression,
etc.
- Ethernet
- --------
+ Ethernet driver
+ ---------------
The Ethernet driver is bound to a DPNI and implements the kernel
interfaces needed to connect the DPAA2 network interface to
the network stack.