Release Notes 12.01.00
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.
Device and Validation Information
SOC |
Supported CPUs |
EVM |
Host PC |
|---|---|---|---|
AM62P |
MCU R5F, WKUP R5F |
SK-AM62P-LP EVM (referred to as am62px-sk in code) |
Windows 10 64b or Ubuntu 22.04 64b |
Features Added in This Release
Feature |
Module |
|---|---|
Add VDD core voltage config for HS400 OTAPDLYSEL |
MMCSD |
OSPI Example to collect and plot PHY Tuning Points |
OSPI |
SnagFactory flashing method support |
Tools |
Enhanced documentation for Enet - CPSW and EthFw. |
ENET |
Experimental Features
None
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 recommended and may cause TIFS/ DM functionality to break.
Tools/Components |
Supported CPUs |
Version |
|---|---|---|
Code Composer Studio |
MCU-R5F, WKUP-R5F |
20.3.1 |
SysConfig |
MCU-R5F, WKUP-R5F |
1.24.2, build 4234 |
TI ARM CLANG |
MCU-R5F, WKUP-R5F |
4.0.5.LTS |
GCC AARCH64 |
A53 |
9.2-2019.12 |
FreeRTOS Kernel |
MCU-R5F, WKUP-R5F |
11.1.0 |
SDK Components
SYSFW / TIFS
Item |
Link |
|---|---|
Version |
12.01.02 |
Release Notes |
|
User Guide |
Key Features
OS Kernel
OS |
Supported CPUs |
SysConfig Support |
|---|---|---|
FreeRTOS Kernel |
MCU-R5F, WKUP-R5F |
NA |
FreeRTOS POSIX |
MCU-R5F |
NA |
No RTOS |
MCU-R5F, WKUP-R5F |
NA |
Driver Porting Layer (DPL)
Module |
Supported CPUs |
SysConfig Support |
OS support |
|---|---|---|---|
Address Translate |
MCU-R5F, WKUP-R5F |
Yes |
FreeRTOS, NORTOS |
Cache |
MCU-R5F, WKUP-R5F |
Yes |
FreeRTOS, NORTOS |
Clock |
MCU-R5F, WKUP-R5F |
Yes |
FreeRTOS, NORTOS |
CycleCounter |
MCU-R5F, WKUP-R5F |
NA |
FreeRTOS, NORTOS |
Debug |
MCU-R5F, WKUP-R5F |
Yes |
FreeRTOS, NORTOS |
Heap |
MCU-R5F, WKUP-R5F |
NA |
FreeRTOS, NORTOS |
Hwi |
MCU-R5F, WKUP-R5F |
Yes |
FreeRTOS, NORTOS |
MPU |
MCU-R5F, WKUP-R5F |
Yes |
FreeRTOS, NORTOS |
Semaphore |
MCU-R5F, WKUP-R5F |
NA |
FreeRTOS, NORTOS |
Task |
MCU-R5F, WKUP-R5F |
NA |
FreeRTOS |
Timer |
MCU-R5F, WKUP-R5F |
Yes |
FreeRTOS, NORTOS |
Secondary Bootloader (SBL)
SBL Mode |
Supported CPUs |
SysConfig Support |
PHY Support |
DMA Support |
OS support |
|---|---|---|---|---|---|
OSPI NOR |
WKUP-R5F |
Yes |
Yes |
Yes |
NORTOS |
EMMC |
WKUP-R5F |
Yes |
NA |
NA |
NORTOS |
UART |
WKUP-R5F |
Yes |
NA |
No |
NORTOS |
SDL
SDL Module |
Supported CPUs |
SysConfig Support |
|---|---|---|
MCRC |
MCU-R5F |
No |
ESM |
MCU-R5F |
No |
VTM |
MCU-R5F |
No |
DCC |
MCU-R5F |
No |
ECC |
MCU-R5F |
No |
RTI |
MCU-R5F |
No |
POK |
MCU-R5F |
No |
STOG |
MCU-R5F |
No |
MTOG |
MCU-R5F |
No |
PBIST |
MCU-R5F |
No |
LBIST |
MCU-R5F |
No |
ROM_CHECKSUM |
MCU-R5F |
No |
Networking
Module |
Supported CPUs |
SysConfig Support |
OS Support |
Key features tested |
Key features not tested |
|---|---|---|---|---|---|
TSN |
WKUP-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 |
WKUP-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, LwIP bridge, shared memory driver |
Other LwIP features |
Ethernet driver (ENET) |
WKUP-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 |
SOC Device Drivers
For SOC device driver support information per CPU, refer to [BUILDSHEET].
Board Device Drivers
Peripheral |
Supported CPUs |
SysConfig Support |
|---|---|---|
EEPROM |
MCU-R5F, WKUP-R5F |
Yes |
Ethernet PHY |
WKUP-R5F |
Yes |
Flash |
WKUP-R5F |
Yes |
LED |
MCU-R5F, WKUP-R5F |
Yes |
PMIC |
MCU-R5F |
Yes |
Fixed Issues
| ID | Head Line | Module |
|---|---|---|
| EXT_SITMPUSW-337 | MCU PLUS SDK AM62P: EMMC HS400 Glitch - IP vendor recommendation | - |
| EXT_SITMPUSW-222 | MMCSD field Card Type is not ordered logically in the Sysconfig | MMCSD |
| EXT_SITMPUSW-338 | Flash writes fail if offset / address is not block aligned | OSPI |
| EXT_SITMPUSW-220 | SBL_SD bootloaders report incorrect boot image size | SBL |
| EXT_SITMPUSW-329 | Incorrect Value of UART_EFR2_TIMEOUT_BEHAVE_MASK | UART |
| EXT_EP-12277 | AM62Px: ECC: SDL_MCAN1_MCANSS_MSGMEM_WRAP_ECC_AGGR aggregator is failing | SDL-ECC |
| EXT_EP-13265 | MCU R5 ECC Aggr init fails when MCU LBIST is enabled in bootloader | SDL-LBIST |
| EXT_EP-12280 | Running MCU LBIST on SBL causes JTAG connection issues to MCU R5F | SDL-LBIST |
| EXT_EP-13576 | Need to enable the POK bandgap bit for reference voltage | SDL-POK |
Known Issues
| ID | Head Line | Module |
|---|---|---|
| EXT_SITMPUSW-153 | MCU+ SDK CCS Project Build Generates Invalid/Redundant Boot Image Files | Build |
| EXT_SITMPUSW-349 | VP_SYNC_LOST IRQ Flood in applications with higher preemptions | Display |
| EXT_SITMPUSW-354 | Udma_defaultVirtToPhyFxn does not takes the compiler dependency into account | DMA |
| EXT_SITMPUSW-348 | PRIMASK Implementation based critical sections | FreeRTOS |
| EXT_SITMPUSW-28 | Outstanding mailbox messages prevent suspend | IPC |
| EXT_SITMPUSW-259 | eMMC retuning may be attempted during the initialization sequence | MMCSD |
| EXT_SITMPUSW-135 | RTC Test application failing intermittently. | RTC |
| EXT_SITMPUSW-258 | WKUP UART0 is not working in CallBack mode | UART |
| EXT_EP-12276 | ECC: Firewall related aggregators failures | SDL-ECC |
| EXT_EP-12279 | CSI RX ECC aggregators are failing on AM62P/AM62X | SDL-ECC |
Errata
| ID | Head Line | Module | SDK Status | Remarks |
|---|---|---|---|---|
| i2310 | USART: Erroneous clear/trigger of timeout interrupt | UART | Implemented | Workaround implemented in UART_i2310WA() in the UART driver |
| i2311 | USART: Spurious DMA Interrupts | UART | Implemented | FIFO trigger levels are always set to power-of-2 values via SysConfig |
| i2189 | OSPI: Controller PHY Tuning Algorithm | OSPI | Implemented | PHY tuning algorithm implemented in OSPI driver per SPRACT2 |
| i2249 | OSPI: Internal PHY Loopback and Internal Pad Loopback clocking modes with DDR timing inoperable | OSPI | Implemented | SDK uses only unaffected clocking modes (DQS with PHY or No PHY mode) |
| i2383 | OSPI: 2-byte address is not supported in PHY DDR mode | OSPI | Application Related | Application must configure 3-byte or 4-byte addressing mode for OSPI flash |
| i2431 | BCDMA: RX Channel can lockup in certain scenarios | BCDMA | Implemented | SDK drivers set TR EOP flag (TR_FLAGS_EOP=1) and PDMA Z parameter (fifoCnt) to non-zero per workaround |
| i2436 | BCDMA: BCDMA RX_IGNORE_LONG setting in RX CHAN CFG register doesn't work | BCDMA | N/A | RX_IGNORE_LONG is not used in SDK (ignoreLongPkts defaults to FALSE); errata condition cannot be triggered |
| i2409 | USB: USB2 PHY locks up due to short suspend | USB | N/A | USB is not supported in AM62Px MCU+SDK |
| i2410 | Boot: ROM may fail to boot due to i2409 | Boot | N/A | USB is not supported in AM62Px MCU+SDK |
| i2062 | RAT: Error Interrupt Triggered Even When Error Logging Disable Is Set | RAT | N/A | SDK RAT driver does not use error interrupts or error logging |
| i2097 | DSS: Disabling a Layer Connected to Overlay May Result in Synclost During the Next Frame | DSS | Open | DSS driver does not implement the layer position workaround before disabling a layer |
| i2103 | Safety Modules: Incorrect Reporting of ECC_GRP, ECC_BIT and ECC_TYPE Information for Functional Safety Errors | Internal Diagnostic Modules | N/A | No software workaround available; detection and interrupt signaling are unaffected |
| i2137 | PSIL: Clock stop operation can result in undefined behavior | PSIL | Implemented | SDK UDMA driver provides ChDisable/ChEnable APIs for proper channel teardown before clock stop |
| i2160 | DDR: Valid VRef Range Must be Defined During LPDDR4 Command Bus Training | DDR | Implemented | SDK ships pre-generated DDR register init file with correct CALVL_VREF values from TI DDR Configuration Tool |
| i2190 | CSI: CSI_RX_IF may enter unknown state following an incomplete frame | CSI_RX | N/A | CSI_RX is not supported in AM62Px MCU+SDK |
| i2196 | IA: Potential deadlock scenarios in IA | Interrupt Aggregator | N/A | SDK does not use IA multicast block functionality; not applicable |
| i2208 | CPSW: ALE IET Express Packet Drops | CPSW | Implemented | TSN stack sets minimum IET fragment size to 128 bytes via ENET_MACPORT_IOCTL_SET_PREEMPT_MIN_FRAG_SIZE |
| i2253 | PRG: CTRL_MMR STAT registers are unreliable indicators of POK threshold failure | PRG | Implemented | POK driver clears ESM flags on initialization as per workaround |
| i2278 | MCAN: Message Transmit order not guaranteed from dedicated Tx Buffers configured with same Message ID | MCAN | Application Related | Customer must use Tx FIFO instead of dedicated Tx Buffers with same Message ID |
| i2279 | MCAN: Specification Update for dedicated Tx Buffers and Tx Queues configured with same Message ID | MCAN | N/A | Documentation erratum only; no code change required |
| i2312 | MMCSD: HS200 and SDR104 Command Timeout Window Too Small | MMCSD | N/A | No SDK command requires a timeout longer than 700ms; not applicable |
| i2401 | CPSW: Host Timestamps Cause CPSW Port to Lock up | CPSW | Open | SDK enables CPTS host Rx timestamps by default (hostRxTsEn=true); workaround requires disabling host timestamps |
| i2407 | RESET: MCU_RESETSTATz unreliable when MCU_RESETz is asserted low | RESET | N/A | Board design constraint; use Main Domain RESETSTATz instead of MCU_RESETSTATz |
| i2419 | Boot: When disabling deskew calibration, ROM does not check if deskew calibration was enabled | Boot | N/A | No workaround needed; no functional issue as ROM clears config bit regardless |
| i2423 | Boot: HS-FS ROM applies debug access restrictions to all address space covered by the efuse controller firewall | Boot | Application Related | Application must request TIFS SW to open the firewall region before accessing address space on HS-FS devices |
| i2435 | Boot: ROM timeout for eMMC boot too long | Boot | Application Related | Application must use an alternate boot mode to initially program eMMC |
| i2457 | Boot: Missing data in UART transfer causes boot failures | Boot | Open | uart_uniflash.py and uart_bootloader.py do not implement the 50ms inter-character delay workaround |
| i2458 | MMCSD: eMMC HS400 tDCD timing marginal to JEDEC spec | MMCSD | Implemented | SDK uses HS200 mode for eMMC; HS400 mode is not used, avoiding the tDCD timing issue |
| i2464 | Boot: ROM is unable to boot from SD cards with incorrect formatting | Boot | N/A | User must add -a argument to mkfs.vfat when creating SD card on Ubuntu 22.04 |
| i2482 | Boot: ROM does not provide enough clocks during SD card initialization | Boot | N/A | No workaround available; ROM issue with no functional impact observed in practice |
| i2487 | LPM: Low power modes may inadvertently corrupt DDR contents | LPM | Implemented | Workaround implemented in SDK 11.1 and later; ensures DDR retention latch is in correct state through reset scenarios |
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 | LPM is not supported with SBL boot flow. It is supported only with SPL boot flow. | Bootloader |
| 3 | The EVM is limited to only one MAC address in the EEPROM, applications requiring multiple MAC addresses should enable and configure manual MAC address entry in Sysconfig. | Networking |
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.
Module |
Migration guide |
Older version |
Newer version |
|---|---|---|---|
Bootloader |
<= 10.01.00 |
>= 11.00.00 |
|
NETWORKING |
<= 11.01.00 |
>= 11.02.00 |
|
OSPI |
<= 11.01.00 |
>= 11.02.00 |
|
SCI Server |
<= 11.02.00 |
>= 12.00.00 |
|
SBL Linker |
<= 11.02.00 |
>= 12.00.00 |
|
VTM (SDL) |
SDL_VTM_getTemp API now takes int32_t pointer instead of uint32_t |
<= 12.00.00 |
>= 12.01.00 |
DPL |
TimerP_start, TimerP_stop, TimerP_clearOverflowInt return type changed from void to int32_t |
<= 12.00.00 |
>= 12.01.00 |
DPL |
AddrTranslateP_setRegion promoted to public API; AddrTranslateP_readbackVerify added as new API |
<= 12.00.00 |
>= 12.01.00 |
UART |
|
<= 12.00.00 |
>= 12.01.00 |
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.
|