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. Processor SDK v06.03.00¶
Released Apr 2020
What’s New
New Features
- Generic Updates
- Sysbios update to 6.76.03.01
- TI ARM CGT update to 18.12.5 LTS
- AM65x
- Added Support for SR 2.0
- Added Thumb2 mode support for R5 cores
- IPC LLD sample test for R5 to A53 running Linux
- CSL: Baremetal example for ePWM, WWDT
- EMAC Driver: Update to use NAVSS256L instead of MCU NAVSS
- Added support for ICSS-EMAC,NIMU ICSS EMAC
- Descoped features
- Sercos3 softmaster demo on AM335x
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
Component | Version | AM335x | AM437x | AM57x | AM65x | K2H/K2K | K2E | K2L | K2G | C665x | C667x | OMAP-L137 | OMAP-L138 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CG_XML | 2.61.0 | X | 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.4 | 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 | ||
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.50.4 | X | X | X | X | X | X | X | X | X | |||
LIBARCH | 1.0.0.0 | X | X | ||||||||||
LINALG | 1.2.0.0 | X | X | ||||||||||
MATHLIB | 3.1.2.4 | X | X | X | X | X | X | X | X | X | |||
MPM | 3.0.4.0 | X | X | X | X | ||||||||
NDK | 3.61.1 | X | X | X | X | X | X | X | X | X | X | X | X |
NS | 2.60.1 | X | X | X | X | X | X | X | X | X | X | X | X |
OPENCL | 1.2.0.2 | X | |||||||||||
OPENMP | 2.6.3.0 | X | X | X | X | X | X | X | |||||
PDK | 1.0.17 | 1.0.17 | 1.0.17 | 1.0.7 | 4.0.16 | 4.0.16 | 4.0.16 | 1.0.16 | 2.0.16 | 2.0.16 | 1.0.11 | 1.0.11 | |
SYS/BIOS | 6.76.3.1 | X | X | X | X | X | X | X | X | X | X | X | X |
UIA | 2.30.1.2 | X | 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.55.02 | X | 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 | AM65x | K2H/K2K | K2E | K2L | K2G | C665x | C667x | OMAP-L137 | OMAP-L138 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GNU ARM Embedded | 7-2018-q2 | A8 | A9 | A15 | A15 | A15 | A15 | A15 | |||||
GNU Linaro GCC | 7.2.1 | A53 | |||||||||||
TI ARM CGT | 18.12.5 | M4 | R5 | A15(SBL) | ARM9 | ARM9 | |||||||
TI C6000 CGT | 8.3.2 | C66x | C66x | C66x | C66x | C66x | C66x | C66x | C674x | C674x | |||
TI PRU CGT | 2.3.2 | PRU | 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 | AM65x | K2H/K2K | K2E | K2L | K2G | C665x | C667x | OMAP-L137 | OMAP-L138 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CCS | 9.3.0 | X | X | X | X | X | X | X | X | X | X | X | X |
EMU Pack | Sitara Device 1.4.5 | X | X | X | X | ||||||||
Emulators |
8.3.0.0 | X | 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.
2.1.5. Fixed Issues¶
Record ID | Board/s | Component/s | Summary |
---|---|---|---|
PRSDK-7627 | am654x-evm, am654x-hsevm, am654x-idk | PRUSS-Firmware | ICSSG: firmware - support changing of speed/duplex on the fly from DUT |
PRSDK-7722 | am654x-idk | PDK | PN_Switch: EMAC LLD free_pkt_cb callback function returns invalid data |
PRSDK-5935 | am654x-evm, j721e-evm | UNIFLASH | Flashing speed for OSPI with Uniflash 5.0 is very poor (about 7KB/s) |
PRSDK-6109 | am654x-evm, am654x-hsevm, am654x-idk, j721e-evm | Boot | ROM load time of SBL increased on GP devices because SBL is not signed with ROM degeneratekey |
PRSDK-7907 | am572x-evm | Chip Support | AM572x GP EVM eth0 is not working at 10Mbps |
PRSDK-8171 | am335x-evm, beagleboneblack | PDK | UART DMA Transmission and Receiving isn’t working |
PRSDK-8343 | am654x-idk | SCIClient | Sciclient_pmDeviceReset failing on SDK 6.3 |
PRSDK-7120 | j721e-evm, k2g-evm | PDK | SPI master slave test fails in non-dma callback mode |
PRSDK-5966 | am654x-evm, am654x-hsevm, am654x-idk | Boot | PLL settings for Maxwell are not optimal |
PRSDK-5397 | am574x-idk | Chip Support | CSL ECC EMIF test hangs at “OCMC FULL ECC Mode” on ARM |
PRSDK-7292 | am335x-evm, am335x-ice, amic110-ice, beagleboneblack | Control Drivers | AM335x SPI: No DMA support for McSPI slave mode examples |
PRSDK-7898 | j721e-evm | Board Support, PDK | PSDKRA release docs indicate Uniflash support exists for J721E |
PRSDK-8136 | am654x-evm, am654x-hsevm, am654x-idk | Chip Support | AM65xx: NAVSS bit field definitions missing from CSL |
PRSDK-7518 | am572x-evm | Documentation | PRSDK docs contains incorrect info concerning AM572x GP EVM camera support |
PRSDK-8116 | am654x-evm, am654x-idk, j721e-evm | SCIClient | [SCICLIENT] Trail bytes logic overwrites response parameters |
PRSDK-7958 | am572x-idk | Control Drivers | AM57xx: C66 repeated McSPI loopback transfer crashes |
PRSDK-8092 | am654x-evm, am654x-idk | Chip Support | AM65xx: A53_0 CSL ePWM example build incorrect & run-time failure |
PRSDK-7489 | am571x-idk, am572x-idk | OSAL | AM57xx: OSAL Timer on DSP requires Board_init() with UART_STDIO_INIT |
PRSDK-8020 | am654x-evm, am654x-idk | Documentation | AM65xx:R5F Incorrect documentation concerning RTOS template app |
PRSDK-8117 | am570x-evm, am571x-idk, am572x-evm, am572x-idk, am574x-idk | Chip Support | AM5728: CSL cache API always returns error |
PRSDK-3727 | c6748-evm, c6748-lcdk | PDK | C6748 is missing from SOC description list in pdkProjectCreate |
PRSDK-8114 | c6657-evm | Networking | C6657 NIMU ping test failure for packet size greater than 1510 bytes |
2.1.6. Known Issues¶
This section contains the list of known issues at the time of making the release and any known workaround.
Record ID | Board/s | Component/s | Summary | Workaround |
---|---|---|---|---|
PRSDK-769 | Posix-SMP Demo DMIPS are wrong | Demonstrations | Multiple Platforms | |
PRSDK-5642 | USB_DevBulk_ExampleProject: Failed to load/run app | Board Support | am335x-evm | Use JTAG to load and run the example |
PRSDK-5186 | *Multiple platforms | Board Support | PDK Driver examples wrongly puts libgcc in to DDR invalidating IO delay configuration | The user application could explicitly place the libgcc.a in to OCMC RAM along with BOARD_IO_DELAY_DATA/CODE sections so that there is no DDR access while calling IO Delay functions |
PRSDK-6653 | Diagnostics tests(Haptics,Temperature,Accelerometer,ADC,Ambient light, button, mmcsd) hangs on evmAM335x/AM437x | Diagnostics | am335x-evm, am437x-evm | |
PRSDK-2336 | am335x-evm, am437x-evm | Power | AM3 & AM4 PM Examples experience I2C bus lockup when communicating with PMIC | The debug versions of the PM apps are still functional. To build them: From the top-level makefile in pdk.../packages folder run “make BUILD_PROFILE=debug pm” This will build the debug versions of the PM RTOS and measurement apps. |
PRSDK-6043 | TI-RTOS Kernel Example does not work with Resource Explorer in CCS 9.x | CCS | Multiple Platforms | |
PRSDK-8163 | output from pinmux template file for AM335x causes ADP_Stopped exception in Board_init() | Board Support | am335x-ice | Existing pinmux files available in release will need to be updated |
PRSDK-8300 | Diag(MEM,LED,MMCSD) test failures on am335x-ice | Diagnostics | am335x-ice | |
PRSDK-6184 | BIOS 6.75 newlib-nano and header incompatibility with GCCv7.3.1 toolchain in SDK | System Integration | Multiple Platforms | |
PRSDK-335 | USB host MSC fails to re-enumerate | High-Speed Drivers | am437x-evm, k2g-evm | 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-6161 | ICSS_EMAC_BasicExample fails on AM437x IDK with errors in received acyclic pkt content | Networking | am437x-idk | |
PRSDK-5936 | IO-Link master example does not work with Balluff inductive coupler | PDK | am437x-idk | |
PRSDK-4583 | PRUSS-I2C-FW: Does not support 1Mhz mode. Incorrect STOP condition generated for HS mode | PRUSS-Firmware | am437x-idk | |
PRSDK-5938 | I2C Master Slave Example: SPI TX/RX FIFO trigger level test failure (UT1) | PDK | am437x-idk, am571x-idk, am572x-idk | |
PRSDK-2892 | am571x-idk, am572x-evm, am572x-idk | PDK | Incorrect A15 MMU configurations in default config file | Set MMU attribute to not executable for device memory attrs0.noExecute = true; // Not executable |
PRSDK-5087 | ICSS_EMAC_BasicExample fails on AM57xx-IDK with Packet cyclic timestamp error | Networking | am571x-idk, am572x-idk, am574x-idk | |
PRSDK-3876 | CM_EMU_CLKSTCTRL=0x2 needed for reliable low power exit if EMU[1:0] pins are used as GPIOs | Boot | am572x-evm | |
PRSDK-5987 | UART Rx/TX trigger level test fails in SMP mode for AM572x EVM (DMA) | Control Drivers | am572x-evm | |
PRSDK-4667 | Image Processing Demo lock up on AM572x GP EVM | Demonstrations, Networking | am572x-evm | Issue seen using 1Gig router on ETH0. Replace with 100Mbps |
PRSDK-1975 | timer_DiagExample_evmAM572x_arm7.out doesn’t work on ARM1 core | Diagnostics | am572x-evm | Example can run on ARM Core 0 |
PRSDK-6958 | pm_rtos_testapp DSP/M4: shutdown test failed | Power | am572x-evm | |
PRSDK-3656 | PM: shutdown test failed on DSP core for am572x-evm | Power | am572x-evm | |
PRSDK-8170 | AM57xx: A15 QSPI flash block erase & DMA mode write issues | Control Drivers | am572x-idk | Use non-DMA (cpu based copy) instead of the DMA transfer |
PRSDK-5879 | Board: Board library needs to cover entire DDR region connected to EMIF1 | Board Support | am654x-evm | |
PRSDK-7735 | am65xx:Need to optimize time it takes to poll for packets from udma rings on R5 | am654x-idk | emac_poll_ctrl API is used to poll for rx packets, rx management responses and tx completion events. The parameters to this API are the port number, bitmap of receive packets, bitmap of management rings, and bitmap of tx completion rings to poll. The bitmaps are specified in the driver interface header file. In order to reduce the polling interval, it is recommended to call this API with only bitmap of rings that are required to be polled for an applications use call rather than polling for all the rings. Note that for release 6.3 applications and libraries for rR5F core are being compiled in thumb mode and initial testing indicates a ~20% reduction in cycle time versus release 6.1 | |
PRSDK-6382 | SBL: R5F: Core 1 boot is not working with unsigned binary with ipc images | Boot | am654x-evm | |
PRSDK-4661 | Maxwell: Board diagnostics LCD touchscreen test reports incorrect number of touch events | Diagnostics | am654x-evm, am654x-hsevm, am654x-idk | |
PRSDK-7908 | R5 Board Diagnostics Apploader crashes on AM65x (PG1 & 2) | PDK | am654x-evm, am654x-hsevm, am654x-idk | Board Diagnostics can be executed from A53 |
PRSDK-7176 | AM65x R5 diagnostic tests are hanging while running from diag framework | Board Support | am654x-evm, am654x-idk | |
PRSDK-2951 | Maxwell_M4_Diag: LCD Display Diagnostic Stress Test | Board Support, Diagnostics | am654x-evm, am654x-idk | |
PRSDK-5074 | McASP driver hangs with small buffer size | PDK | am654x-evm, j721e-evm | Use packet size 32 samples or greater |
PRSDK-5626 | OSPI Read using UDMA fails on AM65x HS devices. | Boot, DMA | am654x-hsevm | Non-DMA mode could be used for the read operation |
PRSDK-5229 | PCIe diagnostic test validates only one port on PCIe 2-lane card | Board Support | am654x-idk | |
PRSDK-5989 | USB Host MSC test hangs in SMP mode on AM65xx IDK board | Control Drivers | am654x-idk | |
PRSDK-5751 | AM65xx IDK PCIe diagnostic test failure | Diagnostics | am654x-idk | |
PRSDK-5022 | am65xx: Running emac unit test on R5 core from ddrless SBL at times does not complete execution | Networking | am654x-idk | |
PRSDK-3114 | K2G: RTOS ECC support broken on ARM core | Diagnostics | k2g-evm, k2g-hsevm, k2g-ice | |
PRSDK-2989 | MMCSD LLD fails on OMAPl137 with 1024 byte block size | High-Speed Drivers | omapl137-evm | |
PRSDK-4043 | OMAPL13x: USB Baremetal project binaries not built via top level make | High-Speed Drivers | omapl137-evm, omapl138-lcdk |
2.1.7. Supported Platforms¶
2.1.7.1. Devices¶
The following table lists all supported devices for a given installer.
Installer | Platform/SOC | Supported Devices | |
---|---|---|---|
RTOS-AM335X | AM335x | AM3351, AM3352, AM3354, AM3356, AM3357, AM3358, AM3359 | |
AMIC11x | AMIC110 | ||
RTOS-AM437X | AM437x | AM4376, AM4377, AM4378, AM4379 | |
RTOS-AM57X | AM57x | AM5706, AM5708, AM5716, AM5718, AM5726, AM5728, AM5746, AM5748 | |
RTOS-AM65X | AM65x | AM6526, AM6527, AM6528, AM6546, AM6548, DRA80xM | |
RTOS-C665X | C665x | C6652, C6654, C6655, C6657 | |
RTOS-C667X | C667x | C6671, C6672, C6674, C6678 | |
RTOS-K2E | K2E | 66AK2E02, 66AK2E05, AM5K2E02, AM5K2E04 | |
RTOS-K2G | K2G | 66AK2G02, 66AK2G12 | |
RTOS-K2HK | K2H | 66AK2H06, 66AK2H12, 66AK2H14 | |
K2K | TCI6638K2K | ||
RTOS-K2L | K2L | 66AK2L06 | |
RTOS-OMAPL137 | OMAP-L1x | OMAP-L137, C6743, C6745, C6747 | |
RTOS-OMAPL138 | OMAP-L1x | OMAP-L138, C6742, C6746, C6748 |
2.1.7.2. Evaluation Modules¶
See Processor SDK Supported Platforms page for a list of supported EVMs per platform and links to more information.
2.1.7.3. Demonstrations¶
See Examples and Demonstrations page for a list of demonstrations per platform and EVM.
2.1.7.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 | AM65x EVM | J721E EVM | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AM335x | AM437x | AM57x | AM65x | J721E | GP | ICE | SK | BBB | GP | IDK | SK | GP | IDK | GP | IDK | GP | |
CSL | X | X | X | X | X | 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 | X | X | X | X | X |
EDMA3 | X | X | X | X | X | X | |||||||||||
GPIO | X | X | X | X | X | 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 | X | X | X | X | X |
PRUSS-I2C f/w | X | X | X | X | X | X | |||||||||||
PRUSS-eSPI f/w | X | X | |||||||||||||||
ICSS-EMAC | X | X | X | X | X | X | X | ||||||||||
McASP | X | X | X | X | X | X | X | X | X | X | X | ||||||
McSPI | X | X | X | X | X | X | X | X | X | X | X | ||||||
MMC-SD | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
PCIe | X | X | X | X | |||||||||||||
PM | X | X | X | X | X | X | X | X | X | ||||||||
PRUSS | X | X | X | X | X | X | X | X | X | X | X | ||||||
QSPI | X | X | X | X | X | X | X | X | |||||||||
OSPI | X | X | X | X | X | ||||||||||||
UART | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
USB | X | X | X | X | X | X | X | X | X | X | X | X | |||||
USB Device Audio | X | X | |||||||||||||||
USB Device Bulk | X | X | X | X | X | X | X | X | X | X | X | X | |||||
VPS | X | X | X | ||||||||||||||
UDMA | X | X | X | X | X | ||||||||||||
SCICLIENT | X | X | X | X | X | ||||||||||||
SA | X | X | X | X | X | ||||||||||||
CAL | X | X | X | X | X | ||||||||||||
DSS | X | X | X | X | X | ||||||||||||
FVID2 | 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 | |
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 Bulk | X | X |
DSP devices - OMAP-L13x, C674x
Feature | Platform/SOC | OMAP-L137 EVM | OMAP-L138 EVM | ||
---|---|---|---|---|---|
OMAP-L137 | OMAP-L138 | L137/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 |
USB Device Bulk | X | X | X | X | X |
Unsupported Features
- In general driver support is available across all cores within an SOC with following exceptions
Feature | Not supported | |
---|---|---|
SOC | CPU/Core | |
McASP | AM57x | M4 |
USB | AM57x | C66x |
USB | AM57x | M4 |
USB | K2G | C66x |
McBSP | K2G | A15 |
McBSP | OMAP-L13x | ARM9 |
All Drivers | K2E/L/K | A15 |
2.1.7.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 | AM65x EVM | J721E EVM | +============================+=======+======+=====+=====+=====+===+===+===+===+===+===+===+=====+=====+=====+=====+============+ | |AM335x |AM437x|AM57x|AM65x|J721E|GP |ICE|SK |BBB|GP |IDK|SK | GP | IDK | GP | IDK | GP | +—————————-+——-+——+—–+—–+—–+—+—+—+—+—+—+—+—–+—–+—–+—–+ ———–+ | Board Support | X | X | X | X | X | 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 | X | X | X | X | X | +—————————-+——-+——+—–+—–+—–+—+—+—+—+—+—+—+—–+—–+—–+—–+ ———–+ | Diagnostics | X | X | X | X | X | X | | | | X | | | X | X | X | X | X | +—————————-+——-+——+—–+—–+—–+—+—+—+—+—+—+—+—–+—–+—–+—–+ ———–+ | FATFS | X | X | X | X | X | X | X | | | X | X | | X | X | X | X | X | +—————————-+——-+——+—–+—–+—–+—+—+—+—+—+—+—+—–+—–+—–+—–+ ———–+ | NDK-NIMU(CPSW) | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | +—————————-+——-+——+—–+—–+—–+—+—+—+—+—+—+—+—–+—–+—–+—–+ ———–+ | NDK-NIMU(ICSS) | X | X | X | X | X | | 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.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. Technical Support and Product Updates¶
For further information or to report any problems, contact: - TI E2E Processor Support for all supported platforms
2.1.10. Archived¶
- Processor-SDK RTOS 6.1.0
- Processor-SDK RTOS 6.0.0
- Processor-SDK RTOS 5.3.0
- Processor-SDK RTOS 5.2.0
- Processor-SDK RTOS 5.1.0
- Processor-SDK RTOS 5.0.0
- Processor-SDK RTOS 5.0.0 AM65x EA Release
- Processor-SDK RTOS 4.3.0
Note: Release Notes prior to 4.3 are not archived. Please see the Migration Guide for information on migration from these releases.
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 | 16.04 (64-bit)
18.04 (64-bit)
|
- RTOS SDK
Operating System | Version
|
Windows | 7 (64-bit)
|
Ubuntu | 14.04 (64-bit)
16.04 (64-bit)
|
- Android SDK
Operating System | Version
|
Ubuntu | 16.04 (64-bit)
18.04 (64-bit)
|
Supported Platforms and EVMs
The following platforms and EVMs are supported with Processor SDK.
2.3. Migration Guide¶
2.3.1. Overview¶
This page covers migration information for applications built on top of the Processor SDK RTOS.
2.3.3. Building PDK components from GIT repositories¶
Migration: Change in git repository for PDK components.
Impact Scope: Applicable for most drivers packaged in the PDK when used in development environment
Additional Details: Prior to this release, libraries/applications of drivers included in pdk (pdk_xx/packages/ti) had their own git respositories which could be cloned and used for development or picking up bugfixes which are not yet released through a processor sdk release. From this release onwards, most of the drivers in the PDK are moved to the new pdk.git repository(https://git.ti.com/cgit/processor-sdk/pdk) and its components (drivers) moved in to their respective locations inside the pdk_<soc>_<ver> of the Processor SDK installation. For example the i2c driver has been moved from https://git.ti.com/cgit/keystone-rtos/i2c-lld to https://git.ti.com/cgit/processor-sdk/pdk/tree/packages/ti/drv/i2c. Consequently, the latest updates on a PDK driver should be fetched from the new pdk.git repo (https://git.ti.com/cgit/processor-sdk/pdk) as the older repos are rendered obselete.
2.3.4. Building of libraries of individual PDK components¶
Migration: Building individual drivers’ librabries/apps of PDK from PDK’s top level makefile is not supported
Impact Scope: Applicable for PDK top level makefile
Additional Details: Prior to this release, libraries/applications of drivers included in pdk (pdk_xx/packages/ti) could be built from the top level makefile (pdk_xx/packages/makefile) using commands like “make uart_lib/uart_apps”. This is no longer supported. Instead, the libraries and applications could either be built using “make all” from the top level makefile or issuing “make libs/apps” from within the module’s directory.
2.3.4.1. Processor SDK 06.01¶
2.3.5. NIMU¶
Migration: Udma init sequence call has been moved from NIMU library to NIMU example for AM65xx
Impact Scope: Applicable for all NIMU applications using NIMU tranport library for AM65xx
Additional Details: Applications will need to implement the following function to provide UDMA drive handle which will be called by the NIMU driver at startup
Udma_DrvHandle nimu_app_get_udma_handle(void)
2.3.5.1. Processor SDK 06.00¶
2.3.5.1.1. PRUSS¶
Migration:
Calls that passed PRUICCSS_INSTANCE_MAX
as a parameter to PRUSS driver API
calls will now pass PRUICCSS_INSTANCE_THREE
instead.
Impact Scope: Applicable for all AM65xx applications using PRUSS driver for ICSSG use case.
Additional Details:
The following new enumeration, PRUICCSS_INSTANCE_THREE
, for PRU-ICSS
instance 3 has been added to PRUICSS_MaxInstances
enumeration list as
PRUICCSS_INSTANCE_MAX
is not longer valid when making PRUSS driver API
calls.
2.3.5.1.2. Board Library¶
Migration: MMU configuration is needed to enable NBO CFG registers access on A53 core.
Impact Scope:
Applicable for all AM65xx RTOS applications calling Board_init()
with
BOARD_INIT_ICSS_ETH_PHY
flag.
Additional Details:
Board library is setting NAVSS THREADMAP
register to give higher priority
for MSMC access from ICSSG which requires access to NBO CFG
registers.
2.3.6. Processor SDK 05.xx Releases¶
2.3.6.1. Processor SDK 05.03¶
2.3.6.1.1. EMAC¶
Migration-1: ICSS-G EMAC firmware binary directory location update for future extension.
Impact Scope: Applicable for all applications using EMAC driver with ICSS-G dual EMAC firmware.
Additional Details: Applications will need to update the include path to location of firmware header files for ICSSG use case:
- Prevous location:
ti/drv/emac/firmeare/icss_eth/src/dm
- New location:
ti/drv/emac/firmware/icss_dualmac/bin
Migration-2: Release introduces support for additional firmware specific configuration files. Added for future extension to support multiple firmwares using same EMAC driver.
Impact Scope: Applicable for all applications using EMAC driver with ICSS-G dual EMAC firmware.
Additional Details:
Firmware configuration has been moved to firmware specific configuration files,
emac_fw_config_dual_mac.h
and emac_fw_config_dual_mac.c
. Previously the
firmware configuration was specified in the test application. It is not expected
that applicatons will need to modify these files as the are closely tied to the
firmware.
- Previous location: firmware specific configuration was specified in the
text application (
ti/drv/emac/test/EmacLoopbackTest/test_utils_k3.c
) - New location:
ti/drv/emac/firmware/icss_dualmac/config/
Applications will need to update their makefiles to include c source file
emac_fw_config_dual_mac.c
.
At time of emac_open()
API call, applications need to udpate configuruation
parameters to pass get firmware configuration pointer :
EMAC_HwAttrs_V5 emac_cfg;
EMAC_socGetInitCfg(0, &emac_cfg);
emac_cfg.portCfg[port_num].getFwCfg = &emacGetDualMacFwConfig;
EMAC_socSetInitCfg(0, &emac_cfg);
2.3.6.1.2. CSL¶
Migration: API changes on CSL-FL of AM65xx on ecc aggregator, vim, esm modules
Impact Scope: Limited to the case if application is using the CSL-FL APIs
Additional Details: The CSL-FL for ECC aggregator, ESM and VIM are modified to return API functionality success/failures and additional arguments are added as and when needed (especially during the cases where the return was the value instead of API success/failure). Applications that use these CSL-FL calls are impacted and are needed to align to new calling conventions. If applicable application modification required to align to updated APIs, refer doxygen API documentation for API details.
2.3.6.1.3. DSP- TI CGT Compiler¶
Migration:
In DSP TI CGT compiler version 8.3.2 the rts library boot object file name is
changed from boot.obj
to boot.c.obj
.
Impact Scope: Limited only to DSP applications that explicitly uses rts library object files in linker command file.
Additional Details:
The DSP application which is using linker command file of CSL module should
change boot object name from boot.obj file to boot.c.obj
. If the user is
using cpp version of boot object file then it should be mentioned as
boot.cpp.obj
. In general it can be also be used as boot.*.obj
. This can
be referred from the following linker command file in the PDK package
<PDK>/packages/ti/csl/example/lnk_dsp.cmd
2.3.6.2. Processor SDK 05.02¶
2.3.6.2.1. SBL¶
Migration: Image integration and memory map changes.
Additional Details:
Release supports optimized boot times for booting MCU1_0 core from OSPI
flash. To reduce the size of the SBL, the system firmware image, which was
earlier embedded in the SBL, is now a separate binary. The system firmware image
can be found at <PDK>/packages/ti/drv/sciclient/soc/V0/sysfw.bin
For MMC/SD boot, if the steps followed in Windows SD Card Creation Guide or Linux SD Card
Creation Guide are
used, no additional steps are need. If the SD card is being created manually,
then the sysfw.bin
file also needs to be copied into the root directory of
the MMC SD card, along with tiboot3.bin
and app
.
For OSPI boot, the flash offsets have changed. sysfw.bin
needs to be
programmed into OSPI flash at offset 0x40000
(new for this release), along
with sbl_ospi_img_mcu1_0_release.tiimage
at offset 0x0
(no change from
previous release) and the app
at offset 0xA0000
(was 0x80000
previous release). For details please refer Programming the OSPI flash
Applications that the SBL loads must co-exist with the SBL’s memory usage.In the
application’s linker command file, care must be taken to not use the first 0x100
bytes of MCU1_0’s ATCM memory and SBL reserved memory from 0x41C00100 to
0x41C28000
. If the applications violate the SBL memory usage, then apps that
were working with the last release might not work any more, as the memory
constraints are tighter. For details, refer the SBL Memory Utilization
2.3.6.2.2. PDK¶
Migration: AM65xx PDK component dependency on sciclient module.
Impact Scope: Applications will need to link to sciclient module library. No migration impact if application is already linking the library.
Additional Details: All application using PDK components on AM65xx platform will need to link sciclient library as components internally will be using sciclient API for PLL and interrupt configuration. In this release, requirement for application will be more mandated as more components are using common infrastructure.
DMSC firmware should be loaded onto Cortex-M4 core using SBL or CCS GEL script before calling the Board Init API with ‘BOARD_INIT_PLL’ flag.
2.3.6.2.3. Board¶
Migration: New APIs for EEPROM Board ID Information
Impact Scope: Applications using Board ID info APIs on AM65xx platform. No migration impact for existing applications and boards using version 1 API.
Additional Details:
TI Board ID information format has been updated to new version on AM65xx. New
board library APIs Board_getIDInfo_v2()
and Board_writeIDInfo_v2()
are
added to support new Board ID information format. Old Board ID info APIs are
still avaialble to retain the backward build compatibility but returns error
when used on AM65xx platform.
2.3.6.2.4. FATFS¶
Migration: FATFS module in this release includes multipartition support and capability of detecting single vs multiple partitions run time.
Impact Scope: Limited to the case if user had used MS-DOS Floppy disk format for formatting the SD/eMMC memory. No impact if the SD/eMMC is formatted using the steps provided by Windows SD Card Creation Guide/ Linux SD Card Creation Guide
Additional Details: Partition entry information may be wrongly detected for the storage media formated to MS-DOS Floppy disk format. FATFS APIs fail to access the disk in this case.
Workaround: Format the storage media using the steps provided by Windows SD Card Creation Guide/ Linux SD Card Creation Guide in case this issue is observed.
2.3.6.3. Processor SDK 05.01¶
2.3.6.3.1. Build¶
Migration: Applicable for applications migrating from SOCs supporting EDMA LLD to AM65x with updated DMA infrastructure. Additional UDMA driver support is available in package to support enhanced DMA infrastrcuture for AM65x Drivers for AM65x SOC is extended to support UDMA LLD abstracting changes needed by application. Limited change will be required for application using drivers included in Processor SDK.
Additional Details:
Modifications needed at application will be limited to initialization of UDMA
driver using Udma_init() API in addition to linking UDMA driver library. Driver
Test code could be used as reference Additional migration details for all cases
are covered in /ti/drv/udma/docs
folder inside PDK package.
2.3.6.3.2. DMA¶
Migration: For all drivers using DMA mode EDMA driver is updated to UDMA driver.
Additional Details:
Application will need to initialize UDMA driver and SCIClient interface using
Udma_init()
and Sciclient_init()
API. Test code could be used as
reference.
2.3.6.3.3. Networking¶
Migration: Applicable for applications using NDK and Posix port of SysBIOS.
Additional Details: Release introduces NS (Network Services Component) as independent portable networking API abstracting different network stacks. Detailed migration details is available at NDK 2.x to 3.x Migration Guide
2.3.6.4. Processor SDK 05.00¶
2.3.6.4.1. Build¶
Migration:
TOOLS_INSTALL_PATH
macro value changed to SDK_INSTALL_PATH
. No migration
impact if tools and SDK are installed in same location.
Additional Details:
TOOLS_INSTALL_PATH
macro value is set to SDK_INSTALL_PATH
by
default. For accessing the tools from a different path, modify
TOOLS_INSTALL_PATH
in packages/ti/build/Rules.make
file or can be
overriden from the build console as shown below.
Windows
set TOOLS_INSTALL_PATH=<Path for the tools root folder>
Linux
TOOLS_INSTALL_PATH=<Path for the tools root folder>
2.3.6.4.2. Build Setup¶
Migration: There is no migration need for components used within processor SDK. Application Software outside processor SDK may require a change if there is a dependency to internal Processor SDK environment variables. See more details below.
Additional Details: Rules.make file is used instead of pdksetupenv to setup the build environment variables. Components inside processor SDK are updated to align with this change. Any applications making use of pdksetupenv from processor SDK to setup the build environment variables should include below line in the application makefile.
include $(RULES_MAKE)
2.3.7. Processor SDK 04.xx Releases¶
2.3.7.1. Processor SDK 04.03¶
2.3.7.1.1. 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);
2.3.7.1.2. 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.
2.3.7.1.3. 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.
2.3.7.2. Processor SDK 04.02¶
2.3.7.2.1. GCC Toolchain Migration to 6-2017-q1¶
Migration: Limited to TI-RTOS based application on ARM Cortex-A cores.
Additional Details: Processor SDK RTOS components includes updates to be compatible with GCC tool chain. This includes updates to SysBIOS, compiler and linker options. Following migration changes required for applications:
Compiler options: Add nano libs to Include path
- Example:
gcc-arm-none-eabi-6-2017-q1-update/arm-none-eabi/include/newlib-nano
- Example:
Linker Options: Replace fpu lib paths with hard lib and enable nano specs
- Example:
"<SYS/BIOS Root>/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/fpu"
with
"<SYS/BIOS Root>/packages/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/hard --specs=nano.specs”
- Example:
Additional References:
- PDK Project Creation Scipt:
<pdk_soc_x_x_x/packages/pdkProjectCreate.[bat/sh]>
Note: For baremetal applications, stack section needs to be aligned to 8 bytes. Updated GCC toolchain is more stringent on memory alignment requirement. Misalignment can result in unexpected run time failures.
2.3.7.2.2. EMAC Library¶
Migration: Limited to C6657, OMAPL137/C6747 and OMAPL138/C6748 SoCs.
Additional Details:
Interrupt setup and ISR functions are implemented in the driver. Interrupt
handling in applications need to be removed to use the latest driver
version. Use EMAC_socGetInitCfg()
and EMAC_socSetInitCfg()
functions to
change the default interrupt mapping in HW attributes if required.
Example:
EMAC_HwAttrs_V0 emac_hwattr; /* Local instance for HW attributes */
EMAC_OPEN_CONFIG_INFO_T open_cfg;
EMAC_socGetInitCfg(port_num, &emac_hwattr); /* Get default SOC HW attributes */
emac_hwattr.txIntrNum = <Int Num> /* Change default interrupt mapping Optional: if needed */
EMAC_socSetInitCfg(port_num, &emac_hwattr); /* Change the default HW attributes */
open_cfg.hwAttrs = &emac_hwattr; /* Assign HW attributes to configuration parameters */
emac_open(port_num, &open_cfg);
2.3.7.3. Processor SDK 04.01¶
2.3.7.3.1. Common CSL Library¶
Migration: Limited to Bare metal Application and Keystone SoCs such as K2HK/K2LE/K2G. No change required for other SoCs such as AM571x/AM572x/C6678/C6657.
Additional Details:
Default start address for the vectors modified to beginning of MSMCSRAM
(0x0C000000
) compared to previous release end of the MSMC. This matches to
both secured and non secured devices Application is required to reserve
(0x0C000000 to 0x0C000040
) size 0x40 bytes.
Bare metal Application needs to reserve this location for vectors when using CSL
startup library. There is still option for overriding default configuration by
defining vector_base
to desired start address: Example: if the vector
location desired is say 0xC0E0000
, then add below line in the application’s
linker command file:
__vector_base__= 0xC0E0000;
No change needed for application using default configuration matching CSL.
2.3.7.3.2. ICSS_EMAC Library¶
Migration: Optional. No migration required for applications using default icss_dualemac and icss_switch firmware.
The location of icss_emacFwConfig.c/.h
has moved from
ti/drv/icss_emac/firmware/<SOC_TYPE>
directory to
ti/drv/icss_emac/firmware/icss_dualemac/config/
directory. If applications
are compiled with icss_emacFwConfig.c
, please update your build/make
infrastructure.
2.3.7.4. Processor SDK 04.00¶
2.3.7.4.1. MCSDK 1.1 to Processor SDK Migration for OMAPL13x/C674x devices¶
This release includes additional support for OMAPL13x/C674x architecture/SOCs. For more information on migrating aplications from MCSDK(OMAPL13x) to Processor SDK, see this migration page.
2.3.7.4.2. ICSS_EMAC Library¶
Migration: Required. Application will need to link to firmware binaries.
ICSS EMAC driver component includes source code support for Dual-emac firmware with support for rebuilding. Firmware is no longer supported as header format *.h in order to align to PRUSS compiler.
- In order to include new binary application will need to link the PRUSS
firmware binary as demonstrated through
*project.txt
. Note: firmware binary to be linked will be dependent on the SOC as shown below
Example: AM572x have support for both version so include both version of binaries and linker *.cmd files.
${PDK_INSTALL_PATH}/ti/drv/icss_emac/firmware/icss_dualemac/bin/<SOC>/<HOSTCORE>/<REVISION>/icss_dualemac_PRU0.bin
${PDK_INSTALL_PATH}/ti/drv/icss_emac/firmware/icss_dualemac/bin/<SOC>/<HOSTCORE>/<REVISION>/icss_dualemac_PRU1.bin
- Default linker command file is available in PDK software which can be linked by application based on cores where application is running. For A8, A9, A15 cores below linker command can be linked in makefile or CCS project. Refer the ICSS-EMAC Unittest for additional details.
-Wl,-T,${PDK_INSTALL_PATH}/ti/build/pruss/lnk_a8_a9_a15_<REVISION>.cmd
- For c66 and m4 cores
-Wl,-T,${PDK_INSTALL_PATH}/ti/build/pruss/lnk_c66_m4_<REVISION>.cmd
2.3.7.4.3. Board Library¶
Migration: Optional. No migration impact in case of applications using custom board library which is not following similar approach as default board library for Ethernet PHY configurations.
Updated Board library for OMAPL137 in this release includes additional Ethernet PHY initialization support for reference EVM during init and hence requiring dependency on I2C LLD. This is applicable to applications using default OMAPL137 board library similar to other PDK/Processor SDK applications in the release. For all those cases linking to additional I2C LLD library will be required.
Examples for including I2C LLD library for:
- Baremetal Applications
Include the I2C LLD library from below mentioned path in makefile or linker command file:
- ARM Core -
<PDK_INSTALL_DIR>/packages/ti/drv/i2c/lib/omapl137/arm9/release/ti.drv.i2c.ae9
- DSP Core -
<PDK_INSTALL_DIR>/packages/ti/drv/i2c/lib/omapl137/c674/release/ti.drv.i2c.ae674
- SYS/BIOS RTOS Applications
Include the I2C LLD library in SYS/BIOS config file using xdc load package module:
var devType = "omapl137"
var I2c = xdc.loadPackage('ti.drv.i2c');
I2c.Settings.socType = devType;
2.3.7.4.4. McASP Library¶
Migration: Optional. No migration impact for applications initializing the structure using memset and default configuration: ``Mcasp_WordBitsSelect_LSB()``.
McASP driver includes additional configuration field in
Mcasp_ChanParams->wordBitsSelect
to enable newly introduced mode
Mcasp_WordBitsSelect_MSB. Configuration needs to be initialized by application.
2.3.8. Processor SDK 03.xx Releases¶
2.3.8.1. Processor SDK 03.03¶
2.3.8.2. Processor SDK 03.02¶
2.3.8.2.1. PDK I2C LLD¶
To support I2C slave mode, added I2C_transactionInit()
API. Applications
need to call I2C_transactionInit()
API before calling I2C_transfer()
API.
Example:
I2C_Transaction transaction;
I2C_transactionInit(&transaction);
transaction.masterMode = false;
transaction.writeCount = wrLen;
transaction.readCount = rdLen;
transaction.timeout = timeout;
I2C_transfer(i2c, &transaction);
2.3.8.2.2. PDK MCASP LLD¶
The call back function’s behavior has changed. The MCASP driver no longer
modifies the cArg
parameter of the registered call back function to indicate
the transaction type(TX or RX). The cArg paramter will be unchanged and passed
back to the application. Please refer to the examples, which have been updated
to reflect this change.
2.3.8.2.3. PDK MMCSD LLD¶
No update required for use of default SOC dependent library.This is applicable
for applications which choose to include the soc/MMCSDDMA_soc.c
. The
soc/MMCSDDMA_soc.c
file has now been removed as a part of combining the DMA
and Non-DMA source code of the MMCSD library. Applications may include
soc/MMCSD_soc.c
file instead.
2.3.8.2.4. PDK USB LLD¶
- Cache is now supported. Buffers that are passed to low level USB bulk API’s
need to be cache-size aligned. These include buffers passed to:
USBHMSCBlockWrite()
,USBHMSCBlockRead()
,USBHostRead()
,USBHostWrite()
, orusbSetupEpReq()
, etc. - DMA is enabled by default on AM335x. Remove DMA_MODE flag in
build/makefile.mk
to go back to FIFO mode.
2.3.8.2.5. PDK ICSS EMAC LLD¶
Support has been added to all allow the icss-emac LLD to be configured with custom firmware memory map parameters which fall into the following 2 categories:
- Static configuration: Tied directly to the firmware. For example, location and size of statistics, port status and conrol address offsets.
- Dynamic configuration: Tuneable parameters based on application. For example, sizes of TX/RX queues, port specific buffer/buffer descriptor offsets.
A complete list of these parameters can be found in
ti/drv/icss_emac/icss_emacDrv.h
. Refer to ICSS_EmacFwStaticMmap
and
ICSS_EmacFwDynamicMmap
structures.
Firmare binaries which reside in ti/drv/icss_emac/firmware/<SOC>
directory
should be accompanied by a icss_emacFwConfig.c
file. For existing firmware
binaries in this release, there is an equivelent icss_emacFwConfig.c
file
already present. This file basically defines the 2 stuctures mentioned
above. This file needs to be compiled in as part of the user application. User
application can then use the following 2 newly introduced API’s to “get” and
“set” firmware memory map configuration parameters with the LLD and firmware.
icss_emacGetFwMMapInitConfig()
: Allows for retrieval of default firmware memory map configuration. User application may call this if they wish to update dynamic firmware memory map configuration paremeters. Static configuration parameters MUST not be updated.icss_emacSetFwMMapInitConfig()
: Allows for static and dynamic firmware memory map configuration parameters to be configured into the the LLD and firmware.
Note that these API’s need to be called prior to calling ICSS_EmacInit()
which is LLD’s initialization function.
Backward compatibility is also supported. If user application does not wish to
update any configuration parameters, LLD will operate of default configuration
parameters as specified in respective icss_emacFwConfig.c
file which is
being delivered as part of this release.
2.3.8.2.6. TI-RTOS¶
The updated version of TI-RTOS (SYS/BIOS) includes a check to ensure the proper run-time library is linked. If you face a compilation issue, see this note on RTOS FAQ for more information.
2.3.8.3. Processor SDK 03.01¶
2.3.8.3.1. PDK CSL¶
csl_a15init
module is renamed tocsl_init
to support portability. The impact of this change is limited to bare metal application using PDK makefile infrastructure. As part of migration, the module name need to be updated.csl_a15Aux.h
is removed as it is duplicate ofcsl_a15.h
. The impact of this change is limited to applications that includecsl_a15Aux.h
. As part of migration, the modification required is to includecsl_a15.h
instead.
2.3.8.3.2. PDK SA LLD (K2x, C66x)¶
Added a feature to select Air Cipher Engine over the default Encryption engine
for algorithms such as AES_CTR part of Sa_DataModeConfigParams_t
API. There
is no migration impact if application is initializing the structure to zero
using memset.
2.3.8.4. Processor SDK 03.00¶
This release is a maintenance update with new features and bug fixes. The major number in the version changed to stay aligned with the Linux package that moved to 2016 LTS.
2.3.8.4.1. Device Drivers¶
- Locations of precompiled libraries have moved for the following PDK
components:
CSL, PDK Examples, GPIO, GPMC, I2C, ICSS-EMAC, McASP, McSPI, MMC-SD, PCIe, PRUSS, QSPI, UART, USB, VPS, PDK Utils, FATFS, BOARD, OSAL, NIMU, NIMU_ICSS
. The overall change is to rename armv7 to a15/a8/a9 as appropriate for the device. All cores have moved the libraries compiled with optimization torelease
, while a debug folder is available (but not prebuilt) for libraries with-g
.- No changes are needed for applications configured with a XDC/BIOS *.cfg with dependancies specified through xdc.useModule or xdc.loadPackage because updated library paths are autogenerated.
- For other applications which explicitly set libraries and/or library include
paths via
-l, -I, or -L
flags passed to the linker, the library paths need to be updated. For example, for GPIO on A15, the path changes fromti/drv/gpio/lib/am572x/armv7
toti/drv/gpio/lib/am572x/a15/release
.
- The drivers GPIO, I2C, SPI and UART now use CSL-FL. Applications using these
drivers need to add include and library dependencies by adding xdc.useModule
for CSL-FL for XDC/BIOS based applications, or by adding
-I/-l/-L
paths to the compilation/linker flags for the application. For XDC, here is a sample code for adding CSL-FL:
/*use CSL package*/
var socType = "am571x";
var Csl = xdc.loadPackage('ti.csl');
Csl.Settings.deviceType = socType;
- The driver I2C has an API change for I2C_transfer, a new timeout field is
added to
I2C_Transaction
structure, and the return value type of this API is changed frombool
toint16_t
. In the test/example application, timeout value need to be initialized before calling this API:
Example:
int16_t status;
i2cTransaction.slaveAddress = I2C_EEPROM_ADDR;
i2cTransaction.writeBuf = (uint8_t *)&txBuf[0];
i2cTransaction.writeCount = I2C_EEPROM_TEST_LENGTH + I2C_EEPROM_ADDR_SIZE;
i2cTransaction.readBuf = NULL;
i2cTransaction.readCount = 0;
i2cTransaction.timeout = I2C_TRANSACTION_TIMEOUT;
status = I2C_transfer(handle, &i2cTransaction);
2.3.9. Processor SDK 02.xx Releases¶
2.3.9.1. Processor SDK 02.00.02¶
This release primarily adds support for K2G device. There is no migration impact to customers using devices supported in the previous release (AM3, AM4, AM5, C665x, C667x, K2E, K2H, K2K, K2L).
2.3.9.2. Processor SDK 02.00.01¶
This release primarily adds support for devices from the KeyStone architecture: C665x, C557x, K2E, K2H, K2K, and K2L. There is no migration impact to customers using devices supported in the previous release (AM3, AM4, AM5).
For information on migrating from BIOS-MCSDK (C66x) or MCSDK (K2x) to Processor SDK, see this migration page.
2.3.9.3. Processor SDK 02.00.00¶
This is the initial Processor SDK RTOS release from Texas Instruments unifying platform software across multiple SOC’s.
The strategy for forward/backwards compatibility is as follows:
- Device Drivers
- All new development efforts should use Device Drivers because:
- Device Drivers will maintain common APIs for all supported SoCs
- Customer applications can be easily ported to new and additional SoCs hence providing scalable software platform
- All new features and development will occur only in the Device Drivers.
- All new development efforts should use Device Drivers because:
- StarterWare is included for AM335x and AM437x for backwards compatibility with
Industrial SDK 02.01.00.01
- This will be maintenance only (bugs will be fixed, no new features)
For applications that already depend on StarterWare from Industrial SDK 02.01.00.01 on AM335x/AM437x, those APIs remain in Processor SDK in:
- AM335x SOC:
pdk_am335x_1_0_0/ti/starterware
- AM437x SOC:
pdk_am437x_1_0_0/ti/starterware