IgH EtherCAT Master for Linux
Go to file
Bjarne von Horn 7727ac725d Use spinlocks in ec_mini.ko examples
down() must not be used in softirq context:
```
[  613.686994] BUG: sleeping function called from invalid context at ../kernel/locking/semaphore.c:58
[  613.687003] in_atomic(): 0, irqs_disabled(): 0, non_block: 0, pid: 29, name: ktimers/1
[  613.687007] preempt_count: 0, expected: 0
[  613.687009] RCU nest depth: 3, expected: 0
[  613.687013] CPU: 1 PID: 29 Comm: ktimers/1 Tainted: G        W  OE      6.1.38-lp154.12-0601rt #1 1ef8e7f7e45a6388beff51e7b17265074b1375d6
[  613.687020] Hardware name: ICP / iEi IMBA-9454ISA/IMBA-9454ISA(E168), BIOS 080014  02/20/2009
[  613.687023] Call Trace:
[  613.687029]  <TASK>
[  613.687034]  dump_stack_lvl+0x44/0x5c
[  613.687046]  __might_resched+0x171/0x1c0
[  613.687055]  ? check_slave_config_states+0x100/0x100 [ec_mini 7f93b9d1541d0037eab9400e73ee29f252250780]
[  613.687070]  down+0x1e/0x70
[  613.687076]  cyclic_task+0x11/0xdc [ec_mini 7f93b9d1541d0037eab9400e73ee29f252250780]
[  613.687088]  call_timer_fn+0x29/0x190
[  613.687096]  run_timer_softirq+0x4d5/0x570
[  613.687104]  ? __schedule+0x32b/0x1330
[  613.687110]  __do_softirq+0xd5/0x2ec
[  613.687117]  ? smpboot_thread_fn+0x23/0x300
[  613.687127]  run_timersd+0x60/0xb0
[  613.687130]  smpboot_thread_fn+0x24c/0x300
[  613.687133]  ? smpboot_unregister_percpu_thread+0x70/0x70
[  613.687135]  kthread+0x129/0x140
[  613.687138]  ? kthread_complete_and_exit+0x20/0x20
[  613.687141]  ret_from_fork+0x22/0x30
[  613.687146]  </TASK>
```
2024-02-01 14:09:00 +01:00
devices Remove whitespace. 2024-02-01 09:20:25 +01:00
documentation Use git revision for documentation. 2023-02-02 11:08:30 +01:00
doxygen-layout@fa4893ab56 Use IgH doxygen theme 2022-11-16 10:31:01 +01:00
examples Use spinlocks in ec_mini.ko examples 2024-02-01 14:09:00 +01:00
include Merge branch '79-query-scan-progress-via-api-2' into 'devel-1.6' 2024-02-01 10:27:07 +00:00
lib Merge branch '79-query-scan-progress-via-api-2' into 'devel-1.6' 2024-02-01 10:27:07 +00:00
master Merge branch '79-query-scan-progress-via-api-2' into 'devel-1.6' 2024-02-01 10:27:07 +00:00
script Remove EtherCAT copyright notice. 2024-02-01 09:18:26 +01:00
tool Remove EtherCAT copyright notice. 2024-02-01 09:18:26 +01:00
tty Remove EtherCAT copyright notice. 2024-02-01 09:18:26 +01:00
.gitignore first try to include auto-generated device table in Doxygen 2023-08-09 22:38:42 +02:00
.gitlab-ci.yml Merge branch 'kbuild_out_of_tree' into 'devel-1.6' 2024-01-31 14:52:23 +00:00
.gitmodules Use IgH doxygen theme 2022-11-16 10:31:01 +01:00
.hgignore update ccat driver to v0.14 2015-11-05 16:54:49 +01:00
AUTHORS Changed email and postal address. 2023-01-09 09:59:08 +01:00
COPYING Removed --foreign switch for autotools. 2006-11-06 09:43:36 +00:00
COPYING.LESSER Fixed COPYING.LESSER to be LGPL 2.1 (like in file headers). 2012-07-13 11:18:52 +02:00
CodingStyle.md Coding style in markdown. 2023-01-30 11:00:53 +01:00
Doxyfile.in first try to include auto-generated device table in Doxygen 2023-08-09 22:38:42 +02:00
FEATURES.md Markdown fixes. 2023-01-30 10:45:31 +01:00
INSTALL.md Markdown fixes. 2023-01-30 10:45:31 +01:00
Kbuild.in Remove EtherCAT copyright notice. 2024-02-01 09:18:26 +01:00
Makefile.am Remove EtherCAT copyright notice. 2024-02-01 09:18:26 +01:00
Makefile.kbuild support out-of-tree build 2023-09-11 11:43:39 +02:00
NEWS Fixed FoE timeout calculation bug. 2013-02-14 11:17:33 +01:00
README.EoE merge -c1609 branches/stable-1.4: INSTALL, README. 2009-01-26 11:51:53 +00:00
README.md Remove whitespace. 2024-02-01 09:20:25 +01:00
TODO Updated TODOs. 2021-04-06 13:02:53 +02:00
bootstrap Remove EtherCAT copyright notice. 2024-02-01 09:18:26 +01:00
configure.ac Remove EtherCAT copyright notice. 2024-02-01 09:18:26 +01:00
ethercat.spec.in Remove EtherCAT copyright notice. 2024-02-01 09:18:26 +01:00
globals.h Also changed license of gloabl headers to LGPL. 2021-07-23 13:33:54 +02:00

README.md

This is the README file of the IgH EtherCAT Master.

vim: spelllang=en spell tw=78

Contents:

General Information

This is an open-source EtherCAT master implementation for Linux 2.6 or newer.

See the features file for a list of features. For more
information, see http://etherlab.org/en/ethercat.

or contact

Dipl.-Ing. (FH) Florian Pose fp@igh.de
Ingenieurgemeinschaft IgH
Nordsternstraße 66
D-45329 Essen
http://igh.de

Documentation

Handbook

The PDF documentation is generated via LaTeX and can be build with the
following steps:

cd documentation
make

The PDF is automatically held up-to-date and can be downloaded from
GitLab
.

Doxygen

To generate the Doxygen documentation, the following commands can be used.
Therefore, the configure script must have run (see the install
file
).

git submodule update --init
make doc

An up-to-date Doxygen output can be found on
docs.etherlab.org.

Requirements

Software requirements

Configured sources for the Linux 2.6 (or newer) kernel are required to build
the EtherCAT master.

Hardware requirements

A table of supported hardware can be found at
http://etherlab.org/en/ethercat/hardware.php.

Building and installing

See the install file.

Realtime and Tuning

Realtime patches for the Linux kernel are supported, but not required. The
realtime processing has to be done by the calling module (see API
documentation). The EtherCAT master code itself is passive (except for the
idle mode and EoE).

To avoid frame timeouts, deactivating DMA access for hard drives is
recommended (hdparm -d0 <DEV>).

License

Copyright (C) 2006-2023 Florian Pose, Ingenieurgemeinschaft IgH

This file is part of the IgH EtherCAT Master.

The IgH EtherCAT Master is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License version 2, as
published by the Free Software Foundation.

The IgH EtherCAT Master is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.

You should have received a copy of the GNU General Public License along with
the IgH EtherCAT Master; if not, write to the Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Coding Style

Developers shall use the coding style rules in the coding style
file
.