Commit Graph

1319 Commits

Author SHA1 Message Date
Bjarne von Horn 8c30331e6e use `int` as return type for ecrt_soe_request_*
See #101
2024-04-03 10:34:17 +02:00
Bjarne von Horn 885b8717e1 use `int` as return type for ecrt_sdo_request_*
See #101
2024-04-03 10:34:17 +02:00
Bjarne von Horn 5248b967d2 use `int` as return type for ecrt_slave_*
See #101
2024-04-03 10:34:17 +02:00
Bjarne von Horn 13e99008c3 use int as return type for ecrt_master_*
See #101
2024-04-03 10:34:17 +02:00
Bjarne von Horn 06b408ef1b use int as return type for ecrt_domain_*
See #101
2024-04-03 10:34:17 +02:00
Bjarne von Horn 5d39d3b0cf Add dwmac_intel and stmmac_pci v6.1.81 2024-04-03 10:33:12 +02:00
Bjarne von Horn 3870a66c8f Fix rtdm rtai redefinition error 2024-02-16 14:06:23 +01:00
Bjarne von Horn e8213ea7e8 allow non-standard RTAI include dir 2024-02-16 14:05:58 +01:00
Florian Pose 251bb4a147 Changed AL state change timeout. Maybe a fix for #32. 2024-02-08 12:43:17 +01:00
Florian Pose 5f8d97edcf Assigned ioctl calls to RT, nRT or both; documented that in header. 2024-02-08 12:05:29 +01:00
Florian Pose 677b8442e3 Minor: Use slave pointer. 2024-02-08 12:04:47 +01:00
Florian Pose caea048cc9 Merge branch 'prefetch-domain-pointer' into 'devel-1.6'
Prefetch domain pointer / made domain argument const

See merge request etherlab.org/ethercat!118
2024-02-08 08:54:17 +00:00
Bjarne von Horn d0f4aed39b Make ecrt_master_reset available in RT context
It takes the master_sem, so calling it from RT context is not an option.
The reset is done by a workqueue now, which is triggered in a NMI-safe way.

Fixes #103
2024-02-08 08:59:29 +01:00
Florian Pose 2f4c06afc1 Moved application time ioctl for RT-only; changed some permissions. 2024-02-07 17:08:52 +01:00
Florian Pose 67b3756976 Removed header addition. 2024-02-07 16:18:05 +01:00
Florian Pose 0c9813862f Minor: Broke long lines. 2024-02-07 16:11:02 +01:00
Florian Pose a5df1c38d1 Moved fetching domain offset to ecrt_master_activate(). 2024-02-07 15:27:47 +01:00
Florian Pose 4bab54a336 Removed some unused variables. 2024-02-07 15:26:37 +01:00
Bjarne von Horn a5fc2b0f26 remove unused variables. 2024-02-07 15:03:39 +01:00
Bjarne von Horn 26ffb1d265 Merge branch 'genet_5.10' into devel-1.6 2024-02-07 14:48:05 +01:00
Florian Pose c8ed5fa38d Unified EoE IP parameter names. 2024-02-07 12:44:55 +01:00
Bjarne von Horn 19b8f672c7 Disable memory allocation in {soe,sdo}_request_write
Because it's not compatible with Xenomai and other atomic contexts.
The memory is preallocated when creating the request in before.
2024-02-05 16:05:57 +01:00
Florian Pose 25cfa1ead1 Fix building with --disable-eoe. 2024-02-05 15:41:02 +01:00
Florian Pose 25bf7ef885 Set IP parameter methods on user and kernel side. 2024-02-05 15:24:24 +01:00
Bjarne von Horn c76399b8db more eth_hw_addr_set ifdefs for suse's kernel 2024-02-05 14:25:48 +01:00
Florian Pose d89191cd9e strcpy explanations. 2024-02-05 12:07:34 +01:00
Bjarne von Horn aa89735e55 do ioctl multiplexing in ioctl.c 2024-02-05 10:08:55 +01:00
Bjarne von Horn bf790debb6 Split ioctl switch statements into rt, nrt and common 2024-02-05 10:08:55 +01:00
Bjarne von Horn 385f2ba64e Use rtdm_safe_copy_{from,to}_user 2024-02-05 10:04:14 +01:00
Bjarne von Horn ca60769996 introduce ec_copy_{from,to}_user macros with ctx argument in ioctl 2024-02-05 10:02:28 +01:00
Bjarne von Horn 95209d2858 Move ec_rtdm_context into common header 2024-02-05 09:58:05 +01:00
Bjarne von Horn 0a41222ee6 prepare uniting ec_rtdm_context 2024-02-05 09:58:04 +01:00
Bjarne von Horn 656526f03c remove EC_RTDM_OPS_HAS_MMAP again 2024-02-05 09:58:04 +01:00
Bjarne von Horn 1c9f9bfe7d use RTDM CFLAGS for non-standard include dir 2024-02-05 09:58:04 +01:00
Bjarne von Horn 1dae91d8c3 Use mmap handler in Xenomai3 2024-02-05 09:58:04 +01:00
Bjarne von Horn e76109c854 Use xeno_config for xenomai version detection 2024-02-05 09:58:04 +01:00
Joonyoung Shim 023d989ee3 Support Xenomai version 3
From 9567f460411d9a832c24b3ef65252f6f4f902fef Mon Sep 17 00:00:00 2001
Xenomai version 3 has different RTDM interface with version 2 and has
Alchemy interface instead of native API. This supports RTDM of Xenomai
version 3 and to use Alchemy interface.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
2024-02-05 09:58:04 +01:00
Florian Pose 4ce4d08b7b Made some more pointer arguments const in API. 2024-02-02 10:56:09 +01:00
Florian Pose df3954d8ec Fixed line lengths; and ID keywords of merged sources. 2024-02-01 16:38:06 +01:00
Florian Pose 5e0d49755d Merge branch 'devel-1.6' into ethercat-backport_setip 2024-02-01 15:30:05 +01:00
Florian Pose 4f32561ce9 Merge branch 'devel-1.6' into ethercat-backport_setip 2024-02-01 15:27:17 +01:00
Florian Pose ee55c20e28 Fixed mail address; limited lines to 78 characters; removed $Id$. 2024-02-01 15:15:41 +01:00
Florian Pose 512bac72e2 Merge branch 'devel-1.6' into prepare-1.6 2024-02-01 13:26:12 +01:00
Florian Pose be41b79f3f Merge branch 'devel-1.6' into prepare-1.6 2024-02-01 13:09:45 +01:00
Florian Pose 038f732543 Increase ioctl() version magic to 35. 2024-02-01 13:05:55 +01:00
Florian Pose 762bb01ff9 Merge branch 'devel-1.6' into ethercat-backport_setip 2024-02-01 12:41:38 +01:00
Florian Pose 2fdea4dd53 Merge branch '79-query-scan-progress-via-api-2' into 'devel-1.6'
Resolve "Query scan progress via API"

See merge request etherlab.org/ethercat!110
2024-02-01 10:27:07 +00:00
Bjarne von Horn 2e071ad680 Remove EtherCAT copyright notice. 2024-02-01 09:18:26 +01:00
Bjarne von Horn 9a2abde36c Remove 2.6 conditionals in master 2024-02-01 09:12:55 +01:00
Florian Pose 91fe3eb735 Added ecrt_master_scan_progress() method. 2024-01-31 16:52:18 +01:00
Florian Pose 21b0b13703 Merge branch 'kbuild_out_of_tree' into 'devel-1.6'
support out-of-tree build

See merge request etherlab.org/ethercat!79
2024-01-31 14:52:23 +00:00
Florian Pose 6c6b68c00b Merge branch 'stable-1.5' into soe-handler 2024-01-18 10:40:06 +01:00
Florian Pose 5c6e19981b Incremented ioctl version magic to 33. 2024-01-18 10:37:27 +01:00
Bjarne von Horn dc13d7c511 Add lockdep assertion for EoE xmit callback 2024-01-15 11:43:59 +01:00
Bjarne von Horn eb44f82a91 Reuse netif_tx_lock for EoE TX synchronization
ndo_start_xmit callback is protected by __netif_tx_lock by the network stack,
so we no not need our own locks.
2024-01-15 11:20:25 +01:00
Bjarne von Horn a54fac3090 Make locking of ext_datagram_queue more selective 2024-01-15 11:20:25 +01:00
Bjarne von Horn 13e1e469e1 Use RT Mutex instead of semaphore for RT ioctl locking. 2024-01-15 11:20:25 +01:00
Bjarne von Horn 7a7f9a041e Fix -Wcomment. 2024-01-15 11:20:25 +01:00
Bjarne von Horn c3826c7758 Remove EtherCAT copyright notice. 2024-01-15 11:20:25 +01:00
Bjarne von Horn 543dc87d88 Remove 2.6 conditionals in master 2024-01-15 11:20:25 +01:00
Bjarne von Horn 267ae77ea2 add 0 terminator in ioctl 2023-11-23 18:21:02 +01:00
Florian Pose 97ee76462b Introduced feature flag WaitBeforeSAFEOPms. 2023-11-23 14:38:29 +01:00
Florian Pose f46b4ba654 Fixed wrong state assignment for IDN config. 2023-11-23 14:27:01 +01:00
Bjarne von Horn 3eda5173c6 Use fixed-size setip request 2023-09-20 12:46:52 +02:00
Bjarne von Horn 01c72a8865 EoE for Set IP in master 2023-09-20 12:30:24 +02:00
Florian Pose 7b2084e270 Fixed endianess of EoE parameters. 2023-09-15 13:41:01 +02:00
Florian Pose 4d47f0b328 Implemented EoE Set IP parameter request via command-line tool. 2023-09-15 13:40:57 +02:00
Florian Pose 0e25f6d80f Removed obsolete mailbox type name and clarified documentation. 2023-09-13 10:02:31 +02:00
Florian Pose 5a255fce3d Removed obsolete FoE type name. 2023-09-13 10:02:31 +02:00
Florian Pose 41bc600cef Removed obsolete SoE type name. 2023-09-13 10:02:31 +02:00
Florian Pose d1df6520ba Cleaned up EoE frame type definitions. 2023-09-13 10:02:31 +02:00
Florian Pose 60ebe661a6 EoE frame types. 2023-09-13 10:02:31 +02:00
Bjarne von Horn 758b4adc99 reserve extra headroom in tx buffer for genet 2023-09-11 21:31:57 +02:00
Bjarne von Horn d967426204 add missing EXTRA_DIST 2023-09-11 11:43:39 +02:00
Bjarne von Horn 73e6ea9ce6 support out-of-tree build
by replacing `src` variable in Kbuild files.
2023-09-11 11:43:39 +02:00
Bjarne von Horn d08e41f913 Add page ref to device drivers page.
It's now always in doxygen-output/html/devicedrivers.html
2023-09-06 10:19:49 +02:00
Florian Pose d35c5a41cc Always define EoE handler count. 2023-07-19 15:56:09 +02:00
Nicola Fontana 5d8c8990de Fix class_create on kernel 6.4
Commit 1aaba11da9aa7d7d6b52a74d45b31cac118295a1 in kernel code removed
`module *` argument from `class_create`.
2023-07-05 12:13:32 +02:00
Andreas Stewering-Bone 04f202a39c Merge branch 'fix_vm_set_flag' into 'stable-1.5'
Fix setting flag in vm_area_struct for Kernel 6.3

See merge request etherlab.org/ethercat!67
2023-06-01 05:53:32 +00:00
Bjarne von Horn 27db882dab Fix setting flag in vm_area_struct for Kernel 6.3
The error was:
```
[  150s]   gcc -Wp,-MMD,/home/abuild/rpmbuild/BUILD/build-default/devices/ccat/.netdev.o.d -nostdinc -I/usr/src/linux-6.3.1-1/arch/x86/include -I./arch/x86/include/generated -I/usr/src/linux-6.3.1-1/include -I./include -I/usr/src/linux-6.3.1-1/arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I/usr/src/linux-6.3.1-1/include/uapi -I./include/generated/uapi -include /usr/src/linux-6.3.1-1/include/linux/compiler-version.h -include /usr/src/linux-6.3.1-1/include/linux/kconfig.h -include /usr/src/linux-6.3.1-1/include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=/usr/src/linux-6.3.1-1/= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -funsigned-char -std=gnu11 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mindirect-branch-cs-prefix -mfunction-return=thunk-extern -fno-jump-tables -mharden-sls=all -fpatchable-function-entry=16,16 -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 -fno-allow-store-data-races -Wframe-larger-than=2048 -fstack-protector-strong -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-dangling-pointer -fno-stack-clash-protection -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -falign-functions=16 -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wcast-function-type -Wno-stringop-truncation -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-array-bounds -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -g -gdwarf-5  -DMODULE  -DKBUILD_BASENAME='"netdev"' -DKBUILD_MODNAME='"ec_ccat"' -D__KBUILD_MODNAME=kmod_ec_ccat -c -o /home/abuild/rpmbuild/BUILD/build-default/devices/ccat/netdev.o /home/abuild/rpmbuild/BUILD/build-default/devices/ccat/netdev.c   ; ./tools/objtool/objtool --hacks=jump_label --hacks=noinstr --hacks=skylake --orc --retpoline --rethunk --sls --static-call --uaccess --prefix=16   --module /home/abuild/rpmbuild/BUILD/build-default/devices/ccat/netdev.o
[  151s] /home/abuild/rpmbuild/BUILD/build-default/master/cdev.c: In function 'eccdev_mmap':
[  151s] /home/abuild/rpmbuild/BUILD/build-default/master/cdev.c:246:19: error: assignment of read-only member 'vm_flags'
[  151s]   246 |     vma->vm_flags |= VM_DONTDUMP; /* Pages will not be swapped out */
[  151s]       |                   ^~
[  151s] make[3]: *** [/usr/src/linux-6.3.1-1/scripts/Makefile.build:253: /home/abuild/rpmbuild/BUILD/build-default/master/cdev.o] Error 1
```
2023-05-09 14:28:11 +02:00
Bjarne von Horn b97af7523a igb for 5.15 2023-05-02 12:17:37 +00:00
Florian Pose 47cf84f406 Merge branch 'allow-empty-sdos' into 'stable-1.5'
Allow zero-sized SDO responses

See merge request etherlab.org/ethercat!61
2023-05-02 08:43:17 +00:00
Florian Pose 1726abf0c3 Allow zero-sized SDO responses 2023-05-02 08:43:16 +00:00
Florian Pose c022ddbcf2 Merge branch 'stable-1.5' into 'stable-1.5'
fix version compatibility of alloc_netdev when debug if is enabled

See merge request etherlab.org/ethercat!62
2023-03-14 15:59:31 +00:00
Florian Pose bdab9570f2 Implemented SoE requests in user-space library. 2023-03-14 16:48:48 +01:00
Florian Pose 56c4556173 New SoE request API; implemented API in kernel. 2023-03-14 16:12:45 +01:00
Florian Pose eac4e340eb Init missing fields. 2023-03-14 16:07:29 +01:00
Florian Pose c1fb080b55 Removed Id keywords. 2023-03-14 16:05:15 +01:00
Florian Pose 57adee4c7b Changed email and postal address. 2023-01-09 09:59:08 +01:00
raim.delgado 7bdaca925c fix version compatibility of alloc_netdev when debug if is enabled 2022-11-29 09:59:02 +09:00
Florian Pose 9aa5935d08 Merge branch 'fix_eoe_usermode_lock' into 'stable-1.5'
ioctl.c: FIX: must take io_sem around ecrt_master_send/ecrt_master_receive

See merge request etherlab.org/ethercat!36
2022-09-05 09:11:37 +00:00
Florian Pose 26e5b9f553 Minor: Fixed indent. 2022-05-17 14:10:51 +02:00
Bjarne von Horn d301cbb992 Fix setting mac_address
eoe->dev->dev_addr is read_only in 5.17.0
using eth_hw_addr_set instead
2022-05-17 12:17:28 +02:00
Florian Pose 49135bfaff Centrally defined mailbox types. 2022-03-04 10:00:47 +01:00
till straumann f4e3a92352 master/ioctl.c: FIX -- more points where io_sem must be locked
Experienced corruption of master->datagram_queue because ecrt_domain_queue()
(when called from ioctl) does not hold the io_sem!
2021-11-04 13:50:55 +01:00
till straumann 5437ec4ef1 ioctl.c: FIX: must take io_sem around ecrt_master_send/ecrt_master_receive 2021-10-14 10:20:52 +02:00
Matthias Schoepfer e6d842cc8f master: added 'run_on_cpu' module parameter to bind kthreads to a cpu
When you use isolcpus to isolate a cpu for the realtime task, as well
as assiging all relevant interrupts to this cpu, it makes sense to
also bind the EtherCAT-OP / EtherCAT-IDLE task to this cpu to reduce
the cache misses and avoid data migration between cores. Therefore
a parameter 'run_on_cpu' is added, that takes the cpu number (same as
in isolcpus, not a smp_affinity mask). If unset, will bind to any cpu
and will be migratable.

The reason to put this into the kernel module is, that the thread is
created during runtime, i.e. when the userspace program is starting
the ethercat master. It would be rather hacky, to find the pid of the
EtherCAT-xx thread and migrate it at this point.

Signed-off-by: Matthias Schoepfer <m.schoepfer@rethinkrobotics.com>
2021-09-27 14:56:01 +02:00
Florian Pose eba73fc292 Strictly using KERN_CONT for continued printk() calls to avoid newlines. 2021-09-01 11:00:49 +02:00
Florian Pose 09d1096623 Avoided warning about unreasonable use of strncpy(). 2021-08-25 12:00:01 +02:00
Florian Pose 4e11a50670 Define set_normal_priority() inside #ifdef EC_EOE. Fixes #12. 2021-08-25 09:47:26 +02:00