47ec5303d7
Pull networking updates from David Miller: 1) Support 6Ghz band in ath11k driver, from Rajkumar Manoharan. 2) Support UDP segmentation in code TSO code, from Eric Dumazet. 3) Allow flashing different flash images in cxgb4 driver, from Vishal Kulkarni. 4) Add drop frames counter and flow status to tc flower offloading, from Po Liu. 5) Support n-tuple filters in cxgb4, from Vishal Kulkarni. 6) Various new indirect call avoidance, from Eric Dumazet and Brian Vazquez. 7) Fix BPF verifier failures on 32-bit pointer arithmetic, from Yonghong Song. 8) Support querying and setting hardware address of a port function via devlink, use this in mlx5, from Parav Pandit. 9) Support hw ipsec offload on bonding slaves, from Jarod Wilson. 10) Switch qca8k driver over to phylink, from Jonathan McDowell. 11) In bpftool, show list of processes holding BPF FD references to maps, programs, links, and btf objects. From Andrii Nakryiko. 12) Several conversions over to generic power management, from Vaibhav Gupta. 13) Add support for SO_KEEPALIVE et al. to bpf_setsockopt(), from Dmitry Yakunin. 14) Various https url conversions, from Alexander A. Klimov. 15) Timestamping and PHC support for mscc PHY driver, from Antoine Tenart. 16) Support bpf iterating over tcp and udp sockets, from Yonghong Song. 17) Support 5GBASE-T i40e NICs, from Aleksandr Loktionov. 18) Add kTLS RX HW offload support to mlx5e, from Tariq Toukan. 19) Fix the ->ndo_start_xmit() return type to be netdev_tx_t in several drivers. From Luc Van Oostenryck. 20) XDP support for xen-netfront, from Denis Kirjanov. 21) Support receive buffer autotuning in MPTCP, from Florian Westphal. 22) Support EF100 chip in sfc driver, from Edward Cree. 23) Add XDP support to mvpp2 driver, from Matteo Croce. 24) Support MPTCP in sock_diag, from Paolo Abeni. 25) Commonize UDP tunnel offloading code by creating udp_tunnel_nic infrastructure, from Jakub Kicinski. 26) Several pci_ --> dma_ API conversions, from Christophe JAILLET. 27) Add FLOW_ACTION_POLICE support to mlxsw, from Ido Schimmel. 28) Add SK_LOOKUP bpf program type, from Jakub Sitnicki. 29) Refactor a lot of networking socket option handling code in order to avoid set_fs() calls, from Christoph Hellwig. 30) Add rfc4884 support to icmp code, from Willem de Bruijn. 31) Support TBF offload in dpaa2-eth driver, from Ioana Ciornei. 32) Support XDP_REDIRECT in qede driver, from Alexander Lobakin. 33) Support PCI relaxed ordering in mlx5 driver, from Aya Levin. 34) Support TCP syncookies in MPTCP, from Flowian Westphal. 35) Fix several tricky cases of PMTU handling wrt. briding, from Stefano Brivio. * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2056 commits) net: thunderx: initialize VF's mailbox mutex before first usage usb: hso: remove bogus check for EINPROGRESS usb: hso: no complaint about kmalloc failure hso: fix bailout in error case of probe ip_tunnel_core: Fix build for archs without _HAVE_ARCH_IPV6_CSUM selftests/net: relax cpu affinity requirement in msg_zerocopy test mptcp: be careful on subflow creation selftests: rtnetlink: make kci_test_encap() return sub-test result selftests: rtnetlink: correct the final return value for the test net: dsa: sja1105: use detected device id instead of DT one on mismatch tipc: set ub->ifindex for local ipv6 address ipv6: add ipv6_dev_find() net: openvswitch: silence suspicious RCU usage warning Revert "vxlan: fix tos value before xmit" ptp: only allow phase values lower than 1 period farsync: switch from 'pci_' to 'dma_' API wan: wanxl: switch from 'pci_' to 'dma_' API hv_netvsc: do not use VF device if link is down dpaa2-eth: Fix passing zero to 'PTR_ERR' warning net: macb: Properly handle phylink on at91sam9x ...
197 lines
7.0 KiB
Plaintext
197 lines
7.0 KiB
Plaintext
* Freescale Management Complex
|
|
|
|
The Freescale Management Complex (fsl-mc) is a hardware resource
|
|
manager that manages specialized hardware objects used in
|
|
network-oriented packet processing applications. After the fsl-mc
|
|
block is enabled, pools of hardware resources are available, such as
|
|
queues, buffer pools, I/O interfaces. These resources are building
|
|
blocks that can be used to create functional hardware objects/devices
|
|
such as network interfaces, crypto accelerator instances, L2 switches,
|
|
etc.
|
|
|
|
For an overview of the DPAA2 architecture and fsl-mc bus see:
|
|
Documentation/networking/device_drivers/ethernet/freescale/dpaa2/overview.rst
|
|
|
|
As described in the above overview, all DPAA2 objects in a DPRC share the
|
|
same hardware "isolation context" and a 10-bit value called an ICID
|
|
(isolation context id) is expressed by the hardware to identify
|
|
the requester.
|
|
|
|
The generic 'iommus' property is insufficient to describe the relationship
|
|
between ICIDs and IOMMUs, so an iommu-map property is used to define
|
|
the set of possible ICIDs under a root DPRC and how they map to
|
|
an IOMMU.
|
|
|
|
For generic IOMMU bindings, see
|
|
Documentation/devicetree/bindings/iommu/iommu.txt.
|
|
|
|
For arm-smmu binding, see:
|
|
Documentation/devicetree/bindings/iommu/arm,smmu.yaml.
|
|
|
|
The MSI writes are accompanied by sideband data which is derived from the ICID.
|
|
The msi-map property is used to associate the devices with both the ITS
|
|
controller and the sideband data which accompanies the writes.
|
|
|
|
For generic MSI bindings, see
|
|
Documentation/devicetree/bindings/interrupt-controller/msi.txt.
|
|
|
|
For GICv3 and GIC ITS bindings, see:
|
|
Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml.
|
|
|
|
Required properties:
|
|
|
|
- compatible
|
|
Value type: <string>
|
|
Definition: Must be "fsl,qoriq-mc". A Freescale Management Complex
|
|
compatible with this binding must have Block Revision
|
|
Registers BRR1 and BRR2 at offset 0x0BF8 and 0x0BFC in
|
|
the MC control register region.
|
|
|
|
- reg
|
|
Value type: <prop-encoded-array>
|
|
Definition: A standard property. Specifies one or two regions
|
|
defining the MC's registers:
|
|
|
|
-the first region is the command portal for the
|
|
this machine and must always be present
|
|
|
|
-the second region is the MC control registers. This
|
|
region may not be present in some scenarios, such
|
|
as in the device tree presented to a virtual machine.
|
|
|
|
- ranges
|
|
Value type: <prop-encoded-array>
|
|
Definition: A standard property. Defines the mapping between the child
|
|
MC address space and the parent system address space.
|
|
|
|
The MC address space is defined by 3 components:
|
|
<region type> <offset hi> <offset lo>
|
|
|
|
Valid values for region type are
|
|
0x0 - MC portals
|
|
0x1 - QBMAN portals
|
|
|
|
- #address-cells
|
|
Value type: <u32>
|
|
Definition: Must be 3. (see definition in 'ranges' property)
|
|
|
|
- #size-cells
|
|
Value type: <u32>
|
|
Definition: Must be 1.
|
|
|
|
Sub-nodes:
|
|
|
|
The fsl-mc node may optionally have dpmac sub-nodes that describe
|
|
the relationship between the Ethernet MACs which belong to the MC
|
|
and the Ethernet PHYs on the system board.
|
|
|
|
The dpmac nodes must be under a node named "dpmacs" which contains
|
|
the following properties:
|
|
|
|
- #address-cells
|
|
Value type: <u32>
|
|
Definition: Must be present if dpmac sub-nodes are defined and must
|
|
have a value of 1.
|
|
|
|
- #size-cells
|
|
Value type: <u32>
|
|
Definition: Must be present if dpmac sub-nodes are defined and must
|
|
have a value of 0.
|
|
|
|
These nodes must have the following properties:
|
|
|
|
- compatible
|
|
Value type: <string>
|
|
Definition: Must be "fsl,qoriq-mc-dpmac".
|
|
|
|
- reg
|
|
Value type: <prop-encoded-array>
|
|
Definition: Specifies the id of the dpmac.
|
|
|
|
- phy-handle
|
|
Value type: <phandle>
|
|
Definition: Specifies the phandle to the PHY device node associated
|
|
with the this dpmac.
|
|
Optional properties:
|
|
|
|
- iommu-map: Maps an ICID to an IOMMU and associated iommu-specifier
|
|
data.
|
|
|
|
The property is an arbitrary number of tuples of
|
|
(icid-base,iommu,iommu-base,length).
|
|
|
|
Any ICID i in the interval [icid-base, icid-base + length) is
|
|
associated with the listed IOMMU, with the iommu-specifier
|
|
(i - icid-base + iommu-base).
|
|
|
|
- msi-map: Maps an ICID to a GIC ITS and associated msi-specifier
|
|
data.
|
|
|
|
The property is an arbitrary number of tuples of
|
|
(icid-base,gic-its,msi-base,length).
|
|
|
|
Any ICID in the interval [icid-base, icid-base + length) is
|
|
associated with the listed GIC ITS, with the msi-specifier
|
|
(i - icid-base + msi-base).
|
|
|
|
Deprecated properties:
|
|
|
|
- msi-parent
|
|
Value type: <phandle>
|
|
Definition: Describes the MSI controller node handling message
|
|
interrupts for the MC. When there is no translation
|
|
between the ICID and deviceID this property can be used
|
|
to describe the MSI controller used by the devices on the
|
|
mc-bus.
|
|
The use of this property for mc-bus is deprecated. Please
|
|
use msi-map.
|
|
|
|
Example:
|
|
|
|
smmu: iommu@5000000 {
|
|
compatible = "arm,mmu-500";
|
|
#iommu-cells = <1>;
|
|
stream-match-mask = <0x7C00>;
|
|
...
|
|
};
|
|
|
|
gic: interrupt-controller@6000000 {
|
|
compatible = "arm,gic-v3";
|
|
...
|
|
}
|
|
its: gic-its@6020000 {
|
|
compatible = "arm,gic-v3-its";
|
|
msi-controller;
|
|
...
|
|
};
|
|
|
|
fsl_mc: fsl-mc@80c000000 {
|
|
compatible = "fsl,qoriq-mc";
|
|
reg = <0x00000008 0x0c000000 0 0x40>, /* MC portal base */
|
|
<0x00000000 0x08340000 0 0x40000>; /* MC control reg */
|
|
/* define map for ICIDs 23-64 */
|
|
iommu-map = <23 &smmu 23 41>;
|
|
/* define msi map for ICIDs 23-64 */
|
|
msi-map = <23 &its 23 41>;
|
|
#address-cells = <3>;
|
|
#size-cells = <1>;
|
|
|
|
/*
|
|
* Region type 0x0 - MC portals
|
|
* Region type 0x1 - QBMAN portals
|
|
*/
|
|
ranges = <0x0 0x0 0x0 0x8 0x0c000000 0x4000000
|
|
0x1 0x0 0x0 0x8 0x18000000 0x8000000>;
|
|
|
|
dpmacs {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
dpmac@1 {
|
|
compatible = "fsl,qoriq-mc-dpmac";
|
|
reg = <1>;
|
|
phy-handle = <&mdio0_phy0>;
|
|
}
|
|
}
|
|
};
|