Copyright (C) 2015 Freescale Semiconductor Inc.
DPAA2 (Data Path Acceleration Architecture Gen2)
------------------------------------------------
This document provides an overview of the Freescale DPAA2 architecture
and how it is integrated into the Linux kernel.
Contents summary
-DPAA2 overview
-Overview of DPAA2 objects
-DPAA2 Linux driver architecture overview
-bus driver
-DPRC driver
-allocator
-DPIO driver
-Ethernet
-MAC
DPAA2 Overview
--------------
DPAA2 is a hardware architecture designed for high-speeed network
packet processing. DPAA2 consists of sophisticated mechanisms for
processing Ethernet packets, queue management, buffer management,
autonomous L2 switching, virtual Ethernet bridging, and accelerator
(e.g. crypto) sharing.
A DPAA2 hardware component called the Management Complex (or MC) manages the
DPAA2 hardware resources. The MC provides an object-based abstraction for
software drivers to use the DPAA2 hardware.
The MC uses DPAA2 hardware resources such as queues, buffer pools, and
network ports to create functional objects/devices such as network
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:
The diagram below shows an overview of the DPAA2 resource management
architecture:
+--------------------------------------+
| OS |
| DPAA2 drivers |
| | |
+-----------------------------|--------+
|
| (create,discover,connect
| config,use,destroy)
|
DPAA2 |
+------------------------| mc portal |-+
| | |
| +- - - - - - - - - - - - -V- - -+ |
| | | |
| | Management Complex (MC) | |
| | | |
| +- - - - - - - - - - - - - - - -+ |
| |
| Hardware Hardware |
| Resources Objects |
| --------- ------- |
| -queues -DPRC |
| -buffer pools -DPMCP |
| -Eth MACs/ports -DPIO |
| -network interface -DPNI |
| profiles -DPMAC |
| -queue portals -DPBP |
| -MC portals ... |
| ... |
| |
+--------------------------------------+
The MC mediates operations such as create, discover,
connect, configuration, and destroy. Fast-path operations
on data, such as packet transmit/receive, are not mediated by
the MC and are done directly using memory mapped regions in
DPIO objects.
Overview of DPAA2 Objects
-------------------------
The section provides a brief overview of some key DPAA2 objects.
A simple scenario is described illustrating the objects involved
in creating a network interfaces.
-DPRC (Datapath Resource Container)
A DPRC is a container object that holds all the other
types of DPAA2 objects. In the example diagram below there
are 8 objects of 5 types (DPMCP, DPIO, DPBP, DPNI, and DPMAC)
in the container.
+---------------------------------------------------------+
| DPRC |
| |
| +-------+ +-------+ +-------+ +-------+ +-------+ |
| | DPMCP | | DPIO | | DPBP | | DPNI | | DPMAC | |
| +-------+ +-------+ +-------+ +---+---+ +---+---+ |
| | DPMCP | | DPIO | |
| +-------+ +-------+ |
| | DPMCP | |
| +-------+ |
| |
+---------------------------------------------------------+
From the point of view of an OS, a DPRC behaves similar to a plug and
play bus, like PCI. DPRC commands can be used to enumerate the contents
of the DPRC, discover the hardware objects present (including mappable
regions and interrupts).
DPRC.1 (bus)
|
+--+--------+-------+-------+-------+
| | | | |
DPMCP.1 DPIO.1 DPBP.1 DPNI.1 DPMAC.1
DPMCP.2 DPIO.2
DPMCP.3
Hardware objects can be created and destroyed dynamically, providing
the ability to hot plug/unplug objects in and out of the DPRC.
A DPRC has a mappable MMIO region (an MC portal) that can be used
to send MC commands. It has an interrupt for status events (like
hotplug).
All objects in a container share the same hardware "isolation context".
This means that with respect to an IOMMU the isolation granularity
is at the DPRC (container) level, not at the individual object
level.
DPRCs can be defined statically and populated with objects
via a config file passed to the MC when firmware starts
it. There is also a Linux user space tool called "restool"
that can be used to create/destroy containers and objects
dynamically.
-DPAA2 Objects for an Ethernet Network Interface
A typical Ethernet NIC is monolithic-- the NIC device contains TX/RX
queuing mechanisms, configuration mechanisms, buffer management,
physical ports, and interrupts. DPAA2 uses a more granular approach
utilizing multiple hardware objects. Each object provides specialized
functions. Groups of these objects are used by software to provide
Ethernet network interface functionality. This approach provides
efficient use of finite hardware resources, flexibility, and
performance advantages.
The diagram below shows the objects needed for a simple
network interface configuration on a system with 2 CPUs.
+---+---+ +---+---+
CPU0 CPU1
+---+---+ +---+---+
| |
+---+---+ +---+---+
DPIO DPIO
+---+---+ +---+---+
\ /
\ /
\ /
+---+---+
DPNI --- DPBP,DPMCP
+---+---+
|
|
+---+---+
DPMAC
+---+---+
|
port/PHY
Below the objects are described. For each object a brief description
is provided along with a summary of the kinds of operations the object
supports and a summary of key resources of the object (MMIO regions
and IRQs).
-DPMAC (Datapath Ethernet MAC): represents an Ethernet MAC, a
hardware device that connects to an Ethernet PHY and allows
physical transmission and reception of Ethernet frames.
-MMIO regions: none
-IRQs: DPNI link change
-commands: set link up/down, link config, get stats,
IRQ config, enable, reset
-DPNI (Datapath Network Interface): contains TX/RX queues,
network interface configuration, and RX buffer pool configuration
mechanisms. The TX/RX queues are in memory and are identified by
queue number.
-MMIO regions: none
-IRQs: link state
-commands: port config, offload config, queue config,
parse/classify config,
没有合适的资源?快使用搜索试试~ 我知道了~
linux项目工程资料-基于jz2440开发板的linux-4.9版本内核移植.zip
共2000个文件
h:1848个
c:128个
pdf:12个
0 下载量 98 浏览量
2024-02-22
18:14:47
上传
评论
收藏 168.72MB ZIP 举报
温馨提示
开放源代码:Linux项目的所有源代码都是公开的,并允许任何人自由使用和修改。这为开发者提供了极大的灵活性和创新能力,同时也促进了全球范围内的协作和发展。 跨平台性:Linux操作系统可以在多种硬件架构和平台上运行,包括x86、ARM、MIPS等。这使得Linux成为了一种非常灵活的操作系统,适用于各种设备和应用场景。 可定制性:由于Linux的源代码是公开的,用户可以根据自己的需求进行定制和修改。这使得Linux成为了一种非常适合企业级应用的操作系统,可以根据企业的特定需求进行定制和优化。 安全性:Linux操作系统在安全性方面表现出色,具有强大的访问控制和安全机制。这使得Linux成为了一种非常适合用于服务器和安全敏感的应用场景的操作系统。 社区支持:Linux项目拥有一个庞大的开发者社区,这些开发者来自于全球各地,他们为Linux操作系统的开发和维护做出了巨大的贡献。社区的支持使得Linux得以不断发展和完善。 在Linux项目中,有许多重要的组成部分,如Linux内核、GNU工具链、系统管理工具、桌面环境等。这些组件共同构成了完整的Linux操作系统,为用户提供了丰富的功能和灵
资源推荐
资源详情
资源评论
收起资源包目录
linux项目工程资料-基于jz2440开发板的linux-4.9版本内核移植.zip (2000个子文件)
testmgr.c 90KB
aes_generic.c 62KB
wp512.c 60KB
drbg.c 58KB
khazad.c 52KB
tcrypt.c 51KB
twofish_common.c 38KB
des_generic.c 36KB
camellia_generic.c 35KB
gcm.c 33KB
tgr192.c 31KB
cryptd.c 29KB
anubis.c 28KB
ecc.c 24KB
jitterentropy.c 24KB
ccm.c 23KB
serpent_generic.c 21KB
algapi.c 21KB
algif_skcipher.c 21KB
cast5_generic.c 21KB
algif_aead.c 19KB
chacha20poly1305.c 19KB
vmac.c 19KB
fcrypt.c 18KB
rsa-pkcs1pad.c 18KB
mcryptd.c 17KB
seed.c 17KB
pkcs7_parser.c 16KB
x509_cert_parser.c 16KB
blowfish_common.c 16KB
authencesn.c 15KB
blkcipher.c 15KB
async_raid6_recov.c 15KB
ahash.c 15KB
shash.c 14KB
authenc.c 14KB
api.c 14KB
asymmetric_type.c 13KB
gf128mul.c 13KB
pcrypt.c 13KB
cast_common.c 13KB
rmd320.c 13KB
async_pq.c 13KB
ablkcipher.c 13KB
crypto_user.c 13KB
rmd160.c 13KB
keywrap.c 13KB
pkcs7_verify.c 12KB
ctr.c 12KB
cts.c 12KB
crypto_engine.c 12KB
skcipher.c 12KB
verify_pefile.c 11KB
sha256_generic.c 11KB
ansi_cprng.c 11KB
af_alg.c 11KB
rmd256.c 11KB
algif_hash.c 10KB
rmd128.c 10KB
aead.c 10KB
async_xor.c 10KB
cast6_generic.c 10KB
lrw.c 9KB
xts.c 9KB
poly1305_generic.c 8KB
pcbc.c 8KB
async_tx.c 8KB
cmac.c 7KB
rsa.c 7KB
cbc.c 7KB
xcbc.c 7KB
sha512_generic.c 7KB
sha3_generic.c 7KB
hmac.c 7KB
salsa20_generic.c 7KB
tea.c 7KB
raid6test.c 6KB
twofish_generic.c 6KB
algboss.c 6KB
md4.c 6KB
memneq.c 6KB
x509_public_key.c 6KB
jitterentropy-kcapi.c 6KB
seqiv.c 5KB
deflate.c 5KB
crypto_null.c 5KB
algif_rng.c 5KB
rng.c 5KB
ecb.c 5KB
pkcs7_trust.c 5KB
public_key.c 5KB
echainiv.c 5KB
ablk_helper.c 4KB
crc32c_generic.c 4KB
rsa_helper.c 4KB
md5.c 4KB
xor.c 4KB
chacha20_generic.c 4KB
akcipher.c 4KB
crc32_generic.c 4KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
妄北y
- 粉丝: 9846
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功