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
- New Features
- PTP: Support Boundary Clock between 3 ports (1xCPSW and 2xICSS) on AM571x
- PTP: Configurable latency for 1 PPS Output, to compensate for the propagation delay of 1 PPS signal to the oscilloscope
- HSR/PRP on AM57x: Support Multicast Filtering
- HSR/PRP on AM57x: Support VLAN Filtering
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¶
2.1.5.2. Kernel¶
Linux Kernel
Real Time (RT) Linux Kernel
Generic Kernel Release Notes
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 |
|
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
- Access type - RW_INTERLEAVED
- Channels - 2
- Format - S16_LE
- 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
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
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: ‘
=
- 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
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
# 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: ‘
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
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
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
# 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: ‘
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
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
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: ‘
- 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>
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
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
- For more details, refer to Processor SDK U-Boot Release Notes and Processor SDK U-Boot User’s Guide
Linux Kernel
- The Linux kernel is upgraded to 4.9.
- A copy of Kernel GIT repo is included in the board-support folder of the Processor SDK installation
- Kernel is device tree (.dts) based, and not board platform based implementation.
- For more details, refer to Processor SDK Kernel Release Notes and Processor SDK Kernel User’s Guide
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
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.