[SRU][PULL][linux-intel-iotg][jammy] Integrated TSN controller (stmmac/i225) driver support
Philip Cox
philip.cox at canonical.com
Mon Nov 14 22:31:42 UTC 2022
BugLink: https://bugs.launchpad.net/bugs/1982282
This pull request contains 81 commits that have been cherry-picked, or back ported from the Intel github quilt repository. This set of commits adds integrated TSN controller support for the intel i225 NICs.
[Impact]
The impact on the non-network parts of the kernel should be minimal, as all the changes are contained within the network stacks codepath.
[Test Plan]
I have provided a built version of this kernel to Intel, and they have tested that it works. I have also done some testing using a i225 NIC, and the ALD-S platform.
The following changes since commit b02c00234b0c783d17d26aa817397ff43ae330a6:
UBUNTU: Ubuntu-intel-iotg-5.15.0-1018.23 (2022-10-20 13:30:11 -0400)
are available in the Git repository at:
https://code.launchpad.net/~philcox/+git/lp1982282/+ref/philcox/lp1982282-review-nov14
for you to fetch changes up to 5340b7e19cc77260f964d0773dd6ec9a44115307:
stmmac: intel: Add RPL-P PCI ID (2022-11-14 16:21:10 -0500)
----------------------------------------------------------------
Aravindhan Gunasekaran (1):
igc: Take care of DMA timestamp rollover
David E. Box (1):
platform/x86: intel_pmc_core: Add IPC mailbox accessor function
Kai-Heng Feng (1):
net: stmmac: Fix "Unbalanced pm_runtime_enable!" warning
Kurt Kanzenbach (1):
net: stmmac: Calculate CDC error only once
Lay Kuan Loon (3):
net: networkproxy: introduce network proxy framework
net: networkproxy: add network proxy heci client
net: networkproxy: add configfs
Lay, Kuan Loon (1):
net: phy: dp83867: introduce critical chip default init for non-of platform
Ling Pei Lee (2):
net: stmmac: Resolve poor line rate after switching from TSO off to TSO on
stmmac: intel: Update PTP clock rate from 200MHz to 204.86MHz
Malli C (1):
igc: Only dump registers if configured to dump HW information
Michael Sit Wei Hong (3):
stmmac: intel: Add ADL-N PCI ID
net: pcs: xpcs: enable xpcs reset skipping
stmmac: intel: Add RPL-P PCI ID
Mohammad Athari Bin Ismail (2):
net: stmmac: selftest: replace skb_unshare with skb_share_check
net: phy: skip disabling interrupt when WOL is enabled in shutdown
Muhammad Husaini Zulkifli (10):
net: tc: Add index of FPE QMASK
bpf: add btf register/unregister API
net/core: XDP metadata BTF netlink API
rtnetlink: Fix unchecked return value of dev_xdp_query_md_btf()
rtnetlink: Add return value check
igc: Enable HW RX Timestamp for AF_XDP ZC
igc: Enable HW TX Timestamp for AF_XDP ZC
igc: Enable trace for HW TX Timestamp AF_XDP ZC
igc: Remove the CONFIG_DEBUG_MISC condition for trace
igc: Add SO_TXTIME for AF_XDP ZC
Ong Boon Leong (2):
net: stmmac: add tc flower filter for EtherType matching
net: stmmac: add FPE preempt setting for TxQ preemptible MAC mapping
Philip Cox (21):
net: stmmac: enable runtime power management support
igc: Set the RX packet buffer size for TSN mode
ethtool: Add support for configuring and verifying frame preemption
ethtool: Add support for configuring frame preemption via ioctl
igc: Add support for Frame Preemption verification
igc: Optimize the packet buffer utilization
igc: Export LEDs
igc: Fix sending packets too early
igc: Fix scheduling multiple packets for next cycle
igc: Add context for empty packet
igc: Reodering the empty packet buffers and descriptors
igc: Add trace for launchtime calculation corner case
igc: Configure BaseT after start and end time queue registers
REVERTME: net: stmmac: Add support for HW-accelerated VLAN stripping
net: stmmac: Prevent double release for suspended port in stmmac_release
net: stmmac: enable network proxy MSI interrupt support
net: stmmac: add network proxy support
net: stmmac: Move phy state machine handling into common suspend/resume func
net: stmmac: Disable MAC EEE when Network Proxy is enabled
net: phy: reconfigure PHY WOL in resume if WOL option still enabled
net: stmmac: enable Intel mGbE 1G/2.5G auto-negotiation support
Saeed Mahameed (2):
tools/bpf: Query XDP metadata BTF ID
tools/bpf: Add xdp set command for md btf
Song Yoong Siang (4):
net: phy: marvell10g: Add WAKE_PHY support to WOL event
net: stmmac: skip runtime handling in mdio read/write
net: networkproxy: add MIB passing via shared memory mechanism
net: stmmac: move TX/RX MAC state machine enablement to struct stmmac_ops
Song, Yoong Siang (6):
xsk: add txtime field in xdp_desc struct
REVERTME: net: stmmac: use napi to process TX/RX and use DMA Bus Mode 0
net: stmmac: Add per-packet time-based scheduling for XDP ZC
net: stmmac: restructure Rx & Tx hardware timestamping functions
net: stmmac: introduce AF_XDP ZC RX HW timestamps
REVERTME: net: stmmac: introduce AF_XDP ZC TX HW timestamps
Tan Tee Min (1):
net: stmmac: add fsleep() in HW Rx timestamp checking loop
Tan, Tee Min (5):
net: stmmac: Bugfix on stmmac_interrupt() for WOL
stmmac: intel: set EHL PCH Gbe PTP clock rate to 204.86Mhz
platform/x86: intel_pmc_core: Add SoC register access
net: pcs: xpcs: combine C37 SGMII AN and 2500BASEX for Intel mGbE controller
net: phy: update in-band AN mode when changing interface by PHY driver
Vedang Patel (1):
igc: Add BTF based metadata for XDP
Vinicius Costa Gomes (5):
core: Introduce netdev_tc_map_to_queue_mask()
taprio: Replace tc_map_to_queue_mask()
mqprio: Add support for frame preemption offload
igc: Add support for exposing frame preemption stats registers
igc: Use strict cycles for LaunchTime mode
Voon Weifeng (2):
net: stmmac: support recalculating of CBS idle slope under EST
REVERTME: net: stmmac: Add module param to del/keep est hw conf
Wong Vee Khee (3):
stmmac: intel: Enable 2.5Gbps for Intel AlderLake-S
REVERTME: stmmac: intel: apply PCH MSI arbitration WA only for specific PCH stepping
Revert "net: stmmac: trigger PCS EEE to turn off on link down"
Xiaoliang Yang (1):
net: stmmac: bump tc when get underflow error from DMA descriptor
Yannick Vignon (1):
net: stmmac: optimize locking around PTP clock reads
Zhou Furong (1):
libbpf: Fix bpf_netlink_recv
Documentation/networking/ethtool-netlink.rst | 41 ++
MAINTAINERS | 10 +
drivers/net/Kconfig | 1 +
drivers/net/Makefile | 1 +
drivers/net/dsa/sja1105/sja1105_mdio.c | 2 +-
drivers/net/ethernet/intel/Kconfig | 1 +
drivers/net/ethernet/intel/igc/igc.h | 31 +
drivers/net/ethernet/intel/igc/igc_defines.h | 25 +
drivers/net/ethernet/intel/igc/igc_dump.c | 3 +
drivers/net/ethernet/intel/igc/igc_ethtool.c | 30 +-
drivers/net/ethernet/intel/igc/igc_main.c | 613 +++++++++++++++++-
drivers/net/ethernet/intel/igc/igc_ptp.c | 27 +
drivers/net/ethernet/intel/igc/igc_regs.h | 12 +
drivers/net/ethernet/intel/igc/igc_tsn.c | 49 +-
drivers/net/ethernet/intel/igc/igc_xdp.c | 114 ++++
drivers/net/ethernet/intel/igc/igc_xdp.h | 11 +
drivers/net/ethernet/stmicro/stmmac/Kconfig | 21 +
drivers/net/ethernet/stmicro/stmmac/Makefile | 3 +
drivers/net/ethernet/stmicro/stmmac/common.h | 7 +
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 314 ++++++++-
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.h | 78 +++
.../net/ethernet/stmicro/stmmac/dwmac1000_core.c | 65 +-
.../net/ethernet/stmicro/stmmac/dwmac100_core.c | 25 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 164 ++++-
drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c | 24 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c | 7 +-
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h | 1 +
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c | 9 -
drivers/net/ethernet/stmicro/stmmac/dwmac5.c | 8 +-
drivers/net/ethernet/stmicro/stmmac/dwmac5.h | 6 +-
.../net/ethernet/stmicro/stmmac/dwxgmac2_core.c | 108 +++-
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c | 12 -
drivers/net/ethernet/stmicro/stmmac/hwif.h | 56 +-
drivers/net/ethernet/stmicro/stmmac/stmmac.h | 36 +-
.../net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 19 +
.../net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c | 4 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 677 ++++++++++++++++----
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 20 +-
.../net/ethernet/stmicro/stmmac/stmmac_netproxy.c | 247 +++++++
.../net/ethernet/stmicro/stmmac/stmmac_netproxy.h | 24 +
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 27 +-
.../net/ethernet/stmicro/stmmac/stmmac_selftests.c | 12 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 227 ++++++-
drivers/net/networkproxy/Kconfig | 19 +
drivers/net/networkproxy/Makefile | 4 +
drivers/net/networkproxy/network_proxy.c | 707 +++++++++++++++++++++
drivers/net/networkproxy/network_proxy_configfs.c | 309 +++++++++
drivers/net/networkproxy/np_ishtp_client.c | 325 ++++++++++
drivers/net/pcs/pcs-xpcs.c | 87 ++-
drivers/net/phy/dp83867.c | 19 +
drivers/net/phy/marvell10g.c | 39 +-
drivers/net/phy/mxl-gpy.c | 5 +
drivers/net/phy/phy.c | 1 +
drivers/net/phy/phy_device.c | 14 +-
drivers/net/phy/phylink.c | 5 +
drivers/platform/x86/intel/pmc/core.c | 80 ++-
include/linux/btf.h | 9 +
.../pmc/core.h => include/linux/intel_pmc_core.h | 38 +-
include/linux/netdevice.h | 16 +-
include/linux/network_proxy.h | 92 +++
include/linux/network_proxy_common.h | 211 ++++++
include/linux/pcs/pcs-xpcs.h | 4 +-
include/linux/phy.h | 4 +
include/linux/stmmac.h | 14 +
include/uapi/linux/ethtool.h | 21 +-
include/uapi/linux/ethtool_netlink.h | 19 +
include/uapi/linux/if_link.h | 2 +
include/uapi/linux/if_xdp.h | 1 +
include/uapi/linux/pkt_sched.h | 2 +
kernel/bpf/btf.c | 90 +++
net/core/dev.c | 73 +++
net/core/rtnetlink.c | 25 +-
net/ethtool/Makefile | 2 +-
net/ethtool/netlink.c | 19 +
net/ethtool/netlink.h | 4 +
net/ethtool/preempt.c | 157 +++++
net/sched/sch_mqprio.c | 41 +-
net/sched/sch_taprio.c | 33 +-
tools/bpf/bpftool/main.h | 2 +
tools/bpf/bpftool/net.c | 7 +-
tools/bpf/bpftool/netlink_dumper.c | 21 +-
tools/bpf/bpftool/xdp.c | 310 +++++++++
tools/include/uapi/linux/if_link.h | 2 +
tools/lib/bpf/libbpf.h | 1 +
tools/lib/bpf/libbpf.map | 1 +
tools/lib/bpf/netlink.c | 49 ++
86 files changed, 5615 insertions(+), 441 deletions(-)
create mode 100644 drivers/net/ethernet/stmicro/stmmac/stmmac_netproxy.c
create mode 100644 drivers/net/ethernet/stmicro/stmmac/stmmac_netproxy.h
create mode 100644 drivers/net/networkproxy/Kconfig
create mode 100644 drivers/net/networkproxy/Makefile
create mode 100644 drivers/net/networkproxy/network_proxy.c
create mode 100644 drivers/net/networkproxy/network_proxy_configfs.c
create mode 100644 drivers/net/networkproxy/np_ishtp_client.c
rename drivers/platform/x86/intel/pmc/core.h => include/linux/intel_pmc_core.h (93%)
create mode 100644 include/linux/network_proxy.h
create mode 100644 include/linux/network_proxy_common.h
create mode 100644 net/ethtool/preempt.c
create mode 100644 tools/bpf/bpftool/xdp.c
More information about the kernel-team
mailing list