History log of /linux/drivers/net/ethernet/marvell/prestera/prestera_rxtx.h (Results 1 – 19 of 19)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v6.7-rc5, v6.7-rc4, v6.7-rc3, v6.7-rc2, v6.7-rc1, v6.6, v6.6-rc7, v6.6-rc6, v6.6-rc5, v6.6-rc4, v6.6-rc3, v6.6-rc2, v6.6-rc1, v6.5, v6.5-rc7, v6.5-rc6, v6.5-rc5, v6.5-rc4, v6.5-rc3, v6.5-rc2, v6.5-rc1, v6.4, v6.4-rc7, v6.4-rc6, v6.4-rc5, v6.4-rc4, v6.4-rc3, v6.4-rc2, v6.4-rc1, v6.3, v6.3-rc7, v6.3-rc6, v6.3-rc5, v6.3-rc4, v6.3-rc3, v6.3-rc2, v6.3-rc1, v6.2, v6.2-rc8, v6.2-rc7, v6.2-rc6, v6.2-rc5, v6.2-rc4, v6.2-rc3, v6.2-rc2, v6.2-rc1, v6.1, v6.1-rc8, v6.1-rc7, v6.1-rc6, v6.1-rc5, v6.1-rc4, v6.1-rc3, v6.1-rc2, v6.1-rc1, v6.0, v6.0-rc7, v6.0-rc6, v6.0-rc5, v6.0-rc4, v6.0-rc3, v6.0-rc2, v6.0-rc1, v5.19, v5.19-rc8, v5.19-rc7, v5.19-rc6, v5.19-rc5, v5.19-rc4, v5.19-rc3, v5.19-rc2, v5.19-rc1, v5.18, v5.18-rc7, v5.18-rc6, v5.18-rc5, v5.18-rc4, v5.18-rc3, v5.18-rc2, v5.18-rc1, v5.17, v5.17-rc8, v5.17-rc7, v5.17-rc6, v5.17-rc5, v5.17-rc4, v5.17-rc3, v5.17-rc2, v5.17-rc1, v5.16, v5.16-rc8, v5.16-rc7, v5.16-rc6, v5.16-rc5, v5.16-rc4, v5.16-rc3, v5.16-rc2, v5.16-rc1, v5.15, v5.15-rc7, v5.15-rc6, v5.15-rc5, v5.15-rc4, v5.15-rc3, v5.15-rc2, v5.15-rc1, v5.14, v5.14-rc7, v5.14-rc6, v5.14-rc5, v5.14-rc4, v5.14-rc3, v5.14-rc2, v5.14-rc1, v5.13, v5.13-rc7, v5.13-rc6, v5.13-rc5, v5.13-rc4, v5.13-rc3, v5.13-rc2, v5.13-rc1, v5.12, v5.12-rc8, v5.12-rc7, v5.12-rc6, v5.12-rc5, v5.12-rc4, v5.12-rc3, v5.12-rc2, v5.12-rc1-dontuse
# cbecf716 23-Feb-2021 Dmitry Torokhov <dmitry.torokhov@gmail.com>

Merge branch 'next' into for-linus

Prepare input updates for 5.12 merge window.


# 415e915f 23-Feb-2021 Dmitry Torokhov <dmitry.torokhov@gmail.com>

Merge tag 'v5.11' into next

Merge with mainline to get latest APIs and device tree bindings.


Revision tags: v5.11, v5.11-rc7, v5.11-rc6, v5.11-rc5, v5.11-rc4, v5.11-rc3, v5.11-rc2, v5.11-rc1
# e77bc7dc 16-Dec-2020 Jiri Kosina <jkosina@suse.cz>

Merge branch 'for-5.11/elecom' into for-linus

- support for EX-G M-XGL20DLBK device, from YOSHIOKA Takuma


Revision tags: v5.10
# 58f7553f 11-Dec-2020 Mark Brown <broonie@kernel.org>

Merge remote-tracking branch 'spi/for-5.10' into spi-linus


# 031616c4 11-Dec-2020 Mark Brown <broonie@kernel.org>

Merge remote-tracking branch 'asoc/for-5.10' into asoc-linus


# 3c09ec59 09-Dec-2020 Catalin Marinas <catalin.marinas@arm.com>

Merge branches 'for-next/kvm-build-fix', 'for-next/va-refactor', 'for-next/lto', 'for-next/mem-hotplug', 'for-next/cppc-ffh', 'for-next/pad-image-header', 'for-next/zone-dma-default-32-bit', 'for-nex

Merge branches 'for-next/kvm-build-fix', 'for-next/va-refactor', 'for-next/lto', 'for-next/mem-hotplug', 'for-next/cppc-ffh', 'for-next/pad-image-header', 'for-next/zone-dma-default-32-bit', 'for-next/signal-tag-bits' and 'for-next/cmdline-extended' into for-next/core

* for-next/kvm-build-fix:
: Fix KVM build issues with 64K pages
KVM: arm64: Fix build error in user_mem_abort()

* for-next/va-refactor:
: VA layout changes
arm64: mm: don't assume struct page is always 64 bytes
Documentation/arm64: fix RST layout of memory.rst
arm64: mm: tidy up top of kernel VA space
arm64: mm: make vmemmap region a projection of the linear region
arm64: mm: extend linear region for 52-bit VA configurations

* for-next/lto:
: Upgrade READ_ONCE() to RCpc acquire on arm64 with LTO
arm64: lto: Strengthen READ_ONCE() to acquire when CONFIG_LTO=y
arm64: alternatives: Remove READ_ONCE() usage during patch operation
arm64: cpufeatures: Add capability for LDAPR instruction
arm64: alternatives: Split up alternative.h
arm64: uaccess: move uao_* alternatives to asm-uaccess.h

* for-next/mem-hotplug:
: Memory hotplug improvements
arm64/mm/hotplug: Ensure early memory sections are all online
arm64/mm/hotplug: Enable MEM_OFFLINE event handling
arm64/mm/hotplug: Register boot memory hot remove notifier earlier
arm64: mm: account for hotplug memory when randomizing the linear region

* for-next/cppc-ffh:
: Add CPPC FFH support using arm64 AMU counters
arm64: abort counter_read_on_cpu() when irqs_disabled()
arm64: implement CPPC FFH support using AMUs
arm64: split counter validation function
arm64: wrap and generalise counter read functions

* for-next/pad-image-header:
: Pad Image header to 64KB and unmap it
arm64: head: tidy up the Image header definition
arm64/head: avoid symbol names pointing into first 64 KB of kernel image
arm64: omit [_text, _stext) from permanent kernel mapping

* for-next/zone-dma-default-32-bit:
: Default to 32-bit wide ZONE_DMA (previously reduced to 1GB for RPi4)
of: unittest: Fix build on architectures without CONFIG_OF_ADDRESS
mm: Remove examples from enum zone_type comment
arm64: mm: Set ZONE_DMA size based on early IORT scan
arm64: mm: Set ZONE_DMA size based on devicetree's dma-ranges
of: unittest: Add test for of_dma_get_max_cpu_address()
of/address: Introduce of_dma_get_max_cpu_address()
arm64: mm: Move zone_dma_bits initialization into zone_sizes_init()
arm64: mm: Move reserve_crashkernel() into mem_init()
arm64: Force NO_BLOCK_MAPPINGS if crashkernel reservation is required
arm64: Ignore any DMA offsets in the max_zone_phys() calculation

* for-next/signal-tag-bits:
: Expose the FAR_EL1 tag bits in siginfo
arm64: expose FAR_EL1 tag bits in siginfo
signal: define the SA_EXPOSE_TAGBITS bit in sa_flags
signal: define the SA_UNSUPPORTED bit in sa_flags
arch: provide better documentation for the arch-specific SA_* flags
signal: clear non-uapi flag bits when passing/returning sa_flags
arch: move SA_* definitions to generic headers
parisc: start using signal-defs.h
parisc: Drop parisc special case for __sighandler_t

* for-next/cmdline-extended:
: Add support for CONFIG_CMDLINE_EXTENDED
arm64: Extend the kernel command line from the bootloader
arm64: kaslr: Refactor early init command line parsing

show more ...


Revision tags: v5.10-rc7, v5.10-rc6
# 20c7775a 26-Nov-2020 Peter Zijlstra <peterz@infradead.org>

Merge remote-tracking branch 'origin/master' into perf/core

Further perf/core patches will depend on:

d3f7b1bb2040 ("mm/gup: fix gup_fast with dynamic page table folding")

which is already in Li

Merge remote-tracking branch 'origin/master' into perf/core

Further perf/core patches will depend on:

d3f7b1bb2040 ("mm/gup: fix gup_fast with dynamic page table folding")

which is already in Linus' tree.

show more ...


Revision tags: v5.10-rc5, v5.10-rc4, 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>


# 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>


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 ...


# 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 ...