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

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.3. Release 04.03.00 Highlights

Released Mar 2018

What’s New

SDK Components & Versions

Component Version
Linux Kernel 4.9.69+ (2017 LTS)
U-Boot 2017.01
Yocto Project 2.2 (morty)
Linaro Toolchain (gcc) 6.2.1 2016.11 hard-float
Qt 5.7.1
OpenCL 1.1.14
OpenCV 3.1
Wayland 1.11
GStreamer 1.8.3
Chromium v53
TI PRU Compiler 2.2.1
TI C66x CGT Compiler 8.2.2

2.1.4. Supported Platforms

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


2.1.5. Build Information

2.1.5.1. U-Boot

Head Commit: c68ed086bd00054e28c46e033385f79104c3f84c mmc: omap_hsmmc: Handle command and data errors after response
Date: Wed Dec 20 11:21:41 CST 2017
uBoot Version: 2017.01
uBoot Description: v2017.01-457-gc68ed08
Clone: git://git.ti.com/ti-u-boot/ti-u-boot.git
Branch: ti-u-boot-2017.01
uBoot Tag: ti2017.06

2.1.5.2. Kernel

Linux Kernel

The kernel git repository, branch and commit id can be found below:
Based on Version: 4.9.69
URL: git://git.ti.com/processor-sdk/processor-sdk-linux.git
Branch: processor-sdk-linux-04.03.00
Commit ID: bfe793963ed7b2af3e1c3dd32e7275f449e6259d

Real Time (RT) Linux Kernel

The RT kernel git repository, branch and commit id can be found below:
Based on:
Kernel Version: 4.9.65
RT Kernel Version: 4.9.65-rt23
URL: git://git.ti.com/processor-sdk/processor-sdk-linux.git
Branch: processor-sdk-linux-rt-04.03.00
Commit ID: 3986f9c45542f5ff4ce7f0c916c4aae8f868a042

Generic Kernel Release Notes

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

2.1.6. Issues Tracker

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

Record ID Platform Title
LCPD-9496 am437x-idk, am437x-sk, am43xx-epos, am43xx-gpevm, am43xx-hsevm AM43XX DS0_PULL_UP_DOWN_EN wrong polarity
LCPD-10976 am57xx-evm Weston memory leak related to HDMI hotplug
LCPD-10975 am574x-idk, am574x-hsidk, k2e-evm, k2e-hsevm, k2g-evm, k2g-hsevm, k2g-ice, k2hk-evm, k2hk-hsevm, k2l-evm, k2l-hsevm EDAC support is disabled
LCPD-10910 am571x-idk U-Boot: am571x-idk doesn’t boot with ti2017.05-rc1
LCPD-10862 am335x Adding VLANs does not show correct tagging on ingress/egress
LCPD-10859 am57xx-evm AM5728 PCIe unstable: PCIe USB card stopped when doing ethernet bandwidth test using iperf3
LCPD-10809 am43xx-gpevm AM437x USB RNDIS Host Fails with AM437x Client/gadget
LCPD-10411 k2g-evm Pcie-ep: pcitest: Read/write/copy tests timeout with legacy IRQ
LCPD-7903 k2g-evm, k2hk-evm Uboot phy startup failed and dhcp failed occasionally on k2 board
LCPD-8871 am43xx-epos, am43xx-gpevm DSS underflows seen on K2G at boot time
LCPD-10963 am335x-evm Possible memory leaked observed during stress testing mode setting
LCPD-10921 am571x-idk, am572x-idk, am574x-idk, am574x-hsidk, am57xx-evm, am57xx-hsevm Writeback capture with interlace does not work
LCPD-10843 am571x-idk, am572x-idk, am335x-ice, am437x-idk prueth: fix probe crash when unable to allocate sram memory
LCPD-10808 am574x-idk PMT data including iodelay values for am574x-idk
LCPD-10212 omapl138-lcdk omapl138: Modprobe g_zero leads to a cppi trace - no seeming loss of functionality
LCPD-10013 am572x-idk dhcp failed in uboot sometimes
LCPD-10534 am57xx-evm v4l2src gstreamer plugin with capture using VIP driver is showing frame loss
LCPD-4834 AM335x CONNECTIVITY: AM33XX: descriptor warning upon suspend/resume with host and device
LCPD-666 AM335x AM33X: CONNECTIVITY: gstreamer usb video fails to complete 10000 frames
LCPD-1244 AM335x AM335x: CONNECTIVITY: Could not flush fifo errors when cable is disconnected during usb transaction
LCPD-7824 am335x-evm, am43xx-gpevm, am57xx-evm, k2hk-evm LTP MM: system allowed 2 more memory map entries than /proc/sys/vm/max_map_count
LCPD-7340 am571x-idk No Pin Mux (PMT) Data available
LCPD-10658 am335x-evm, am335x-hsevm, am335x-ice, am335x-sk, am437x-idk, am437x-sk, am43xx-epos, am43xx-gpevm, am43xx-hsevm, am571x-idk, am572x-idk, am57xx-evm, am57xx-hsevm, beaglebone, beaglebone-black, k2e-evm, k2e-hsevm, k2g-evm, k2g-hsevm, k2g-ice, k2hk-evm, k2hk-hsevm, k2l-evm, k2l-hsevm, omapl138-lcdk Remove CONFIG_ENV_AES and all code associated with this
LCPD-10552 am43xx-epos Board does not boot
LCPD-7144 am335x-evm, am335x-ice, am335x-sk, am437x-idk, am437x-sk, am43xx-gpevm, am571x-idk, am572x-idk, am57xx-evm, beaglebone, beaglebone-black, omapl138-lcdk System refuse to freeze sometimes and suspend is aborted
LCPD-5647 AM437x I2C error causes irq flood, freezing the board
LCPD-10211 omapl138-lcdk omapl138-lcdk: USB Video capture does not provide warning for resolutions larger than 320x240 resolution
LCPD-10927 am574x-idk Thermal_zone reach critical temperature and shutting down on am574x-idk
LCPD-10210 omapl138-lcdk omapl138: USB ECM ethernet interface is missing - config option
LCPD-937 am43xx-epos am43xx-epos:Connectivity:QSPI big size and stress RW tests fail due to data mismatch
LCPD-868 am437x AM437x: USB dev node is not restored after resume from standby or suspend state
LCPD-6882 am335x-evm, am335x-ice, am335x-sk musb: ASIX usb-ethernet dongle unable to rx udp packets when behind a hub
PLSDK-1896 am571x-idk, am572x-idk cpts does not unregister from ptp_bc
PLSDK-1877 am335x-ice, am437x-idk PRU ETH on AM335x ICEv2
PLSDK-1861 am571x-idk, am572x-idk AM57xx-IDK: USB host doesn’t detect any attached USB device
PLSDK-1824   CPTS 1PPS: cannot enable 1PPS/PEROUT if disabled twice
PLSDK-1819 am571x-idk, am572x-idk SAN MAC address not seen in Node Table
PLSDK-1781 am571x-idk, am572x-idk CPTS events got lost occasionally
PLSDK-1776 am571x-idk, am572x-idk HSR/PRP: the lreNodes in LRE stats shows zero always
PLSDK-1773 am571x-idk, am572x-idk HSR/PRP: snmpwalk and debugfs doesn?t show Node Table entries
PLSDK-1771 am571x-idk, am572x-idk Intermittent Linux crash is observed on PRU ports in PTP tests
PLSDK-1770   Crash happens when ifconfig up/down in prueth PRP-SAN
PLSDK-1765 am571x-idk, am572x-idk AM57xx boundary clock internal clock sync does not persist
PLSDK-1764 am571x-idk, am572x-idk AM57xx boundary clock fails to sync after runtime port state changes
PLSDK-1763 am571x-idk AM571x boundary clock ICSS-x to ICSS-y internal clock sync with pps fails when BC includes CPTS and 2 ICSS’s
PLSDK-1752 k2e-evm, k2l-evm OpenCL: Floating_Point_Computation test failed due to TIOCL FATAL: Internal Error on K2L-RT and K2E-RT platforms
PLSDK-1725 am572x-evm X11: cannot run /etc/init.d/xorg
PLSDK-1719 k2e-evm K2E ethernet port (eth2) link down if SGMII configured as MAC_MAC_FORCED
PLSDK-1713 omapl138-lcdk OMAP-L138 bin/setup-uboot-env.sh set env bootcmd wrongly
PLSDK-1712 am572x-idk, am572x-evm openvx test hangs on AM572x-GP and AM572x-IDK platform
PLSDK-1596 am571x-idk, am572x-idk Static offset between input and output 1 PPS signals on GMAC
PLSDK-1540 am335x-evm, am437x-evm AM3 and AM4 Build WPANTUND: Unable to find a usable implementation of boost::signals2

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

Record ID Platform Title
LCPD-11124   Fix WPA security vulnerability in ECS components
LCPD-11109 am571x-idk, am572x-idk, am574x-idk, am574x-hsidk, am57xx-evm, am57xx-beagle-x15, am57xx-hsevm System can not DHCP while booting
LCPD-11106 am43xx-epos, am43xx-hsevm TEE header error prevents TEE core initialization
LCPD-11018 am571x-idk, am572x-idk, am574x-idk, am574x-hsidk, am57xx-evm Thermal: Sometimes Software initiated thermal shutdown doesn?t trigger before HW shutdown
LCPD-11415 am43xx-hsevm OPTEE regression_1014 test failed (secure data path against SDP TAs and pTAs)
LCPD-11126 am571x-idk, am572x-idk, am574x-idk, am574x-hsidk, am57xx-evm, am57xx-beagle-x15, am57xx-hsevm EGLImage memory leak
LCPD-11134 am57x AM57xx Rev A3 ETH1 does not get link at 1Gbps
LCPD-11307 am335x wl18xx not loading with ti2017.02-rc4
LCPD-11024 omapl138-lcdk musb: babble condition doesn?t recover on OMAP-L138
LCPD-11136 am335x-evm, am335x-hsevm, am335x-ice, am335x-sk, am437x-idk, am437x-sk, am43xx-epos, am43xx-gpevm, am43xx-hsevm, am571x-idk, am572x-idk, am574x-idk, am574x-hsidk, am57xx-evm, am57xx-beagle-x15, am57xx-hsevm, beaglebone, beaglebone-black, k2e-evm, k2e-hsevm, k2g-evm, k2g-hsevm, k2g-ice, k2hk-evm, k2hk-hsevm, k2l-evm, k2l-hsevm, omapl138-lcdk Four Common Vulnerabilities and Exposures (CVE) not implemented
LCPD-11003 am335x-evm AM33xx DDR DPLL incorrect setting

2.1.6.3. Errata Workarounds Available in this Release

Record ID Title
LCPD-9084 i887: Software workaround to limit mmc3 speed to 64MHz
LCPD-7642 MMC/SD: i832: return DLL to default reset state with CLK gated if not in SDR104/HS200 mode.
LCPD-5310 i900: CTRL_CORE_MMR_LOCK_5 region after locking results in ctrl module inaccessible, recoverable only post a reset
LCPD-5309 LCPD: i896: USB Port disable doesnt work
LCPD-5311 i893: DCAN ram init issues in HW AUTO and when traffic hitting CAN bus (open investigation)
LCPD-9173 i897: USB Stop Endpoint doesnt work in certain circumstances
LCPD-5924 ALL: CONNECTIVITY: CPSW: errata i877 workarround for cpsw
LCPD-4975 DSS AM5: implement WA for errata i886
LCPD-5052 Upstream: Post the dmtimer errata fix for i874
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-4218 Implement Workaround for Errata i813 - Spurious Thermal Alert Generation When Temperature Remains in Expected Range
LCPD-4217 Implement Workaround for Errata i814 - Bandgap Temperature read Dtemp can be corrupted
LCPD-4184 Implement workaround for errata i814 - Bandgap Temperature read Dtemp can be corrupted
LCPD-1146 DMM hang: Errata VAYU-BUG02976 (i878) (register part)
LCPD-6907 Workaround errata i880 for RGMII2 is missing
LCPD-8294 37 pins + VOUT pins need slow slew enabled for timing and reliability respectively
LCPD-5836 CAL: Errata: i913: CSI2 LDO needs to be disabled when module is powered on
LCPD-5460 Implement WA for Vayu errata i829 (Reusing Pipe Connected To Writeback Pipeline On The Fly To An Active Panel)

2.1.6.4. SDK Known Issues

Record ID Platform Title Workaround
LCPD-5578 beaglebone-black 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-7255 All Telnet login takes too long (~40 seconds) Booting with rootfs mounted over NFS might cause ~40 seconds delay on Telnet login because DNS entries might not be properly populated. To work around this issue, enter appropriate DNS server IP in resolv.conf. For example: echo ?nameserver 192.0.2.2? > /etc/resolv.conf;
LCPD-8210 am57xx-evm, am571x-idk, am572x-idk QT Touchscreen interaction (Bear Whack) crash None
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, am57xx-evm Error message with multiple egl contexts that are not shared Limitation with Imagination DDK, no workaround
PLSDK-780 AM5X Failing to create more then 10 gst pipeline using ductai codec plugins Upper limit on # of simultaneous video channels is 10.
PLSDK-832 AM57 OpenCL matmpy intermittent DSP1 crash due to EdmaMgr issues w/ suspend/resume Disable DSP suspend/resume 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-1283 am572x-idk PRP: unexpected MAC address seen in the node_tabe dump Seen only with non offloaded case. With offload case, this is not seen.
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-1312 k2h-evm, k2e-evm, k2l-evm QoS test fails due to missing qos-inputs-0 on K2 platforms None
PLSDK-1398 k2e-evm, k2e-hsevm Matrix IPC demo seems hangs, if run after OpenCL demos, on K2E platform 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-1421 k2hk-evm SRIO is not functional on 2017 LTS None
PLSDK-1432 k2hk-evm 10G UBoot support broken on K2, in 2017LTS None
PLSDK-1556 k2hk-evm, k2hk-hsevm, k2e-evm, k2l-evm PDK: 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-1603 am571x-idk, am572x-idk, am572x-evm Received bad addr len cause the OpenAMP test failure when DSP is redownloaded on AM57xx platforms None
PLSDK-1625 am571x-idk, am572x-idk, am574x-idk prueth: netdev watchdog fires under heavy load A workaround is already implemented in software for this
PLSDK-1641   HSR/PRP: NetJury Test TC_HSR_5_2_1 fails  
PLSDK-1675 am572x-evm Matrix Demo: Observed unwanted failure message in QT touch and Browser related test None
PLSDK-1693 am572x-evm Incorrect behaviour observed for HDMI matrix on AM572x-GP EVM None
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
PLSDK-1720 am437x-evm Simple people tracking demo: Tracking Incorrect Number of People None
PLSDK-1732 am572x-idk Prueth: Observed packet re-ordering in VLAN_over_HSR and VLAN_over_PRP test on AM572x-IDK platform Packet re-ordering is expected to be taken care by network stack for TCP and application for UDP. So this is not a serious issue
PLSDK-1767 am571x-idk, am572x-idk FATAL: error getting device node for USB  
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-1815 am335x-evm, am437x-evm, am572x-evm DNS should be operational using binaries None
PLSDK-1817   HSR/PRP: Outstanding Net-Jury tests failures  
PLSDK-1828 am571x-idk, am572x-idk HSR: In a ring topology, seeing small performance degradation with concurrent traffic None
PLSDK-1836 am335x-evm, am335x-hsevm, am335x-ice, am335x-sk, beagleboneblack, omapl138-lcdk Kernel source code package has two defconfigs None
PLSDK-1842 AM4, AM5, K2 CMEM misses some multi-thread protection None
PLSDK-1891 am335x-evm QT Wayland compositor with SGX on AM335x Processor SDK  
PLSDK-1909 am572x-evm DLP SDK demo: Assertion `ctx->pollfds_cnt >= internal_nfds? failed None
PLSDK-1924 am335x-ice, am335x-sk, beagleboneblack AM3: Observed unwanted failure message in boot log.  
PLSDK-1938 am571x-idk Unexpected behaviour with fixed Seq-Nr. in HSR mode  
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 am572x-idk, am574x-idk GPIO Test fails  
PLSDK-1945 am572x-evm qApp->quick() does not work with the enhanced eglfs_kms QPA  
PLSDK-1950 k2e-evm IPSEC failure: Issue in IPSEC TCP on the K2E when running iperf over the tunnel  
PLSDK-1953 am571x-idk, am572x-idk Linux PRP: lreTransparentReception - passRCT doesn?t work as expected  
PLSDK-1955 am335x-evm, am335x-sk, am437x-sk, am437x-evm, am571x-idk, am572x-idk, am572x-evm Matrix Launcher Iterations_Demo:Unable to query physical screen size  
PLSDK-1963 k2e-evm K2E:Observed unwanted failure messages in boot log  

2.1.6.5. U-Boot Known Issues

Record ID Priority Title Component Subcomponent Platform Workaround
LCPD-10911 P3-Medium Boot device incorrect in u-boot file spl.h for am57xx Baseport u-boot am57xx-evm  
LCPD-10805 P3-Medium U-Boot: Fix uart boot on am335x-evm Baseport u-boot am335x-evm  
LCPD-10726 P3-Medium Update DDR3 emif regs structure for EMIF2 for the beagle_x15 board in U-Boot board file Baseport   am572x-idk, am57xx-evm  
LCPD-10668 P3-Medium Ethernet boot: Sometimes the board could not boot uboot from Ethernet on k2g-evm Connectivity UBOOT k2g-evm  
LCPD-9539 P3-Medium dhcp does not work after soft reboot Connectivity UBOOT k2g-evm  
LCPD-9369 P3-Medium AM437x GP EVM older PG version Uboot UART boot fails intermittently Baseport u-boot    
LCPD-8701 P3-Medium Soft reboot broken Baseport UBOOT k2g-ice  
LCPD-8393 P3-Medium u-boot ramfs boot does not work Baseport u-boot k2g-evm  
LCPD-8123 P3-Medium K2G: MSMC: Memory seen by USB controller not cache-coherent Baseport UBOOT k2g-evm  
LCPD-7864 P3-Medium U-Boot: Ethernet boot fails on AM335x and AM437x Connectivity   am335x-evm, am335x-ice, am335x-sk, am437x-idk, am437x-sk, am43xx-gpevm  
LCPD-7772 P3-Medium K2L/K2E: U-Boot: net: dhcp not working when both slave ethernet are connected to ethernet switch Connectivity UBOOT k2e-evm, k2l-evm  
LCPD-7547 P3-Medium uboot nand write hangs for big size on k2g Connectivity UBOOT k2g-evm  
LCPD-7519 P3-Medium dfu_get_buf return error when use dfu to update mmc card Baseport, Connectivity UBOOT am335x-evm  
LCPD-7366 P3-Medium uboot McSPI driver drives multiple chip selects simultaneously Connectivity UBOOT    
LCPD-5612 P3-Medium k2g_evm: Strange ethernet behavior seen in u-boot after warm reset when using netcp Connectivity UBOOT K2G  
LCPD-5517 P3-Medium Board fails to load bootloader sometimes when eSATA is connected Connectivity UBOOT AM572x  
LCPD-5416 P3-Medium U-BOOT: K2G: ?reset? fails for certain SD cards Baseport UBOOT K2G  
LCPD-5320 P3-Medium Update K2G Pinmuxing in U-boot with buffer class settings Baseport   K2G  
LCPD-5116 P3-Medium BBB: U-Boot: Board fails to acquire dhcp address sometimes Connectivity UBOOT AM335x  
LCPD-4817 P4-Low am57xx-evm: uboot: usb failed to detect Kingston DataTraveler usb msc device Connectivity UBOOT AM572x  

2.1.6.6. Linux Kernel Known Issues

Record ID Priority Title Component Subcomponent Platform Workaround
LCPD-9877 P2-High rtc alarm does not wakeup board from poweroff state Power & Thermal   omapl138-lcdk  
LCPD-9972 P2-High Soft reboot failed on k2g-evm with class 10 SD cards Connectivity   k2g-evm  
LCPD-10987 P3-Medium OpenCL tests failed due to missing CMEM carveouts in dts IPC, System Integration OpenCL am574x-idk  
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-7165 P3-Medium Board hangs on standby state sometimes Power & Thermal   am335x-evm, am43xx-gpevm  
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-11570 P3-Medium Base ubi filesystem could not be mounted as ubifs on k2g-evm Connectivity   k2g-evm  
LCPD-11564 P3-Medium AM57xx-evm: eth1 1G connection failure to netgear switch Connectivity CPSW, ETHERNET, PHYIF am57xx-evm  
LCPD-11556 P3-Medium ks3: navss: mem2mem not working Connectivity NAVSS    
LCPD-11121 P3-Medium Android: ADB Broken Android, Connectivity USB am57xx-evm  
LCPD-10974 P3-Medium am43xx-gpevm - usb camera gadget shows halting frames Connectivity USB    
LCPD-10863 P3-Medium am574x-idk: MMC speed is lower than expected in Uboot Connectivity MMCSD am574x-idk  
LCPD-10794 P3-Medium prueth: iperf udp test shows packet loss at low traffic rate such as 50Mbps Connectivity PRUSS/ETH am335x-ice, am437x-idk, am571x-idk, am572x-idk, k2g-ice  
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-7613 P3-Medium Ethernet on port eth1 unstable - possibly iodelay value issue Connectivity, System Test CPSW am57xx-evm  
LCPD-7559 P3-Medium K2E/K2HK does not enumerate usb3 devices through usb3.0 hub Connectivity USB k2e-evm, k2hk-evm  
LCPD-7266 P3-Medium CONNECTIVITY: USB RNDIS performance issues in 4.4 kernel Connectivity USB    
LCPD-7265 P3-Medium Uboot eMMC does not use HS200 on am57xx-gpevm Connectivity   am57xx-evm  
LCPD-7146 P3-Medium AM437x: USB causes higher suspend power after first iteration Connectivity USB am43xx-gpevm  
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, am57xx-hsevm  
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, K2E, K2G, K2HK, K2L  
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 Connectivity: 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-553 P3-Medium AM33XX: CONNECTIVITY: RNDIS performance drops after revert of advisory revert Connectivity USB    
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-8257 P3-Medium Boot failed 1 of 1000 times on k2g Baseport   k2g-evm  
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-615 P3-Medium ALL:BASEPORT: Opening several RTC nodes leads to failure Baseport      
LCPD-614 P3-Medium ALL:BASEPORT: RTC allows to be written to in RDONLY mode Baseport      
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, am57xx-beagle-x15, am57xx-hsevm  
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 VPE: File2File checksum changes across multiple runs Audio & Display   am571x-idk, am572x-idk, am57xx-evm, am57xx-hsevm There is no workaround for this issue yet
LCPD-6377 P3-Medium OMAP_BO_CACHED feature not functional Audio & Display, Multimedia Display am437x-idk, am437x-sk, am43xx-gpevm, am43xx-hsevm, 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-747 P4-Low Power: cpuidle states shows bogus power in stats Power & Thermal   am437x-idk, am437x-sk, am43xx-gpevm, am43xx-hsevm  
LCPD-565 P4-Low AM43xx: Power & Thermal: Board hangs in suspend state if function_graph tracer is enabled Power & Thermal      
LCPD-287 P4-Low am335x: Power & Thermal: pm_debug stats might not be updated 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] 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-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-8987 P4-Low There is timeout error occasionaly when do mkfs.ext2 on emmc Connectivity MMCSD am43xx-gpevm  
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-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 am57xx - 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-983 P4-Low AM335x: USB: disconnect and reconnect of hub during camera test results in capture failure Connectivity USB    
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-11011 P4-Low Change Compression: Improve Boot performance Android, Baseport      
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-9436 P4-Low DRM: plane zorders must be unique Audio & Display Display am571x-idk, am572x-idk, am57xx-evm, am57xx-hsevm  
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.6.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  

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 am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
af_unix_sock_stream_latency (microsec) 42.24 (min 42.05, max 42.43) 24.48 34.5 46.07 668.63
af_unix_socket_stream_bandwidt (MBs) 165.12 (min 161.33, max 168.91) 187.91 2142.24 495.03 28.34
bw_file_rd-io-1mb (MB/s) 192.27 (min 190.37, max 194.17) 203.42 1350.67 662.91 24.1
bw_file_rd-o2c-1mb (MB/s) 158.02 (min 155.62, max 160.41) 175.78 1004.35 510.9 36.69
bw_mem-bcopy-16mb (MB/s) 156.51 (min 155.13, max 157.89) 193.14 1945.53 1237.05 90.72
bw_mem-bcopy-1mb (MB/s) 187.07 (min 183.92, max 190.22) 198.18 4949.59 1339.97 92.25
bw_mem-bcopy-2mb (MB/s) 187.95 (min 168.53, max 207.36) 196.19 2632.57 1232.86 91.04
bw_mem-bcopy-4mb (MB/s) 211.12 (min 210.13, max 212.1) 196.65 2056.91 1222.87 92.28
bw_mem-bcopy-8mb (MB/s) 218.63 (min 217.98, max 219.28) 197.53 1960.54 1234.38 94.19
bw_mem-bzero-16mb (MB/s) 996.17 (min 996.14, max 996.2) 672.44 4974.35 3330.56 146.75
bw_mem-bzero-1mb (MB/s) 585.26 (min 183.92, max 984.25) 436.13 (min 198.18, max 674.08) 5232.31 (min 4949.59, max 5515.03) 3001.41 (min 1339.97, max 4662.84) 119.27 (min 92.25, max 146.28)
bw_mem-bzero-2mb (MB/s) 586.06 (min 168.53, max 984.74) 434.68 (min 196.19, max 673.17) 4081.58 (min 2632.57, max 5530.59) 2651.02 (min 1232.86, max 4069.18) 118.41 (min 91.04, max 145.77)
bw_mem-bzero-4mb (MB/s) 603.38 (min 210.13, max 1006.8) 434.69 (min 196.65, max 672.72) 3649.2 (min 2056.91, max 5241.48) 2429.95 (min 1222.87, max 3637.02) 119.46 (min 92.28, max 146.63)
bw_mem-bzero-8mb (MB/s) 606.87 (min 217.98, max 1007.18) 435.38 (min 197.53, max 673.23) 3511.12 (min 1960.54, max 5061.69) 2331.72 (min 1234.38, max 3429.06) 120.6 (min 94.19, max 147.0)
bw_mem-cp-16mb (MB/s) 161.71 (min 160.29, max 163.13) 195.04 1045.48 600.26 100.98
bw_mem-cp-1mb (MB/s) 591.62 (min 198.57, max 984.25) 437.35 (min 200.5, max 674.2) 4470.3 (min 3296.19, max 5644.4) 2814.02 (min 604.78, max 5023.26) 122.44 (min 98.07, max 146.8)
bw_mem-cp-2mb (MB/s) 589.74 (min 190.69, max 985.06) 436.28 (min 199.38, max 673.17) 3349.03 (min 1197.07, max 5500.98) 2250.14 (min 600.87, max 3899.4) 122.12 (min 97.96, max 146.27)
bw_mem-cp-4mb (MB/s) 590.75 (min 197.32, max 984.62) 436.52 (min 200.43, max 672.61) 3157.53 (min 1052.77, max 5262.29) 2090.39 (min 575.87, max 3604.9) 122.22 (min 97.48, max 146.96)
bw_mem-cp-8mb (MB/s) 597.12 (min 196.04, max 1005.15) 436.85 (min 201.31, max 672.38) 3070.26 (min 1048.22, max 5092.3) 2008.14 (min 605.74, max 3410.54) 124.17 (min 101.49, max 146.85)
bw_mem-fcp-16mb (MB/s) 274.34 (min 273.26, max 275.42) 158.46 984.92 607.83 65.82
bw_mem-fcp-1mb (MB/s) 637.98 (min 292.18, max 984.25) 417.09 (min 160.1, max 674.08) 4215.24 (min 2915.45, max 5515.03) 2630.82 (min 598.8, max 4662.84) 105.79 (min 65.3, max 146.28)
bw_mem-fcp-2mb (MB/s) 638.53 (min 292.18, max 984.74) 415.9 (min 158.63, max 673.17) 3346.47 (min 1162.34, max 5530.59) 2337.03 (min 604.87, max 4069.18) 105.98 (min 66.19, max 145.77)
bw_mem-fcp-4mb (MB/s) 638.63 (min 270.51, max 1006.8) 415.57 (min 158.42, max 672.72) 3114.63 (min 987.78, max 5241.48) 2111.08 (min 585.14, max 3637.02) 106.43 (min 66.22, max 146.63)
bw_mem-fcp-8mb (MB/s) 643.99 (min 289.16, max 1007.18) 415.92 (min 158.61, max 673.23) 3025.04 (min 988.39, max 5061.69) 2017.01 (min 604.96, max 3429.06) 107.54 (min 68.08, max 147.0)
bw_mem-frd-16mb (MB/s) 249.77 (min 249.66, max 249.87) 241.27 2034.85 724.05 127.68
bw_mem-frd-1mb (MB/s) 281.96 (min 270.75, max 292.83) 204.59 (min 160.1, max 249.07) 3000.66 (min 2915.45, max 3085.86) 717.18 (min 598.8, max 835.56) 96.0 (min 65.3, max 126.69)
bw_mem-frd-2mb (MB/s) 272.28 (min 249.38, max 293.6) 200.41 (min 158.63, max 242.19) 1637.14 (min 1162.34, max 2111.93) 671.03 (min 604.87, max 737.19) 96.36 (min 66.19, max 126.52)
bw_mem-frd-4mb (MB/s) 265.68 (min 249.58, max 292.7) 200.11 (min 158.42, max 241.79) 1199.44 (min 987.78, max 1411.1) 655.61 (min 585.14, max 726.08) 96.97 (min 66.22, max 127.72)
bw_mem-frd-8mb (MB/s) 271.18 (min 249.28, max 296.56) 200.18 (min 158.61, max 241.75) 957.59 (min 926.78, max 988.39) 665.49 (min 604.96, max 726.02) 97.94 (min 68.08, max 127.79)
bw_mem-fwr-16mb (MB/s) 995.74 (min 995.27, max 996.2) 672.78 4939.03 3327.79 146.57
bw_mem-fwr-1mb (MB/s) 627.27 (min 270.75, max 984.25) 461.64 (min 249.07, max 674.2) 4365.13 (min 3085.86, max 5644.4) 2929.41 (min 835.56, max 5023.26) 136.75 (min 126.69, max 146.8)
bw_mem-fwr-2mb (MB/s) 618.24 (min 249.38, max 985.06) 457.68 (min 242.19, max 673.17) 3806.46 (min 2111.93, max 5500.98) 2318.3 (min 737.19, max 3899.4) 136.4 (min 126.52, max 146.27)
bw_mem-fwr-4mb (MB/s) 616.95 (min 249.58, max 984.62) 457.2 (min 241.79, max 672.61) 3336.7 (min 1411.1, max 5262.29) 2165.49 (min 726.08, max 3604.9) 137.34 (min 127.72, max 146.96)
bw_mem-fwr-8mb (MB/s) 622.26 (min 249.28, max 1005.15) 457.07 (min 241.75, max 672.38) 3009.54 (min 926.78, max 5092.3) 2068.28 (min 726.02, max 3410.54) 137.32 (min 127.79, max 146.85)
bw_mem-rd-16mb (MB/s) 252.02 (min 251.89, max 252.15) 370.89 3034.33 2419.11 137.23
bw_mem-rd-1mb (MB/s) 629.97 (min 272.41, max 987.33) 321.74 (min 272.0, max 371.47) 12282.12 (min 10891.27, max 13672.97) 1772.03 (min 865.65, max 2678.4) 350.7 (min 136.02, max 565.37)
bw_mem-rd-2mb (MB/s) 619.74 (min 254.78, max 984.25) 319.0 (min 273.37, max 364.63) 8632.59 (min 7788.16, max 9477.01) 1568.71 (min 696.26, max 2441.15) 349.89 (min 136.71, max 563.06)
bw_mem-rd-4mb (MB/s) 619.69 (min 251.56, max 991.57) 320.23 (min 274.35, max 366.1) 2473.49 (min 1610.31, max 3336.67) 1553.44 (min 694.32, max 2412.55) 351.11 (min 137.64, max 564.57)
bw_mem-rd-8mb (MB/s) 620.32 (min 251.7, max 993.54) 321.08 (min 273.63, max 368.53) 2179.15 (min 1294.92, max 3063.37) 1553.48 (min 692.22, max 2414.73) 350.61 (min 136.97, max 564.25)
bw_mem-rdwr-16mb (MB/s) 202.83 (min 202.8, max 202.86) 296.93 914.97 565.95 108.29
bw_mem-rdwr-1mb (MB/s) 203.36 (min 198.57, max 206.7) 248.25 (min 200.5, max 295.99) 5115.64 (min 3296.19, max 6935.08) 644.1 (min 604.78, max 683.41) 102.81 (min 98.07, max 107.55)
bw_mem-rdwr-2mb (MB/s) 198.86 (min 190.69, max 203.05) 246.86 (min 199.38, max 294.33) 2399.37 (min 1197.07, max 3601.66) 584.61 (min 568.34, max 600.87) 103.07 (min 97.96, max 108.17)
bw_mem-rdwr-4mb (MB/s) 200.21 (min 197.32, max 203.2) 247.85 (min 200.43, max 295.27) 1073.13 (min 1052.77, max 1093.49) 572.92 (min 569.96, max 575.87) 102.98 (min 97.48, max 108.48)
bw_mem-rdwr-8mb (MB/s) 201.07 (min 196.04, max 202.9) 249.46 (min 201.31, max 297.61) 988.53 (min 928.83, max 1048.22) 586.52 (min 567.3, max 605.74) 104.9 (min 101.49, max 108.31)
bw_mem-wr-16mb (MB/s) 996.3 (min 996.2, max 996.39) 274.61 1273.07 691.44 566.73
bw_mem-wr-1mb (MB/s) 596.52 (min 206.5, max 987.33) 284.0 (min 272.0, max 295.99) 10304.03 (min 6935.08, max 13672.97) 774.53 (min 683.41, max 865.65) 336.46 (min 107.55, max 565.37)
bw_mem-wr-2mb (MB/s) 593.61 (min 203.05, max 984.25) 283.85 (min 273.37, max 294.33) 6539.34 (min 3601.66, max 9477.01) 632.3 (min 568.34, max 696.26) 335.62 (min 108.17, max 563.06)
bw_mem-wr-4mb (MB/s) 595.39 (min 202.89, max 991.57) 284.81 (min 274.35, max 295.27) 1351.9 (min 1093.49, max 1610.31) 632.14 (min 569.96, max 694.32) 336.53 (min 108.48, max 564.57)
bw_mem-wr-8mb (MB/s) 595.84 (min 202.9, max 993.54) 285.62 (min 273.63, max 297.61) 1111.88 (min 928.83, max 1294.92) 629.76 (min 567.3, max 692.22) 336.28 (min 108.31, max 564.25)
bw_mmap_rd-mo-1mb (MB/s) 270.47 (min 270.27, max 270.67) 249.69 3090.91 836.68 126.87
bw_mmap_rd-o2c-1mb (MB/s) 181.0 (min 180.83, max 181.16) 189.07 1178.25 436.74 81.53
bw_pipe (MB/s) 269.88 (min 251.76, max 288.0) 373.45 683.34 454.16 26.71
bw_unix (MB/s) 165.12 (min 161.33, max 168.91) 187.91 2142.24 495.03 28.34
lat_connect (us) 69.19 (min 68.24, max 70.14) 59.64 49.01 77.93 1009.17
lat_ctx-2-128k (us) 595.44 (min 481.07, max 709.8) 226.88 9.5 9.0 2.0
lat_ctx-2-256k (us) 2355.27 (min 2327.86, max 2382.67) 1912.57 11.68 9.0 2.0
lat_ctx-4-128k (us) 1059.67 (min 1017.12, max 1102.21) 468.69 8.97 9.0 2.0
lat_ctx-4-256k (us) 1970.45 (min 1942.46, max 1998.44) 1941.02 21.04 9.0 2.0
lat_fs-0k (num_files) 236.0 (min 215.0, max 257.0) 308.0 362.0 207.0 24.0
lat_fs-10k (num_files) 82.0 84.0 159.0 96.0 9.0
lat_fs-1k (num_files) 126.5 (min 121.0, max 132.0) 118.0 223.0 142.0 12.0
lat_fs-4k (num_files) 127.5 (min 124.0, max 131.0) 144.0 223.0 139.0 11.0
lat_mem_rd-stride128-sz1000k (ns) 225.21 (min 223.93, max 226.49) 99.22 12.83 124.31 240.3
lat_mem_rd-stride128-sz125k (ns) 11.91 (min 11.77, max 12.04) 16.1 12.68 20.06 228.87
lat_mem_rd-stride128-sz250k (ns) 67.55 (min 64.57, max 70.53) 37.58 12.83 20.18 229.89
lat_mem_rd-stride128-sz31k (ns) 3.01 9.25 7.71 18.07 187.73
lat_mem_rd-stride128-sz50 (ns) 3.01 4.01 2.67 4.01 5.09
lat_mem_rd-stride128-sz500k (ns) 188.56 (min 188.19, max 188.93) 90.83 12.83 47.59 240.44
lat_mem_rd-stride128-sz62k (ns) 9.15 (min 9.14, max 9.15) 16.92 12.68 19.06 230.42
lat_mmap-1m (us) 63.0 48.0 46.0 76.0 633.0
lat_ops-double-add (ns) 2.37 1.0 0.73 1.09 35.27
lat_ops-double-mul (ns) 11.05 (min 11.03, max 11.07) 7.02 3.34 5.01 116.17
lat_ops-float-add (ns) 2.28 0.91 0.73 1.09 21.02
lat_ops-float-mul (ns) 10.03 6.04 3.34 5.02 66.25
lat_ops-int-add (ns) 1.01 (min 1.0, max 1.01) 1.01 0.67 1.0 1.69
lat_ops-int-bit (ns) 1.0 1.01 0.67 1.0 2.55
lat_ops-int-div (ns) 72.76 (min 72.75, max 72.77) 96.18 60.16 90.3 191.8
lat_ops-int-mod (ns) 23.15 (min 23.14, max 23.15) 21.66 8.7 13.05 90.46
lat_ops-int-mul (ns) 6.03 (min 6.02, max 6.03) 4.02 2.07 3.11 6.66
lat_ops-int64-add (ns) 1.21 (min 1.2, max 1.21) 1.37 0.73 1.1 5.3
lat_ops-int64-bit (ns) 1.02 1.02 0.67 1.01 5.03
lat_ops-int64-div (ns) 209.56 (min 209.35, max 209.77) 208.3 122.64 184.07 837.67
lat_ops-int64-mod (ns) 55.25 (min 54.67, max 55.83) 41.31 20.69 31.12 317.01
lat_pagefault (us) 1.85 (min 1.79, max 1.91) 1.46 1.19 1.97 8.12
lat_pipe (us) 37.21 (min 36.22, max 38.21) 19.33 25.04 32.71 489.42
lat_proc-exec (us) 1359.13 (min 1356.0, max 1362.25) 1202.8 546.9 933.33 7804.0
lat_proc-fork (us) 1268.03 (min 1256.8, max 1279.25) 1038.6 551.2 837.29 7178.0
lat_proc-proccall (us) 0.02 0.01 0.01 0.01 0.1
lat_select (us) 42.22 (min 42.21, max 42.23) 34.53 28.54 47.99 218.64
lat_sem (us) 5.4 (min 5.35, max 5.45) 2.93 2.09 5.1 79.19
lat_sig-catch (us) 12.94 (min 12.92, max 12.96) 7.05 3.29 4.81 31.06
lat_sig-install (us) 1.36 0.89 0.63 0.96 6.37
lat_sig-prot (us) 0.69 (min 0.67, max 0.71) 0.25 0.47 0.75 4.28
lat_syscall-fstat (us) 2.27 (min 2.26, max 2.27) 1.72 1.54 2.27 14.1
lat_syscall-null (us) 0.55 0.41 0.31 0.47 1.35
lat_syscall-open (us) 242.54 (min 241.38, max 243.71) 219.48 149.92 203.04 1541.5
lat_syscall-read (us) 1.07 (min 1.05, max 1.1) 0.82 0.41 0.62 5.02
lat_syscall-stat (us) 6.49 (min 6.46, max 6.51) 4.87 4.31 6.45 67.02
lat_syscall-write (us) 0.69 0.54 0.34 0.5 3.69
lat_tcp (us) 1.04 (min 1.03, max 1.06) 0.74 0.54 0.8 2.6
lat_unix (us) 42.24 (min 42.05, max 42.43) 24.48 34.5 46.07 668.63
latency_for_0.50_mb_block_size (nanosec) 188.56 (min 188.19, max 188.93) 90.83 12.83 47.59 240.44
latency_for_1.00_mb_block_size (nanosec) 112.6 (min 0.0, max 226.49) 49.61 (min 0.0, max 99.22) 6.42 (min 0.0, max 12.83) 62.15 (min 0.0, max 124.31) 120.15 (min 0.0, max 240.3)
pipe_bandwidth (MBs) 269.88 (min 251.76, max 288.0) 373.45 683.34 454.16 26.71
pipe_latency (microsec) 37.21 (min 36.22, max 38.21) 19.33 25.04 32.71 489.42
procedure_call (microsec) 0.02 0.01 0.01 0.01 0.1
select_on_200_tcp_fds (microsec) 42.22 (min 42.21, max 42.23) 34.53 28.54 47.99 218.64
semaphore_latency (microsec) 5.4 (min 5.35, max 5.45) 2.93 2.09 5.1 79.19
signal_handler_latency (microsec) 1.36 0.89 0.63 0.96 6.37
signal_handler_overhead (microsec) 12.94 (min 12.92, max 12.96) 7.05 3.29 4.81 31.06
tcp_ip_connection_cost_to_loca (microsec) 69.19 (min 68.24, max 70.14) 59.64 49.01 77.93 1009.17
tcp_latency_using_localhost (microsec) 1.04 (min 1.03, max 1.06) 0.74 0.54 0.8 2.6

Table: LM Bench Metrics

Dhrystone

ARM Benchmarks / host Dhrystone_S_PERF_HostSide am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
dhrystone_per_mhz (DMIPS/MHz) 2.1 2.6 3.6 3.6 1.7
dhrystone_per_second (DhrystoneP) 3773585.0 4545454.5 9523810.0 6451613.0 696864.1

Table: Dhrystone Benchmark



Whestone

ARM Benchmarks / host Whetstone_S_PERF_HostSide am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
whetstone (MIPS) 625.0 2000.0 3333.3 2000.0 31.4

Table: Whestone Benchmark


Linpack

ARM Benchmarks / host Linpack_S_PERF_HostSide am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
linpack (Kflops) 57222.0 137333.0 686667.0 686667.0 7153.0

Table: Linpack Benchmark



NBench

ARM Benchmarks / host NBench_S_PERF_HostSide am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
assignment (Iterations) 7.8 7.86 16.77 11.06 0.91
fourier (Iterations) 1805.5 7323.9 12977.0 8616.5 125.82
fp_emulation (Iterations) 68.38 67.71 154.07 102.67 16.0
huffman (Iterations) 789.38 907.66 1423.2 945.51 223.56
idea (Iterations) 1530.5 1702.3 4370.5 2911.0 462.52
lu_decomposition (Iterations) 75.13 334.94 826.19 549.9 5.78
neural_net (Iterations) 2.02 8.56 22.31 14.74 0.18
numeric_sort (Iterations) 462.56 580.2 774.08 505.12 88.0
string_sort (Iterations) 63.5 62.1 136.43 91.03 6.64

Table: NBench Benchmarks


Stream

ARM Benchmarks / host Stream_1_core_S_PERF_Hostside am335x-evm am43xx-gpevm am57xx-evm k2g-evm
add (MB/s) 504.6 395.3 3594.6 2300.0
copy (MB/s) 437.4 428.4 3793.9 2479.2
scale (MB/s) 583.0 651.5 4332.4 2367.3
triad (MB/s) 482.3 351.9 3386.7 2247.6

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) am43xx-gpevm: 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 24.81 (min 24.36, max 25.21) 24.75 (min 23.75, max 28.18) 15.01 (min 14.61, max 15.29) 23.24 (min 22.95, max 23.48) 73.68 (min 73.43, max 74.33)
Kernel boot time test when init is /bin/sh and bootloader, kernel and sdk-rootfs are in mmc-sd 5.77 (min 5.76, max 5.81) 6.35 (min 6.32, max 6.37) 5.98 (min 5.69, max 6.19) 8.08 (min 8.07, max 8.09) 9.9 (min 9.87, max 9.93)

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 (%) am43xx-gpevm: 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 255997.0 1.82 255995.0 0.14 255984.0 0.07     256002.0 1.97
11025 352792.0 1.9 352790.0 0.3 352793.0 0.09 352797.0 0.25 352799.0 2.07
16000 511991.0 1.05 511981.0 0.1 511950.0 0.13     512008.0 1.83
22050 705574.0 2.86 705559.0 0.74 705586.0 0.14 705595.0 0.39 705597.0 4.2
24000 705574.0 2.95 705559.0 0.53 705586.0 0.19     705597.0 3.25
32000 1023963.0 0.97 1023925.0 0.12 1023831.0 0.15     1024032.0 3.26
44100 1411101.0 5.05 1411039.0 0.98 1411170.0 0.25 1411189.0 0.75 1411184.0 5.6
48000 1535930.0 9.13 1535831.0 0.15 1535643.0 0.22     1536071.0 5.81
88200 2822035.0 9.31 2821759.0 1.83 2822339.0 0.51 2822376.0 1.61 2642045.0 10.49
96000 3071734.0 0.98 3071324.0 0.11 3070665.0 0.43     2860181.0 12.41

Table: Audio Capture


Sampling Rate (Hz) am335x-evm: Throughput (bits/sec) am335x-evm: CPU Load (%) am43xx-gpevm: 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 256102.0 1.19 256101.0 0.21 256084.0 0.06     256107.0 1.92
11025 352939.0 1.87 352936.0 0.38 352930.0 0.07 352941.0 0.4 352948.0 1.93
16000 512204.0 1.01 512196.0 0.17 512151.0 0.09     512217.0 2.34
22050 705876.0 3.02 705859.0 0.73 705860.0 0.19 705882.0 0.6 705903.0 3.7
24000 705879.0 2.73 705860.0 0.53 705860.0 0.14     705903.0 2.83
32000 1024407.0 1.34 1024371.0 0.16 1024236.0 0.18     1024449.0 4.59
44100 1411732.0 5.02 1411671.0 0.9 1411719.0 0.23 1411764.0 0.93 1411835.0 5.43
48000 1536607.0 9.05 1536529.0 0.2 1536256.0 0.25     1536687.0 5.46
88200 2823372.0 8.07 2823149.0 1.29 2823436.0 0.44 2823524.0 1.37 2823793.0 10.23
96000 3073200.0 1.8 3072870.0 0.26 3071917.0 0.52     3073533.0 11.08

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.8 (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.94, max 59.95)
800x480@60   59.52 (min 59.52, max 59.53) 59.51 (min 58.55, max 59.55)  
800x480@62 61.77 (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.88 (min 58.98, max 59.97) 58.5 (min 52.14, max 60.14)   60.01 (min 60.0, max 60.01)
1024x768@60     60.0 (min 59.99, max 60.02)  
1024x768@75     75.03 (min 74.97, max 75.08)  
1152x864@75     75.0 (min 74.97, max 75.03)  
1280x1024@60     60.02 (min 60.0, max 60.04)  
1280x720@60 59.97 (min 59.02, max 60.1) 60.0   60.0
1280x768@60     59.87 (min 59.79, max 59.93)  
1280x800@75     74.93 (min 74.86, max 75.01)  
1360x768@60     59.8 (min 59.79, max 59.81)  
1400x1050@75     74.87 (min 74.85, max 74.89)  
1440x900@60     59.89 (min 59.87, max 59.9)  
1600x1200@65     65.0 (min 64.98, max 65.03)  
1600x900@60     60.0 (min 59.98, max 60.01)  
1680x1050@60     59.95 (min 59.89, max 60.01)  
2048x1152@60     60.0 (min 59.99, max 60.01)  
640x480@60 59.91 (min 59.01, max 60.02)   60.0 (min 59.98, max 60.02)  
640x480@73 72.73 (min 70.45, max 73.11)      
640x480@75 74.9 (min 71.43, max 75.01)   75.0 (min 74.98, max 75.02)  
720x400@70 70.0 (min 67.82, max 70.09)      
800x600@56 56.15 (min 55.33, max 56.26)   56.25 (min 56.12, max 56.38)  
800x600@60 60.25 (min 59.33, max 60.33) 57.06 (min 39.34, max 60.32)    
800x600@72 72.12 (min 71.0, max 72.2) 72.19 (min 72.17, max 72.21) 72.19 (min 72.17, max 72.21) 72.19 (min 72.18, max 72.19)
800x600@75 74.85 (min 71.42, max 75.01) 69.71 (min 35.43, max 75.22)   75.0 (min 74.99, max 75.01)
832x624@75 74.45 (min 72.15, max 74.57) 74.55 (min 74.52, max 74.56) 74.55 (min 74.52, max 74.58) 74.57 (min 74.56, max 74.58)
848x480@60 59.93 (min 58.82, max 60.21)      

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.39, max 13.99) 2500005.0 5.2 (min 2.42, max 14.46) 2500005.0 38.76 (min 21.72, max 59.89)
GLB25_EgyptTestC24Z16_ETC1 test 2501001.0 6.19 (min 2.16, max 13.98) 2501001.0 6.37 (min 2.43, max 14.18) 2501001.0 45.51 (min 20.93, max 60.46)
GLB25_EgyptTestC24Z16_ETC1to565 test 2501401.0 6.2 (min 2.39, max 14.07) 2501401.0 6.38 (min 2.43, max 14.7) 2501401.0 45.47 (min 20.97, max 60.43)
GLB25_EgyptTestC24Z16_PVRTC4 test 2501101.0 6.03 (min 2.34, max 13.76) 2501101.0 6.22 (min 2.16, max 14.0) 2501101.0 45.39 (min 20.99, max 59.85)
GLB25_EgyptTestC24Z24MS4 test 2500003.0 5.2 (min 2.05, max 11.61) 2500003.0 5.41 (min 1.98, max 11.95) 2500003.0 44.11 (min 20.4, max 59.78)
GLB25_EgyptTestStandard_inherited test 2000000.0 23.88 (min 15.41, max 36.48) 2000000.0 24.81 (min 15.92, max 37.7) 2000000.0 59.52 (min 59.26, max 59.73)

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 2205750.5 2500511.0 2300981.0 2500511.0 33002466.0
GLB25_TriangleTexTestC24Z16 test 2500301.0 11248521.0 2500301.0 11815038.0 2500301.0 105540744.0
GLB25_TriangleTexVertexLitTestC24Z16 test 2500411.0 3757595.25 2500411.0 4207579.0 2500411.0 40071660.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.42 (min 4.25, max 5.18) 2500101.0 1435972864.0 58.33 (min 51.59, 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

TCP Throughput

TCP Window Size(Kbytes) am335x-evm: Bandwidth (without interrupt pacing, in Mbits/sec) am335x-evm: CPU Load (without interrupt pacing, in %) am335x-evm: Bandwidth (with interrupt pacing, in Mbits/sec) am335x-evm: CPU Load (with interrupt pacing, in %) am43xx-gpevm: Bandwidth (without interrupt pacing, in Mbits/sec) am43xx-gpevm: CPU Load (without interrupt pacing, in %) am43xx-gpevm: Bandwidth (with interrupt pacing, in Mbits/sec) am43xx-gpevm: CPU Load (with interrupt pacing, in %) am57xx-evm: Bandwidth (without interrupt pacing, in Mbits/sec) am57xx-evm: CPU Load (without interrupt pacing, in %) am57xx-evm: Bandwidth (with interrupt pacing, in Mbits/sec) am57xx-evm: CPU Load (with interrupt pacing, in %) k2g-evm: Bandwidth (without interrupt pacing, in Mbits/sec) k2g-evm: CPU Load (without interrupt pacing, in %) k2g-evm: Bandwidth (with interrupt pacing, in Mbits/sec) k2g-evm: CPU Load (with interrupt pacing, in %) omapl138-lcdk: Bandwidth (without interrupt pacing, in Mbits/sec) omapl138-lcdk: CPU Load (without interrupt pacing, in %) omapl138-lcdk: Bandwidth (with interrupt pacing, in Mbits/sec) omapl138-lcdk: CPU Load (with interrupt pacing, in %)
8 223.2 99.90 250.4 99.92 240.8 99.91 229.6 99.80 446.4 48.0 354.4 34.6 499.2 100
32.56 99.86
16 268.0 99.94 304.8 99.92 275.2 99.91 294.4 99.93 643.2 29.4 591.2 48.0 631.2 99.8
30.08 100.0
32 272.0 99.93 322.4 99.92 303.2 99.92 320.0 99.93 917.6 86.0 872.0 75.0 589.6 99.9
32.08 99.92
64 332.0 99.92 360.0 99.93 336.0 99.91 359.2 99.95 1065.0 87.8 1114.0 88.7 582.4 100
  37.28 99.92
128 352.6 99.90 378.8 99.90 362.8 100.0 380.9 99.90 1148.0 89.8 1096.0 88.2 654.4 100
49.2 99.93
256 320.0 99.90 381.2 99.92 358.2 100.0 387.4 99.9 1115.8 85.1 1025.0 87.0 644.0 100
46.24 99.93

Table: Ethernet performance table

UDP Throughput

Ethernet__eth0_1G Ethernet_performance_UDP_64B_egress am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
packet_size (bytes) 64.0 64.0 64.0 64.0 64.0
packets_per_second (kpps) 41.0 52.0 93.0 46.0 1.0
throughput (Mbits/s) 21.6 27.8 48.5 24.7 1.7
cpu utilization (%)   100.0 81.0 99.9 94.3

Table: ‘


Ethernet__eth0_1G Ethernet_performance_UDP_128B_egress am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
packet_size (bytes) 128.0 128.0 128.0 128.0 128.0
packets_per_second (kpps) 41.0 51.0 91.0 46.0 2.0
throughput (Mbits/s) 43.0 53.9 94.0 48.8 3.3
cpu utilization (%)   100.0 79.4 99.8 96.0

Table: ‘


Ethernet__eth0_1G Ethernet_performance_UDP_256B_egress am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
packet_size (bytes) 256.0 256.0 256.0 256.0 256.0
packets_per_second (kpps) 40.0 56.0 94.0 46.0 2.0
throughput (Mbits/s) 82.5 115.6 194.8 95.6 6.7
cpu utilization (%)   100.0 79.8 99.8  

Table: ‘

Ethernet__eth0_1G Ethernet_performance_UDP_512B_egress am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
packet_size (bytes) 512.0 512.0 512.0 512.0 512.0
packets_per_second (kpps) 40.0 51.0 90.0 45.0 3.0
throughput (Mbits/s) 164.5 210.0 371.0 188.2 13.2
cpu utilization (%)   100.0 80.8 99.9  

Table: ‘

Ethernet__eth0_1G Ethernet_performance_UDP_1024B_egress am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
packet_size (bytes) 1024.0 1024.0 1024.0 1024.0 1024.0
packets_per_second (kpps) 38.0 48.0 85.0 45.0 3.0
throughput (Mbits/s) 316.0 400.0 698.0 369.0 26.1
cpu utilization (%)   100.0 79.3 99.9 95.0

Table: ‘


Ethernet__eth0_1G Ethernet_performance_UDP_1470B_egress am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
packet_size (bytes) 1470.0 1470.0 1470.0 1470.0 1470.0
packets_per_second (kpps) 37.0 45.0 77.0 44.0 2.0
throughput (Mbits/s) 446.0 533.0 906.0 526.0 35.3
cpu utilization (%)   100.0 82.0 99.9 94.7

Table: ‘

Ethernet__eth0_1G Ethernet_performance_UDP_128B_ingress am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
packet_size (bytes) 128.0 128.0 128.0 128.0 128.0
packets_per_second (kpps) 22.0 38.0 33.0 72.0 2.0
throughput (Mbits/s) 23.3 39.6 34.6 74.3 3.7
cpu utilization (%)   99.8 59.9 55.8 100.0

Table: ‘


Ethernet__eth0_1G Ethernet_performance_UDP_256B_ingress am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
packet_size (bytes) 256.0 256.0 256.0 256.0 256.0
packets_per_second (kpps) 28.0 40.0 45.0 64.0 3.0
throughput (Mbits/s) 59.4 82.8 94.9 133.3 7.7
cpu utilization (%)   99.7 74.7 100.0 81.2

Table: ‘

Ethernet__eth0_1G Ethernet_performance_UDP_512B_ingress am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
packet_size (bytes) 512.0 512.0 512.0 512.0 512.0
packets_per_second (kpps) 19.0 36.0 85.0 68.0 3.0
throughput (Mbits/s) 79.8 150.4 350.0 279.0 15.5
cpu utilization (%)   99.9 67.6 100.0  

Table: ‘

Ethernet__eth0_1G Ethernet_performance_UDP_1024B_ingress am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
packet_size (bytes) 1024.0 1024.0 1024.0 1024.0 1024.0
packets_per_second (kpps) 21.0 30.0 84.0 56.0 3.0
throughput (Mbits/s) 177.6 251.0 691.0 463.0 31.7
cpu utilization (%)   99.8 52.1 100.0 74.0

Table: ‘

Ethernet__eth0_1G Ethernet_performance_UDP_1470B_ingress am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
packet_size (bytes) 1470.0 1470.0 1470.0 1470.0 1470.0
packets_per_second (kpps) 15.0 26.0 34.0 39.0 3.0
throughput (Mbits/s) 181.0 312.0 403.0 468.0 42.7
cpu utilization (%)   99.8 82.0   100.0

Table: ‘



  • iperf version 2.0.5
  • For receive performance, on DUT, invoke iperf in server mode.
iperf -s -u
  • For transmit performance, on DUT, invoke iperf in client mode.
iperf -c <server ip> -b <bandwidth limit> -f M -t 60

PCIe Driver

PCIe-ETH

TCP Window Size(Kbytes) k2g-evm: Bandwidth (in Mbits/sec)
8 562.96
16 719.2
32 961.6
64 1211.2
128 1319.2
256 1341.6

Table: ‘



  • k2g: Measured with Broadcom Corporation NetXtreme BCM5721 Gigabit Ethernet PCI Express [14e4:1659] (rev 21)
  • LnkSta: Speed 2.5GT/s, Width x1

NAND Driver

Please refer MTD Test Setup before proceeding.

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.32 100.0 7.29 100.0
262144 4.45 100.0 7.38 100.0
524288 4.48 100.0 7.37 100.0
1048576 4.49 100.0 7.37 100.0
5242880 4.56 100.0 7.45 100.0

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 7.96 100.0 12.68 100.0
262144 7.94 100.0 12.66 100.0
524288 7.94 100.0 12.68 100.0
1048576 7.96 100.0 12.62 100.0
5242880 7.98 100.0 12.67 100.0

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.36 100.0 1.95 100.0
262144 1.45 100.0 1.98 100.0
524288 1.46 100.0 1.99 100.0
1048576 1.46 100.0 1.99 100.0
5242880 1.46 100.0 1.96 100.0

Table: ‘

QSPI Flash Driver

Test setup is available here.

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.59 100.0 5.31 100.0
262144 0.59 100.0 5.17 97.5
524288 0.58 100.0 5.13 100.0
1048576 0.59 99.72 5.15 97.62

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 53.32 0.23 7.65
262144 0.14 52.15 0.23 7.89
524288 0.14 51.98 0.24 9.07
1048576 0.14 51.46 0.23 8.79

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.

Please refer MMC/SD Test Setup before proceeding.


AM43XX-GPEVM

Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 5.43 6.64 23.09 20.41
262144 5.43 7.02 23.19 22.35
524288 5.28 7.59 23.13 21.83
1048576 5.42 7.07 23.16 23.68
5242880 5.72 7.55 23.74 22.48

Table: ‘


Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 5.84 6.13 26.4 21.99
262144 5.8 5.94 26.38 22.96
524288 5.67 5.85 26.41 22.45
1048576 5.8 5.98 26.38 23.53
5242880 5.82 5.75 26.4 22.16

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 5.61 6.45 25.41 21.81
262144 5.5 6.78 25.62 22.85
524288 5.63 6.53 25.58 23.21
1048576 5.6 6.74 25.61 22.91
5242880 5.62 6.61 25.59 22.69

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 12.05 4.28 63.54 8.79
262144 12.03 4.55 63.93 9.09
524288 12.07 3.9 63.59 6.56
1048576 12.08 4.23 63.48 9.34
5242880 12.07 4.23 63.27 8.59

Table: ‘


Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 12.2 3.17 61.17 5.07
262144 12.12 2.86 68.02 8.12
524288 12.15 3.15 67.46 7.49
1048576 12.45 3.51 62.01 7.42
5242880 12.22 3.45 62.05 6.34

Table: ‘

Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 12.18 4.65 67.1 7.72
262144 12.16 4.21 66.99 5.88
524288 12.17 4.37 66.96 6.54
1048576 12.11 4.24 67.57 7.74
5242880 12.14 4.19 66.58 7.1

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 20.34 22.57 38.39 13.03
262144 20.35 22.88 38.46 15.5
524288 20.44 22.2 38.51 15.81
1048576 20.33 23.83 38.43 15.56
5242880 20.33 23.48 38.51 14.29

Table: ‘


Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 21.05 16.67 38.13 6.35
262144 20.9 17.86 38.17 14.6
524288 20.68 18.52 39.33 9.68
1048576 20.86 17.86 39.29 6.61
5242880 20.83 18.06 38.15 15.27

Table: ‘

Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 20.49 22.76 39.09 13.64
262144 20.43 21.83 39.22 7.0
524288 20.37 23.17 39.21 16.67
1048576 20.65 22.0 39.17 9.24
5242880 20.45 21.33 39.15 20.77

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 96.66 34.15 135.88 12.62
262144 97.88 29.86 135.78 12.27
524288 96.4 29.35 135.86 12.77
1048576 98.09 29.87 135.82 12.78
5242880 97.46 29.52 135.91 13.0

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 107.09 23.8 134.68 11.69
262144 106.42 26.44 134.68 11.24
524288 109.5 27.77 134.68 11.01
1048576 105.92 26.39 134.68 12.1
5242880 104.84 25.51 134.83 12.75

Table: ‘


Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 115.57 18.19 127.67 10.13
262144 116.21 14.3 128.16 10.96
524288 116.64 12.04 133.4 10.87
1048576 115.51 12.97 132.98 11.71
5242880 116.73 12.95 128.45 11.44

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.44 6.47 221.73 19.8
262144 73.52 5.61 215.75 20.27
524288 70.43 6.63 217.05 19.02
1048576 72.61 6.4 213.37 19.79
5242880 64.24 5.62 225.65 20.84

Table: ‘


Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 58.66 19.52 218.06 20.24
262144 58.23 19.05 218.21 18.99
524288 57.7 18.98 218.47 20.62
1048576 57.98 18.93 217.83 20.02
5242880 57.57 18.58 218.14 21.85

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 63.41 9.17 225.78 18.58
262144 63.77 9.0 225.78 18.88
524288 63.49 8.57 224.27 19.0
1048576 63.78 8.26 224.65 19.95
5242880 63.35 8.1 226.1 22.82

Table: ‘



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

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.

Please refer MMC/SD Test Setup before proceeding.

AM335X-EVM

Buffer size (bytes) Write EXT4 Throughput (Mbytes/sec) Write EXT4 CPU Load (%) Read EXT4 Throughput (Mbytes/sec) Read EXT4 CPU Load (%)
102400 7.63 9.79 21.24 21.74
262144 8.57 10.81 21.24 21.21
524288 7.59 8.85 21.23 21.69
1048576 8.66 11.16 21.22 24.13
5242880 7.85 9.16 21.23 21.65

Table: ‘


Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 9.41 15.64 20.5 21.98
262144 9.1 14.91 20.52 22.09
524288 8.2 13.84 20.52 22.6
1048576 8.78 14.51 20.51 21.73
5242880 9.05 15.59 20.47 25.54

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 9.33 12.79 21.1 23.43
262144 9.83 13.77 21.1 23.66
524288 9.32 12.8 21.09 22.55
1048576 9.35 12.4 21.12 21.49
5242880 9.35 12.78 21.12 22.34

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.74 8.86 21.78 21.5
262144 7.95 7.84 21.78 13.68
524288 7.51 7.22 21.76 17.7
1048576 7.74 7.93 21.78 21.59
5242880 7.94 9.19 21.77 18.95

Table: ‘

Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 9.61 11.57 21.71 19.62
262144 9.59 11.88 21.68 19.2
524288 9.58 10.79 21.69 20.45
1048576 9.56 11.36 21.69 20.5
5242880 9.63 11.43 21.69 20.16

Table: ‘

Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 9.74 13.58 21.07 20.28
262144 9.78 13.06 21.06 20.12
524288 9.07 12.11 21.07 19.01
1048576 9.28 11.74 21.11 19.3
5242880 9.07 11.92 21.09 20.88

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 10.4 2.55 39.42 3.45
262144 9.4 2.52 39.27 3.97
524288 10.11 2.38 39.31 4.34
1048576 10.29 3.0 39.35 5.44
5242880 10.28 3.83 39.47 4.0

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 4.44 39.13 4.67
262144 12.97 4.59 39.19 1.75
524288 12.99 4.43 39.04 6.58
1048576 13.01 3.87 39.15 1.93
5242880 12.99 4.36 39.06 3.05

Table: ‘


Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 8.16 3.05 38.94 6.8
262144 8.9 3.58 38.09 7.64
524288 8.85 2.94 38.94 5.77
1048576 8.74 3.43 39.02 2.88
5242880 8.25 3.43 38.95 8.03

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 6.19 5.51 21.8 7.93
262144 6.25 5.73 21.78 9.32
524288 5.64 5.23 21.79 7.76
1048576 6.72 5.49 21.77 10.98
5242880 6.2 5.68 21.79 8.16

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 9.57 9.83 21.72 5.56
262144 10.45 10.74 21.72 9.26
524288 11.1 14.72 21.72 8.71
1048576 11.11 14.81 21.72 10.06
5242880 10.47 13.72 21.72 6.78

Table: ‘


Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 9.38 11.15 21.37 8.45
262144 9.09 11.54 21.37 9.41
524288 9.3 11.31 21.37 8.68
1048576 9.27 11.28 21.37 9.22
5242880 9.04 11.32 21.37 8.68

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.97 77.24 15.86 63.97
262144 6.79 69.15 13.61 57.18
524288 6.7 68.15 14.17 59.15
1048576 6.61 62.36 13.64 52.23
5242880 6.53 59.78 13.58 52.12

Table: ‘


Buffer size (bytes) Write EXT2 Throughput (Mbytes/sec) Write EXT2 CPU Load (%) Read EXT2 Throughput (Mbytes/sec) Read EXT2 CPU Load (%)
102400 3.52 34.69 15.85 62.52
262144 4.2 32.03 16.01 61.29
524288 3.63 27.2 15.98 62.89
1048576 4.16 28.86 16.1 57.19
5242880 3.34 29.41 15.86 63.31

Table: ‘


Buffer size (bytes) Write VFAT Throughput (Mbytes/sec) Write VFAT CPU Load (%) Read VFAT Throughput (Mbytes/sec) Read VFAT CPU Load (%)
102400 4.31 58.66 15.28 68.71
262144 4.51 48.62 15.12 67.78
524288 4.57 46.81 15.49 65.95
1048576 4.77 46.27 15.56 61.93
5242880 4.62 44.32 15.62 61.08

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 k2g-evm omapl138-lcdk
copy_102400_throughput (MBytes/sec) 17.93 26.91 170.63 29.37 0.45
copy_1048576_throughput (MBytes/sec) 17.65 26.18 160.08 29.38 0.45
copy_5242880_throughput (MBytes/sec) 17.58 26.29 162.25 29.31  
read_102400_cpuload (%) 38.88 47.62 37.5 22.68 4.37
read_102400_throughput (MBytes/sec) 14.28 30.3 222.37 37.07 0.99
read_1048576_cpuload (%) 37.87 46.99 30.49 20.31 4.55
read_1048576_throughput (MBytes/sec) 14.36 30.29 208.65 37.03 0.99
read_5242880_cpuload (%) 34.02 46.48 31.33 21.59  
read_5242880_throughput (MBytes/sec) 14.34 30.24 218.63 36.98  
write_102400_cpuload (%) 32.08 51.87 53.19 38.17 4.42
write_102400_throughput (MBytes/sec) 21.51 29.75 142.47 32.37 0.84
write_1048576_cpuload (%) 33.12 50.43 52.45 37.3 4.73
write_1048576_throughput (MBytes/sec) 21.49 29.84 142.81 32.6 0.84
write_5242880_cpuload (%) 35.19 51.15 51.49 37.74  
write_5242880_throughput (MBytes/sec) 21.26 29.94 146.73 32.42  

Table: ‘


USBHOST / host USBHOST_L_PERF_VFAT_0002 am335x-evm am43xx-gpevm am57xx-evm k2g-evm omapl138-lcdk
copy_102400_throughput (MBytes/sec) 17.53 26.52 151.9 28.83 0.44
copy_262144_throughput (MBytes/sec) 17.26 25.8 150.2 28.6 0.45
read_102400_cpuload (%) 56.63 46.94 31.0 22.3 5.29
read_102400_throughput (MBytes/sec) 14.43 30.35 207.9 37.1 0.99
read_262144_cpuload (%) 55.12 47.67 28.8 22.18 4.87
read_262144_throughput (MBytes/sec) 14.49 30.31 210.2 37.09 0.99
write_102400_cpuload (%) 33.83 49.27 52.4 37.78 7.85
write_102400_throughput (MBytes/sec) 21.93 29.98 140.8 32.42 0.82
write_262144_cpuload (%) 35.96 49.93 51.3 37.26 6.66
write_262144_throughput (MBytes/sec) 21.57 29.89 140.5 32.59 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


K2G 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.2

Table: K2G 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.4

Table: K2G 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 50.4
32 60 51.4
64 60 40.0
128 60 43.4

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


K2G USB RNDIS Performance

TCP Window Size(in KBytes) Interval (in Seconds) Bandwidth (Mbits/Sec)
16 60 150.0
32 60 152.7
64 60 143.7
128 60 168.3

Table: K2G 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) 1073.94 1285.91 2728.38
aes-128-cbc_throughput_64_byte (KBytes/s) 3704.19 4473.96 9228.57
aes-128-cbc_throughput_256_byte (KBytes/s) 4490.84 4549.72 4907.43
aes-128-cbc_throughput_1024_byte (KBytes/s) 12021.76 12902.74 13863.59
aes-128-cbc_throughput_8192_byte (KBytes/s) 19821.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) 1071.93 1291.43 2704.12
aes-192-cbc_throughput_64_byte (KBytes/s) 3642.9 4332.93 9028.78
aes-192-cbc_throughput_256_byte (KBytes/s) 4167.42 4566.87 4822.95
aes-192-cbc_throughput_1024_byte (KBytes/s) 11853.14 12920.15 13564.93
aes-192-cbc_throughput_8192_byte (KBytes/s) 19835.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) 1068.84 1253.87 2660.18
aes-256-cbc_throughput_64_byte (KBytes/s) 3576.19 4229.82 8711.68
aes-256-cbc_throughput_256_byte (KBytes/s) 4061.95 4513.28 4801.37
aes-256-cbc_throughput_1024_byte (KBytes/s) 11684.18 12654.25 13875.54
aes-256-cbc_throughput_8192_byte (KBytes/s) 19614.38 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) 1072.29 384.94 309.7
des-cbc_throughput_64_bytes (KBytes/s) 3460.33 1526.29 1157.99
des-cbc_throughput_256_bytes (KBytes/s) 8095.66 4176.55 3913.05
des-cbc_throughput_1024_bytes (KBytes/s) 12503.38 10096.98 9137.15
des-cbc_throughput_8192_bytes (KBytes/s) 14174.89 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) 965.52 378.36 308.61
des3_throughput_64_bytes (KBytes/s) 2547.9 1530.01 1161.83
des3_throughput_256_bytes (KBytes/s) 4505.6 4177.58 3847.17
des3_throughput_1024_bytes (KBytes/s) 5542.23 10106.88 8784.55
des3_throughput_8192_bytes (KBytes/s) 5715.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

LMBench

LMBENCH / host LMBENCH_L_PERF_HostSide am574x-idk
af_unix_sock_stream_latency (microsec) 62.07
af_unix_socket_stream_bandwidt (MBs) 1298.86
bw_file_rd-io-1mb (MB/s) 821.29
bw_file_rd-o2c-1mb (MB/s) 631.71
bw_mem-bcopy-16mb (MB/s) 1560.67
bw_mem-bcopy-1mb (MB/s) 3602.88
bw_mem-bcopy-2mb (MB/s) 2502.68
bw_mem-bcopy-4mb (MB/s) 1662.51
bw_mem-bcopy-8mb (MB/s) 1566.17
bw_mem-bzero-16mb (MB/s) 3953.55
bw_mem-bzero-1mb (MB/s) 3967.9 (min 3602.88, max 4332.91)
bw_mem-bzero-2mb (MB/s) 3373.73 (min 2502.68, max 4244.78)
bw_mem-bzero-4mb (MB/s) 2887.81 (min 1662.51, max 4113.11)
bw_mem-bzero-8mb (MB/s) 2795.16 (min 1566.17, max 4024.14)
bw_mem-cp-16mb (MB/s) 851.79
bw_mem-cp-1mb (MB/s) 3757.05 (min 3204.52, max 4309.57)
bw_mem-cp-2mb (MB/s) 2624.99 (min 1005.19, max 4244.78)
bw_mem-cp-4mb (MB/s) 2487.73 (min 860.22, max 4115.23)
bw_mem-cp-8mb (MB/s) 2436.31 (min 852.51, max 4020.1)
bw_mem-fcp-16mb (MB/s) 783.05
bw_mem-fcp-1mb (MB/s) 3204.02 (min 2075.12, max 4332.91)
bw_mem-fcp-2mb (MB/s) 2564.28 (min 883.78, max 4244.78)
bw_mem-fcp-4mb (MB/s) 2435.56 (min 758.01, max 4113.11)
bw_mem-fcp-8mb (MB/s) 2404.38 (min 784.62, max 4024.14)
bw_mem-frd-16mb (MB/s) 792.31
bw_mem-frd-1mb (MB/s) 2062.68 (min 2050.23, max 2075.12)
bw_mem-frd-2mb (MB/s) 1234.66 (min 883.78, max 1585.54)
bw_mem-frd-4mb (MB/s) 829.76 (min 758.01, max 901.51)
bw_mem-frd-8mb (MB/s) 790.32 (min 784.62, max 796.02)
bw_mem-fwr-16mb (MB/s) 3949.64
bw_mem-fwr-1mb (MB/s) 3179.9 (min 2050.23, max 4309.57)
bw_mem-fwr-2mb (MB/s) 2915.16 (min 1585.54, max 4244.78)
bw_mem-fwr-4mb (MB/s) 2508.37 (min 901.51, max 4115.23)
bw_mem-fwr-8mb (MB/s) 2408.06 (min 796.02, max 4020.1)
bw_mem-rd-16mb (MB/s) 2641.57
bw_mem-rd-1mb (MB/s) 8153.11 (min 7223.56, max 9082.65)
bw_mem-rd-2mb (MB/s) 5818.67 (min 5074.3, max 6563.04)
bw_mem-rd-4mb (MB/s) 2053.14 (min 1190.83, max 2915.45)
bw_mem-rd-8mb (MB/s) 1801.67 (min 936.66, max 2666.67)
bw_mem-rdwr-16mb (MB/s) 693.75
bw_mem-rdwr-1mb (MB/s) 3903.96 (min 3204.52, max 4603.4)
bw_mem-rdwr-2mb (MB/s) 1954.5 (min 1005.19, max 2903.81)
bw_mem-rdwr-4mb (MB/s) 838.44 (min 816.66, max 860.22)
bw_mem-rdwr-8mb (MB/s) 777.01 (min 701.51, max 852.51)
bw_mem-wr-16mb (MB/s) 913.03
bw_mem-wr-1mb (MB/s) 6843.03 (min 4603.4, max 9082.65)
bw_mem-wr-2mb (MB/s) 4733.43 (min 2903.81, max 6563.04)
bw_mem-wr-4mb (MB/s) 1003.75 (min 816.66, max 1190.83)
bw_mem-wr-8mb (MB/s) 819.09 (min 701.51, max 936.66)
bw_mmap_rd-mo-1mb (MB/s) 2051.63
bw_mmap_rd-o2c-1mb (MB/s) 773.4
bw_pipe (MB/s) 350.55
bw_unix (MB/s) 1298.86
lat_connect (us) 91.0
lat_ctx-2-128k (us) 12.61
lat_ctx-2-256k (us) 15.83
lat_ctx-4-128k (us) 14.31
lat_ctx-4-256k (us) 31.82
lat_fs-0k (num_files) 181.0
lat_fs-10k (num_files) 78.0
lat_fs-1k (num_files) 114.0
lat_fs-4k (num_files) 116.0
lat_mem_rd-stride128-sz1000k (ns) 19.28
lat_mem_rd-stride128-sz125k (ns) 19.06
lat_mem_rd-stride128-sz250k (ns) 19.28
lat_mem_rd-stride128-sz31k (ns) 4.01
lat_mem_rd-stride128-sz50 (ns) 4.01
lat_mem_rd-stride128-sz500k (ns) 19.28
lat_mem_rd-stride128-sz62k (ns) 17.2
lat_mmap-1m (us) 102.0
lat_ops-double-add (ns) 1.1
lat_ops-double-mul (ns) 5.03
lat_ops-float-add (ns) 1.1
lat_ops-float-mul (ns) 5.03
lat_ops-int-add (ns) 1.01
lat_ops-int-bit (ns) 1.01
lat_ops-int-div (ns) 90.67
lat_ops-int-mod (ns) 13.1
lat_ops-int-mul (ns) 3.12
lat_ops-int64-add (ns) 1.11
lat_ops-int64-bit (ns) 1.01
lat_ops-int64-div (ns) 183.71
lat_ops-int64-mod (ns) 31.22
lat_pagefault (us) 1.86
lat_pipe (us) 36.58
lat_proc-exec (us) 1050.83
lat_proc-fork (us) 941.5
lat_proc-proccall (us) 0.01
lat_select (us) 44.24
lat_sem (us) 5.97
lat_sig-catch (us) 5.69
lat_sig-install (us) 0.98
lat_sig-prot (us) 0.69
lat_syscall-fstat (us) 2.56
lat_syscall-null (us) 0.46
lat_syscall-open (us) 299.0
lat_syscall-read (us) 0.62
lat_syscall-stat (us) 7.37
lat_syscall-write (us) 0.51
lat_tcp (us) 0.82
lat_unix (us) 62.07
latency_for_0.50_mb_block_size (nanosec) 19.28
latency_for_1.00_mb_block_size (nanosec) 9.64 (min 0.0, max 19.28)
pipe_bandwidth (MBs) 350.55
pipe_latency (microsec) 36.58
procedure_call (microsec) 0.01
select_on_200_tcp_fds (microsec) 44.24
semaphore_latency (microsec) 5.97
signal_handler_latency (microsec) 0.98
signal_handler_overhead (microsec) 5.69
tcp_ip_connection_cost_to_loca (microsec) 91.0
tcp_latency_using_localhost (microsec) 0.82

Table: LMBench

Dhrystone

ARM Benchmarks / host Dhrystone_S_PERF_HostSide am574x-idk
cpu_clock (MHz) 1000
dhrystone_per_mhz (DMIPS/MHz) 3.55
dhrystone_per_second (DhrystoneP) 6250000.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 Whetstone_S_PERF_HostSide am574x-idk
whetstone (MIPS) 2500.0

Table: Linpack Benchmark

NBench

ARM Benchmarks / host NBench_S_PERF_HostSide am574x-idk
assignment (Iterations) 11.32
fourier (Iterations) 8555.3
fp_emulation (Iterations) 102.57
huffman (Iterations) 947.09
idea (Iterations) 2908.2
lu_decomposition (Iterations) 550.27
neural_net (Iterations) 14.74
numeric_sort (Iterations) 512.44
string_sort (Iterations) 91.17

Table: NBench Benchmarks


Stream

ARM Benchmarks / host Stream_1_core_S_PERF_Hostside am574x-idk
add (MB/s) 2835.0
copy (MB/s) 3023.7
scale (MB/s) 3195.0
triad (MB/s) 2836.8

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 46.0
L_PERF_SHIELD_SMP_1080ENCDEC 45.0
L_PERF_SHIELD_SMP_GRAPHICS 43.0
L_PERF_SHIELD_SMP_HACKBENCH 45.0
L_PERF_SHIELD_SMP_MEM 41.0
L_PERF_SHIELD_SMP_NET 50.0
L_PERF_SHIELD_SMP_NO_LOAD 27.0
L_PERF_SHIELD_SMP_STRESS_LOAD 40.0
L_PERF_SHIELD_SMP_UART 68.0
L_PERF_SHIELD_SMP_USB 54.0
L_PERF_SHIELD_SMP_USB_NET 61.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: 00010
# Max Latencies: 00027
# Histogram Overflows: 00000

# Histogram
000000 000000
000001 000000
000002 000000
000003 000000
000004 000000
000005 000000
000006 000000
000007 077026
000008 18259679
000009 3705545
000010 9557957
000011 61164371
000012 4344266
000013 699761
000014 136074
000015 020996
000016 1119428
000017 608864
000018 285331
000019 014705
000020 004309
000021 000323
000022 000348
000023 000767
000024 000230
000025 000018
000026 000001
000027 000001
000028 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.57 (min 14.56, max 14.7) ov2659
1600x1200 rgb4 14.56 (min 14.56, max 14.57) ov2659
320x240 ba81 43.81 (min 43.71, 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 59.97 (min 58.07, max 60.4)

Table: Display performance (LCD)


Mode am574x-idk: Fps
1024x768@60 60.0 (min 59.95, max 60.09)
1024x768@75 75.03 (min 74.41, max 75.55)
1152x864@75 75.0 (min 74.95, max 75.06)
1280x1024@60 60.02 (min 59.95, max 60.1)
1280x768@60 59.87 (min 59.79, max 59.95)
1280x800@75 74.93 (min 74.85, max 75.11)
1360x768@60 59.8 (min 59.65, max 59.97)
1400x1050@75 74.87 (min 74.64, max 75.05)
1440x900@60 59.89 (min 59.82, max 59.97)
1600x1200@65 65.0 (min 64.92, max 65.18)
1600x900@60 60.0 (min 59.94, max 60.08)
1680x1050@60 59.95 (min 59.88, max 60.06)
2048x1152@60 60.0 (min 59.76, max 60.38)
640x480@60 60.0 (min 59.85, max 60.15)
640x480@75 75.0 (min 74.92, max 75.12)
800x600@56 56.25 (min 56.18, max 56.32)
800x600@72 72.19 (min 72.11, max 72.29)
832x624@75 74.55 (min 73.85, max 75.21)

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 22.34 (min 11.81, max 46.25)
GLB25_EgyptTestC24Z16_ETC1 test 2501001.0 28.54 (min 11.95, max 60.01)
GLB25_EgyptTestC24Z16_ETC1to565 test 2501401.0 28.54 (min 11.99, max 60.01)
GLB25_EgyptTestC24Z16_PVRTC4 test 2501101.0 28.45 (min 11.95, max 60.01)
GLB25_EgyptTestC24Z24MS4 test 2500003.0 26.01 (min 11.23, max 60.0)
GLB25_EgyptTestStandard_inherited test 2000000.0 59.99 (min 59.11, max 60.27)

Table: GLBenchmark 2.5 Performance

Vertex Throughput

Benchmark Test Number am574x-idk: Rate (triangles/sec)
GLB25_TriangleTexFragmentLitTestC24Z16 test 2500511.0 17131926.0
GLB25_TriangleTexTestC24Z16 test 2500301.0 47038492.0
GLB25_TriangleTexVertexLitTestC24Z16 test 2500411.0 18579516.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 729955968.0 29.68 (min 28.57, max 30.0)

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

TCP Performance

TCP Window Size(Kbytes) am574x-idk: Bandwidth (without interrupt pacing, in Mbits/sec) am574x-idk: CPU Load (without interrupt pacing, in %) am574x-idk: Bandwidth (with interrupt pacing, in Mbits/sec) am574x-idk: CPU Load (with interrupt pacing, in %)
8 293.6 75.0 308.0 68.0
16 379.2 90.0 434.4 90.4
32 357.6 99.0 397.6 93.0
64 454.4 99.0 469.6 95.0
128 537.6 99.0 564.0 91.0
256 640.0 98.0 627.2 88.0

Table: Ethernet performance table

UDP Performance

Ethernet__eth0_1G Ethernet_performance_UDP_64B_ingress am574x-idk
packet_size (bytes) 64.0
packets_per_second (kpps) 58.0
throughput (Mbits/s) 30.1

Table: ‘


Ethernet__eth0_1G Ethernet_performance_UDP_128B_ingress am574x-idk
packet_size (bytes) 128.0
packets_per_second (kpps) 29.0
throughput (Mbits/s) 30.3

Table: ‘


Ethernet__eth0_1G Ethernet_performance_UDP_256B_ingress am574x-idk
packet_size (bytes) 256.0
packets_per_second (kpps) 35.0
throughput (Mbits/s) 73.3

Table: ‘


Ethernet__eth0_1G Ethernet_performance_UDP_512B_ingress am574x-idk
packet_size (bytes) 512.0
packets_per_second (kpps) 55.0
throughput (Mbits/s) 228.0

Table: ‘


Ethernet__eth0_1G Ethernet_performance_UDP_1024B_ingress am574x-idk
packet_size (bytes) 1024.0
packets_per_second (kpps) 20.0
throughput (Mbits/s) 165.0

Table: ‘


Ethernet__eth0_1G Ethernet_performance_UDP_1470B_ingress am574x-idk
packet_size (bytes) 1470.0
packets_per_second (kpps) 72.0
throughput (Mbits/s) 858.0

Table: ‘


Ethernet__eth0_1G Ethernet_performance_UDP_64B_egress am574x-idk
packet_size (bytes) 64.0
packets_per_second (kpps) 25.0
throughput (Mbits/s) 13.4

Table: ‘


Ethernet__eth0_1G Ethernet_performance_UDP_128B_egress am574x-idk
packet_size (bytes) 128.0
packets_per_second (kpps) 27.0
throughput (Mbits/s) 28.3

Table: ‘


Ethernet__eth0_1G Ethernet_performance_UDP_256B_egress am574x-idk
packet_size (bytes) 256.0
packets_per_second (kpps) 28.0
throughput (Mbits/s) 58.7

Table: ‘


Ethernet__eth0_1G Ethernet_performance_UDP_1024B_egress am574x-idk
packet_size (bytes) 1024.0
packets_per_second (kpps) 11.0
throughput (Mbits/s) 93.9

Table: ‘


The performance numbers were captured using the iperf tool. Usage details are mentioned below:

  • iperf version 2.0.5
  • On PC Host invoke iperf in the server mode.
iperf -s
  • On the DUT iperf is invoked in client mode   (bi-directional traffic for 60 seconds).
iperf -c <server ip> -w <window size> -m -f M -d -t 60
  • Interrupt pacing feature enabled with pacing interval set to 500usecs. For faster processors such as AM57, 100usecs was used.
ethtool -C eth0 rx-usecs 500
  • DUT is connected to a gigabit network.

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

Please refer MTD Test Setup before proceeding.

QSPI Flash Driver

Test setup is available here.

AM574x-IDK

Buffer size (bytes) am574x-idk: Write UBIFS Throughput (Mbytes/sec) am574x-idk: Write UBIFS CPU Load (%) am574x-idk: Read UBIFS Throughput (Mbytes/sec) am574x-idk: Read UBIFS CPU Load (%)
102400 0.53 72.68 17.65 21.74
262144 0.53 76.89 18.12 26.09
524288 0.53 72.82 17.43 5.26
1048576 0.53 77.18 17.5 14.29

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.

Please refer MMC/SD Test Setup before proceeding.

AM574X-IDK

Buffer size (bytes) am574x-idk: Write EXT2 Throughput (Mbytes/sec) am574x-idk: Write EXT2 CPU Load (%) am574x-idk: Read EXT2 Throughput (Mbytes/sec) am574x-idk: Read EXT2 CPU Load (%)
102400 45.83 28.88 61.2 11.45
262144 45.61 27.03 57.83 13.73
524288 46.66 27.87 61.06 12.94
1048576 46.72 27.48 58.51 13.18
5242880 30.86 22.73 58.82 14.93

Table: ‘


Buffer size (bytes) am574x-idk: Write VFAT Throughput (Mbytes/sec) am574x-idk: Write VFAT CPU Load (%) am574x-idk: Read VFAT Throughput (Mbytes/sec) am574x-idk: Read VFAT CPU Load (%)
102400 42.49 26.73 59.37 14.33
262144 42.67 27.84 60.17 13.27
524288 42.68 28.43 60.25 13.53
1048576 42.76 25.47 61.29 13.73
5242880 42.79 26.36 60.38 13.39

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.

Please refer MMC/SD Test Setup before proceeding.

AM574X-IDK

Buffer size (bytes) am574x-idk: Write EXT2 Throughput (Mbytes/sec) am574x-idk: Write EXT2 CPU Load (%) am574x-idk: Read EXT2 Throughput (Mbytes/sec) am574x-idk: Read EXT2 CPU Load (%)
102400 32.32 19.78 70.5 14.53
262144 31.01 19.58 70.17 15.12
524288 32.03 19.94 65.04 16.46
1048576 31.5 18.91 70.93 12.19
5242880 32.04 20.68 71.22 18.12

Table: ‘


Buffer size (bytes) am574x-idk: Write EXT4 Throughput (Mbytes/sec) am574x-idk: Write EXT4 CPU Load (%) am574x-idk: Read EXT4 Throughput (Mbytes/sec) am574x-idk: Read EXT4 CPU Load (%)
102400 11.41 5.93 65.62 14.51
262144 11.31 6.07 68.57 12.54
524288 10.92 4.78 69.47 16.04
1048576 10.96 5.48 70.1 13.7
5242880 11.6 6.34 71.85 12.59

Table: ‘


Buffer size (bytes) am574x-idk: Write VFAT Throughput (Mbytes/sec) am574x-idk: Write VFAT CPU Load (%) am574x-idk: Read VFAT Throughput (Mbytes/sec) am574x-idk: Read VFAT CPU Load (%)
102400 10.95 6.67 67.73 14.62
262144 13.28 8.26 66.58 19.25
524288 13.25 8.39 70.01 16.04
1048576 13.8 8.91 69.17 14.86
5242880 13.49 9.53 69.23 11.35

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 04.xx Releases

2.4.1.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.1.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.1.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.1.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.2. Processor SDK 03.xx Releases

2.4.2.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.2.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.2.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.2.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.3. Processor SDK 02.xx Releases

2.4.3.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.3.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.3.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.4. 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.5. 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.6. 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.6.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.6.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.6.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.6.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.6.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.6.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  
AM437x AM437x EVM 1.5B Hardware User’s Guide X X X  
AM437x SK 1.1A Hardware User’s Guide X   X  
AM437x IDK 1.4A Hardware User’s Guide   X X  
AM335x AM335x EVM 1.6A Hardware User’s Guide X X X  
AM335x SK 1.2 Hardware User’s Guide X   X  
BeagleBone Black B6 Hardware User’s Guide X   X  
AM335x ICE 2.1A Hardware User’s Guide Hardware Setup with CCS   X X  
K2H/K2K 66AK2Hx EVM 4.0 Hardware User’s Guide X X X  
TCI6638K2K EVM 4.0 Hardware User’s Guide X X X  
K2E AK2Ex EVM 1.0.3.0 Hardware User’s Guide X X X  
K2L 66AK2L06 EVM 1.0.3.0 Hardware User’s Guide X X X  
K2G K2G EVM 1.3D

Hardware User’s Guide

Hardware Setup with CCS

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

All platforms supporting Linux share

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

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