mirror of
https://gitlab.com/etherlab.org/ethercat.git
synced 2026-02-05 19:39:50 +08:00
355 lines
17 KiB
Plaintext
355 lines
17 KiB
Plaintext
-------------------------------------------------------------------------------
|
|
|
|
$Id$
|
|
|
|
vim: spelllang=en spell
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Changes since 1.4.0:
|
|
|
|
* Added a userspace library for accessing the application interface. This
|
|
library is licensed under LGPLv2.
|
|
* Added distributed clocks support.
|
|
* Added watchdog configuration via application interface (thanks to J. Mohre).
|
|
* Added VoE mailbox protocol support.
|
|
* Improved the callback mechanism. ecrt_master_callbacks() now takes two
|
|
callback functions for sending and receiving datagrams.
|
|
ecrt_master_send_ext() is used to execute the sending of non-application
|
|
datagrams.
|
|
* Separated datagram initialization from filling the payload with zeros.
|
|
Introduced new method ec_datagram_zero() for that.
|
|
* Added phy_read and phy_write commands to ethercat tool.
|
|
* Added e100 driver for Intel PRO/100 NICs.
|
|
- Added e100 driver for 2.6.28, thanks to Kim. H. Madsen.
|
|
- Added e100 driver for 2.6.29, thanks to Andre Puschmann.
|
|
* Added 8139too driver for kernels 2.6.25 (F. Pose), 2.6.26 (M. Luescher),
|
|
2.6.27, 2.6.28 and 2.6.29 (M. Goetze).
|
|
* Added e1000 driver for 2.6.26 (M. Luescher).
|
|
* Added r8169 driver for 2.6.24, 2.6.28 and 2.6.29.
|
|
* Debug interfaces are created with the Ethernet addresses of the attached
|
|
physical device.
|
|
* Improved error case return codes of many functions.
|
|
* Implemented the File Access over EtherCAT (FoE) mailbox protocol, thanks to
|
|
O. Zarges.
|
|
* Going to the Bootstrap state is now supported by the state machines and the
|
|
command-line tool.
|
|
* Added ecrt_open_master() and ecrt_master_reserve() separation for
|
|
the userspace library (thanks to Martin Troxler).
|
|
* Added bus information interface (methods ecrt_master(),
|
|
ecrt_master_get_slave(), ecrt_master_get_sync_manager(),
|
|
ecrt_master_get_pdo() and ecrt_master_get_pdo_entry()) to get information
|
|
about the currently connected slaves and the PDO entries provided (thanks to
|
|
Martin Troxler and Stefan Weiser).
|
|
* Added ecrt_master_sdo_download() and ecrt_master_sdo_upload()
|
|
methods to let an application transfer SDOs before activating the master
|
|
(thanks to Stefan Weiser).
|
|
* Fixed SDO upload segment response (thanks to Christoph Peter).
|
|
* SDO entry access rights are shown in 'ethercat sdos'.
|
|
* Added 64-bit data access macros to application header.
|
|
* Added debug level for all masters as a module parameter. Thanks to Erwin
|
|
Burgstaller.
|
|
* Clear slave list on link down.
|
|
* Output device link state in 'ethercat master'.
|
|
* Added 'ethercat graph' command which outputs the bus topology in
|
|
DOT language.
|
|
* Changed EC_MAX_SII_SIZE to 4096.
|
|
* 'ethercat xml' creates valid XML <EtherCATInfoList> for more than one slave
|
|
(thanks to E. Burgstaller).
|
|
* Module symbol versions file for ec_master.ko is installed to
|
|
prefix/modules/ec_master.symvers.
|
|
* Added 'ethercat eoe' command to display Ethernet over EtherCAT statistics.
|
|
* Added 'ethercat cstruct' command to output PDO information in C language.
|
|
* Significantly improved EoE bandwidth by running EoE processing in a kthread.
|
|
* Switched version control from Subversion to Mercurial.
|
|
* Implemented CompleteAccess for SDO downloads.
|
|
|
|
Changes in 1.4.0:
|
|
|
|
* Fixed race condition in jiffy-based frame timeout calculation.
|
|
* Fixed race condition concerning the ec_slave_config_state->operational flag.
|
|
* Fixed wrong calculation of the expected working counter if the process data
|
|
of a domain span several datagrams.
|
|
* Fixed a kernel oops when a slave configuration is detached while the actual
|
|
configuration is in progress.
|
|
* Fixed typo in logging output.
|
|
* Removed 'bashisms' from init script ('function' keyword).
|
|
* Fixed bug in e1000 drivers. Memory was allocated when sending the first
|
|
frame.
|
|
* Modified licence headers to avoid conflicts with the GPL.
|
|
* Restricted licence to GPLv2 only.
|
|
* Fixed spelling of 'PDO', 'SDO' (all uppercase) and 'xx over EtherCAT'
|
|
(without hyphens).
|
|
|
|
Changes in 1.4.0-rc3:
|
|
|
|
* Ported the master thread to the kthread interface.
|
|
* Added missing semaphore up() in an ioctl(). In rare cases, the master
|
|
semaphore was not released.
|
|
* Minor fix in 'slaves' command that fixed duplicate display of supported
|
|
mailbox protocols.
|
|
* The SDO Information Service is only queried, if the slave has the
|
|
corresponding SII bit set.
|
|
* Added some missing header files in the command-line-tool code.
|
|
* Removed unstable e100, forcedeth, and r8169 drivers.
|
|
|
|
Changes in version 1.4.0-rc2:
|
|
|
|
* Fixed a deadlock causing race condition concerning thread signaling when the
|
|
master thread had no opportunity to run, but shall be killed immediately
|
|
after creation.
|
|
* Added missing up()s causing a semaphore being not released in some rare
|
|
cases.
|
|
* Minor fixes.
|
|
* Removed some deprecated files.
|
|
|
|
Changes in version 1.4.0-rc1:
|
|
|
|
* Realtime interface changes:
|
|
- Replaced ec_slave_t with ec_slave_config_t, separating the bus
|
|
configuration from the actual slaves. Therefore, renamed
|
|
ecrt_master_get_slave() to ecrt_master_slave_config().
|
|
- Replaced slave address string with alias and position values. See
|
|
ecrt_master_slave_config().
|
|
- Removed ecrt_master_get_slave_by_pos(), because it is no longer
|
|
necessary due to alias/position addressing.
|
|
- Added ec_slave_config_state_t for the new method
|
|
ecrt_slave_config_state().
|
|
- Process data memory for a domain can now be allocated externally. This
|
|
offers the possibility to use a shared-memory region. Therefore,
|
|
added the domain methods ecrt_domain_size() and
|
|
ecrt_domain_external_memory().
|
|
- PDO entry registration functions do not return a process data pointer,
|
|
but an offset in the domain's process data. In addition, an optional bit
|
|
position can be requested. This was necessary for the external domain
|
|
memory. An additional advantage is, that the returned offset is
|
|
immediately valid. If the domain's process data is allocated internally,
|
|
the start address can be retrieved with ecrt_domain_data().
|
|
- Replaced ecrt_slave_pdo_mapping/add/clear() with
|
|
ecrt_slave_config_pdo_assign_add() to add a PDO to a sync manager's PDO
|
|
assignment and ecrt_slave_config_pdo_mapping_add() to add a PDO entry to a
|
|
PDO's mapping. ecrt_slave_config_pdos() is a convenience function
|
|
for both, that uses the new data types ec_pdo_info_t and
|
|
ec_pdo_entry_info_t. PDO entries, that are mapped with these functions
|
|
can now immediately be registered, even if the bus is offline.
|
|
- Renamed ec_bus_status_t, ec_master_status_t to ec_bus_state_t and
|
|
ec_master_state_t, respectively. Renamed ecrt_master_get_status() to
|
|
ecrt_master_state(), for consistency reasons.
|
|
- Added ec_domain_state_t and ec_wc_state_t for a new output parameter
|
|
of ecrt_domain_state(). The domain state object does now contain
|
|
information, if the process data was exchanged completely.
|
|
- Former "PDO registration" meant PDO entry registration in fact, therefore
|
|
renamed ec_pdo_reg_t to ec_pdo_entry_reg_t and ecrt_domain_register_pdo()
|
|
to ecrt_slave_config_reg_pdo_entry().
|
|
- Removed ecrt_domain_register_pdo_range(), because it's functionality can
|
|
be reached by specifying an explicit PDO assignment/mapping and
|
|
registering the mapped PDO entries.
|
|
- Added an SDO access interface, working with SDO requests. These can be
|
|
scheduled for reading and writing during realtime operation.
|
|
- Exported ecrt_slave_config_sdo(), the generic SDO configuration function.
|
|
- Removed the bus_state and bus_tainted flags from ec_master_state_t.
|
|
* Device interface changes:
|
|
- Moved device output parameter of ecdev_offer() to return value.
|
|
* Replaced the Sysfs interface with a new 'ethercat' command-line tool, that
|
|
communicates with the master via a character device and ioctls. The device
|
|
is created via udev. The tool is able to
|
|
- Write alias addresses.
|
|
- Show the bus configuration.
|
|
- Output binary domain process data.
|
|
- Set the master's debug level.
|
|
- Show domain information.
|
|
- Show master information.
|
|
- List PDO assignment/mapping.
|
|
- Write an SDO entry.
|
|
- List SDO dictionaries.
|
|
- Read an SDO entry.
|
|
- Output a slave's SII contents.
|
|
- Write slave's SII contents.
|
|
- Show slaves.
|
|
- Request slave states.
|
|
- Generate slave information xmls.
|
|
* Removed include/ecdb.h.
|
|
* Using the timestamp counter is now optional (configure --enable-cycles),
|
|
because it is only available on Intel architectures.
|
|
* SDO dictionaries will now also be fetched in operation mode.
|
|
* SII write requests will now also be processed in operation mode.
|
|
* Mapping of PDO entries is now supported.
|
|
* Current PDO assignment/mapping is now read via CoE during bus scan, using
|
|
direct SDO access, independent of the dictionary.
|
|
* Network driver news:
|
|
- Added 8139too driver for kernel 2.6.22, thanks to Erwin Burgstaller.
|
|
- Added 8139too driver for kernel 2.6.23, thanks to Richard Hacker.
|
|
- Added 8139too driver for kernel 2.6.24.
|
|
- Added e1000 driver for kernel 2.6.22.
|
|
- Added e1000 driver for kernel 2.6.24, thanks to Matthias Luescher.
|
|
- Added alpha support for the Realtek r8169 chipset, thanks to Scott
|
|
Hassan.
|
|
- Fixed unnecessary watchdog executions in e1000 drivers (thanks to
|
|
Olav Zarges).
|
|
- Fixed missing protection for a spin_lock_irqrestore() call in e1000
|
|
drivers from 2.6.20 to 2.6.24 (thanks to Olav Zarges).
|
|
* Removed the "bus validation" routines. Slave scanning is now done any time
|
|
the bus topology changes, even during realtime operation. Because of this,
|
|
the bus_tainted flag was deprecated and removed.
|
|
* Slave configuration is not done during ecrt_master_activate() any more, but
|
|
later during realtime operation. The state of the configuration can be
|
|
queried via the ecrt_domain_state() and ecrt_slave_config_state() functions.
|
|
* Added support for slaves that do not support the LRW datagram type. Separate
|
|
domains have to be used for inputs and output.
|
|
* CoE implementation:
|
|
- Use expedites transfer type for SDOs <= 4 byte (thanks to J. Mohre).
|
|
- Allow gaps in PDO mapping (thanks to R. Roesch).
|
|
- Added some transfer timeouts.
|
|
- Asynchronous handling of Emergency requests.
|
|
- Bug fixes.
|
|
* Sync managers are disabled, if the size is zero.
|
|
* Renamed ec_master module parameters main and backup to main_devices and
|
|
backup_devices to avoid warnings of some compilers.
|
|
* List end evaluate CoE detail flags from general category.
|
|
* Added MODPROBE_FLAGS variable in start script and sysconfig file.
|
|
* Implemented missing datagram types.
|
|
* Changed all occurrences of 'EEPROM' to 'SII'
|
|
* Allow multiple sync manager categories in SII.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Changes in version 1.3.2:
|
|
|
|
* New feature: Read dynamic PDO mapping from SDO dictionary.
|
|
* Implemented SII writing workaround for some broken slaves.
|
|
* Improved handling for spontaneous AL state changes.
|
|
* Master takes mailbox sync manager configurations from EEPROM words
|
|
0x0018-0x001b, if no sync manager configurations are provided.
|
|
* Calculate checksum when writing EEPROM or alias address.
|
|
* Fixed source MAC address setting bug.
|
|
* Removed config.kbuild and replaced Kbuild files by Kbuild.in files.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Changes in version 1.3.1:
|
|
|
|
* Improved EoE handling: Avoided skipping of datagrams and release lock
|
|
while processing.
|
|
* Added some statistics to the datagram structure.
|
|
* Master state machine clears all station addresses with a broadcast datagram
|
|
before setting them.
|
|
* Added --enable-eoe conditional.
|
|
* Minor extensions of the master info file.
|
|
* Improved handling of unexpected working counters.
|
|
* Create network interfaces for EoE devices with alias as eoeXaY.
|
|
* Fixed problems on big-endian systems.
|
|
* Added documentation on how to set up an EoE network.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Changes in version 1.3.0:
|
|
|
|
* Added Intel PRO/1000 Gigabit Ethernet driver (e1000).
|
|
* Added testing version of Intel PRO/100 Ethernet driver (e100).
|
|
* Added testing version of NVIDIA nForce Ethernet driver (forcedeth).
|
|
* Removed "ec_eoeif_count" master module parameter. EoE handlers are created
|
|
dynamically instead.
|
|
* Added "main" and "backup" parameters to master module to hand over the
|
|
MAC addresses of the devices to wait for. This made the ec_device_index
|
|
parameter of the Ethernet drivers obsolete. The broadcast MAC address means,
|
|
that the master accepts the first device offered by any Ethernet driver.
|
|
* Changed format of sysconfig file and accordingly adjusted functionality
|
|
of the init script to handle the above MAC address lists.
|
|
* Realtime interface changes:
|
|
- ecrt_master_run() became obsolete, because the master state machine is now
|
|
run in process context.
|
|
- Parameter changes in PDO registration functions ecrt_domain_register_pdo()
|
|
and ecrt_register_pdo_range(): Replaced slave_address, vendor ID and
|
|
product code arguments with a slave pointer, which has to be obtained with
|
|
a prior call to ecrt_master_get_slave().
|
|
- ecrt_master_get_slave() got additional parameters to check for vendor ID
|
|
and product code.
|
|
- Removed addressing scheme "X:Y" for ecrt_master_get_slave().
|
|
- Added ecrt_master_get_slave_by_pos() to avoid the string handling of
|
|
ecrt_master_get_slave().
|
|
- Added ecrt_master_get_status() to get status information about the bus.
|
|
- Added functions to set up an alternative PDO mapping for a slave, i. e.
|
|
ec_slave_pdo_mapping_clear(), ec_slave_pdo_mapping_add() and
|
|
ec_slave_pdo_mapping().
|
|
* Device interface changes:
|
|
- Replaced ecdev_register() and ecdev_unregister() with ecdev_offer() and
|
|
ecdev_withdraw(), respectively. The device modules now offer all their
|
|
devices to the master. The master then decides, which ones to register.
|
|
- Replaced ecdev_link_state() with ecdev_set_link(); added ecdev_get_link().
|
|
* All EEPROM write operations from user space are now blocking until
|
|
writing has finished. Appropriate error codes are returned.
|
|
* Implemented setting of the "Secondary slave address" (alias) via sysfs.
|
|
* Implemented SDO reading in operation mode via sysfs.
|
|
* Removed annoying eeprom_write_enable file. EEPROM writing always enabled.
|
|
* Slave configuration is now done exclusively from the master thread. Removed
|
|
ec_master_sync_io(). Userspace threads are now waiting for events in the
|
|
state machine.
|
|
* Master state machine scheduled with timeout if idle, otherwise is executed
|
|
as fast as possible (with schedule()).
|
|
* Added dummy module for simulation purposes.
|
|
* Limited infinite EEPROM reading, if 0xffff limiter word is missing.
|
|
* Init script works now properly on non-SUSE distros (no rc.status dependency
|
|
any more).
|
|
* Removed EtherCAT line comments from 8139too drivers.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Changes in version 1.2.0:
|
|
|
|
* Several fixes of bugs and stability issues. Master should now run fine
|
|
with kernels 2.6.17 to 2.6.19.
|
|
* Realtime interface changes:
|
|
- Re-introduced ecrt_domain_queue() to allow datagram queuing apart
|
|
from datagram processing. The queuing of a domain's datagrams is not
|
|
done in ecrt_domain_process() any more!
|
|
- Removed ecrt_master_deactivate(). Its functionality was moved into
|
|
ecrt_master_release().
|
|
- Removed ecrt_master_prepare(). Its functionality was moved into
|
|
ecrt_master_activate().
|
|
- Renamed ecdev_start() and ecdev_stop() to ecdev_open() and ecdev_close().
|
|
These two functions now take a pointer to ec_device_t as their arguments.
|
|
- The data_ptr parameter of ecrt_domain_register_pdo(),
|
|
ecrt_domain_register_pdo_list() and ecrt_domain_register_pdo_range() may
|
|
not be NULL any more.
|
|
- Removed ecrt_slave_pdo_size(). This function was deprecated long before.
|
|
- Introduced ECRT_VERSION_MAGIC macro and ecrt_version_magic() function.
|
|
* Device interface changes:
|
|
- ec_isr_t was replaced by ec_pollfunc_t, the device driver has to supply
|
|
a poll function to call its ISR. This was introduced because some network
|
|
drivers' interrupt functions have different arguments.
|
|
* State machines now try to re-send datagrams on datagram timeout.
|
|
* New option -c of the lsec script, displays slave current consumptions and
|
|
remaining current.
|
|
* Added frame counter in master info file.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Changes in version 1.1.1:
|
|
|
|
* State change FSM: Clearing of sync managers before PREOP.
|
|
* Added modules_install make target.
|
|
* Device modules for kernel 2.6.17.
|
|
* SDO configurations available in Sysfs.
|
|
* FMMU configurations cleared when going to INIT.
|
|
* Slave-specific logs only at debug level 1 (for large buses).
|
|
* Slave flags (error, online) available in Sysfs.
|
|
* Acknowledging of spontaneous state changes in master FSMs.
|
|
* ecrt_master_deactivate() deprecated.
|
|
* Persistent slave lists. Slave structures are only regenerated on topology
|
|
change in IDLE mode.
|
|
* SDO reading via Sysfs.
|
|
* Added ecrt_domain_register_pdo_range()
|
|
* Fetching of SDO dictionary.
|
|
* Better timing behaviour when starting up under high CPU load.
|
|
* Applied Autotools.
|
|
* Improved output of lsec.
|
|
* SDO download state machine.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Changes in version 1.1:
|
|
|
|
* Improved realtime interface.
|
|
|
|
-------------------------------------------------------------------------------
|