- Attention
- Also refer to individual module pages for more details on each feature, unsupported features, important usage guidelines.
- Note
- The examples will show usage of SW modules and APIs on a specific CPU instance and OS combination.
Unless explicitly noted otherwise, the SW modules would work in both FreeRTOS and no-RTOS environment.
- Attention
- MCU+SDK on A53 is provided as is for customers as a reference to implement/validate on their own SW Stack & OS. TI will not support these features on the E2E forum as these are not part of the MCU+SDK product. If these features need to be productized, TI can recommend third parties who can help.
Device and Validation Information
| SOC | Supported CPUs | EVM | Host PC |
| AM62x | M4F, R5F, A53 | SK-AM62 (referred as am62x-sk in code), SK-AM62-LP (referred as am62x-sk-lp in code), SK-AM62-SIP (referred as am62x-sip-sk in code) | Windows 10 64b or Ubuntu 22.04 64b |
Features Added in This Release
- Note
- Update of OSPI tuning algorithm on this SDK causes increase in tuning time. Refer OSPI NOR Flash Performance
- Attention
- DeepSleep low power mode (LPM) is not supported if the DM R5 is used for a general purpose application. This is because when the SoC goes to any LPM, the context of peripherals used by DM R5 will be lost. To use DM R5 for a general purpose application, disable LPM support. Refer Disabling Low Power Mode to know how to disable LPM.
| Feature | Module |
| PADCFG drive strength adjustment through SYSCFG | Pinmux |
| LBIST/PBIST initiated in SBL EMMC | SBL |
| Enable WKUP-R5F ATCM | SBL |
| Watchdog support for DM R5/WKUP-R5F | WDT |
| Save/Restore of FPU registers on context switch enabled by default on A53 | FreeRTOS |
| MMCSD drive strength as a configurable option | MMCSD |
| Add 8S-8S-8S protocol support | OSPI |
| Route SecProxy event for MCU cores | DM |
| Interrupt mode in SCIClient | SCI Client |
| Move task stack allocation to application layer | SCI Server |
| Add WFI in MCU only mode to save power | LPM |
Dependent Tools and Compiler Information
- Attention
- It is recommended to use the TIFS version provided with the release for ensuring compatibility between TIFS and device manager. Using the TIFS from different MCU+SDK release is not recomended and may cause TIFS/ DM functionality to break.
| Tools/Components | Supported CPUs | Version |
| Code Composer Studio | M4F, R5F, A53 | 20.3.1 |
| SysConfig | M4F, R5F, A53 | 1.24.2, build 4234 |
| TI ARM CLANG | M4F, R5F | 4.0.1.LTS |
| GCC AARCH64 | A53 | 9.2-2019.12 |
| FreeRTOS Kernel | M4F, R5F, A53 | 11.1.0 |
SDK Components
SYSFW / TIFS
| Version | 12.00.02 |
| Release Notes | LINK |
| User Guide | LINK |
Key Features
OS Kernel
| OS | Supported CPUs | SysConfig Support |
| FreeRTOS Kernel | M4F, R5F, A53 | NA |
| FreeRTOS POSIX | M4F, A53 | NA |
| No RTOS | M4F, R5F, A53 | NA |
Driver Porting Layer (DPL)
| Module | Supported CPUs | SysConfig Support | OS support |
| Address Translate | M4F, R5F | Yes | FreeRTOS, NORTOS |
| Cache | R5F, A53 | Yes | FreeRTOS, NORTOS |
| Clock | M4F, R5F, A53 | Yes | FreeRTOS, NORTOS |
| CycleCounter | M4F, R5F, A53 | NA | FreeRTOS, NORTOS |
| Debug | M4F, R5F, A53 | Yes | FreeRTOS, NORTOS |
| Heap | M4F, R5F, A53 | NA | FreeRTOS, NORTOS |
| Hwi | M4F, R5F, A53 | Yes | FreeRTOS, NORTOS |
| MPU | M4F, R5F, A53 | Yes | FreeRTOS, NORTOS |
| Semaphore | M4F, R5F, A53 | NA | FreeRTOS, NORTOS |
| Task | M4F, R5F, A53 | NA | FreeRTOS |
| Timer | M4F, R5F, A53 | Yes | FreeRTOS, NORTOS |
Secondary Bootloader (SBL)
| SBL Mode | Supported CPUs | SysConfig Support | PHY Support | DMA Support | OS support |
| OSPI NOR | R5F | Yes | Yes | Yes | NORTOS |
| OSPI NAND | R5F | Yes | Yes | Yes | NORTOS |
| EMMC | R5F | Yes | NA | NA | NORTOS |
| UART | R5F | Yes | NA | No | NORTOS |
Networking
| Module | Supported CPUs | SysConfig Support | OS Support | Key features tested | Key features not tested |
| TSN | A53 | 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 | A53 | 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, LwIP bridge, shared memory driver | Other LwIP features |
| Ethernet driver (ENET) | A53 | 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 |
SOC Device Drivers
- Note
- See the updated MCASP usage guidelines in MCASP for changes in MCASP driver
| Peripheral | Domain | Supported CPUs | SysConfig Support |
| DDR | Main | R5F | Yes |
| DSS | Main | A53 | Yes |
| ECAP | Main | A53 | Yes |
| EPWM | Main | M4F, A53 | Yes |
| EQEP | Main | A53 | Yes |
| GPIO | MCU | M4F, R5F | Yes |
| Main | M4F, R5F, A53 | Yes |
| GPMC | Main | R5F, A53 | Yes |
| I2C | Main | M4F, R5F, A53 | Yes |
| MCU | M4F, R5F | Yes |
| Wakeup | M4F, R5F | Yes |
| IPC | Main | M4F, R5F, A53 | Yes |
| MCAN | Main | R5F, A53 | Yes |
| MCU | M4F | Yes |
| MCASP | Main | A53 | Yes |
| MCSPI | Main | M4F, R5F, A53 | Yes |
| MCU | M4F, R5F | Yes |
| MMCSD | Main | R5F, A53 | Yes |
| OSPI | Main | R5F, A53 | Yes |
| Pinmux | Main | M4F, R5F, A53 | Yes |
| MCU | M4F, R5F | Yes |
| Wakeup | M4F, R5F | Yes |
| PMU | Wakeup | R5F | Yes |
| RTC | Main | R5F, A53 | Yes |
| SOC | NA | M4F, R5F, A53 | Yes |
| SCIClient | NA | M4F, R5F, A53 | Yes |
| Spinlock | Main | A53 | Yes |
| Wakeup | R5F | Yes |
| UART | Main | M4F, R5F, A53 | Yes |
| MCU | M4F, R5F | Yes |
| Wakeup | R5F | Yes |
| UDMA | Main | R5F, A53 | Yes |
| WDT | Main | A53 | Yes |
| Wakeup | R5F | Yes |
- Note
- Refer Accessing main and wakeup domain peripherals from MCU domain for accessing main/wakeup peripherals from MCU Domain.
Board Device Drivers
| Peripheral | Supported CPUs | SysConfig Support |
| EEPROM | A53 | Yes |
| Ethernet PHY | A53 | Yes |
| Flash | R5F, A53 | Yes |
| LED | M4F, R5F, A53 | Yes |
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 |
Fixed Issues
| ID | Head Line | Module |
| EXT_SITMPUSW-245 | MCU+ SDK LPDDR4 Driver starts DDR Training/Leveling Sequence twice | DDR |
| EXT_SITMPUSW-293 | Sciclient driver uses incorrect context for the TISCI_MSG_KEYRING_IMPORT | DM |
| EXT_SITMPUSW-309 | LPM: Spurious wake up on MCU only mode | DM |
| EXT_SITMPUSW-303 | DM does not handle NACK properly for LPM msgs and RM board config msg | DM |
| EXT_SITMPUSW-291 | Wait for Status mechanism via Sciclient API call fails during self reset | DM |
| EXT_SITMPUSW-312 | Incorrect context description of SCICLIENT_CONTEXT_DM2TIFS | DM |
| EXT_SITMPUSW-288 | LPM: Unable to enter LPM in Interrupt Mode | DM |
| EXT_SITMPUSW-251 | MCU+ SDK Example Projects using incorrect ARMv7 MPU Attributes for Peripheral Register Region | Examples |
| EXT_SITMPUSW-297 | Flash Params Not Reflected In Syscfg | FLASH |
| EXT_SITMPUSW-301 | OSPI_norFlashInit1s1s1s has an implementation of wait for 500 milliseconds instead of microseconds | Flash |
| EXT_SITMPUSW-304 | AM62x: Critical section protection not added in vPortTimerTickHandler for A53 | FreeRTOS |
| EXT_SITMPUSW-282 | Sysconfig not generating code for GPIO Trigger | GPIO |
| EXT_SITMPUSW-279 | I2C close is not working properly during error conditions | I2C |
| EXT_SITMPUSW-306 | Missing call to I2C_lld_recoverBus on polling mode | I2C |
| EXT_SITMPUSW-277 | MCASP: tx.evtCtl Used Instead of rx.evtCtl for REVTCTL Configuration | MCASP |
| EXT_SITMPUSW-276 | MCASP: intCfgTx.intrNum Used Instead of intCfgRx.intrNum in Interrupt Check | MCASP |
| EXT_SITMPUSW-114 | MMCSD_enableBootPartition implements two mutually exclusive concepts as one function | MMCSD |
| EXT_SITMPUSW-295 | Flash Close Logic Requires OSPI Handle to be reset to 1S-1S-1S | OSPI |
| EXT_SITMPUSW-280 | OSPI Indac Mode Should Check for odd bytes | OSPI |
| EXT_SITMPUSW-256 | Incorrect calculation of rowColEnd in the ext_otp_writeMmr | OTP |
| EXT_SITMPUSW-292 | Bootloader_socOpenFirewalls is called before System_init in the SBLs | SBL |
| EXT_SITMPUSW-214 | WDT: Hang due to no valid argument check in APIs | Watchdog |
| EXT_EP-13267 | SDL ESM: Wrong instance argument in SDL_ESM_loInterruptHandler causing misidentification of ESM0 interrupts | SDL-ESM |
Known Issues
| ID | Head Line | Module |
| EXT_SITMPUSW-153 | MCU+ SDK CCS Project Build Generates Invalid/Redundant Boot Image Files | Build |
| EXT_SITMPUSW-87 | Sysconfig crashing when adding large number of GPIO pins | GPIO |
| EXT_SITMPUSW-28 | Outstanding mailbox messages prevent suspend | IPC |
| EXT_SITMPUSW-222 | MMCSD field Card Type is not ordered logically in the Sysconfig | MMCSD |
| EXT_SITMPUSW-220 | SBL_SD bootloaders report incorrect boot image size | SBL |
| EXT_SITMPUSW-214 | Spinlock: Missing NULL Pointer Validation for Base Address Parameter in Spinlock APIs | Spinlock |
| EXT_SITMPUSW-324 | UART_udmaIsrTx does not handles continuous Callbacks properly | UART |
| EXT_EP-12275 | AM62x: ECC: SDL_WKUP_R5FSS0_PULSAR_UL_CPU0_ECC_AGGR and SDL_DMASS0_DMSS_AM62_ECCAGGR aggregators are failing | SDL-ECC |
| PROC_SDL-8868 | AM62x: ECC: ecc_test_app is failing | SDL-ECC |
| EXT_EP-12276 | ECC: Firewall related aggregators failures | SDL-ECC |
| EXT_EP-12278 | ECC Aggregator SMS0_SMS_HSM_ECC Aggr fails on AM62x | SDL-ECC |
| EXT_EP-12279 | CSI RX ECC aggregators are failing on AM62P/AM62X | SDL-ECC |
Limitations
| S.No | Head Line | Module |
| 1 | The ROM startup model for runtime initializations in TI ARM CLANG is not supported/tested in the SDK | NA |
| 2 | PHY mode not supported for OSPI NAND SBL on DDR mode. It is supported for SDR mode only | Bootloader |
| 3 | LPM is not supported with SBL boot flow. It is supported only with SPL boot flow. | Bootloader |
Upgrade and Compatibility Information
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.
The below table captures the list of migration document sections when migrating from one version to another. The migration for a partcluar module will be applicable, if you are migrating from older version listed to newer version listed on the table below.
Networking
| Module | Affected API | Change |
| TSN | notify_linkchange | notify_linkchange function is renamed to cb_lld_notify_linkchange, include path <tsn_combase/tilld/cb_lld_ethernet.h> in the file that uses cb_lld_notify_linkchange. |