NACK/Cmnt: [SRU][N][PATCH 0/3] Integrate IgH EtherCAT master

Edoardo Canepa edoardo.canepa at canonical.com
Wed Sep 16 13:14:03 UTC 2026


Rejected for the following reasons:
This is HWE and out of scope for SRU.

On 9/16/26 13:33, Wen-chien Jesse Sung via kernel-team wrote:
> BugLink: https://launchpad.net/bugs/2138621
>
> SRU Justification:
>
> [ Impact ]
> Noble linux does not ship the IgH EtherCAT master. Users who need EtherCAT
> have to build the out-of-tree driver themselves.
>
> [ Fix ]
> Import IgH EtherCAT master 1.6.8 under ubuntu/igh-ecat, wire it into Kbuild,
> and enable it as a module on amd64.
>
> The series:
> - UBUNTU: SAUCE: ubuntu/igh-ecat: Import IgH EtherCAT master
>    from https://gitlab.com/etherlab.org/ethercat tag 1.6.8
>    (commit 2543cc55bd13833ddefb6cd9ec24a064cde68959)
> - UBUNTU: SAUCE: igh-ecat: Plug IgH EtherCAT master into Kbuild
> - UBUNTU: [Config] Enable IgH EtherCAT master
>
> The generic Ethernet device driver is included. Device-specific drivers
> are still TBD.
>
> [ Test Plan ]
> On amd64:
>
>    $ modinfo ec_master
>    $ sudo modprobe ec_master
>    $ sudo modprobe ec_generic
>    $ lsmod | grep '^ec_'
>    $ dmesg | grep -i ethercat
>
> Without the patches: modules are absent.
> With the patches: both modules load. dmesg shows the master driver coming
> up.
>
> On an EtherCAT setup, load the master with main_devices=<mac> and confirm
> it sees slaves. Device-specific drivers are not in this series.
>
> [ Where problems could occur ]
> This is a large out-of-tree import living under ubuntu/. It does not change
> in-tree net drivers.
>
> If the generic device module binds a NIC, that interface leaves the normal
> network stack. A wrong main_devices= argument can take a production NIC
> offline.
>
> Build or module-load failures would show up as missing ec_master /
> ec_generic, or as errors from the master thread or ioctl path.
>
> Config is amd64-only (m). Other arches stay disabled.
>
> [ Other Info ]
> Not in mainline. Source is https://gitlab.com/etherlab.org/ethercat.
>
> Already in Ubuntu linux 6.19.0-3.3 (Resolute). This is the Noble backport.
>
> Wen-chien Jesse Sung (3):
>    UBUNTU: SAUCE: ubuntu/igh-ecat: Import IgH EtherCAT master
>    UBUNTU: SAUCE: igh-ecat: Plug IgH EtherCAT master into Kbuild
>    UBUNTU: [Config] Enable IgH EtherCAT master
>
>   debian.master/config/annotations          |    3 +
>   ubuntu/Kconfig                            |    4 +
>   ubuntu/Makefile                           |    4 +
>   ubuntu/igh-ecat/Kconfig                   |   21 +
>   ubuntu/igh-ecat/Makefile                  |    7 +
>   ubuntu/igh-ecat/config.h                  |  100 +
>   ubuntu/igh-ecat/devices/Makefile          |    5 +
>   ubuntu/igh-ecat/devices/ecdev.h           |   71 +
>   ubuntu/igh-ecat/devices/generic.c         |  483 ++
>   ubuntu/igh-ecat/globals.h                 |   55 +
>   ubuntu/igh-ecat/include/Makefile.am       |   26 +
>   ubuntu/igh-ecat/include/ecrt.h            | 3153 ++++++++++++
>   ubuntu/igh-ecat/include/ectty.h           |  106 +
>   ubuntu/igh-ecat/master/Kbuild.in          |  112 +
>   ubuntu/igh-ecat/master/Makefile           |   47 +
>   ubuntu/igh-ecat/master/Makefile.am        |   76 +
>   ubuntu/igh-ecat/master/api_usage_notes.md |   51 +
>   ubuntu/igh-ecat/master/cdev.c             |  281 ++
>   ubuntu/igh-ecat/master/cdev.h             |   53 +
>   ubuntu/igh-ecat/master/coe_emerg_ring.c   |  169 +
>   ubuntu/igh-ecat/master/coe_emerg_ring.h   |   70 +
>   ubuntu/igh-ecat/master/datagram.c         |  644 +++
>   ubuntu/igh-ecat/master/datagram.h         |  142 +
>   ubuntu/igh-ecat/master/datagram_pair.c    |  193 +
>   ubuntu/igh-ecat/master/datagram_pair.h    |   61 +
>   ubuntu/igh-ecat/master/debug.c            |  258 +
>   ubuntu/igh-ecat/master/debug.h            |   58 +
>   ubuntu/igh-ecat/master/device.c           |  716 +++
>   ubuntu/igh-ecat/master/device.h           |  150 +
>   ubuntu/igh-ecat/master/domain.c           |  719 +++
>   ubuntu/igh-ecat/master/domain.h           |   82 +
>   ubuntu/igh-ecat/master/doxygen.c          |   82 +
>   ubuntu/igh-ecat/master/eoe_request.c      |   80 +
>   ubuntu/igh-ecat/master/eoe_request.h      |   70 +
>   ubuntu/igh-ecat/master/ethernet.c         |  886 ++++
>   ubuntu/igh-ecat/master/ethernet.h         |  122 +
>   ubuntu/igh-ecat/master/flag.c             |   69 +
>   ubuntu/igh-ecat/master/flag.h             |   51 +
>   ubuntu/igh-ecat/master/fmmu_config.c      |   91 +
>   ubuntu/igh-ecat/master/fmmu_config.h      |   58 +
>   ubuntu/igh-ecat/master/foe.h              |   54 +
>   ubuntu/igh-ecat/master/foe_request.c      |  195 +
>   ubuntu/igh-ecat/master/foe_request.h      |   78 +
>   ubuntu/igh-ecat/master/fsm_change.c       |  615 +++
>   ubuntu/igh-ecat/master/fsm_change.h       |   84 +
>   ubuntu/igh-ecat/master/fsm_coe.c          | 2537 ++++++++++
>   ubuntu/igh-ecat/master/fsm_coe.h          |   74 +
>   ubuntu/igh-ecat/master/fsm_eoe.c          |  509 ++
>   ubuntu/igh-ecat/master/fsm_eoe.h          |   67 +
>   ubuntu/igh-ecat/master/fsm_foe.c          |  915 ++++
>   ubuntu/igh-ecat/master/fsm_foe.h          |   87 +
>   ubuntu/igh-ecat/master/fsm_master.c       | 1472 ++++++
>   ubuntu/igh-ecat/master/fsm_master.h       |  107 +
>   ubuntu/igh-ecat/master/fsm_pdo.c          |  806 +++
>   ubuntu/igh-ecat/master/fsm_pdo.h          |   76 +
>   ubuntu/igh-ecat/master/fsm_pdo_entry.c    |  541 ++
>   ubuntu/igh-ecat/master/fsm_pdo_entry.h    |   75 +
>   ubuntu/igh-ecat/master/fsm_sii.c          |  482 ++
>   ubuntu/igh-ecat/master/fsm_sii.h          |   82 +
>   ubuntu/igh-ecat/master/fsm_slave.c        |  685 +++
>   ubuntu/igh-ecat/master/fsm_slave.h        |   87 +
>   ubuntu/igh-ecat/master/fsm_slave_config.c | 1864 +++++++
>   ubuntu/igh-ecat/master/fsm_slave_config.h |   81 +
>   ubuntu/igh-ecat/master/fsm_slave_scan.c   | 1121 +++++
>   ubuntu/igh-ecat/master/fsm_slave_scan.h   |   75 +
>   ubuntu/igh-ecat/master/fsm_soe.c          |  844 ++++
>   ubuntu/igh-ecat/master/fsm_soe.h          |   67 +
>   ubuntu/igh-ecat/master/globals.h          |  314 ++
>   ubuntu/igh-ecat/master/ioctl.c            | 5591 +++++++++++++++++++++
>   ubuntu/igh-ecat/master/ioctl.h            |  879 ++++
>   ubuntu/igh-ecat/master/mailbox.c          |  203 +
>   ubuntu/igh-ecat/master/mailbox.h          |   64 +
>   ubuntu/igh-ecat/master/master.c           | 3350 ++++++++++++
>   ubuntu/igh-ecat/master/master.h           |  386 ++
>   ubuntu/igh-ecat/master/module.c           |  681 +++
>   ubuntu/igh-ecat/master/pdo.c              |  309 ++
>   ubuntu/igh-ecat/master/pdo.h              |   67 +
>   ubuntu/igh-ecat/master/pdo_entry.c        |  124 +
>   ubuntu/igh-ecat/master/pdo_entry.h        |   58 +
>   ubuntu/igh-ecat/master/pdo_list.c         |  338 ++
>   ubuntu/igh-ecat/master/pdo_list.h         |   71 +
>   ubuntu/igh-ecat/master/reg_request.c      |  125 +
>   ubuntu/igh-ecat/master/reg_request.h      |   59 +
>   ubuntu/igh-ecat/master/rt_locks.h         |   75 +
>   ubuntu/igh-ecat/master/rtdm-ioctl.c       |    1 +
>   ubuntu/igh-ecat/master/rtdm.c             |  259 +
>   ubuntu/igh-ecat/master/rtdm.h             |   50 +
>   ubuntu/igh-ecat/master/rtdm_details.h     |   60 +
>   ubuntu/igh-ecat/master/rtdm_xenomai_v3.c  |  193 +
>   ubuntu/igh-ecat/master/sdo.c              |  124 +
>   ubuntu/igh-ecat/master/sdo.h              |   61 +
>   ubuntu/igh-ecat/master/sdo_entry.c        |   69 +
>   ubuntu/igh-ecat/master/sdo_entry.h        |   64 +
>   ubuntu/igh-ecat/master/sdo_request.c      |  256 +
>   ubuntu/igh-ecat/master/sdo_request.h      |   75 +
>   ubuntu/igh-ecat/master/slave.c            | 1010 ++++
>   ubuntu/igh-ecat/master/slave.h            |  266 +
>   ubuntu/igh-ecat/master/slave_config.c     | 1652 ++++++
>   ubuntu/igh-ecat/master/slave_config.h     |  196 +
>   ubuntu/igh-ecat/master/soe_errors.c       |   88 +
>   ubuntu/igh-ecat/master/soe_request.c      |  333 ++
>   ubuntu/igh-ecat/master/soe_request.h      |   76 +
>   ubuntu/igh-ecat/master/sync.c             |  170 +
>   ubuntu/igh-ecat/master/sync.h             |   60 +
>   ubuntu/igh-ecat/master/sync_config.c      |   55 +
>   ubuntu/igh-ecat/master/sync_config.h      |   51 +
>   ubuntu/igh-ecat/master/voe_handler.c      |  553 ++
>   ubuntu/igh-ecat/master/voe_handler.h      |   65 +
>   108 files changed, 41590 insertions(+)
>   create mode 100644 ubuntu/igh-ecat/Kconfig
>   create mode 100644 ubuntu/igh-ecat/Makefile
>   create mode 100644 ubuntu/igh-ecat/config.h
>   create mode 100644 ubuntu/igh-ecat/devices/Makefile
>   create mode 100644 ubuntu/igh-ecat/devices/ecdev.h
>   create mode 100644 ubuntu/igh-ecat/devices/generic.c
>   create mode 100644 ubuntu/igh-ecat/globals.h
>   create mode 100644 ubuntu/igh-ecat/include/Makefile.am
>   create mode 100644 ubuntu/igh-ecat/include/ecrt.h
>   create mode 100644 ubuntu/igh-ecat/include/ectty.h
>   create mode 100644 ubuntu/igh-ecat/master/Kbuild.in
>   create mode 100644 ubuntu/igh-ecat/master/Makefile
>   create mode 100644 ubuntu/igh-ecat/master/Makefile.am
>   create mode 100644 ubuntu/igh-ecat/master/api_usage_notes.md
>   create mode 100644 ubuntu/igh-ecat/master/cdev.c
>   create mode 100644 ubuntu/igh-ecat/master/cdev.h
>   create mode 100644 ubuntu/igh-ecat/master/coe_emerg_ring.c
>   create mode 100644 ubuntu/igh-ecat/master/coe_emerg_ring.h
>   create mode 100644 ubuntu/igh-ecat/master/datagram.c
>   create mode 100644 ubuntu/igh-ecat/master/datagram.h
>   create mode 100644 ubuntu/igh-ecat/master/datagram_pair.c
>   create mode 100644 ubuntu/igh-ecat/master/datagram_pair.h
>   create mode 100644 ubuntu/igh-ecat/master/debug.c
>   create mode 100644 ubuntu/igh-ecat/master/debug.h
>   create mode 100644 ubuntu/igh-ecat/master/device.c
>   create mode 100644 ubuntu/igh-ecat/master/device.h
>   create mode 100644 ubuntu/igh-ecat/master/domain.c
>   create mode 100644 ubuntu/igh-ecat/master/domain.h
>   create mode 100644 ubuntu/igh-ecat/master/doxygen.c
>   create mode 100644 ubuntu/igh-ecat/master/eoe_request.c
>   create mode 100644 ubuntu/igh-ecat/master/eoe_request.h
>   create mode 100644 ubuntu/igh-ecat/master/ethernet.c
>   create mode 100644 ubuntu/igh-ecat/master/ethernet.h
>   create mode 100644 ubuntu/igh-ecat/master/flag.c
>   create mode 100644 ubuntu/igh-ecat/master/flag.h
>   create mode 100644 ubuntu/igh-ecat/master/fmmu_config.c
>   create mode 100644 ubuntu/igh-ecat/master/fmmu_config.h
>   create mode 100644 ubuntu/igh-ecat/master/foe.h
>   create mode 100644 ubuntu/igh-ecat/master/foe_request.c
>   create mode 100644 ubuntu/igh-ecat/master/foe_request.h
>   create mode 100644 ubuntu/igh-ecat/master/fsm_change.c
>   create mode 100644 ubuntu/igh-ecat/master/fsm_change.h
>   create mode 100644 ubuntu/igh-ecat/master/fsm_coe.c
>   create mode 100644 ubuntu/igh-ecat/master/fsm_coe.h
>   create mode 100644 ubuntu/igh-ecat/master/fsm_eoe.c
>   create mode 100644 ubuntu/igh-ecat/master/fsm_eoe.h
>   create mode 100644 ubuntu/igh-ecat/master/fsm_foe.c
>   create mode 100644 ubuntu/igh-ecat/master/fsm_foe.h
>   create mode 100644 ubuntu/igh-ecat/master/fsm_master.c
>   create mode 100644 ubuntu/igh-ecat/master/fsm_master.h
>   create mode 100644 ubuntu/igh-ecat/master/fsm_pdo.c
>   create mode 100644 ubuntu/igh-ecat/master/fsm_pdo.h
>   create mode 100644 ubuntu/igh-ecat/master/fsm_pdo_entry.c
>   create mode 100644 ubuntu/igh-ecat/master/fsm_pdo_entry.h
>   create mode 100644 ubuntu/igh-ecat/master/fsm_sii.c
>   create mode 100644 ubuntu/igh-ecat/master/fsm_sii.h
>   create mode 100644 ubuntu/igh-ecat/master/fsm_slave.c
>   create mode 100644 ubuntu/igh-ecat/master/fsm_slave.h
>   create mode 100644 ubuntu/igh-ecat/master/fsm_slave_config.c
>   create mode 100644 ubuntu/igh-ecat/master/fsm_slave_config.h
>   create mode 100644 ubuntu/igh-ecat/master/fsm_slave_scan.c
>   create mode 100644 ubuntu/igh-ecat/master/fsm_slave_scan.h
>   create mode 100644 ubuntu/igh-ecat/master/fsm_soe.c
>   create mode 100644 ubuntu/igh-ecat/master/fsm_soe.h
>   create mode 100644 ubuntu/igh-ecat/master/globals.h
>   create mode 100644 ubuntu/igh-ecat/master/ioctl.c
>   create mode 100644 ubuntu/igh-ecat/master/ioctl.h
>   create mode 100644 ubuntu/igh-ecat/master/mailbox.c
>   create mode 100644 ubuntu/igh-ecat/master/mailbox.h
>   create mode 100644 ubuntu/igh-ecat/master/master.c
>   create mode 100644 ubuntu/igh-ecat/master/master.h
>   create mode 100644 ubuntu/igh-ecat/master/module.c
>   create mode 100644 ubuntu/igh-ecat/master/pdo.c
>   create mode 100644 ubuntu/igh-ecat/master/pdo.h
>   create mode 100644 ubuntu/igh-ecat/master/pdo_entry.c
>   create mode 100644 ubuntu/igh-ecat/master/pdo_entry.h
>   create mode 100644 ubuntu/igh-ecat/master/pdo_list.c
>   create mode 100644 ubuntu/igh-ecat/master/pdo_list.h
>   create mode 100644 ubuntu/igh-ecat/master/reg_request.c
>   create mode 100644 ubuntu/igh-ecat/master/reg_request.h
>   create mode 100644 ubuntu/igh-ecat/master/rt_locks.h
>   create mode 120000 ubuntu/igh-ecat/master/rtdm-ioctl.c
>   create mode 100644 ubuntu/igh-ecat/master/rtdm.c
>   create mode 100644 ubuntu/igh-ecat/master/rtdm.h
>   create mode 100644 ubuntu/igh-ecat/master/rtdm_details.h
>   create mode 100644 ubuntu/igh-ecat/master/rtdm_xenomai_v3.c
>   create mode 100644 ubuntu/igh-ecat/master/sdo.c
>   create mode 100644 ubuntu/igh-ecat/master/sdo.h
>   create mode 100644 ubuntu/igh-ecat/master/sdo_entry.c
>   create mode 100644 ubuntu/igh-ecat/master/sdo_entry.h
>   create mode 100644 ubuntu/igh-ecat/master/sdo_request.c
>   create mode 100644 ubuntu/igh-ecat/master/sdo_request.h
>   create mode 100644 ubuntu/igh-ecat/master/slave.c
>   create mode 100644 ubuntu/igh-ecat/master/slave.h
>   create mode 100644 ubuntu/igh-ecat/master/slave_config.c
>   create mode 100644 ubuntu/igh-ecat/master/slave_config.h
>   create mode 100644 ubuntu/igh-ecat/master/soe_errors.c
>   create mode 100644 ubuntu/igh-ecat/master/soe_request.c
>   create mode 100644 ubuntu/igh-ecat/master/soe_request.h
>   create mode 100644 ubuntu/igh-ecat/master/sync.c
>   create mode 100644 ubuntu/igh-ecat/master/sync.h
>   create mode 100644 ubuntu/igh-ecat/master/sync_config.c
>   create mode 100644 ubuntu/igh-ecat/master/sync_config.h
>   create mode 100644 ubuntu/igh-ecat/master/voe_handler.c
>   create mode 100644 ubuntu/igh-ecat/master/voe_handler.h
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20260916/d9b18040/attachment-0001.sig>


More information about the kernel-team mailing list