1
0
mirror of https://github.com/corundum/corundum.git synced 2025-01-16 08:12:53 +08:00

257 Commits

Author SHA1 Message Date
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