------------------------------------------------------------------------------- EtherCAT master TODO $Id$ vim700: spelllang=en spell ------------------------------------------------------------------------------- Version 1.5.0: * Distributed clocks: - Check 32/64 bit operations. - Use vendor correction factors when calculating transmission delays. - Skip setting system time offset when application detached. - How to use the SYNC1 shift time? - Do not output graph, if topology calculation failed. - Set the "Cyclic Generation Start Time" based on the slave's "System Time" register instead of using the application time. - Check if register 0x0980 is working, to avoid clearing it when configuring. - Create an interface to query the System Time Difference registers. * EoE: - Only execute one EoE handler per cycle. - Replace locking callbacks. - Allow EoE with userspace application. * Implement 'ethercat foe_read --output-file ...'. * Fix unloading problem of ec_e100 driver. * Use ec_datagram_zero() where possible. * Fix arguments of reg_read. * Sign/Abs type for reg_ commands? * Number layout for reg_read. * Show Record / Array / List type of SDOs. * Limit bandwidth of state machine datagram. * Read alias from register 0x0012 instead of SII. * Finish library implementation. * Rescan command. * Override sync manager size? * Remove ecrt_domain_state()? * Check force_config flag before error. * Remove allow_scanning flag. * Implement ecrt_master_slave() in kernel space. * Check for ioctl() interface version. * Improve application-triggered SDO transfers by moving the state machine into the SDO handlers. * Apply watchdog patches from J. Mohre. * Move device driver files in subdirectories. * Document ec_fsm_foe members. * Test KBUILD_EXTRA_SYMBOLS. Future issues: * Segmented SDO downloads. * External memory for SDO transfers. * Bus information via userspace library (slaves, sync managers, PDOs, entries). * C++ implementation of the library. * Bus simulator interface. * Move master threads, slave handlers and state machines into a user space daemon. * Allow master requesting when in ORPHANED phase * Mailbox protocol handlers. * Mailbox state machine using toggle bits. * Mailbox gateway. * Separate CoE debugging. * Evaluate EEPROM contents after writing. * Optimize alignment of process data. * Redundancy with 2 network adapters. * Interface/buffers for asynchronous domain IO. * Make scanning and configuration run parallel (each). * ethercat tool: - Data type abbreviations. - Add a -n (numeric) switch. - Check for unwanted options. * Simplify master fsm by introducing a common request state to handle external requests (replace write_sii, sdo_request, etc). Smaller issues: * Stop master thread at ecrt_master_request() to get rid of allow_* flags? * Clear sync managers in INIT. * Read out CRC counters. * Configure slave ports to automatically open on link detection. * Fix datagram errors on application loading/unloading. Less important issues: * Allow VLAN tagging. * Determine number of frames, the NIC can handle. -------------------------------------------------------------------------------