2. Release Specific

2.1. Processor SDK Linux Release Notes

2.1.1. Overview

The Processor Software Development Kit (Processor-SDK) for Linux provides a fundamental software platform for development, deployment and execution of Linux based applications and includes the following:

  • Bootloaders & Filesystems
  • SDK Installer
  • Setup Scripts
  • Makefiles
  • Matrix Application Launcher
  • Example Applications
  • WLAN support (Wilink 8)
  • Code Composer Studio v7

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. The manifest can be found on the SDK download page or in the installed directory as indicated below. In addition, see GPLv3 Disclaimer

2.1.3. Documentation

  • Processor SDK Linux Software Developer’s Guide: Provides information on features, functions, delivery package and, compile tools for the Processor SDK Linux release. This also provides detailed information regarding software elements and software infrastructure to allow developers to start creating applications.
  • Getting Started Guide: Provides information on getting the software and running examples/demonstrations bundled in the SDK.
  • Software Manifest: Provides license information on software included in the SDK release. This document is in the release at [INSTALL-DIR]/docs.
  • EVM Quick Start Guide: Provides information on hardware setup and running the demonstration application that is loaded on flash. This document is provided as part of the EVM kit.

2.1.4. Release 05.00.00 Highlights

Released Jul 2018

What’s New

  • 2018 LTS Update: First release in 2018 LTS (Kernel 4.14, U-boot: 2018.01, gcc: 7.2-2017.11, Yocto 2.4 (rocko). For more details, see the migration guide
  • AM57x: Enable Deep Learning at the edge using TI-DL that leverages TI’s proprietary, highly optimized CNN/DNN implementation on the EVE and C66x DSP compute engines. Please see here for more details
  • AM57x: PTP: Support Ordinary Clock (OC) Master/Slave with HSR redundancy on PRU-ICSS. Please refer to HSR OC TC for more details
  • AM57x: PTP: Support Hybrid Clock (HC), i.e. Transparent Clock (TC) + Ordinary Clock (OC) in HSR mode. Please refer to HSR OC TC for more details
  • AM57x: HSR/PRP: Add Broadcast Storm Prevention
  • AM57x: HSR/PRP: Improve throughput at smaller packet sizes, details here
  • AM437x, AM57x: Implement Simple Open Real-Time Ethernet (SORTE) with Linux. Please see here for more details

SDK Components & Versions

Component Version
Linux Kernel 4.14.40+ (2018 LTS)
U-Boot 2018.01
Yocto Project 2.4 (rocko)
Linaro Toolchain (gcc) 7.2-2017.11 hard-float
Qt 5.9.6
OpenCL 1.1.15
OpenCV 3.1
Wayland 1.13
GStreamer 1.12.2
Chromium v53
TI PRU Compiler 2.2.1
TI C66x CGT Compiler 8.2.2

2.1.5. Supported Platforms

See Supported Platforms and Versions for a list of supported platforms and links to more information.


2.1.6. Build Information

2.1.6.1. U-Boot

Head Commit: 131dc8283021742f03e843e216ed301862e2db38 configs: dra7xx_evm/dra7xx_hs_evm: Enable AHCI and PIPE3
Date: Wed Jun 13 12:48:25 CDT 2018
uBoot Version: 2018.01
uBoot Description: v2018.01-227-g131dc82
Clone: git://git.ti.com/ti-u-boot/ti-u-boot.git
Branch: ti-u-boot-2018.01
uBoot Tag: ti2018.01

2.1.6.2. Kernel

Linux Kernel

The kernel git repository, branch and commit id can be found below:
Based on Version: 4.14.40
URL: git://git.ti.com/processor-sdk/processor-sdk-linux.git
Branch: processor-sdk-linux-4.14.y
Commit ID: 4796173fc58688055a99a1cef19a839174067220

Real Time (RT) Linux Kernel

The RT kernel git repository, branch and commit id can be found below:
Based on:
Kernel Version: 4.14.40
RT Kernel Version: 4.9.40-rt29
URL: git://git.ti.com/processor-sdk/processor-sdk-linux.git
Branch: processor-sdk-linux-4.14.y
Commit ID: d5443cbd3b5a79c7b4f817896e12014f2b30e34b

Generic Kernel Release Notes

Generic kernel release notes from kernelnewbies.org can be found at: https://kernelnewbies.org/Linux_4.14
Archived versions can be found at: https://kernelnewbies.org/LinuxVersions

2.1.7. Issues Tracker

2.1.7.1. Issues opened in previous releases that were closed on this release

Record ID Platform Title
LCPD-7519 am335x-evm dfu_get_buf return error when use dfu to update mmc card
LCPD-9436 am571x-idk, am572x-idk, am57xx-evm DRM: plane zorders must be unique
LCPD-12131   Perl in linux-devkit isn’t relocatable
LCPD-12186 am335x-evm, am335x-sk, beaglebone, beaglebone-black MMC/SD0 (SD card) pins are not muxed correctly for AM335x EVM, SK and Bone
LCPD-12212   ti-sgx-ddk-km: implicit fallthrough error in gcc7
LCPD-12279 am335x-evm Uboot: usb ethernet doesn’t work in U-boot
LCPD-12283 am571x-idk, am572x-idk, am574x-idk, am57xx-evm, am57xx-beagle-x15 ti-cpufreq: backport couple of upstream fixes
LCPD-12311 am571x-idk, am572x-idk Board could not boot to kernel when one Inateck pci-usb card is in
LCPD-12347   edma: Fix Klocwork reported issue
LCPD-12353   Two files with the same name MLO appear in the SD card
LCPD-12377 am335x-ice am335x-ice - Builds should be updated with dtb for prueth support
LCPD-12378 am574x-idk VIP is not being enumerated as a v4l2 device
LCPD-12381   WLAN disabled to allow suspend/standby to work
PLSDK-881 am335x-evm, am437x-evm, am572x-evm, k2g-evm, k2h-evm, k2e-evm, k2l-evm Linux: Toplevel make gets warnings from dhry_1,linpack and loopback for AM and K2 (rt and non rt) platforms
PLSDK-1842   CMEM misses some multi-thread protection
PLSDK-1815 am335x-evm, am437x-evm, am572x-evm DNS should be operational using binaries
PLSDK-1891 am335x-evm QT Wayland compositor with SGX on AM335x Processor SDK
PLSDK-1939 am571x-idk A-B forwarding with wrong/no FCS in HSR mode
PLSDK-1940 am571x-idk Unexpected offset jump in PTP
PLSDK-1941 am571x-idk PTP: Overshoot state reported
PLSDK-1944   GPIO Test fails on AM572/4-idk
PLSDK-1957 am571x-idk, am572x-idk PPS offset of CPTS is big and jumping
PLSDK-1960 am438x-epos-evm Top level make failed on am438 epos
PLSDK-1975   Download page has incorrect “Back to Software Product Overview” link
PLSDK-2070   HSR/PRP: Maintain a MTU of 1500 for all cases (with or without VLAN)
PLSDK-2080   GPIO control of the CPTS reference PPS signal is low-active
PLSDK-2083   CPTS 1PPS reference signal should be optional
PLSDK-2097 am572x-evm High level build of big-data-ipc-demo & ti-ipc-linux failed in PSDK 4.3 release, but works in 4.2
PLSDK-2101 am335x-ice, am437x-idk icss-emac unit test icev2AM335x/idkAM437x: test hangs after transmitting one packet
PLSDK-2149   ARM multimedia tests and 3D demos failed on AM3 HS evms
PLSDK-2150 am438x-epos-evm, am437x-hsevm ARM multimedia tests failed on AM4 HS and EPOS evms
PLSDK-2168 am571x-idk, am572x-idk, am572x-evm, am572x-hsevm Matrix-GUI needs 2-3 minutes to come up after boot

2.1.7.2. Issued found and closed on this release that may be applicable to prior releases

Record ID Platform Title
LCPD-12422 am571x-idk davinci_mdio 48485000.mdio: timed out waiting for idle? seen in bootlog
LCPD-12435 am43xx-gpevm V3_3D domain consumes ~4mw higher during suspend & standby states
LCPD-12456   Analyze / fix klocwork warnings for DWC3 / UDC
LCPD-12461   Analyze / fix klocwork warnings for GPMC
LCPD-12465   Analyze / fix klocwork warnings for PRUETH
LCPD-12474 am43xx-gpevm am437x-gp-evm: Remove duplicate uart0 and uart0_pins_default nodes
LCPD-12535 omapl138-lcdk Top level Make fails on Omapl138 due to fatal error
LCPD-12633 am57xx-evm PCIe sata could not be enumerated
LCPD-12634 am57xx-evm PCIe wifi: no network interface being created even it is detected
LCPD-12665 k2g-evm CAN interface is missing in k2g
LCPD-12690 am335x-evm Newer releases of SDK u-boot load kernel slower
LCPD-12693 k2g-evm PCIe support is not in so all pcie tests failed on k2g-evm
LCPD-12733   ethtool -k eth0 gives an error message

2.1.7.3. Errata Workarounds Available in this Release

Record ID Title
LCPD-876 OMAP5: Errata i810: DPLL Controller Sticks when left clock requests are removed
LCPD-975 J6/J6eco: 32clk is psuedo (erratum i856) - realtime counter
LCPD-976 J6/J6eco: 32clk is psuedo (erratum i856) - clock source
LCPD-1022 J6: Errata: i694: System I2C hang due to miss of Bus Clear support @ OMAP level
LCPD-1087 J6: MMC: Errata: i802: OMAP5430 MMCHS: DCRC errors during tuning procedure
LCPD-1108 J6: Wrong Access In 1D Burst For YUV4:2:0-NV12 Format (Errata i631)
LCPD-1146 DMM hang: Errata VAYU-BUG02976 (i878) (register part)
LCPD-1776 [J6 SATA Adaptation] J6 - Errata i783, SATA Lockup After SATA DPLL Unlock/Relock
LCPD-4184 Implement workaround for errata i814 - Bandgap Temperature read Dtemp can be corrupted
LCPD-4217 Implement Workaround for Errata i814 - Bandgap Temperature read Dtemp can be corrupted
LCPD-4218 Implement Workaround for Errata i813 - Spurious Thermal Alert Generation When Temperature Remains in Expected Range
LCPD-4647 [rpmsg 2015 LTS] Implement errata i879 - DSP MStandby requires CD_EMU in SW_WKUP
LCPD-4648 [rpmsg 2014 LTS] Implement errata i879 - DSP MStandby requires CD_EMU in SW_WKUP
LCPD-4910 J6/OMAP5: errata i810 implementation
LCPD-4975 DSS AM5/DRA7: implement WA for errata i886
LCPD-5052 Upstream: Post the dmtimer errata fix for i874
LCPD-5309 LCPD: i896: USB Port disable doesnt work
LCPD-5310 i900: CTRL_CORE_MMR_LOCK_5 region after locking results in ctrl module inaccessible, recoverable only post a reset
LCPD-5311 i893: DCAN ram init issues in HW AUTO and when traffic hitting CAN bus (open investigation)
LCPD-5460 Implement WA for Vayu errata i829 (Reusing Pipe Connected To Writeback Pipeline On The Fly To An Active Panel)
LCPD-5836 CAL: Errata: i913: CSI2 LDO needs to be disabled when module is powered on
LCPD-5924 ALL: CONNECTIVITY: CPSW: errata i877 workarround for cpsw
LCPD-6907 Workaround errata i880 for RGMII2 is missing
LCPD-7642 MMC/SD: i832: return DLL to default reset state with CLK gated if not in SDR104/HS200 mode.
LCPD-8277 u-boot: j6: SATA is not shutdown correctly as per errata i818
LCPD-8294 37 pins + VOUT pins need slow slew enabled for timing and reliability respectively
LCPD-9084 i887: Software workaround to limit mmc3 speed to 64MHz
LCPD-9173 i897: USB Stop Endpoint doesnt work in certain circumstances

2.1.7.4. SDK Known Issues

Record ID Platform Title Workaround
LCPD-5578   Exception triggered by graphics driver during boot if board does not have SGX (BBB A4) Build Processor SDK without SGX following instructions here
LCPD-7025 am43xx-gpevm System takes more than 10 seconds to go from login prompt to system prompt Automated tests need to account for this boot delay
LCPD-8345 am335x-evm, am437x-idk, k2e-evm, k2e-hsevm, k2hk-evm, k2l-evm Board fails to start login console after waiting 3.5 minutes ( hard to reproduce, ~4/1000) Restart the EVM
LCPD-8352 am43xx-gpevm, am57xx-evm weston: stress testing with 75 concurrent instances of simple-egl leads to unresponsive HMI due to running out of memory
  1. Restart Wayland application. 2. Restart board if Weston is killed by oom-killer
LCPD-9006 am57xx-evm Some GLBenchmark tests fail to run This is a limitation with Imagination DDK, and no workaround
LCPD-9616 am57xx-evm QtCreator GDB (remote) debugging stops working since QT5.7.1 use GDB from Processor SDK 3.2
LCPD-11010 am574x-idk AM574x-idk graphics performance is lower than am572x-idk Performance issue, no workaround
LCPD-11549 am571x-idk, am572x-idk, am574x-idk, am574x-hsidk, am57xx-evm, am57xx-beagle-x15, am57xx-hsevm Error message with multiple egl, not shared context Limitation with Imagination DDK, no workaround
LCPD-12679 am574x-idk PVR_K: dmabuf error during video playback  
LCPD-12778 am335x-evm Board hangs in standby & suspend state when wl12x card is attached  
LCPD-12784 omapl138-lcdk Board can’t resume from suspend state sometimes None
PLSDK-832 AM57 OpenCL matmpy intermittent DSP1 crash due to EdmaMgr issues w/ suspend/resume Disabling suspend/resume on the DSPs prevents this intermittent failure: echo on > /sys/bus/platform/devices/40800000.dsp/power/control; echo on > /sys/bus/platform/devices/41000000.dsp/power/control
PLSDK-885 AM57 OpenCV Video test failure w/ GStreamer errors Use the workaround from PLSDK-832
PLSDK-1266 am572x-idk PRP: stale IGMP packets (IPv6) seems directly sent to eth2/eth3 of a HRP node None
PLSDK-1308 am572x-idk PRP: PRP node is shown as SAN at times in the node table dump when not offloaded No problem with offload, which is default
PLSDK-1398 k2g-hsevm, k2hk-hsevm, k2e-evm, k2e-hsevm Document workaround for IPC demo hangs if run after OpenCL demos Run IPC demo w/o running OpenCL first
PLSDK-1419 k2l-evm Intermittent-IP address display issue on LCD for K2L RT Use ifconfig once Linux boots, to acquire IP address
PLSDK-1556 k2hk-evm, k2hk-hsevm, k2e-evm, k2l-evm SA LLD: saBasicExample test shows warning as ‘Alignment trap’ on K2x platforms. Just a warning message. No impact to test output
PLSDK-1602 am437x-evm Simple people tracking demo: Bulk transfer failed, observed inconsistent behavior of the application None
PLSDK-1693 am572x-evm It takes long time to use “kill pid” to close matrix-browser Start and stop Matrix GUI using /etc/init.d/matrix start, and /etc/init.d/matrix stop, respectively
PLSDK-1707 am571x-idk, am572x-idk prueth: debugfs_create_dir() fails during boot and error message shown Only impact the debug stats display. No other functionality affected. Once user login to root, user may do ifconfig or ifup to bring up the interface
PLSDK-1720 am437x-evm Simple people tracking demo: Tracking Incorrect Number of People None
PLSDK-1814 am572x-evm Camera support is not available from the default dtbs Use am57xx-evm*-cam-mt9t111.dtb for mt9t111 camera, and am57xx-evm*-cam-ov10635.dtb for ov10635 camera
PLSDK-1817   HSR/PRP: Outstanding Net-Jury tests failures: 92/105 passed, 7 blocked and 6 failed None
PLSDK-1828 am571x-idk, am572x-idk HSR: In a ring topology, seeing small performance degradation with concurrent traffic None
PLSDK-1909 am572x-evm DLP SDK demo: Assertion `ctx->pollfds_cnt >= internal_nfds’ failed None
PLSDK-1922 k2hk-hsevm, k2e-evm, k2e-hsevm, k2l-evm K2: PA and NWAL are not supported in PLSDK 5.0 None
PLSDK-1924 am335x-ice, am335x-sk, beagleboneblack AM3: Observed unwanted failure message in boot log. None
PLSDK-1945 am572x-evm qApp->quit() does not work with the enhanced eglfs_kms QPA None
PLSDK-1953 am571x-idk, am572x-idk Linux PRP: lreTransparentReception - passRCT doesn’t work as expected None
PLSDK-1963 k2e-evm K2E:Observed unwanted failure messages in boot log No functionality affected except the log message. If not needed, do not connect anything to the PCIe slot.
PLSDK-2067 am571x-idk Transparent Clock crashes after a couple of days due to memory leak  
PLSDK-2095 am571x-idk, am572x-idk kernel: EXPORT symbol “__hyp_stub_vectors seen during kernel build  
PLSDK-2107 k2g-ice sorte for K2G: master is not working None
PLSDK-2109 am437x-evm, am572x-evm QtWebengine demobrowser shows problems at LTS2018 on EGLFS QPA None
PLSDK-2113 am571x-idk, am572x-idk PTP BC overshoot caused by cable unplug and plug back in  
PLSDK-2128 am335x-evm, am437x-evm, am438x-epos-evm, am572x-evm Weston 2.0: overlay window display issue None. For Wayland demo, you may use qwindow-compositor instead of Weston.
PLSDK-2171 am571x-idk, am572x-idk PRU HSR firmware: small degradation in performance seen for MTU sized frames None
PLSDK-2174 am335x-evm, am335x-hsevm, am335x-ice, am335x-sk, beagleboneblack, am437x-idk, am437x-sk, am437x-evm, am438x-epos-evm, am437x-hsevm, am570x-evm, am571x-idk, am572x-idk, am572x-evm, am572x-hsevm, am574x-idk, am574x-hsidk boot stuck on “please wait” display screen when no input device is connected Connect an input device (e.g., mouse, keyboard) when booting the EVM
PLSDK-2178 am335x-ice ICSS EMAC intermittent error in received acyclic packet content None
PLSDK-2181 k2g-ice k2g-ice Eth0 IP address not displayed  
PLSDK-2186 am572x-evm video-analytic-demo should run on top of Weston instead of qwindow-compistor Run the deom on top of qwindow-compositor, as available from Matrix GUI
PLSDK-2188 am335x-evm, am572x-evm Failure to load ftdi_sio kernel module None
PLSDK-2190 am571x-idk Matrix Launcher: Independent_Video_with_QT_widgets_to_Different_Displays failing on am571-idk-rt platform Intermittent issue
PLSDK-2192 am572x-evm Using OpenVX image causing kernel crash or hang during boot up Switch back to OpenCL firmware after completing the OpenVX testing: reload-dsp-fw.sh opencl
PLSDK-2194 am437x-evm, am572x-evm QtWebengine demobrowser crashes during window resize operations at LTS2018 None
PLSDK-2198 k2g-ice, k2g-evm Multimedia: ERROR: from element /GstPipeline:pipeline0/GSTQTMux: qtmux0: Could not multiplex stream None
PLSDK-2220 k2e-evm UBI Image for K2E exceeds the available size limit None
PLSDK-2228 am572x-evm AM572x GP EVM: Unable to boot with jailhouse dtb Apply patch here
PLSDK-2229 am572x-idk Jailhouse ethercat slave failed to reach Operational state with SOEM master on am572-idk rt  
PLSDK-2234 am571x-idk 3BC Jitter exceeds specification None

2.1.7.5. U-Boot Known Issues

Record ID Priority Title Platform Workaround
LCPD-12244 P3-Medium AM43xx u-boot needs to support PHY_INVERT_CLKOUT=1 am437x-idk, am437x-sk, am43xx-epos, am43xx-gpevm  
LCPD-12176 P3-Medium U-boot: Fix IOdelay error path issue am571x-idk, am572x-idk, am574x-idk, am57xx-evm  
LCPD-11586 P3-Medium dhcp failed to get IP address after reboot for K2G-ICE non-RT linux k2g-ice  
LCPD-10805 P3-Medium U-Boot: Fix uart boot on am335x-evm am335x-evm  
LCPD-10726 P3-Medium Update DDR3 emif regs structure for EMIF2 for the beagle_x15 board in U-Boot board file am572x-idk, am57xx-evm  
LCPD-9369 P3-Medium AM437x GP EVM older PG version Uboot UART boot fails intermittently    
LCPD-8701 P3-Medium Soft reboot broken k2g-ice  
LCPD-5416 P3-Medium U-BOOT: K2G: “reset” fails for certain SD cards K2G  
LCPD-10668 P3-Medium Ethernet boot: Sometimes the board could not boot uboot from Ethernet on k2g-evm k2g-evm  
LCPD-9539 P3-Medium dhcp does not work after soft reboot k2g-evm  
LCPD-7864 P3-Medium U-Boot: Ethernet boot fails on AM335x and AM437x am335x-evm, am335x-ice, am335x-sk, am437x-idk, am437x-sk, am43xx-gpevm  
LCPD-7547 P3-Medium uboot nand write hangs for big size on k2g k2g-evm  
LCPD-7366 P3-Medium uboot McSPI driver drives multiple chip selects simultaneously am335x-evm  
LCPD-5517 P3-Medium Board fails to load bootloader sometimes when eSATA is connected AM572x  
LCPD-5116 P3-Medium BBB: U-Boot: Board fails to acquire dhcp address sometimes AM335x  
LCPD-4817 P4-Low am57xx-evm: uboot: usb failed to detect Kingston DataTraveler usb msc device AM572x  

2.1.7.6. Linux Kernel Known Issues

Record ID Priority Title Component Subcomponent Platform Workaround
LCPD–12784 P2-High Board can’t resume from suspend state sometimes Power & Thermal   omapl138-lcdk  
LCPD–9877 P2-High rtc alarm does not wakeup board from poweroff state Power & Thermal   omapl138-lcdk  
LCPD–12734 P2-High K2G: Ethernet performance is low Connectivity   k2g-evm  
LCPD–9972 P2-High Soft reboot failed on k2g-evm with class 10 SD cards Connectivity   k2g-evm  
LCPD–12513 P2-High Android O: Board takes longer to boot compared to MM Baseport   am57xx-evm  
LCPD–11577 P3-Medium IPC: Protocol and MessageQ Recovery tests failed IPC, System Test   am57xx-evm  
LCPD–12781 P3-Medium ipu opencl-monitor causes suspend failures IPC, System Integration   am57xx-evm  
LCPD–12933 P3-Medium Board fails to resume from standby/suspend state via UART sometimes Power & Thermal      
LCPD–9527 P3-Medium Potential deadlock reported by pm_suspend on am335x Power & Thermal   am335x-evm, am335x-sk, beaglebone, beaglebone-black  
LCPD–7670 P3-Medium AM43xx: pm debug counters are wrong Power & Thermal   am437x-idk, am437x-sk  
LCPD–7314 P3-Medium Active power is slighly higher than on 2015 LTS release (Linux 4.1) Power & Thermal   am335x-evm  
LCPD–7256 P3-Medium Board sometimes hangs after suspend/resume cycle Power & Thermal   am57xx-evm  
LCPD–6427 P3-Medium vpe fails to suspend sometimes Power & Thermal   am571x-idk, am572x-idk, am57xx-evm  
LCPD–1245 P3-Medium AM335x: Power: Reverse current leakage on poweroff Power & Thermal   am335x-evm  
LCPD–1204 P3-Medium AM335x - Some voltage rails remain active during poweroff Power & Thermal      
LCPD–965 P3-Medium AM335x: Power: Poweroff is not shutting down voltage domains Power & Thermal      
LCPD–10987 P3-Medium OpenCL tests failed due to missing CMEM carveouts in dts IPC, System Integration OpenCL am574x-idk  
LCPD–12673 P3-Medium Board refuses to suspend on setup with SATA device Connectivity   omapl138-lcdk  
LCPD–12664 P3-Medium Some of SATA tests failed with Internel oops error Connectivity   am57xx-evm  
LCPD–12566 P3-Medium CAN user guide references canconfig which is not supported any more Connectivity      
LCPD–11952 P3-Medium AM57x: disabling USB super-speed phy in DT causes kernel crash Connectivity USB am571x-idk  
LCPD–11564 P3-Medium AM57xx-evm: eth1 1G connection failure to netgear switch Connectivity CPSW, ETHERNET, PHYIF am57xx-evm  
LCPD–10974 P3-Medium am43xx-gpevm - usb camera gadget shows halting frames Connectivity USB    
LCPD–10781 P3-Medium NetCP module removal results in backtrace and kernel panic Connectivity NETCP k2g-evm  
LCPD–10777 P3-Medium mtd_stresstest failed on omapl138 Connectivity NAND omapl138-lcdk  
LCPD–10551 P3-Medium K2E eth0 does down when running udp traffic, eth1 stops working Connectivity NETCP k2e-evm  
LCPD–10221 P3-Medium Longer resume times observed on setup with usb device cable Connectivity USB am335x-evm  
LCPD–9974 P3-Medium PCIe x2 width is not at expected width on am571x-idk Connectivity PCIe am571x-idk  
LCPD–9905 P3-Medium AM437x: UART: Implement workaround for Advisory 27? Spurious UART interrupts when using EDMA Connectivity UART am43xx-gpevm  
LCPD–9816 P3-Medium USBdevice omapl138 - Flood ping from server to dut usbdevice at 65500 bytes has packet loss Connectivity USB omapl138-lcdk  
LCPD–9815 P3-Medium Failed to start Login Service when using debug systest build on omapl138 Connectivity   omapl138-lcdk  
LCPD–9804 P3-Medium SATA performance decreased by ~34% for read and ~54% for write compared to v2.6.33 kernel Connectivity SATA omapl138-lcdk  
LCPD–9658 P3-Medium OMAP-L138 LCDK: MUSB does not enumerate mouse connected to Keyboard hub Connectivity USB omapl138-lcdk  
LCPD–9591 P3-Medium CONNECTIVITY: USB NCM gadget ping with packet sizes > 10000 fails Connectivity      
LCPD–9469 P3-Medium Fix race condition when adding VLAN entries Connectivity NETCP k2e-evm, k2g-evm, k2g-ice, k2hk-evm, k2l-evm  
LCPD–9466 P3-Medium SATA PMP causes suspend failures Connectivity SATA am57xx-evm  
LCPD–9455 P3-Medium Kernel Warning reported for a USB audio device when listing with pulseaudio Connectivity USB am335x-evm  
LCPD–9428 P3-Medium Ethernet performace UDP: iperf command fails with two threads for lower buffer length Connectivity NETCP k2e-evm, k2hk-evm, k2l-evm  
LCPD–9372 P3-Medium Nand stress tests failed on am335x-evm Connectivity NAND am335x-evm  
LCPD–9366 P3-Medium PCIe USB drive sometimes could not be enumerated Connectivity PCIe k2g-evm  
LCPD–9011 P3-Medium K2G-evm: usb devices do not enumerate behind a TUSB8041 usb3.0 hub Connectivity USB    
LCPD–8984 P3-Medium Kernel boot to initramfs with PA enabled results in no DHCP IP address assigned to network interfaces Connectivity NETCP k2e-evm, k2l-evm  
LCPD–8637 P3-Medium K2HK: Long-term ping test fails due to ethernet link going down Connectivity      
LCPD–8636 P3-Medium Serial corruption being seen in kernel Connectivity UART am335x-evm  
LCPD–8354 P3-Medium K2G EVM: Need to use PMT data Audio & Display, Baseport, Connectivity PINMUX k2g-evm  
LCPD–8353 P3-Medium K2G ICE: Need to use PMT data Audio & Display, Baseport, Connectivity PINMUX k2g-ice  
LCPD–8133 P3-Medium USB: “cannot reset” errors observed sometimes Connectivity USB am335x-evm  
LCPD–8100 P3-Medium CONNECTIVITY: K2G ethernet performance numbers are low Connectivity NETCP k2g-evm  
LCPD–8078 P3-Medium AM3 SK: Touchscreen isn’t responsive Audio & Display, Connectivity   am335x-sk  
LCPD–8033 P3-Medium AM3 SK: Unexpected USB2-1 Messages on UART Connectivity USB    
LCPD–7955 P3-Medium Uncorrectable Bitflip errors seen after switch to SystemD Connectivity GPMC am335x-evm, am43xx-gpevm, k2e-evm, k2g-evm, k2g-ice, k2hk-evm, k2hk-hsevm, k2l-evm Workaround to erase the NAND flash completely if flashed with an incompatible flash writer. SystemD tries to mount all partitions and that is the reason this is being seen now.
LCPD–7829 P3-Medium uboot: UHS card did not work on the expected speed in uboot Connectivity   am57xx-evm  
LCPD–7744 P3-Medium UHS SDR104 card works on different speed after soft reboot Connectivity   am57xx-evm  
LCPD–7623 P3-Medium Seeing SPI transfer failed error sometimes on k2hk when using rt kernel Connectivity SPI k2hk-evm  
LCPD–7559 P3-Medium K2E/K2HK does not enumerate usb3 devices through usb3.0 hub Connectivity USB k2e-evm, k2hk-evm  
LCPD–7265 P3-Medium Uboot eMMC does not use HS200 on am57xx-gpevm Connectivity   am57xx-evm  
LCPD–6334 P3-Medium k2g-evm: NAND is untestable due to data corruption issues Connectivity   k2g-evm  
LCPD–6300 P3-Medium am57xx-evm: A few UHS cards could not be numerated in kernel and mmc as rootfs failed. Connectivity   am57xx-evm  
LCPD–6144 P3-Medium am572x-idk: eMMC failed to enumerate Connectivity MMCSD am572x-idk  
LCPD–5699 P3-Medium pci: am572x-idk: pci broadcom card doesn’t enumerate Connectivity   AM571x, AM572x  
LCPD–5677 P3-Medium K2E-evm: Marvel SATA controller could not be detected sometimes when Power On Reset is involved Connectivity   K2E  
LCPD–5522 P3-Medium pcie-usb sometimes the usb drive/stick could not be enumerated Connectivity   am571x-idk, am572x-idk, am57xx-evm  
LCPD–5362 P3-Medium MUSB: Isoch IN only utilises 50% bandwidth Connectivity USB AM335x  
LCPD–5308 P3-Medium i897: USB Stop Endpoint doesnt work in certain circumstances Connectivity USB AM437x, AM571x, AM572x  
LCPD–4849 P3-Medium K2hk: Connectivity: UART data corruption observed sometimes in loopback mode Connectivity      
LCPD–4503 P3-Medium ALL: 8250 UART driver not enabeld as wake source by default Connectivity UART    
LCPD–1239 P3-Medium J6: Connectivity: J6 could not resume when PCI-SATA card is in Connectivity PCIe am572x-idk, am57xx-evm  
LCPD–1198 P3-Medium am43xx-gpevm:Connectivity: when kmemleak debug is enabled and mmc stress test is run, OOM killer is seen to kick in. Does not happen without kernel debug. Connectivity      
LCPD–1144 P3-Medium Logitech USB-PS/2 Optical Mouse cannot be detected every other time the system is suspended/resumed (AM335x-EVM) Connectivity      
LCPD–1106 P3-Medium Connectivity:PCIe-SATA ext2 1G write performance is poor due to ata failed command Connectivity PCIe am57xx-evm  
LCPD–932 P3-Medium AM33X: CONNECTIVITY: MUSB MSC read numbers are lower in 3.14 compared to 3.12 Connectivity USB    
LCPD–869 P3-Medium AM335x: Connectivity: USB data transfer fails if board is suspended/resumed Connectivity      
LCPD–662 P3-Medium CONNECTIVITY: AM335X: distortion in USB audio when msc connect/disconnect happens in parallel Connectivity      
LCPD–12512 P3-Medium Board is not able to boot from emmc after flashing Baseport   am57xx-evm  
LCPD–11546 P3-Medium Rare kernel crash triggered by task_blocks_on_rt_mutex Baseport   am574x-idk, k2e-evm  
LCPD–10533 P3-Medium Cryptos: SHA1_Hash demo test fails on AM3/4/5 platforms Baseport   am335x-evm, am335x-ice, am43xx-gpevm, am571x-idk, am572x-idk, am574x-idk, am57xx-evm  
LCPD–10451 P3-Medium Context switch delay increased based on LMBench numbers Baseport   am335x-evm, am43xx-gpevm, am571x-idk, am572x-idk, am574x-idk, am57xx-evm  
LCPD–9981 P3-Medium Some LTP’s memory management tests fail due to low amount of free memory Baseport   omapl138-lcdk  
LCPD–9980 P3-Medium LTP’s math tests float_exp_log and float_trigo fail due to OOM Baseport   omapl138-lcdk  
LCPD–9756 P3-Medium pm_runtime does not kicks in for some IPs (serial, gpio and wdt) Baseport   omapl138-lcdk  
LCPD–8640 P3-Medium Crypto performance for AES drops 3-10% in 2016.05 Baseport      
LCPD–8550 P3-Medium CPSW memory allocation errors seen during boot Audio & Display, Baseport   am335x-sk  
LCPD–8406 P3-Medium K2G: PADCONFIG_202 register cannot be re-programmed Baseport   k2g-evm, k2g-ice This has proven to be a silicon issue related to locking RSTMUX. It is currently being discussed if it will be fixed in a newer silicon revision. Currently to avoid this issue the affected pins pinmux are not changed in the kernel. This is because U-boot locks RSTMUX which causes problems if the kernel tries to change the pinmuxing for the pins.
LCPD–8350 P3-Medium UART boot does not work on am57xx-evm Baseport   am57xx-evm  
LCPD–8347 P3-Medium BUG: sleeping function called from invalid context triggered by keystone_pcie_fault Baseport   k2e-evm, k2g-evm  
LCPD–8336 P3-Medium Soft reboot does not work on am43xx-hsevm rev1.5b Baseport   am43xx-hsevm  
LCPD–8257 P3-Medium Boot failed 1 of 1000 times on k2g Baseport   k2g-evm  
LCPD–7717 P3-Medium LTP Timer test fails for clock_settime02 for dra71-evm Baseport, System Test      
LCPD–7486 P3-Medium uboot debug with ccs is failing for K2 Baseport   k2hk-evm  
LCPD–7222 P3-Medium Asynchronous abort seen during soft reboot from kernel Baseport   k2g-evm  
LCPD–6998 P3-Medium K2G sometimes boot failed with kernel oops error Baseport   k2g-evm  
LCPD–6663 P3-Medium [RT] Kmemleak is buggy and boot is crashed randomly Baseport      
LCPD–5537 P3-Medium kmemleak: Could not scan kmemleak due to object search tree errors Baseport   AM571x, AM572x  
LCPD–12790 P3-Medium DSS: work-around for DRA7 errata i932 Audio & Display Display am571x-idk, am572x-idk, am574x-idk, am574x-hsidk, am57xx-evm  
LCPD–12680 P3-Medium Seeing i2c timeout error and board failed to boot Audio & Display   k2g-evm  
LCPD–12511 P3-Medium Audio record is not working Audio & Display   am57xx-evm  
LCPD–11138 P3-Medium VIP driver multi-channel capture issue with TVP5158 Audio & Display Capture, VIP am571x-idk, am572x-idk, am574x-idk, am574x-hsidk, am57xx-evm  
LCPD–10954 P3-Medium DSS sync-losts and underflows seen with bad config Audio & Display Display am437x-sk  
LCPD–7735 P3-Medium Powerdomain (vpe_pwrdm) didn’t enter target state 0 Audio & Display, Power & Thermal   am57xx-evm  
LCPD–7696 P3-Medium DRA7xx: VPE: File2File checksum changes across multiple runs Audio & Display   am571x-idk, am572x-idk, am57xx-evm There is no workaround for this issue yet. No visual artifacts, but checksum on initial frame differs as couple of bytes are incorrect
LCPD–7693 P3-Medium VIP: OV1063x: Video artifacts in LVDS cameras Audio & Display Capture    
LCPD–6377 P3-Medium OMAP_BO_CACHED feature not functional Audio & Display, Multimedia Display am437x-idk, am437x-sk, am43xx-gpevm, am571x-idk, am572x-idk, am57xx-evm, k2g-evm  
LCPD–5380 P3-Medium omapdss error: HDMI I2C Master Error Audio & Display   AM572x Occurs only with this monitor -https://www.amazon.com/gp/product/B00PFLZV2G
LCPD–4858 P4-Low Power: pm_debug state counters are not increased during suspend Power & Thermal   AM335x, AM437x  
LCPD–4779 P4-Low coreaon, wkupaon and rtc power domains OFF counters are increasing during SUSPEND Power & Thermal   AM571x, AM572x  
LCPD–1191 P4-Low AM335x: Power: System resumes due to wakeup source USB1_PHY without any external trigger Power & Thermal     Use GPIO interrupt instead of USB PHY for wakeup source.
LCPD–1013 P4-Low AM335x: Power: Seldom short-duration power increase (~38mw) in VDDSHV4 domain Power & Thermal      
LCPD–10455 P4-Low remoteproc/keystone: Hang observed while running RPMSG_PROTO example app IPC DSP_remoteproc k2g-evm, k2g-ice, k2hk-evm, k2l-evm  
LCPD–9801 P4-Low remoteproc/davinci: DSP boot is broken after a suspend/resume cycle IPC DSP_remoteproc omapl138-lcdk  
LCPD–9481 P4-Low Sometime the system hangs while loading the rpmsg rpc modules IPC RPMSG-RPC am571x-idk, am572x-idk, am57xx-evm, am57xx-hsevm  
LCPD–7495 P4-Low Sometimes a Kernel Warning + Oops is seen when removing keystone_remoteproc module IPC   k2hk-evm  
LCPD–4855 P4-Low [rpmsg 2015 LTS] J6Eco: IPC: Board hangs when an MMU fault occurs in the first message IPC   am572x-idk  
LCPD–4699 P4-Low rpmsg-rpc: kernel crash during error recovery with dynamic debug traces enabled IPC   am571x-idk, am572x-idk, am57xx-evm  
LCPD–12783 P4-Low Missing instruction for pcie-ep config on k2g-evm for 4.14 kernel Connectivity   k2g-evm  
LCPD–11570 P4-Low Base ubi filesystem could not be mounted as ubifs on k2g-evm Connectivity   k2g-evm  
LCPD–9589 P4-Low I2C: Sometimes i2c read write failed on farm01 and farm02 Connectivity   am335x-evm  
LCPD–9222 P4-Low PRUSS Ethernet does not work on AM572x ES1.1 Connectivity PRUSS-Ethernet am572x-idk  
LCPD–8477 P4-Low K2: serdes nodes doesn’t have a functional clock Connectivity SERDES k2e-evm, k2e-hsevm, k2g-evm, k2g-ice, k2hk-evm, k2hk-hsevm, k2l-evm, k2l-hsevm  
LCPD–8270 P4-Low K2: SerDes driver need to enable PD of the peripheral before access the SerDes h/w Connectivity SERDES k2g-evm  
LCPD–7998 P4-Low Realtime OSADL Test results degraded slightly for am572x-idk Connectivity   am572x-idk  
LCPD–7903 P4-Low Uboot phy startup failed and dhcp failed occasionally on k2 board Connectivity   k2g-evm, k2hk-evm  
LCPD–7480 P4-Low K2L/E EVMs doesn’t boot to Linux when both 1G Ethernet interfaces are connected Connectivity   k2e-evm, k2l-evm  
LCPD–7188 P4-Low PCIe-SATA test failed Connectivity   am57xx-evm TI custom board would help with signal integrity issues being seen with the EVM.
LCPD–1207 P4-Low AM43XX/AM57XX: CONNECTIVITY: dwc3_omap on am43xx and xhci_plat_hcd on dra7 - removal results in segmentation fault Connectivity USB    
LCPD–998 P4-Low MUSB does not free urbs causing usb audio playback to fail Connectivity   AM335x  
LCPD–671 P4-Low AM33XX: CONNECTIVITY: MUSB in PIO mode - video issues Connectivity      
LCPD–525 P4-Low AM438x: Connectivity: I2C operates 9% beyond desired frequency Connectivity      
LCPD–10223 P4-Low Keystone-2 Linking RAM region 0 size register REGION0_SIZE programming Baseport   k2hk-evm  
LCPD–6075 P4-Low BUG: using smp_processor_id() in preemptible [00000000] code during remoteproc suspend/resume Baseport, IPC   am572x-idk, am57xx-evm  
LCPD–9098 P4-Low Writeback: error prints seen when doing wb capture Audio & Display Capture, Display, Writeback am571x-idk, am572x-idk, am57xx-evm  
LCPD–8884 P4-Low VIP does not work after incorrectly configuring captured YUYV frame as NV12 Audio & Display Capture, VIP    
LCPD–5059 P4-Low omapdrm: moving plane from one enabled display to another causes errors Audio & Display Display    
LCPD–4681 P4-Low omapdrm: an error when enabling a display is not handled correctly Audio & Display Display    
LCPD–1171 P4-Low DMM errata i878 (framebuffer part) Audio & Display Display, TILER am571x-idk, am572x-idk, am57xx-evm  

2.1.7.7. RT Linux Kernel Known Issues

Record ID Priority Title Component Subcomponent Platform Workaround
LCPD-6663 P3-Medium [RT] Kmemleak is buggy and boot is crashed randomly Baseport      
LCPD-7623 P3-Medium Seeing SPI transfer failed error sometimes on k2hk when using rt kernel Connectivity SPI k2hk-evm  
LCPD-11546 P3-Medium Rare kernel crash triggered by task_blocks_on_rt_mutex Baseport   am574x-idk, k2e-evm  
LCPD-11568 P3-Medium dhcp failed to get IP address after reboot for K2G-ICE non-RT linux Baseport u-boot k2g-ice  

Installation and Usage

The Software Developer’s Guide provides instructions on how to setup up your Linux development environment, install the SDK and start your development.  It also includes User’s Guides for various Example Applications and Code Composer Studio.


Host Support

The Processor SDK is developed, built and verified on Ubuntu 14.04 and 16.04.   Details on how to create a virtual machine to load Ubuntu 14.04 are described in this page.

Note

Processor SDK Installer is 64-bit, and installs only on 64-bit host machine. Support for 32-bit host is dropped as Linaro toolchain is available only for 64-bit machines


2.2. Performance Guide

2.2.1. Kernel Performance Guide

Read This First

All performance numbers provided in this document are gathered using following Evaluation Modules unless otherwise specified.

Name Description
AM335x AM335x Evaluation Module rev 1.5B with ARM running at 1000MHz, DDR3-400 (400MHz/800 MT/S), TMDXEVM3358
AM437x-gpevm AM437x-gpevm Evaluation Module rev 1.5A with ARM running at 1000MHz, DDR3-400 (400MHz/800 MT/S), TMDSEVM437X
AM572x EVM AM57xx Evaluation Module rev A2 with ARM running at 1500MHz, DDR3L-533 (533 MHz/1066 MT/S), TMDSEVM572x
K2HK EVM K2 Hawkings Evaluation Module rev 40 with ARM running at 1200MHz, DDR3-1600 (800 MHz/1600 MT/S), EVMK2H
K2G EVM K2 Galileo Evaluation Module rev C, DDR3-1333 (666 MHz/1333 MT/S), EVMK2G

Table: Evaluation Modules


About This Manual

This document provides performance data for each of the device drivers which are part of the Process SDK Linux package. This document should be used in conjunction with release notes and user guides provided with the Process SDK Linux package for information on specific issues present with drivers included in a particular release.

If You Need Assistance

For further information or to report any problems, contact http://community.ti.com/ or http://support.ti.com/

Linux Kernel

System Benchmarks

LMBench

LMBENCH / host LMBENCH_L_PERF_HostSide am335x-evm am437x-evm am57xx-evm k2g-evm omapl138-lcdk
af_unix_sock_stream_latency (microsec) 43.04 26.38 25.08 47.4 691.75
af_unix_socket_stream_bandwidt (MBs) 181.55 185.87 2213.87 676.85 28.96
bw_file_rd-io-1mb (MB/s) 183.76 198.69 1162.4 579.71 39.86
bw_file_rd-o2c-1mb (MB/s) 159.01 168.18 894.13 456.0 36.59
bw_mem-bcopy-16mb (MB/s) 155.15 193.06 1945.05 1243.78 36.59
bw_mem-bcopy-1mb (MB/s) 194.25 198.22 4936.4 1337.92 91.23
bw_mem-bcopy-2mb (MB/s) 203.29 196.54 3133.7 1241.46 91.05
bw_mem-bcopy-4mb (MB/s) 212.15 197.18 2063.63 1231.34 90.46
bw_mem-bcopy-8mb (MB/s) 219.11 197.84 1965.36 1238.01 91.48
bw_mem-bzero-16mb (MB/s) 995.09 672.64 4974.35 3391.27 146.3
bw_mem-bzero-1mb (MB/s) 588.05 (min 194.25, max 981.84) 436.49 (min 198.22, max 674.76) 5283.82 (min 4936.4, max 5631.24) 2930.13 (min 1337.92, max 4522.33) 119.23 (min 91.23, max 147.23)
bw_mem-bzero-2mb (MB/s) 593.69 (min 203.29, max 984.09) 435.03 (min 196.54, max 673.51) 4416.36 (min 3133.7, max 5699.02) 2549.74 (min 1241.46, max 3858.02) 118.75 (min 91.05, max 146.45)
bw_mem-bzero-4mb (MB/s) 598.32 (min 212.15, max 984.49) 434.95 (min 197.18, max 672.72) 3719.54 (min 2063.63, max 5375.44) 2434.52 (min 1231.34, max 3637.69) 118.82 (min 90.46, max 147.17)
bw_mem-bzero-8mb (MB/s) 612.51 (min 219.11, max 1005.91) 435.11 (min 197.84, max 672.38) 3543.09 (min 1965.36, max 5120.82) 2374.16 (min 1238.01, max 3510.31) 118.86 (min 91.48, max 146.24)
bw_mem-cp-16mb (MB/s) 157.83 195.57 1043.36 605.3 146.95
bw_mem-cp-1mb (MB/s) 597.9 (min 198.45, max 997.34) 437.43 (min 201.11, max 673.74) 5018.3 (min 4390.99, max 5645.6) 2737.33 (min 602.77, max 4871.89) 123.6 (min 100.24, max 146.95)
bw_mem-cp-2mb (MB/s) 591.38 (min 195.1, max 987.65) 436.32 (min 199.46, max 673.17) 3403.48 (min 1203.73, max 5603.22) 2279.04 (min 605.51, max 3952.57) 122.17 (min 97.84, max 146.5)
bw_mem-cp-4mb (MB/s) 602.16 (min 197.51, max 1006.8) 436.59 (min 200.46, max 672.72) 3147.15 (min 1050.97, max 5243.32) 2100.14 (min 573.81, max 3626.47) 122.34 (min 97.76, max 146.92)
bw_mem-cp-8mb (MB/s) 601.77 (min 202.15, max 1001.38) 436.97 (min 201.39, max 672.55) 3082.54 (min 1044.25, max 5120.82) 2050.91 (min 608.37, max 3493.45) 123.17 (min 99.5, max 146.83)
bw_mem-fcp-16mb (MB/s) 274.7 192.96 1085.78 608.3 147.23
bw_mem-fcp-1mb (MB/s) 636.12 (min 290.4, max 981.84) 434.43 (min 194.1, max 674.76) 4255.77 (min 2880.29, max 5631.24) 2565.17 (min 608.0, max 4522.33) 106.65 (min 66.07, max 147.23)
bw_mem-fcp-2mb (MB/s) 634.56 (min 285.02, max 984.09) 433.28 (min 193.05, max 673.51) 3442.98 (min 1186.94, max 5699.02) 2215.01 (min 572.0, max 3858.02) 106.47 (min 66.48, max 146.45)
bw_mem-fcp-4mb (MB/s) 640.31 (min 296.12, max 984.49) 432.59 (min 192.45, max 672.72) 3224.13 (min 1072.82, max 5375.44) 2115.06 (min 592.42, max 3637.69) 106.41 (min 65.64, max 147.17)
bw_mem-fcp-8mb (MB/s) 652.16 (min 298.4, max 1005.91) 432.64 (min 192.9, max 672.38) 3087.91 (min 1054.99, max 5120.82) 2059.59 (min 608.87, max 3510.31) 106.21 (min 66.18, max 146.24)
bw_mem-frd-16mb (MB/s) 249.55 242.95 919.06 730.96 126.66
bw_mem-frd-1mb (MB/s) 279.99 (min 269.58, max 290.4) 222.08 (min 194.1, max 250.06) 2985.88 (min 2880.29, max 3091.47) 724.59 (min 608.0, max 841.18) 96.21 (min 66.07, max 126.34)
bw_mem-frd-2mb (MB/s) 270.5 (min 255.98, max 285.02) 218.21 (min 193.05, max 243.37) 1672.22 (min 1186.94, max 2157.5) 657.2 (min 572.0, max 742.39) 96.76 (min 66.48, max 127.03)
bw_mem-frd-4mb (MB/s) 273.01 (min 249.89, max 296.12) 217.32 (min 192.45, max 242.19) 1071.24 (min 1069.66, max 1072.82) 661.24 (min 592.42, max 730.06) 96.38 (min 65.64, max 127.11)
bw_mem-frd-8mb (MB/s) 274.0 (min 249.59, max 298.4) 218.21 (min 192.9, max 243.52) 986.16 (min 917.33, max 1054.99) 669.63 (min 608.87, max 730.39) 96.82 (min 66.18, max 127.45)
bw_mem-fwr-16mb (MB/s) 995.89 672.35 4973.58 3390.19 146.65
bw_mem-fwr-1mb (MB/s) 633.46 (min 269.58, max 997.34) 461.9 (min 250.06, max 673.74) 4368.54 (min 3091.47, max 5645.6) 2856.54 (min 841.18, max 4871.89) 136.65 (min 126.34, max 146.95)
bw_mem-fwr-2mb (MB/s) 621.82 (min 255.98, max 987.65) 458.27 (min 243.37, max 673.17) 3880.36 (min 2157.5, max 5603.22) 2347.48 (min 742.39, max 3952.57) 136.77 (min 127.03, max 146.5)
bw_mem-fwr-4mb (MB/s) 628.35 (min 249.89, max 1006.8) 457.46 (min 242.19, max 672.72) 3156.49 (min 1069.66, max 5243.32) 2178.27 (min 730.06, max 3626.47) 137.02 (min 127.11, max 146.92)
bw_mem-fwr-8mb (MB/s) 625.49 (min 249.59, max 1001.38) 458.04 (min 243.52, max 672.55) 3019.08 (min 917.33, max 5120.82) 2111.92 (min 730.39, max 3493.45) 137.14 (min 127.45, max 146.83)
bw_mem-rd-16mb (MB/s) 252.08 370.24 3039.51 2442.0 137.28
bw_mem-rd-1mb (MB/s) 632.54 (min 271.7, max 993.38) 326.16 (min 277.93, max 374.39) 12286.96 (min 10893.25, max 13680.66) 1780.64 (min 869.72, max 2691.55) 343.06 (min 135.96, max 550.16)
bw_mem-rd-2mb (MB/s) 620.05 (min 255.2, max 984.9) 321.63 (min 273.97, max 369.28) 8821.85 (min 7389.16, max 10254.53) 1577.89 (min 697.47, max 2458.3) 351.19 (min 137.73, max 564.65)
bw_mem-rd-4mb (MB/s) 628.51 (min 251.73, max 1005.28) 321.84 (min 273.58, max 370.1) 2465.67 (min 1597.44, max 3333.89) 1570.33 (min 701.63, max 2439.02) 348.43 (min 136.48, max 560.38)
bw_mem-rd-8mb (MB/s) 600.78 (min 217.18, max 984.37) 321.69 (min 274.55, max 368.82) 2179.64 (min 1297.65, max 3061.62) 1569.11 (min 698.81, max 2439.4) 349.88 (min 137.48, max 562.27)
bw_mem-rdwr-16mb (MB/s) 202.31 296.81 914.13 569.09 108.22
bw_mem-rdwr-1mb (MB/s) 202.65 (min 198.45, max 206.85) 248.71 (min 201.11, max 296.3) 5663.04 (min 4390.99, max 6935.08) 640.31 (min 602.77, max 677.85) 104.07 (min 100.24, max 107.89)
bw_mem-rdwr-2mb (MB/s) 199.09 (min 195.1, max 203.07) 247.71 (min 199.46, max 295.95) 2603.87 (min 1203.73, max 4004.0) 588.02 (min 570.53, max 605.51) 103.01 (min 97.84, max 108.17)
bw_mem-rdwr-4mb (MB/s) 200.21 (min 197.51, max 202.91) 247.66 (min 200.46, max 294.85) 1073.73 (min 1050.97, max 1096.49) 572.42 (min 571.02, max 573.81) 103.02 (min 97.76, max 108.28)
bw_mem-rdwr-8mb (MB/s) 202.31 (min 202.15, max 202.46) 247.52 (min 201.39, max 293.65) 986.87 (min 929.48, max 1044.25) 589.72 (min 571.06, max 608.37) 103.78 (min 99.5, max 108.06)
bw_mem-wr-16mb (MB/s) 995.77 274.69 1273.07 696.44 565.87
bw_mem-wr-1mb (MB/s) 600.12 (min 206.85, max 993.38) 287.12 (min 277.93, max 296.3) 10307.87 (min 6935.08, max 13680.66) 773.79 (min 677.85, max 869.72) 329.03 (min 107.89, max 550.16)
bw_mem-wr-2mb (MB/s) 593.99 (min 203.07, max 984.9) 284.96 (min 273.97, max 295.95) 7129.27 (min 4004.0, max 10254.53) 634.0 (min 570.53, max 697.47) 336.41 (min 108.17, max 564.65)
bw_mem-wr-4mb (MB/s) 604.1 (min 202.91, max 1005.28) 284.22 (min 273.58, max 294.85) 1346.97 (min 1096.49, max 1597.44) 636.33 (min 571.02, max 701.63) 334.33 (min 108.28, max 560.38)
bw_mem-wr-8mb (MB/s) 593.42 (min 202.46, max 984.37) 284.1 (min 274.55, max 293.65) 1113.57 (min 929.48, max 1297.65) 634.94 (min 571.06, max 698.81) 335.17 (min 108.06, max 562.27)
bw_mmap_rd-mo-1mb (MB/s) 265.6 257.8 3079.15 822.23 96.94
bw_mmap_rd-o2c-1mb (MB/s) 183.72 193.01 1214.43 450.59 82.13
bw_pipe (MB/s) 258.8 359.52 579.67 381.68 26.15
bw_unix (MB/s) 181.55 185.87 2213.87 676.85 28.96
lat_connect (us) 73.15 60.89 51.95 82.41 1082.33
lat_ctx-2-128k (us) 219.99 196.21 10.59 14.18 76.23
lat_ctx-2-256k (us) 613.53 624.95 10.42 106.75 170.67
lat_ctx-4-128k (us) 470.73 454.47 9.2 74.38 206.3
lat_ctx-4-256k (us) 794.69 669.21 9.34 74.04 224.42
lat_fs-0k (num_files) 232.0 287.0 339.0 230.0 20.0
lat_fs-10k (num_files) 80.0 86.0 141.0 93.0 8.0
lat_fs-1k (num_files) 128.0 133.0 177.0 134.0 11.0
lat_fs-4k (num_files) 118.0 149.0 201.0 137.0 11.0
lat_mem_rd-stride128-sz1000k (ns) 432.71 205.55 12.83 124.69 240.39
lat_mem_rd-stride128-sz125k (ns) 11.66 16.05 12.68 20.06 229.81
lat_mem_rd-stride128-sz250k (ns) 70.47 38.08 12.82 20.16 229.91
lat_mem_rd-stride128-sz31k (ns) 3.01 9.25 6.48 18.06 186.16
lat_mem_rd-stride128-sz50 (ns) 3.01 4.01 2.67 4.01 5.04
lat_mem_rd-stride128-sz500k (ns) 430.44 161.22 12.82 35.83 241.72
lat_mem_rd-stride128-sz62k (ns) 9.14 16.93 12.68 19.06 231.85
lat_mmap-1m (us) 239.0 133.0 50.0 81.0 624.0
lat_ops-double-add (ns) 2.37 1.01 0.73 1.09 36.63
lat_ops-double-mul (ns) 11.03 7.02 3.34 5.02 103.95
lat_ops-float-add (ns) 2.29 0.92 0.73 1.1 21.54
lat_ops-float-mul (ns) 10.07 6.03 3.34 5.01 66.03
lat_ops-int-add (ns) 1.0 1.03 0.67 1.0 1.69
lat_ops-int-bit (ns) 0.67 0.67 0.45 0.67 2.55
lat_ops-int-div (ns) 72.79 96.14 60.12 90.7 190.92
lat_ops-int-mod (ns) 23.45 22.3 8.92 13.38 88.3
lat_ops-int-mul (ns) 6.07 4.06 2.09 3.14 6.65
lat_ops-int64-add (ns) 1.21 1.38 0.74 1.11 5.29
lat_ops-int64-bit (ns) 1.03 1.04 0.68 1.02 2.58
lat_ops-int64-div (ns) 210.08 200.62 124.17 185.6 858.36
lat_ops-int64-mod (ns) 55.82 46.9 22.04 33.11 248.69
lat_pagefault (us) 1.74 1.38 0.96 1.63 7.98
lat_pipe (us) 37.36 20.26 27.28 36.91 502.93
lat_proc-exec (us) 1324.25 1254.6 567.4 905.83 7763.0
lat_proc-fork (us) 1275.4 1073.2 529.2 850.67 7127.0
lat_proc-proccall (us) 0.02 0.01 0.01 0.01 0.29
lat_select (us) 42.4 35.88 27.78 47.77 175.97
lat_sem (us) 5.69 3.24 2.04 4.82 80.26
lat_sig-catch (us) 13.14 6.89 3.34 5.21 48.99
lat_sig-install (us) 1.39 0.88 0.62 0.98 6.16
lat_sig-prot (us) 0.54 0.35 0.27 0.62  
lat_syscall-fstat (us) 3.13 2.65 2.38 3.78 31.35
lat_syscall-null (us) 0.58 0.42 0.32 0.5 2.57
lat_syscall-open (us) 256.0 244.0 150.94 200.81 1548.75
lat_syscall-read (us) 1.02 0.79 0.44 0.62 5.28
lat_syscall-stat (us) 7.72 6.2 5.43 8.36 100.49
lat_syscall-write (us) 0.69 0.55 0.35 0.52 4.15
lat_tcp (us) 1.04 0.75 0.54 0.81 7.18
lat_unix (us) 43.04 26.38 25.08 47.4 691.75
latency_for_0.50_mb_block_size (nanosec) 430.44 161.22 12.82 35.83 241.72
latency_for_1.00_mb_block_size (nanosec) 216.36 (min 0.0, max 432.71) 102.77 (min 0.0, max 205.55) 6.41 (min 0.0, max 12.83) 62.34 (min 0.0, max 124.69) 120.19 (min 0.0, max 240.39)
pipe_bandwidth (MBs) 258.8 359.52 579.67 381.68 26.15
pipe_latency (microsec) 37.36 20.26 27.28 36.91 502.93
procedure_call (microsec) 0.02 0.01 0.01 0.01 0.29
select_on_200_tcp_fds (microsec) 42.4 35.88 27.78 47.77 175.97
semaphore_latency (microsec) 5.69 3.24 2.04 4.82 80.26
signal_handler_latency (microsec) 1.39 0.88 0.62 0.98 6.16
signal_handler_overhead (microsec) 13.14 6.89 3.34 5.21 48.99
tcp_ip_connection_cost_to_loca (microsec) 73.15 60.89 51.95 82.41 1082.33
tcp_latency_using_localhost (microsec) 1.04 0.75 0.54 0.81 7.18

Table: LM Bench Metrics

Dhrystone

ARM Benchmarks / host Dhrystone_S_PERF_HostSide am335x-evm am437x-evm am57xx-evm k2g-evm omapl138-lcdk
dhrystone_per_mhz (DMIPS/MHz) 2.2 2.5 3.3 3.6 1.4
dhrystone_per_second (DhrystoneP) 3846153.8 4444444.5 8695652.0 6451613.0 546448.1

Table: Dhrystone Benchmark

Whestone

ARM Benchmarks / host Whetstone_S_PERF_HostSide am335x-evm am437x-evm am57xx-evm k2g-evm omapl138-lcdk
whetstone (MIPS) 555.6 2000.0 3333.3 2500.0 31.6

Table: Whestone Benchmark

Linpack

ARM Benchmarks / host Linpack_S_PERF_HostSide am335x-evm am437x-evm am57xx-evm k2g-evm omapl138-lcdk
linpack (Kflops) 56034.0 180246.0 1030103.0 691020.0 7362.0

Table: Linpack Benchmark

NBench

ARM Benchmarks / host NBench_S_PERF_HostSide am335x-evm am437x-evm am57xx-evm k2g-evm omapl138-lcdk
assignment (Iterations) 8.17 8.42 17.09 11.58 0.94
fourier (Iterations) 1829.8 7199.6 12404.0 8377.0 125.15
fp_emulation (Iterations) 80.31 88.34 169.63 112.95 17.74
huffman (Iterations) 806.67 883.92 1403.6 933.77 207.33
idea (Iterations) 1532.8 1652.2 4382.1 2918.6 450.87
lu_decomposition (Iterations) 75.17 335.84 700.98 554.62 5.74
neural_net (Iterations) 2.0 8.45 22.11 15.09 0.19
numeric_sort (Iterations) 388.71 593.25 700.44 444.99 92.37
string_sort (Iterations) 66.75 63.91 139.33 93.91 6.08

Table: NBench Benchmarks

Stream

ARM Benchmarks / host Stream_1_core_S_PERF_Hostside am335x-evm am437x-evm am57xx-evm k2g-evm
add (MB/s) 487.3 598.9 3701.5 2335.6
copy (MB/s) 434.3 407.1 3841.7 2443.3
scale (MB/s) 533.1 650.3 4262.1 2372.7
triad (MB/s) 458.2 368.6 3710.5 2266.3

Table: Stream

Interrupt Latency Measurement

The following table gives interrupt latency measurements taken across 1001 measurement samples.

Interrupt Latency (in micro seconds) Number of samples (under 0% cpu load) (1001 total samples) Number of samples (under 100% cpu load using hackbench ``hackbench -P -l -1 -g 10``) (501 total samples)
10 25 0
11 265 25
12 531 249
13 167 203
14 11 24
15 2 0

Table: Interrupt Latency Measurement


Boot-time Measurement

Boot media: MMCSD

Boot Configuration am335x-evm: boot time (sec) am437x-evm: boot time (sec) am57xx-evm: boot time (sec) k2g-evm: boot time (sec) omapl138-lcdk: boot time (sec)
Kernel boot time test when bootloader, kernel and sdk-rootfs are in mmc-sd 29.11 (min 28.74, max 29.79) 28.19 (min 26.05, max 33.63) 15.92 (min 15.63, max 16.41) 26.81 (min 25.79, max 27.94) 104.72 (min 103.55, max 106.85)
Kernel boot time test when init is /bin/sh and bootloader, kernel and sdk-rootfs are in mmc-sd 5.57 (min 5.56, max 5.58) 5.18 (min 5.17, max 5.22) 5.9 (min 5.87, max 5.97) 7.57 10.98 (min 10.79, max 11.62)

Table: ‘

ALSA SoC Audio Driver

  1. Access type - RW_INTERLEAVED
  2. Channels - 2
  3. Format - S16_LE
  4. Period size - 64

Sampling Rate (Hz) am335x-evm: Throughput (bits/sec) am335x-evm: CPU Load (%) am437x-evm: Throughput (bits/sec) am437x-evm: CPU Load (%) am57xx-evm: Throughput (bits/sec) am57xx-evm: CPU Load (%) k2g-evm: Throughput (bits/sec) k2g-evm: CPU Load (%) omapl138-lcdk: Throughput (bits/sec) omapl138-lcdk: CPU Load (%)
8000 255999.0 0.88 256000.0 0.31 255991.0 0.09     256006.0 2.38
11025 352799.0 2.74 352800.0 0.58 352791.0 0.13 352799.0 0.39 352811.0 3.3
16000 511998.0 0.94 512000.0 0.18 511981.0 0.16     512021.0 5.34
22050 705597.0 4.94 705600.0 1.03 705581.0 0.24 705598.0 0.76 705637.0 5.78
24000 705597.0 4.72 705600.0 0.91 705581.0 0.17     705637.0 6.07
32000 1023994.0 0.97 1024000.0 0.17 1023963.0 0.23     1024074.0 7.91
44100 1411190.0 8.46 1411200.0 1.75 1411161.0 0.42 1411195.0 1.35 1411336.0 11.89
48000 1535988.0 2.01 1536000.0 0.23 1535943.0 0.44     1536160.0 12.85
88200 2822365.0 16.53 2822395.0 2.95 2822321.0 0.8 2822387.0 2.87 2729820.0 24.61
96000 3071957.0 22.71 3071994.0 0.23 3071885.0 1.26     2962544.0 26.59

Table: Audio Capture


Sampling Rate (Hz) am335x-evm: Throughput (bits/sec) am335x-evm: CPU Load (%) am437x-evm: Throughput (bits/sec) am43xx-gpevm: CPU Load (%) am57xx-evm: Throughput (bits/sec) am57xx-evm: CPU Load (%) k2g-evm: Throughput (bits/sec) k2g-evm: CPU Load (%) omapl138-lcdk: Throughput (bits/sec) omapl138-lcdk: CPU Load (%)
8000 256101.0 3.18 256102.0 0.37 256096.0 0.09     256109.0 2.65
11025 352939.0 2.64 352940.0 0.49 352935.0 0.11 352942.0 0.36 352952.0 3.11
16000 512202.0 0.88 512203.0 0.15 512191.0 0.16     512225.0 4.65
22050 705878.0 4.58 705880.0 0.91 705870.0 0.23 705884.0 0.75 705919.0 5.94
24000 705878.0 4.54 705880.0 0.88 705870.0 0.19     705919.0 5.75
32000 1024402.0 0.95 1024407.0 0.21 1024382.0 0.22     1024482.0 8.61
44100 1411752.0 7.81 1411760.0 1.44 1411740.0 0.42 1411766.0 1.25 1411899.0 11.12
48000 1536599.0 13.95 1536609.0 3.08 1536573.0 0.49     1536771.0 12.99
88200 2823489.0 16.07 2823514.0 2.87 2823479.0 0.78 2823530.0 2.5 2731798.0 23.52
96000 3073203.0 23.34 3073213.0 0.19 3071806.0 0.65     2964908.0 26.65

Table: Audio Playback


Sensor Capture

Capture video frames (MMAP buffers) with v4l2c-ctl and record the reported fps

Resolution Format am43xx-gpevm: Fps am43xx-gpevm: Sensor am57xx-evm: Fps am57xx-evm: Sensor
1280x800 nv12        
1280x800 rgb4        
1280x800 yuyv        
1600x1200 ba81 14.56 (min 14.56, max 14.57) ov2659    
1600x1200 yuyv 14.56 (min 14.56, max 14.57) ov2659    
160x128 nv12     40.88 (min 40.79, max 41.0) mt9t111
160x128 rgb4     40.88 (min 40.79, max 41.0) mt9t111
2048x1536 nv12     6.63 (min 6.14, max 6.68) mt9t111
2048x1536 rgb4     6.63 (min 6.14, max 6.68) mt9t111
320x240 ba81 43.78 (min 43.7, max 44.0) ov2659    
320x240 nv12        
320x240 rgb4        
320x240 yuyv 43.78 (min 43.7, max 44.0) ov2659    

Table: Sensor Capture


Display Driver

Mode am335x-evm: Fps am43xx-gpevm: Fps am57xx-evm: Fps k2g-evm: Fps
1920x1200@60        
480x272@60       59.94 (min 59.93, max 59.95)
800x480@60   59.52 (min 59.34, max 59.7) 59.52 (min 59.5, max 59.54)  
800x480@62 61.81 (min 59.9, max 61.96)      

Table: Display performance (LCD)



Mode am335x-evm: Fps am43xx-gpevm: Fps am57xx-evm: Fps k2g-evm: Fps
1024x576@60 59.97 (min 59.43, max 60.51) 58.49 (min 51.4, max 60.0) 59.97 (min 59.95, max 59.99) 60.01 (min 60.0, max 60.01)
1024x768@60     60.0 (min 59.98, max 60.02)  
1024x768@70     70.07 (min 69.88, max 70.26)  
1024x768@75     75.03 (min 74.78, max 75.31)  
1152x864@75     75.0 (min 74.76, max 75.22)  
1280x1024@60     60.02 (min 60.0, max 60.04)  
1280x1024@75     75.03 (min 74.99, max 75.06)  
1280x720@60 60.0 (min 59.38, max 60.62) 60.0 60.0 (min 59.98, max 60.02) 60.0
1280x768@60     59.87 (min 59.85, max 59.89)  
1280x768@75     74.89 (min 74.84, max 74.98)  
1280x800@60     59.81 (min 59.79, max 59.83)  
1280x800@75     74.93 (min 74.9, max 74.96)  
1280x960@60     60.0 (min 59.98, max 60.03)  
1360x768@60     59.95 (min 59.93, max 59.97)  
1400x1050@60     59.98 (min 59.96, max 60.0)  
1400x1050@75     74.87 (min 74.83, max 74.9)  
1440x900@60     59.89 (min 59.87, max 59.91)  
1440x900@75     74.98 (min 74.95, max 75.02)  
1600x1200@60     60.0 (min 59.98, max 60.02)  
1600x1200@65     65.0 (min 64.97, max 65.03)  
1600x900@60     60.0 (min 59.98, max 60.02)  
1680x1050@60     59.95 (min 59.93, max 59.98)  
1680x945@60     60.02 (min 59.99, max 60.04)  
1920x1080@60     60.0 (min 59.97, max 60.03)  
2048x1152@60     60.0 (min 59.97, max 60.03)  
640x480@60 59.99 (min 59.02, max 60.01)   60.0 (min 59.98, max 60.02)  
640x480@73 72.74 (min 71.61, max 73.51)   72.81 (min 72.78, max 72.84)  
640x480@75 74.92 (min 72.47, max 75.12)   75.0 (min 74.97, max 75.03)  
720x400@70 70.05 (min 68.93, max 70.46)   70.08 (min 70.06, max 70.11)  
800x600@56 56.22 (min 55.32, max 56.26)   56.25 (min 56.23, max 56.27)  
800x600@60 60.32 (min 59.57, max 61.09)   60.32 (min 60.3, max 60.34)  
800x600@72 72.17 (min 71.0, max 72.57) 72.19 (min 72.18, max 72.2) 72.19 (min 71.94, max 72.44) 72.19 (min 72.18, max 72.19)
800x600@75 74.95 (min 73.77, max 75.01) 70.95 (min 48.39, max 75.79) 75.0 (min 74.97, max 75.03) 75.0 (min 74.99, max 75.01)
832x624@75 74.5 (min 73.33, max 75.42) 74.55 (min 74.54, max 74.57) 74.55 (min 74.52, max 74.58) 74.57 (min 74.56, max 74.58)
848x480@60 60.0 (min 59.99, max 60.01)   60.0 (min 59.98, max 60.02)  

Table: Display performance (HDMI)


Graphics SGX Driver

Run GLBenchmark and capture performance reported Display rate (Fps), Fill rate, Vertex Throughput, etc. All display outputs (HDMI and LCD) are connected when running these tests

Performance (Fps)

Benchmark Test Number am335x-evm: Fps Test Number am43xx-gpevm: Fps Test Number am57xx-evm: Fps
GLB25_EgyptTestC24Z16FixedTime test 2500005.0 5.08 (min 2.4, max 13.85) 2500005.0 5.2 (min 2.41, max 14.18) 2500005.0 38.66 (min 21.45, max 59.4)
GLB25_EgyptTestC24Z16_ETC1 test 2501001.0 6.2 (min 2.17, max 13.99) 2501001.0 6.36 (min 2.21, max 14.41) 2501001.0 45.49 (min 20.88, max 60.47)
GLB25_EgyptTestC24Z16_ETC1to565 test 2501401.0 6.2 (min 1.02, max 14.36) 2501401.0 6.37 (min 2.2, max 14.4) 2501401.0 45.5 (min 21.02, max 60.05)
GLB25_EgyptTestC24Z16_PVRTC4 test 2501101.0 6.02 (min 2.36, max 13.81) 2501101.0 6.22 (min 2.15, max 13.96) 2501101.0 45.38 (min 21.13, max 59.92)
GLB25_EgyptTestC24Z24MS4 test 2500003.0 5.18 (min 1.95, max 11.62) 2500003.0 5.41 (min 1.95, max 11.92) 2500003.0 44.07 (min 20.05, max 59.58)
GLB25_EgyptTestStandard_inherited test 2000000.0 23.83 (min 15.29, max 36.37) 2000000.0 24.63 (min 15.9, max 37.64) 2000000.0 59.52 (min 59.29, max 59.7)

Table: GLBenchmark 2.5 Performance

Vertex Throughput

Benchmark Test Number am335x-evm: Rate (triangles/sec) Test Number am43xx-gpevm: Rate (triangles/sec) Test Number am57xx-evm: Rate (triangles/sec)
GLB25_TriangleTexFragmentLitTestC24Z16 test 2500511.0 2205701.25 2500511.0 2306408.0 2500511.0 32949374.0
GLB25_TriangleTexTestC24Z16 test 2500301.0 11232186.0 2500301.0 11852763.0 2500301.0 105576472.0
GLB25_TriangleTexVertexLitTestC24Z16 test 2500411.0 3751958.25 2500411.0 4220526.5 2500411.0 39980256.0

Table: GLBenchmark 2.5 Vertex Throughput

Pixel Throughput

Benchmark Test Number am335x-evm: Rate (texel/sec) am335x-evm: Fps Test Number am43xx-gpevm: Rate (texel/sec) am43xx-gpevm: Fps Test Number am57xx-evm: Rate (texel/sec) am57xx-evm: Fps
GLB25_FillTestC24Z16 test 2500101.0 106066112.0 4.33 (min 4.18, max 5.02) 2500101.0 108455432.0 4.43 (min 4.25, max 5.18) 2500101.0 1440882048.0 58.53 (min 52.58, max 59.53)

Table: GLBenchmark 2.5 Pixel Throughput


Multimedia (Decode)

Run gstreamer pipeline “gst-launch-1.0 playbin uri=file://<Path to stream> video-sink=”kmssink sync=false connector=<connector id>” audio-sink=fakesink” and calculate performance based on the execution time reported. All display display outputs (HDMI and LCD) were connected when running these tests, but playout was forced to LCD via the connector=<connector id> option.

H264

Resolution am57xx-evm: Fps am57xx-evm: IVA Freq (MHz) am57xx-evm: IPU Freq (MHz)
1080i 60.6 532.0  
1080p 59.5 532.0  
720p 59.94 532.0  
720x480 60.0 532.0  
800x480 60.0 532.0  

Table: Gstreamer H264 in AVI Container Decode Performance


MPEG4

Resolution am57xx-evm: Fps am57xx-evm: IVA Freq (MHz) am57xx-evm: IPU Freq (MHz)
CIF 60.0 532.0  
QVGA 60.0 532.0  
VGA 63.75 532.0  

Table: GStreamer MPEG4 in 3GP Container Decode Performance


MPEG2

Resolution am57xx-evm: Fps am57xx-evm: IVA Freq (MHz) am57xx-evm: IPU Freq (MHz)
1080p   532.0  
720p 59.94 532.0  

Table: GStreamer MPEG2 in MP4 Container Decode Performance



Ethernet Driver

PCIe Driver

PCIe-ETH

TCP Window Size(Kbytes) k2g-evm: Bandwidth (in Mbits/sec)
8 682.96
16 746.4
32 964.8
64 1191.2
128 1305.6
256 1355.6 (min 1352.0, max 1359.2)

Table: ‘

NAND Driver

AM335X-EVM

Buffer size (bytes) Write UBIFS Throughput (Mbytes/sec) Write UBIFS CPU Load (%) Read UBIFS Throughput (Mbytes/sec) Read UBIFS CPU Load (%)
102400 4.2 59.81 6.18 27.59
262144 4.2 59.14 6.15 27.0
524288 4.2 59.62 6.17 27.01
1048576 4.22 59.39 6.18 27.73
5242880 4.2 58.95 6.16 27.87

Table: ‘

AM43XX-GPEVM

Buffer size (bytes) Write UBIFS Throughput (Mbytes/sec) Write UBIFS CPU Load (%) Read UBIFS Throughput (Mbytes/sec) Read UBIFS CPU Load (%)
102400 6.95 66.31 10.45 40.57
262144 6.95 66.43 10.29 40.9
524288 6.97 65.85 10.36 41.72
1048576 6.95 66.71 10.37 41.55
5242880 6.97 65.9 10.38 40.33

Table: ‘

OMAPL138-LCDK

Buffer size (bytes) Write UBIFS Throughput (Mbytes/sec) Write UBIFS CPU Load (%) Read UBIFS Throughput (Mbytes/sec) Read UBIFS CPU Load (%)
102400 1.29 100.0 1.9 100.0
262144 1.38 100.0 1.92 100.0
524288 1.37 100.0 1.92 100.0
1048576 1.38 100.0 1.93 100.0
5242880 1.38 100.0 1.89 100.0

Table: ‘

QSPI Flash Driver

K2G-EVM

Buffer size (bytes) Write UBIFS Throughput (Mbytes/sec) Write UBIFS CPU Load (%) Read UBIFS Throughput (Mbytes/sec) Read UBIFS CPU Load (%)
102400 0.58 76.01 22.71 11.76
262144 0.57 79.7 22.64 5.88
524288 0.57 80.64 22.78 5.88
1048576 0.57 81.0 22.61 5.88

Table: ‘

SPI Flash Driver

K2G-EVM

Buffer size (bytes) Write UBIFS Throughput (Mbytes/sec) Write UBIFS CPU Load (%) Read UBIFS Throughput (Mbytes/sec) Read UBIFS CPU Load (%)
102400 0.14 51.42 0.23 8.1
262144 0.14 51.48 0.23 9.07
524288 0.14 51.72 0.23 10.42
1048576 0.14 51.43 0.23 7.63

Table: ‘

EMMC Driver

IMPORTANT
The performance numbers can be severely affected if the media is mounted in sync mode. Hot plug scripts in the filesystem mount removable media in sync mode to ensure data integrity. For performance sensitive applications, umount the auto-mounted filesystem and re-mount in async mode.

AM43XX-GPEVM

Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 6.2 8.25 23.72 22.1
262144 6.03 8.55 25.18 29.5
524288 6.03 8.07 25.65 20.87
1048576 5.59 7.43 25.12 18.94
5242880 6.03 8.86 24.71 18.63

Table: ‘


Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 6.0 5.92 24.62 21.33
262144 6.02 6.33 23.85 17.93
524288 5.9 6.03 19.38 14.21
1048576 6.03 6.12 25.91 17.0
5242880 6.01 6.42 25.85 18.78

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 5.77 7.12 25.29 21.18
262144 5.96 7.02 26.0 20.0
524288 5.95 7.47 26.4 18.16
1048576 5.96 7.23 26.4 17.3
5242880 5.83 7.33 26.2 18.05

Table: ‘

AM57XX-EVM

Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 11.48 4.12 65.6 7.35
262144 11.45 3.89 71.86 8.33
524288 11.48 4.12 74.65 9.61
1048576 11.41 4.31 74.77 8.99
5242880 11.45 3.79 74.61 9.03

Table: ‘


Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 12.11 2.78 63.65 7.32
262144 12.02 3.39 76.41 8.06
524288 12.01 3.39 79.77 6.92
1048576 12.07 2.83 79.76 6.59
5242880 12.03 3.06 71.45 6.57

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 11.66 3.95 69.9 5.84
262144 11.6 3.87 75.5 7.58
524288 11.67 3.63 78.49 13.43
1048576 11.58 3.99 78.54 1.61
5242880 11.59 3.5 78.51 6.49

Table: ‘

K2G-EVM

Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 19.98 24.9 39.72 16.15
262144 20.13 24.13 41.56 15.26
524288 20.08 24.62 42.58 16.73
1048576 20.05 24.57 42.62 15.45
5242880 20.0 23.42 42.61 14.69

Table: ‘


Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 20.72 18.98 37.11 13.36
262144 20.74 18.02 38.08 13.45
524288 20.88 17.84 40.33 7.38
1048576 20.17 17.85 40.31 13.41
5242880 20.46 17.93 39.34 12.12

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 19.71 22.47 40.38 14.68
262144 20.07 21.39 42.24 14.63
524288 19.75 22.33 43.12 11.81
1048576 20.1 21.69 43.09 14.69
5242880 20.12 21.39 43.07 13.64

Table: ‘

SATA Driver

AM57XX-EVM

SATA

Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 98.47 35.68 135.97 12.98
262144 97.9 31.29 136.06 11.81
524288 99.09 31.89 135.79 12.29
1048576 98.14 30.67 135.99 11.59
5242880 98.11 31.55 136.16 11.29

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 104.68 26.15 134.82 11.6
262144 105.29 26.96 134.39 11.18
524288 108.56 28.76 134.39 10.17
1048576 105.67 26.35 134.11 11.59
5242880 107.17 28.75 135.11 11.9

Table: ‘


Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 123.87 24.18 133.96 12.43
262144 121.95 19.37 133.62 11.49
524288 119.86 15.94 126.78 9.6
1048576 117.01 16.05 127.82 9.83
5242880 117.12 15.53 127.99 12.45

Table: ‘




  • Filesize used is : 1G
  • SATA II Harddisk used is: Seagate ST3500514NS 500G

mSATA

Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 63.98 5.42 216.91 19.85
262144 63.91 5.07 235.85 21.25
524288 63.9 4.53 251.85 22.13
1048576 63.36 4.8 259.29 21.95
5242880 60.59 4.64 261.0 22.06

Table: ‘


Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 61.39 20.99 220.1 22.06
262144 61.58 20.72 238.34 22.72
524288 61.31 20.32 247.71 23.26
1048576 60.79 20.7 243.87 22.85
5242880 58.33 19.3 219.34 20.95

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 63.12 9.52 226.19 20.41
262144 63.23 9.31 243.11 21.3
524288 63.33 8.5 253.86 21.03
1048576 76.19 9.84 259.33 21.74
5242880 63.08 7.77 257.95 23.65

Table: ‘



  • Filesize used is : 1G
  • MSATA Harddisk used is: SMS200S3/30G Kingston mSATA SSD drive

OMAPL138-LCDK

Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 8.65 98.1 22.11 93.82
262144 10.31 97.74 25.06 96.9
524288 10.05 97.8 24.6 97.89
1048576 10.37 98.82 24.72 99.06
5242880 9.55 98.28 20.65 99.8

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 12.92 97.03 23.4 99.11
262144 13.23 98.36 25.21 98.8
524288 12.27 99.18 26.44 98.99
1048576 13.69 99.22 22.32 99.57
5242880 12.32 98.12 24.41 97.9

Table: ‘


Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 8.86 94.39 21.86 96.62
262144 10.19 91.7 24.86 96.91
524288 10.1 93.41 26.09 99.0
1048576 10.03 90.67 26.78 100.0
5242880 10.02 93.27 24.72 99.52

Table: ‘

MMC/SD Driver

IMPORTANT
The performance numbers can be severely affected if the media is mounted in sync mode. Hot plug scripts in the filesystem mount removable media in sync mode to ensure data integrity. For performance sensitive applications, umount the auto-mounted filesystem and re-mount in async mode.

AM335X-EVM

Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 8.0 9.95 21.24 22.06
262144 9.56 12.36 22.12 18.63
524288 9.15 12.27 21.94 17.66
1048576 7.97 9.15 22.17 15.67
5242880 8.14 9.25 20.06 13.28

Table: ‘


Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 8.84 14.55 20.5 23.17
262144 8.57 13.78 21.22 22.15
524288 8.5 12.81 21.46 19.5
1048576 9.07 14.55 21.35 19.59
5242880 9.03 15.29 20.7 17.71

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 5.05 6.92 21.13 23.71
262144 4.63 6.74 21.96 19.57
524288 4.51 6.35 22.41 19.22
1048576 4.45 6.5 22.48 15.69
5242880 5.83 8.35 22.39 17.71

Table: ‘




The performance numbers were captured using the following:

  • SanDisk 8GB MicroSDHC Class 10 Memory Card
  • Partition was mounted with async option

AM43XX-GPEVM

Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 8.07 8.56 21.76 15.69
262144 8.81 8.98 22.45 16.92
524288 7.8 7.99 19.19 13.81
1048576 7.62 7.59 22.31 15.24
5242880 8.31 8.99 23.01 17.28

Table: ‘


Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 9.47 12.57 21.1 19.31
262144 9.24 12.26 21.65 18.09
524288 8.9 12.61 21.54 16.6
1048576 9.05 12.45 21.5 16.6
5242880 8.92 11.67 20.79 15.67

Table: ‘




The performance numbers were captured using the following:

  • Sandisk Ultra 8GB Micro SDHC Flash Card Class10
  • Partition was mounted with async option

AM57XX-EVM

Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 9.52 2.5 39.52 4.9
262144 9.94 2.52 41.69 4.0
524288 9.05 2.76 43.5 3.15
1048576 10.01 2.86 43.38 5.13
5242880 8.73 2.26 43.07 5.1

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 6.78 2.21 38.87 4.31
262144 7.1 2.28 41.34 4.34
524288 6.61 2.65 42.62 3.49
1048576 6.62 2.78 43.18 3.95
5242880 7.58 3.25 43.18 5.32

Table: ‘


Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 6.99 2.8 39.02 5.08
262144 8.44 3.27 40.64 4.5
524288 8.03 3.56 41.09 4.17
1048576 9.45 3.88 41.08 5.69
5242880 7.46 2.86 42.07 5.06

Table: ‘




The performance numbers were captured using the following:

  • Sandisk Ultra 8GB Micro SDHC Flash Card Class10
  • Partition was mounted with async option

K2G-EVM

Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 5.57 4.86 17.34 6.2
262144 5.3 5.14 15.91 7.19
524288 5.2 4.95 19.73 5.69
1048576 5.56 5.14 17.01 5.37
5242880 4.95 4.66 22.2 6.82

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 5.99 6.86 21.72 8.73
262144 5.49 6.23 22.38 9.3
524288 5.29 5.82 22.73 7.39
1048576 6.64 7.77 22.73 7.59
5242880 5.89 6.11 22.73 8.01

Table: ‘


Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 5.82 7.68 21.36 10.77
262144 9.01 11.79 22.05 8.9
524288 8.41 11.15 22.32 8.14
1048576 7.39 9.53 22.08 8.65
5242880 7.96 9.93 22.05 8.82

Table: ‘



The performance numbers were captured using the following:

  • Sandisk Ultra 8GB Micro SDHC Flash Card Class10
  • Partition was mounted with async option

OMAPL138-LCDK

Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 5.24 88.08 13.91 67.36
262144 5.02 71.34 14.46 64.15
524288 5.17 71.19 13.53 63.67
1048576 5.02 70.22 13.46 62.14
5242880 5.67 75.62 13.51 71.83

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 2.96 39.99 15.4 69.7
262144 3.09 30.86 15.89 65.53
524288 3.11 29.77 16.06 63.58
1048576 3.28 31.76 16.15 63.07
5242880 3.34 31.39 15.47 64.61

Table: ‘


Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 4.1 60.98 14.75 73.75
262144 4.13 53.75 13.7 73.51
524288 4.07 52.91 14.25 63.7
1048576 4.05 56.39 14.59 66.34
5242880 3.96 54.7 13.4 65.7

Table: ‘




The performance numbers were captured using the following:
  • Sandisk Ultra 8GB Micro SDHC Flash Card Class10
  • Partition was mounted with async option

UART Driver

Performance and Benchmarks not available in this release.


I2C Driver

Performance and Benchmarks not available in this release.


EDMA Driver

Performance and Benchmarks not available in this release.


Touchscreen Driver

Performance and Benchmarks not available in this release.


USB Driver

MUSB/XHCI Host controller

IMPORTANT
For Mass-storage applications, the performance numbers can be severely affected if the media is mounted in sync mode. Hot plug scripts in the filesystem mount removable media in sync mode to ensure data integrity. For performance sensitive applications, umount the auto-mounted filesystem and re-mount in async mode.

Setup : Western Digital 1TB (My Book Essential) USB hard disk is connected to usb0 port. File read/write performance data on usb0 port is captured.


USBHOST / host USBHOST_L_PERF_EXT2_0002 am335x-evm am43xx-gpevm am57xx-evm omapl138-lcdk
copy_102400_throughput (MBytes/sec) 18.62 26.30 170.63 0.45
copy_1048576_throughput (MBytes/sec) 18.33 26.18 160.08 0.45
copy_5242880_throughput (MBytes/sec) 18.32 25.30 162.25  
read_102400_cpuload (%) 72.3 46.26 37.5 4.37
read_102400_throughput (MBytes/sec) 12.96 30.22 222.37 0.99
read_1048576_cpuload (%) 74.5 45.89 30.49 4.55
read_1048576_throughput (MBytes/sec) 13.29 30.18 208.65 0.99
read_5242880_cpuload (%) 70.0 46.18 31.33  
read_5242880_throughput (MBytes/sec) 13.3 30.18 218.63  
write_102400_cpuload (%) 64.4 51.11 53.19 4.42
write_102400_throughput (MBytes/sec) 19.9 29.62 142.47 0.84
write_1048576_cpuload (%) 39.55 50.22 52.45 4.73
write_1048576_throughput (MBytes/sec) 21.21 29.53 142.81 0.84
write_5242880_cpuload (%) 35.17 51.00 51.49  
write_5242880_throughput (MBytes/sec) 21.02 29.29 146.73  

Table: ‘


USBHOST / host USBHOST_L_PERF_VFAT_0002 am335x-evm am43xx-gpevm am57xx-evm omapl138-lcdk
copy_102400_throughput (MBytes/sec) 18.07 26.52 151.9 0.44
copy_262144_throughput (MBytes/sec) 17.76 25.8 150.2 0.45
read_102400_cpuload (%) 72.7 46.94 31.0 5.29
read_102400_throughput (MBytes/sec) 12.96 30.35 207.9 0.99
read_262144_cpuload (%) 54.11 47.67 28.8 4.87
read_262144_throughput (MBytes/sec) 13.34 30.31 210.2 0.99
write_102400_cpuload (%) 65.43 49.27 52.4 7.85
write_102400_throughput (MBytes/sec) 19.91 29.98 140.8 0.82
write_262144_cpuload (%) 46.9 49.93 51.3 6.66
write_262144_throughput (MBytes/sec) 20.69 29.89 140.5 0.83

Table: ‘


USB Mass Storage Class Slave Driver

The performance numbers are captured using a file inside /dev/shm as storage gadget media exposed as removable media to an Ubuntu 10.04 host over USB. The storage media is formatted as vfat filesystem.
Storage gadget media file is created using the command:
# dd if=/dev/zero of=/dev/shm/50M bs=1M count=50"

Insert the USB mass storage gadget with /dev/shm/50M as the backing storage:

# insmod g_mass_storage.ko file=/dev/shm/50M

For test setup details refer to USB MSC device setup

AM335X USB SLAVE DEVICE PERFORMANCE

Bytes Transferred (MB)”/dev/shm/50M” file as storage device Number of files transferred Total Bytes transferred (MB) Transfer Rate (MB/sec)
50 1 50 17.5

Table: AM335X USB Slave Read Performance values

Bytes Transferred (MB)”/dev/shm/50M” file as storage device Number of files transferred Total Bytes transferred (MB) Transfer Rate (MB/sec)
50 1 50 4.0

Table: AM335X USB Slave Write Performance values


AM43XX GPEVM USB SLAVE DEVICE PERFORMANCE

Bytes Transferred (MB)”/dev/shm/50M” file as storage device Number of files transferred Total Bytes transferred (MB) Transfer Rate (MB/sec)
50 1 50 34.6

Table: AM43XX USB Slave Read Performance values

Bytes Transferred (MB)”/dev/shm/50M” file as storage device Number of files transferred Total Bytes transferred (MB) Transfer Rate (MB/sec)
50 1 50 20.3

Table: AM43XX USB Slave WritePerformance values


AM57XX GPEVM USB SLAVE DEVICE PERFORMANCE

Bytes Transferred (MB)”/dev/shm/50M” file as storage device Number of files transferred Total Bytes transferred (MB) Transfer Rate (MB/sec)
50 1 50 30.6

Table: AM57XX USB Slave Read Performance values

Bytes Transferred (MB)”/dev/shm/50M” file as storage device Number of files transferred Total Bytes transferred (MB) Transfer Rate (MB/sec)
50 1 50 21.7

Table: AM57XX USB Slave WritePerformance values


OMAPL138-LCDK USB SLAVE DEVICE PERFORMANCE

Bytes Transferred (MB)”/dev/shm/50M” file as storage device Number of files transferred Total Bytes transferred (MB) Transfer Rate (MB/sec)
50 1 50 10.1

Table: OMAPL138-LCDK USB Slave Read Performance values

Bytes Transferred (MB)”/dev/shm/50M” file as storage device Number of files transferred Total Bytes transferred (MB) Transfer Rate (MB/sec)
50 1 50 3.4

Table: OMAPL138-LCDK USB Slave WritePerformance values


USB CDC/RNDIS Slave Driver

Performance benchmarks were collected using the Iperf tool and default options were used to collect the throughput numbers.

AM335X USB CDC Performance

TCP Window Size(in KBytes) Interval (in Seconds) Bandwidth (Mbits/Sec)
16 60 59.5
32 60 58.8
64 60 59.0
128 60 57.5

Table: AM335X USB CDC Performance values - Client


AM43XX GPEVM USB CDC Performance

TCP Window Size(in KBytes) Interval (in Seconds) Bandwidth (Mbits/Sec)
16 60 166.1
32 60 165.5
64 60 139.6
128 60 172.8

Table: AM43XX GPEVM USB CDC Performance values - Client


AM57XX USB CDC Performance

TCP Window Size(in KBytes) Interval (in Seconds) Bandwidth (Mbits/Sec)
16 60 245.9
32 60 253.0
64 60 254.0
128 60 257.0

Table: AM57XX USB CDC Performance values - Client


K2G-EVM USB CDC Performance

TCP Window Size(in KBytes) Interval (in Seconds) Bandwidth (Mbits/Sec)
16 60 181.0
32 60 177.8
64 60 183.1
128 60 195.8

Table: K2G-EVM USB CDC Performance values - Client

OMAPL138-LCDK USB CDC Performance

TCP Window Size(in KBytes) Interval (in Seconds) Bandwidth (Mbits/Sec)
16 60 14.8
32 60 15.3
64 60 21.4
128 60 25.5

Table: OMAPL138-LCDK USB CDC Performance values - Client


AM335X USB RNDIS Performance

TCP Window Size(in KBytes) Interval (in Seconds) Bandwidth (Mbits/Sec)
16 60 41.6
32 60 41.3
64 60 41.3
128 60 39.5

Table: AM335XX USB RNDIS Performance values - Client


AM43XX GPEVM USB RNDIS Performance

TCP Window Size(in KBytes) Interval (in Seconds) Bandwidth (Mbits/Sec)
16 60 137.5
32 60 137.8
64 60 140.4
128 60 145.1

Table: AM43XX GPEVM USB RNDIS Performance values - Client



AM57XX USB RNDIS Performance

TCP Window Size(in KBytes) Interval (in Seconds) Bandwidth (Mbits/Sec)
16 60 218.0
32 60 207.0
64 60 219.2
128 60 245.1

Table: AM57XX USB RNDIS Performance values - Client


OMAPL138-LCDK GPEVM USB RNDIS Performance

TCP Window Size(in KBytes) Interval (in Seconds) Bandwidth (Mbits/Sec)
16 60 15.8
32 60 13.6
64 60 13.6
128 60 15.1

Table: OMAPL138-LCDK USB RNDIS Performance values - Client


CRYPTO Driver

OpenSSL Performance

CRYPTO / host / openssl_performance_tests Crypto_M_PERF_openssl_perf_hardware_acceleration am335x-evm am43xx-gpevm am57xx-evm
aes-128-cbc_cpu_util (%) 53.0 52.0 51.0
aes-128-cbc_system_time (s) 7.83 7.72 7.46
aes-128-cbc_user_time (s) 0.33 0.29 0.29
aes-128-cbc_throughput_16_byte (KBytes/s) 2618.10 1285.91 2728.38
aes-128-cbc_throughput_64_byte (KBytes/s) 7359.20 4473.96 9228.57
aes-128-cbc_throughput_256_byte (KBytes/s) 4719.39 4549.72 4907.43
aes-128-cbc_throughput_1024_byte (KBytes/s) 11510.76 12902.74 13863.59
aes-128-cbc_throughput_8192_byte (KBytes/s) 23582.91 22599.0 30165.67
aes-192-cbc_cpu_util (%) 53.0 53.0 53.0
aes-192-cbc_system_time (s) 7.72 7.7 7.48
aes-192-cbc_user_time (s) 0.38 0.34 0.53
aes-192-cbc_throughput_16_byte (KBytes/s) 2547.03 1291.43 2704.12
aes-192-cbc_throughput_64_byte (KBytes/s) 7037.41 4332.93 9028.78
aes-192-cbc_throughput_256_byte (KBytes/s) 4775.05 4566.87 4822.95
aes-192-cbc_throughput_1024_byte (KBytes/s) 11949.14 12920.15 13564.93
aes-192-cbc_throughput_8192_byte (KBytes/s) 22852.56 22410.58 30029.14
aes-256-cbc_cpu_util (%) 53.0 52.0 51.0
aes-256-cbc_system_time (s) 7.8 7.64 7.23
aes-256-cbc_user_time (s) 0.25 0.33 0.46
aes-256-cbc_throughput_16_byte (KBytes/s) 2544.62 1253.87 2660.18
aes-256-cbc_throughput_64_byte (KBytes/s) 6971.33 4229.82 8711.68
aes-256-cbc_throughput_256_byte (KBytes/s) 4755.63 4513.28 4801.37
aes-256-cbc_throughput_1024_byte (KBytes/s) 11919.02 12654.25 13875.54
aes-256-cbc_throughput_8192_byte (KBytes/s) 22637.33 21940.91 30157.48
des-cbc_cpu_util (%) 98.0 34.0 20.0
des-cbc_system_time (s) 14.63 5.07 2.92
des-cbc_user_time (s) 0.26 0.21 0.14
des-cbc_throughput_16_bytes (KBytes/s) 2550.70 384.94 309.7
des-cbc_throughput_64_bytes (KBytes/s) 6918.89 1526.29 1157.99
des-cbc_throughput_256_bytes (KBytes/s) 11626.50 4176.55 3913.05
des-cbc_throughput_1024_bytes (KBytes/s) 13944.15 10096.98 9137.15
des-cbc_throughput_8192_bytes (KBytes/s) 14084.78 16048.13 14811.14
des3_cpu_util (%) 97.0 34.0 19.0
des3_system_time (s) 14.64 5.1 2.73
des3_user_time (s) 0.19 0.15 0.21
des3_throughput_16_bytes (KBytes/s) 2071.46 378.36 308.61
des3_throughput_64_bytes (KBytes/s) 4062.38 1530.01 1161.83
des3_throughput_256_bytes (KBytes/s) 5182.46 4177.58 3847.17
des3_throughput_1024_bytes (KBytes/s) 5051.61 10106.88 8784.55
des3_throughput_8192_bytes (KBytes/s) 5815.29 16042.67 14508.03
md5_cpu_util (%) 77.0 75.0 76.0
md5_system_time (s) 9.41 9.1 9.37
md5_user_time (s) 2.35 2.36 2.07
md5_throughput_16_bytes (KBytes/s) 450.38 591.81 841.65
md5_throughput_64_bytes (KBytes/s) 1741.31 2359.04 3318.04
md5_throughput_256_bytes (KBytes/s) 3317.25 4292.52 4604.07
md5_throughput_1024_bytes (KBytes/s) 9480.53 10861.57 12864.85
md5_throughput_8192_bytes (KBytes/s) 35820.89 41730.05 53581.14
sha1_cpu_util (%) 77.0 76.0 73.0
sha1_system_time (s) 9.04 9.63 9.29
sha1_user_time (s) 2.71 1.9 1.77
sha1_throughput_16_bytes (KBytes/s) 409.02 543.48 779.83
sha1_throughput_64_bytes (KBytes/s) 1574.89 2130.22 3057.05
sha1_throughput_256_bytes (KBytes/s) 3148.12 3957.93 4147.71
sha1_throughput_1024_bytes (KBytes/s) 9346.05 10750.29 13415.08
sha1_throughput_8192_bytes (KBytes/s) 36315.14 41517.06 53936.13

Table: ‘


Listed for each algorithm are the code snippets used to run each benchmark test.

time -v openssl speed -elapsed -evp aes-128-cbc

IPSec Performance

Note: queue_len is set to 300 and software fallback threshold set to 9 to enable software support for optimal performance

Hardware Crypto-based IPSec Throughput am335x-evm am43xx-gpevm am57xx-evm
udp_aes128_sha1 (Mbps) 57.4 62.0 148.2
udp_aes192_sha1 (Mbps) 55.6 65.8 139.2
udp_aes256_sha1 (Mbps) 55.6 63.8 141.2

Table: ‘

DCAN Driver

Performance and Benchmarks not available in this release.

2.2.2. RT Kernel Performance Guide

Read This First

All performance numbers provided in this document are gathered using following Evaluation Modules unless otherwise specified.

Name Description
AM335x AM335x Evaluation Module rev 1.5B with ARM running at 1000MHz, DDR3-400 (400MHz/800 MT/S), TMDXEVM3358
AM437x-gpevm AM437x-gpevm Evaluation Module rev 1.5A with ARM running at 1000MHz, DDR3-400 (400MHz/800 MT/S), TMDSEVM437X
AM572x IDK AM57xx Evaluation Module rev A2 with ARM running at 1500MHz, DDR3L-533 (533 MHz/1066 MT/S), TMDXIDK5278
K2HK EVM K2 Hawkings Evaluation Module rev 40 with ARM running at 1200MHz, DDR3-1600 (800 MHz/1600 MT/S), EVMK2H
K2G EVM K2 Galileo Evaluation Module rev C, DDR3-1333 (666 MHz/1333 MT/S), EVMK2G

Table: Evaluation Modules


About This Manual

This document provides performance data for each of the device drivers which are part of the LCPD Core SDK package. This document should be used in conjunction with release notes and user guides provided with the LCPD Core SDK package for information on specific issues present with drivers included in a particular release.

If You Need Assistance

For further information or to report any problems, contact http://community.ti.com/ or http://support.ti.com/

Linux Kernel

System Benchmarks

Dhrystone

ARM Benchmarks / host Dhrystone_S_PERF_HostSide am574x-idk
cpu_clock (MHz) 1000
dhrystone_per_mhz (DMIPS/MHz) 3.45
dhrystone_per_second (DhrystoneP) 6060606.0

Table: Dhrystone Benchmark


Whestone

ARM Benchmarks / host Whetstone_S_PERF_HostSide am574x-idk
whetstone (MIPS) 2500.0

Table: Whestone Benchmark

Linpack

ARM Benchmarks / host Linpack_S_PERF_HostSide am574x-idk
linpack (Kflops 687010.0

Table: Linpack Benchmark

NBench

ARM Benchmarks / host NBench_S_PERF_HostSide am574x-idk
assignment (Iterations) 11.39
fourier (Iterations) 8249.1
fp_emulation (Iterations) 112.66
huffman (Iterations) 934.14
idea (Iterations) 2917.0
lu_decomposition (Iterations) 551.29
neural_net (Iterations) 14.75
numeric_sort (Iterations) 469.16
string_sort (Iterations) 92.96

Table: NBench Benchmarks


Stream

ARM Benchmarks / host Stream_1_core_S_PERF_Hostside am574x-idk
add (MB/s) 2840.7
copy (MB/s) 3072.0
scale (MB/s) 3168.4
triad (MB/s) 2960.1

Table: Stream Benchmarks

Maximum Latency under different use cases

Shield (dedicated core) Case

The following tests measure worst-case latency under different scenarios or use cases.
Cyclictest application was used to measured latency. Each test ran for 4 hours.
Two cgroups were used using shield_shell procedure shown below.
The application running the use case and cyclictest ran on a dedicated cpu (rt) while the rest of threads ran on nonrt cpu.
shield_shell()
{
create_cgroup nonrt 0
create_cgroup rt 1
for pid in $(cat /sys/fs/cgroup/tasks); do /bin/echo $pid > /sys/fs/cgroup/nonrt/tasks; done
/bin/echo $$ > /sys/fs/cgroup/rt/tasks
}

Use Case am574x-idk: latency
L_PERF_SHIELD_SMP_1080ENC 47.0
L_PERF_SHIELD_SMP_1080ENCDEC 51.0
L_PERF_SHIELD_SMP_GRAPHICS 45.0
L_PERF_SHIELD_SMP_HACKBENCH 47.0
L_PERF_SHIELD_SMP_MEM 36.0
L_PERF_SHIELD_SMP_NET 27.0
L_PERF_SHIELD_SMP_NO_LOAD 32.0
L_PERF_SHIELD_SMP_STRESS_LOAD 46.0
L_PERF_SHIELD_SMP_UART 49.0
L_PERF_SHIELD_SMP_USB 48.0
L_PERF_SHIELD_SMP_USB_NET 54.0

Table: Max Latency for shielded use cases



OSADL Test

Latency test used by https://www.osadl.org/ Command: “cyclictest -l100000000 -m -n -a0 -t1 -p99 -i200 -h400 -q”

am574x-idk

# Total: 100000000
# Min Latencies: 00007
# Avg Latencies: 00011
# Max Latencies: 00038
# Histogram Overflows: 00000
# Histogram Overflow at cycle number:

# Histogram
000000 000000
000001 000000
000002 000000
000003 000000
000004 000000
000005 000000
000006 000000
000007 000006
000008 006778
000009 5852853
000010 2587813
000011 53313381
000012 33663230
000013 2055609
000014 515347
000015 229216
000016 1376865
000017 170278
000018 042501
000019 022922
000020 007325
000021 055718
000022 065202
000023 015769
000024 011486
000025 000835
000026 000640
000027 000700
000028 000490
000029 001261
000030 001190
000031 000909
000032 000830
000033 000525
000034 000214
000035 000074
000036 000019
000037 000010
000038 000004
000039 000000
000040 000000

Boot-time Measurement

Sensor Capture

Capture video frames (MMAP buffers) with v4l2c-ctl and record the reported fps

Resolution Format am574x-idk: Fps am574x-idk: Sensor
1600x1200 ba81 14.56 (min 14.56, max 14.57) ov2659
1600x1200 rgb4 14.56 (min 14.56, max 14.57) ov2659
320x240 ba81 43.78 (min 43.7, max 44.0) ov2659
320x240 rgb4 43.78 (min 43.7, max 44.0) ov2659

Table: Sensor Capture

Display Driver

Set different display modes using modetest’s sync plus flip option (modetest -v -s ...)

Mode am574x-idk:Fps
1920x1200@60 60.0 (min 59.9, max 60.11)

Table: Display performance (LCD)


Mode am574x-idk: Fps
1024x576@60 59.97 (min 59.86, max 60.08)
1024x768@60 60.0 (min 59.93, max 60.1)
1024x768@70 70.07 (min 69.99, max 70.18)
1024x768@75 75.03 (min 74.9, max 75.14)
1152x864@75 75.0 (min 74.83, max 75.19)
1280x1024@60 60.02 (min 59.91, max 60.11)
1280x1024@75 75.02 (min 74.92, max 75.13)
1280x720@60 60.0 (min 59.89, max 60.14)
1280x768@60 59.87 (min 59.75, max 59.98)
1280x768@75 74.89 (min 74.78, max 75.06)
1280x800@60 59.81 (min 59.76, max 59.87)
1280x800@75 74.93 (min 74.84, max 75.04)
1280x960@60 60.0 (min 59.93, max 60.1)
1360x768@60 59.95 (min 59.87, max 60.06)
1400x1050@60 59.98 (min 59.93, max 60.05)
1400x1050@75 74.87 (min 74.74, max 74.99)
1440x900@60 59.89 (min 59.83, max 59.95)
1440x900@75 74.98 (min 74.89, max 75.1)
1600x1200@60 60.0 (min 59.89, max 60.11)
1600x1200@65 65.0 (min 64.88, max 65.12)
1600x900@60 60.0 (min 59.92, max 60.07)
1680x1050@60 59.95 (min 59.87, max 60.02)
1680x945@60 60.02 (min 59.94, max 60.08)
1920x1080@60 60.0 (min 59.84, max 60.19)
2048x1152@60 60.0 (min 59.93, max 60.1)
640x480@60 60.0 (min 59.74, max 60.26)
640x480@73 72.81 (min 72.73, max 72.94)
640x480@75 75.0 (min 74.77, max 75.16)
720x400@70 70.08 (min 69.99, max 70.21)
800x600@56 56.25 (min 56.15, max 56.35)
800x600@60 60.32 (min 60.14, max 60.51)
800x600@72 72.19 (min 72.07, max 72.35)
800x600@75 75.0 (min 74.91, max 75.13)
832x624@75 74.55 (min 74.44, max 74.69)
848x480@60 60.0 (min 59.96, max 60.05)

Table: Display performance (HDMI)


Graphics SGX Driver

Run GLBenchmark and capture performance reported Display rate (Fps), Fill rate, Vertex Throughput, etc. All display outputs (HDMI and LCD) are connected when running these tests

Performance (Fps)

Benchmark Test Number am574x-idk: Fps
GLB25_EgyptTestC24Z16FixedTime test 2500005.0 33.04 (min 18.74, max 57.37)
GLB25_EgyptTestC24Z16_ETC1 test 2501001.0 39.83 (min 18.37, max 60.37)
GLB25_EgyptTestC24Z16_ETC1to565 test 2501401.0 39.8 (min 18.29, max 60.08)
GLB25_EgyptTestC24Z16_PVRTC4 test 2501101.0 39.55 (min 17.83, max 60.42)
GLB25_EgyptTestC24Z24MS4 test 2500003.0 35.73 (min 16.86, max 60.01)
GLB25_EgyptTestStandard_inherited test 2000000.0 59.99 (min 58.78, max 60.27)

Table: GLBenchmark 2.5 Performance

Vertex Throughput

Benchmark Test Number am574x-idk: Rate (triangles/sec)
GLB25_TriangleTexFragmentLitTestC24Z16 test 2500511.0 20116708.0
GLB25_TriangleTexTestC24Z16 test 2500301.0 89445160.0
GLB25_TriangleTexVertexLitTestC24Z16 test 2500411.0 24012782.0

Table: GLBenchmark 2.5 Vertex Throughput

Pixel Throughput

Benchmark Test Number am574x-idk: Rate (texel/sec) am574x-idk: Fps
GLB25_FillTestC24Z16 test 2500101.0 1131143808.0 45.94 (min 43.28, max 47.21)

Table: GLBenchmark 2.5 Pixel Throughput


Multimedia (Decode)

Run gstreamer pipeline “gst-launch-1.0 playbin uri=file://<Path to stream> video-sink=”kmssink sync=false connector=<connector id>” audio-sink=fakesink” and calculate performance based on the execution time reported. All display display outputs (HDMI and LCD) were connected when running these tests, but playout was forced to LCD via the connector=<connector id> option.

H264

Resolution am574x-idk: Fps IVA Freq (MHz) IPU Freq (MHz)
1080p 60.0    
720p 59.94    
720x480 61.13    
800x480 62.3    

Table: Gstreamer H264 in AVI Container Decode Performance


Resolution am574x-idk: Fps IVA Freq (MHz) IPU Freq (MHz)
1080p 59.5    
720p 59.94    
720x480 60.0    
800x480 60.0    
CIF 60.0    

Table: Gstreamer H264 in MP4 Container Decode Performance


MPEG4

Resolution am574x-idk: Fps IVA Freq (MHz) IPU Freq (MHz)
720p 59.94    
VGA 60.0    

Table: GStreamer MPEG4 in MP4 Container Decode Performance


Resolution am574x-idk: Fps IVA Freq (MHz) IPU Freq (MHz)
720x576 61.11    
VGA 63.75    

Table: GStreamer MPEG4 in AVI Container Decode Performance


Resolution am574x-idk: Fps IVA Freq (MHz) IPU Freq (MHz)
CIF 60.0    
QVGA 60.0    
VGA 63.75    

Table: GStreamer MPEG4 in 3GP Container Decode Performance


MPEG2

Resolution am574x-idk: Fps IVA Freq (MHz) IPU Freq (MHz)
720p 59.94    

Table: GStreamer MPEG2 in MP4 Container Decode Performance


Ethernet Driver


USB Driver

XHCI Host controller

IMPORTANT
For Mass-storage applications, the performance numbers can be severely affected if the media is mounted in sync mode. Hot plug scripts in the filesystem mount removable media in sync mode to ensure data integrity. For performance sensitive applications, umount the auto-mounted filesystem and re-mount in async mode.

Setup : Western Digital 1TB (My Book Essential) USB hard disk is connected to usb0 port. File read/write performance data on usb0 port is captured. For detailed test setup refer to USB MSC host test setup

AM574X-IDK USB MSC Host mode EXT2 File System Performance

Buffer Size (in Bytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
102400 87.33 57.44
1048576 86.99 56.65
5242880 87.31 57.98

Table: USB-MSC XHCI Host-Write Performance values


Buffer Size (in Bytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
102400 175.01 45.87
1048576 177.89 50.86
5242880 170.79 48.72

Table: USB-MSC XHCI Host-Read Performance values

AM574X-IDK USB MSC Host mode VFAT File System Performance

Buffer Size (in Bytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
102400 87.38 55.08
262144 87.81 55.65

Table: USB-MSC XHCI Host-Write Performance values


Buffer Size (in Bytes) Transfer Rate (in MBytes/sec) CPU Load (in %)
102400 184.90 53.33
262144 175.90 54.78

Table: USB-MSC XHCI Host-Read Performance values


USB Mass Storage Class Slave Driver

The performance numbers are captured using a file inside /dev/shm as storage gadget media exposed as removable media to an Ubuntu 10.04 host over USB. The storage media is formatted as vfat filesystem.
Storage gadget media file is created using the command:
# dd if=/dev/zero of=/dev/shm/50M bs=1M count=50"

Insert the USB mass storage gadget with /dev/shm/50M as the backing storage:

# insmod g_mass_storage.ko file=/dev/shm/50M

For test setup details refer to USB MSC device setup

AM574X-IDK USB SLAVE DEVICE PERFORMANCE

Bytes Transferred (MB)”/dev/shm/50M” file as storage device Number of files transferred Total Bytes transferred (MB) Transfer Rate (MB/sec)
50 1 50 37.8

Table: AM574X-IDK USB Slave Read Performance values

Bytes Transferred (MB)”/dev/shm/50M” file as storage device Number of files transferred Total Bytes transferred (MB) Transfer Rate (MB/sec)
50 1 50 36.2

Table: AM574X-IDK USB Slave Write Performance values


USB CDC/RNDIS Slave Driver

Performance benchmarks were collected using the Iperf tool and default options were used to collect the throughput numbers.

AM574X-IDK USB CDC Performance

TCP Window Size(in KBytes) Interval (in Seconds) Bandwidth (Mbits/Sec)
16 60 187.5
32 60 185.1
64 60 191.1
128 60 197.5

Table: AM574X-IDK USB CDC Performance values - Client


AM574X-IDK USB RNDIS Performance

TCP Window Size(in KBytes) Interval (in Seconds) Bandwidth (Mbits/Sec)
16 60 152.0
32 60 165.1
64 60 168.0
128 60 173.7

Table: AM574X-IDK USB RNDIS Performance values - Client


CRYPTO Driver

OpenSSL Performance

CRYPTO / host / openssl_performance_tests Crypto_M_PERF_openssl_perf_hardware_acceleration am574x-idk
aes-128-cbc_cpu_util (%) 52.0
aes-128-cbc_system_time (s) 7.8
aes-128-cbc_user_time (s) 0.35
aes-128-cbc_throughput_16_byte (KBytes/s) 1393.78
aes-128-cbc_throughput_256_byt (KBytes/s) 2578.09
aes-128-cbc_throughput_64_byte (KBytes/s) 4929.3
aes-128-cbc_throughput_1024_by (KBytes/s) 6304.43
aes-128-cbc_throughput_8192_by (KBytes/s) 22241.28
aes-192-cbc_cpu_util (%) 53.0
aes-192-cbc_system_time (s) 7.7
aes-192-cbc_user_time (s) 0.35
aes-192-cbc_throughput_16_byte (KBytes/s) 1354.58
aes-192-cbc_throughput_256_byt (KBytes/s) 2013.7
aes-192-cbc_throughput_64_byte (KBytes/s) 4690.65
aes-192-cbc_throughput_1024_by (KBytes/s) 6783.32
aes-192-cbc_throughput_8192_by (KBytes/s) 25529.0
aes-256-cbc_cpu_util (%) 53.0
aes-256-cbc_system_time (s) 7.9
aes-256-cbc_user_time (s) 0.2
aes-256-cbc_throughput_16_byte (KBytes/s) 1344.7
aes-256-cbc_throughput_256_byt (KBytes/s) 2304.85
aes-256-cbc_throughput_64_byte (KBytes/s) 4615.08
aes-256-cbc_throughput_1024_by (KBytes/s) 7605.25
aes-256-cbc_throughput_8192_by (KBytes/s) 22033.75
des-cbc_cpu_util (%) 21.0
des-cbc_system_time (s) 3.15
des-cbc_user_time (s) 0.11
des-cbc_throughput_16_bytes (KBytes/s) 147.81
des-cbc_throughput_256_bytes (KBytes/s) 2165.42
des-cbc_throughput_64_bytes (KBytes/s) 487.51
des-cbc_throughput_1024_bytes (KBytes/s) 6049.45
des-cbc_throughput_8192_bytes (KBytes/s) 13535.91
des3_cpu_util (%) 23.0
des3_system_time (s) 3.5
des3_user_time (s) 0.05
des3_throughput_16_bytes (KBytes/s) 118.86
des3_throughput_64_bytes (KBytes/s) 437.46
des3_throughput_256_bytes (KBytes/s) 1911.04
des3_throughput_1024_bytes (KBytes/s) 5157.21
des3_throughput_8192_bytes (KBytes/s) 13068.97
md5_cpu_util (%) 70.0
md5_system_time (s) 8.9
md5_user_time (s) 1.67
md5_throughput_16_bytes (KBytes/s) 492.34
md5_throughput_64_bytes (KBytes/s) 1933.44
md5_throughput_256_bytes (KBytes/s) 2060.03
md5_throughput_1024_bytes (KBytes/s) 6845.44
md5_throughput_8192_bytes (KBytes/s) 36484.44
sha1_cpu_util (%) 69.0
sha1_system_time (s) 8.87
sha1_user_time (s) 1.64
sha1_throughput_16_bytes (KBytes/s) 449.41
sha1_throughput_64_bytes (KBytes/s) 1741.4
sha1_throughput_256_bytes (KBytes/s) 2066.18
sha1_throughput_1024_bytes (KBytes/s) 6847.49
sha1_throughput_8192_bytes (KBytes/s) 36230.49

Table: ‘


Listed for each algorithm are the code snippets used to run each benchmark test.

time -v openssl speed -elapsed -evp aes-128-cbc

IPSec Performance

Hardware Crypto-based IPSec Throughput am574x-idk
udp_aes128_sha1 (Mbps) 141.3
udp_aes192_sha1 (Mbps) 141.3
udp_aes256_sha1 (Mbps) 148.7

Table: ‘


NAND Driver

QSPI Flash Driver

AM574x-IDK

Buffer size (bytes) Write UBIFS Throughput (Mbytes/sec) Write UBIFS CPU Load (%) Read UBIFS Throughput (Mbytes/sec) Read UBIFS CPU Load (%)
102400 0.49 75.19 15.36 29.63
262144 0.48 74.42 15.5 24.0
524288 0.48 72.49 14.94 22.22
1048576 0.48 72.38 15.01 24.0

Table: ‘

SPI Flash Driver

K2HK-EVM

EMMC Driver

IMPORTANT
The performance numbers can be severely affected if the media is mounted in sync mode. Hot plug scripts in the filesystem mount removable media in sync mode to ensure data integrity. For performance sensitive applications, umount the auto-mounted filesystem and re-mount in async mode.

AM574X-IDK

Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 27.17 21.63 56.9 22.55
262144 27.12 21.41 66.09 22.68
524288 26.41 22.52 70.24 22.64
1048576 26.34 21.27 73.03 25.0
5242880 26.46 22.32 72.39 24.65

Table: ‘

SATA Driver

MMC/SD Driver

IMPORTANT
The performance numbers can be severely affected if the media is mounted in sync mode. Hot plug scripts in the filesystem mount removable media in sync mode to ensure data integrity. For performance sensitive applications, umount the auto-mounted filesystem and re-mount in async mode.

AM574X-IDK

Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 13.73 11.34 70.05 26.12
262144 13.88 11.35 74.59 25.63
524288 12.62 10.84 69.72 17.63
1048576 12.77 10.29 73.11 20.96
5242880 14.64 14.48 82.56 27.31

Table: ‘



The performance numbers were captured using the following:
  • Sandisk Ultra Plus 16GB Micro SDHC UHS card
  • Partition was mounted with async option

UART Driver

Performance and Benchmarks not available in this release.


I2C Driver

Performance and Benchmarks not available in this release.


EDMA Driver

Performance and Benchmarks not available in this release.


Touchscreen Driver

Performance and Benchmarks not available in this release.



Power Management

Power Measurements

N/A


2.3. Yocto Layer Configuration

Processor SDK uses the following oe-layersetup configs to configure the meta layers. These are the <config> used in the command:

$ ./oe-layersetup.sh -f <config>


The following config files are located in the configs/processor-sdk directory of the oe-layersetup git repo.
Config File Description Supported machines/platforms
processor-sdk-04.03.00.05-config.txt Processor SDK 4.3.0.5 Release am335x-evm, am437x-evm, am57xx-evm, k2hk-evm, k2e-evm, k2l-evm, k2g-evm, omapl138-lcdk

2.4. Migration Guide

Overview

This page covers migration information for applications built on top of the Processor SDK for Linux.

2.4.1. Processor SDK 05.xx Releases

2.4.1.1. Processor SDK 05.00

  • This is the first release for 2018 LTS (Kernel: 4.14, U-boot: 2018.01, gcc: 7.2.1 and Yocto: 2.4 (rocko)).

  • With Yocto migration, several open source components (Qt, Wayland, Weston, GStreamer, iPerf, etc.) are all upgraded. For the exact versions of the new components, please refer to the Software Manifest., and for any migration issues, refer to the corresponding component’s release notes, and Processor SDK Known Issues list.

  • Following are major compatability changes for TI drivers, components.

  • IPC
    • Remoteproc core
      • RPMSG_VIRTIO is no longer automatically selected by remoteproc platform drivers, has to be enabled specifically in defconfigs
      • The RSC_CUSTOM remoteproc custom resource type has been replaced with two new RSC_PRELOAD_VENDOR and RSC_POSTLOAD_VENDOR resource types.
      • Two new debugfs variables “resource_table” and “carveout_memories” are added to print the resource table and carveout memories used by a remoteproc
      • Error recovery with virtio-rpmsg-bus stack is broken on Upstream vanilla 4.14 kernel. Error recovery is supported only on TI kernels.
    • PRUSS remoteproc
      • The PRUSS remoteproc bindings have been revised significantly to improve scalability and flexibility
        • New child nodes are added to represent the CFG, IEP and MII_RT sub-modules.
        • Default firmware names are moved from driver to DT
        • Client users will require a new “prus” mandatory property instead of the previous “pruss” property
        • “ti,pruss-gp-mux-sel” property is removed from PRU nodes and added as an optional property to client nodes.
        • “label” property is dropped from PRU nodes
        • “interrupts” and “interrupt-names” properties were moved from INTC node to their parent node.
      • Client user API has changed to acquire and use a PRU core

    • Keystone_remoteproc
      • The “label” binding property is dropped from the driver bindings, and is replaced with an alias using the stem “rproc”
      • The “ti,sci-id” property for K2G DSP nodes is also dropped.
      • The keystone-dsp-mem driver is converted to a regular module from a platform driver, so the dspmem nodes are dropped. The module uses revised bindings.
    • Userspace
      • New IPC and CMEM releases are needed to use with 4.14 kernel due to difference in AF_RPMSG family number and other kernel API changes
  • iperf2 is now replaced by iperf3

  • Keystone-2: PA/PA2 is not supported in NetCP driver.

  • Keystone-2: NWAL is not supported

  • MMC: AM57x uses sdhci-omap.c driver instead of omap_hsmmc.c driver

  • PCIe: The way in which PCIe endpoint is configured has changed. More details can be found from PCIe End Point Driver.

  • AM335x ICE v2: A new DT file (am335x-ice-v2-prueth.dts) is added to support PRUSS Ethernet ports. The following configurations are supported.

am335x-ice-v2.dts: Both ports are CPSW controlled (Board jumpers J18 and J19 at RMII).
am335x-ice-v2-prueth.dts: Both ports are PRUSS controlled (Board jumpers J18 and J19 at MII).

Also note that there is an update to the u-boot env script to select DTB file
name based on jumper settings. So user needs to do following when upgrading
to the latest u-boot from this release:

>env default -a
>saveenv
>reset

2.4.2. Processor SDK 04.xx Releases

2.4.2.1. Processor SDK 04.03

  • Added am572x-idk-pps.dts and am571x-idk-pps.dts which are extensions of the am572x-idk.dts abd an571x-idk.dts respectively. The new DTS enables the PPS IO pins (sync/latch) and PTP BC bindings at the modified AM572x-idk and AM571x-idks, where the USB/LCD Display are disabled
  • Camera support for AM572x GPEVM is not in the default DTB.Use am57xx-evm*-cam-mt9t111.dtb for mt9t111 camera, and am57xx-evm*-cam-ov10635.dtb for ov10635 camera
  • Processor SDK documentation is now created from reStructuredText sources using Sphinx, and hosted on software-dl.ti.com instead of processors wiki
  • For AM57xx, with the addition of new components in the filesystem, the minimum SD-card size is 8 GB (4 GB SD cards no longer work).
  • For am57xx devices, the location of the saved U-Boot environment has moved from the external SD card to eMMC. Because of this change, the state of the U-Boot environment can no longer be guaranteed on a newly created SD card. The uEnv.txt file located on the boot partition of the SD card contains the logic to compensate for this change. Upon the initial boot, the environment will be reset to the default, and the empty file ”.psdk_setup” will be created on the boot partition. Subsequent boots will detect this file and bypass resetting the environment.

2.4.2.2. Processor SDK 04.02

Linux

PRUETH Driver

The module parameter syntax has changed from “prueth.pruss1_ethtype” and “prueth.pruss2_ethtype” in older release to “ti_prueth.pruss1_ethtype” and “ti_prueth.pruss2_ethtype”.

2.4.2.3. Processor SDK 04.01

IPC

PRUSS remoteproc

  • PRUs are no longer automatically booted (remoteproc ‘auto_boot’ is set to false) by remoteproc core. A PRU has to be booted either by PRU Client Drivers or a PRU applications in userspace. The kernel-space boot is triggered using the rproc_boot() kernel API, and the user-space applications can use the sysfs to start and stop the corresponding remoteproc. Please see Documentation/ABI/testing/sysfs-class-remoteproc file in kernel for sysfs usage details.
  • PRU remoteproc driver no longer configures the PRU Ethernet firmwares automatically using board-machine compatibles. The needed firmware names are configured by the PRU Ethernet driver now using the rproc_set_firmware() function.
  • Userspace PRU applications have to make sure to unload any existing PRU client drivers using a specific PRU, and set their firmware using sysfs before starting and using a PRU

2.4.2.4. Processor SDK 04.00

  • This is the first release for 2017 LTS (Kernel: 4.9, U-boot: 2017.01, gcc: 6.2.1 and Yocto: 2.2 (morty)), with following major changes.

IPC

remoteproc

  • The debugfs ‘state’ variable is replaced with a sysfs ‘state’ variable accepting ‘start’ and ‘stop’ to boot and shutdown a remote processor from userspace
  • A new sysfs variable ‘firmware’ is also added to set a new firmware. remoteprocs need to be in stopped state before a firmware can be set. New firmwares still need to reside in /lib/firmware
  • Booting a remote processor is now triggered by the insertion of the respective remoteproc platform driver. On 4.4, with virtio-rpmsg enabled firmwares, this only happened when both the remoteproc platform driver and virtio_rpmsg_bus module were installed.
  • Upstream 4.9 remoteproc and rpmsg cores are not suitable for TI platforms. A minimum of 4.10-rc4 (or the required remoteproc/rpmsg patches from 4.10-rc4) is needed if porting TI remoteproc drivers onto upstream.

rpmsg

  • virtio_rpmsg_bus module split into a ‘rpmsg_core’ and virtio-rpmsg transport specific ‘virtio_rpmsg_bus’ modules.
  • Removal of virtio_rpmsg_bus no longer stops a remote processor and should be avoided if a remote processor is running. * If removed and installed again, the rpmsg communication devices will not be reprobed.

Keystone_remoteproc

  • A new ‘label’ binding property is now mandatory. It will have the string names for the DSPs in the format “dsp<X>” (eg: dsp0, dsp7 etc)
  • K2G DSP nodes will require a new “ti,sci-id” property, and a different value for “power-domains” property (this is generic to all K2G devices)

PRUSS remoteproc

  • The AM437x specific am437x_pruss_wrapper module has been replaced with a generic pruss_soc_bus module, and is required to be installed on all SoCs.
  • New compatibles on AM335x and AM437x SoCs - The previous ‘am3352-xxx’ and ‘am4372-xxx’ have been replaced with a ‘am3356-xxx’ and ‘am4376-xxx’ compatibles since PRUSS are not present on AM3352 and AM4372 SoCs. The PRU nodes are also not enabled by default in base ‘am33xx.dtsi’ and ‘am4372.dtsi’ files.
  • New device hierarchy structure - The PRUSS node hierarchy from 4.4 is moved one-level down under a new parent pruss_soc_bus node.

CPSW CPDMA Descriptor Usage

There is a notable change in how to place cpsw cpdma descriptors in DDR and configure descs number: TI K4.4 device tree property was used “descs_pool_size” - descs_pool_size : total number of CPDMA CPPI descriptors to be used for both ingress/egress packets processing. if not specified the default value 256 will be used which will allow to place descriptors pool into the internal CPPI RAM.

New approach https://processors.wiki.ti.com/index.php/Linux_Core_CPSW_User%27s_Guide#Configure_number_of_TX.2FRX_descriptors

PCI ENDPOINT

The usage of ‘pci-ep’ configfs directory to configure PCI Endpoint has been changed in accordance with upstream review comments. Please see https://processors.wiki.ti.com/index.php/Linux_Core_PCIe_EP_User%27s_Guide#4.9_Kernel, for additional details

Display

fbdev is only set up for the primary display, instead of all displays. This results in the secondary displays to be left disabled by the kernel, until an userspace application enables the displays.

U-Boot RNDIS boot

AM335x USB client (RNDIS) boot and Ethernet boot modes are now supported using default defconfig (am335x_evm_defconfig). Similarly AM437x USB client (RNDIS) boot is now supported by am43xx_evm_defconfig. Separate defconfigs for above boot modes no longer exist.

Keystone-2 features

The following features are not ported to 2017 LTS

  • SRIO Kernel driver
  • 10G Uboot
  • IPSec sideband and inflow mode
  • QoS

2.4.3. Processor SDK 03.xx Releases

2.4.3.1. Processor SDK 03.03

  • HDMI-connected monitor no longer takes precedence over built-in LCD as a default graphics display for e.g. Matrix
  • See the Release Notes for full list of modifications.

2.4.3.2. Processor SDK 03.02

  • The QT QPA eglfs_kms, which supports multiple screens, has been enabled and used as the default eglfs platform plugin. For more information, see QT and Graphics Migration
  • bootmonitor now goes thru mkimage and as a result the load address changed. Users should manually execute following commands in their u-boot environment to properly install the secure monitor on k2 platforms:
setenv addr_mon 0xc08000
setenv addr_mon_mkimg 0xc07ffc0
setenv mon_size 0x1210
setenv sec_bm_install 'go ${addr_mon}4 0xc084000 ${mon_size}; mon_install ${addr_mon_mkimg}'
run sec_bm_install
  • HDMI-connected monitor no longer takes precedence over built-in LCD as a default graphics display for e.g. Matrix

2.4.3.3. Processor SDK 03.01

  • defconfig_builder is now used to generate working kernel defconfigs
  • In K2 U-Boot, added multi slave support.
  • In K2 Linux PA driver, added pre-classification support. So explicit lut rules for broadcast and multicast are removed and the same is achieved through this feature in PA
  • 10G Ethernet driver now supports auto configuration using MCU firmware (a.k.a 10G KR firmware). The firmware file name is ks2_xgbe_serdes_mcu_fw.bin which is available at the same location as other serdes firmwares.
  • The current version of the serdes firmware is 03.03.00.02C and the same is not backward compatible with the firmware in the previous SDK release (03.00.00)

2.4.3.4. Processor SDK 03.00

  • First 2016 LTS Release (Linux Kernel: 4.4, U-Boot: 2016.05, GCC 5.3, Yocto 2.1)
  • Unified kernel configuration based on multi_v7_defconfig
  • Migrated from SysVinit to systemd for user space initialization.
  • U-Boot drivers now uses DT, but is transparent to users
  • The content of <evm>-<os>-sdk-arago-src-<ver>.tar.gz on the download page changed from sources to a fetcher script that obtains the sources. This is to efficiently share the sources between different platforms and OSes supported by Processor SDK. See the README inside the tar-ball for instructions
  • This release adds support for RT Linux on AM335x ICE and K2G GPEVM
  • In K2 U-Boot, multi slave support is currently missing. To use multiple interfaces, please disable CONFIG_DM_ET option in u-boot .config and build.
  • See the Release Notes for full list of modifications.
  • For information on migrating from MCSDK (K2x) to Processor SDK, see this migration page.

2.4.4. Processor SDK 02.xx Releases

2.4.4.1. Processor SDK 02.00.02

  • This release adds RT Linux support on AM335x, K2H/K, K2E, K2L
  • This release supports AM572x IDK and K2G EVM
  • OpenCV now uses OpenCL under the hood, to offload compute tasks to C66x cores. This is transparent to the application
  • The SGX driver for AM335x has been enhanced to support DRM/WAYLAND based Multi-Window Display. For more information, see AM3 Graphics Migration
  • See the Release Notes for full list of modifications.
  • For information on migrating from MCSDK (K2x) to Processor SDK, see this migration page.

2.4.4.2. Processor SDK 02.00.01

  • This release adds support for devices from the KeyStone architecture: K2E, K2H/K, and K2L
  • This release also supports RT Linux is supported on AM4 and AM5 device
  • The SGX driver for AM4 has been enhanced to support DRM/WAYLAND based Multi-Window Display. For more information, see AM4 Graphics Migration
  • There is no migration impact to customers using AM3, and AM5.
  • See the Release Notes for full list of modifications.
  • For information on migrating from MCSDK (K2x) to Processor SDK, see this migration page.

2.4.4.3. Processor SDK 02.00.00

  • This release adds support for AM57x
  • First 2015 LTS (Kernel 4.1, U-boot 2015.07) Release
  • Starting this release, Processor SDK Installer is 64-bit, and installs only on 64-bit host machine. Support for 32-bit host is dropped as Linaro toolchain is available only for 64-bit machines
  • For AM3, AM4, Graphics SDK is now obsolete and Graphics stack is integrated into Processor SDK, and supports null DRM based Full Window, with Front and Flip modes. For more information, see Graphics Migration
  • Ethernet performance degraded ~10% on am335x-evm due to move from preempt_voluntary
  • See the Release Notes for full list of modifications.

2.4.5. MCSDK to Processor SDK Migration Guide

Introduction

For many years, the MCSDK has been a great way to get started with Embedded Software development on TI’s KeyStone architecture processors (C66x, K2x). If you go by “what’s in a name?”, you can easily see the connection. The “MC” of MCSDK stands for Multi-Core and The “SDK” refers to Software Development Kit. The MCSDK encapsulated a collection of software elements and tools and was designed to provide a great starting point for developing embedded applications on ARM running Linux and C66x cores running TI-RTOS, on KeyStone processors. One of the goals of the MCSDK was to enable a developer to quickly explore and evaluate the possibilities as well as start development on a customized Linux/TI-RTOS software platform.

Like the Linux kernel itself, which evolves every 77 days or so with a new release, it’s time for the MCSDK to evolve, without departing from it’s heritage. TI has a rich offering of microprocessors from multicore ARMs to tiny, power-efficient DSPs, and different combinations of ARM, DSP, and specialized cores to provide the broad market a variety of solutions. Since many developers will touch several of these devices from project to project, it is beneficial to standardize the experience to maximize the benefit of learning. The limited time developers have in today’s time-to-market driven environment is very important and shouldn’t be wasted.

To this end, the KeyStone devices will be actively supported in the Processor SDK, the unified SDK for TI processors. This allows suport for both C66x and K2x in the same SDK, as well as the other AMx processor. Each developer that uses the Processor SDK from project to project can leverage that experience and know with confidence what they can expect. The Processor SDK is more than a collection of components, the aim is that applications can switch processors with minimal modifications.

Further, we are seeing different use cases for Linux and RTOS:

  • A fully RTOS based solution with RTOS on Cortex-A cores in addition to the C66/M4 cores and
  • Linux based solutions that need acceleration, but doesn’t really need to get into the programming details of the non Cortex-A cores, and would just need open programming paradigms such as OpenCL, OpenGL, GStreamer to accelerate the Linux applications, leveraging TI’s optimized libraries or codecs
  • A heterogenous solution of Coretex-A cores running Linux and C66/M4 cores running RTOS

To this end, the Processor SDK is split into Processor SDK for RTOS and Processor SDK for Linux.

To further customize the experience for developers who typically work on one device we split the SDK to be a separate installer per device, per OS. In summary, the contents of MCSDK is now split into Processor SDK (Linux, RTOS) for K2H/K2K, K2E, and K2L. The devices without ARM processors, C665x and C667x, only support RTOS. With this background in place, let’s dig into more specifics.

Processor-SDK 2.0.1 adds support for KeyStone devices from previous SDKs that are no longer being maintained:

  • MCSDK: K2H, K2K, K2E, K2L (last release: MCSDK 3.1.4)
  • BIOS-MCSDK: C665x, C667x (last release: BIOS-MCSDK 2.1.2)

If you are migrating from these SDKs, the notes below will highlight any changes that are required.


Installation

As with MCSDK, Processor SDK is also available as an installer on ti.com for download.

Target Machine

The Processor SDK Linux installer is available only for host machines running Linux, where as the Processor SDK RTOS installer is available for both Windows and Linux host machines. Please note that the Processor SDK Linux Installer can be installed only on 64-bit host machines and the support for 32-bit machines is dropped, primarily due to the Linaro toolchain not supporting 32-bit anymore.

Install Packages

As noted earlier, the installer is now available per device, per OS. If you work on multiple devices or work on both RTOS and Linux, you’d have to download multiple installers.

Command Line Installation

The tool to create the installer was changed from InstallJammer, which was an unsupported open source project, to InstallBuilder. If installing on the command line without any user interaction, the command option changed from

--prefix [INSTALL_PATH] --mode unattended

to

--prefix [INSTALL_PATH] --mode silent

Processor SDK Linux

This chapter describes what’s changed from a Linux point of view, when migrating from MCSDK to Processor SDK

Directory Structure

In addition to the pre-built images and the filesystem, the installer now contains a copy of the Linux Kernel and U-Boot GIT repositories, and the sources for Kernel Modules, which’ll be quite handy for reference or further development. There are additional helper/setup scripts to help with getting started with the EVMs. For an overview of the directory structure and a brief description of the contents of the folders, refer to Processor_SDK_Linux_Directory_Structure

Getting Started

The Getting Started Guide for Processor SDK Linux is here. Processor SDK Linux includes a set up script that scripts the necessary steps to setup the development environment on the host machine. The setup script verifies that the Linux host is the recommended Ubuntu LTS version, installs any required host packages, sets up the target FileSystem installation, NFS setup, TFTP setup, Minicom setup, uboot setup, Load uboot script and boots the EVM to Linux Prompt. After installation of the SDK on the Linux host, the setup script should be run to prepare the host for software development. Some of the tasks require administrator privileges. The script will prompt you when these administrator privileges are required. For more details, see Processor_SDK_Linux_Setup_Script.

The procedure to flash the U-Boot, Kernel and filesystem into the flash memory on EVM, also known-as program_evm, is still available, and documented here

U-Boot

U-Boot is upgraded to be based on 2015.07. Listed below are a few major differences from MCSDK.

  • To Flash u-boot image onto NOR flash, u-boot upgrade command is changed from burn_uboot to burn_uboot_spi (for SPI NOR boot) and burn_uboot_nand (for NAND boot)
  • U-Boot starting address is now at 0x0c00 0000 instead of 0x0c00 1000 in MCSDK
  • bootz is enabled in u-boot. So use zImage instead of uImage
  • Following default env variable have been updated.
    • name_mon from skern-<soc>-evm.bin to skern-<soc>.bin
    • name_fdt from uImage-<soc>-evm.dtb to <soc>-evm.dtb
    • name_kern from keystone-evm.bin to zImage
    • debug_options to ks2_debug. This is set to 1 as before to allow CCS to be connected to DSP core. When the device boots to Linux, the DSP needs to be loaded with the image and run using mpmcl command first before the CCS can be connected to DSP cores. The ks2_debug is not needed in this case.
  • Following new env variables are introduced to allow use of a firmware initramfs image so that Linux drivers that requires firmware can get it from this before rootfs is mounted during the boot up. This is needed to support NFS for example.
    • name_fw_rd is set to k2-fw-initrd.cpio.gz - This image is supplied in the release package and contains K2 SerDes and QMSS Accumulator firmwares that are required by NetCP and PCIe drivers
    • init scripts are modified to include this firmware during boot and pass it to kernel using 2nd argument of bootz command.
  • A copy of Kernel GIT repo is included in the “board-support” folder of the Processor SDK Installation
  • For more details, refer to the Processor_SDK_Linux_U-Boot_Release_Notes

Linux Kernel

The Linux Kernel is upgraded to 4.1 (2015 LTS). Listed below are a few major differences from MCSDK (3.10 Kernel).

  • Firmware is now not built into the Kernel. Instead they are available in the k2-fw-initrd.cpio.gz initramfs which are passed from u-boot to kernel as part of the bootz command for drivers that requires them very early in the boot up before the final rootfs is available.
  • Other firmwares that are used by dynamic modules are available in lib/firmware folder of the supplied file system images (for ubifs, initramfs etc) so that they are loaded and used by the driver from the user space.
  • A copy of Kernel GIT repo is included in the “board-support” folder of the Processor SDK Installation
  • For more details, refer to the Processor_SDK_Linux_Kernel_Release_Notes and Processor_SDK_Linux_Kernel_Performance_Guide

Roadmap

Following features supported in MCSDK are not supported in Processor SDK 02.00.02 Release, and will get added in future Processor SDK releases

  • Drivers: UDMA, 10G-KR firmware, IPSec inflow, kexec, network bonding

Kernel Drivers

Listed below are a few major differences from MCSDK (3.10 Kernel).

NetCP Drivers

  • Netcp qmss and pkt dma drivers at drivers/soc/ti
  • In older kernel, firmwares used to be built into the kernel as an ihex file which is not right thing to do due to licensing issues. Per community accepted practice, the right thing to do is to have the firmware images in a file system and use request_firmware() API in kernel to load it from the file system and use. So with this kernel release, this is how firmware files are used in kernel drivers.
  • The Accumulator channels requires the QMSS Accumulator firmware (ks2_qmss_pdsp_acc48.bin) that is located in the k2-fw-initrd.cpio.gz.
  • Netcp net driver at the same location as before at drivers/net/ethernet/ti/, but files are renamed with netcp_ prefix
  • DT documentation for the above drivers is under Documentation/devicetree/bindings/ folder.
  • PA firmwares are now part of the k2-fw-initrd.cpio.g image that is used for early boot. PA firmwares in Linux includes a header + Firmware bloab from the PA LLD package. See kernel source directory Documentation/arm/keystone/netcp-pa.txt for details of the header format.
  • Sysfs command file name paths have changed in this release. Please refer the NetCP User Guide for details.
  • QoS firmware is part of k2-fw-initrd.cpio.gz.
  • QoS qmss driver is implemented in drivers/soc/ti/knav_qmss_qos.c.
  • Cpts driver for Keystone is implemented in drivers/net/ethernet/ti/netcp_cpts.c, which corresponds to the cpts.c in MCSDK release.
  • Keystone sideband crypto driver uses the firmware file: sa_mci.fw which is different from that on older kernels. In older kernel, there is an array named sa_eng_aes_enc_mci_tbl, which contains a set of micro instructions per algorithm for the SA hardware. This is now captured in a firmware file called sa_mci.fw and used in the driver.
  • Multicast filters for special handling of multicast packets to avoid duplication are now not enabled through DT as in MCSDK. Instead a sysfs entry is provided for the same. See Documentation/networking/keystone-netcp.txt for details.

K2 SerDes drivers

  • K2 SerDes driver is located at drivers/phy/phy-keystone-serdes.c. It supports 3 serdes modes. PCIe, 1G and 10G.
  • The following firmwares are required for proper functioning of the driver:
    • ks2_gbe_serdes.bin - for 1G
    • ks2_xgbe_serdes.bin - for 10G
    • ks2_pcie_serdes.bin - for PCIe
  • These firmwares have configuration values which otherwise were embedded in the driver code in v3.10.x based kernel releases
  • These firmwares are available in the file systems and k2-fw-initrd.cpio.gz file supplied in the release package and referred in the u-boot section of this document

PCIe driver

  • PCIe RC mode was set in Kernel in MCSDK but moved to U-boot in ProcSDK for upstreaming reason. U-boot needs to be the same release version as Kernel. If not, PCIe mode initialization needs to be added in the older version of u-boot.

Building the Linux SDK

As with MCSDK, the Processor SDK Linux can be fully assembled from sources, via Yocto. This gives the ability for customers to easily add or remove components from the default filesystem(s) provided in the Processor SDK Linux Installer. The instructions on how to build the Processor SDK Linux are available here


Processor SDK RTOS

Directory Structure

Information on the Processor-SDK RTOS directory structre is here. Some modifications were made to be consistent across all devices:

C66x

  • SDK folder is per device. So, there is one for C665x and one for C667x.
  • IBL, POST, and boot utilities moved from SDK folder tools to PDK folder packages/ti/boot
  • NDK examples moved from SDK folder examples/ndk to PDK folder packages/ti/transport/ndk/nimu/example
  • program_evm flash utility moved from SDK folder tools/program_evm to SDK folder bin

K2x

  • SDK and PDK folders are per device. So, there are separate ones for K2E, K2H/K2K, and K2L.
  • NDK examples moved from SDK folder examples/ndk to PDK folder packages/ti/transport/ndk/nimu/example

Getting Started

The Processor-SDK RTOS Getting Started Guide is located here. As in MCSDK, this is the page to quickly find links for software and information on setting up hardware. Further information can be found in the Developer Guide. This will look different from the MCSDK documentation since we are now focusing on how to use the SDK software to quickly create an embedded application rather than the design of the software.

Migration from MCSDK (K2x)

CSL

  • Renamed “ti/csl/device” folder to “ti/csl/soc” – hence any include header files as “ti/csl/device/k2?/src/xxxx.h” needs to be changed to “ti/csl/soc/k2?/src/xxxx.h”
  • One top level include header files per IP replaces multiple CSL files per IP for the following :
    • <ti/csl/cslr_bcp.h>, <ti/csl/cslr_iqn2.h>, <ti/csl/csl_rac.h>, <ti/csl/csl_tac2.h>, <ti/csl/cslr_aif2.h> and <ti/csl/cslr_pcie.h>
  • Deprecated top level cslr_cpsw_5gf.h files - applications including csl 5gf header files would need to migrate to include <ti/csl/csl_cpsw.h> file.

Migration from BIOS-MCSDK (C66x)

CSL

  • Following SoC defines are added to support C6657 and C6678 in the CSL.
    • SOC_C6657 SOC_C6678
  • following files are not supported from the top level CSL folder (ti/csl)
    • csl_mpuAux.h, csl_memprot.h, csl_memprotAux.h, csl_pllcAux.h, csl_cp_tracer.h
  • include file changes
    • Instead of <ti/csl/csl_cpsw_3gfAux.h> , <ti/csl/csl_cpswAux.h> should be included
    • Instead of <ti/csl/csl_cpsw_3gfssAux.h>, <ti/csl/csl(r)_cpsw_ss_s.h> should be included
    • Instead of <ti/csl/cslr_pcie*.h> needs to be changed to include cslr_pcie.h
    • Instead of <ti/csl/cslr_sgmii.h>, <ti/csl/csl_sgmii.h> include <ti/csl/cslr_cpsgmii.h> and <ti/csl/csl_cpsgmii.h> respectively.
    • Instead of <ti/csl/csl(r)_cpsw_3gf*.h> include <ti/csl/csl(r)_cpsw.h>

NOTE Please define appropriate SOC define in the applicatoin when using the CSL. E.g., SOC_C6678 or SOC_C6657 for c6678 and c6657 devices.

CPPI

  • Interface with Resource Management (RM) LLD ( Optional )
  • Cppi_GlobalConfigParams configuration structure is changed, however there is no change for the applications that include <ti/drv/cppi/device/<soc>/cppi_device.c> file. Applications does not include this directly, need to align the configuration as demonstrated in the cppi_device.c file:

QMSS

  • Optional RM LLD interface is supported to enable customers to use Resource manangement.
  • Qmss_GlobalConfigParams configuration structure is changed, however there is no change for the applications that include <ti/drv/qmss/device/<soc>/qmss_device.c> file. For applications that does not include this directly, it needs to align the configuration as demonstrated in the qmss_device.c file:

PA/SA

  • Support for Resource management (RM LLD) is supported for PA LLD - Note that this is an optional feature, applications that do not enable RM would not need to bring in RM LLD.

HUA Demonstration

The HUA Demo for C66x in BIOS-MCSDK is no longer supported in Processor-SDK. Rather, the Image Processing Demo is the common RTOS demonstration that is supported across all supported devices in the Processor-SDK for RTOS. This demo will continue to be enhanced with more capabilities.

Common Migration for Both MCSDK and BIOS-MCSDK

Platform Library

The Platform Library is deprecated and functionality is provided by the Board Library. For backwards compatibility, Platform Library is provided in this initial release. But it is planned to be dropped in a future release. The Board Library is a common API across all devices in the Processor-SDK.


MCSDK1.1 to Processor SDK Migration for OMAPL13x devices

For OMAPL13x devices, you can refer to the `MCSDK1.1 to Processor SDK Migration <https://processors.wiki.ti.com/index.php/MCSDK1.1_to_Processor_SDK_Migration_Guide_for_OMAPL13x/C674x_devices>`__ link

2.4.6. MCSDK1.1 to Processor SDK Linux Migration Guide for OMAPL13x devices

Processor SDK v4.0 release from Texas Instruments adds support for OMAPL13x and aligns the platform software with newer ARM and DSP based SOC’s.

All new development efforts should use Processor SDK. This is the only software package that TI supports on these devices for new development.

Installation

  • Processor SDK Linux is available as an installer on ti.com for download

Target Machine

  • The Processor SDK Linux installer is available only for 64-bit host machines running Linux. Support for 32-bit machines is dropped primarily due to the Linzro toolchain not supporting 32-bit anymore. Host support for the SDK is described in the Release Notes

Tool Chain

  • Processor Linux SDK is using Linaro GCC 6.2-2016.11 cross compiler.

Directory Structure

  • The images directory in MCSDK is renamed to prebuilt_images and moved under board_support directory.
  • In addition to the prebuilt_images and filesystem, the Linux installer now contains a copy of the Linux Kernel and U-Boot GIT repositories.
  • A script create-sdcard.sh is provided in bin directory to create the SD card using prebuilt images in Processor SDK.
  • host-tools folder in MCSDK is not included in Processor SDK. Pinmux utility can be downloaded from ti.com. Aisgen utility is replaced by dd command to generate the u-boot ais image.
  • For an overview of the directory structure and a brief description of the contents of the folders, please refer to Processor SDK Linux Directory Structure

U-Boot

  • Bootz is enabled in u-boot. So use zImage instead of uImage
  • A copy of u-boot GIT repo is included in the board-support folder of the Processor SDK installation
  • Aisgen utility is not used in Processor SDK to generate the U-Boot ais image, but using dd command:
$ sudo dd if=u-boot.ais of=/dev/sd<N> seek=117 bs=512 conv=fsync

Linux Kernel

Building the Linux SDK

  • The Processor SDK Linux can be fully assembled from sources, via Yocto.
  • The instructions on how to build the Processor SDK Linux are available in Building the Linux SDK

Inter-Processor Communication (IPC)

  • Processor SDK supports IPC 3.x. It is not Syslink based implementation.
  • To migrate to IPC 3.x, please refer to IPC 3.x Migration Guide

2.4.7. AMSDK to Processor SDK Migration Guide

For many years, the AMSDK has been a great way to get started with Embedded Linux development on TI’s broad market line of ARM Cortex-A microprocessors, also referred to as Sitara. If you go by “what’s in a name?”, you can easily see the connection. The “AM” of AMSDK is the first two letters of part numbers in the Sitara line-up. For example, take the AM335x which is an ARM Cortex-A8 based processor which drives the popular Beaglebone Black board. The “SDK” refers to Software Development Kit. The AMSDK was designed from the ground up to provide a great starting point for developing an embedded Linux system on a Sitara Processor. One of the goals of the AMSDK was to enable a developer to quickly (under 10 minutes) explore and evaluate the possibilities as well as start development on a customized Linux software platform in under an hour. It’s up to each developer to decide if the AMSDK achieved these goals, but the feedback overall has been positive.

Like the Linux kernel itself, which evolves every 77 days or so with a new release, it’s time for the AMSDK to evolve, without departing from it’s heritage. TI has a rich offering of microprocessors from multicore ARMs to tiny, power-efficient DSPs, and different combinations of ARM, DSP, and specialized cores to provide the broad market a variety of solutions. Since many developers will touch several of these devices from project to project, it is beneficial to standardize the experience to maximize the benefit of learning. The limited time developers have in today’s time-to-market driven environment is very important and shouldn’t be wasted.

To this end, the AMSDK is being renamed to the Processor SDK for Linux. This new title will allow future devices, which may not carry the “AM” naming convention, to benefit from the same software development experience. Each developer that uses the Processor SDK from project to project can leverage that experience and know with confidence what they can expect.

With this background in place, let’s dig into more specifics.

2.4.7.1. Migrating from AMSDK 8.0 to Processor SDK 1.0

As suggested above, this transition at this point in time, is largely a name change. The good news is, migration should be very simple. From a component point of view, Processor SDK for Linux 1.0 is very similar to AMSDK 8.0:

Component AMSDK 8.0 Processor SDK 1.0
U-Boot Bootloader v2014.07 v2014.07
Linux Kernel 3.14.26 3.14.26
Toolchain Linaro GCC 4.7 2013.03 hard-float Linaro GCC 4.7 2013.03 hard-float
GUI Development Platform Qt 4.8 Qt 5.4
Graphics SDK 05.01.01.02 05.01.01.02
Supported Platforms AM335x and AM437x AM335x and AM437x
Supported Hosts Ubuntu 12.04 and 14.04 Ubuntu 12.04 and 14.04

Table: AMSDK 8.0 to Processor SDK 1.0 Component Comparison

It is clear from the above that these SDKs are very similar. The biggest difference by far is the transition from Qt 4.8 to Qt 5.4. If you’d like to learn more about this specifically, please see the Qt 4 to 5 Migration. If you have a “headless” system, or don’t use Qt, then this is really a “don’t care”.

The rest of the Arago filesystem provided with the SDK was updated as well. Please consult the Software Manifest for specific changes.

2.4.7.1.1. Documentation

Since the components are mostly common, the documentation is also very similar. The headings and such have been updated to include the new Processor SDK naming, but the content, except when improved or necessary, is largely the same.

2.4.7.1.2. Hardware Platforms

Both SDKs support the same hardware platforms from TI. Here’s the list from the Processor SDK, for completeness.

2.4.7.1.3. Board Porting

One of the major efforts to developing a customer Linux Embedded System is porting the bootloader, U-Boot in this case, and the Linux kernel to a new hardware platform. Since the U-Boot and Kernel sources provided with the Processor SDK 1.0 are identical, this effort is minimal to non-existent. Custom drivers and any other bootloader or kernel code should move over seamlessly.

2.4.7.1.4. Application Development

If using the Arago Filesystem provided with the SDK (i.e. you haven’t yet used Yocto/Open Embedded to create your own), the specific versions of the packages provided might change slightly. Please consult the Software Manifest for any packages your are concerned with.

GUI Development

As highlighted above, this is the largest change between the two SDKs. If Qt 4.x is used currently, it is possible that adaptation to Qt 5.4 will be necessary. It depends largely on the Qt components used and how they transition to Qt 5.4. Again, please consult the Qt 4 to 5 Migration Guide for more information.

2.4.7.2. Summary

The AMSDK that you may be familiar with is getting a new name, the Processor SDK for Linux. This name change paves the way for adding more devices from TI’s processor line-up and allow developer’s to enjoy the same experience with more options. What seems like a simple name change at this point, will continue to grow to become an extensive software offering covering a broad range of devices, as well as operating systems, examples, tools, and other important components developers need in this fast-paced, time-to-market driven environment. The experience gained will translate nicely to the next project or the next set of challenges, enabling developers to be more efficient and successful.

The migration from the AMSDK to the Processor SDK is expected to be minimal, with a few noted exceptions. It’s a great time to explore the “new” AMSDK, and see how it will help solve the challenges faced today, and preparing for those in the future.

2.5. Supported Platforms and Versions

Supported Host Operating Systems

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

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

Supported Platforms and EVMs

The following platforms and EVMs are supported with Processor SDK

Platform EVM Tested Version Document Processor SDK Linux Processor SDK RT Linux Processor SDK RTOS Processor SDK Android
AM57x AM572x EVM A3 Hardware User’s Guide X X X X
AM572x IDK 1.3A Hardware User’s Guide Hardware Setup with CCS X X X X
AM571x IDK 1.3A Hardware User’s Guide Hardware Setup with CCS X X X X
AM574x IDK 1.0A Hardware User’s Guide Hardware Setup with CCS X X X X
AM437x AM437x EVM 1.5B Hardware User’s Guide X X X  
AM437x SK 1.1A Hardware User’s Guide X   X  
AM437x IDK 1.4A Hardware User’s Guide   X X  
AM335x AM335x EVM 1.6A Hardware User’s Guide X X X  
AM335x SK 1.2 Hardware User’s Guide X   X  
BeagleBone Black B6 Hardware User’s Guide X   X  
AM335x ICE 2.1A Hardware User’s Guide Hardware Setup with CCS   X X  
K2H/K2K 66AK2Hx EVM 4.0 Hardware User’s Guide X X X  
TCI6638K2K EVM 4.0 Hardware User’s Guide X X X  
K2E AK2Ex EVM 1.0.3.0 Hardware User’s Guide X X X  
K2L 66AK2L06 EVM 1.0.3.0 Hardware User’s Guide X X X  
K2G K2G EVM 1.3D

Hardware User’s Guide

Hardware Setup with CCS

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