AM64x MCU+ SDK  09.02.00
Release Notes 09.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
M4F drivers support only MCU domain peripheral and peripheral instance while R5/A53 supports MAIN domain peripheral and peripheral instance.
Attention
Klockwork Static Analysis report is not updated for this release

New in this Release

Feature Module
PLL Configuration sequence updated to latest recommendation SYSFW (DMSC)
Updates to support ICSSG reset isolation SYSFW (DMSC)
Updated empty example to support PRU1, RTUPRU0, RTUPRU1, TXPRU0, TXPRU1 cores PRU-IO
Default value for GPIO can be configured from sysconfig GPIO
New feature in enet driver to exchange ethernet packets between CPU cores using shared memory Ethernet and Networking
ICSSG MAC mode (dual mac) support added in TSN stack for IEEE 802.1AS (gPTP) Ethernet and Networking
New example added to demonstrate IEEE 802.1Qbv (EST) with IEEE 802.1AS (gPTP) on CPSW Ethernet and Networking
- -

Device and Validation Information

SOC Supported CPUs EVM Host PC
AM64x R5F, M4F, A53 AM64x GP EVM (referred to as am64x-evm in code) Windows 10 64b or Ubuntu 18.04 64b
AM64x SK EVM (Limited examples are added) (referred to as am64x-sk in code)

Tools, Compiler and Other Open Source SW Module Information

Tools / SW module Supported CPUs Version
Code Composer Studio R5F, M4F, A53 12.7.0
SysConfig R5F, M4F, A53 1.20.0, build 3587
TI ARM CLANG R5F, M4F 3.2.2.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.14.0
LwIP R5F STABLE-2_2_0_RELEASE
Mbed-TLS R5F mbedtls-2.13.1

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.
Feature Module
A53 NORTOS support and A53 NORTOS examples DPL, NORTOS
A53 FreeRTOS (single core) support and A53 FreeRTOS examples DPL, FreeRTOS
SBL booting A53 NORTOS Bootloader
GCC support for R5F for limited examples R5F
A53 FreeRTOS dual core in SMP mode and A53 SMP FreeRTOS examples DPL, FreeRTOS
GUI for UART Uniflash Tool (No support for EMMC flashing) Bootloader

Features not supported in release

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, mutexes, 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, mutexes, 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 -
CpuId R5F NA FreeRTOS, NORTOS Verify Core ID and Cluster ID that application is running -
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 DMA Supported Key features tested Key features not tested / NOT supported
ADC R5F YES Yes Single conversion (one-shot mode), interrupt mode, DMA mode Continuous conversion not tested
CRC R5F YES No CRC in full CPU mode -
DDR R5F YES No Tested LPDDR4 at 400MHz frequency. -
ECAP R5F YES No Frequency, Duty cycle, interrupt mode -
EPWM R5F YES No Different Frequency, Duty cycle, interrupt mode, Deadband and chopper module Tripzone module not tested
EQEP R5F YES No Signal Frequency and Direction, interrupt mode -
FSI (RX/TX) R5F YES No RX, TX, polling, interrupt mode, single/dual lanes -
GPIO R5F, M4F, A53 YES No Basic input/output, GPIO as interrupt GPIO as interrupt is not tested for A53.
GTC R5F, A53 NA No Enable GTC, setting FID (Frequency indicator) -
I2C R5F, M4F, A53 YES No Controller mode, basic read/write, polling and interrupt mode Target mode not supported. M4F not tested due to EVM limitation
IPC Notify R5F, M4F, A53 YES No Low latency IPC between RTOS/NORTOS CPUs -
IPC Rpmsg R5F, M4F, A53 YES No RPMessage protocol based IPC for all R5F, M4F, A53 running NORTOS/FreeRTOS/Linux -
MCAN R5F YES No RX, TX, interrupt and polling mode -
MCSPI R5F, M4F YES Yes Controller/Peripheral mode, basic read/write, polling, interrupt and DMA mode -
MDIO R5F NA No Register read/write, link status and link interrupt enable API -
MMCSD R5F YES 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 Yes Read direct, Write indirect, Read/Write commands, DMA for read, PHY Mode Interrupt mode not supported
PCIe R5F YES No Buffer Transfer between EP and RC modes. Legacy interrupt MSI and MSIx capability
Pinmux R5F, M4F, A53 YES No Tested with multiple peripheral pinmuxes -
PRUICSS R5F YES No Tested with Ethercat, EtherNet/IP, IO-Link, ICSS-EMAC, HDSL, EnDat -
SOC R5F, M4F, A53 YES No lock/unlock MMRs, get CPU clock, CPU name, clock enable, set frequency, SW Warm/POR Reset, Address Translation -
Sciclient R5F, M4F, A53 YES No Tested with clock setup, module on/off -
SPINLOCK R5F, M4F, A53 NA No Lock, unlock HW spinlocks -
UART R5F, M4F, A53 YES Yes Basic read/write, polling, interrupt mode, HW flow control not tested. DMA mode not supported
UDMA R5F, A53 YES Yes Basic memory copy, SW trigger, Chaining -
WDT R5F, A53 YES No Interrupt after watchdog expiry Reset not supported

Software Diagnostic Library (SDL)

SDL Module Supported CPUs SysConfig Support
ESM M4F, R5F NO
MCRC M4F, R5F NO
RTI M4F, R5F NO
DCC M4F, R5F NO
VTM M4F, R5F NO
STOG M4F, R5F NO
PBIST M4F, R5F NO
MTOG M4F NO
POK M4F, R5F NO
ECC M4F, R5F NO
LBIST M4F NO
ROM Checksum R5F NO

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 SubDevice 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 -

Networking

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
TSN R5F NO FreeRTOS gPTP IEEE 802.1 AS-2020 compliant gPTP stack, End Nodes and Bridge mode support, YANG data model configuration Multi-Clock Domain
LwIP R5F YES FreeRTOS TCP/UDP IP networking stack with and without checksum offload enabled, TCP/UDP IP networking stack with server and client functionality, basic Socket APIs, netconn APIs and raw APIs, DHCP, ping, TCP iperf, scatter-gather, DSCP priority mapping Other LwIP features
Ethernet driver (ENET) R5F YES FreeRTOS Ethernet as port using CPSW, MAC loopback and PHY loopback, Layer 2 MAC, Packet Timestamping, CPSW Switch, Policer and Classifier, MDIO Manual Mode, CBS (IEEE 802.1Qav) on CPSW, IET (IEEE 802.1Qbu) on CPSW, Strapped PHY (Early Ethernet), cut through switch on CPSW RMII mode
Mbed-TLS R5F NO FreeRTOS Tested software cryptography after porting, used mbedTLS with LwIP to implement HTTPS server Hardware offloaded cryptography

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
TinyUSB Core and DFU Driver R5F NO FreeRTOS, NORTOS USB device with DFU class USB Host, other USB device class drivers

SECURITY

Module Supported CPUs SysConfig Support OS Support Key features tested Key features not tested
SA2UL AES 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, AES CMAC-128, AES CMAC-256 -
SA2UL SHA R5F YES NORTOS SHA 512 single shot and multi-shot, SHA 256 single shot and multi-shot, HMAC SHA-256, HMAC SHA-512, HMAC SHA-1 -
SA2UL RNG R5F YES NORTOS RNG generate random number with size of 4 words(128 bit) -
SA2UL PKA R5F YES NORTOS RSA Encryption and Decryption support upto 4k bit, RSA Signing and Verification support upto 4k bit, ECDSA Signing and Verification support with P-256 and P-384 curves -

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
SYSFW-6763 TISCI_MSG_SET_DEVICE_RESETS message returns success for invalid device reset range SYSFW 07.03.00 onwards AM64x, AM243x The parameter range is validated now
SYSFW-6941 TISCI_MSG_SYS_RESET fails for negative testcase SYSFW 07.03.00 onwards AM64x, AM243x The parameter range is validated now
SYSFW-7056 Implement New PLL sequence Proposed by HW team SYSFW 07.03.00 onwards AM64x, AM243x PLL sequence in DMSC firmware updated
SYSFW-6892 TISCI Clock api returns success for invalid Clock ID SYSFW 07.03.00 onwards AM64x, AM243x TISCI message with invalid clock id now returns NAK
SYSFW-6903 REF_DEF Value must be 1 for proper PLL operations SYSFW 07.03.00 onwards AM64x, AM243x PLLs which had REF_DIV greater than 1 were updated to be 1
PROC_SDL-6445 ECC error injection test fails for VTM aggregator from R5F domain. SDL 9.2.0 onwards AM64x, AM243x Test passes now
PROC_SDL-7048 DCC: SDL_DCC_getStatus() does not return correct status of DONE and ERR pending interrupts SDL 9.2.0 onwards AM64x, AM243x Correct status of pending interrupts returned now
MCUSDK-2336 SysConfig crashes if many GPIOs are added GPIO 08.01.00 onwards AM64x, AM243x Sysconfig device data is fixed
MCUSDK-11247 Delay missing after setting FIFO CLEAR bit UART 08.06.00 onwards AM64x, AM243x Wait is added till the FIFO to become empty
MCUSDK-11942 The McSPI driver does not output CLK when it is set to RX only mode and data size is not 8 bit McSPI 09.00.00 onwards AM64x, AM243x Updated the documentation on how to set txBug and rxBuf size
MCUSDK-12173 The MCU+ SDK uses the incorrect ROM degenerate key to sign the ROM certificates for GP/HS-FS devices. This results in the ROM skipping the integrity check Build 08.06.00 onwards AM64x, AM243x Update the ROM degenerate key used
MCUSDK-12281 Bootloader profile numbers for System_init are incorrect Build 09.00.00 onwards AM64x, AM243x Removing the CycleP_counterInit() from system_init() for bootloaders
MCUSDK-12347 SysCfg for System examples generating code in single context mode Build 09.00.00 onwards AM64x, AM243x For the induvidual projects in the system projects, do not call sysconfig to generate files
MCUSDK-12594 API to enable/disable writes to tripzone EPWM 09.00.00 onwards AM64x, AM243x APIs added to write to trip zone registers
MCUSDK-12647 MCAN_txBufAddReq API does read-modify-write to TXBAR register MCAN 09.00.00 onwards AM64x, AM243x Update the API to do direct write to TXBAR register
MCUSDK-12658 McSPI LLD multiple instance build issue is resolved MCSPI 09.00.00 onwards AM64x, AM243x Fixed the sysconfig generated files for McSPI LLD
MCUSDK-12729 K3-resource partition tool is not generating the required rm-cfg.yaml and tifs-cfg.yaml K3-Resource_partition tool 09.01.00 onwards AM64x Fixed the toll to generate yaml instead of .c files
MCUSDK-12776 OTP examples are not working Linker 09.01.00 onwards AM64x Used the correct entry point in the memory configurator
MCUSDK-12823 Read cancel API flushes out the characters while cancelling the read UART 09.01.00 onwards AM64x, AM243x Remove RX fifo flush when UART_read times out
MCUSDK-13064 PHY tuning algorithm updates for robusteness OSPI 09.01.00 onwards AM64x, AM243x Update PHY tuning algorithm
MCUSDK-12526 ICSSG Firmware is not updating the Host Port statistics Ethernet 09.01.0 onwards AM64x, AM243x -
MCUSDK-11421 enet_layer2_icssg example crashing while exiting Ethernet 08.06.00 onwards AM64x, AM243x -
MCUSDK-12526 ENET ICSSG: Host port (PA) statistics is broken for ICSSG MAC mode Ethernet 09.01.00 onwards AM64x, AM243x -
MCUSDK-12597 am243x/am64x: ENET: Memory Init and De-init flow is not complete on ICSSG Ethernet 09.01.00 onwards AM64x, AM243x -
MCUSDK-12923, MCUSDK-12950 ENET: RMII pinmux settings miss some pins in syscfg GUI Ethernet 08.06.00 onwards AM64x -

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-2113 [Docs] Sysfw RM/PM documentation doesn't specify AM243x Docs 8.0.0 onwards AM243x -
MCUSDK-2715 PKA ECDSA sign verify is not working for P-521 and BrainPool P-512R1 curves SECURITY 8.2.0 onwards AM64x, AM243x -
MCUSDK-6262 [AM243X] : MMCSD read io example is not functional on eMMC if the APP_MMCSD_START_BLK is changed for MMCSD_write and MMCSD_read MMCSD 8.3.0 owards AM243x, AM64x -
MCUSDK-8842 OSPI Writes fail with multi threaded applications OSPI 8.4.0 AM64x, AM243x -
MCUSDK-8938 Last 512KB of memory is not accessible in dev boot mode flow SBL 8.4.0 AM64x, AM243x Use other boot modes
mbedTLS-advisory
MCUSDK-9082
MbedTLS - RSA exploit by kernel-privileged cache side-channel attackers Mbed-TLS 8.6.0 AM64x, AM243x, AM263X, AM273X -
MCUSDK-10691 flash sequence does not work for MX25U51245G (4-4-4 mode) Flash 8.6.0 AM64x, AM243x -
MCUSDK-10939 PCIe MSI error when connected to Linux Root Complex PCIe 8.6.0 AM64x, AM243x -
MCUSDK-11028 PCIe as End Point throwing error when changing BAR aperture PCIe 8.6.0 AM64x, AM243x -
MCUSDK-11507 ENET: CPSW MAC port is stuck forever and dropping all the Rx/Tx packets with reception of corrupts preamble. CPSW 8.2.0 onwards AM64x, AM243x Disable hostRxTimestampEn flag in CPSW CPST configuration. This does not impact the CPTS Rx or Tx Timestamp Events for PTP packets and is orthogonal feature.
MCUSDK-11652 PCIE benchmarking is not working for (variable) BUF_SIZE = 0x40 PCIe 8.6.0 onwards AM64x, AM243x -
MCUSDK-11730 A wrong counter is used for Event 2 in PMU configuration PMU 9.0.0 onwards AM64x, AM243x -
MCUSDK-12984 McSPI LLD Read and write APIs not working McSPI 9.1.0 onwards AM64x, AM243x Use MCSPI_transfer() APIs
MCUSDK-13120 Pcie_legacy_irq example is broken PCIE 9.0.0 onwards AM64x, AM243x -
MCUSDK-3626 Enet: Phy tuning is not done correctly on AM64x/AM243x and AM263x platforms Enet 8.1.0 onwards AM64x, AM243x PHY delay is not tuned but set to value based on limited testing on a small set of boards.If packet drops are still seen, we can force the phy to set to 100mbps.Make below change in application code: linkCfg->speed = ENET_SPEED_100MBIT; linkCfg->duplexity = ENET_DUPLEX_FULL;
MCUSDK-8376 LWIP web server application crashes in server stress test Enet, LWIP 8.3.0 onwards AM64x, AM243x -
MCUSDK-9739 AM64B SK loss of packet on using CPSW switch Networking 8.5.0 AM64x -
MCUSDK-10679 CPSW UDP Iperf test instability on AM243x Networking 8.6.0 AM64x, AM243x -
PINDSW-6452 ICSSG based standard Ethernet drops packets, limits TCP throughput to 600M Ethernet AM64x, AM243x 08.06.00 onwards -
MCUSDK-8376 LWIP web server application crashes in server stress test Ethernet AM64x, AM243x 09.00.00 onwards -
MCUSDK-13138 AM243x/ AM64x: ENET: gPTP in ICSSG Mac mode (dual mac) doesn't work on Mac Port 2 Ethernet AM64x, AM243x 09.01.00 onwards -
SYSFW-6432 Set device API doesn't return Error when PD is in transition state SYSFW AM64x, AM243x 07.03.00 onwards -
SYSFW-6426 Ownership of a firewall region can be transferred to an invalid host SYSFW AM64x, AM243x 07.03.00 onwards -

Errata

ID Head Line Module SDK Status
i2278 MCAN: Message Transmit order not guaranteed from dedicated Tx Buffers configured with same Message ID MCAN Open
i2279 MCAN: Specification Update for dedicated Tx Buffers and Tx Queues configured with same Message ID MCAN Open
i2310 USART: Erroneous clear/trigger of timeout interrupt UART Implemented
i2311 USART: Spurious DMA Interrupts UART Implemented
i2312 MMCSD: HS200 and SDR104 Command Timeout Window Too Small MMCSD Open
i2313 GPMC: Sub-32-bit read issue with NAND and FPGA/FIFO GPMC Implemented
i2326 PCIe: MAIN_PLLx operating in fractional mode, which is required for enabling SSC, is not compliant with PCIe Refclk jitter limits PCIe Open
i2329 MDIO interface corruption, CPSW, ICSSG Open
i2331 CPSW: Device lockup when reading CPSW registers CPSW, SBL Implemented
i2345 CPSW: Ethernet Packet corruption occurs if CPDMA fetches a packet which spans across memory banks CPSW Implemented
i2401 CPSW: Host Timestamps Cause CPSW Port to Lock up CPSW Open
i2402 CPSW: Ethernet to Host Checksum Offload does not work CPSW Open

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

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

Examples

Module Affected API Change Additional Remarks

OS Kernel

Module Affected API Change Additional Remarks

SOC Device Drivers

Module Affected API Change Additional Remarks
GPIO NA The GPIO deviceData has been modified to reduce the load from the solver working at the backend of sysconfig application. Instead of choosing the gpio peripheral GPIO0 or GPIO1 for the main domain, user can now directy choose the pins. With this change, user can add as many gpios as possible without facing any sysconfig crash. SDK changes thereby had to be adjusted accordingly. Please note that these changes are backward compatible, so the old example.syscfg will still work. However, this change will break compatibility with users who are not using the SDK but directly using pinmux. They will have to remove the gpio related configurations from their syscfg file, then open the file in syscfg and add those gpios configurations again via gui.

Networking

Module Affected API Change Additional Remarks