Search by Tags

Toradex CE Libraries Release

 

The following table contains known issues, scheduled bug fixes, and feature improvements for the Toradex CE Libraries.

Any schedules are not guaranteed, but reflect the current planning. The planning could be shifted due to priority changes.
Issues which are scheduled for a specific version (e.g. V1.1) will be integrated in the mentioned version of the Libraries.

We will update this table continuously in order to always provide the latest state of our development plan.

Clear Filter
Issue #StatusSubjectModuleSubsystemWinCE OS

2.6 (Release date: 2023-03-27)
WCL-1202New FeatureVybrid I2C Library ImprovementsColibri VF50, Colibri VF61I2CCE6, WEC7, WEC2013

Description: Fixed I2c_Read() without RegisterOffset (was sending dummy write) Fixed I2c_Read() and I2c_Write() returned number of bytes (was always 1) Fixed sporadical exeptions during I2c_Write() (this was due to some memory allocation routines called in kernel mode) Better Transfer Error Handling. Improved transfer performance. I2C BusReset can not be controlled with "BusResetOnOpen" property.

WCL-1201FixedI2C_Read() with Register Offset may fail on iMX6 and iMX7Apalis iMX6, Colibri iMX6, Colibri iMX7I2CWEC7, WEC2013

Description: Due to a stack variable corruption I2C_Read() with Register Offset would mostly always return data as if Register Offset 0 is read.

WCL-1200FixedMap_MemoryRead() / Map_MemoryWrite() doesn't work properly with 8bit unaligned accessesKernelCE6, WEC7, WEC2013

Description: When using Map_MemoryRead() / Map_MemoryWrite() to access a physical memory location in 8bit access mode and the address is not 32bit aligned the access does not work properly.

WCL-1199FixedInt_KernelLibIoControl() Always failsKernelCE6, WEC7, WEC2013

Description: Int_KernelLibIoControl() Always fails

2.5 (Release date: 2021-08-03)
WCL-1198FixedRPMSGLib MessageBuffer can get out of syncM4CE6, WEC7, WEC2013

Description: Due to a missing critical section the MessageBuffer of the RPMSGLib can get out of sync and corrupted data will be read or written. This typically happens in heavy messaging situations and is only happening sporadically.

WCL-1197FixedAdded support for FlashFileSystem Wipe in UpdateTool / UpdateLib for VybridFlashCE6, WEC7, WEC2013

Description: - Added Upd_EraseFilesystem() to UpdateLib - Added /w command line param to UpdateTool (/wu for unattended or /wb for wipe also blocks marked as bad)

WCL-1196FixedUpdateLibrary for iMX6 is not HAB compatibleBootloaderWEC7, WEC2013

Description: Trying to restore a HAB (SecureBoot) SPL or Bootloader will fail because of alignment constraints

WCL-1195FixedSome UpdateTool operations on Vybrid lead to freezeUpdate SystemCE6, WEC7, WEC2013

Description: Updateting Bootloader, Spashscrren or ConfigBlock while some flashfilesystem operations are in progress can freeze both the update tool and the filesystem

WCL-1194FixedRe-Initializing CAN Library could freeze the systemCANCE6, WEC7, WEC2013

Description: When calling again Can_Init() after Can_DeInit() it can happen that the system freezes because can interrupts could be triggered while initializing the library btu before proper interrupt handling has been set-up.

WCL-1193FixedWatchdog Library does not work on iMX7WatchdogCE6, WEC7, WEC2013

Description: Imx7Wdg_Init() fails as it tries to open "I2C4" instead of the internal "I2C9" that is connected to the PMIC

2.4 (Release date: 2020-03-05)
WCL-686FixedCanLib: Exception Thrown When Intializing CanLibColibri VF50, Colibri VF61CANWEC2013

Description: Can_Init() generates an exception when run on a VFxx module under WEC2013. The same code is working well under CE6 and WEC7.

Workaround: Ask Toradex support for a preliminary version of the libraries including a fix for this issue.

WCL-653FixedIMX6 CAN error and system freeze when calling CAN_Read after CAN_CloseColibri iMX6Bluetooth, CANWEC2013

Description: Wait for CAN_Read before calling CAN_Close

WCL-609FixedCAN C# interface does not return proper valuesColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30CANCE6, WEC7, WEC2013

Description: CanLib functions return wrong values when used from C#.

WCL-608New FeatureDocument and optimize shared resources for the rpmsg libraryColibri iMX7, Colibri VF61WinCE FeatureCE6, WEC7, WEC2013

Description: Adjust number of buffers for the rpmsg protocol on the i.MX7

WCL-605FixedUpdateLib for iMX6: Update OS fails if CPU is loadedApalis iMX6WinCE FeatureWEC7

Description: Updating OS fails if CPU is heavily loaded

WCL-603FixedGpioLib for iMX7: Mapping of SODIMM 77 is wrongColibri iMX7GPIOCE6, WEC7, WEC2013

Description: On Colibri iMX7, SODIMM pin 77 cannot be accessed using the Gpio Library.

Workaround: Write your code to use GPIO 176, which is identical to SODIMM 77 for Colibri iMX7.

WCL-602FixedThe resistive touch stops working after calling Adc_Deinit()Colibri iMX6Analog InputsWEC2013

Description: The resistive touch stops working after De-Initializing the Adc library.

WCL-600FixedI2CLib - Unlocking I2C bus after module reset does not workColibri VF50, Colibri VF61I2CCE6, WEC7, WEC2013

Description: The I2C library tries to "unlock" I2C bus if a slave device is not releasing the SDA signal, this may happen if the module is reset in the middle of an I2C transaction when the slave device has control of SDA line.

Workaround: Issue has been fixed.

WCL-597FixedSpi CS default state is Low till first SPI transfer startsColibri iMX7SPIWEC7, WEC2013

Description: After a power cycle, the ~CS pin of the SPI interface is low, which is wrong as ~CS low is the active state. After a power cycle, this pin should be high in all cases.

Workaround: Use latest libraries and BSP above 1.2b4

WCL-591New FeatureUpdate library release processColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30Miscellaneous PeripheralsCE6, WEC7, WEC2013

Description: A 32-bit hash is used to represent the library build number, which can be queried by calling xxx_GetVersion(). In contrast to previous library versions, the build number is not increasing for newer library versions, but must be treated as a random 32-bit number.

WCL-590FixedCAN on i.MX6 blocks on simultaneous read/writeApalis iMX6CANCE6, WEC7

Description: Can issues when sending and receiving in parallel threads

WCL-589FixedI2c lib APIs not working when calling from Kernel driver.Colibri VF50, Colibri VF61I2CCE6, WEC7, WEC2013

Description: I2cTransaction calling through kernelCallback. Kernelcallback doesn't seems to be working from kernel driver.

WCL-588FixedSimplify and stabilize Rpmsg C# demoColibri iMX7, Colibri VF61Miscellaneous PeripheralsCE6, WEC7, WEC2013

Description: Fix RpMsg demo for C#

WCL-585FixedUpdateTool cannot flash splashscreens wider than 1080 pixelsColibri iMX7, Apalis iMX6, Colibri iMX6Toradex Feature, Update SystemWEC7, WEC2013

Description: Large Splashscreen cannot be programmed using the UpateTool

Workaround: Use bootloader command flashsplash or Toradex Easy Installer to load the splashscreen

WCL-582New FeatureDocument DRAM allocated to rpmsgColibri iMX7, Colibri VF61WinCE FeatureCE6, WEC7, WEC2013

Description: Document memory allocated to RpMsg

WCL-577FixedCanLib: Transmitting message of 0 bytes length causes division-by-zeroColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30CANCE5, CE6, WEC7, WEC2013

Description: Sending zero-length CAN messages can cause an error message "Division by zero".

WCL-574FixedRpMsgLib: Add timeout to function MU_SendMsg()Colibri iMX7, Colibri VF61CPUCE6, WEC7, WEC2013

Description: RpMsg_Open() hangs, if the M4 firmware does not process messages.

WCL-561FixedSpi_Read and SpiWrite are not calling IMX7 platform specfic APIsColibri iMX7SPIWEC7, WEC2013

Description: The generic Spi_Read and Spi_Write are not calling iMX7 platform-specific APIs.

WCL-559FixedCanLib for iMX6: Possible loss of received messageColibri iMX6CANCE6, WEC7, WEC2013

Description: Sometimes a CAN message is not received by the CAN library.

WCL-556New FeatureCan Library for MCP2515: Make interrupt thread priority configurableColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30CANCE6, WEC7, WEC2013

Description: Implement a parameter istPriority to configure the priority of the interrupt thread, which reads messages from the MCP2515 controller.

WCL-555FixedI2cLib speed setting 400Khz doesn't applyColibri iMX7, Apalis iMX6, Colibri iMX6I2CWEC7, WEC2013

Description: Default I2c speed of 100Khz is always used even when set to 400Khz through library APIs.

WCL-554FixedI2CLib on Tegra does not do a I2CBus reset on first initColibri T20, Colibri T30I2CCE6, WEC7, WEC2013

Description: From Library version 2.1, no I2C Bus reset is sent anymore. If there is a malfunctioning device or a device was in the middle of a transfer and a system reset was done which the device does not see, I2C communication could be malfunctioning

WCL-553FixedSlow ADC Read on T30Colibri T30, Apalis T30Analog InputsWEC7, WEC2013

Description: We have observed slow ADC reading, a couple of libraries were loading and unloading for everytime I2c open and close APIs are calling, it is taking additionally 8ms to 15ms for each ADC read. We moved library loading and unloading to Init and DeInit and it is saving the time.

WCL-549New FeatureConfigBlock Usage DocumentationColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30ConfigBlockCE5, CE6, WEC7, WEC2013

Description: Add documentation about how to read/write data from/to the ConfigBlock, e.g. Hardware ID and version, MAC address, user data.

2.3 (Release date: 2018-10-11)
WCL-670FixedSpiLib: Documentation of used wait method is misleadingApalis iMX6, Colibri iMX6SPICE6, WEC7, WEC2013

Description: Adjust documentation of the wait method in Spi_ReadWrite() for iMX6

WCL-659FixedCompiler / Linker IncompatibilitiesColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30Buildsystem, Toradex FeatureCE6, WEC7, WEC2013

Description: The Linker reports errors about mismatched versions of compiler / linker, when building an application in RELEASE configuration. This is caused by an optimization "Link Time Code Generation" which we enabled for building the libraries V2.1.

Workaround: Use the Toradex CE Libraries in DEBUG configuration, or restore the old compiler which Microsoft stored at C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ce\bin\x86_arm\KB2921525_BACKUP\

WCL-654FixedGetVersion() SoC specific function missing in some libraryColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61WinCE FeatureCE6, WEC7, WEC2013

Description: Upd_GetVersion() SoC specific function ( eg. Imx6Upd_GetVersion for IMX6) are not available for update library

Workaround: Use the common function - Upd_GetVersion()

WCL-651FixedCanLib for MCP2515: Writing a CAN message with 0 data bytes generates an exceptionColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30, Colibri PXA320, Colibri PXA310, Colibri PXA270, Colibri PXA300 XT, Colibri PXA300CANCE6, WEC7, WEC2013

Description: When sending a CAN message with 0 length, the Toradex function @Can_Write()@ crashes with a divide by zero exception.

WCL-650FixedSysInfoLib: documentation of parameter BspVersion.BspId is incorrectColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30, Colibri PXA320, Colibri PXA310, Colibri PXA270, Colibri PXA300 XT, Colibri PXA300Toradex FeatureCE6, WEC7, WEC2013

Description: The library help file V2.2 and before reports the interpretation of the BspVersion.BspId incorrectly. Correct is: 0=Unknown, 1=PXA, 2=Tegra, 3=Vybrid, 4=Imx6, 5=Imx7

Workaround: Ignore the help file. The implementation in the SysInfo_Demo is correct.

WCL-648New FeatureImprove .NET definition for xxx_GetConfigStringColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30Toradex FeatureCE6, WEC7, WEC2013

Description: Change the definition of xxx_GetConfigString() functions

WCL-647FixedSPI : Packed Mode not working on VybridColibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: Packed Mode not working on Vybrid

WCL-646FixedContext Corruption in Toradex CE libraryColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30CAN, I2C, Toradex FeatureCE6, WEC7, WEC2013

Description: Library hits breakpoint with warning "SYS Error: .\src\config_parser.c, 434: Context Corruption" or similar. Affected libraries are SysInfo, Can, i2c and RpMsg.

Workaround: Will be solved in library package V2.3

WCL-645FixedI2cLib for Tegra: signed 16-bit addresses aren't supportedColibri T20, Colibri T30, Apalis T30I2CCE6, WEC7, WEC2013

Description: Using a 16-bit i2c RegisterAddress fails, if the actual address is stored in a 16-bit *signed* variable.

Workaround: Use a 32-bit or 16-bit unsigned variable to store the RegisterAddress.

WCL-613FixedTdxAllLibrariesDll.cs is missing some SOC specific functionsColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30Toradex FeatureCE6, WEC7, WEC2013

Description: Some SOC specific functions are missing in TdxAllLibrariesDll.cs. One is for example CAN functions for IMX6.

Workaround: Use the genric functions or add the missing functions to the cs file on your own.

WCL-610FixedSPI_Write on vybrid still collects input dataColibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: After a SPI_Write operation, up to 4 bytes of data may be stored in the RX FIFO and will be returned from a further SPI_Read or SPI_ReadWrite operation.

Workaround: Always use SPI_ReadWrite, providing a dummy buffer to store data received during transmission.

WCL-578New FeatureSpiLib for iMX7: Evaluate possible SPI clock frequenciesColibri iMX7SPICE6, WEC7, WEC2013

Description: The documentation of the SPI library does now list all possible clock rates for the iMX7.

WCL-575FixedTegra SPI : Packed mode issueColibri T20, Colibri T30, Apalis T30SPICE6, WEC7, WEC2013

Description: Packed mode was working only with DMA Mode and DMA Mode was only working for transfers larger than 32 packets. This is now fixed and Packed mode is supported in both DMA and PIO modes.

WCL-573FixedRpmsgLib for iMX7: WinCe can hang in Rpmsg_Open()Colibri iMX7CPUCE6, WEC7, WEC2013

Description: If the M4 firmware does not turn on the clock for the MU-A peripheral (in CCGR39), Rpmsg_Open() will hang.

Workaround: Enable the clock for MU-A before calling Rpmsg_Open()

WCL-569FixedPWMLib on Tegra hangs system when using multiple PWM channels and closing oneColibri T20, Colibri T30, Apalis T30PWMCE6, WEC7, WEC2013

Description: Calling Pwm_Close() on one PWM channel will disable clocks for all PWM channels and will make system hang when trying to access PWM registers. This has now been fixed: common PWM Clock is not disabled in Pwm_Close() anymore

Workaround: Do not call Pwm_Close() if you're still using another channel

WCL-568FixedPWMLib on Tegra uses wrong duty cycle percent mappingColibri T20, Colibri T30, Apalis T30PWMCE6, WEC7, WEC2013

Description: duty parameter in TegPwm_SetPwm() is mapped wrongly (0 = 0% ... 256 = 100%) but should be (0 = 0% ... 65536 = 100%)

WCL-567FixedPWMLib on Tegra may hang system if PWM_Open() is called right after a PWM_Close() callColibri T20, Colibri T30, Apalis T30PWMCE6, WEC7, WEC2013

Description: Calling open just after a close call could hang the system.

Workaround: Keep the PWM instance open all the time.

WCL-566FixedCAN_Write() and CAN_Read() cannot be called in parallel from 2 threadsColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30CANCE6, WEC7, WEC2013

Description: Until now CAN_Read() and CAN_Write() were serialized, so even from 2 Threads only one of the two operations is possible at the same time. Since the CAN_Read() can be used to wait for messages with a timeout all writes would be blocked for that amount of time. This behavior has now been changed so that CAN_Write() is possible even while a CAN_Read() is in progress

WCL-565FixedRpmsgLib for iMX7: M4 is not properly resetColibri iMX7Cache, Miscellaneous PeripheralsCE6, WEC7, WEC2013

Description: Restarting the M4 platform by closing and re-opening the RpMsgLib will result in unpredictable behavior of the M4

Workaround: This is fixed in library V2.3 or later

WCL-564FixedLibrary release script does skip .NET demosColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30WinCE FeatureCE6, WEC7, WEC2013

Description: .NET demo code was missing in the library package

WCL-550FixedUpdateLib: filesystem update on IMX6 and IMX7 with eMMC can damage registry and OS imageApalis iMX6, Colibri iMX6FlashCE6, WEC7, WEC2013

Description: The procedure delete and re-creates partitions but, since it's not possible to specify an offset, the new partition will overlap with the area used for registry and OS image. The device may keep working as expected, until sectors from registry or images are reclaimed by filesystem.

WCL-470FixedWdgLib: Documentation of DeInit() WrongColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30WatchdogCE6, WEC7, WEC2013

Description: Documentation of Deinit function is not precise. Disabling Watchdog is possible on some platforms (e.g. T20 and T30). We will update the documentation accordingly.

2.2 (Release date: 2018-05-16)
- Added VS2015 Project, Solution and PropertySheet Files
- Improved CAN Library
- Improved Update Library (iMX6/iMX7)
- Added Support for iMX7 in RPMsg Library
- Improved SPI Library on iMX6
WCL-929New FeatureAllow setting polarity for SPI CSApalis iMX6, Colibri iMX6SPIWEC7, WEC2013

Description: Allow setting polarity for SPI Chip Select.

WCL-795FixedCall to Spi_SetConfigString on Vybrid may lead to unexpected behavioursColibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: SPI library does not support string parameters but the strings passed in for valid int parameters are processed as integer values and this may lead to some unexpected behaviours for the library.

Workaround: Don't call Spi_SetConfigString and use Spi_SetConfigInt instead.

WCL-720New FeatureADC library for VF50 and VF61 can't read temperature sensorColibri VF50, Colibri VF61Analog InputsCE6, WEC7, WEC2013

Description: Internal temperature value can now be read by opening "ADC99" library port

WCL-703New FeatureProvide filesystem backup/restore in update libraryApalis iMX6, Colibri iMX6Toradex FeatureWEC7, WEC2013

Description: Currently, this feature is implemented on Vybrid, only on CE7.

WCL-669New FeatureCleaned up UpdateLib_DemoColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30WinCE FeatureCE6, WEC7, WEC2013

Description: Made the UpdateLib Demo easier to understand.

WCL-663FixedCanLib: Several Functions ..._Int() are not marked as 'static'Colibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30CANCE6, WEC7, WEC2013

Description: (internal cleanup)

WCL-661New FeatureUpdateLib on Vybrid: Added Feature to Erase FilesystemColibri VF50, Colibri VF61WinCE FeatureCE6, WEC7, WEC2013

Description: Added a function to erase the filesystem region (/FlashDisk/)

WCL-658FixedAllow I2c_Write with 0 bytes length.Colibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30I2CCE6, WEC7, WEC2013

Description: Allow I2c_Write with 0 bytes length. NOTE: This is still not allowed on Tegra Modules

WCL-644FixedTegra ClkLib: Added missing tClockOptimise definition to clk_teg.hColibri T20, Colibri T30, Apalis T30BuildsystemCE6, WEC7, WEC2013

Description: tClockOptimise enum definition was missing, generating compiler error when including clk_teg.h

WCL-642FixedCAN: Flexcan implementation returns bytes and not number of messagesApalis iMX6, Colibri iMX6CANWEC7, WEC2013

Description: Flexcan implementations of CAN_Read() and CAN_Write() have been changed to return number of messages

WCL-641FixedCan Lib: Remove SingleThread feature for MCP2515 CANColibri T20, Colibri T30, Apalis T30CANCE6, WEC7, WEC2013

Description: Can Lib: SingleThread feature will not work for MCP2515 CAN as it anyway needs multiple threads inside the library.

Workaround: Don't use single thread set to 1.

WCL-639FixedUpdateLib for VFxx: Updating Eboot from Object Store Renders Module Unbootable.Colibri VF50, Colibri VF61Toradex FeatureCE6, WEC7, WEC2013

Description: Update Eboot.img from RAM fails

WCL-638FixedI2C Lib Demo: i2cScan does not work on all platformsColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30I2CCE6, WEC7, WEC2013

Description: Scanning using a write with NULL size 0 does not work on all module families.

WCL-636FixedUpdateLib is not working on the IMX7DColibri iMX7Toradex FeatureWEC7, WEC2013

Description: The Update Library fails on calling Upd_Init(NULL)) with an exception on IMX7D modules under WEC2013.

WCL-635FixedUpdate lib: Invalid registry file generated on imx6Apalis iMX6, Colibri iMX6WinCE FeatureWEC7, WEC2013

Description: The exported registry file for i.mx6 is not valid and re-importing it restores the default registry instead.

WCL-634FixedRpMsgLib: Rpmsg_Write Parameter Not Defined as ConstantColibri iMX7, Colibri VF61CPUWEC7, WEC2013

Description: Data to send by Rpmag_Write() is defined as void*, but should be const void*

WCL-626FixedIMX6, IMX7, Vybrid: CAN library does not return errors in the correct wayApalis iMX6, Colibri iMX6CANWEC7, WEC2013

Description: CAN_Read, CAN_Write, and CAN_WriteMultiple sometimes return the packet length (correct return code) even if there was an error performing the operation.

WCL-625FixedDefault I2c pins are not defined for Apalis iMX6Apalis iMX6I2CWEC7, WEC2013

Description: Fixed by Added default pins assignments

Workaround: Configure ioScl and ioSda through I2c_SetConfigInt. Refer more documentation at Toradex_CE_Libraries.chm

WCL-624FixedConfig parser context corruption occurs in WEC2013Colibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T30, Apalis T30WinCE FeatureWEC2013

Description: When library APIs are running in a multithreaded environment that would cause a config parser context corruption error.

WCL-621FixedCanLib WEC2013: Data Abort after Can_InitColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61CANWEC2013

Description: After calling Can_Init on the Can Library random data aborts have been seen. This has been fixed.

WCL-617FixedVybrid: CAN1 and CAN2 SODDIMM pinout documentation wrongColibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: The pins documented for CAN1 and CAN2 swapped. CAN1 has pins RX:Pin 63, TX: Pin 55 and CAN2 has RX: Pin 196, TX Pin 194.

WCL-616New FeatureAdded VS2015 Project Files and property sheets filesColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30BuildsystemWEC2013

Description: LibDemos now also have all needed files to be opened by VS2015

WCL-615FixedOn-module ADC is not accessible on iMX6Apalis iMX6, Colibri iMX6Analog InputsCE6, WEC7, WEC2013

Description: Calling ADC_Init fails on Apalis and Colibri iMX6

WCL-612FixedUpdatelib: error updating config block on imx6Apalis iMX6, Colibri iMX6WinCE FeatureWEC7, WEC2013

Description: This has been fixed

WCL-536New FeatureRpMsgLib: Support FreeRTOS and RpMsgLib on Colibri iMX7Colibri iMX7CPUWEC7, WEC2013

Description: Adjust FreeRTOS to run on the iMX7's M4 core. Add support for the iMX7 in the RpMsgLib.

WCL-529Fixed.NET Wrapper: Wrong PInvoke definition of xxx_GetConfigString()Colibri iMX7, Colibri iMX6ULL, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30, Colibri PXA320, Colibri PXA310, Colibri PXA270, Colibri PXA300 XT, Colibri PXA300WinCE FeatureCE6, WEC7, WEC2013

Description: When using our libraries from .NET, calls to the functions xxx_GetConfigString() fail, due a wrong .NET wrapper definition of the function's 2nd parameter.

WCL-503FixedGpio_GetConfigInt always returns 0Colibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30GPIOWEC7, WEC2013

Description: Gpio_GetConfigInt returns 0 as value for any parameter passed as input.

WCL-488New FeatureAdd DVFS and clocking funtions to IMX6 Clock libraryApalis iMX6, Colibri iMX6Power ManagementWEC7, WEC2013

Description: The iMX6 clocking library supports APIs to set minimum and maximum CPU frequency. Those will work if DVFS is enabled in the image (supported from v1.3b4)

WCL-485FixedSPI Modes on iMX6 not set correctlyColibri iMX6SPICE6, WEC7, WEC2013

Description: The idle state of the SCLK signal is implemented as '0' instead of '1' for SPI MODE 3.

Workaround: Make sure that the SPICS signal is routed to the SPI slave device. As long as this chip select is active, the SCLK/MOSI signals behave as expected for all SPI modes.

WCL-471New FeatureSPI lib: Alllow setting any pin to be a CS on iMX6 productsApalis iMX6, Colibri iMX6SPIWEC7, WEC2013

Description: On IMX6 the SPI CS pins are implemented as GPIOs. Currently it is not possible to select any other pin as CS.

WCL-433New FeaturePwmLib on Vybrid: Support for >10 channelsColibri VF50, Colibri VF61PWMCE6, WEC7, WEC2013

Description: All 18 PWMs can now be used on Vybrid

WCL-431FixedI2C library byte order for 16 bit register addressColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30I2CCE6, WEC7, WEC2013

Description: There is now a Config Parameter "RegisterAddrLE" to set the endianness of I2C parameter "RegisterAddr" when "RegisterAddrSize" = 16

2.1 (Release date: 2018-01-12)
- Added CANLib for Tegra
- Improved SPILib performance and fixed default pin mappings
- Improved I2CLib
- Improved CANLib performance
WCL-851New FeatureAdd CAN support for T20/30 modules using the new library APIColibri T20, Colibri T30, Apalis T30CANCE6, WEC7, WEC2013

Description: Add support for the T20/30 modules for the CAN library using the newer API approach.

WCL-793FixedSPI_Init() Crashes If There Are Parameters Stored in the RegistryApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: If SaveToRegistry flag is passed the parameters are actually stored in registry, but at next restart calling SPI_Init leads to a crash.

WCL-702New FeatureI2cLib on VFxx: Second I2c Port Stops WorkingColibri VF61I2CCE6, WEC7, WEC2013

Description: I2C Read/Write can fail on second i2c port (i2c2), and block the i2c2 port permanently.

Workaround: Please make sure that the pullup resistors on SDA and SCL are strong enough. If required, add extra pullups.

WCL-633FixedI2CLib for Tegra: Changed default library port mappingsColibri T20, Colibri T30I2CCE6, WEC7, WEC2013

Description: On Colibri T30 library port name "I2C3" was using pins 49,51 by default, changed to use Ext15, Ext16 to make it compatible to Colibri T20. We also added new mapping for Colibri T30 "I2C4" using pins 49,51 On Colibri T20 we swapped "I2C2" and "I2C3" default mappings for the same reason to make it more compatible with Colibri T30

WCL-632FixedCANLib: Removed "RtrFormat" configColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30CANCE6, WEC7, WEC2013

Description: “RtrFormat” was initially used to set remote or data frame option used for CAN_Write() calls. Since the remote or data option can now be set as a flag in CAN_Write it does not make sense to have this config anymore

WCL-631FixedCANLib: Changed config name "FrameFormat" to "FilterFrameFormat"Colibri iMX7, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30CANCE6, WEC7, WEC2013

Description: "FrameFormat" was initially used to set the frame format used for CAN_Write() calls. Since the frame format can now be set as a flag in CAN_Write it does not make sense to have this config anymore. Instead we introduced a "FilterFrameFormat" config to filter out (remove) extended (29bit) or standard (11bit) received frames.

WCL-630FixedGPIOLib for iMX7: changed config name "hys" to "inMode"Colibri iMX7GPIOCE6, WEC7, WEC2013

Description: iMX7 was the only one using "hys" (hysteresis) instead of the common defined "inmode" ("normal"/"schmitt") Changed to make it compatible with other SOCs

WCL-629FixediMX7 Gpio Library: SODIMM 36 & 38 are swappedColibri iMX7GPIOWEC7, WEC2013

Description: SODIMM to GPIO mappings for SODIMM pins 36 & 38 are swapped

WCL-546FixedADCLib: Multiple instances are not working in a process in T30Colibri T30, Apalis T30Analog InputsWEC7, WEC2013

Description: ADCLib: Multiple instances are not working in a process in T30

WCL-544FixedVybrid GpioLib: falling to run multiple instance in a process.Colibri VF50, Colibri VF61GPIOCE6, WEC7, WEC2013

Description: Vybrid Gpio Library falling to run multiple instances in a process.

WCL-534New FeatureSpiLib on Vybrid: Add Support for Wordwidths other than 8 and 16 BitsColibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: The SPI Library for Vybrid currently supports only word widths of 8 and 16bits. We can add support for 4 to 16 and 32 bit word widths.

WCL-533New Featurei2cLib for Vybrid: Make the library thread-safeColibri VF50, Colibri VF61I2CCE6, WEC7, WEC2013

Description: Make the i2c library for Vybrid thread-safe

WCL-531New FeatureGpioLib for Vybrid: Convert from Driver to LibraryColibri VF50, Colibri VF61GPIOCE6, WEC7, WEC2013

Description: Implement GpioLib without underlying driver and make it thread-safe.

WCL-530FixedCAN library does not handle 29-bits message IDs properlyColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: If user wants to send frame with extended if he just needs to set CanMsgFlags_IDE inside canMsgFlags.

WCL-526FixedImx6 Clock Lib: Use clock driver functions instead of directly accessing CCM registersApalis iMX6, Colibri iMX6KernelCE6, WEC7, WEC2013

Description: Imx6 Clock Lib: Use clock driver functions instead of directly accessing CCM registers.

WCL-525FixedTegra I2c library: Failing to run multi instance for multiple processColibri T20, Colibri T30, Apalis T30I2CCE6, WEC7, WEC2013

Description: Tegra I2c library: Failing to run multi-instance for multiple processes.

WCL-522FixedSpiLib on iMX6: Improve Performance of Imx6Spi_ReadWrite()Colibri iMX6SPICE6, WEC7, WEC2013

Description: Remove overhead code that is executed each time when sending/receiving SPI data.

WCL-521FixedSpiLib on iMX7: Improve Performance of Imx7Spi_ReadWrite()Colibri iMX7SPICE6, WEC7, WEC2013

Description: Remove overhead code that is executed each time when sending/receiving SPI data.

WCL-507New FeatureIMX6 FlexCan: Turn CAN Driver Into a CAN Library, Which Does Not Require Any DriverApalis iMX6, Colibri iMX6CANCE6, WEC7, WEC2013

Description: Improve FlexCan performance on iMX6

WCL-479FixedUpdate Rpmsg lib to sync with FreeRTOS Updates.Colibri VF50, Colibri VF61KernelCE6, WEC7, WEC2013

Description: Update Rpmsg lib to sync with FreeRTOS Updates.

WCL-475FixedCAN library does not allow reception of both standard and extended frames at the same time on imx6, vybrid and imx7.Colibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: Added a configuration parameter to enable receiving of all frames. Refer to documentation about usage.

WCL-473Fixedi2cLib for Tegra: Teg_I2cWrite() returns no error even if written bit was not ACKed by slaveColibri T20, Colibri T30, Apalis T30I2CCE6, WEC7, WEC2013

Description: TegI2c_Write() may return success (number of sent bytes) even if there was no slave replying with an ACKnowledge bit.

WCL-469FixedMultiplexed MISO pins are set to output level 1Colibri T20, Colibri T30SPICE6, WEC7, WEC2013

Description: If you configure SPI MISO that has a multiplexed second GPIO on the same pin, the not used GPIO is set to direction out, level high.

WCL-468FixedSPI pins are touched in SPI_InitColibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30SPICE6, WEC7, WEC2013

Description: On Vybrid and Tegra the SPI pins are already touched in the SPI_Init function also there should be no access to the on the hardware before SPI_Open. Move this to SPI_Open.

WCL-466FixedRecovery from FlexCAN bus error stateColibri iMX7, Colibri iMX6, Colibri VF61CANCE6, WEC7, WEC2013

Description: Implemented CAN RESET inside Can_Init, this will clear the CAN Error bit on CAN controller. If CAN error bit is set and you want to clear it then please call Can_Deinit and Can_Init functions.

WCL-465FixedFlexCan_status returns wrongs bits to the callerColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: FlexCan_Status returns wrongs bits to application

WCL-464FixedGpioLib: Setting slew rate parameter did not work properlyColibri iMX7GPIOWEC7, WEC2013

Description: Setting slew rate to fast set it to slow

WCL-463FixedFlexCAN Deinit generat exception on WEC2013Colibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61CANWEC2013

Description: FlexCAN Deinit generate exception on WEC2013

WCL-462FixedFreeRTOS 1.0.1 Updates is not working on VF61 1.2A HW ModulesColibri VF61KernelCE6, WEC7, WEC2013

Description: FreeRTOS 1.0.1 Updates is not working on VF61 1.2A HW Modules

WCL-460FixedMissing documentation on clk_imx6.h functionsApalis iMX6Toradex FeatureCE6, WEC7, WEC2013

Description: some function parameters of the clk_imx6 library are not documented properly

WCL-458FixedMCP2515 Apalis: Add support for default config for CAN on apalis T30Colibri T30CANWEC7, WEC2013

Description: Add default configuration for CAN on Apalis T30.

WCL-453FixedI2cLib for Apalis T30: Library ports "I2c2" and "I2c2" are not the instances on the default pinsApalis T30I2CCE6, WEC7, WEC2013

Description: On Apalis T30 modules, the library port "I2C2" does not refer to the default pinout.

Workaround: To use the module's default SPI pins, use a different port name, as documented in the library help file, section i2c_teg.h.

WCL-452FixedSpiLib for Vybrid: Library Port "SPI1" is not the instance on the default pinsColibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: On Colibri VF50 and VF61 modules, the library ports "SPI1" do not refer to the default pinout.

Workaround: To use the module's default SPI pins, use a different port name, as documented in the library help file, section spi_vyb.h.

WCL-451FixedSpiLib for Tegra: Library Port "SPI1" is not the instance on the default pinsColibri T20, Colibri T30SPICE6, WEC7, WEC2013

Description: On Tegra modules, the library ports "SPI1" and "SPI2" do not refer to the default pinout.

Workaround: To use the module's default SPI pins, use a different port name, as documented in the library help file, section spi_teg.h.

WCL-447FixedAdd support for SODIMM 71 as PWM on VybridColibri VF50, Colibri VF61PWMCE6, WEC7, WEC2013

Description: SODIMM pin 71 can not be used as PWM in the Library.

WCL-446FixedSeveral Non-SODIMM gpio pins not able to control through Gpio libraryColibri VF50, Colibri VF61GPIOCE6, WEC7, WEC2013

Description: Several Non-SODIMM gpio pins not able to control through Gpio library

WCL-442FixedUpdateLib: config block backup or restore operations may return wrong error code on imx6Apalis iMX6, Colibri iMX6ConfigBlockCE6, WEC7, WEC2013

Description: If the library fails to re-activate the user partition after reading/writing config block the operation may return a success code.

Workaround: Issue has been fixed and the fix is going to be include in next release of the libs.

WCL-441New FeatureAdd Documentation about used SPI channels for CAN on Apalis T30Apalis T30CANCE6, WEC7, WEC2013

Description: Document mapping of SPI to CAN channels for Apalis T30

WCL-437FixedCAN: CAN_Write function does not return correct length on i.MX6, Vybrid and i.MX7Colibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: The function has a counter that starts at -1 (error) and adds the number of bytes sent for each packet, returning one byte less than the actual amount sent. If you send a zero length packet, the return value is still -1, meaning error.

WCL-435FixedFlexcan: RTR bit in packet does not work, in configuration works only as stringColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: If user wants to send RTR frame if he just needs to set CanMsgFlags_RTR inside canMsgFlags.

WCL-429FixedI2CLib Tegra: Calling TegI2c_Close without TegI2c_Open causes Data AbortColibri T20, Colibri T30, Apalis T30I2CCE6, WEC7, WEC2013

Description: Calling TegI2c_Close without calling TegI2c_Open before we end up in a data abort.

2.0 (Release date: 2017-05-24)
- Extend all libraries to support the Colibri iMX7
- MCP2515 support for iMX6
- WatchdogLib for Tegra
- Various bugfixes and stability improvements
WCL-874New FeatureSpiLib on T20/T30: Add support for T20/30 modules using the new library APIColibri T20, Colibri T30, Apalis T30SPICE6, WEC7, WEC2013

Description: Add support for Colibri T20/T30 and Apalis T30 modules to the SPI library.

WCL-856New FeatureiMX6 Interrupt Library: Events before the interrupt is initialized lead to an unwanted signalized eventApalis iMX6, Colibri iMX6WinCE FeatureCE6, WEC7, WEC2013

Description: On i.MX6 you may have an interrupt event reported immediately after entering wait even if you call InterruptDone before starting the wait loop.

WCL-855New FeatureSpiLib for VF50/VF61: Add Support for Non-Standard Chip Select PinsColibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: On Colibri VF50 and VF61, only the default SPI Chip select pin was working. We added support for other chip select GPIOs.

WCL-854New FeatureCAN Library: Add Support for the MCP2515 on iMX6Colibri iMX6CANCE6, WEC7, WEC2013

Description: Implement MCP2515 support in the CAN library for Colibri iMX6.

WCL-839FixedI2CLib: Open / Close cycle fails on TegraColibri T20, Colibri T30, Apalis T30I2CCE6, WEC7, WEC2013

Description: Calling TegI2c_Open() after TegI2c_Close() can freeze the system.

WCL-838New FeatureAdd SPI Lib for Colibri iMX7Colibri iMX7SPICE6, WEC7, WEC2013

Description: Add SPI Lib for Colibri iMX7

WCL-837New FeatureAdd I2C Lib for Colibri iMX7Colibri iMX7I2CCE6, WEC7, WEC2013

Description: Add I2C Lib for Colibri iMX7

WCL-836New FeatureAdd CAN Lib for Colibri iMX7Colibri iMX7CANCE6, WEC7, WEC2013

Description: Add CAN Lib for Colibri iMX7

WCL-834New FeatureVF61 FlexCan: Turn CAN Driver Into a CAN Library, Which Does Not Require Any DriverColibri VF61CANCE6, WEC7, WEC2013

Description: Improve FlexCan performance on VF50 and VF61

WCL-828New FeatureAdd PWM Lib for Colibri iMX7Colibri iMX7PWMCE6, WEC7, WEC2013

Description: Add PWM Lib for Colibri iMX7

WCL-827New FeatureAdd ADC Lib for Colibri iMX7Colibri iMX7Analog InputsCE6, WEC7, WEC2013

Description: Add ADC Lib for Colibri iMX7

WCL-826FixedKernelcallbacklib: Deinit failsColibri iMX7, Colibri iMX6ULL, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30Kernel, WinCE FeatureWEC2013

Description: Deinit on some libraries fails under WEC 2013

WCL-825New FeatureImplement WatchdogLib for TegraColibri T20, Colibri T30, Apalis T30WatchdogCE6, WEC7, WEC2013

Description: Implement the Watchdog Library using the Hardware Watchdog feature of the Tegra modules.

WCL-821Fixedi2c library for Vybrid: Internal Function SetConfig() Does Not Flag All Error ConditionsColibri VF50, Colibri VF61I2CCE6, WEC7, WEC2013

Description: Some error conditions are ignored and not reported back to the calling function.

WCL-820New FeatureiMX6 Spilib: Additional Configuration OptionsApalis iMX6, Colibri iMX6SPICE6, WEC7, WEC2013

Description: Add support for SPI configuration options "DmaEnable", "MasterSlave", "PackedMode", "CsPulse" and "WaitMethod"

WCL-812New FeatureI2cLib on iMX6: Make Timeout ConfigurableApalis iMX6I2CCE6, WEC7, WEC2013

Description: Use a programmable timeout for i2c operations, instead of a hard-coded constant timeout.

WCL-807FixedCalling Spi_SetConfigString on i.MX6 return an error and 'unsupported CPU type' messageApalis iMX6SPICE6, WEC7, WEC2013

Description: SPI library for i.mx6 does not support any string parameter so calls to Spi_SetConfigString are supposed to fail, but the generated error message is misleading.

WCL-678New FeatureUpdateLib for VFxxColibri VF50, Colibri VF61Bootloader, ConfigBlock, FlashCE6, WEC7, WEC2013

Description: Implement Update Library for Colibri VF50 and Colibri VF61.

WCL-543FixedI2C pinout configuration does not workApalis iMX6, Colibri iMX6I2CCE6, WEC7, WEC2013

Description: On Colibri iMX6 and Apalis iMX6, it is not possible to configure a non-standard pinout for I2C ports.

WCL-537New FeatureI2cLib on iMX7: Make Timeout ConfigurableColibri iMX7I2CWEC7, WEC2013

Description: Use a programmable timeout for i2c operations, instead of a hard-coded constant timeout.

WCL-520FixedGPIO Lib: Gpio_Open() returns FALSE, when Registry path is used.Colibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30GPIOCE6, WEC7, WEC2013

Description: If a registry path is passed to Gpio_Init(), the following call to Gpio_Open() fails.

WCL-518New FeatureSpiLib on iMX7: Support Unpacked ModeColibri iMX7SPICE6, WEC7, WEC2013

Description: Add Support for Unpacked data

WCL-517New FeatureSpiLib on iMX6: Support Unpacked ModeColibri iMX6SPICE6, WEC7, WEC2013

Description: Add Support for Unpacked data

WCL-515New FeatureSpiLib Tegra does not read set registry settingsColibri T20, Colibri T30, Apalis T30SPICE6, WEC7, WEC2013

Description: Library does not read the already set default configurations from registry editor.

WCL-512FixedI2cLib: Memory Leak in TegI2c_Init() / TegI2c_DeInit()Colibri T20, Colibri T30, Apalis T30I2CCE6, WEC7, WEC2013

Description: Possible memory leak when calling TegI2c_Init() and TegI2c_Deinit() functions only.

WCL-511New FeatureUse new naming and versioning convention for Toradex software packagesColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30Toradex FeatureCE6, WEC7, WEC2013

Description: We changed the naming and versioning format slightly in order to have a common approach for Linux, WinCE, and other Toradex software packages. Details about the versioning can be found here: https://developer.toradex.com/knowledge-base/toradex-software-versioning-convention

WCL-509FixedClkLib: multiple instances not supported due to global variable is usedColibri T20, Colibri T30, Apalis T30KernelCE6, WEC7, WEC2013

Description: ClkLib: multiple instances not supported due to global variable is used

WCL-506FixedOn Colibri iMX7, SODIMM 152 to SODIMM 199 pins can't be configured through Gpio libraryColibri iMX7GPIOCE6, WEC7, WEC2013

Description: SODIMM 178, 184, 186, 188, 190, 192, 194 and 196 pins can't be configured through Gpio library

WCL-505New FeatureSpiLib on VF50/VF61: Support Packed ModeColibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: Add Support for packed data

WCL-502FixedIMX6 I2C library generates a crash when used in kernel modeApalis iMX6, Colibri iMX6I2CCE6, WEC7, WEC2013

Description: I2C library generates an exception when initialized in kernel mode

WCL-500New FeatureCAN Library: Add Support for the MCP2515 on i.MX7Colibri iMX7CANCE6, WEC7, WEC2013

Description: CAN Library: Add Support for the MCP2515 on i.MX7

WCL-499New FeatureAdd update library for iMX7Colibri iMX7Bootloader, ConfigBlock, FlashCE6, WEC7, WEC2013

Description: Add support for iMX7 to update library

WCL-498FixedPwmLib for Vybrid: Library Does Not Properly Configure Multiplexed Pin 59, 67 for PWMA and PWMD signal respectivelyColibri VF50, Colibri VF61PWMCE6, WEC7, WEC2013

Description: For Colibri VF50 and VF61, the PWMA signal on SODIMM pin 59 shows a voltage offset of 1.7V. This is caused by a multiplexed CPU pin, which is also connected to the same SODIMM pin. The same thing is applicable to PWM_D(SODIMM pin 67) signal as well.

Workaround: Configure CPU pin PTC7 ( GPIO(52) ) as GPIO, Input for PWMA signal. Configure CPU pin PTC6 ( GPIO(51) ) as GPIO, Input for PWMD signal.

WCL-495New FeatureImplement WatchdogLib for iMX7Colibri iMX7WatchdogCE6, WEC7, WEC2013

Description: Implement the Watchdog Library using the Hardware Watchdog feature of the iMX7 modules.

WCL-493Fixedxxx_GetConfigString() Does Not Respect Maximum Buffer SizeColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30, Colibri PXA320, Colibri PXA310, Colibri PXA270, Colibri PXA300 XT, Colibri PXA300Toradex FeatureCE6, WEC7, WEC2013

Description: The GetConfigString() function available in various libraries copies the full result string into the result buffer, even if this is more than what is defined in the maxBytes parameter.

Workaround: Make sure that the result buffer you pass to GetConfigString() is large enough.

WCL-492FixedGpio_GetConfigString() Does Not Respect Maximum Buffer SizeColibri iMX7, Colibri iMX6ULL, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30, Apalis iMX8, Colibri PXA320, Colibri PXA310, Colibri PXA270, Colibri PXA300 XT, Colibri PXA300GPIOCE6, WEC7, WEC2013

Description: The function Gpio_GetConfigString() writes all available data to the output buffer, and does not limit the string length to the size given in the "maxMytes" parameter.

WCL-490New FeatureMemory Leak in iMX6 I2C libraryApalis iMX6, Colibri iMX6I2CCE6, WEC7, WEC2013

Description: There is a constant rise in Kernel Memory consumption nk.exe when i2c_init() and i2c_deinit() is called multiple times after the boot.

V1.9 (Release date: 2017-02-22)
- CAN library for VFxx and iMX6 internal CAN controller
- RpMsg protocol for communication to the Colibri VF61 M4 core
- ADC support for Tegra
- Bug fixes in various libraries
WCL-873FixedCan_Read() Does Not Return Actual Number of Bytes ReadApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: The FlexCAN implementation of the Read function is supposed to return the size of the received message, but it's not returning the right value.

WCL-833FixedRpMsgLib: Initializing RpMsgLib With Empty RegistryPath Is Not Properly SupportedColibri VF61KernelCE6, WEC7, WEC2013

Description: The library did only partially support calling RpMsg_Init() with an empty or NULL registryPath,

Workaround: Ignore debug message and make sure you don't store any configuration settings non-volatile.

WCL-832New FeatureSupport for GPIOs on the Extension Connector of Colibri iMX6Colibri iMX6GPIOWEC7, WEC2013

Description: Add support for pins on the Colibri iMX6 extension connector that may be used as GPIOs.

WCL-831FixedApalis iMX6 Pin 239 Can't Be Used as a GPIOApalis iMX6GPIOWEC7, WEC2013

Description: GPIO130 must be configured to output,high to enable Apalis pin 239 as a GPIO.

Workaround: Include code in your application to configure GPIO130.

WCL-830FixedNUM_EXTENSION definition must be updatedApalis iMX6, Colibri iMX6GPIOWEC7, WEC2013

Description: Internal ticket

WCL-829FixedMemory Leak in KernelCallback LibraryColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30I2CCE6, WEC7, WEC2013

Description: Repeated calling of xxx_Init() and xxx_Deinit() for various libraries (Gpio, I2C, etc.) was leaking some memory.

WCL-819FixedGpioLib for Tegra: Setting AltFn Always Disables TristateColibri T20, Colibri T30, Apalis T30GPIOCE5, CE6, WEC7, WEC2013

Description: On T20 and T30 modules, changing the AltFn of a GPIO always disables the tristate setting for this GPIO or the whole pin group.

Workaround: Verify that disabling tristate does not generate critical glitches on the affected GPIO or pin group.

WCL-818New FeatureCanLib for Vybrid/iMX: Query Status RegisterColibri iMX7, Colibri iMX6, Colibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: Query status register of the CAN driver.

WCL-817FixedGpioLib for Tegra: TegGpio_Open() Returns False if no Registry Path is GivenColibri T20, Colibri T30, Apalis T30GPIOCE5, CE6, WEC7, WEC2013

Description: TegGpio_Open() returns False if no registry path is defined

Workaround: Provide a valid registry path, even if you don't need it.

WCL-816FixedSpiLib on Apalis iMX6: Wrong SPI InstancesApalis iMX6SPICE6, WEC7, WEC2013

Description: On Apalis SPI1,2,3 and 5 are available, library incorrectly mapped SPI4 on the SPI5 pins.

WCL-815Fixedi2cLib for Tegra: TegI2c_Read() Does Only Support 8-bit Register AddressColibri T20, Colibri T30, Apalis T30I2CCE6, WEC7, WEC2013

Description: I2c_Read() on Tegra does only support 8-bit register addresses. 16-bit and 0-bit addresses are not supported.

WCL-814Fixedi2cLib for Tegra: TegI2c_Write() Does Not Return Number of BytesColibri T20, Colibri T30, Apalis T30I2CCE6, WEC7, WEC2013

Description: On Tegra, I2c_Write() returns an error status, instead of the number of bytes written.

WCL-813FixedCanLib for Vybrid/iMX: Overwrites Registry SettingColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: The registry path to the can.dll driver gets overwritten on a call to Can_Open()

Workaround: If you need to use a custom can.dll file, place it in the folder \Flashdisk\System\

WCL-811New FeatureGpioLib for iMX7: Support GPIO1_IO00 to GPIO1_IO15Colibri iMX7GPIOCE6, WEC7, WEC2013

Description: Support GPIO1_IO00 to GPOI1_IO15 on Colibri iMX7

WCL-810FixedI2cLib on Tegra: Add Support for Internal I2c ChannelColibri T20, Colibri T30, Apalis T30I2CCE5, CE6, WEC7, WEC2013

Description: Add support for the internal i2c channel

WCL-803FixedGpioLib: Improved config string parsingColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30GPIOCE6, WEC7, WEC2013

Description: Parsing of configuration strings could be instable when passing invalid strings.

WCL-802New FeatureSome Libraries (e.g. GPIOLib) for Vybrid/iMX are not Thread SafeColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61GPIOCE6, WEC7, WEC2013

Description: GpioLib for Vybrid and iMX is not fully thread-safe.

WCL-801New FeatureUpdateLib for iMX6: Add Support for Registry Export/import and SPL BootloaderApalis iMX6, Colibri iMX6WinCE FeatureCE6, WEC7, WEC2013

Description: Update lib now supports registry export/import and also flashing SPL and eboot in SPL format. Requires BSP version 1.2 and later versions.

WCL-800New FeatureNew Apalis iMX6D 512MB IT Module Is Not Recognized by CoproclibApalis iMX6KernelWEC7, WEC2013

Description: The library does not recognize this module.

WCL-798Fixedi.MX6 SPI operations send and return wrong data if they are not 32 bit alignedApalis iMX6, Colibri iMX6SPIWEC7, WEC2013

Description: SPI on i.MX6 supports also 8 and 16 bits word lengths, but if the total length of the frame is not 32 bit aligned, the first 1,2 or 3 words are not in the correct order or contain invalid data.

Workaround: This is a driver issue,not an issue of the SPI library, but to work correctly on i.MX6 SPI library needs, at least, release 1.1 of the image.

WCL-797FixedIntLib: Make IntLib Usable for Driver DevelopmentColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30, Colibri PXA320, Colibri PXA310, Colibri PXA270, Colibri PXA300 XT, Colibri PXA300KernelCE5, CE6, WEC7, WEC2013

Description: Make IntLib usable for driver development

WCL-794FixedCAN MCP2515 Is Broken in library pack 1.8 on Colibri VF50 and Colibri VF61Colibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: CAN through MCP2515 (on carrier board) doesn't work in library package 1.8 for Colibri VF50 and VF61.

WCL-790New FeatureAdd ADCLib support for T20/30 modules using the new APIColibri T20, Colibri T30, Apalis T30Analog InputsCE6, WEC7, WEC2013

Description: Add support for the T20/30 modules for the ADC library using the newer API approach.

WCL-726New FeatureSupport FreeRTOS and inter processor communicationColibri iMX7, Colibri VF61KernelCE6, WEC7, WEC2013

Description: Support FreeRTOS on Colibri VF61 and provide a communication library which can be used form WinCE to transfer information between WinCE and FreeRTOS and vice-versa.

V1.8 (Release date: 2016-11-25)
- Added Gpio and Coproc support for iMX7
- Added Pwm support for Tegra
- Added SPI and Watchdog support for iMX6
- Added Can-through-SPI (MCP2515) support for Vybrid
Various bug fixes and improvements
WCL-877New FeatureAdd splash screen update through Update libApalis iMX6, Colibri iMX6Update SystemWEC7, WEC2013

Description: A splash screen in the tss format can be flashed using UPD_Restore and setting "splashscreen" as section and "raw" as format.

WCL-876FixedFlexCAN CAN read doesn't return length of received CAN messageApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: FlexCAN Library doesn't return the length of received CAN message.

WCL-875New FeatureI.MX6: SO-DIMM pins 59 and 67 are connected to multiple GPIOsApalis iMX6, Colibri iMX6GPIOWEC7, WEC2013

Description: For multiplexed Colibri pins SODIMM-59 and SODIMM-67, pulldowns are now disabled for the secondary GPIO, as soon as the pin is configured as GPIO.

WCL-872New FeatureAdd PWM support for T20/30 modules using the new library APIColibri T20, Colibri T30, Apalis T30PWMCE6, WEC7, WEC2013

Description: Add support for the T20/30 modules for the PWM library using the newer API approach.

WCL-871New FeatureAdd I2C support for T20/30 modules using the new library APIColibri T20, Colibri T30, Apalis T30I2CCE6, WEC7, WEC2013

Description: Add support for the T20/30 modules for the I2C library using the newer API approach.

WCL-868New FeatureVybrid Internal CAN: Improve Write PerformanceColibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: Improve CAN transmit performance by allowing multiple messages to be sent at once.

WCL-865New FeatureAdd GPIO support for T20/30 modules using the new library APIColibri T20, Colibri T30, Apalis T30GPIOCE6, WEC7, WEC2013

Description: Add support for the T20/30 modules for the GPIO library using the newer API approach.

WCL-862FixedMCP2515 CAN Lib: Optimize PerformanceColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30, Colibri PXA320, Colibri PXA310, Colibri PXA270, Colibri PXA300 XT, Colibri PXA300CANCE6, WEC7, WEC2013

Description: Introduced configuration parameter "SingleThread" which is 0 by default. By setting it to 1, the performance of the library can be significantly improved.

WCL-859New FeatureInterrupt Library iMX6, Int_Deinit(), returns FALSEColibri iMX6, Colibri VF50, Colibri VF61KernelWEC7, WEC2013

Description: Typo error in the Deinit() function was there in the "return"/

WCL-853New FeatureSPI interface supports only 32 bit word lenghtApalis iMX6, Colibri iMX6SPIWEC7, WEC2013

Description: The Spi Library for i.MX6 only supports 32bit word width.

Workaround: This is fixed in version 1.1B4, driver now supports 8-16 and 32 bits. This will require an update of both the OS and the libraries.

WCL-852New Featureirqtrig=none does not behave as documentedApalis iMX6, Colibri iMX6GPIOWEC7, WEC2013

Description: The "none" value for irqtrig parameter has been removed since it was misleading, generating different behaviours on the different platforms and not actually disabling the interrupt as described. Irqtrig must be used to configure how the interrupt is detected (rising, falling edges, low or high level) and must be called before the interrupt is enabled. Int_InterruptInitialize and Int_InterruptDisable are the only functions that can be used to enable/disable interrupts.

WCL-850FixedGPIO pull down is not correctly configured when using default valuesApalis iMX6, Colibri iMX6GPIOWEC7, WEC2013

Description: When default values "up" or "down" are specified for the "pull" configuration parameter on i.mx6 the pin is not configured in the right way.

Workaround: Using specific values "up22k", "up47k", "up100k" or "down100k".

WCL-848FixedPwmLib for iMX6: 2V High Level on PWMA, PWMDColibri iMX6PWMCE6, WEC7, WEC2013

Description: On Colibri iMX6, PWMA and PWMD show reduced output voltages, because multiplexed GPIOs are driving against the PWM pins

Workaround: Configure GPIO 48 and GPIO49 as (GPIO, input). This will be done automatically in library release V1.8.

WCL-846FixedSpiLib for Vybrid: enum tSpiParam Does Not Match array paramListColibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: Setting on any SpiLib config parameters could fail.

Workaround: none. Will be fixed in V1.8

WCL-845FixedI2c Speed Is Not Preserved in a Multithreaded EnvironmentColibri iMX6I2CCE6, WEC7, WEC2013

Description: When multiple threads configure the i2c bit rate for the same i2c bus, the last setting is used for all threads.

Workaround: Fixed in Library revision V1.8

WCL-844FixedGpioLib: Read Back Registry Settings Does Not WorkColibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30GPIOCE5, CE6, WEC7, WEC2013

Description: Reading back registry settings automatically in Gpio_Open() does not properly work.

Workaround: Use Gpio library functions to configure settings without the use of the registry, or use updated library (V1.8 and higher)

WCL-840New FeatureImplement SysInfo libraryColibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30WinCE FeatureCE6, WEC7, WEC2013

Description: Implement SysInfo library to request hardware and software versions of the system.

WCL-806FixedIO string configuration options not documentedApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30GPIOCE6, WEC7, WEC2013

Description: Documentation only: Missing documentation for IO string options (i.e. Colibripin_*).

WCL-805New FeatureAdd GPIO lib for IMX7Colibri iMX7GPIOWEC7, WEC2013

Description: Add support for GPIO library on IMX7

WCL-791New FeatureAdd IMX7 support to CoProcLibColibri iMX7KernelWEC7, WEC2013

Description: Add support for CoProcLib on IMX7

WCL-767New FeatureSPILib for i.MX6Apalis iMX6, Colibri iMX6SPIWEC7, WEC2013

Description: Library for the SPI interface on our iMX6 modules. Minimum BSP version 1.1beta4 is required.

WCL-746New FeatureCAN Library: Add Support for the MCP2515 on Colibri VF50 and Colibri VF61Colibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: Implement MCP2515 support in the CAN library for Colibri VF50 / VF61.

WCL-718New FeatureImplement WatchdogLib for iMX6Apalis iMX6, Colibri iMX6WatchdogCE6, WEC7, WEC2013

Description: Implement the Watchdog Library using the Hardware Watchdog feature of the iMX6 modules.

WCL-717New FeatureImplement WatchdogLib for VybridColibri VF50, Colibri VF61WatchdogCE6, WEC7, WEC2013

Description: Implement the Watchdog Library using the Hardware Watchdog feature of the Vybrid modules.

WCL-713FixedPwmLib for iMX6: Wrong mappingApalis iMX6, Colibri iMX6PWMWEC7, WEC2013

Description: The current default mapping "PWM Port Number" -> Colibri PWM Pin is incompatible. We will change this to the compatible assignment "PWM1"->PWM_A, ..., "PWM4"->PWM_D

Workaround: Use SetConfigInt() to assign the correct GPIO to your "PWMx" port.

WCL-712FixedCanLib: Functions Are Not Exported in TdxAllLibrariesDll.dllColibri iMX6, Colibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: CAN functions are not available in the DLL version of the libraries (TdxAllLibrariesDll.dll)

Workaround: None - this will be fixed in library release V1.8.

V1.7 (Release date: 2016-05-19)
- Added CAN library for VFxx and iMX6 internal CAN controller
- Bug fixes in GpioLib and UpdateLib
WCL-770FixedGpioLib for iMX6: Inconsistent Order Between ConfigParam enum and Matching String ArrayApalis iMX6, Colibri iMX6GPIOCE6, WEC7, WEC2013

Description: GpioLib "speed" parameter configures wrong speed on i.MX6

WCL-766New FeatureCANLib for i.MX6Apalis iMX6CANWEC7, WEC2013

Description: Implement CAN library for Colibri and Apalis i.MX6, supporting the i.MX6 internal CAN controller

WCL-758New FeatureCAN Library for Colibri VF50 and Colibri VF61Colibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: Implement CAN library for Colibri VF50 / VF61, supporting the VF50/VF60 internal CAN controller

WCL-728New FeatureGpioLib: SetConfigString() Fails Silently On Invalid String Parameter.Colibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61GPIOCE6, WEC7, WEC2013

Description: SetConfigString() may fail silently on an invalid string parameter, and behave like a random valid string value was passed.

Workaround: none - manually verify that you are not using unsupported configuration strings.

WCL-719New FeatureMemMemLib: Map_AllocPhysMem() Throws an Exception on VF50Colibri iMX7, Colibri iMX6, Colibri VF50, Colibri VF61WinCE FeatureCE6, WEC7, WEC2013

Description: Map_AllocPhysMem() Throws an Exception

Workaround: Update the WinCE OS Image to at least the following version: - VFxx: V1.3beta4 - iMX6: V1.0

WCL-715New FeatureGpioLib on iMX6: Cannot Configure SODIMM 67 to GPIOColibri iMX6GPIOCE6, WEC7, WEC2013

Description: On Colibri iMX6: Gpio_ConfigureAsGpio() properly configures both related GPIOs for SODIMM 59, 67, 93 and 99.

WCL-709FixedUpdatelib Fails to Write OS Images on i.MX6Apalis iMX6, Colibri iMX6BootloaderWEC7, WEC2013

Description: Sometimes the library does not write images correctly. Fix requires V1.1 version of the bootloader (not yet released on 2016-05-18)

WCL-691FixedFix Implementation of VirtualSetAttributesCompat in MapMemLibApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61WinCE FeatureCE6, WEC7, WEC2013

Description: Map_VirtualSetAttributes() does not work.

Workaround: Update the WinCE OS Image to at least the following version: - VFxx: V1.3beta4 - iMX6: V1.0

V1.6 (Release date: 2016-03-04)
- Initial implementation of i.MX6 libraries
- Various bug fixes
WCL-788New FeatureClocklib for iMX6Apalis iMX6, Colibri iMX6CPUWEC7, WEC2013

Description: Implement a basic clock library for the i.MX6 to control simple clocking features. No advanced features are implemented though.

WCL-786New FeatureMissing .NET Wrapper for SetPwm() FunctionColibri VF50, Colibri VF61PWMCE6, WEC7, WEC2013

Description: SetPwm() Function is missing in the .NET wrapper file TdxAllLibraries.cs.

Workaround: The source file TdxAllLibraries.cs is part of the library package. Therefore usesrs can add this function themselves.

WCL-763New FeatureADCLib for i.MX6Apalis iMX6, Colibri iMX6Analog InputsWEC7, WEC2013

Description: Extend the AdcLib to support the Colibri and Apalis iMX6 modules.

WCL-762New FeaturePWMLib for i.MX6Apalis iMX6, Colibri iMX6PWMWEC7, WEC2013

Description: Support PWM functionality

WCL-725New FeatureI2C pins for I2C4 and I2C3 are not configured correctly inside the I2C libraryColibri iMX6I2CWEC7, WEC2013

Description: Default pins (those configured by the driver) are non defined correctly for I2C3 (physical I2C1) on Colibri. Pins for I2C are exchanged (SDA and SCL).

WCL-724FixediMX6 Colibri SODIMM 59 and 67 GPIO mapping are wrong.Colibri iMX6GPIO, PWMWEC7, WEC2013

Description: SODIMM 59 and 67 are wrongly mapped to GPIO 48 and 49 respectively. Correct is GPIO 41 and 1 respectively. These two pins can be used as PWM signals.

WCL-722New FeatureiMX6 I2C2 pins are referred wrong configuration in the I2C libraryApalis iMX6, Colibri iMX6I2CWEC7, WEC2013

Description: Colibri and Apalis iMX6: I2C2 default pins refer to wrong configuration.

WCL-721FixedGpio_GetConfigString not behaving correctly when NULL is passed as parameter nameColibri iMX7, Apalis iMX6, Colibri VF50, Colibri VF61GPIOCE6, WEC7, WEC2013

Description: The documentation states that passing NULL as paramName2 parameter when calling Gpio_GetConfigString will return a string containing all the parameters. This is currently not happening and the function crashes if the parameter is NULL.

WCL-701FixedI2cLib on iMX6: "Timeout" Configuration Parameter Not SupportedApalis iMX6, Colibri iMX6I2CCE6, WEC7, WEC2013

Description: Timeout parameter was incorrectly documented as supported on i.MX6. It's not supported and, at the moment, is not possible to set a timeout for I2C operations on i.MX6.

WCL-700FixedI2cLib on iMX6: I2c_Write() Always Returns 0Apalis iMX6, Colibri iMX6I2CCE6, WEC7, WEC2013

Description: I2C_Read and I2C_Write on i.MX6 returned -1 for an error or 0 in case of success, this has been fixed and now they return the number of bytes read/written as documented.

WCL-683Fixed.NET Wrappers For xxx_GetConfigInt() Functions Throw ExceptionsApalis iMX6, Colibri VF50, Colibri VF61Toradex FeatureCE6, WEC7, WEC2013

Description: .NET Wrappers For xxx_GetConfigInt() Functions Throw Exceptions

Workaround: Use the .NET wrappers of the library package V1.6 or later.

WCL-682Fixed.NET Wrappers for Gpio_Normalize() and VybGpio_Normalize() Are WrongApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61GPIOCE6, WEC7, WEC2013

Description: When calling Gpio_Normalize() or VybGpio_Normalize() from a .NET application, an exception is thrown.

Workaround: Use the .NET wrapper of the library package V1.6 or later.

WCL-679New FeatureUpdateLib for i.MX6Apalis iMX6Bootloader, ConfigBlock, FlashCE6, WEC7, WEC2013

Description: Implement Update Library for Colibri and Apalis iMX6 modules.

WCL-677New FeatureRead operation does not work on i.MX6 when register size is 0Apalis iMX6, Colibri iMX6I2CWEC7, WEC2013

Description: When an application configures the "RegAddrSize" to 0 and tries to read data from I2C the libraries incorrectly generate a write request instead.

Workaround: For devices that can ignore a write request setting address size to 1 and doing a read can work.

WCL-674FixedSpiLib: Exception and Possible Freeze when calling VybSpi_Open() for SPI1..3Colibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: VybSpi_Open() throws an exception and can cause a system freeze.

Workaround: Ask Toradex support for a preliminary library release which has this problem fixed.

V1.5 (Release date: 2015-09-25)
- Fixes for several libraries in WEC2013 Debug configuration
- General fix for GPIO registry configuration
WCL-698FixedAdcLib: Exception Thrown When Intializing AdcLibColibri VF50, Colibri VF61Analog InputsWEC2013

Description: Adc_Init() generates an exception when run on a VFxx module under WEC2013. The same code is working well under CE6 and WEC7.

Workaround: Ask Toradex support for a preliminary version of the libraries including a fix for this issue.

WCL-697FixedPwmLib: Exception Thrown When Intializing PwmLibColibri VF50, Colibri VF61PWMWEC2013

Description: Pwm_Init() generates an exception when run on a VFxx module under WEC2013. The same code is working well under CE6 and WEC7.

Workaround: Ask Toradex support for a preliminary version of the libraries including a fix for this issue.

WCL-690FixedGpioLib: Gpio_Open() Fails, if a Registry Path is Given, But no IO Entries are PresentApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61GPIOCE6, WEC7, WEC2013

Description: GpioLib: Gpio_Open() Fails, if a Registry Path is given, But no IO Entries are Present.

Workaround: Add at least one IO Gpio configuration to the registry.

WCL-688FixedWrong Pin / GPIO Assignment for Apalis iMX6Apalis iMX6GPIOCE6, WEC7, WEC2013

Description: For Apalis iMX6 V1.1 and later the following pin definitions are wrong in the GpioLib V1.4 (interchanged pairs): 112;118, 126;132, 134;136, 138;140

Workaround: This issue will be fixed in the V1.5 library release. Please contact support if you need a solution earlier.

WCL-684FixedSpiLib: Exception Thrown When Intializing SpiLibColibri VF50, Colibri VF61SPIWEC2013

Description: Spi_Init() generates an exception when run on a VFxx module under WEC2013. The same code is working well under CE6 and WEC7.

Workaround: Ask Toradex support for a preliminary version of the libraries including a fix for this issue.

V1.4 (Release date: 2015-08-14)
- Use normalized naming convention for adc ports
- Support multiple SPI chip select signals
- Added support for i.MX6 in Coproc, MapMem and Gpio libraries
WCL-789New FeatureSpiLib: Change the API Definition for Spi_Read() and Spi_Write()Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: The API for Spi_Read(), Spi_Write() and Spi_ReadWrite() has slightly changed: The type for the data buffers is now void* (it used to be DWORD*). No change is required for the user application.

WCL-785New FeatureCoprocLib: Extend Cop_GetSoc() to Differentiate Between iMX6 and TegraApalis iMX6, Colibri iMX6, Colibri T20, Colibri T30, Apalis T30CPUCE6, WEC7, WEC2013

Description: Implement support for the i.MX6

WCL-776New FeatureGPIO library for i.MX6Apalis iMX6, Colibri iMX6GPIOWEC7, WEC2013

Description: Add support for GPIO configuration and state change also for i.MX6

WCL-775New FeatureMapMemLib for i.MX6Apalis iMX6, Colibri iMX6KernelWEC7, WEC2013

Description: Extend MapMem library to support the i.MX6

WCL-774New FeatureCoProcLib for i.MX6Apalis iMX6, Colibri iMX6KernelWEC7, WEC2013

Description: Extend Coproc library to support the i.MX6

WCL-773New Featurei2cLib: Change the API Definition for I2c_Read() and I2c_Write()Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61I2CCE6, WEC7, WEC2013

Description: The API for I2c_Read() and I2c_Write() has slightly changed: The type for the data buffer is now void* (it used to be DWORD*). No change is required for the user application.

WCL-769FixedGpioLib: Callback Function Uses Wrong Parameter ListColibri iMX6, Colibri VF50, Colibri VF61GPIOCE6, WEC7, WEC2013

Description: The GPIO library does not properly handling the configuration parameters "pull=up" and "pull=down".

Workaround: Use the more specific settings like "pull=up22k"

WCL-768FixedSPI on Vybrid Supports Only a Single ChipselectColibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: The API supports only "ioCs" as parameter and this prevents configuration of different chipselects.

Workaround: No workaround is available

WCL-730New FeatureChanged Indexing of ADC DriverColibri VF50, Colibri VF61Analog InputsCE6, WEC7, WEC2013

Description: We changed driver indexing to match all other Toradex devices. Some users may need to fix their applications. Example: ADC0 is now changed to ADC1, and ADC1 is changed to ADC2

V1.3 (Release date: 2015-06-12)
- Improve SPI features
- Use new naming convention for the SDK
- Use normalized naming convention for i2c ports
WCL-784FixedGpioLib: The VybGpio_NormalizeIo Function() Does Not Take a HANDLE ParameterColibri VF50, Colibri VF61GPIOCE6, WEC7, WEC2013

Description: A parameter (HANDLE hGpio) was added to the functions Gpio_NormalizeIo() and VybGpio_NormalizeIo(). The source code in the user application needs to be adjusted for this change!

Workaround: none

WCL-782FixedI2C Library: Demo Application Shows Wrong Usage of Configuration ParametersColibri VF50, Colibri VF61I2CCE6, WEC7, WEC2013

Description: The I2c_Demo.c in the library package V1.2 shows a wrong usage of configuration parameters.

Workaround: Use the demo in the library package V1.3. Also refer to the updated documentation on restrictions for the i2c configuration parameters.

WCL-781FixedI2C Library: Make Driver Name Identical to Port NameColibri VF50, Colibri VF61I2CCE6, WEC7, WEC2013

Description: The Driver Name used inside the library was changed from "I2C0...I2C3" to "I2C1...I2C4". In the Vybrid OS Images V1.1betaX and older, an i2c driver for the default pins is loaded as "I2C0", which is used by the RtcSync Tool. The library now uses "I2C1" to access the default pins. This leads to potential collisions between RtcSync (using "I2C0") and a user application (using "I2C1").

Workaround: Will be fixed in OS Image V1.1 (not yet in V1.1beta2)

WCL-779New FeatureChange SDK to New Naming ConventionColibri VF50, Colibri VF61Toradex FeatureCE6, WEC7, WEC2013

Description: Change the SDK Names to the new Toradex Naming Convention: "Colibri600 (ARMV4I)" to "Toradex_CE600 (ARMV4I)", and "Toradex800 (ARMV7)" to "Toradex_CE800 (ARMV7)". This is relevant for the demo applications, and for the folder name, where the binary libraries are stored. This only affects the library demos. Visual Studio will refuse to open the project, if none of the two SDKs is installed.

Workaround: Install the new SDKs (Recommended!), or revert the project settings to the old naming convention. This can be done using the following steps: 1. Open all .vcproj and .sln files of the demo applications in a text editor. 2. do a simple text search&replace "Toradex_CE600 (ARMV4I)" to "Colibri600 (ARMV4I)" and "Toradex_CE800 (ARMV7)" to "Toradex800 (ARMV7)". 3. Rename the folders under \libs\lib\ and \libs\dll\ in the same way.

WCL-777New FeatureSpiLib: Support 4-16bits Word WidthColibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: Support SPI word widths of 4..16 bits on Colibri VF50 and Colibri VF61. Currently only 8 and 16 bits are supported.

V1.2 (Release date: 2015-05-05)
- Added i2c library
- Fixed some bugs
- Currently the Colibri VF50 and VF61 are supported
WCL-759FixedFix Wrong Return Value in Case Of ErrorColibri VF50, Colibri VF61I2CCE6, WEC7, WEC2013

Description: I2c_Read() and I2c_Write() are returning 0 instead of -1 in case of an error.

WCL-757New FeatureI2C Library for Colibri VF50 and Colibri VF61Colibri VF50, Colibri VF61I2CCE6, WEC7, WEC2013

Description: Implement I2C library for Colibri VF50 / VF61

WCL-742FixedRemove printf() statements From LibrariesColibri VF50, Colibri VF61Toradex FeatureCE6, WEC7, WEC2013

Description: Remove printf error messages. Output errors to the debug port instead.

WCL-741New Feature.NET Wrapper for Toradex CE LibrariesColibri VF50, Colibri VF61WinCE FeatureCE6, WEC7, WEC2013

Description: Create a .NET wrapper class to access the Toradex libraries. The current implementation is a preliminary, untested version.

WCL-740FixedIRQ to GPIO Translation Issue On Old Vybrid ImagesColibri VF50, Colibri VF61GPIOCE6, WEC7, WEC2013

Description: GPIO to IRQ translation does not work on Vybrid images V1.1beta1 and later.

Workaround: Use Library package V1.2 or later, and Vybrid Windows CE image V1.1beta1 or later.

WCL-735FixedGpioLib: A call to CSPDDK.DLL function GPIOSetAF() returns FALSE for Gpio 5 (PTA12).Colibri VF50, Colibri VF61GPIOCE6, WEC7, WEC2013

Description: On Colibri VFxx modules V1.0x, SODIMM pin 102 was mapped to GPIO 93. On Colibri VFxx modules V1.1x and later, pin 102 is mapped to GPIO 5. The library requires an update to properly access pin 102 on new modules. The fix requires a Windows CE image V1.1beta2 or newer.

Workaround: Use the GPIO number 5 instead of the SODIMM number 102 to access the pin.

WCL-734FixedI2cLib: CreateFile() for I2C Controller Instance 1, 2, and 3 (of 0..4) failsColibri VF50, Colibri VF61I2CCE6, WEC7, WEC2013

Description: The i2c library only works for the i2c0 controller, but fails for i2c1 to i2c3.

Workaround: Currently none

V1.1 (Release date: 2015-03-26)
- Added ADC Library
Fixed some bugs
- Currently the Colibri VF50 and VF61 are supported
WCL-756New FeatureADC Library for Colibri VF50 and Colibri VF61Colibri VF50, Colibri VF61Analog InputsCE6, WEC7, WEC2013

Description: Implement ADC library for Colibri VF50 / VF61

WCL-744FixedPWM Lib Demo Error When Loading the Solution in VSColibri VF50, Colibri VF61PWMCE6, WEC7, WEC2013

Description: Pwm_Demo shows an error when the solution is loaded into Visual Studio.

Workaround: Remove pwmLib project from the solution.

WCL-737FixedSpiLib: Pin DirectionColibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: The SPI library does not always configure the pin direction correctly.

Workaround: Configure the pin direction using the Gpio Lib. This issue will be fixed in Library Package V1.1

V1.0 (Release date: 2015-02-13)
- Initial Release of the Toradex CE Libraries.These libraries feature a completely revised API.
- Currently the Colibri VF50 and VF61 are supported.
WCL-888New FeatureGPIO Library for Colibri VF50 and Colibri VF61Colibri VF50, Colibri VF61GPIOCE6, WEC7, WEC2013

Description: Initial implementation of the Gpio library for Colibri VF50 and Colibri VF61.

WCL-887New FeatureMapMem Library Using New APIApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30WinCE FeatureCE6, WEC7, WEC2013

Description: Initial implementation of the MapMem library.

WCL-886New FeatureSPI Library for Colibri VF50 and Colibri VF61Colibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: Initial implementation of the SPI library for Colibri VF50 and Colibri VF61.

WCL-885New FeatureCoproc Library Using New APIApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30WinCE FeatureCE6, WEC7, WEC2013

Description: Initial implementation of the Coproc library.

WCL-884New FeatureClock Library for Colibri VF50 and Colibri VF61Colibri VF50, Colibri VF61Miscellaneous PeripheralsCE6, WEC7, WEC2013

Description: Initial implementation of the Clock library for Colibri VF50 and Colibri VF61.

WCL-883New FeatureInterrupt Library for Colibri VF50 and Colibri VF61Colibri VF50, Colibri VF61WinCE FeatureCE6, WEC7, WEC2013

Description: Initial implementation of the Interrup library.

WCL-882New FeatureCoproc Library Using New APIApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30WinCE FeatureCE6, WEC7, WEC2013

Description: Initial implementation of the Coproc library.

WCL-881New FeaturePWM Library for Colibri VF50 and Colibri VF61Colibri VF50, Colibri VF61PWMCE6, WEC7, WEC2013

Description: Initial implementation of the PWM library for Colibri VF50 and Colibri VF61.

WCL-880New FeatureKernelCallback Library Using New APIColibri VF50, Colibri VF61WinCE FeatureCE6, WEC7

Description: Initial implementation of the KernelCallback library.

WCL-879New FeatureMapMem Library Using New APIApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30, Colibri PXA320, Colibri PXA310, Colibri PXA270, Colibri PXA300 XT, Colibri PXA300WinCE FeatureCE6, WEC7, WEC2013

Description: Initial implementation of the MapMem library.

WCL-745New FeatureMapMem Library Using New APIApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30, Colibri PXA320, Colibri PXA310, Colibri PXA270, Colibri PXA300 XT, Colibri PXA300WinCE FeatureCE6, WEC7, WEC2013

Description: Initial implementation of the MapMem library.

Not Planned
WCL-869Known IssueSpiLib for iMX6: Wrong Chip SelectApalis iMX6SPICE6, WEC7, WEC2013

Description: When using SPI2, the library uses the SPI5 chip select.

WCL-863Known IssueVF61 FlexCan: Transmit Rate Limited to 1 Message/msColibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: The CAN library is currently not able to send more than one message per millisecond

Workaround: Will be fixed in library release V1.9

WCL-861Known IssueMCP2515 CAN Lib: Receive Buffer OverflowColibri VF50, Colibri VF61CANCE6, WEC7, WEC2013

Description: Receive Buffer Overflows can occur, especially if there are short messages with short idle time on the bus.

Workaround: Configure the library for Single Thread usage. This does not completely remove the problem, but it will minimize it by optimizing the library performance.

WCL-824Feature RequestTegra: Write One wire sample or libraryColibri T20, Colibri T30, Apalis T30One-WireCE6, WEC7, WEC2013

Description: Add onewire library for Tegra.

WCL-796Known IssuePin configurations are always returned as GPIOs, even if they were setup as Colibri/Apalis PinsApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61GPIO, I2C, PWM, SPICE6, WEC7, WEC2013

Description: xxx_GetConfigInt() may return gpios/pins in a different format than they were configured by calling xxx_SetConfigInt(). This needs to be considered when doing a comparison.

Workaround: To compare two Gpios, make sure that both are in GPIO format. You can achieve this by calling Gpio_NormalizeIo().

WCL-787Feature RequestCreate ConfigBlock LibraryApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61ConfigBlockCE6, WEC7, WEC2013

Description: This library allows access to the config block which contains data such as the serial number (MAC address), hardware version info, debug serial port settings, etc. Part of this library was available in the formerly called SysInfoLib available for PXA and Tegra modules.

WCL-751Feature RequestAdd Support to Register an Owner of a GPIOApalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30, Colibri PXA320, Colibri PXA310, Colibri PXA270, Colibri PXA300 XT, Colibri PXA300GPIOCE6, WEC7, WEC2013

Description: Provide functions to store a short string for each GPIO identifiying the owner library/driver/application. The owner could be read back and for example be shown in the GpioConfig tool.

WCL-704Known IssueADC pins on Vybrid cannot be used as GPIOsColibri VF50, Colibri VF61GPIOWEC7, WEC2013

Description: ADC pins on Vybrid are controlled directly from the processor (on other modules they are connected to external controllers) and so they may be used as GPIOs, but the GPIO library does not support this because using them in that way can break compatibility with other modules.

Workaround: Pins can be configured by mapping the IOMUX and GPIO controllers directly from the application, but it is strongly advised to not use them as outputs because this will make carrier board not compatible with most of the other modules.

WCL-676Known IssueSpiLib: VybSpi_ReadWrite() Hangs on Invalid Input DataColibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: VybSpi_ReadWrite() hangs if transmit buffer values are out-of-range.

Workaround: Make sure that each value in the transmit buffer is not larger than what the SPI word width can represent.

WCL-675Known IssueSpiLib: VybSpi_Read() Function Hangs in Some Error CasesColibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: VybSpi_Read() function hangs in particular error cases.

Workaround: Use VybSpi_ReadWrite() instead. Provide a dummy transmit buffer to this function, containing all 0xff.

WCL-628Known IssueSpiLib on Vybrid: VybSpiReadWrite with txBuffer=0 or rxBuffer=0 Does Not Work CorrectlyColibri VF50, Colibri VF61SPICE6, WEC7, WEC2013

Description: Spi_Read() fails on Vybrid

Workaround: Use Spi_ReadWrite() instead

WCL-622Known IssueSpiLib for Imx6/7: Imx6/7Spi_Read() and Imx6/7Spi_Write() Fail For Large TransfersColibri iMX7, Apalis iMX6, Colibri iMX6SPICE6, WEC7, WEC2013

Description: Imx6Spi_Read() and Imx6Spi_Write() generate an Access Violation if numberOfFrames is larger than 256 The same applies to Imx7

Workaround: Use Imx6Spi_ReadWrite(), provide valid rxBuffer and txBuffer The same applies to Imx7

WCL-607Known IssueUpdateLib for Tegra: Saving the registry fails after updating image without splashscreenColibri T20Flash, Toradex FeatureCE6, WEC7, WEC2013

Description: When a Colibri T20 is updated in one step (through a .cfg file), and the .cfg file does not contain a splash screen, it is later not possible to save the registry.

Workaround: Include the previous splash screen in the package of update source files.

WCL-606Feature RequestUpdateLib for iMX7: Verify data after writing to flashColibri iMX7WinCE FeatureCE6, WEC7, WEC2013

Description: Verify each section after writing it to the flash

WCL-601Known Issuei2cLib for Tegra: System wide mutex is not handled properlyColibri T20I2CWEC7

Description: RtcSync and othe i2c applications are blocked between calls of I2c_Init() and I2c_Deinit().

WCL-571Known IssueCAN write error if application quits without can_deinit()Colibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30CANCE6, WEC7, WEC2013

Description: If an application is closed (or crashes) before Can_Deinit() is called, it causes errors when sending CAN messages if the application gets started again w/o reset. The data still gets sent out. This happens with the internal CAN (FlexCAN) only and not with the external CAN controller.

Workaround: Make sure you call Can_Deinit() before closing the application.

WCL-557Known Issuei2cLib for VFxx: Read with (RegisterAddrSize==0) transmits an empty write commandColibri VF50, Colibri VF61I2CCE6, WEC7, WEC2013

Description: When calling i2c_Read on a VFxx module, the device's slave address is always sent to the bus in "write" mode, even if there's no register address to transmit. This reduces performance unnecessarily, and even might be invalid for some i2c devices.

WCL-551Known IssueUpdateLib for VFxx: Backup / Restore filesystem does not work for multiple filesystem partitionsColibri VF50, Colibri VF61Toradex FeatureCE6, WEC7, WEC2013

Description: UpdateLib cannot backup / restore multiple filesystem partitions

Workaround: use file copy

WCL-535Feature RequestSupport SPI Slave Mode for all ModulesColibri iMX7, Colibri iMX6ULL, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30SPICE6, WEC7, WEC2013

Description: Support SPI Slave Mode

WCL-532Feature RequestGpioLib for iMX6 and iMX7: Make it thread-safeColibri iMX7, Colibri iMX6GPIOCE6, WEC7, WEC2013

Description: Make GpioLib for iMX6 and iMX7 thread-safe

WCL-528Feature RequestSPI DMA support for iMX6Apalis iMX6, Colibri iMX6DMA, SPICE6, WEC7, WEC2013

Description: Support DMA mode for SPI on Apalis iMX6 and Colibri iMX6

WCL-524Feature RequestRemove asserts when driver is already loaded in libraries using drivers (e.g. I2C, SPI)Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61I2CCE6, WEC7, WEC2013

Description: Remove the asserts and use DEBUGMSG

WCL-519Feature RequestSupport for external busColibri iMX6External Memory BusCE6, WEC7, WEC2013

Description: We don't plan to add special support for this.

Workaround: It's possible to map the controller using the MapMemLib and then directly access the registers.

WCL-487Known IssueImplement 0 timeout configurable option for CAN library.Colibri iMX7, Apalis iMX6, Colibri iMX6, Colibri VF50, Colibri VF61, Colibri T20, Colibri T30, Apalis T30CANCE6, WEC7, WEC2013

Description: Implement 0 timeout configurable option for CAN library.

Workaround: Use separate receive thread so a potential wait doesn't block the rest of the execution.

WCL-467Known IssueSpiLib on Vybrid: Byte Order ReversedColibri VF50, Colibri VF61SPIWEC2013

Description: When doing SPI transfers using multiple chip selects, the byte order of the data can get mixed up.

WCL-454Known IssueSpiLib for Tegra: Configuring a library port to use pins from a non-default hardware SPI instance is not possibleColibri T20, Colibri T30, Apalis T30SPICE6, WEC7, WEC2013

Description: The assignment of library port name (used in Spi_Init) to the actual hardware SPI instance is fixed and cannot be changed.

Workaround: Select the appropriate library port name matching your SPI pins, as documented in the library help file.

Backlog
WCL-668Feature RequestGpioLib: Make it Thread-Safe for iMX6 and iMX7Colibri iMX7, Apalis iMX6, Colibri iMX6GPIOWEC7, WEC2013

Description: Add Thread-Safety to the GpioLib for iMX6 and iMX7

WCL-587Known IssueRpmsgDemo comes with .bin firmware, instead of .elfColibri iMX7, Colibri VF61Miscellaneous PeripheralsCE6, WEC7, WEC2013

Description: The Rpmsg Demo in Libary V2.3 and older are shipped with a M4 firmware in .bin format instead of .elf format

Workaround: Build the .elf file from source code, or download the .elf from https://www.toradex.com/community/questions/38633/

WCL-580Known IssueSysinfoLib: Querying the BuildDate may report an old date on iMX6 modulesColibri iMX6WinCE FeatureCE6, WEC7, WEC2013

Description: Sys_GetConfigString("BuildDate") may return an outdated Build Date

Workaround: Check the file date of \Windows\initdb.ini