forked from Freescale/linux-fslc
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: 1) Made TCP congestion control documentation match current reality, from Anmol Sarma. 2) Various build warning and failure fixes from Arnd Bergmann. 3) Fix SKB list leak in ipv6_gso_segment(). 4) Use after free in ravb driver, from Eugeniu Rosca. 5) Don't use udp_poll() in ping protocol driver, from Eric Dumazet. 6) Don't crash in PCI error recovery of cxgb4 driver, from Guilherme Piccoli. 7) _SRC_NAT_DONE_BIT needs to be cleared using atomics, from Liping Zhang. 8) Use after free in vxlan deletion, from Mark Bloch. 9) Fix ordering of NAPI poll enabled in ethoc driver, from Max Filippov. 10) Fix stmmac hangs with TSO, from Niklas Cassel. 11) Fix crash in CALIPSO ipv6, from Richard Haines. 12) Clear nh_flags properly on mpls link up. From Roopa Prabhu. 13) Fix regression in sk_err socket error queue handling, noticed by ping applications. From Soheil Hassas Yeganeh. 14) Update mlx4/mlx5 MAINTAINERS information. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (78 commits) net: stmmac: fix a broken u32 less than zero check net: stmmac: fix completely hung TX when using TSO net: ethoc: enable NAPI before poll may be scheduled net: bridge: fix a null pointer dereference in br_afspec ravb: Fix use-after-free on `ifconfig eth0 down` net/ipv6: Fix CALIPSO causing GPF with datagram support net: stmmac: ensure jumbo_frm error return is correctly checked for -ve value Revert "sit: reload iphdr in ipip6_rcv" i40e/i40evf: proper update of the page_offset field i40e: Fix state flags for bit set and clean operations of PF iwlwifi: fix host command memory leaks iwlwifi: fix min API version for 7265D, 3168, 8000 and 8265 iwlwifi: mvm: clear new beacon command template struct iwlwifi: mvm: don't fail when removing a key from an inexisting sta iwlwifi: pcie: only use d0i3 in suspend/resume if system_pm is set to d0i3 iwlwifi: mvm: fix firmware debug restart recording iwlwifi: tt: move ucode_loaded check under mutex iwlwifi: mvm: support ibss in dqa mode iwlwifi: mvm: Fix command queue number on d0i3 flow iwlwifi: mvm: rs: start using LQ command color ...
- Loading branch information
Showing
96 changed files
with
781 additions
and
486 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,194 @@ | ||
The QorIQ DPAA Ethernet Driver | ||
============================== | ||
|
||
Authors: | ||
Madalin Bucur <[email protected]> | ||
Camelia Groza <[email protected]> | ||
|
||
Contents | ||
======== | ||
|
||
- DPAA Ethernet Overview | ||
- DPAA Ethernet Supported SoCs | ||
- Configuring DPAA Ethernet in your kernel | ||
- DPAA Ethernet Frame Processing | ||
- DPAA Ethernet Features | ||
- Debugging | ||
|
||
DPAA Ethernet Overview | ||
====================== | ||
|
||
DPAA stands for Data Path Acceleration Architecture and it is a | ||
set of networking acceleration IPs that are available on several | ||
generations of SoCs, both on PowerPC and ARM64. | ||
|
||
The Freescale DPAA architecture consists of a series of hardware blocks | ||
that support Ethernet connectivity. The Ethernet driver depends upon the | ||
following drivers in the Linux kernel: | ||
|
||
- Peripheral Access Memory Unit (PAMU) (* needed only for PPC platforms) | ||
drivers/iommu/fsl_* | ||
- Frame Manager (FMan) | ||
drivers/net/ethernet/freescale/fman | ||
- Queue Manager (QMan), Buffer Manager (BMan) | ||
drivers/soc/fsl/qbman | ||
|
||
A simplified view of the dpaa_eth interfaces mapped to FMan MACs: | ||
|
||
dpaa_eth /eth0\ ... /ethN\ | ||
driver | | | | | ||
------------- ---- ----------- ---- ------------- | ||
-Ports / Tx Rx \ ... / Tx Rx \ | ||
FMan | | | | | ||
-MACs | MAC0 | | MACN | | ||
/ dtsec0 \ ... / dtsecN \ (or tgec) | ||
/ \ / \(or memac) | ||
--------- -------------- --- -------------- --------- | ||
FMan, FMan Port, FMan SP, FMan MURAM drivers | ||
--------------------------------------------------------- | ||
FMan HW blocks: MURAM, MACs, Ports, SP | ||
--------------------------------------------------------- | ||
|
||
The dpaa_eth relation to the QMan, BMan and FMan: | ||
________________________________ | ||
dpaa_eth / eth0 \ | ||
driver / \ | ||
--------- -^- -^- -^- --- --------- | ||
QMan driver / \ / \ / \ \ / | BMan | | ||
|Rx | |Rx | |Tx | |Tx | | driver | | ||
--------- |Dfl| |Err| |Cnf| |FQs| | | | ||
QMan HW |FQ | |FQ | |FQs| | | | | | ||
/ \ / \ / \ \ / | | | ||
--------- --- --- --- -v- --------- | ||
| FMan QMI | | | ||
| FMan HW FMan BMI | BMan HW | | ||
----------------------- -------- | ||
|
||
where the acronyms used above (and in the code) are: | ||
DPAA = Data Path Acceleration Architecture | ||
FMan = DPAA Frame Manager | ||
QMan = DPAA Queue Manager | ||
BMan = DPAA Buffers Manager | ||
QMI = QMan interface in FMan | ||
BMI = BMan interface in FMan | ||
FMan SP = FMan Storage Profiles | ||
MURAM = Multi-user RAM in FMan | ||
FQ = QMan Frame Queue | ||
Rx Dfl FQ = default reception FQ | ||
Rx Err FQ = Rx error frames FQ | ||
Tx Cnf FQ = Tx confirmation FQs | ||
Tx FQs = transmission frame queues | ||
dtsec = datapath three speed Ethernet controller (10/100/1000 Mbps) | ||
tgec = ten gigabit Ethernet controller (10 Gbps) | ||
memac = multirate Ethernet MAC (10/100/1000/10000) | ||
|
||
DPAA Ethernet Supported SoCs | ||
============================ | ||
|
||
The DPAA drivers enable the Ethernet controllers present on the following SoCs: | ||
|
||
# PPC | ||
P1023 | ||
P2041 | ||
P3041 | ||
P4080 | ||
P5020 | ||
P5040 | ||
T1023 | ||
T1024 | ||
T1040 | ||
T1042 | ||
T2080 | ||
T4240 | ||
B4860 | ||
|
||
# ARM | ||
LS1043A | ||
LS1046A | ||
|
||
Configuring DPAA Ethernet in your kernel | ||
======================================== | ||
|
||
To enable the DPAA Ethernet driver, the following Kconfig options are required: | ||
|
||
# common for arch/arm64 and arch/powerpc platforms | ||
CONFIG_FSL_DPAA=y | ||
CONFIG_FSL_FMAN=y | ||
CONFIG_FSL_DPAA_ETH=y | ||
CONFIG_FSL_XGMAC_MDIO=y | ||
|
||
# for arch/powerpc only | ||
CONFIG_FSL_PAMU=y | ||
|
||
# common options needed for the PHYs used on the RDBs | ||
CONFIG_VITESSE_PHY=y | ||
CONFIG_REALTEK_PHY=y | ||
CONFIG_AQUANTIA_PHY=y | ||
|
||
DPAA Ethernet Frame Processing | ||
============================== | ||
|
||
On Rx, buffers for the incoming frames are retrieved from one of the three | ||
existing buffers pools. The driver initializes and seeds these, each with | ||
buffers of different sizes: 1KB, 2KB and 4KB. | ||
|
||
On Tx, all transmitted frames are returned to the driver through Tx | ||
confirmation frame queues. The driver is then responsible for freeing the | ||
buffers. In order to do this properly, a backpointer is added to the buffer | ||
before transmission that points to the skb. When the buffer returns to the | ||
driver on a confirmation FQ, the skb can be correctly consumed. | ||
|
||
DPAA Ethernet Features | ||
====================== | ||
|
||
Currently the DPAA Ethernet driver enables the basic features required for | ||
a Linux Ethernet driver. The support for advanced features will be added | ||
gradually. | ||
|
||
The driver has Rx and Tx checksum offloading for UDP and TCP. Currently the Rx | ||
checksum offload feature is enabled by default and cannot be controlled through | ||
ethtool. | ||
|
||
The driver has support for multiple prioritized Tx traffic classes. Priorities | ||
range from 0 (lowest) to 3 (highest). These are mapped to HW workqueues with | ||
strict priority levels. Each traffic class contains NR_CPU TX queues. By | ||
default, only one traffic class is enabled and the lowest priority Tx queues | ||
are used. Higher priority traffic classes can be enabled with the mqprio | ||
qdisc. For example, all four traffic classes are enabled on an interface with | ||
the following command. Furthermore, skb priority levels are mapped to traffic | ||
classes as follows: | ||
|
||
* priorities 0 to 3 - traffic class 0 (low priority) | ||
* priorities 4 to 7 - traffic class 1 (medium-low priority) | ||
* priorities 8 to 11 - traffic class 2 (medium-high priority) | ||
* priorities 12 to 15 - traffic class 3 (high priority) | ||
|
||
tc qdisc add dev <int> root handle 1: \ | ||
mqprio num_tc 4 map 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 hw 1 | ||
|
||
Debugging | ||
========= | ||
|
||
The following statistics are exported for each interface through ethtool: | ||
|
||
- interrupt count per CPU | ||
- Rx packets count per CPU | ||
- Tx packets count per CPU | ||
- Tx confirmed packets count per CPU | ||
- Tx S/G frames count per CPU | ||
- Tx error count per CPU | ||
- Rx error count per CPU | ||
- Rx error count per type | ||
- congestion related statistics: | ||
- congestion status | ||
- time spent in congestion | ||
- number of time the device entered congestion | ||
- dropped packets count per cause | ||
|
||
The driver also exports the following information in sysfs: | ||
|
||
- the FQ IDs for each FQ type | ||
/sys/devices/platform/dpaa-ethernet.0/net/<int>/fqids | ||
|
||
- the IDs of the buffer pools in use | ||
/sys/devices/platform/dpaa-ethernet.0/net/<int>/bpids |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8508,15 +8508,14 @@ S: Odd Fixes | |
F: drivers/media/radio/radio-miropcm20* | ||
|
||
MELLANOX MLX4 core VPI driver | ||
M: Yishai Hadas <yishaih@mellanox.com> | ||
M: Tariq Toukan <tariqt@mellanox.com> | ||
L: [email protected] | ||
L: [email protected] | ||
W: http://www.mellanox.com | ||
Q: http://patchwork.ozlabs.org/project/netdev/list/ | ||
S: Supported | ||
F: drivers/net/ethernet/mellanox/mlx4/ | ||
F: include/linux/mlx4/ | ||
F: include/uapi/rdma/mlx4-abi.h | ||
|
||
MELLANOX MLX4 IB driver | ||
M: Yishai Hadas <[email protected]> | ||
|
@@ -8526,6 +8525,7 @@ Q: http://patchwork.kernel.org/project/linux-rdma/list/ | |
S: Supported | ||
F: drivers/infiniband/hw/mlx4/ | ||
F: include/linux/mlx4/ | ||
F: include/uapi/rdma/mlx4-abi.h | ||
|
||
MELLANOX MLX5 core VPI driver | ||
M: Saeed Mahameed <[email protected]> | ||
|
@@ -8538,7 +8538,6 @@ Q: http://patchwork.ozlabs.org/project/netdev/list/ | |
S: Supported | ||
F: drivers/net/ethernet/mellanox/mlx5/core/ | ||
F: include/linux/mlx5/ | ||
F: include/uapi/rdma/mlx5-abi.h | ||
|
||
MELLANOX MLX5 IB driver | ||
M: Matan Barak <[email protected]> | ||
|
@@ -8549,6 +8548,7 @@ Q: http://patchwork.kernel.org/project/linux-rdma/list/ | |
S: Supported | ||
F: drivers/infiniband/hw/mlx5/ | ||
F: include/linux/mlx5/ | ||
F: include/uapi/rdma/mlx5-abi.h | ||
|
||
MELEXIS MLX90614 DRIVER | ||
M: Crt Mori <[email protected]> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.