AM243x MCU+ SDK  08.02.00
Release Notes 08.02.00

Attention
Also refer to individual module pages for more details on each feature, unsupported features, important usage guidelines.
A53 support is applicable for AM64x only. It is NOT applicable for AM243x.
Note
The examples will show usage of SW modules and APIs on a specific CPU instance and OS combination.
Unless noted otherwise, the SW modules would work in both FreeRTOS and NORTOS environment.
Unless noted otherwise, the SW modules would work on any of the R5F's present on the SOC.
Unless noted otherwise, the SW modules would work on all supported EVMs
All SW modules will not work on M4F. M4F support for a module will be explicitly called out.

New in this Release

Feature Module
MCSPI Loopback Example with DMA mode supported MCSPI
Watchdog interrupt mode WDT
Simplified Hello World Example EXAMPLES
UART with DMA mode supported UART
RSA Encryption and Decryption SECURITY
CPSW Switch supported ENET

Device and Validation Information

SOC Supported CPUs Boards Host PC
AM243x R5F, M4F AM243x GP EVM (referred to as am243x-evm in code),
AM243x LAUNCHPAD (referred to as am243x-lp in code)
Windows 10 64b or Ubuntu 18.04 64b

Tools, Compiler and Other Open Source SW Module Information

Tools / SW module Supported CPUs Version
Code Composer Studio R5F, M4F, A53 11.0.0
SysConfig R5F, M4F, A53 1.10.0, build 2163
TI ARM CLANG R5F, M4F 1.3.0.LTS
GCC AARCH64 A53 9.2-2019.12
GCC ARM R5F 7-2017-q4-major (AM64x only)
FreeRTOS Kernel R5F, M4F, A53 10.4.3
FreeRTOS SMP Kernel A53 202110.00-SMP
Tiny USB R5F 0.10.0
LwIP R5F 2.12.2

Key Features

Experimental Features

Attention
Features listed below are early versions and should be considered as "experimental".
Users can evaluate the feature, however the feature is not fully tested at TI side.
TI would not support these feature on public e2e.
Experimental features will be enabled with limited examples and SW modules.

NONE

AM243X LAUNCHPAD not tested/not supported features

Below features are not support on AM243X LAUNCHPAD due to SOC or board constraints,

  • DDR is not supported on the AM243X 11x11 SOC used in AM243X LAUNCHPAD.
  • Motor control examples not validated, due to board limitation
  • I2C temperature sensor example not validated, due to board limitation.
  • M4F examples for UART, MCSPI and GPIO not validated, due to board limitation.

OS Kernel

OS Supported CPUs SysConfig Support Key features tested Key features not tested / NOT supported
FreeRTOS Kernel R5F, M4F, A53 NA Task, Task notification, interrupts, semaphores, mutexs, timers, event groups. ROV views in CCS IDE, Task load measurement using FreeRTOS run time statistics APIs. Only single core A53 FreeRTOS is supported. Second core is NOT used.
FreeRTOS SMP Kernel A53 NA Task, Task notification, interrupts, semaphores, mutexs, timers, event groups. ROV views in CCS IDE, Task load measurement using FreeRTOS run time statistics APIs. -
FreeRTOS POSIX R5F, M4F, A53 NA pthread, mqueue, semaphore, clock -
NO RTOS R5F, M4F, A53 NA See Driver Porting Layer (DPL) below Only single core A53 NORTOS is supported. Second core is NOT used.

Driver Porting Layer (DPL)

Module Supported CPUs SysConfig Support OS support Key features tested Key features not tested / NOT supported
Address Translate M4F YES FreeRTOS, NORTOS Use RAT to allow M4F access to peripheral address space -
Cache R5F, A53 YES FreeRTOS, NORTOS Cache write back, invalidate, enable/disable -
Clock R5F, M4F, A53 YES FreeRTOS, NORTOS Tick timer at user specified resolution, timeouts and delays -
CycleCounter R5F, M4F, A53 NA FreeRTOS, NORTOS Measure CPU cycles using CPU specific internal counters -
Debug R5F, M4F, A53 YES FreeRTOS, NORTOS Logging and assert to any combo of: UART, CCS, shared memory -
Heap R5F, M4F, A53 NA FreeRTOS, NORTOS Create arbitrary heaps in user defined memory segments -
Hwi R5F, M4F, A53 YES FreeRTOS, NORTOS Interrupt register, enable/disable/restore -
MPU R5F, M4F YES FreeRTOS, NORTOS Setup MPU and control access to address space -
MMU A53 YES NORTOS Setup MMU and control access to address space -
Semaphore R5F, M4F, A53 NA FreeRTOS, NORTOS Binary, Counting Semaphore, recursive mutexs with timeout -
Task R5F, M4F, A53 NA FreeRTOS Create, delete tasks -
Timer R5F, M4F, A53 YES FreeRTOS, NORTOS Configure arbitrary timers -
Event R5F, M4F YES FreeRTOS Setting, getting, clearing, and waiting of Event bits -

Secondary Bootloader (SBL)

Module Supported CPUs SysConfig Support OS support Key features tested Key features not tested / NOT supported
Bootloader R5FSS0-0 YES NORTOS Boot modes: OSPI, OSPI XIP, UART, SD. All R5F's, M4F, A53 NORTOS/FreeRTOS/Linux boot. RPRC, multi-core image format, DDR init SBL OSPI XIP for A53

SOC Device Drivers

Peripheral Supported CPUs SysConfig Support Key features tested Key features not tested / NOT supported
ADC R5F YES Single conversion (one-shot mode), interrupt mode, DMA mode Continuous conversion not tested
CRC R5F YES CRC in full CPU mode -
DDR R5F YES Tested LPDDR4 at 400MHz frequency. -
ECAP R5F YES Frequency, Duty cycle, interrupt mode PWM mode not tested
EPWM R5F YES Different Frequency, Duty cycle, interrupt mode, Deadband and chopper module Tripzone module not tested
EQEP R5F YES Signal Frequency and Direction, interrupt mode -
FSI (RX/TX) R5F YES RX, TX, polling, interrupt mode, single/dual lanes -
GPIO R5F, M4F, A53 YES Basic input/output, GPIO as interrupt GPIO as interrupt is not tested for A53.
GTC R5F, A53 NA Enable GTC, setting FID (Frequency indicator) -
I2C R5F, M4F, A53 YES Master mode, basic read/write, polling and interrupt mode Slave mode not supported. M4F not tested due to EVM limitation
IPC Notify R5F, M4F, A53 YES Low latency IPC between RTOS/NORTOS CPUs -
IPC Rpmsg R5F, M4F, A53 YES RPMessage protocol based IPC for all R5F, M4F, A53 running NORTOS/FreeRTOS/Linux -
MCAN R5F YES RX, TX, interrupt and polling mode -
MCSPI R5F, M4F YES Master/Slave mode, basic read/write, polling, interrupt and DMA mode -
MDIO R5F NA Register read/write, link status and link interrupt enable API -
MMCSD R5F YES Raw read/write and file I/O on MMCSD0 eMMC, and MMCSD1 SD. eMMC tested till HS SDR mode (8-bit data, 52 MHz), SD tested till SD HS mode (4-bit, 25 MHz) Interrupt mode not tested
OSPI R5F YES Read direct, Write indirect, Read/Write commands, DMA for read, PHY Mode Interrupt mode not supported
Pinmux R5F, M4F, A53 YES Tested with multiple peripheral pinmuxes -
PRUICSS R5F YES Tested with Ethercat, EtherNet/IP, IO-Link, ICSS-EMAC, HDSL, EnDat -
SOC R5F, M4F, A53 YES lock/unlock MMRs, get CPU clock, CPU name, clock enable, set frequency -
Sciclient R5F, M4F, A53 YES Tested with clock setup, module on/off -
SPINLOCK R5F, M4F, A53 NA Lock, unlock HW spinlocks -
UART R5F, M4F, A53 YES Basic read/write, polling, interrupt mode, HW flow control not tested. DMA mode not supported
UDMA R5F, A53 YES Basic memory copy, SW trigger, Chaining -
WDT R5F, A53 YES Interrupt after watchdog expiry Reset not supported

Board Device Drivers

Peripheral Supported CPUs SysConfig Support Key features tested Key features not tested
EEPROM R5F YES I2C based EEPROM -
ETHPHY R5F YES Ethernet Phy configuration for EtherCAT Slave example -
Flash R5F YES XSPI, OSPI, QSPI based flash, Octal, Quad mode, DDR mode All vendor flash types not tested
LED R5F, A53 YES GPIO , I2C IO expander based LED control, I2C based industrial LEDs(TPIC2810) -

File System

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
FreeRTOS+FAT R5F YES NORTOS File read, write, create. FAT partition and mounting File I/O with FreeRTOS

CMSIS

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
CMSIS DSP R5F NA FreeRTOS, NORTOS Basic math, complex math, controller, fast math, filtering, Matrix, statistics, transform -

Industrial Communications Toolkit

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
EtherCAT Slave FWHAL R5F NO FreeRTOS Tested with ethercat_slave_beckhoff_ssc_demo example Reset isolation
EtherCAT Slave Evaluation Stack R5F NO FreeRTOS Tested with examples from examples\industrial_comms\ethercat_slave_demo folder -
EtherNet/IP Adapter FWHAL R5F NO FreeRTOS Tested with examples from examples\industrial_comms\ethernetip_adapter_demo folder Multicast Filtering
EtherNet/IP Adapter Evaluation Stack R5F NO FreeRTOS Tested with examples from examples\industrial_comms\ethernetip_adapter_demo folder -
IO-Link Master Evaluation Stack R5F NO FreeRTOS Tested with iolink_master_demo example -
Profinet Device FWHAL R5F NO FreeRTOS Tested with examples from examples\industrial_comms\profinet_device_demo folder MRP
Profinet Device Evaluation Stack R5F NO FreeRTOS Tested with examples from examples\industrial_comms\profinet_device_demo folder -

Motor Control

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
Position Sense HDSL R5F YES FreeRTOS, NORTOS Freerun mode, Sync mode -
Position Sense EnDAT R5F YES FreeRTOS, NORTOS Single channel, Multi channel, Continuous mode -

Networking

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
LwIP R5F NO FreeRTOS TCP/UDP IP networking stack, DHCP, ping, TCP iperf, TCP/UDP IP Other LwIP features, performance and memory optimizations pending, more robustness tests pending
Ethernet driver (ENET) R5F NO FreeRTOS Ethernet as port using CPSW and ICSS Ethernet as switch
ICSS-EMAC R5F YES FreeRTOS Tested switch mode with ethernetip_adapter_mii and ethernetip_adapter_rgmii examples EMAC mode, VLAN/Multicast Filtering
ICSS TimeSync R5F NO FreeRTOS Tested with examples from examples\industrial_comms\ethernetip_adapter_demo folder -

USB

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
USB SoC Porting Layer R5F YES FreeRTOS, NORTOS USB 2.0 device mode USB 3.0
USB Device Driver R5F NO FreeRTOS, NORTOS USB 2.0 device mode USB Host driver
TinyUSB Core and CDC Driver R5F NO FreeRTOS, NORTOS USB device with CDC class USB Host, other USB device class drivers

SECURITY

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
SA2UL Crypto R5F YES NORTOS AES CBC-128 encryption and decryption, AES CBC-256 encryption and decryption, AES ECB-128 encryption and decryption, AES ECB-256 encryption and decryption, SHA 512 single shot and multi-shot, SHA 256 single shot and multi-shot, HMAC SHA-256, HMAC SHA-512, HMAC SHA-1, AES CMAC-128, AES CMAC-256, Random number generator, RSA 4K and 2K bit Key -

Demos

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
Benchmark demo 4xR5F's YES NORTOS CFFT, FIR and FOC benchmarks ADC/PWM benchmark

Fixed Issues

ID Head Line Module Applicable Releases Applicable Devices Resolution/Comments
MCUSDK-2301 Correct main task name from frertos_main to freertos_main FREERTOS EXAMPLES 7.3.0 onwards AM64x, AM243x Fixed
MCUSDK-2347 Enet: PORT_MODE_SEL in CTRLMMR_ENET1_CTRL can't be changed ENET 8.1.0 onwards AM64x, AM243x Incorrect offset for kick0 and kick1 registers.

Known Issues

ID Head Line Module Applicable Releases Applicable Devices Workaround
MCUSDK-626 DMA not working with ADC FIFO 1 ADC 7.3.0 onwards AM64x, AM243x Use ADC FIFO 0
MCUSDK-1016 Semaphore does not function as expected when "post" call is present in multiple ISRs at different priorities DPL 7.3.0 onwards AM64x, AM243x Interrupt nesting should be disabled. SDK disables interrupt nesting by default.
MCUSDK-1908 Enet - Disabling Resource Manager via ENET_CFG_RM_PRESENT flag causes failure for LWIP example ENET 8.0.0 onwards AM64x, AM243x -
MCUSDK-2113 [Docs] Sysfw RM/PM documentation doesn't specify AM243x Docs 8.0.0 onwards AM243x -
MCUSDK-2131 EtherCAT Slave increments long frame errors for frames with size less than 2000 bytes EtherCAT Slave FWHAL 7.3.0 onwards AM64x, AM243x -
MCUSDK-2135 Insufficient UDMA TX channels allocated for in Dual-mac mode Enet 8.1.0 onwards AM64x, AM243x Allocate minimum of 2 TX channels(ENET_CFG_TX_CHANNELS_NUM macro) in enet_cfg.h file
MCUSDK-2319 2 PRU(ICSS) driver instances are added while changing Enet ICSSG instance to ICSSG0 in SysConfig SYSCFG 8.1.0 onwards AM64x, AM243x Please remove the extra one manually
MCUSDK-2340 [UDMA] Spurious interrupt is generated during channel disable UDMA 7.3.0 onwards AM64x, AM243x -
MCUSDK-2344 MCU+ SDK: Removing mmcsd driver in sysconfig file leads to linker error MMCSD 8.1.0 onwards AM64x, AM243x Include mmcsd in sysconfig
MCUSDK-2419 MCSPI TX Only mode is not functional in DMA mode MCSPI, UDMA 8.2.0 onwards AM64x, AM243x Use TX/RX mode and ignore RX.

Limitations

ID Head Line Module Reported in Release Applicable Devices Workaround
MCUSDK-208 gmake with -j can sometimes lock up Windows command prompt Build 7.3.0 AM64x, AM243x Use bash for windows as part of git for windows or don't use -j option
MCUSDK-2261 CCS Target Configuration from SDK examples does not work CCS 8.1.0 AM64x, AM243x Recommend to use Target Configuration mentioned in Create Target Configuration

Upgrade and Compatibility Information

Attention
When migrating from Processor SDK RTOS, see Migration Guides for more details

This section lists changes which could affect user applications developed using older SDK versions. Read this carefully to see if you need to do any changes in your existing application when migrating to this SDK version relative to previous SDK version. Also refer to older SDK version release notes to see changes in earlier SDKs.

Compiler Options

Module Affected API Change Additional Remarks
Release Build - Updated optimization level in release build to 'Os' as part of bug fix MCUSDK-1980. The release build with ti-arm-clang compiler has been updated from 'O3' to 'Os' optimization level. It is recommended that user rebuilds the existing libraries and applications with 'Os' option. This can be done by updating CFLAGS_release in library/example makefiles.

Examples

Module Affected API Change Additional Remarks
DPL - Renamed hello world example, examples/kernel/dpl/hello_world to examples/kernel/dpl/dpl_demo This example was testing more DPL features rather than simple "hello world"
UART - Added new parameter 'Operational Mode' in UART SYSCFG as part of bug fix MCUSDK-1898. Also removed partial mode configuration in UART ECHO SYSCFG and updated example to receive 8 characters and then echoing back the same.
Industrial Communications Toolkit - EtherCAT, EtherNet/IP and IO-Link examples are moved from ${SDK_INSTALL_PATH}/examples/industrial_protocols to ${SDK_INSTALL_PATH}/examples/industrial_comms -
Industrial Communications Toolkit - Profinet Device RT examples are moved from ${SDK_INSTALL_PATH}/examples/industrial_comms/profinet_device_rt_demo to ${SDK_INSTALL_PATH}/examples/profinet_device_demo -

OS Kernel

Module Affected API Change Additional Remarks
Timer TimerP_Params Added new parameter TimerP_Params::periodInNsec to allow to specify timer period in units of nsecs No change needed in existing applications if TimerP_Params_init is being used to init TimerP_Params

SOC Device Drivers

Module Affected API Change Additional Remarks
MCSPI SYSCFG - Removed dataSize(Data Frame Size) parameter from MCSPI Channel Configuration in SYSCFG. Any examples using "MCSPI" module in SysConfig will be affected. Any .syscfg file using this module, needs to be updated by first removing and then adding this module back using SysConfig GUI.
MCSPI - Added dataSize and csDisable are added in MCSPI_Transaction structure. User need to set these parameters before doing MCSPI transaction.
PRUICSS - Files for PRUICSS are moved from ${SDK_INSTALL_PATH}/source/drivers/pruicss/v0 to ${SDK_INSTALL_PATH}/source/drivers/pruicss/g_v0 -
PRUICSS PRUICSS_setIcssCfgMiiMode and PRUICSS_setIcssCfgTxFifo These APIs were renamed. Old names were PRUICSS_setIcssgCfgMiiMode and PRUICSS_setIcssgCfgTxFifo. -
UART - Removed intrEnable and added transferMode as a parameter in UART_Params structure as part of DMA support.

Industrial Communications Toolkit

Module Affected API Change Additional Remarks
EtherCAT Slave FWHAL and stack, EtherNet/IP Adapter FWHAL and stack, IO-Link stack and Profinet Device FWHAL - Sources are moved from ${SDK_INSTALL_PATH}/source/industrial_protocols to ${SDK_INSTALL_PATH}/source/industrial_comms -
SysConfig - Removed the module "Ethernet (ICSS)" and added "EtherNet/IP" and "Profinet" modules in SysConfig. Also removed inclusion of pins which are either not connected appropriately on the board or not required. Any examples using "Ethernet (ICSS)" module in SysConfig will be affected. Any .syscfg file using this module, needs to be updated by removing lines related to "Ethernet (ICSS)" module using text editor and adding "EtherNet/IP" or "Profinet" module using SysConfig GUI.
SysConfig - In "EtherCAT" module, removed inclusion of pins which are either not connected appropriately on the board or not required. Any examples using "EtherCAT" module in SysConfig will be affected. Any .syscfg file using this module, needs to be updated by first removing and then adding this module back using SysConfig GUI.
EtherNet/IP Adapter FWHAL EIP_drvInit Added pruicssHandle in EIP_Handle structure pruicssHandle should be set by user before calling EIP_drvInit API.
Profinet Device FWHAL PN_initDrv Added latchIntConfig in PN_IntConfig structure latchIntConfig should be set by user before calling PN_initDrv API, if ENABLE_LATCH_SUPPORT macro is enabled in ${SDK_INSTALL_PATH}/industrial_comms/profinet_device/icss_fwhal/IRT/pnDrvConfig.h or ${SDK_INSTALL_PATH}/industrial_comms/profinet_device/icss_fwhal/RT_MRP/pnDrvConfig.h.
ICSS TimeSync TimeSync_reset Added ptpDrvStackReset in TimeSync_Config_t structure ptpDrvStackReset callback function should be provided by the user if a PTP stack reset callback is needed inside TimeSync_reset.