Revision tags: v5.10-rc4 |
|
#
e1d9d7b9 |
| 13-Nov-2020 |
Jakub Kicinski <kuba@kernel.org> |
Merge https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
Revision tags: v5.10-rc3 |
|
#
666fab4a |
| 07-Nov-2020 |
Ingo Molnar <mingo@kernel.org> |
Merge branch 'linus' into perf/kprobes
Conflicts: include/asm-generic/atomic-instrumented.h kernel/kprobes.c
Use the upstream atomic-instrumented.h checksum, and pick the kprobes version of kerne
Merge branch 'linus' into perf/kprobes
Conflicts: include/asm-generic/atomic-instrumented.h kernel/kprobes.c
Use the upstream atomic-instrumented.h checksum, and pick the kprobes version of kernel/kprobes.c, which effectively reverts this upstream workaround:
645f224e7ba2: ("kprobes: Tell lockdep about kprobe nesting")
Since the new code *should* be fine without nesting.
Knock on wood ...
Signed-off-by: Ingo Molnar <mingo@kernel.org>
show more ...
|
#
5f8f9652 |
| 05-Nov-2020 |
Jani Nikula <jani.nikula@intel.com> |
Merge drm/drm-next into drm-intel-next-queued
Catch up with v5.10-rc2 and drm-misc-next.
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
#
01be83ee |
| 04-Nov-2020 |
Thomas Gleixner <tglx@linutronix.de> |
Merge branch 'core/urgent' into core/entry
Pick up the entry fix before further modifications.
|
#
c489573b |
| 02-Nov-2020 |
Maxime Ripard <maxime@cerno.tech> |
Merge drm/drm-next into drm-misc-next
Daniel needs -rc2 in drm-misc-next to merge some patches
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
#
db7c9535 |
| 12-Nov-2020 |
Linus Torvalds <torvalds@linux-foundation.org> |
Merge tag 'net-5.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Current release - regressions:
- arm64: dts: fsl-ls1028a-kontron
Merge tag 'net-5.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Current release - regressions:
- arm64: dts: fsl-ls1028a-kontron-sl28: specify in-band mode for ENETC
Current release - bugs in new features:
- mptcp: provide rmem[0] limit offset to fix oops
Previous release - regressions:
- IPv6: Set SIT tunnel hard_header_len to zero to fix path MTU calculations
- lan743x: correctly handle chips with internal PHY
- bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE
- mlx5e: Fix VXLAN port table synchronization after function reload
Previous release - always broken:
- bpf: Zero-fill re-used per-cpu map element
- fix out-of-order UDP packets when forwarding with UDP GSO fraglists turned on: - fix UDP header access on Fast/frag0 UDP GRO - fix IP header access and skb lookup on Fast/frag0 UDP GRO
- ethtool: netlink: add missing netdev_features_change() call
- net: Update window_clamp if SOCK_RCVBUF is set
- igc: Fix returning wrong statistics
- ch_ktls: fix multiple leaks and corner cases in Chelsio TLS offload
- tunnels: Fix off-by-one in lower MTU bounds for ICMP/ICMPv6 replies
- r8169: disable hw csum for short packets on all chip versions
- vrf: Fix fast path output packet handling with async Netfilter rules"
* tag 'net-5.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (65 commits) lan743x: fix use of uninitialized variable net: udp: fix IP header access and skb lookup on Fast/frag0 UDP GRO net: udp: fix UDP header access on Fast/frag0 UDP GRO devlink: Avoid overwriting port attributes of registered port vrf: Fix fast path output packet handling with async Netfilter rules cosa: Add missing kfree in error path of cosa_write net: switch to the kernel.org patchwork instance ch_ktls: stop the txq if reaches threshold ch_ktls: tcb update fails sometimes ch_ktls/cxgb4: handle partial tag alone SKBs ch_ktls: don't free skb before sending FIN ch_ktls: packet handling prior to start marker ch_ktls: Correction in middle record handling ch_ktls: missing handling of header alone ch_ktls: Correction in trimmed_len calculation cxgb4/ch_ktls: creating skbs causes panic ch_ktls: Update cheksum information ch_ktls: Correction in finding correct length cxgb4/ch_ktls: decrypted bit is not enough net/x25: Fix null-ptr-deref in x25_connect ...
show more ...
|
#
4f6b838c |
| 12-Nov-2020 |
Marc Zyngier <maz@kernel.org> |
Merge tag 'v5.10-rc1' into kvmarm-master/next
Linux 5.10-rc1
Signed-off-by: Marc Zyngier <maz@kernel.org>
|
#
4e0396c5 |
| 06-Nov-2020 |
Vadym Kochan <vadym.kochan@plvision.eu> |
net: marvell: prestera: fix compilation with CONFIG_BRIDGE=m
With CONFIG_BRIDGE=m the compilation fails:
ld: drivers/net/ethernet/marvell/prestera/prestera_switchdev.o: in function `prestera_br
net: marvell: prestera: fix compilation with CONFIG_BRIDGE=m
With CONFIG_BRIDGE=m the compilation fails:
ld: drivers/net/ethernet/marvell/prestera/prestera_switchdev.o: in function `prestera_bridge_port_event': prestera_switchdev.c:(.text+0x2ebd): undefined reference to `br_vlan_enabled'
in case the driver is statically enabled.
Fix it by adding 'BRIDGE || BRIDGE=n' dependency.
Fixes: e1189d9a5fbe ("net: marvell: prestera: Add Switchdev driver implementation") Reported-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Vadym Kochan <vadym.kochan@plvision.eu> Acked-by: Randy Dunlap <rdunlap@infradead.org> # build-tested Link: https://lore.kernel.org/r/20201106161128.24069-1-vadym.kochan@plvision.eu Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
Revision tags: v5.10-rc2 |
|
#
4a95857a |
| 30-Oct-2020 |
Zhenyu Wang <zhenyuw@linux.intel.com> |
Merge tag 'drm-intel-fixes-2020-10-29' into gvt-fixes
Backmerge for 5.10-rc1 to apply one extra APL fix.
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
|
#
f59cddd8 |
| 28-Oct-2020 |
Mark Brown <broonie@kernel.org> |
Merge tag 'v5.10-rc1' into regulator-5.10
Linux 5.10-rc1
|
#
3bfd5f42 |
| 28-Oct-2020 |
Mark Brown <broonie@kernel.org> |
Merge tag 'v5.10-rc1' into spi-5.10
Linux 5.10-rc1
|
#
ce038aea |
| 28-Oct-2020 |
Mark Brown <broonie@kernel.org> |
Merge tag 'v5.10-rc1' into asoc-5.10
Linux 5.10-rc1
|
Revision tags: v5.10-rc1 |
|
#
9ff9b0d3 |
| 16-Oct-2020 |
Linus Torvalds <torvalds@linux-foundation.org> |
Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
Pull networking updates from Jakub Kicinski:
- Add redirect_neigh() BPF packet redirect helper, allowing
Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
Pull networking updates from Jakub Kicinski:
- Add redirect_neigh() BPF packet redirect helper, allowing to limit stack traversal in common container configs and improving TCP back-pressure.
Daniel reports ~10Gbps => ~15Gbps single stream TCP performance gain.
- Expand netlink policy support and improve policy export to user space. (Ge)netlink core performs request validation according to declared policies. Expand the expressiveness of those policies (min/max length and bitmasks). Allow dumping policies for particular commands. This is used for feature discovery by user space (instead of kernel version parsing or trial and error).
- Support IGMPv3/MLDv2 multicast listener discovery protocols in bridge.
- Allow more than 255 IPv4 multicast interfaces.
- Add support for Type of Service (ToS) reflection in SYN/SYN-ACK packets of TCPv6.
- In Multi-patch TCP (MPTCP) support concurrent transmission of data on multiple subflows in a load balancing scenario. Enhance advertising addresses via the RM_ADDR/ADD_ADDR options.
- Support SMC-Dv2 version of SMC, which enables multi-subnet deployments.
- Allow more calls to same peer in RxRPC.
- Support two new Controller Area Network (CAN) protocols - CAN-FD and ISO 15765-2:2016.
- Add xfrm/IPsec compat layer, solving the 32bit user space on 64bit kernel problem.
- Add TC actions for implementing MPLS L2 VPNs.
- Improve nexthop code - e.g. handle various corner cases when nexthop objects are removed from groups better, skip unnecessary notifications and make it easier to offload nexthops into HW by converting to a blocking notifier.
- Support adding and consuming TCP header options by BPF programs, opening the doors for easy experimental and deployment-specific TCP option use.
- Reorganize TCP congestion control (CC) initialization to simplify life of TCP CC implemented in BPF.
- Add support for shipping BPF programs with the kernel and loading them early on boot via the User Mode Driver mechanism, hence reusing all the user space infra we have.
- Support sleepable BPF programs, initially targeting LSM and tracing.
- Add bpf_d_path() helper for returning full path for given 'struct path'.
- Make bpf_tail_call compatible with bpf-to-bpf calls.
- Allow BPF programs to call map_update_elem on sockmaps.
- Add BPF Type Format (BTF) support for type and enum discovery, as well as support for using BTF within the kernel itself (current use is for pretty printing structures).
- Support listing and getting information about bpf_links via the bpf syscall.
- Enhance kernel interfaces around NIC firmware update. Allow specifying overwrite mask to control if settings etc. are reset during update; report expected max time operation may take to users; support firmware activation without machine reboot incl. limits of how much impact reset may have (e.g. dropping link or not).
- Extend ethtool configuration interface to report IEEE-standard counters, to limit the need for per-vendor logic in user space.
- Adopt or extend devlink use for debug, monitoring, fw update in many drivers (dsa loop, ice, ionic, sja1105, qed, mlxsw, mv88e6xxx, dpaa2-eth).
- In mlxsw expose critical and emergency SFP module temperature alarms. Refactor port buffer handling to make the defaults more suitable and support setting these values explicitly via the DCBNL interface.
- Add XDP support for Intel's igb driver.
- Support offloading TC flower classification and filtering rules to mscc_ocelot switches.
- Add PTP support for Marvell Octeontx2 and PP2.2 hardware, as well as fixed interval period pulse generator and one-step timestamping in dpaa-eth.
- Add support for various auth offloads in WiFi APs, e.g. SAE (WPA3) offload.
- Add Lynx PHY/PCS MDIO module, and convert various drivers which have this HW to use it. Convert mvpp2 to split PCS.
- Support Marvell Prestera 98DX3255 24-port switch ASICs, as well as 7-port Mediatek MT7531 IP.
- Add initial support for QCA6390 and IPQ6018 in ath11k WiFi driver, and wcn3680 support in wcn36xx.
- Improve performance for packets which don't require much offloads on recent Mellanox NICs by 20% by making multiple packets share a descriptor entry.
- Move chelsio inline crypto drivers (for TLS and IPsec) from the crypto subtree to drivers/net. Move MDIO drivers out of the phy directory.
- Clean up a lot of W=1 warnings, reportedly the actively developed subsections of networking drivers should now build W=1 warning free.
- Make sure drivers don't use in_interrupt() to dynamically adapt their code. Convert tasklets to use new tasklet_setup API (sadly this conversion is not yet complete).
* tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2583 commits) Revert "bpfilter: Fix build error with CONFIG_BPFILTER_UMH" net, sockmap: Don't call bpf_prog_put() on NULL pointer bpf, selftest: Fix flaky tcp_hdr_options test when adding addr to lo bpf, sockmap: Add locking annotations to iterator netfilter: nftables: allow re-computing sctp CRC-32C in 'payload' statements net: fix pos incrementment in ipv6_route_seq_next net/smc: fix invalid return code in smcd_new_buf_create() net/smc: fix valid DMBE buffer sizes net/smc: fix use-after-free of delayed events bpfilter: Fix build error with CONFIG_BPFILTER_UMH cxgb4/ch_ipsec: Replace the module name to ch_ipsec from chcr net: sched: Fix suspicious RCU usage while accessing tcf_tunnel_info bpf: Fix register equivalence tracking. rxrpc: Fix loss of final ack on shutdown rxrpc: Fix bundle counting for exclusive connections netfilter: restore NF_INET_NUMHOOKS ibmveth: Identify ingress large send packets. ibmveth: Switch order of ibmveth_helper calls. cxgb4: handle 4-tuple PEDIT to NAT mode translation selftests: Add VRF route leaking tests ...
show more ...
|
Revision tags: v5.9, v5.9-rc8, v5.9-rc7, v5.9-rc6 |
|
#
3ce406bd |
| 18-Sep-2020 |
David S. Miller <davem@davemloft.net> |
Merge branch 'net-marvell-prestera-Add-Switchdev-driver-for-Prestera-family-ASIC-device-98DX3255-AC3x'
Vadym Kochan says:
==================== net: marvell: prestera: Add Switchdev driver for Prest
Merge branch 'net-marvell-prestera-Add-Switchdev-driver-for-Prestera-family-ASIC-device-98DX3255-AC3x'
Vadym Kochan says:
==================== net: marvell: prestera: Add Switchdev driver for Prestera family ASIC device 98DX3255 (AC3x)
Marvell Prestera 98DX3255 integrates up to 24 ports of 1GbE with 8 ports of 10GbE uplinks or 2 ports of 40Gbps stacking for a largely wireless SMB deployment.
Prestera Switchdev is a firmware based driver that operates via PCI bus. The current implementation supports only boards designed for the Marvell Switchdev solution and requires special firmware.
This driver implementation includes only L1, basic L2 support, and RX/TX.
The core Prestera switching logic is implemented in prestera_main.c, there is an intermediate hw layer between core logic and firmware. It is implemented in prestera_hw.c, the purpose of it is to encapsulate hw related logic, in future there is a plan to support more devices with different HW related configurations.
The following Switchdev features are supported:
- VLAN-aware bridge offloading - VLAN-unaware bridge offloading - FDB offloading (learning, ageing) - Switchport configuration
The original firmware image is uploaded to the linux-firmware repository.
PATCH v9: 1) Replace read_poll_timeout_atomic() by original 'do {} while()' loop because it works much better than read_poll_timeout_atomic() considering the TX rate. Also it fixes warning reported on v8.
2) Use ENOENT instead of EEXIST when item is not found in few places - prestera_hw.c and prestera_rxtx.c
Patches updated: [1] net: marvell: prestera: Add driver for Prestera family ASIC devices
PATCH v8: 1) Put license in one line.
2) Sort includes.
3) Add missing comma for last enum member
4) Return original error code from last called func in places where instead other error code was used.
5) Add comma for last member in initialized struct in prestera_hw.c
6) Do not initialize 'int err = 0' where it is not needed.
7) Simplify device-tree "marvell,prestera" node parsing by removing not needed checking on 'np == NULL'.
8) Use u32p_replace_bits() instead of open-coded ((word & ~mask) | val)
9) Use dev_warn_ratelimited() instead of pr_warn_ratelimited to indicate the device instance in prestera_rxtx.c
10) Simplify circular buffer list creation in prestera_sdma_{rx,tx}_init() by using do { } while (prev != tail) construction.
11) Use MSEC_PER_SEC instead of hard-coded 1000.
12) Use traditional error handling pattern:
err = F(); if (err) return err;
13) Use ether_addr_copy() instead of memcpy() for mac FDB copying in prestera_hw.c
14) Drop swdev->ageing_time member which is not used.
15) Fix ageing macro to be in ms instead of seconds.
Patches updated: [1] net: marvell: prestera: Add driver for Prestera family ASIC devices [2] net: marvell: prestera: Add PCI interface support [3] net: marvell: prestera: Add basic devlink support [4] net: marvell: prestera: Add ethtool interface support [5] net: marvell: prestera: Add Switchdev driver implementation
PATCH v7: 1) Use ether_addr_copy() in prestera_main.c:prestera_port_set_mac_address() instead of memcpy().
2) Removed not needed device's DMA address range check on dma_pool_alloc() in prestera_rxtx.c:prestera_sdma_buf_init(), this should be handled by dma_xxx() API considerig device's DMA mask.
3) Removed not needed device's DMA address range check on dma_map_single() in prestera_rxtx.c:prestera_sdma_rx_skb_alloc(), this should be handled by dma_xxx() API considerig device's DMA mask.
4) Add comment about port mac address limitation in the code where it is used and checked - prestera_main.c:
- prestera_is_valid_mac_addr() - prestera_port_create()
5) Add missing destroy_workqueue(swdev_wq) in prestera_switchdev.c:prestera_switchdev_init() on error path handling.
Patches updated: [1] net: marvell: prestera: Add driver for Prestera family ASIC devices [5] net: marvell: prestera: Add Switchdev driver implementation
PATCH v6: 1) Use rwlock to protect port list on create/delete stages. The list is mostly readable by fw event handler or packets receiver, but updated only on create/delete port which are performed on switch init/fini stages.
2) Remove not needed variable initialization in prestera_dsa.c:prestera_dsa_parse()
3) Get rid of bounce buffer used by tx handler in prestera_rxtx.c, the bounce buffer should be handled by dma_xxx API via swiotlb.
4) Fix PRESTERA_SDMA_RX_DESC_PKT_LEN macro by using correct GENMASK(13, 0) in prestera_rxtx.c
Patches updated: [1] net: marvell: prestera: Add driver for Prestera family ASIC devices
PATCH v5: 0) add Co-developed tags for people who was involved in development.
1) Make SPDX license as separate comment
2) Change 'u8 *' -> 'void *', It allows to avoid not-needed u8* casting.
3) Remove "," in terminated enum's.
4) Use GENMASK(end, start) where it is applicable in.
5) Remove not-needed 'u8 *' casting.
6) Apply common error-check pattern
7) Use ether_addr_copy instead of memcpy
8) Use define for maximum MAC address range (255)
9) Simplify prestera_port_state_set() in prestera_main.c by using separate if-blocks for state setting:
if (is_up) { ... } else { ... }
which makes logic more understandable.
10) Simplify sdma tx wait logic when checking/updating tx_ring->burst.
11) Remove not-needed packed & aligned attributes
12) Use USEC_PER_MSEC as multiplier when converting ms -> usec on calling readl_poll_timeout.
13) Simplified some error path handling by simple return error code in.
14) Remove not-needed err assignment in.
15) Use dev_err() in prestera_devlink_register(...).
Patches updated: [1] net: marvell: prestera: Add driver for Prestera family ASIC devices [2] net: marvell: prestera: Add PCI interface support [3] net: marvell: prestera: Add basic devlink support [4] net: marvell: prestera: Add ethtool interface support [5] net: marvell: prestera: Add Switchdev driver implementation
PATCH v4: 1) Use prestera_ prefix in netdev_ops variable.
2) Kconfig: use 'default PRESTERA' build type for CONFIG_PRESTERA_PCI to be synced by default with prestera core module.
3) Use memcpy_xxio helpers in prestera_pci.c for IO buffer copying.
4) Generate fw image path via snprintf() instead of macroses.
5) Use pcim_ helpers in prestera_pci.c which simplified the probe/remove logic.
6) Removed not needed initializations of variables which are used in readl_poll_xxx() helpers.
7) Fixed few grammar mistakes in patch[2] description.
8) Export only prestera_ethtool_ops struct instead of each ethtool handler.
9) Add check for prestera_dev_check() in switchdev event handling to make sure there is no wrong topology.
Patches updated: [1] net: marvell: prestera: Add driver for Prestera family ASIC devices [2] net: marvell: prestera: Add PCI interface support [4] net: marvell: prestera: Add ethtool interface support [5] net: marvell: prestera: Add Switchdev driver implementation
PATCH v3: 1) Simplify __be32 type casting in prestera_dsa.c
2) Added per-patch changelog under "---" line.
PATCH v2: 1) Use devlink_port_type_clear()
2) Add _MS prefix to timeout defines.
3) Remove not-needed packed attribute from the firmware ipc structs, also the firmware image needs to be uploaded too (will do it soon).
4) Introduce prestera_hw_switch_fini(), to be mirrored with init and do simple validation if the event handlers are unregistered.
5) Use kfree_rcu() for event handler unregistering.
6) Get rid of rcu-list usage when dealing with ports, not needed for now.
7) Little spelling corrections in the error/info messages.
8) Make pci probe & remove logic mirrored.
9) Get rid of ETH_FCS_LEN in headroom setting, not needed.
PATCH: 1) Fixed W=1 warnings
2) Renamed PCI driver name to be more generic "Prestera DX" because there will be more devices supported.
3) Changed firmware image dir path: marvell/ -> mrvl/prestera/ to be aligned with location in linux-firmware.git (if such will be accepted).
RFC v3: 1) Fix prestera prefix in prestera_rxtx.c
2) Protect concurrent access from multiple ports on multiple CPU system on tx path by spinlock in prestera_rxtx.c
3) Try to get base mac address from device-tree, otherwise use a random generated one.
4) Move ethtool interface support into separate prestera_ethtool.c file.
5) Add basic devlink support and get rid of physical port naming ops.
6) Add STP support in Switchdev driver.
7) Removed MODULE_AUTHOR
8) Renamed prestera.c -> prestera_main.c, and kernel module to prestera.ko
RFC v2: 1) Use "pestera_" prefix in struct's and functions instead of mvsw_pr_
2) Original series split into additional patches for Switchdev ethtool support.
3) Use major and minor firmware version numbers in the firmware image filename.
4) Removed not needed prints.
5) Use iopoll API for waiting on register's value in prestera_pci.c
6) Use standart approach for describing PCI ID matching section instead of using custom wrappers in prestera_pci.c
7) Add RX/TX support in prestera_rxtx.c.
8) Rewritten prestera_switchdev.c with following changes: - handle netdev events from prestera.c
- use struct prestera_bridge for bridge objects, and get rid of struct prestera_bridge_device which may confuse.
- use refcount_t
9) Get rid of macro usage for sending fw requests in prestera_hw.c
10) Add base_mac setting as module parameter. base_mac is required for generation default port's mac. ====================
Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
34dd1710 |
| 16-Sep-2020 |
Vadym Kochan <vadym.kochan@plvision.eu> |
net: marvell: prestera: Add basic devlink support
Add very basic support for devlink interface:
- driver name - fw version - devlink ports
Signed-off-by: Vadym Kochan <vadym.kochan@plv
net: marvell: prestera: Add basic devlink support
Add very basic support for devlink interface:
- driver name - fw version - devlink ports
Signed-off-by: Vadym Kochan <vadym.kochan@plvision.eu> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
4c2703df |
| 16-Sep-2020 |
Vadym Kochan <vadym.kochan@plvision.eu> |
net: marvell: prestera: Add PCI interface support
Add PCI interface driver for Prestera Switch ASICs family devices, which provides:
- Firmware loading mechanism - Requests & events handlin
net: marvell: prestera: Add PCI interface support
Add PCI interface driver for Prestera Switch ASICs family devices, which provides:
- Firmware loading mechanism - Requests & events handling to/from the firmware - Access to the firmware on the bus level
The firmware has to be loaded each time the device is reset. The driver is loading it from:
/lib/firmware/mrvl/prestera/mvsw_prestera_fw-v{MAJOR}.{MINOR}.img
The full firmware image version is located within the internal header and consists of 3 numbers - MAJOR.MINOR.PATCH. Additionally, driver has hard-coded minimum supported firmware version which it can work with:
MAJOR - reflects the support on ABI level between driver and loaded firmware, this number should be the same for driver and loaded firmware.
MINOR - this is the minimum supported version between driver and the firmware.
PATCH - indicates only fixes, firmware ABI is not changed.
Firmware image file name contains only MAJOR and MINOR numbers to make driver be compatible with any PATCH version.
Co-developed-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu> Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu> Signed-off-by: Vadym Kochan <vadym.kochan@plvision.eu> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
501ef306 |
| 16-Sep-2020 |
Vadym Kochan <vadym.kochan@plvision.eu> |
net: marvell: prestera: Add driver for Prestera family ASIC devices
Marvell Prestera 98DX326x integrates up to 24 ports of 1GbE with 8 ports of 10GbE uplinks or 2 ports of 40Gbps stacking for a larg
net: marvell: prestera: Add driver for Prestera family ASIC devices
Marvell Prestera 98DX326x integrates up to 24 ports of 1GbE with 8 ports of 10GbE uplinks or 2 ports of 40Gbps stacking for a largely wireless SMB deployment.
The current implementation supports only boards designed for the Marvell Switchdev solution and requires special firmware.
The core Prestera switching logic is implemented in prestera_main.c, there is an intermediate hw layer between core logic and firmware. It is implemented in prestera_hw.c, the purpose of it is to encapsulate hw related logic, in future there is a plan to support more devices with different HW related configurations.
This patch contains only basic switch initialization and RX/TX support over SDMA mechanism.
Currently supported devices have DMA access range <= 32bit and require ZONE_DMA to be enabled, for such cases SDMA driver checks if the skb allocated in proper range supported by the Prestera device.
Also meanwhile there is no TX interrupt support in current firmware version so recycling work is scheduled on each xmit.
Port's mac address is generated from the switch base mac which may be provided via device-tree (static one or as nvme cell), or randomly generated. This is required by the firmware.
Co-developed-by: Andrii Savka <andrii.savka@plvision.eu> Signed-off-by: Andrii Savka <andrii.savka@plvision.eu> Co-developed-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu> Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu> Co-developed-by: Serhiy Boiko <serhiy.boiko@plvision.eu> Signed-off-by: Serhiy Boiko <serhiy.boiko@plvision.eu> Co-developed-by: Serhiy Pshyk <serhiy.pshyk@plvision.eu> Signed-off-by: Serhiy Pshyk <serhiy.pshyk@plvision.eu> Co-developed-by: Taras Chornyi <taras.chornyi@plvision.eu> Signed-off-by: Taras Chornyi <taras.chornyi@plvision.eu> Co-developed-by: Volodymyr Mytnyk <volodymyr.mytnyk@plvision.eu> Signed-off-by: Volodymyr Mytnyk <volodymyr.mytnyk@plvision.eu> Signed-off-by: Vadym Kochan <vadym.kochan@plvision.eu> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|