fp@479: -------------------------------------------------------------------------------
fp@479: 
fp@479: $Id$
fp@479: 
fp@479: -------------------------------------------------------------------------------
fp@479: 
fp@1631: Changes in version 1.4.0-rc2:
fp@1631: 
fp@1631: * Fixed a deadlock causing race condition concerning thread signaling when the
fp@1631:   master thread had no opportunity to run, but shall be killed immediately
fp@1631:   after creation.
fp@1631: * Added missing up()s causing a semaphore being not released in some rare
fp@1631:   cases.
fp@1631: * Minor fixes.
fp@1631: * Removed some deprecated files.
fp@1631: 
fp@1631: Changes in version 1.4.0-rc1:
fp@767: 
fp@792: * Realtime interface changes:
fp@1083:     - Replaced ec_slave_t with ec_slave_config_t, separating the bus
fp@1083:       configuration from the actual slaves. Therefore, renamed
fp@792:       ecrt_master_get_slave() to ecrt_master_slave_config().
fp@792:     - Replaced slave address string with alias and position values. See
fp@792:       ecrt_master_slave_config().
fp@792:     - Removed ecrt_master_get_slave_by_pos(), because it is no longer
fp@832:       necessary due to alias/position addressing.
fp@792:     - Added ec_slave_config_state_t for the new method
fp@792:       ecrt_slave_config_state().
fp@792:     - Process data memory for a domain can now be allocated externally. This
fp@842:       offers the possibility to use a shared-memory region. Therefore,
fp@832:       added the domain methods ecrt_domain_size() and
fp@832:       ecrt_domain_external_memory().
fp@1083:     - Pdo entry registration functions do not return a process data pointer,
fp@1083:       but an offset in the domain's process data. In addition, an optional bit
fp@1083:       position can be requested. This was necessary for the external domain
fp@1083:       memory. An additional advantage is, that the returned offset is
fp@1083:       immediately valid. If the domain's process data is allocated internally,
fp@832:       the start address can be retrieved with ecrt_domain_data().
fp@792:     - Replaced ecrt_slave_pdo_mapping/add/clear() with
fp@1083:       ecrt_slave_config_pdo_assign_add() to add a Pdo to a sync manager's Pdo
fp@1083:       assignment and ecrt_slave_config_pdo_mapping_add() to add a Pdo entry to a
fp@1083:       Pdo's mapping. ecrt_slave_config_pdos() is a convenience function
fp@1083:       for both, that uses the new data types ec_pdo_info_t and
fp@1083:       ec_pdo_entry_info_t. Pdo entries, that are mapped with these functions
fp@1083:       can now immediately be registered, even if the bus is offline.
fp@792:     - Renamed ec_bus_status_t, ec_master_status_t to ec_bus_state_t and
fp@792:       ec_master_state_t, respectively. Renamed ecrt_master_get_status() to
fp@792:       ecrt_master_state(), for consistency reasons.
fp@792:     - Added ec_domain_state_t and ec_wc_state_t for a new output parameter
fp@832:       of ecrt_domain_state(). The domain state object does now contain
fp@832:       information, if the process data was exchanged completely.
fp@792:     - Former "Pdo registration" meant Pdo entry registration in fact, therefore
fp@792:       renamed ec_pdo_reg_t to ec_pdo_entry_reg_t and ecrt_domain_register_pdo()
fp@832:       to ecrt_slave_config_reg_pdo_entry().
fp@792:     - Removed ecrt_domain_register_pdo_range(), because it's functionality can
fp@1083:       be reached by specifying an explicit Pdo assignment/mapping and
fp@1083:       registering the mapped Pdo entries.
fp@864:     - Added an Sdo access interface, working with Sdo requests. These can be
fp@864:       scheduled for reading and writing during realtime operation.
fp@1083:     - Exported ecrt_slave_config_sdo(), the generic Sdo configuration function.
fp@900:     - Removed the bus_state and bus_tainted flags from ec_master_state_t.
fp@1011: * Device interface changes:
fp@1011:     - Moved device output parameter of ecdev_offer() to return value.
fp@1084: * Replaced the Sysfs interface with a new 'ethercat' command-line tool, that
fp@1084:   communicates with the master via a character device and ioctls. The device
fp@1084:   is created via udev. The tool is able to
fp@1083:     - Write alias addresses.
fp@1083:     - Show the bus configuration.
fp@1083:     - Output binary domain process data.
fp@1083:     - Set the master's debug level.
fp@1083:     - Show domain information.
fp@1083:     - Show master information.
fp@1083:     - List Pdo assignment/mapping.
fp@1083:     - Write an Sdo entry.
fp@1083:     - List Sdo dictionaries.
fp@1083:     - Read an Sdo entry.
fp@1083:     - Output a slave's SII contents.
fp@1083:     - Write slave's SII contents.
fp@1083:     - Show slaves.
fp@1083:     - Request slave states.
fp@1083:     - Generate slave information xmls.
fp@909: * Removed include/ecdb.h.
fp@1084: * Using the timestamp counter is now optional (configure --enable-cycles),
fp@1084:   because it is only available on Intel architectures.
fp@910: * Sdo dictionaries will now also be fetched in operation mode.
fp@910: * SII write requests will now also be processed in operation mode.
fp@896: * Mapping of Pdo entries is now supported.
fp@896: * Current Pdo assignment/mapping is now read via CoE during bus scan, using
fp@832:   direct Sdo access, independent of the dictionary.
fp@897: * Network driver news:
fp@897:     - Added 8139too driver for kernel 2.6.22, thanks to Erwin Burgstaller.
fp@897:     - Added 8139too driver for kernel 2.6.23, thanks to Richard Hacker.
fp@922:     - Added 8139too driver for kernel 2.6.24.
fp@897:     - Added e1000 driver for kernel 2.6.22.
fp@898:     - Added e1000 driver for kernel 2.6.24, thanks to Matthias Luescher.
fp@897:     - Added alpha support for the Reaktek r8169 chipset, thanks to Scott
fp@897:       Hassan.
fp@1153:     - Fixed unnecessary watchdog executions in e1000 drivers (thanks to
fp@1153:       Olav Zarges).
fp@1154:     - Fixed missing protection for a spin_lock_irqrestore() call in e1000
fp@1154:       drivers from 2.6.20 to 2.6.24 (thanks to Olav Zarges).
fp@900: * Removed the "bus validation" routines. Slave scanning is now done any time
fp@900:   the bus topology changes, even during realtime operation. Because of this,
fp@900:   the bus_tainted flag was deprecated and removed.
fp@900: * Slave configuration is not done during ecrt_master_activate() any more, but
fp@900:   later during realtime operation. The state of the configuration can be
fp@900:   queried via the ecrt_domain_state() and ecrt_slave_config_state() functions.
fp@817: * Added support for slaves that do not support the LRW datagram type. Separate
fp@817:   domains have to be used for inputs and output.
fp@1169: * CoE implementation:
fp@1169:     - Use expedites transfer type for Sdos <= 4 byte (thanks to J. Mohre).
fp@1169:     - Allow gaps in Pdo mapping (thanks to R. Roesch).
fp@1169:     - Added some transfer timeouts.
fp@1169:     - Ansynchronous handling of Emergency requests.
fp@1169:     - Bugfixes.
fp@1084: * Sync managers are disabled, if the size is zero.
fp@812: * Renamed ec_master module parameters main and backup to main_devices and
fp@812:   backup_devices to avoid warnings of some compilers.
fp@1169: * List end evaluate CoE detail flags from general category.
fp@812: * Added MODPROBE_FLAGS variable in start script and sysconfig file.
fp@815: * Implemented missing datagram types.
fp@1083: * Changed all occurrences of 'EEPROM' to 'SII'
fp@870: * Allow multiple sync manager categories in SII.
fp@767: 
fp@767: -------------------------------------------------------------------------------
fp@767: 
fp@732: Changes in version 1.3.2:
fp@732: 
fp@756: * New feature: Read dynamic PDO mapping from SDO dictionary.
fp@756: * Implemented SII writing workaround for some broken slaves.
fp@738: * Improved handling for spontaneous AL state changes.
fp@737: * Master takes mailbox sync manager configurations from EEPROM words
fp@737:   0x0018-0x001b, if no sync manager configurations are provided.
fp@735: * Calculate checksum when writing EEPROM or alias address.
fp@759: * Fixed source MAC address setting bug.
fp@732: * Removed config.kbuild and replaced Kbuild files by Kbuild.in files.
fp@732: 
fp@732: -------------------------------------------------------------------------------
fp@732: 
fp@709: Changes in version 1.3.1:
fp@709: 
fp@723: * Improved EoE handling: Avoided skipping of datagrams and release lock
fp@723:   while processing.
fp@723: * Added some statistics to the datagram structure.
fp@723: * Master state machine clears all station addresses with a broadcast datagram
fp@723:   before setting them.
fp@723: * Added --enable-eoe conditional.
fp@723: * Minor extensions of the master info file.
fp@723: * Improved handling of unexpected working counters.
fp@723: * Create network interfaces for EoE devices with alias as eoeXaY.
fp@709: * Fixed problems on big-endian systems.
fp@709: * Added documentation on how to set up an EoE network.
fp@709: 
fp@709: -------------------------------------------------------------------------------
fp@709: 
fp@573: Changes in version 1.3.0:
fp@573: 
fp@709: * Added Intel PRO/1000 Gigabit Ethernet driver (e1000).
fp@709: * Added testing version of Intel PRO/100 Ethernet driver (e100).
fp@709: * Added testing version of NVIDIA nForce Ethernet driver (forcedeth).
fp@661: * Removed "ec_eoeif_count" master module parameter. EoE handlers are created
fp@661:   dynamically instead.
fp@639: * Added "main" and "backup" parameters to master module to hand over the
fp@639:   MAC addresses of the devices to wait for. This made the ec_device_index
fp@709:   parameter of the Ethernet drivers obsolete. The broadcast MAC address means,
fp@709:   that the master accepts the first device offered by any Ethernet driver.
fp@573: * Changed format of sysconfig file and accordingly adjusted functionality
fp@661:   of the init script to handle the above MAC address lists.
fp@612: * Realtime interface changes:
fp@637:   - ecrt_master_run() became obsolete, because the master state machine is now
fp@637:     run in process context.
fp@640:   - Parameter changes in PDO registration functions ecrt_domain_register_pdo()
fp@640:     and ecrt_register_pdo_range(): Replaced slave_address, vendor ID and
fp@661:     product code arguments with a slave pointer, which has to be obtained with
fp@640:     a prior call to ecrt_master_get_slave().
fp@640:   - ecrt_master_get_slave() got additional parameters to check for vendor ID
fp@640:     and product code.
fp@643:   - Removed addressing scheme "X:Y" for ecrt_master_get_slave().
fp@697:   - Added ecrt_master_get_slave_by_pos() to avoid the string handling of
fp@697:     ecrt_master_get_slave().
fp@661:   - Added ecrt_master_get_status() to get status information about the bus.
fp@661:   - Added functions to set up an alternative PDO mapping for a slave, i. e.
fp@635:     ec_slave_pdo_mapping_clear(), ec_slave_pdo_mapping_add() and
fp@635:     ec_slave_pdo_mapping().
fp@573: * Device interface changes:
fp@573:   - Replaced ecdev_register() and ecdev_unregister() with ecdev_offer() and
fp@573:     ecdev_withdraw(), respectively. The device modules now offer all their
fp@661:     devices to the master. The master then decides, which ones to register.
fp@670:   - Replaced ecdev_link_state() with ecdev_set_link(); added ecdev_get_link().
fp@601: * All EEPROM write operations from user space are now blocking until
fp@661:   writing has finished. Appropriate error codes are returned.
fp@661: * Implemented setting of the "Secondary slave address" (alias) via sysfs.
fp@646: * Implemented SDO reading in operation mode via sysfs.
fp@598: * Removed annoying eeprom_write_enable file. EEPROM writing always enabled.
fp@656: * Slave configuration is now done exclusively from the master thread. Removed
fp@656:   ec_master_sync_io(). Userspace threads are now waiting for events in the
fp@656:   state machine.
fp@650: * Master state machine scheduled with timeout if idle, otherwise is executed
fp@650:   as fast as possible (with schedule()).
fp@709: * Added dummy module for simulation purposes.
fp@696: * Limited infinite EEPROM reading, if 0xffff limiter word is missing.
fp@698: * Init script works now properly on non-SUSE distros (no rc.status dependency
fp@698:   any more).
fp@573: * Removed EtherCAT line comments from 8139too drivers.
fp@573: 
fp@573: -------------------------------------------------------------------------------
fp@573: 
fp@495: Changes in version 1.2.0:
fp@495: 
fp@709: * Several fixes of bugs and stability issues. Master should now run fine
fp@564:   with kernels 2.6.17 to 2.6.19.
fp@533: * Realtime interface changes:
fp@508:   - Re-introduced ecrt_domain_queue() to allow datagram queuing apart
fp@508:     from datagram processing. The queuing of a domain's datagrams is not
fp@508:     done in ecrt_domain_process() any more!
fp@508:   - Removed ecrt_master_deactivate(). Its functionality was moved into
fp@508:     ecrt_master_release().
fp@508:   - Removed ecrt_master_prepare(). Its functionality was moved into
fp@508:     ecrt_master_activate().
fp@508:   - Renamed ecdev_start() and ecdev_stop() to ecdev_open() and ecdev_close().
fp@508:     These two functions now take a pointer to ec_device_t as their arguments.
fp@508:   - The data_ptr parameter of ecrt_domain_register_pdo(),
fp@508:     ecrt_domain_register_pdo_list() and ecrt_domain_register_pdo_range() may
fp@508:     not be NULL any more.
fp@508:   - Removed ecrt_slave_pdo_size(). This function was deprecated long before.
fp@541:   - Introduced ECRT_VERSION_MAGIC macro and ecrt_version_magic() function.
fp@533: * Device interface changes:
fp@533:   - ec_isr_t was replaced by ec_pollfunc_t, the device driver has to supply
fp@533:     a poll function to call its ISR. This was introduced because some network
fp@533:     drivers' interrupt functions have different arguments.
fp@508: * State machines now try to re-send datagrams on datagram timeout.
fp@508: * New option -c of the lsec script, displays slave current consumptions and
fp@508:   remaining current.
fp@508: * Added frame counter in master info file.
fp@495: 
fp@495: -------------------------------------------------------------------------------
fp@495: 
fp@495: Changes in version 1.1.1:
fp@495: 
fp@479: * State change FSM: Clearing of sync managers before PREOP.
fp@479: * Added modules_install make target.
fp@479: * Device modules for kernel 2.6.17.
fp@479: * SDO configurations available in Sysfs.
fp@479: * FMMU configurations cleared when going to INIT.
fp@709: * Slave-specific logs only at debug level 1 (for large buses).
fp@479: * Slave flags (error, online) available in Sysfs.
fp@479: * Acknowledging of spontaneous state changes in master FSMs.
fp@479: * ecrt_master_deactivate() deprecated.
fp@479: * Persistent slave lists. Slave structures are only regenerated on topology
fp@479:   change in IDLE mode.
fp@479: * SDO reading via Sysfs.
fp@479: * Added ecrt_domain_register_pdo_range()
fp@479: * Fetching of SDO dictionary.
fp@479: * Better timing behaviour when starting up under high CPU load.
fp@479: * Applied Autotools.
fp@479: * Improved output of lsec.
fp@479: * SDO download state machine.
fp@479: 
fp@479: -------------------------------------------------------------------------------
fp@479: 
fp@479: Changes in version 1.1:
fp@479: 
fp@479: * Improved realtime interface.
fp@479: 
fp@479: -------------------------------------------------------------------------------