Commit Graph

383 Commits

Author SHA1 Message Date
Florian Pose 103eb7139c Added ecrt_master_deactivate() to remove the bus configuration. 2009-08-20 14:27:35 +02:00
Florian Pose 694838c9f6 Fixed compiler error on --disable-eoe. 2009-08-04 07:54:16 +00:00
Florian Pose f411a51ca6 Re-added callback data pointer, because it is necessary for some applications. 2009-07-29 09:19:53 +00:00
Florian Pose 735f1efbc1 Removed unwanted tabulators. 2009-07-27 10:37:47 +00:00
Florian Pose a3c32e8b67 Improved the callback mechanism. 2009-07-13 15:18:28 +00:00
Florian Pose f7e14d2915 EoE processing with kthread. 2009-06-30 11:11:56 +00:00
Florian Pose 1baa06d05b ethercat eoe command. 2009-06-26 09:46:57 +00:00
Florian Pose 2a7052264b Minor: vendor/product with 8 hex digits. 2009-06-26 07:44:50 +00:00
Florian Pose ceec75bf50 Always set DC reference clock to OP. 2009-05-06 15:06:46 +00:00
Florian Pose 6935cbb247 Use application start time as a common reference for cyclic generation
start times.
2009-05-04 12:11:00 +00:00
Florian Pose a34809e18d Separated application time from synchronizing reference clock. 2009-05-04 10:05:55 +00:00
Florian Pose f057a0f968 Transition->Transmission. 2009-04-30 14:37:02 +00:00
Florian Pose 29eb2d7d06 Transition delay calculation. TBC... 2009-04-30 14:12:47 +00:00
Florian Pose f4b6807cc9 Bus topology calculation. 2009-04-29 09:43:04 +00:00
Florian Pose 69da9e5524 Determine type of DC implementation (full or delay meas. only); update scan FSM graph. 2009-04-27 11:38:03 +00:00
Florian Pose d3303e0fa4 Replaced timeval by 64-bit EtherCAT time. 2009-04-24 10:24:53 +00:00
Florian Pose 40bb1edaec Output reference clock and application time in 'ethercat Master'. 2009-04-24 08:39:20 +00:00
Florian Pose fe56cc111c Separated sync_reference_clock() and sync_slave_clocks(). 2009-04-23 12:02:26 +00:00
Florian Pose 5e79dc8c06 Find DC reference clock. 2009-04-20 14:33:47 +00:00
Florian Pose 4694cde027 Added debug_level module parameter. debug_level is now unsigned int. 2009-04-17 12:03:12 +00:00
Florian Pose 0dd5ec3567 DC sync reference clock to application time. TBC... 2009-04-09 18:21:18 +00:00
Florian Pose de1a332eee Introduced ecrt_master_sync() for synchronizing slave clocks to reference clock. 2009-04-09 10:21:47 +00:00
Florian Pose 7f97ba66a2 Renamed phy_ commands to reg_. 2009-04-08 12:48:59 +00:00
Florian Pose a5752e0123 Preparations to compile against 2.6.27. 2009-03-09 09:08:09 +00:00
Florian Pose 12c12b1bab Improved and added license headers. 2009-02-24 12:51:39 +00:00
Florian Pose 7a703ecb05 merge -c1616 branches/1.4-foe: Included FoE patch from Olav Zarges. 2009-01-26 13:01:58 +00:00
Florian Pose 723a9d66f4 merge -c1610 branches/stable-1.4: Added missing doxygen docs. 2009-01-26 11:58:35 +00:00
Florian Pose 121cfd7098 merge -c1606 branches/stable-1.4: Output vendor Id in hex. 2009-01-26 11:46:38 +00:00
Florian Pose 826ae37b26 merge -c1604 branches/stable-1.4: Fixed spelling of EtherCAT terms. 2009-01-26 11:45:30 +00:00
Florian Pose 5ca3d24337 merge -c1603 branches/stable-1.4: Changed licence headers to avoid conflicts with the GPL; restricted licence to GPLv2 only. 2009-01-26 11:16:10 +00:00
Florian Pose 8d46a283f6 Improved error case return codes of many functions. 2008-11-17 17:18:02 +00:00
Florian Pose bdbaf5d078 Created backend versions of all API functions returing a pointer; using
the PTR_ERR()... macros.
2008-11-17 15:04:28 +00:00
Florian Pose 7fca697c8d Output corrupted frame reasons. 2008-11-05 09:59:20 +00:00
Florian Pose f8bff8668f merge -c1522 branches/stable-1.4: Fixed jace in jiffies timeout calculation. 2008-10-17 13:36:43 +00:00
Florian Pose 7765e989c4 Added ec_master_get_config(). 2008-10-09 09:48:59 +00:00
Florian Pose 4104c786ac Applied patch by Mario Witkowski to support the new class/device
interface from kernel 2.6.26.
2008-10-09 09:00:48 +00:00
Florian Pose 2484105d5a Minor change. 2008-10-02 10:44:43 +00:00
Florian Pose 488bf0a640 Moved threads to kthread interface. 2008-10-01 14:37:34 +00:00
Florian Pose 426b0ab2d7 Avoided using #ifdef inside a macro. 2008-10-01 08:44:44 +00:00
Florian Pose 12d30c487a Added VoE handler. 2008-09-01 14:17:18 +00:00
Florian Pose d975aafa18 Added phy commands. 2008-08-13 13:23:52 +00:00
Florian Pose 17352d9e3b Fixed race concerning thread signaling when master thread had no
opportunity to run, but shall be killed immediately.
2008-08-08 13:47:23 +00:00
Florian Pose 908624d4d8 Fixed missing up(). 2008-08-08 13:42:46 +00:00
Florian Pose 1cf5448e88 Added debugging for configuration function of the application interface. 2008-08-01 09:24:26 +00:00
Florian Pose 09a6ddc5a4 Fixed reconfiguration: Force config when application detaches. 2008-08-01 07:23:09 +00:00
Florian Pose c0b7fca9b6 Improved source code doc. 2008-07-04 12:06:10 +00:00
Florian Pose d871e4fd08 Renamed ecrt_slave_config_sync_managers() to ecrt_slave_config_pdos();
Added EC_MAX_SYNC_MANAGERS to ecrt.h.
2008-07-02 14:06:10 +00:00
Florian Pose 8265fb115f Improved locking between ioctl()s and master state machine; separate
functions for ioctls(); removed master's sii_sem and sdo_sem.
2008-07-02 11:26:51 +00:00
Florian Pose 20911256c3 Added ec_master_find_domain_const(). 2008-07-02 09:22:55 +00:00
Florian Pose f10cc06840 Added ec_master_find_slave_const(). 2008-07-02 08:14:47 +00:00
Florian Pose d942e87cef Implemented master semaphore to secure concurrent access from ioctls, state machine and realtime interface. 2008-07-01 15:38:20 +00:00
Florian Pose a81228a587 Store sync manager configurations in ec_slave_config_t instead of Pdo
lists for each direction; changed realtime interface to allow sync
manager configuration.
2008-06-26 13:16:15 +00:00
Florian Pose a6b7657daf Fixed alias bug. 2008-06-20 13:38:35 +00:00
Florian Pose c233259931 Removed state machine cycle time measuring. 2008-06-19 10:22:24 +00:00
Florian Pose cdd45226aa Disable use of CPU timestamp counter by default. 2008-06-19 10:18:58 +00:00
Florian Pose f03af4c38b Removed 'end' and 'error' states from master state machine. 2008-06-18 13:53:31 +00:00
Florian Pose 0ef150c812 Renamed master 'mode' to 'phase'. 2008-06-18 13:33:50 +00:00
Florian Pose d91aa97487 Removed configs_attached flag; changed return value of
ec_master_attach_slave_configs() to void.
2008-06-18 12:49:11 +00:00
Florian Pose 6535c4d9ed Minor change. 2008-06-18 11:15:36 +00:00
Florian Pose 6dd92542d7 Only load default assignment, if slave was attached. 2008-06-18 11:13:30 +00:00
Florian Pose 4688b35ada Implemented ecrt_slave_config_state(); minor changes in
ec_master_state_t and ec_slave_config_state_t; adapted example.
2008-06-18 10:13:58 +00:00
Richard Hacker 2d683ae0de Completed master states. 2008-06-17 14:24:33 +00:00
Florian Pose 2e6a9a955e Added support for different versions of class_device_create(). 2008-06-17 13:03:33 +00:00
Florian Pose 25ffc9f638 Create class device with device_number information in sysfs. 2008-06-17 12:49:06 +00:00
Florian Pose 9aa0789b33 Reverted revision number checking from r1228. 2008-06-17 09:44:46 +00:00
Florian Pose 541c2a0cd8 Added revision number to slave type checking. 2008-06-16 09:30:58 +00:00
Florian Pose d3f7c7bbd8 Added a few debugging messages. 2008-06-12 13:05:05 +00:00
Florian Pose 6759569586 Fixed duplicate kfree() bug. 2008-06-12 13:00:32 +00:00
Florian Pose e4c9a82a56 Store slaves in an array instead of a list. 2008-06-12 09:32:25 +00:00
Florian Pose e2c03b9e77 Removed kobject from master and module. Sysfs is gone! 2008-06-12 08:12:02 +00:00
Florian Pose 3197ca4a23 Removed kobject from slave_config. 2008-06-12 07:45:27 +00:00
Florian Pose fbdb093ec0 Clear domains before slave configs, because domain references the FMMU
configurations.
2008-06-12 07:32:05 +00:00
Florian Pose 448eb13820 Removed kobject from domain. 2008-06-12 07:26:38 +00:00
Florian Pose 22fe4a1841 Removed kobjects from sdo and slave. 2008-06-12 07:15:54 +00:00
Florian Pose 1132577dd9 Bus configuration via 'ethercat config'. 2008-06-11 15:29:47 +00:00
Florian Pose 2a7a7e2e5c Replaced misleading %i by %u. 2008-06-10 11:54:39 +00:00
Florian Pose 825836dd77 Removed master info from sysfs. 2008-06-05 15:44:58 +00:00
Florian Pose 7194a43da1 Implemented 'ethercat debug' command. 2008-06-05 14:33:36 +00:00
Florian Pose e5f7d6f400 Introduced ec_master_domain_count() and ec_master_find_domain(). 2008-06-04 10:10:05 +00:00
Florian Pose 8b8b470eaa Introduced ec_master_find_slave(). 2008-05-30 10:46:14 +00:00
Florian Pose 85e8f72c68 Output subindices with %02X. 2008-05-30 09:39:29 +00:00
Florian Pose 3b4cae9626 Added the new ethercat comman-line tool with lsec functionality. 2008-05-29 15:11:26 +00:00
Florian Pose c294906bbf Moved setting of the allow flags. 2008-04-25 12:13:26 +00:00
Florian Pose 5742847dea Removed ec_master_prepare(). 2008-04-25 12:08:11 +00:00
Florian Pose 80c1bf823d Removed bus validation; slave configuration during realtime operation;
improved scan/config busy flags.
2008-04-25 12:04:23 +00:00
Florian Pose 593a5fda9c Changed terms "Pdo mapping" -> "Pdo assignment" and "Pdo configuration"
-> "Pdo mapping"; created ecrt_slave_config_pdo_assign_clear() and
ecrt_slave_config_pdo_mapping_clear().
2008-04-03 13:34:13 +00:00
Florian Pose f69b21af02 Renamed EEPROM to SII. 2008-03-17 09:38:48 +00:00
Florian Pose f28f42ceb1 Introduced ec_sdo_request_state_t, making ec_request_t private again;
therefore added EC_REQUEST_INIT and renamed EC_REQUEST_IN_PROGRESS to
EC_REQUEST_BUSY and EC_REQUEST_COMPLETE to EC_REQUEST_SUCCESS.
2008-03-04 11:37:51 +00:00
Florian Pose 0b5b3b9e9b Removed slave pointer from ec_sdo_request_t class. 2008-02-29 16:20:12 +00:00
Florian Pose 350c159a9d Renamed [PS]DO to [PS]do. 2008-02-22 12:29:30 +00:00
Florian Pose 3a50cd0ff1 Allow bus configuration when link is down. 2008-02-19 09:58:48 +00:00
Florian Pose 6189092aed Implemented most realtime interface changes for version 1.4, improved
ec_pdo_t and ec_pdo_entry_t classes, added fmmu_config_t, adjusted
minimal example, etc...
2008-02-19 08:22:20 +00:00
Florian Pose c5b3ade0c0 Updated Doxygen documentation. 2007-09-24 12:12:11 +00:00
Florian Pose 1c829731ed Improved EoE handling: Avoided skipping of datagrams and release lock
while processing.
2007-09-12 14:48:53 +00:00
Florian Pose 7369f5a5a2 Removed measure_bus_time(). 2007-09-12 14:07:28 +00:00
Florian Pose 7597e2795e Store skipped information in datagrams; name datagrams for statistics
output.
2007-09-12 14:06:35 +00:00
Florian Pose c4b87f7317 Added --enable-eoe conditional. 2007-09-12 13:10:15 +00:00
Florian Pose 0a99c21c72 Show bus status and PDO slaves status in master info file. 2007-09-12 12:30:48 +00:00
Florian Pose 9590fc6e37 Fixed EtherCAT addressing problem on big-endian systems. The slaves
address is now a four-byte-array, that is filled with little-endian
(EtherCAT) values on datagram creation.
2007-09-06 09:28:38 +00:00
Florian Pose 808ad3e2f1 Added ecrt_master_get_slave_by_pos(). 2007-08-10 13:46:34 +00:00
Florian Pose 68e6dfc108 Implemented debug frame ring to output the last n frames for debugging
reasons.
2007-08-09 15:01:14 +00:00
Florian Pose f76d31ec92 Included datagram queuing in critical section in idle task; added some
debugging and comments.
2007-08-09 14:47:37 +00:00
Florian Pose cc0cee6757 Re-ordered criteria for datagram matching. 2007-08-09 14:40:29 +00:00
Florian Pose 20daa81763 Minor change. 2007-08-09 14:28:54 +00:00
Florian Pose 480d12021b Added debugging output for unmatched frames and those that timed out. 2007-08-07 13:33:57 +00:00
Florian Pose c9c595f94e Introduced frames_timed_out flag to notice bus failure when link down is
not detected.
2007-05-03 14:29:21 +00:00
Florian Pose f5d3ec538a Completely lock master while an EoE cycle is executing. 2007-03-16 14:42:04 +00:00
Florian Pose 9466d51185 Dynamic creation of EoE handlers. 2007-03-16 14:00:12 +00:00
Florian Pose 2a1920caaa Removed unecessary clearing of EoE handlers in master init function;
fixed possible bug on failing to initialize or add master kobject.
2007-03-16 11:23:08 +00:00
Florian Pose f5a7e78786 Slave configuration exclusively from master thread; removed
ec_master_sync_io(); introduced events in the master state machine;
locking of slave scanning and slave configuration through allow_scan
and allow_config flags.
2007-03-12 18:21:42 +00:00
Florian Pose b09000d770 Fixed skipped datagrams when not in FSM idle phase. 2007-03-12 13:59:06 +00:00
Florian Pose 571917dd1a Introduced idle flag in master state machine. 2007-03-12 12:11:43 +00:00
Florian Pose 594c3bb715 Made waiting for device semaphore uninterruptible. 2007-03-12 08:47:56 +00:00
Florian Pose 6ef75e4d45 Replaced master variable 'atomic_t available' by integer and used
semaphore in module.c instead.
2007-03-12 08:42:02 +00:00
Florian Pose 2907aebfdf Implemented SDO reading with wait queues. 2007-03-09 15:11:29 +00:00
Florian Pose b0c1fbaeb0 Removed X:Y addressing scheme, ec_slave_is_coupler(),
ec_master_calc_addressing(), coupler_index and coupler_subindex variables.
Adapted lsec script and examples.
2007-03-09 13:24:15 +00:00
Florian Pose 70482be0ac Added parameters for vendor ID and product code to ecrt_get_slave(); PDO
registration functions now take a slave pointer as argument; changed
values for ec_bus_status_t.
2007-03-09 10:24:50 +00:00
Florian Pose 8ac6516b4e Allow only MAC addresses as device identifiers; replaced master list by
master array; hand ober MAC addresses with array module parameters.
2007-03-08 18:15:25 +00:00
Florian Pose 37baf012fb Removed ecrt_master_run(), removed datagram queueing from state
machines, added datagram injection, two different master thread
functions.
2007-03-08 13:02:42 +00:00
Florian Pose b4bfda2e62 Introduced master status, ecrt_master_get_status(), tainted flag,
pdos_registered flags and pdo_slaves_offline counter.
2007-03-05 10:35:50 +00:00
Florian Pose b0285d88a9 Introduced ec_slave_online_state_t, ec_slave_set_online_state(), renamed
slave->online to ec_online_state and introduced
ec_slave_set_app_state().
2007-03-05 09:55:39 +00:00
Florian Pose 2ec4d25fce Introduced EEPROM write requests: EEPROM write operations from user
space are now queued and block until completion. Also, appropriate error
codes are returned.
2007-03-01 21:34:10 +00:00
Florian Pose 9afbed92d2 Removed eeprom_write_enable file. 2007-03-01 14:50:53 +00:00
Florian Pose 7b59f69823 Destroy slaves when leaving idle mode. 2007-02-21 13:43:47 +00:00
Florian Pose 6c08745e55 Made master devices persistent; added ec_device_attach() and ec_device_detach(). 2007-02-20 17:15:43 +00:00
Florian Pose b1a770729c Removed ktype for module kobject; added backup device for master; device
connection information and IDs in master info file.
2007-02-20 13:42:44 +00:00
Florian Pose 27f9a4af2d New module file /sys/ethercat, masters moved to /sys/ethercat/masterX. 2007-02-20 11:28:15 +00:00
Florian Pose 0f53f8fa3e Introduced device IDs; removed comment lines from 8139too; removed
ec_eoeif_count parameter.
2007-02-16 17:13:39 +00:00
Florian Pose 2cbddbb9d1 Removed XML device from master structure. 2007-02-16 13:23:57 +00:00
Florian Pose e643409867 Made ec_sync_config() and ec_fmmu_config() to methods of ec_slave_t. 2007-02-13 11:48:46 +00:00
Florian Pose 9a9e5d719c Fixed bug causing unloading of realtime module being very slow after topology change. 2007-02-12 11:15:23 +00:00
Florian Pose 6d74555dad schedule() other processes while waiting in ec_master_sync_io(). 2007-02-12 11:12:00 +00:00
Florian Pose 3b4c23a436 Ignore queued datagrams while waiting in ec_master_sync_io(). 2007-02-12 10:39:52 +00:00
Florian Pose 5f7ac3aa85 Minor changes in master thread messages. 2007-02-09 10:04:05 +00:00
Florian Pose 291d63856b Replaced ec_isr_t by ec_pollfunc_t; added poll function s in network drivers. 2007-01-12 14:28:33 +00:00
Florian Pose 413fdbb006 Minor fix on master.c (name of master thread). 2007-01-10 16:34:42 +00:00
Florian Pose df1cc1d939 Layed out slave state machines in own files fsm_slave.[ch]; renamed fsm.[ch] to fsm_master.[ch] 2007-01-10 16:32:06 +00:00
Florian Pose ba97994717 Added some documentation. 2007-01-10 10:58:49 +00:00
Florian Pose ea7e0ca982 Master workqueue replaced with kernel thread. 2007-01-10 10:45:57 +00:00
Florian Pose 81acf0c368 Fixed blocking of EoE processing while entering or leaving operational mode. 2007-01-09 14:51:00 +00:00
Florian Pose 4dc453ef55 Fixed race: Stop EoE processing when entering or leaving operation mode. 2007-01-09 12:56:03 +00:00
Florian Pose 8f51b59d3e Minor fix in master.c 2007-01-08 15:15:17 +00:00
Florian Pose ed70ae4999 Internal locking callbacks, improved locking. 2007-01-08 15:01:18 +00:00
Florian Pose 03c3e13bf9 Removed datagram.cycles_queued, needed for "starved" datagrams (deprecated). 2007-01-08 08:23:18 +00:00
Florian Pose 0c3d8c8ce1 Fixed warnings in master.c. 2006-12-18 11:51:43 +00:00
Florian Pose fc6917709a Corrected error messages in get_slave(). 2006-12-18 11:00:26 +00:00
Florian Pose b3de249e28 Fixed lost frames display bug when no frames were sent. 2006-11-24 11:09:36 +00:00
Florian Pose c0f6188104 Interface changes for version 1.2, see NEWS file. 2006-11-24 11:02:35 +00:00
Florian Pose 2568ef35d1 Added frame counter. 2006-11-21 15:46:21 +00:00
Florian Pose bae7fb4e90 Introduced "starved" datagrams. 2006-11-21 15:13:48 +00:00