| 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(R5F), NORTOS(R5F, A53) | Cache write back, invalidate, enable/disable | - |
| Clock | R5F, M4F, A53 | YES | FreeRTOS(R5F, M4F), NORTOS(R5F, M4F, A53) | Tick timer at user specified resolution, timeouts and delays | - |
| CycleCounter | R5F, M4F, A53 | NA | FreeRTOS(R5F, M4F), NORTOS(R5F, M4F, A53) | Measure CPU cycles using CPU specific internal counters | - |
| Debug | R5F, M4F, A53 | YES | FreeRTOS(R5F, M4F), NORTOS(R5F, M4F, A53) | Logging and assert to any combo of: UART, CCS, shared memory | - |
| Heap | R5F, M4F, A53 | NA | FreeRTOS(R5F, M4F), NORTOS(R5F, M4F, A53) | Create arbitrary heaps in user defined memory segments | - |
| Hwi | R5F, M4F, A53 | YES | FreeRTOS(R5F, M4F), NORTOS(R5F, M4F, A53) | 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(R5F, M4F), NORTOS(R5F, M4F, A53) | Binary, Counting Semaphore, recursive mutexs with timeout | - |
| Task | R5F, M4F | NA | FreeRTOS | Create, delete tasks | - |
| Timer | R5F, M4F, A53 | YES | FreeRTOS(R5F, M4F), NORTOS(R5F, M4F, A53) | Configure arbitrary timers | - |
| Event | R5F, M4F | YES | FreeRTOS | Setting, getting, clearing, and waiting of Event bits | - |
| 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. |
| 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, A53 | YES | RPMessage protocol based IPC, All R5F and Linux A53 cores / A53 NORTOS on Core 0 | M4F core not supported |
| MCAN | R5F | YES | RX, TX, interrupt and polling mode | - |
| MCSPI | R5F, M4F | YES | Master/Slave mode, basic read/write, polling, interrupt mode | DMA mode not supported |
| MDIO | R5F | NA | Register read/write, link status and link interrupt enable API | - |
| 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 | More protocols integration tests pending |
| 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 | - |
| 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 ethercat_slave_simple_demo, ethercat_slave_cia402_demo, and ethercat_slave_ctt_demo examples | - |
| EtherNet/IP Adapter FWHAL | R5F | NO | FreeRTOS | Tested with ethernetip_adapter_mii_demo and ethernetip_adapter_rgmii_demo examples | PTP, Multicast Filtering |
| EtherNet/IP Adapter Evaluation Stack | R5F | NO | FreeRTOS | Tested with ethernetip_adapter_mii_demo and ethernetip_adapter_rgmii_demo examples | - |
| IO-Link Master Evaluation Stack | R5F | NO | FreeRTOS | Tested with iolink_master_demo example | - |
| Profinet Device FWHAL | R5F | NO | FreeRTOS | Only compiled | Not tested |
| 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 | Only compiled, not tested | Not tested |
| ID | Head Line | Module | Applicable Releases | Applicable Devices | Resolution/Comments |
| MCUSDK-1622 | ClockP_start is not allowed from ISR context | DPL | 7.3.0 onwards | AM64x, AM243x | Fixed |
| MCUSDK-1629 | Timer configuration is not allowed in units of nsecs and does not allow to select different clock source | DPL / Timer | 7.3.0 onwards | AM64x, AM243x | Added a new parameter to allow set timer period in units of nsecs and updated SysConfig to allow selecting different timer clock sources |
| MCUSDK-1637 | EtherNet/IP DLR Port 1 Interrupt comes multiple times | EtherNet/IP Adapter FWHAL | 7.3.0 onwards | AM64x, AM243x | Fixed an offset calculation in PORT 1 ISR |
| MCUSDK-1646 | 16 bits accessed instead of 8 bits while checking for busy_s bit of queue in ICSS EMAC | ICSS-EMAC | 7.3.0 onwards | AM64x, AM243x | Changed HW_WR_REG16 to HW_WR_REG8 |
| MCUSDK-1651 | In EtherNet/IP DLR, Neighbour Check Requests are sent 4 times instead of 3 | EtherNet/IP Adapter FWHAL | 7.3.0 onwards | AM64x, AM243x | Fixed |
| MCUSDK-1652 | Data abort is seen in TimeSync_drvInit function of ICSS TimeSync driver | ICSS TimeSync | 7.3.0 onwards | AM64x, AM243x | Add "-mno-unaligned-access" flag for library compilation |
| MCUSDK-1598 | LWIP: UDP iperf test results in assert due to memory alloc failure | LWIP | 8.0 onwards | AM64x, AM243x | NONE |
| ID | Head Line | Module | Applicable Releases | Applicable Devices | Workaround |
| MCUSDK-750 | ICSS PRU GPIO pins are not supported by SYSCFG | SysCfg | 7.3.0 onwards | AM64x, AM243x | Perform manual pinmux |
| 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-1564 | time.h APIs do not work as expected with SBL OSPI | SBL, OSPI | 7.3.0 onwards | AM64x, AM243x | Use timestamps from HW timer |
| MCUSDK-1572 | OSPI: Flash IO and Flash DMA examples fail for AM243x-LP when built from CCS in release mode | OSPI | 7.3.0 onwards | AM64x, AM243x | Build via makefile or try the CCS build in debug mode |
| MCUSDK-1599 | LWIP: LwIP Stack diagnostics prints like assert and printf are not redirected to DebugP_log, i.e UART terminal | LWIP | 8.0 onwards | AM64x, AM243x | look at CCS console for these logs |
| MCUSDK-1623 | A53 NORTOS: Application halts when using Console logs without debug port connected | DPL | 8.1 onwards | AM64x | Use UART logs when using booting through SBL |
| MCUSDK-1620 | A53 NORTOS: A53 Interrupts doesn't work with CCS Reset and Reload | DPL | 8.1 onwards | AM64x | Power cycle the EVM before reloading application to A53 |
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.
| 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 | - |
| 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. |