cifX Driver Version History

V2.0.1.0 (03.12.2019)
-----------------------
  Added/Feature:
    - Added support for cifX/M.2 (netX90) card
      see cifx_m2 (kernel modules ax99100-pci-spi.ko & ax99100-pci-gpio.ko)
    - Add support for advanced logging (e.g. user defined file desc)
      priorities can be changed via mapping table to behave journald conform for example
    - [tap] - Add a few more debug loggings
    - [tap] - update channel identification to support new protocol class
  Change:
    - Updated toolkit to V2.4.0.0
    - Updated bootloader to V1.6.0.1
    - SPI plugin: removed SPI frequency limitation
  Bugfix:
    - [tap] - reset may not delete/restore the tap interface correctly
    - [tap] - application may steadily open more sockets
 
V2.0.0.0 (06.09.2019)
-----------------------
  Added:
    - Added netx4000/netx90 support
  Change:
    - Removed autotools environment
    - update to cifx toolkit V2.2.0.0
  Bugfix:
    - fixed IRQ mode for spi device (plugin)

V1.2.0.1 (17.05.2019)
-----------------------
  Bugfix:
    spm-plugin:
     - On some platforms SPI communication may fail, because of misinterpretation of the chip select handling.
       Therefore added an option "CSChange" (=>cs_change,default:0) in the plugin configuration.

V1.2.0.0 (12.12.2018)
-----------------------
  Added:
    - plugin for netX Linux SPI devices
  Change:
    - Changed to CMake environment

V1.1.4.0 (09.03.2018)
-----------------------
  Bugfix:
    libcifx:
     - silence driver when debug trace is disabled  
     - virteth: added handling for false packet indication (link state may fail
       on RAM based devices)

V1.1.3.1 (20.12.2017)
-----------------------
  Bugfix:
    libcifx:
    - wrong version number was displayed

V1.1.3.0 (08.12.2017)
-----------------------
  Bugfix:
    uio_netx:
    - fixed memory cleanup for custom devices
    libcifx:
    - fixed memory leak when using DMA (cifXDeleteDevice() false cleanup)
    - enhanced send/recv of virt-eth device: parallel transaction is used - therefore its
      possible to loose messages (e.g. link state - error came up on flash based devices)

V1.1.2.0 (19.10.2017)
-----------------------
  Added:
    - added device-tree support
  Bugfix:
   - cleanup of tap devices (in case of unorderly shutdown)

V1.1.1.0 (07.08.2017)
-----------------------
  Added:
   - add plugin feature allows easy HWIF integration
   - added demo SPI plugin based on linux spidev framework
   - provide IRQ support for SPI devices (via uio_netx)
   - provide compatibility for kernel > 4.1
   - added debug output for tap device
   - extended build scripts (configure) to be able to build in separate folder
  Change:
   - removed compiler switch for single directory - now auto detection
   - enhance build environment (added CMake control files)
  Bugfix:
   - libcifx provide compatibility to older uio kernel versions
   - fixed tab link detection
   - unloading driver may causes segfault
   - build scripts: removed optional libraries
   - uio_netx kernel module was always 0.0.1

V1.1.0.0 (16.10.2014)
-----------------------
 Added:
  - Added support for netX51/52
  - libcifx:
     * added support for custom hardware interface, e.g. SPI (access via the toolkit's Hardware Function Interface)
  - uio_netx
     * added support for custom memory mapped devices (e.g. ISA)
       (enables interrupt support for ISA devices)
 Change:
  - libcifx:
     * update eclipse project to luna (v4.4)
  - Update to bootloader V1.4.17.0
  - Update to toolkit V1.2.0.0
  - Update to automake V1.14.1
 Bugfix:
  - libcifx:
     * API functions may fail with CIFX_DRV_CMD_ACTIVE (0x800B0004), even before passed timeout
       has elapsed (incorrect timeout calculation within OS_WaitMutex()/OS_WaitEvent() aborts
       blocking to early)
     * netXTap: incorrect parameter usage in print out function may cause stack corruption

V1.0.3.0 (03.03.2014)
-----------------------
 Added:
  - libcifx:
     * add compiler flag to disable minimum sleep (NO_MIN_SLEEP)
     * add support for Virtual cifX Ethernet Interface
 Change:
  - Based on toolkit V1.1.4.0
  - Update to bootloader V1.4.15.0
 Bugfix:
  - libcifx:
     * Poll thread priority settings are ignored since PTHREAD_EXPLICIT_SCHED is not set
     * Tracelevel was not set in case of poll_interval was set to CIFX_POLLINTERVAL_DISABLETHREAD
  - uio_netx:
     * kernel>=3.8: build failed with error '‘netx_pci_probe’ undeclared here (not in a function)'
       removed __devinit macro since it is no longer defined (https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=54b956b903607)

V1.0.2.0 (25.01.2013)
-----------------------
 Added:
  - DMA support
  - installation helper for firmware and uio kernel module (scripts)
 Change:
  - Update bootloader to V1.4.9.0
  - Print driver version information and interrupt/dma mode settings into log file
 Bugfix:
  - OS_Memcpy(): aligned access to DPM may fail (on 64bit platform)

V1.0.1.0 (02.05.2012)
-----------------------
 Added:
  - Add support for MRAM (extendend memory via xSysDeviceExtendedMemory()) (see uio_netx-3.3.3-libcifxV1.0.1.0.patch)
  - Add support for netJACK PCI cards (see uio_netx-3.3.3-libcifxV1.0.1.0.patch)
  - Add support for setting up device system time during device start up
    (compiler option CIFX_TOOLKIT_TIME)
  - Add xDriverRestartDevice()
  - Add version history
 Change:
  - Based on toolkit V1.1.2.0
  - Update BSL to V1.4.8.1
  - OS_Sleep(): keep on sleeping when interrupted by a sytem signal
  - Correct error messaging in OS-functions: removed perror() after pthread-API calls
    (because thread functions don't set errno, now print return val to stderr)
  - Initialization structure CIFX_LINUX_INIT:
     - scanning for specific card
     - lock against multiple access
     - set stack size of poll thread

1.0.0.0
--------------------------
15.06.2010
 - Version 1.0.0.0
 - added DPM mapping for ISA devices
 - path (rotary switch)
 - implement new functions
    - eventhandling
    - Host/Bus state functions
 - 64bit support
 - added std. project for eclipse
 - removed some warnings

B0.946
--------------------------
01.10.2009
 - DEV_ReadHostState extended by fReadHostCOS to prevent the read back of the
   host COS flags when they are not changed by the hardware
 - Handling of COS flags improved (BUS_STATE / CONFIG_LOCK / INITIALIZE) and handled now
   in DEV_DoHostCOSChange()
 - DEV_DoChannelInit() now checks if the READY flag is gone and than waits until it is back

B0.945
--------------------------
31.08.2009
 - cifXStartModule() fixed if no channel is available during first start
 - HilPCIDefs.h included
 - cifXHWFunctions(), TRUE/FALSE definition replaced with 1/0
 - cifXDownload(), CIFX_BUFFER_TOO_SHORT fixed by using now the max. packet size for confirmation packets

B0.944
--------------------------
07.07.2009
 - Interrupt handling in ISR and DPC fixed/improved
 - xChannelBusState(), COM_FLAG handling in conjunction with
   timeout settings fixed/improved
 - xChannelBusState() handling moved to DEV_HostState() function to be callable as a low level function
   timeout settings fixed/improved

B0.943
--------------------------
28.04.2009
 - Module download improved for comX

B0.942
--------------------------
13.02.2009
 - DEV_CheckCOSFlags is now locked against DEV_DoChannelInit,
   to prevent COS Flag evaluation while a channel init is running

B0.941
--------------------------
30.01.2009
 - Big Endian Host support added via CIFX_TOOLKIT_BIGENDIAN define
 - New parameter (eDeviceType) added to device instance to allow
   DPM cards (e.g. NXHX500/50) to only use RAM (like cifX does).
   Previous versions always expected a serial flash on DPM based devices
 - New parameter (eChipType) added to device instance, so functions like
   USER_GetBootloader can check if a bootloader for a netX50 or netX100/500
   is requested.
 - netX50 support added

20.01.2009
 - "Loadable Modules" support for comX included

B0.940
--------------------------
12.12.2008
 - PRLIMINARY support for "Loadable Modules" included


V0.931 (under Development)
--------------------------
10.12.2008
 - cifXCreateChannels()
   answer to warmstart commands now excepted with size != 0 preventing error 0x800A0012

27.11.2008
 - IO mode RCX_IO_MODE_BUFF_DEV_CTRL included

24.11.2008
 - cifXTKitISRHandler() extended by new parameter fPCIIgnoreGlobalIntFlag
 - Filename cases corrected to support case sensitive operating systems

17.06.2008
 - While loops extended by Sleep(0)

B0.930 (under Development)
--------------------------
16.05.2008
 - xChannelOpen() error return extended CIFX_INVALID_CHANNEL
 - OS_MapUserPointer() and OS_UnmapUserPointer() now have a new parameter pvOSDependent

07.05.2008
 - Signalling interrupts from DSR changed, so that systems
   that may get interrupted during DSR are working
 - DSRhandler changed to signal netX Handshake bit changes (since previous irq)
   instead of Host/Netx flag differences. This allows DEV_WaitForBitstate_Irq

06.05.2008
 - xDriverErrorDescripton did not return error description,
   due to internal array size miscalculation29.04.2008
 - DOWNLOAD_MODE_LICENSECODE added
28.04.2008
 - PLC Functions did not return NO_COMFLAG error

B0.923 (under Development)
--------------------------
02.04.2008
 - Wait functions in cifXHWFunctions reviewed
 - xChannelReset(CIFX_CHANNEL_INIT) will only check if the
   channel becomes READY. Checking for RUNNING removed.
 - cifXStopDevice(), deletion of the system device interrupt events included
21.02.2008
 - Error return in xDriverMemoryPointer() and xChannelPLCMemoryPtr() fixed

V0.922 (under Development)
--------------------------
04.09.2007
 - Setup program:
   - Bug fix, which solves the Warmstart.dat files deletion if more than
     two cards are using it, included (this fix was lost in V0.921)
   - Firmware name and version now shows "-- not available --" for .mod files
   PROFINET slave parameters:
   - Input/output size changed to 1024 Byte
   - Device type string limited to 25 characters
 - Test program:
   - Scroll bar for the receive packet text control included, to allow viewing of packets,
     which are bigger than the control.
 - All version information changed to V0.922

V0.921 (under Development)
--------------------------
26.07.2007
 - Download now supports downloading to serial flash on target (if available)
   Filename passed to download function will be used to identify target (e.g. "SYSFLASH")
10.07.2007
 - cifX Test crashed, if no device was selected in dialog
03.05.2007
 - On DPM based devices a the driver always creates a communication channel. Even without a firmware.
   This can lead into blue screen if such a channel is access from a user application.
26.04.2007
 - Function xChannelBusState() now checks the
   COMMUNICATION-Flag if a timeout is given.
   Without a timeout, only BUS ON /OFF is processed
25.04.2007
 - Reading security FLASH and placing data into the
   DPM (bootloader and firmware)
 - File header handling included
 - Prevent multiple firmware files (only the first one
   is usable) included
 - Test of DPM and PCI hardware
19.04.2007
 - MD5 checking for files included (calculated on hardware and firmware)
 - Download for DPM based hardware reworked and
   files are only be downloaded if they are not existing
   or different
 - Download mode now choosen by the file extension
 - New 2nd stage bootloader detection and handling included
18.04.2007
 - API functions for
   * xSysdeviceUpload/Download, xSysdeviceFileFindFirst/FindNext
   * xChannelUpload/Download, xChannelFileFindFirst/FindNext
   extended by two new parameters, to be able to deliver unhandled
   receive packets during these functions
 - Definitions for CIFX_COLDSTART and CIFX_WARMSTART changed
   to CIFX_SYSTEMSTART and CIFX_CHANNELINIT
 - New COS-Flag handling included
 - Function xChannelBusState() included

V0.920 (under Development)
--------------------------
11.04.2007
 - C++ style comments removed, missing comment end cifXHWFunctions() fixed
10.04.2007
 - Prepared interrupt handling (provided in cifXInterrupt.c)
 - Update DEVICEINSTANCE structure to provide infos needed for IRQ handling
 - Added OS Dependent functions for Enabling/Disabling device interrupt (needed in OS Abstraction layer)
 - Added CIFx Device Driver dependent include files into OS_Includes.h
 - Added the following functions to cifX API
   * xChannelIOInfo
   * xSysdeviceReset
   * xChannelFindFirstFile
   * xChannelFindNextFile
   * xChannelUpload
   * xSysdeviceFindFirstFile
   * xSysdeviceFindNextFile
   * xSysdeviceUpload
 - Added cifXTkitCyclic timer to Toolkit API, used to poll the COS flags on a polled cifX device.
   Needs to be called by user cyclically (recommended time is approx. 500ms)
 - Added Device Functions used by new API functions
   * DEV_Upload function
   * DEV_DoWarmstart
   * DEV_DoColdStart
 - Prepared interrupt handling via 2 functions needing to be called by user it IRQ is needed
   * cifXTKitISRHandler
   * cifXTKitDSRHandler
 - Renamed USER_ErrorTrace to USER_Trace and changed signature to provide more flexibility.
   Toolkit now uses a global variable g_ulTraceLevel to adjust the amount of trace messages.
 - Some hardware dependent functions did poll the Handshake flags if interrupt is enabled
 - DEV_ReadHandshakeFlag did check the COS flags wrong
 - DEV_TriggerWatchdog illegally returned CIFX_DEV_NOT_RUNNING even if the device was running
 - DEV_IsCommunicating did not set CIFX_DEV_NO_COMFLAG correctly
 - USER_GetInterruptsEnable added, to give the user the possibility to enable interrupts on a
   per device base


V0.912 (09.01.2007)
-------------------
 - Function bodies for
   xChannelGetSendPacket
   xChannelConfigLock
   xChannelReset
   included
- Internal version number set to V0.912

V0.911 (26.10.2006)
-------------------
 - UNREFERENCED_PARAMETER macro fixed

V0.910 (19.10.2006)
-------------------
 - Compiler Warning fixes for GNU compiler
 - VxWorks combatible HANDLE now used (HANDLE-->CIFXHANDLE, API change)
 - CifxErrors.h now uses C-Style comments
 - Structure Packing fixed for MidSys_Public.h
 - Some toolkit functions now static, as they are only used internally

V0.903 (13.10.2006)
-------------------
- DEV_WaitForBitState_Poll's timeout changed.
  - Starttime was read inside poll loop
  - Starttime read into unsigned long, for overflow detection
    a long variable is needed

- DEV_ReadHandshakeFlags() wrong HCF_NETX_COS_ACK flag fixed

- Fixed bit state waiting timeout for timer overflows

- Warmstart handling included

- OS_MapUserPointer/OS_UnmapUserPointer added for DPM mapping to application


V0.902 (06.10.2006)
-------------------
- Put/GetPacket now checks for Ready flag

- Fixed size calculation for OS_MemRealloc calls

- Host Handshake Flags did not update COS flags

- Host Handshake Flags are now read earlier, to
  allow Ready check on Firmware read packets

- Calculation of the mailbox size for system channel
  and communication channel fixed (sizeof......)


V0.900 BETA (10.08.2006)
------------------------
- first version
