Alex Forencich
a7753da72e
Add support for BittWare IA-420F
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-11-19 19:51:12 -08:00
Alex Forencich
2d1e322738
modules/mqnic: Add board ID for AU45
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-11-13 14:36:09 -08:00
Alex Forencich
b2f853cae7
Warn if the application BAR didn't get enumerated
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-11-12 19:15:40 -08:00
Alex Forencich
2cebcdfb2a
Add support for Alveo U55N/Varium C1100
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-11-12 18:30:05 -08:00
Alex Forencich
2a7d0e0947
Use new PTP time distribution subsystem
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-11-07 21:57:07 -08:00
Alex Forencich
c2d6942233
modules/mqnic: Call devlink_register earlier
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-09-14 15:24:25 -07:00
Alex Forencich
1e2bcbbb2b
modules/mqnic: Add devlink kernel version ifdefs
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-09-13 18:27:57 -07:00
Alex Forencich
54d0165f68
modules/mqnic: Register ports with devlink
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-09-13 16:40:27 -07:00
Alex Forencich
a9800099e3
modules/mqnic: Add initial devlink support
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-09-12 11:17:24 -07:00
Alex Forencich
2d975c1e83
modules/mqnic: Store build date as a string
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-09-12 11:16:10 -07:00
Alex Forencich
cef4100af0
modules/mqnic: Adjust default LFC watermark
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-09-11 22:58:31 -07:00
Alex Forencich
6b256f82d3
Generate pause frames on TX
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-09-10 23:22:50 -07:00
Alex Forencich
9963674c61
Add flow control
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-09-09 19:01:36 -07:00
Alex Forencich
ebd7cb7ad9
modules/mqnic: Store port references in netdev priv
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-09-06 21:48:38 -07:00
Alex Forencich
88166c1153
modules/mqnic: Drop short frames
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-08-23 17:50:20 -07:00
Alex Forencich
f1884b98bf
Add unified 10G/25G mqnic design for BittWare XUSP3S board
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-08-22 12:55:11 -07:00
Alex Forencich
bed12ee774
Consolidate CQs
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-07-10 17:52:34 -07:00
Alex Forencich
265035769a
Reorganize queue control registers
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-07-07 01:19:19 -07:00
Alex Forencich
fa75b47b7b
modules/mqnic: Convert more relatively frequent info-level printk calls to debug-level so they can be selectively enabled via dynamic debug
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-07-07 01:10:49 -07:00
Joachim Foerster
1d729817a6
modules/mqnic: Turn "TX ring ... full ..." message into netdev-related debug message
...
To not overwhelm any logging daemon. Full TX queues can be quite common
depending on a system's context and capabilities. Mostly all the details are not
required anyway in such cases.
To enable such debug messages and have their text turn up in dmesg and logging
daemons, the mqnic module has to be compiled with CPP symbol DEBUG being (`make
DEBUG=yes`) defined, or the kernel in use has to support "Dynamic Debug" [1]. In
the latter case all such debug messages in module mqnic can be enabled with:
echo 'module mqnic +pflmt' | sudo tee /sys/kernel/debug/dynamic_debug/control
To enable just this specific messages, based on its (partial) format:
echo 'format "TX ring %d full" +pflmt' | sudo tee /sys/kernel/debug/dynamic_debug/control
[1] https://www.kernel.org/doc/html/latest/admin-guide/dynamic-debug-howto.html
Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
2023-07-07 00:30:52 -07:00
Joachim Foerster
6a975f3433
modules/mqnic/Makefile: Define CPP symbol DEBUG when environment variable DEBUG is provided
...
Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
2023-07-07 00:30:52 -07:00
Joachim Foerster
51d5712982
modules/mqnic: Introduce proper error path on failing to allocate RX buffers
...
This basically allows the "refilling" of RX buffers to fail. A fail to allocate
RX buffers can occur on bringing a network device up or when changing the number
of RX channels at run-time through `ethtool -L <ndev> rx <num>`.
Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
2023-07-07 00:30:52 -07:00
Alex Forencich
4d2c2071cc
modules/mqnic: Fix kernel version ifdef for netif_napi_add
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-07-03 22:54:34 -07:00
Alex Forencich
82df10a356
modules/mqnic: Add missing priv reference
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-06-27 00:04:09 -07:00
Ulrich Langenbach
21f5a758c9
modules/mqnic: use unsigned short for I2C addresses
...
the i2c_client defines i2c addresses as unsigned short so we follow
this style
2023-06-26 12:10:27 -07:00
Ulrich Langenbach
b1f14659d9
modules/mqnic: sfp module eeprom i2c address adjustment for full access
...
* the optical diagnostics data is provided by the SFP modules
using another I2C address, which must be set via the I2C client
2023-06-26 12:10:27 -07:00
Ulrich Langenbach
6bd8ae031f
modules/mqnic: fix SFP EEPROM readout to support optical module diagnosis
...
* fix offset check for allowing an offset of exactly 256 Bytes
* fix allowing the I2C address of 0x51 to access the optical SFP modules
diagnosis information, see SFF8472 rev 12.4 p. 8
2023-06-26 12:10:27 -07:00
Alex Forencich
448fa8eb4c
Use SPDX
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-06-26 11:44:57 -07:00
Alex Forencich
6ca5fbfd82
Merge PR #153
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-06-25 18:51:12 -07:00
Joachim Foerster
12a90c6b71
modules/mqnic: Export existing dropped_packets counter per TX ring to netdev statistics
...
Signed-off-by: Joachim Foerster <joachim.foerster@missinglinkelectronics.com>
2023-06-22 11:19:11 +02:00
Alex Forencich
902df50c96
modules/mqnic: Add RCB to debug info
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-06-12 23:52:52 -07:00
Alex Forencich
71c6f3167c
modules/mqnic: Request I2C mux kernel module when necessary
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-06-12 15:36:43 -07:00
Alex Forencich
2c8b1d0e29
fpga/mqnic/520N_MX: Add 25G mqnic design for BittWare 520N-MX
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-06-12 15:36:26 -07:00
Alex Forencich
9f808c65b2
fpga/mqnic/DK_DEV_1SMX_H_A: Add virtual I2C switch to control modsel pins
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-06-11 02:05:37 -07:00
Alex Forencich
5099e4a3d5
fpga/mqnic/DK_DEV_AGF014EA: Add virtual I2C switch to control modsel pins
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-06-11 00:37:50 -07:00
Alex Forencich
a3e7cc4c77
modules/mqnic: Update board config in driver for ADM-PCIE-9V3, Nexus K35P-S, and Nexus K3P-S to support optical module communication
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-06-10 20:26:33 -07:00
Alex Forencich
397ea57cbd
modules/mqnic: software_node struct must be static, just set I2C mux props for all clients instead of attempting to do something dynamic
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-06-10 20:14:29 -07:00
Alex Forencich
f553be3b65
modules/mqnic: Assert reset during probe of platform device, if connected
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-06-01 23:17:54 -07:00
Alex Forencich
aef62af18c
modules/mqnic: Associate messages with netdev
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-05-03 22:24:19 -07:00
Alex Forencich
335c731ef0
modules/mqnic: Implement ethtool reg dump API
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-05-03 17:44:14 -07:00
Alex Forencich
e76bc8128c
modules/mqnic: Implement ethtool rxfh API
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-05-03 16:54:37 -07:00
Alex Forencich
32db67b066
modules/mqnic: Improve indirection table handling
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-05-03 16:50:59 -07:00
Alex Forencich
eecaef6e6f
modules/mqnic: Add some additional range enforcement
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-05-03 16:49:28 -07:00
Alex Forencich
7cd40a8e1e
modules/mqnic: Minor cleanup
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-05-03 16:48:26 -07:00
Alex Forencich
eaceb0bfc7
modules/mqnic: More sensible default queue counts
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-05-03 01:38:23 -07:00
Alex Forencich
8faefe19cd
modules/mqnic: Only allocate netdev queue resources for what is supported in HW
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-05-03 01:35:46 -07:00
Alex Forencich
a6da3a41cb
modules/mqnic: Implement ethtool channels API
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-05-03 01:35:01 -07:00
Alex Forencich
3302c1f832
modules/mqnic: Implement ethtool ringparam API
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-05-03 01:22:12 -07:00
Alex Forencich
21b8d164cf
modules/mqnic: Make mqnic_start_port/mqnic_stop_port non-static so they can be called from mqnic_ethtool
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-05-03 01:20:07 -07:00
Alex Forencich
3c995dc8e0
Implement dynamic queue allocation in testbench and driver
...
Signed-off-by: Alex Forencich <alex@alexforencich.com>
2023-05-02 21:23:30 -07:00