2. Release Specific

2.1. Release Notes

2.1.1. Overview

The Processor Software Development Kit (Processor-SDK) provides the core foundation and building blocks that facilitate application software development on TI’s embedded processors. This Release Notes focuses on the Real-time operating system (RTOS).


2.1.2. Licensing

Please refer to the software manifest, which outlines the licensing status for all packages included in this release. The manifest can be found on the SDK download page or in the installed directory as indicated below.


2.1.3. Documentation

  • Getting Started Guide: Provides information on getting the software and running basic examples/demonstrations bundled in the SDK.
  • Migration Guide Provides migration information for applications built on top of the Processor SDK for RTOS.
  • Software Developer Guide Provides information on features, functions, delivery package and, compile tools for the Processor SDK RTOS release. This also provides detailed information regarding software elements and software infrastructure to allow developers to start creating applications.
  • Software Manifest: Provides license information on software included in the SDK release. This document is in the release at /processor_sdk_rtos_<SOC>_<version>/docs and available to view from the software download page.
  • EVM Quick Start Guide: Provides information on hardware setup and running the demonstration application that is loaded on flash. This document is provided as part of the EVM kit.

2.1.4. Release 04.03.00

Released March 2018.

What’s New

New Features

  • AM335x,AM437x,AM57x,K2G
    • Support for PRUSS based I2C Slave
    • I2C Driver extension to support PRUSS I2C Firmware in addition to existing hardware IP instances
    • Additional PRUSS LLD API to control IEP clock source
    • McASP LLD support for changing channel parameters during run time
  • AM335x,AM437x
    • Display RTOS Example Support
  • AM437x,AM572x
    • RTOS Template Application extension for AM437x GP EVM
    • RTOS Template Application extension to M4 and C66x cores on AM572x GP EVM

Component Version

The following software components and host tools are bundled with the SDK installer. See the Software Developer Guide for more information on each item.

Note

This release has been tested with the following component and tool versions. It is recommended to use the versions listed here to avoid compatibility issues.
Component Version AM335x AM437x AM57x K2H/K2K K2E K2L K2G C665x C667x OMAP-L137 OMAP-L138
CG_XML 2.41.0 X X X X X X X X X X X
CTOOLSLIB 2.2.0.0     X X X X X X X    
DSPLIB 3.4.0.0     X X X X X X X X X
EDMA3 LLD 2.12.5.30 X X X X X X X X X X X
FC 3.40.2.7     X X X X X X X    
FFTLIB 3.1.0.0                 X    
IMGLIB 3.1.1.0     X X X X X X X    
IPC 3.47.0.0     X X X X X X X   X
LIBARCH 1.0.0.0                 X    
LINALG 1.2.0.0                 X    
MATHLIB 3.1.1.0     X X X X X X X X X
MPM 3.0.4.0       X X X X        
NDK 2.26.0.0 X X X X X X X X X X X
OPENCL 1.1.14.1     X                
OPENMP Per platform     X X X X X X X    
PDK 3.1.1.0 1.0.10 1.0.10 1.0.10 4.0.9 4.0.9 4.0.9 1.0.9 2.0.9 2.0.9 1.0.4 1.0.4
SYS/BIOS 6.52.0.12 X X X X X X X X X X X
UIA 2.21.2.07     X X X X X X X X X
XDAIS 7.24.0.4     X X X X X X X X X
XDCTOOLS 3.50.03.33 X X X X X X X X X X X

The following compilers are bundled with the SDK installer:

Compiler Version AM335x AM437x AM57x K2H/K2K K2E K2L K2G C665x C667x OMAP-L137 OMAP-L138
GNU ARM Embedded 6-2017-q1 A8 A9 A15 A15 A15 A15 A15        
TI ARM CGT 16.9.3     M4       A15(SBL)     ARM9 ARM9
TI C6000 CGT 8.2.2     C66x C66x C66x C66x C66x C66x C66x C74x C74x
TI PRU CGT 2.2.1 PRU PRU PRU       PRU        

The SDK uses Code Composer Studio (CCS) as the integrated development environment (IDE) for all devices and EVMs:

Component Version AM335x AM437x AM57x K2H/K2K K2E K2L K2G C665x C667x OMAP-L137 OMAP-L138
CCS 7.4.0.15 X X X X X X X X X X X

If you need to install CCS, see the CCS installation section in the Getting Started Guide for options to select for Processor-SDK.

Change log

Updated

  • TI PRU CGT 2.2.1
  • CCS 7.4.0.195
  • PDK for all platforms

2.1.5. Fixed Issues

Record ID Platform Summary
PRSDK-415 AM335x EDMA3 LLD RM code reserves first 64 parameters which are not available to user app using EDMA3_DRV_requestChan nel
PRSDK-1491 K2G, K2H, K2L, K2K ARM PLL initialization sequence for K2 SOCs needs to be updated to avoid intermittent hang issue due to glitch observed on PLL clocks
PRSDK-2196 AM57x DCAN Diag test failed on AM57x IDK Platforms
PRSDK-2941 AM335x PLL Settings need to be updated for additional optimal values
PRSDK-2819 AM335x Networking API header files are not compatible with C++
PRSDK-3142 C667x,k2h,k2e IPC listMP corruption
PRSDK-3382 AM335x,AM437x,AM57x UART: API UART_read() reads additional byte from what requested by application and drops in case FIFO has extra bytes
PRSDK-3381 AM335x Support CPSW port-2 only in NDK/NIMU transport
PRSDK-3391 K2G EDMA-LLD Sample library: Run time interrupt handling incorrect for EventCombiner APIs. Applicable for C66x/C67x cores
PRSDK-3267 K2G NIMU_ICSS_CCLinkSlave _idkAM437x_wSoCLib_ar mExampleProject hangs during build on linux
PRSDK-3236 K2E,K2L PDK: SA_BasicExample hangs on K2E, K2L platforms in nightly
PRSDK-3666 C6657x cslr_upp.h: Incorrect header file path reference in CSL module
PRSDK-3578 AM57x QSPI test case fails for higher transfer length and duplicates flash driver files
PRSDK-3557 AMIC110 PDK Rebuild Failure for LIMIT_BOARDS=iceAMIC1 10
PRSDK-3551 AM335x Incorrect interrupt definitions for UART driver instances 1,2,4,5
PRSDK-3549 K2HK MLO: Build failure for Windows Host OS
PRSDK-3320 K2HK Program EVM: No response on UART after programming NOR
PRSDK-3540 AM335x The Processor SDK RTOS installer doesn’t have UIA package
PRSDK-3520 * FATFS MMCSD: does not work to save large files
PRSDK-3464 AM57x SBL doesn`t place pinmux code and data at base of OCMC_RAM1
PRSDK-3391 AM57x,K2H/K,K2G,C667x ,C6657x EDMA-LLD Sample library: Run time interrupt handling incorrect for EventCombiner APIs. Applicable for C66x/C67x cores
PRSDK-3289 K2G Macro inconsistencies for different boards in PDK
PRSDK-3267 AM437x IDK NIMU_ICSS_CCLinkSlave _idkAM437x_wSoCLib_ar mExampleProject hangs during build on Linux host
PRSDK-3083 K2H K2HKeystone II Serdes PCIE BER diagnostic doesn’t work
PRSDK-2225 AM335x,AM437x Button Diag test failed on AM3/4 Platforms
PRSDK-2196 am571x-idk, am572x-idk, am574x-idk DCAN Diag test failed on AM57x IDK Platforms
PRSDK-1932 am335x-evm, am437x-evm SORTE firmware: Slave devices report RX_CRC packet errors during Parameterization state
PRSDK-1186 AM57x SBL fails to read MMCSD card with multiple blocks aligned to 0x200
PRSDK-3387 C6657 EMAC_evmc6657_C66Loop back_testProject.out fails on C665x platform

2.1.6. Supported Platforms

2.1.6.2. Evaluation Modules

See Processor SDK Supported Platforms page for a list of supported EVMs per platform and links to more information.

2.1.6.3. Demonstrations

See Examples and Demonstrations page for a list of demonstrations per platform and EVM.

2.1.6.4. Drivers

The following tables show RTOS driver availability per platform and EVM. A shaded box implies that the feature is not applicable for that platform/EVM.

Sitara devices

Feature Platform/SOC AM335x EVM AM437x EVM AM57x EVM
  AM335x AM437x AM57x GP ICE SK BBB GP IDK SK GP IDK
CSL X X X X X X X X X X X X
EMAC X X X X X X X X X X X X
EDMA3 X X X X       X     X  
GPIO X X X   X   X X   X X X
GPMC X X     X     X        
I2C X X X X X X X X X X X X
PRUSS-I2C f/w X X X   X       X     X
ICSS-EMAC X X X   X       X     X
McASP X X X X       X     X  
McSPI X X X   X       X     X
MMC-SD X X X X X X X X X X X X
PCIe     X                 X
PM X   X X             X  
PRUSS X X X   X       X     X
QSPI   X X           X X   X
UART X X X X X X X X X X X X
USB X X X X       X     X X
USB Device Audio X     X                
VPS     X               X X

DSP devices - K2x, C66x

Feature Platform/SOC K2 EVM C66x EVM
  K2H/K2K K2E K2L K2G C665x C667x K2H K2E K2L K2G K2G-ICE C665x C667x
CSL X X X X X X X X X X X X X
AIF2 X           X            
BCP X   X       X   X        
CPPI X X X X X X X X X X X X X
DFE     X           X        
EDMA3 X X X X X X X X X X X X X
EMAC       X X         X X X  
FFTC X   X       X   X        
GPIO X X X X X X X X X X X X X
HYPLNK X X     X X X X       X X
ICSS-EMAC       X             X    
I2C X X X X X X X X X X X X X
IQN2     X           X        
McASP       X           X      
McBSP       X X         X   X  
MMAP X X         X X          
MMC-SD       X           X X    
NWAL X X X     X X X X       X
PA X X X     X X X X       X
PCIe X X X X X X X X X X   X X
QMSS X X X X X X X X X X X X X
RM X X X X X X X X X X X X X
SA X X X X   X X X X X     X
SPI X X X X X X X X X X X X X
SRIO X       X X X         X X
TCP3D X   X   X   X   X     X  
TSIP   X       X   X         X
UART X X X X X X X X X X X X X
USB       X           X      
USB Device Audio                          

USB Device Audio

DSP devices - OMAP-L13x, C674x

Feature Platform/SOC OMAP-L137 EVM OMAP-L138 EVM
  OMAP-L137 OMAP-L138 137/6747 SK LCDK138 LCDK6748
CSL X X X X X
EDMA3 X X X X X
EMAC X X X X X
GPIO X X X X X
I2C X X X X X
McASP X X X X X
MMC-SD X X X X X
SPI X X X X X
UART X X X X X
USB X X X X X
USB Device Audio X X X X X

2.1.6.5. Other Features

The following table shows other feature availability per platform and EVM:

Sitara devices

Feature Platform/SOC AM335x EVM AM437x EVM AM57x EVM
  AM335x AM437x AM57x GP ICE SK BBB GP IDK SK GP IDK
Board Support X X X X X X X X X X X X
Boot (SBL) X X X X X X X X X X X X
Diagnostics X X X X       X     X X
FATFS X X X X X     X X   X X
NDK-NIMU(CPSW) X X X X X X X X X X X X
NDK-NIMU(ICSS) X X X   X       X     X
CC-LINK IE Field Basic(CPSW) X X X X X X X X X X X X
CC-Link IE Field Basic(ICSS) X X X   X       X     X

DSP devices - K2x, C66x

Feature Platform/SOC K2 EVM C66x EVM
  K2H/K2K K2E K2L K2G C665x C667x K2H K2E K2L K2G K2G-ICE C665x C667x
Board Support X X X X X X X X X X X X X
Boot (IBL/SBL) X X X X X X X X X X X X X
Diagnostics       X           X X    
FATFS       X           X X    
Fault Management X X X       X X X        
IPC Transport (QMSS) X X X   X X X X X     X X
IPC Transport (SRIO) X       X X X         X X
MAD-UTIL         X X           X X
Network (CPSW) X X X X X X X X X X X X X
Network (ICSS)       X           X      
CC-Link IE Field Basic(ICSS)       X           X      
Platform Library (obsolete) X X X   X X X X X     X X
PKTLIB X X X     X X X X       X
POST X X X   X X X X X     X X
SERDES Diagnostics X X X       X X X        
Trace Framework X X X       X X X        

DSP devices - OMAP-L13x, C674x

Feature Platform/SOC OMAP-L137 EVM OMAP-L138 EVM
  OMAP-L137 OMAP-L138 137/6747 SK LCDK138 LCDK6748
Board Support X X X X X
Boot (SBL) X X X X X
Diagnostics X   X    
FATFS X X X X X
Network (CPSW) X X X X X

2.1.7. Known Issues

This section contains the list of known issues at the time of making the release and any known workaround.

Record ID Platform Area Summary Workaround
PRSDK-335 AM4X High-Speed Drivers USB host MSC fails to re-enumerat e Re-enumeration support for the case of device unplugged and plugged back currently fails for the example.Workaround is to avoid disconnecting drive while running example.
PRSDK-330 AM4X High-Speed Drivers USB device MSC re-enumerat ion fails while disconnecti ng and reconnectin g on a Windows host Problem not observed with Linux USB Host.
PRSDK-1682 AM5X Diagnostics Board diagnostics LCD Touchscreen test does not work with new version of LCD TSC For LCD/Display checkout example under VPS component could be used
PRSDK-2166 AM5X High-Speed Drivers USB3.0 host problem with Sandisk Extreme USB3.0 stick Start the example without the USB plugged in. Once the example is up and waiting for USB stick, plug the USB stick in and it will enumerateproperly.
PRSDK-1975 * Board Diagnostics Timer Diagnostic example does not run on ARM Core 1 Example can run on ARM Core 0
PRSDK-3344 am572x-id,a m574x-idk Board Diagnostics Diagnostics Baremetal icssEmac_TE ST idkAM57{2/4 }x : LINK IS DOWN, pluggin loopback cable ICSS-EMAC LLD TI-RTOS example can be used for similar test.
PRSDK-642 * Processor SDK Installer RTOS: SDK components should be signed to avoid Eclipse/CCS warning when importing Ignore the Eclipse/CCS warning
PRSDK-3648 am437x-evm EMAC TCP/IP throughput improvement Use NDK no copy configuration. In addition NIMU driver update for increased number of CPPI descriptors.
PRSDK-3718 All AM57x boards Board L3/L4 interconnec t CLKSEL configurati on does not take to effect Default ROM is setting correct config. For fix modify CLKSEL fields from CM_CLKSEL_DPLL_CORE_REG to CM_CLKSEL_CORE_REG for corePllcParam->l3ClkSel and corePllcParam->l4ClkSel
PRSDK-3482 * CCS CCSV7.4: Intermitten t issue not able to connect target while using DSS script Retry for connection failure in DSS script.
PRSDK-2336 am335x-evm, am437x-evm PM PM Unit Test failure Use debug version of PM library for the test. To build from the top-level makefile in pdk.../packages folder run “make BUILD_CONFIG=debug pm”
PRSDK-3030 omap L13x SPI Interrupt mode is not functional Poll/blocking mode can be used where there is no other task contention
PRSDK-3383 am574x-idk Board Diagnostic Diagnostic lcdTouchscr een_TEST hangs on AM574x IDK None
PRSDK-3369 am574x-idk PCIE-LLD PCIE board to board ARM test examples hangs on idkAM574x platform None
PRSDK-3318 K2G 1Ghz EMAC EMAC_CpswRa teLimit_evm K2G_c66xExa mpleProject failure on 1GHz Flip Chip None
PRSDK-3856 AM335x AM437x Starterware StarterWare build from the PDK starterware folder fails on Windows OS Top-level make command can be used for building starterware on Windows
PRSDK-3859 am57xx, c665x, c667x, omapl13x, keystone2, c674x, Demo Audio benchmark starterkit demo fails to build in Windows with Rules.make environment setup

Environment variables in makefile needs to include in double quote for enabling windows build. Makefile under following directories singlePrecision_FFT, singlePrecision_FIR and singlePrecision_IIR will need update for variables: CC_INCS, CC, AR, LD Eg: CC = $(C6X_GEN_INSTALL_PATH)/bin/cl6x needs to be updated to CC = “$(C6X_GEN_INSTALL_PATH)/bin/cl6x”

Replace $(SOC) variable in the top level makefile under the folder ‘audio-benchmark-starterkit’ with $(PDK_SOC) Ex: $(MAKE) -C ./src/singlePrecision_FFT SOC=$(SOC) all to $(MAKE) -C ./src/singlePrecision_FFT SOC=$(PDK_SOC) all

2.1.8. Installation and Usage

The Getting Started Guide provides instructions on how to setup up your development environment, install the SDK and start your development.

To uninstall the SDK, remove the individual component directories from the installed path. This is safe to do even in Windows since these components do not modify the Windows registry.


2.1.9. Host Support

The recommended development host is

  • Windows: Windows 10 on 64-bit machine
  • Linux: Ubuntu 16.04 on 64-bit machine

NOTE

The Windows installer is a 32-bit binary, but is compatibility with 64-bit machine.


2.1.10. Technical Support and Product Updates

For further information or to report any problems, contact TI E2E:


2.2. Supported Platforms and Versions

Supported Host Operating Systems

The following operating systems have been validated to work with our SDK.

  • Linux SDK
Operating System Version
Ubuntu 14.04 (64-bit)
Ubuntu 16.04 (64-bit)
  • RTOS SDK
Operating System Version
Windows 7 (64-bit)
Ubuntu 16.04 (64-bit)
  • Android SDK
Operating System Version
Ubuntu 14.04 (64-bit)

Supported Platforms and EVMs

The following platforms and EVMs are supported with Processor SDK

Platform EVM Tested Version Document Processor SDK Linux Processor SDK RT Linux Processor SDK RTOS Processor SDK Android
AM57x AM572x EVM A3 Hardware User’s Guide X X X X
AM572x IDK 1.3A Hardware User’s Guide Hardware Setup with CCS X X X X
AM571x IDK 1.3A Hardware User’s Guide Hardware Setup with CCS X X X X
AM574x IDK 1.0A

Hardware User’s Guide

Hardware Setup with CCS

X X X  
AM437x AM437x EVM 1.5B Hardware User’s Guide X X X  
AM437x SK 1.1A Hardware User’s Guide X   X  
AM437x IDK 1.4A Hardware User’s Guide   X X  
AM335x AM335x EVM 1.6A Hardware User’s Guide X X X  
AM335x SK 1.2 Hardware User’s Guide X   X  
BeagleBone Black B6 Hardware User’s Guide X   X  
AM335x ICE 2.1A Hardware User’s Guide Hardware Setup with CCS   X X  
K2H/K2K 66AK2Hx EVM 4.0 Hardware User’s Guide X X X  
TCI6638K2K EVM 4.0 Hardware User’s Guide X X X  
K2E AK2Ex EVM 1.0.3.0 Hardware User’s Guide X X X  
K2L 66AK2L06 EVM 1.0.3.0 Hardware User’s Guide X X X  
K2G K2G EVM 1.3D

Hardware User’s Guide

Hardware Setup with CCS

X X X  
K2G Audio Daughtercard D Software Support     X  
K2G ICE EVM 1.0C Beta Hardware User’s Guide Hardware Setup with CCS X X X  
C665x C665x EVM 1.1-44 Hardware User’s Guide N/A N/A X  
C667x C667x EVM 3B Hardware User’s Guide N/A N/A X  
OMAPL137/C6747 OMAP-L137/C6747 Starter kit EVM J Hardware User’s Guide Hardware Setup with CCS N/A N/A X  
OMAPL138/C6748 OMAP-L138/C6748 LCDK A7A Hardware User’s Guide X N/A X  
AMIC110 AMIC110 ICE 1.1 Hardware User’s Guide Hardware Setup with CCS     X  

All platforms supporting Linux share

  • Linux Kernel 4.9
  • U-Boot 2017.01
  • Linaro GCC 6.2.1 Toolchain

For a full list of components, see the Release Notes for Processor SDK Linux, Processor SDK RTOS, and Processor SDK Android.

2.3. Migration Guide

Overview

This page covers migration information for applications built on top of the last Processor SDK for RTOS release.


Processor SDK RTOS 04.03.00

General

OSAL

Migration: No impact expected if Semaphore allocation and HwIP registration from OSAL is not invoked by application.

Additional Details: OSAL module is fine tuned for optimized number of semaphores required internally within drivers. Module provides additional API to application for additional semaphore allocation if required.Application can configure for either default internal static allocation or it can select external memory block that can be provided to create these objects. Note that this decision to go with external memory block or internal memory block need to be done during init configuration of application (near to main) just after Board_init() is called. Below sample code sets SemaphoreP/HwiP to be used from external memory block:

...

...
/* Get the Hw Attrs */
osal_ret = Osal_getHwAttrs(&hwAttrs);
if (osal_ret != osal_OK)
{
    return (false);
}
/* This API should set to use external memory block */
hwAttrs.extSemaphorePBlock.base = (uintptr_t) &semPMemBlock[0];
hwAttrs.extSemaphorePBlock.size = SEMP_BLOCK_SIZE;
hwAttrs.extHwiPBlock.size       = HWIP_BLOCK_SIZE;
hwAttrs.extHwiPBlock.base       = (uintptr_t) &hwiPMemBlock[0];
osal_ret = Osal_setHwAttrs(ctrlBitMap, &hwAttrs);

Board

Migration: Section details applicable only to applications based on DRA7xx SoCs.

Additional Details: DRA7xx board libraries have refactored pad configuration sequence by removing manual pinmux entries and replacing them with a full IODELAY reconfiguration procedure. This was done in order to simplify transition from a standalone application development in CCS to booting the whole device via SBL, ensuring that pad configuration is 100% consistent between the two application loading methods.

The IODELAY and pin control data structures are maintained in each of evmDRA72x and evmDRA75x board library source directories. These structures are also included in the SBL compilation and used in the SBL’s IODELAY reconfiguration. Therefore, changes can be made in one location but reused by both Board and SBL components just through recompilation.

Note that DRA78x does not require IODELAY reconfiguration and pinmux setup is always contained entirely in the application. Hence, there are no corresponding changes to this library.

All of this is done in a transparent manner, so there is no API change and will not affect existing applications. However, there are considerations with respect to memory placement and potential conflicts between the board library and SBL code. These restrictions have always existed but are now more clearly defined and documented. Please refer to Board Support for more details.

I2C

Migration: No migration required for existing user application.

Additional Details: PRUICSS based I2C Firmware have been introduced in this release. This new features increases the number of I2C interface available in the SOC. I2C LLD now depends on PRUSS LLD for compilation of this new feature. All of this is done in a transparent manner, so there is no API change and will not affect existing applications. However, for using the I2C FW feature refer I2C FW for additional details.


Archived