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.01.00¶
Released Oct 2019
What’s New
New Features
Note
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.1.19.2 | X | |||||||||||
OPENMP | 2.6.3.0 | X | X | X | X | X | X | X | |||||
PDK | 1.0.16 | 1.0.16 | 1.0.16 | 1.0.6 | 4.0.15 | 4.0.15 | 4.0.15 | 1.0.15 | 2.0.15 | 2.0.15 | 1.0.10 | 1.0.10 | |
SYS/BIOS | 6.76.2 | 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.1 | 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.1.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-5916 | *Multiple platforms | High-Speed Drivers | Sitara EMMC driver does not support data bus width other than 8 bit |
PRSDK-4764 | *Multiple platforms | PDK | icss_dual emac firmware: PTP frames are all put under queue 0 for both ports |
PRSDK-5789 | *Multiple platforms | System Integration | Top level make windows fails intermittently with: fork: can’t reserve memory for stack |
PRSDK-5624 | *Multiple platforms | Collateral, Optimized Libraries | FFTLIB documentation for AM57xx and K2H devices is missing |
PRSDK-5303 | am335x-evm, am335x-ice, am335x-sk, amic110-ice | Networking | APP image for NIMU CCLINK examples on AM335x/AMIC110 exceeds the SPI flash size |
PRSDK-5683 | am335x-ice | Boot | OOB MLO from PSDK doesn’t work with PRU-ICSS Ethernet/IP |
PRSDK-5770 | am335x-ice, am437x-idk, beagleboneblack | PRUSS-Firmware | PUT_IORD_SHORT not working after issuing PUT_IOWR_SHORT |
PRSDK-5403 | am437x-idk | Control Drivers | iolink: channel 7 has ISDN read/write response error |
PRSDK-5612 | am437x-idk | OSAL | Missing interrupt enable/disable option in OSAL HwiP_Params |
PRSDK-5690 | am570x-evm, am571x-idk, am572x-evm, am572x-idk, am574x-idk | High-Speed Drivers | Improper test of MMCSD driver with power switch from 3.3V to 1.8V |
PRSDK-5730 | am570x-evm, am571x-idk, am572x-evm, am572x-idk, am574x-idk | High-Speed Drivers | Need to implement AM57x errata i926 in PCIE RX PHY setting sample code |
PRSDK-6055 | am570x-evm, am571x-idk, am572x-evm, am572x-idk, am574x-idk | High-Speed Drivers | FATFS example crash when insert/remove MMCSD cards |
PRSDK-5611 | am570x-evm, am571x-idk, am572x-evm, am572x-idk, am574x-idk | Networking | NDK HTTP server memory leak |
PRSDK-5851 | am570x-evm, am571x-idk, am572x-evm, am572x-idk, am574x-idk | Optimized Libraries | Fail to run RTOS examples on non-primary A15 core |
PRSDK-4850 | am571x-idk, am572x-evm, am572x-idk | Audio, Video, & Display | RTOS: VPS test fails using MMCSD/UARTApploader on am571x-idk, am572x-evm and am572x-idk platforms |
PRSDK-5466 | am654x-evm | Boot | AM65xx/OSPI/XIP: OSPI driver re-open() fails on XIP mode |
PRSDK-5000 | am654x-evm | Chip Support | Incorrect DMSC IRAM size in CSL-RL |
PRSDK-5638 | am654x-evm | Diagnostics | AM65xx diag self test hangs during memory test on R5 core |
PRSDK-5253 | am654x-evm | OSAL | [osal] R5 OsalArch_HwiPCreate calls system enable() unconditionally |
PRSDK-6056 | am654x-evm, am654x-hsevm, am654x-idk | Board Support | make clean board fails when run from <pdk>packages |
PRSDK-5952 | am654x-evm, am654x-hsevm, am654x-idk | Networking | am65xx: icssg: fw: shutdown command doesn’t work |
PRSDK-6259 | am654x-evm, am654x-idk | Board Support | AM65xx Board lib build failure with PMT output files |
PRSDK-4706 | am654x-evm, am654x-idk | Boot | SBL: MCU0 Boot in R5 Split Mode not supported in SBL |
PRSDK-6040 | am654x-evm, am654x-idk | Boot | Uniflash 5.0.0 hangs at 99% while flashing sbl_baremetal_boot_{xip/smp} appimage |
PRSDK-5669 | am654x-evm, am654x-idk | Diagnostics | Maxwell DIAG: OSPI stress test hangs |
PRSDK-5535 | am654x-evm, am654x-idk | KeyStone Drivers | SA UnitTest MPU failure: Did not find SA reply in rx ring 305 from SYSFW |
PRSDK-4744 | am654x-evm, am654x-idk | Networking | nimu_free_pkt() wrongly frees p_pkt_desc |
PRSDK-6059 | am654x-evm, am654x-idk | PDK | reserved area for DMSC in top level linker command file in PDK is incorrect |
PRSDK-4739 | am654x-evm, am654x-idk | SCIClient | ccsLoadDmsc fails if 2 or more boards configured |
PRSDK-4927 | am654x-evm, am654x-idk | SCIClient | sciclient: APIs seems to always use self host id to be core 0 |
PRSDK-6047 | am654x-idk | Board Support | CPSWHSDIV_CLKOUT2 should be initialized to 250MHz |
PRSDK-6445 | am654x-idk | Example | Invalid “project_detected” variable in pdkProjectCreate.bat |
PRSDK-5340 | am654x-idk | Example, Networking | mis-matched number of channels and allocated memory arrays with EmacLoopbackTest |
PRSDK-5947 | am654x-idk | PDK | EMAC fails to remove CRC from Locally received frame in TSN Switch |
PRSDK-6254 | am654x-idk | PDK | emac_poll function takes ~1ms time during link change |
PRSDK-5793 | beagleboneblack | PDK, PRUSS-Firmware | pdkAppImageCreate script creates large binaries for PRU FW projects |
PRSDK-5675 | c6657-evm | Boot | To bring back bootloader utilities into Processor SDK RTOS |
PRSDK-5766 | c6657-evm, c6678-evm | Boot | IBL external GIT and release source don`t match |
PRSDK-6027 | c6678-evm | Demonstrations | Image processing demo doesn’t work on C6678 |
PRSDK-6301 | c6678-evm | Networking | NDK NIMU driver memory double free error |
PRSDK-5307 | c6748-lcdk | Control Drivers | SPI_transferCancel function not implemented in SPI v0 driver |
PRSDK-5920 | c6748-lcdk, k2g-evm, k2g-ice, k2h-evm, omapl137-evm, omapl138-lcdk | OSAL | OSAL DSP test hangs after ‘HWI tests have passed’ |
PRSDK-5981 | c6748-lcdk, omapl137-evm, omapl138-lcdk | High-Speed Drivers | MMCSD DMA test projects hangs on OMAPL138/137 |
PRSDK-5799 | c6748-lcdk, omapl138-lcdk | High-Speed Drivers | Setting RMIISPEED bit in EMAC HwAttrs structure has no effect |
PRSDK-5701 | j721e-evm | PDK | NIMU: NIMU should not call Udma_init |
PRSDK-5915 | k2e-evm, k2g-evm, k2g-hsevm, k2g-ice, k2h-evm, k2k-evm, k2l-evm | Chip Support | Incorrect Keystone II Serdes Rx valid signal for PCIE interface using CSL |
PRSDK-5388 | k2e-evm, k2h-evm, k2k-evm | PDK | mmap_TestProject DSP LE/BE: error #3188: Object size is greater than maximum supported size |
PRSDK-5959 | k2g-evm, k2g-hsevm, k2g-ice | Diagnostics | Incorrect GPMC register access on K2G NAND diagnostics |
PRSDK-5727 | k2g-hsevm | Boot | K2G HS SBL fails out of the box in SBL_initSK |
PRSDK-4214 | k2g-hsevm | System | create-sdcard script does not boot OOB |
PRSDK-5811 | k2k-evm | System Integration | K2K: top level parallel make fails due to package interdependency |
PRSDK-5992 | omapl138-lcdk | Chip Support | Incorrect definitions in CSLR header for OMAPL138 |
PRSDK-6204 | omapl138-lcdk | Chip Support | Corrections needed to EPWM CSL header for OMAP-L138 |
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-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-6043 | *Multiple platforms | CCS | TI-RTOS Kernel Example does not work with Resource Explorer in CCS 9.x | |
PRSDK-769 | *Multiple platforms | Demonstrations | Posix-SMP Demo DMIPS are wrong | |
PRSDK-5821 | *Multiple platforms | High-Speed Drivers | Failure to support file system with unicode string | ASCII string file names should be used instead of Unicode strings |
PRSDK-6184 | *Multiple platforms | System Integration | BIOS 6.75 newlib-nano and header incompatibility with GCCv7.3.1 toolchain in SDK | |
PRSDK-5642 | am335x-evm | Board Support | USB_DevBulk_ExampleProject: Failed to load/run app | Use JTAG to load and run the example |
PRSDK-3541 | am335x-evm | High-Speed Drivers | USB MSC device mode doesn’t handle “safely remove” command well. | |
PRSDK-6639 | am335x-evm | OSAL | AM335x Osal baremetal test fails when loaded through SBL | Please load/run the test via JTAG instead of SBL |
PRSDK-6653 | am335x-evm, am437x-evm | Diagnostics | Diagnostics accelerometer, adc, temperature and ambient_light_sensor hangs on evmAM335x/AM437x | |
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-5164 | am335x-evm, omapl137-evm, omapl138-lcdk | High-Speed Drivers | AM3/OMAP USB driver sends NYET response to BULK OUT transfer request causing unnecessary USB traffic | |
PRSDK-4548 | am335x-ice | PRUSS-Firmware | PRU-ICSS EMAC + TTS : Corrupted Rx packet at host from Firmware | Rebuild the firmware using the following changes to prioritize Rx packets over Tx packets during non realtime packet reception. Please make the following changes to firmware/icss_dualemac/src/emac_tts.h scheduler. In the M_TTS_XMT_SCHEDULER macro, add the following instruction after the label NOT_Queue1?: at line 149. ‘QBBS TASK_EXECUTION_FINISHED, R23, Rcv_active’ .With the above changes, clean and rebuild the icss-emac firmware using the steps mentioned in https://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_pru_icss_fw.html#firmware-build-instruction.Please note that there will be significant reduction in throughput due to the above change. |
PRSDK-6652 | am335x-ice, am437x-evm | Diagnostics | Diagnostics LED test hangs at “Jumping to user application” | |
PRSDK-7120 | am335x-ice, am571x-idk | PDK | SPI master slave test fails in non-dma callback mode | |
PRSDK-3565 | am437x-hsevm | Security | AM437x-HSEVM: GPMC unit-tests fail | |
PRSDK-3564 | am437x-hsevm | System | I2C unit tests on AM437x-HSEVM fail with the message “Some tests have failed.” | |
PRSDK-6161 | am437x-idk | Networking | ICSS_EMAC_BasicExample fails on AM437x IDK with errors in received acyclic pkt content | |
PRSDK-5936 | am437x-idk | PDK | IO-Link master example does not work with Balluff inductive coupler | |
PRSDK-4583 | am437x-idk | PRUSS-Firmware | PRUSS-I2C-FW: Does not support 1Mhz mode. Incorrect STOP condition generated for HS mode | |
PRSDK-7085 | am437x-idk, am437x-sk | Diagnostics | Diagnostics: ‘mem test’ hangs on AM4 boards | |
PRSDK-5938 | am437x-idk, am571x-idk, am572x-idk | PDK | MCSPI/I2C Master Slave Example: SPI TX/RX FIFO trigger level test failure (UT1) | |
PRSDK-335 | am437x-idk, k2g-evm | High-Speed Drivers | USB host MSC fails to re-enumerate | 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-5871 | am570x-evm | PDK | EMAC_BasicExample MPU LE test fails at “Clock synthesizer: Write: Failed” | |
PRSDK-6766 | am570x-evm, am571x-idk, am572x-evm, am572x-idk, am574x-idk | High-Speed Drivers | USB driver TRB data buffer placement caused the bulk test failure | |
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-5178 | am571x-idk, am572x-idk, am574x-idk | Board Support | Uniflash: Host tool fails to load Flash Programmer, when Flash device is programmed | In case of AM5 platform, if flash device is programmed with a valid boot image, the board boots from flash as soon as powered on. After this, attempting to connect the board over JTAG will fail. | Workaround for this issue is to insert SD card without any valid boot image( to prevent booting from SD card), and power on the board. SD boot has boot sequence priority over Flash device. This will hold the board booting out of flash device. |
PRSDK-3864 | am571x-idk, am572x-idk, am574x-idk | High-Speed Drivers | Missing USB disconnect event on USB device mode on AM5xx | |
PRSDK-5087 | am571x-idk, am572x-idk, am574x-idk | Networking | ICSS_EMAC_BasicExample fails on AM57xx-IDK with Packet cyclic timestamp error | |
PRSDK-3876 | am572x-evm | Chip Support | CM_EMU_CLKSTCTRL=0x2 needed for reliable low power exit if EMU[1:0] pins are used as GPIOs | |
PRSDK-5987 | am572x-evm | Control Drivers | UART Rx/TX trigger level test fails in SMP mode for AM572x EVM (DMA) | |
PRSDK-4667 | am572x-evm | Demonstrations, Networking | Image Processing Demo lock up on AM572x GP EVM | Issue seen using 1Gig router on ETH0. Replace with 100Mbps |
PRSDK-1975 | am572x-evm | Diagnostics | timer_DiagExample_evmAM572x_arm7.out doesn’t work on ARM1 core | Example can run on ARM Core 0 |
PRSDK-6958 | am572x-evm | Power | pm_rtos_testapp DSP/M4: shutdown test failed | |
PRSDK-3656 | am572x-evm | Unknown | PM: shutdown test failed on DSP core for am572x-evm | |
PRSDK-3408 | am572x-evm | PDK | AM572x GP EVM - camera sysbios loopback example fails for M4 | |
PRSDK-6361 | am572x-idk | Chip Support | Cycle-intensive interrupt handler breaks timer function | |
PRSDK-5493 | am572x-idk | Demonstrations | Gravit Graphics demo: Error: File io init failed!! | |
PRSDK-7174 | am572x-idk | PDK | Double interrupt with GPIO level triggering | |
PRSDK-3344 | am572x-idk, am574x-idk | Diagnostics | Diagnostics: icssEmac_TEST on idkAM57{2/4}x fails due to link status being down | ICSS-EMAC LLD TI-RTOS example can be used for similar test. |
PRSDK-5397 | am574x-idk | Chip Support | CSL ECC EMIF test hangs at “OCMC FULL ECC Mode” on ARM | |
PRSDK-3383 | am574x-idk | Diagnostics | Diagnostics: lcdTouchscreen_TEST hangs | Issue expected to be specific to TI EVM. For TI EVM, test need to be bypassed from the diagnostic menu. |
PRSDK-5879 | am654x-evm | Board Support | Board: Board library needs to cover entire DDR region connected to EMIF1 | |
PRSDK-6382 | am654x-evm | Boot | SBL: R5F: Core 1 boot is not working with unsigned binary with ipc images | |
PRSDK-6341 | am654x-evm | Control Drivers | UART SMP test application hangs in SMP mode on AM65xx board | |
PRSDK-6342 | am654x-evm | Debug & Instrumentation | Interrupt latency benchmark hangs in SMP mode on AM65xx board | |
PRSDK-5638 | am654x-evm | Diagnostics | AM65xx diag self test hangs during memory test on R5 core | |
PRSDK-6109 | am654x-evm, am654x-hsevm, am654x-idk | Boot | ROM load time of SBL increased on GP devices | Use ROM degenrate key on GP devices for signing the SBL. To do this, overwrite ti/build/k3_dev_mpk.pem with ti/build/rom_degenerateKey.pem before building the SBL |
PRSDK-5966 | am654x-evm, am654x-hsevm, am654x-idk | Boot | PLL settings for Maxwell are not optimal | |
PRSDK-4661 | am654x-evm, am654x-hsevm, am654x-idk | Diagnostics | Maxwell: Board diagnostics LCD touchscreen test reports incorrect number of touch events | |
PRSDK-6364 | am654x-evm, am654x-hsevm, am654x-idk | Demonstrations | CAN-GATEWAY-DEMO not present on am65xx installer | |
PRSDK-6054 | am654x-evm, am654x-hsevm, am654x-idk | High-Speed Drivers | Bare-metal USB application performance degradation on Am65xx R5 core as compared to SYSBIOS benchmark | |
PRSDK-4886 | am654x-evm, am654x-hsevm, am654x-idk | High-Speed Drivers | UDMA-P Real-time Remote Peer Registers not Functional Across UDMA-P Domains | |
PRSDK-5755 | am654x-evm, am654x-hsevm, am654x-idk | Networking | ICSS-G-FW: Firmware should not configure ICSSG clock mux | |
PRSDK-5064 | am654x-evm, am654x-idk | Audio, Video, & Display | RTOS: Maxwell MCASP Device Loopback Regression test 7 and 9 fail | |
PRSDK-2951 | am654x-evm, am654x-idk | Board Support, Diagnostics | Maxwell_M4_Diag: LCD Display Diagnostic Stress Test | |
PRSDK-5448 | am654x-evm, am654x-idk | Boot | SBL boot from MMCSD fails intermittently | |
PRSDK-5648 | am654x-evm, am654x-idk | Diagnostics | Maxwell DIAG: UART stress test only runs over JTAG | |
PRSDK-7118 | am654x-evm, am654x-idk | Diagnostics | Diagnostics ICSSG EMAC STRESS: Port 4 Send to Port 5 Receive Test Failed for 10240 packets | |
PRSDK-5097 | am654x-evm, am654x-idk | High-Speed Drivers | USB Dev MSC performance is not on par with Linux driver | |
PRSDK-5544 | am654x-evm, am654x-idk | Networking | Maxwell EMAC LLD example doesn’t work at 100Mbps | |
PRSDK-5074 | am654x-evm, j721e-evm | PDK | McASP driver hangs with small buffer size | Use packet size 32 samples or greater |
PRSDK-4680 | am654x-evm, omapl137-evm | PDK | Processor SDK RTOS Post Installer script fails in case cygwin/mingw is overriding Windows default find utility | |
PRSDK-5626 | am654x-hsevm | Boot, DMA | OSPI Read using UDMA fails on AM65x HS devices. | Non-DMA mode could be used for the read operation |
PRSDK-5229 | am654x-idk | Board Support | PCIe diagnostic test validates only one port on PCIe 2-lane card | |
PRSDK-4843 | am654x-idk | Board Support | Pinmux support for AM654x IDK ICSS MII pin is missing | |
PRSDK-5988 | am654x-idk | Control Drivers | OSPI SMP unit test fails in 133MHz speed for AM65xx IDK | |
PRSDK-5989 | am654x-idk | Control Drivers | USB Host MSC test hangs in SMP mode on AM65xx IDK board | |
PRSDK-5751 | am654x-idk | Diagnostics | AM65xx IDK PCIe diagnostic test failure | |
PRSDK-5022 | am654x-idk | Networking | am65xx: Running emac unit test on R5 core from ddrless SBL at times does not complete execution | |
PRSDK-7121 | am654x-idk | PDK | OSPI flash test slave in DAC mode at 166MHz RCLK have failed | |
PRSDK-5933 | amic110-ice | Networking | NIMU_ICSS iceAMIC110: ping failed at J7 port | |
PRSDK-3727 | c6748-evm, c6748-lcdk | PDK | C6748 is missing from SOC description list in pdkProjectCreate | |
PRSDK-6399 | j721e-evm, k2g-evm | Control Drivers | SPI Master Slave example fails at the UT0 | |
PRSDK-7177 | k2e-evm, k2h-evm, k2k-evm | PDK | mmap_TestProject DSP LE: keystone_mmap_init() returned error | |
PRSDK-3114 | k2g-evm, k2g-hsevm, k2g-ice | Diagnostics | K2G: RTOS ECC support broken on ARM core | |
PRSDK-5903 | k2g-hsevm | Networking | EMAC_BasicExample DSP LE: Exception at 0xc00fde4 | |
PRSDK-3371 | omapl137-evm | Boot | Slave boot is failing on evmOMAPL137 | |
PRSDK-2989 | omapl137-evm | High-Speed Drivers | MMCSD LLD fails on OMAPl137 with 1024 byte block size | |
PRSDK-3412 | omapl137-evm, omapl138-evm | High-Speed Drivers | USB audio class example noise issue on OMAPL13x | |
PRSDK-4043 | omapl137-evm, omapl138-lcdk | High-Speed Drivers | OMAPL13x: USB Baremetal project binaries not built via top level make |
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 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AM335x | AM437x | AM57x | GP | ICE | SK | BBB | GP | IDK | SK | GP | IDK | GP | IDK | |
CSL | 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 |
EDMA3 | X | X | X | X | X | X | ||||||||
GPIO | 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 |
PRUSS-I2C f/w | X | X | X | X | X | X | ||||||||
PRUSS-eSPI f/w | X | X | ||||||||||||
ICSS-EMAC | X | X | X | X | X | X | ||||||||
McASP | X | X | X | X | X | X | X | |||||||
McSPI | X | X | X | X | X | X | X | X | ||||||
MMC-SD | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
PCIe | X | X | X | |||||||||||
PM | X | X | X | X | X | X | ||||||||
PRUSS | X | X | X | X | X | X | X | X | ||||||
QSPI | X | X | X | X | X | |||||||||
OSPI | X | X | ||||||||||||
UART | X | X | X | X | X | X | X | X | X | X | X | X | X | X |
USB | 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 | |||||
VPS | X | X | X | |||||||||||
UDMA | X | X | ||||||||||||
SCICLIENT | X | X | ||||||||||||
SA | X | X | ||||||||||||
CAL | X | X | ||||||||||||
DSS | 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 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AM335x | AM437x | AM57x | GP | ICE | SK | BBB | GP | IDK | SK | GP | IDK | GP | IDK | |
Board Support | 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 |
Diagnostics | X | X | X | X | X | X | X | X | X | |||||
FATFS | 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 |
NDK-NIMU(ICSS) | 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.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. 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.3.1. Processor SDK 06.00¶
2.3.3.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.3.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.4. Processor SDK 05.xx Releases¶
2.3.4.1. Processor SDK 05.03¶
2.3.4.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.4.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.4.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.4.2. Processor SDK 05.02¶
2.3.4.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.4.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.4.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.4.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.4.3. Processor SDK 05.01¶
2.3.4.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.4.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.4.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.4.4. Processor SDK 05.00¶
2.3.4.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.4.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.5. Processor SDK 04.xx Releases¶
2.3.5.1. Processor SDK 04.03¶
2.3.5.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.5.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.5.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.5.2. Processor SDK 04.02¶
2.3.5.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.5.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.5.3. Processor SDK 04.01¶
2.3.5.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.5.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.5.4. Processor SDK 04.00¶
2.3.5.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.5.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.5.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.5.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.6. Processor SDK 03.xx Releases¶
2.3.6.1. Processor SDK 03.03¶
2.3.6.2. Processor SDK 03.02¶
2.3.6.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.6.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.6.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.6.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.6.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.6.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.6.3. Processor SDK 03.01¶
2.3.6.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.6.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.6.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.6.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.7. Processor SDK 02.xx Releases¶
2.3.7.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.7.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.7.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