Commit Graph
520 Commits
Author SHA1 Message Date
Florian Pose a27db36a33 Followed markdownlint guidelines and fixed broken links. 2026-07-14 18:54:39 +02:00
Danila Dergachev a40c85c03a Added macb (Cadence GEM / RP1) driver for kernel 6.18.
Native EtherCAT device driver for the Raspberry Pi 5 on-RP1 gigabit MAC
(Cadence GEM, "macb"), ported from the genet recipe. Lets the IgH kernel
master poll-drive the NIC directly instead of via the generic driver.

Derived from the in-tree macb driver at Linux 6.18.33
(drivers/net/ethernet/cadence: macb_main.c, macb.h, macb_ptp.c); the
-orig files are verbatim, the -ethercat files add the ecdev hooks
(ecdev_offer/open/close/withdraw, ec_poll, gem_rx -> ecdev_receive,
a persistent TX skb ring, IRQ/NAPI/PTP gated by get_ecdev()).

macb-specific points vs the genet recipe:
- ecdev_offer() before macb_init() (macb requests its IRQs there).
- phylink (not MDIO adjust_link); phylink_start/stop wrapped in rtnl_lock
  in EtherCAT mode (ecdev_open runs without the RTNL lock).
- MAC PHC / PTP init gated off in EtherCAT mode.
- macb_pad_and_fcs(): the master reuses one persistent TX skb and rewrites
  skb->len each cycle without resetting the tail, so re-sync the tail and
  append the software FCS in place; a plain skb_put() walked the tail past
  the buffer end -> skb_over_panic().

Tested on a Raspberry Pi 5 (BCM2712, 6.18.33-rt) against an A6-EC servo
drive: binds the RP1 GEM, reaches OP, 0 lost frames at up to 4 kHz.

Build: ./configure --enable-macb [--with-macb-kernel=6.18]

Known limitations: RX allocates an skb per frame in the poll path (a future
revision can reuse the buffer in place); only the GEM RX path carries the
hook (RP1 is GEM); PM suspend/resume is not specially handled.
2026-06-26 17:58:43 +02:00
Florian Pose d857b19a17 Merge branch 'stable-1.6' into igc_6.8 2026-05-22 14:12:01 +02:00
Florian Pose 46cc20e669 Merge branch 'r8169_6.1x' into 'stable-1.6'
[r8169] Do not write invalid MAC onto NIC on removal

See merge request etherlab.org/ethercat!195
2026-05-22 11:48:36 +02:00
Florian Pose 6544aa9ec6 Merge branch 'igb-6.8' into 'stable-1.6'
Added igb driver for kernel 6.8

See merge request etherlab.org/ethercat!194
2026-05-22 11:09:29 +02:00
Bjarne von Horn 93327b6b95 [r8169] Do not write invalid MAC onto NIC on removal
Related to #192
2026-05-20 14:30:48 +02:00
Florian Pose f9f855d514 Added igb driver for kernel 6.8. 2026-05-07 10:52:46 +02:00
Bjarne von Horn d90363e072 Add igb Kernel 6.8.2 2026-05-07 10:08:43 +02:00
Bjarne von Horn f8a137a88f Add igc for Kernel 6.8.2 2026-05-07 10:08:11 +02:00
Florian Pose 9c63faf50d Fixed igb for SUSE kernel 6.12 2026-03-26 17:38:46 +01:00
Florian Pose bf706b737d Fixed genet for SUSE 16.0. 2026-03-26 17:26:45 +01:00
Nicola Fontana c42c9cf8bc Linux 6.19.0 support
Commit 89aec171d9d1ab168e43fcf9754b82e4c0aef9b9 (part of linux kernel
6.19.0-rc1) introduced an arbitrarily sized sockaddr struct to be used
instead of the classical one.

Closes #200
2026-03-08 15:54:00 +01:00
Bjarne von Horn d978c45ad7 Fix igb for opensuse 15.6 (kernel 6.4) 2025-07-01 10:15:20 +02:00
Florian Pose 5dd3b544bb Avoided some more netif_ calls. 2025-06-30 13:46:26 +02:00
Florian Pose a3fbd3df3a Avoided some netif calls. 2025-06-30 13:17:15 +02:00
Florian Pose b9d5cf13d0 Avoid netif_wake_queue(). 2025-06-27 11:58:37 +02:00
Florian Pose 1be2bb6f27 Do not stop queue. 2025-06-26 17:17:34 +02:00
Florian Pose d7e5fb09fc Fixed r8169. 2025-06-26 17:09:42 +02:00
Florian Pose 39ee16381d Avoid napi_consume_skb. 2025-06-26 16:28:43 +02:00
Florian Pose 12df7a1f4a Initialize watchdog jiffies in e100. 2025-06-26 16:08:36 +02:00
Florian Pose 7fd10f3a31 Include r8169_leds if existing. 2025-06-26 14:57:52 +02:00
Florian Pose 5bf04e42c3 Merge branch 'stable-1.6' into 8139too-6.4-6.12 2025-06-26 14:48:09 +02:00
Florian Pose 18bf85b911 Distribute update.sh 2025-06-26 14:28:37 +02:00
Florian Pose 6b21038e58 Added r8169 for 6.12. 2025-06-26 14:04:04 +02:00
Florian Pose 8174451e9b Fixed versioned header. 2025-06-26 14:03:42 +02:00
Florian Pose e914edcb34 Fixed included (versioned) headers. 2025-06-26 13:42:26 +02:00
Florian Pose 95fa1fd38c Added e1000 for 6.12. 2025-06-26 13:35:52 +02:00
Florian Pose cdc5d62299 Added e100 und 8139too for 6.12. 2025-06-26 13:14:53 +02:00
Florian Pose 13d2303b30 Add lines to Makefile.am 2025-06-26 13:13:12 +02:00
Florian Pose ed6bfafd9d Added e1000 for 6.4. 2025-06-26 13:03:52 +02:00
Florian Pose 82c25cb394 Minor change. 2025-06-26 13:01:28 +02:00
Florian Pose 7cc3f11f2c Added r8169 for 6.4. 2025-06-26 12:52:39 +02:00
Florian Pose 66e624d89f Added update script to r8169 2025-06-26 12:52:06 +02:00
Bjarne von Horn 790dcecc34 Add e1000e for 6.12
Taken from 6.12.8
2025-06-26 12:47:04 +02:00
Florian Pose 85871277a4 Added 8139too for 6.4. 2025-06-26 12:08:00 +02:00
Florian Pose de3b7419f9 Removed r8169 from update script (has own subdirectory). 2025-06-26 11:56:27 +02:00
Florian Pose ab6c8b59e5 Updated update script. 2025-06-26 11:54:42 +02:00
Florian Pose 144343a18a Use initialisation checks in e100-6.4. 2025-06-26 11:35:17 +02:00
Bjarne von Horn ab89464e11 Fix uninitialized object usage in igc 6.12. 2025-06-26 11:00:17 +02:00
Bjarne von Horn 7294ebd078 Avoid smp_processor_id() in igb 6.12. 2025-06-26 10:37:23 +02:00
Bjarne von Horn d75234c4e1 fix exported symbol for stmmac 6.12 2025-06-25 11:52:01 +02:00
Bjarne von Horn 5e060a5d7e Add stmmac for 6.12
Taken from 6.12.8
2025-06-23 16:07:23 +02:00
Bjarne von Horn 8b10f32ab3 Add stmmac for 6.4.0 2025-06-23 15:03:04 +02:00
Bjarne von Horn cdc3e6395f Add genet for kernel 6.4.0 2025-06-23 13:23:51 +02:00
Bjarne von Horn ad2a155e97 Add igb for 6.12
Taken from 6.12.8
2025-06-23 13:11:12 +02:00
Bjarne von Horn a61d9d05f0 replace kernel versions in igb update script. 2025-06-23 13:11:12 +02:00
Bjarne von Horn 7c21252c99 Fix igb 6.4 includes
was still 6.1...
2025-06-23 13:11:12 +02:00
Bjarne von Horn 11ec5fff67 Add igc for 6.12
Taken from 6.12.8
2025-06-23 13:11:07 +02:00
Bjarne von Horn b9a3264bbb Add igb driver for kernel 6.4 2025-06-23 10:44:24 +02:00
Bjarne von Horn 21433d2cca Fix ccflags for e1000e 6.4 2025-06-23 10:44:24 +02:00