2. Release Specific¶
2.1. Processor SDK Linux Release Notes¶
2.1.1. Overview¶
The Processor Software Development Kit (Processor-SDK) for Linux provides a fundamental software platform for development, deployment and execution of Linux based applications and includes the following:
- Bootloaders & Filesystems
- SDK Installer
- Setup Scripts
- Makefiles
- Matrix Application Launcher
- Example Applications
- WLAN support (Wilink 8)
- Code Composer Studio v7
2.1.2. Licensing¶
Please refer to the software manifest, which outlines the licensing status for all packages included in this release. The manifest can be found on the SDK download page. The manifest can be found on the SDK download page or in the installed directory as indicated below. In addition, see GPLv3 Disclaimer
2.1.3. Documentation¶
- Processor SDK Linux Software Developer’s Guide: Provides information on features, functions, delivery package and, compile tools for the Processor SDK Linux release. This also provides detailed information regarding software elements and software infrastructure to allow developers to start creating applications.
- Getting Started Guide: Provides information on getting the software and running examples/demonstrations bundled in the SDK.
- Software Manifest: Provides license information on software
included in the SDK release. This document is in the release at
[INSTALL-DIR]/docs
. - EVM Quick Start Guide: Provides information on hardware setup and running the demonstration application that is loaded on flash. This document is provided as part of the EVM kit.
2.1.4. Release 05.00.00 Highlights¶
Released Jul 2018
What’s New
- 2018 LTS Update: First release in 2018 LTS (Kernel 4.14, U-boot: 2018.01, gcc: 7.2-2017.11, Yocto 2.4 (rocko). For more details, see the migration guide
- AM57x: Enable Deep Learning at the edge using TI-DL that leverages TI’s proprietary, highly optimized CNN/DNN implementation on the EVE and C66x DSP compute engines. Please see here for more details
- AM57x: PTP: Support Ordinary Clock (OC) Master/Slave with HSR redundancy on PRU-ICSS. Please refer to HSR OC TC for more details
- AM57x: PTP: Support Hybrid Clock (HC), i.e. Transparent Clock (TC) + Ordinary Clock (OC) in HSR mode. Please refer to HSR OC TC for more details
- AM57x: HSR/PRP: Add Broadcast Storm Prevention
- AM57x: HSR/PRP: Improve throughput at smaller packet sizes, details here
- AM437x, AM57x: Implement Simple Open Real-Time Ethernet (SORTE) with Linux. Please see here for more details
SDK Components & Versions
Component | Version |
---|---|
Linux Kernel | 4.14.40+ (2018 LTS) |
U-Boot | 2018.01 |
Yocto Project | 2.4 (rocko) |
Linaro Toolchain (gcc) | 7.2-2017.11 hard-float |
Qt | 5.9.6 |
OpenCL | 1.1.15 |
OpenCV | 3.1 |
Wayland | 1.13 |
GStreamer | 1.12.2 |
Chromium | v53 |
TI PRU Compiler | 2.2.1 |
TI C66x CGT Compiler | 8.2.2 |
2.1.5. Supported Platforms¶
See Supported Platforms and Versions for a list of supported platforms and links to more information.
2.1.6. Build Information¶
2.1.6.1. U-Boot¶
2.1.6.2. Kernel¶
Linux Kernel
Real Time (RT) Linux Kernel
Generic Kernel Release Notes
2.1.7. Issues Tracker¶
2.1.7.1. Issues opened in previous releases that were closed on this release¶
Record ID | Platform | Title |
---|---|---|
LCPD-7519 | am335x-evm | dfu_get_buf return error when use dfu to update mmc card |
LCPD-9436 | am571x-idk, am572x-idk, am57xx-evm | DRM: plane zorders must be unique |
LCPD-12131 | Perl in linux-devkit isn’t relocatable | |
LCPD-12186 | am335x-evm, am335x-sk, beaglebone, beaglebone-black | MMC/SD0 (SD card) pins are not muxed correctly for AM335x EVM, SK and Bone |
LCPD-12212 | ti-sgx-ddk-km: implicit fallthrough error in gcc7 | |
LCPD-12279 | am335x-evm | Uboot: usb ethernet doesn’t work in U-boot |
LCPD-12283 | am571x-idk, am572x-idk, am574x-idk, am57xx-evm, am57xx-beagle-x15 | ti-cpufreq: backport couple of upstream fixes |
LCPD-12311 | am571x-idk, am572x-idk | Board could not boot to kernel when one Inateck pci-usb card is in |
LCPD-12347 | edma: Fix Klocwork reported issue | |
LCPD-12353 | Two files with the same name MLO appear in the SD card | |
LCPD-12377 | am335x-ice | am335x-ice - Builds should be updated with dtb for prueth support |
LCPD-12378 | am574x-idk | VIP is not being enumerated as a v4l2 device |
LCPD-12381 | WLAN disabled to allow suspend/standby to work | |
PLSDK-881 | am335x-evm, am437x-evm, am572x-evm, k2g-evm, k2h-evm, k2e-evm, k2l-evm | Linux: Toplevel make gets warnings from dhry_1,linpack and loopback for AM and K2 (rt and non rt) platforms |
PLSDK-1842 | CMEM misses some multi-thread protection | |
PLSDK-1815 | am335x-evm, am437x-evm, am572x-evm | DNS should be operational using binaries |
PLSDK-1891 | am335x-evm | QT Wayland compositor with SGX on AM335x Processor SDK |
PLSDK-1939 | am571x-idk | A-B forwarding with wrong/no FCS in HSR mode |
PLSDK-1940 | am571x-idk | Unexpected offset jump in PTP |
PLSDK-1941 | am571x-idk | PTP: Overshoot state reported |
PLSDK-1944 | GPIO Test fails on AM572/4-idk | |
PLSDK-1957 | am571x-idk, am572x-idk | PPS offset of CPTS is big and jumping |
PLSDK-1960 | am438x-epos-evm | Top level make failed on am438 epos |
PLSDK-1975 | Download page has incorrect “Back to Software Product Overview” link | |
PLSDK-2070 | HSR/PRP: Maintain a MTU of 1500 for all cases (with or without VLAN) | |
PLSDK-2080 | GPIO control of the CPTS reference PPS signal is low-active | |
PLSDK-2083 | CPTS 1PPS reference signal should be optional | |
PLSDK-2097 | am572x-evm | High level build of big-data-ipc-demo & ti-ipc-linux failed in PSDK 4.3 release, but works in 4.2 |
PLSDK-2101 | am335x-ice, am437x-idk | icss-emac unit test icev2AM335x/idkAM437x: test hangs after transmitting one packet |
PLSDK-2149 | ARM multimedia tests and 3D demos failed on AM3 HS evms | |
PLSDK-2150 | am438x-epos-evm, am437x-hsevm | ARM multimedia tests failed on AM4 HS and EPOS evms |
PLSDK-2168 | am571x-idk, am572x-idk, am572x-evm, am572x-hsevm | Matrix-GUI needs 2-3 minutes to come up after boot |
2.1.7.2. Issued found and closed on this release that may be applicable to prior releases¶
Record ID | Platform | Title |
---|---|---|
LCPD-12422 | am571x-idk | davinci_mdio 48485000.mdio: timed out waiting for idle? seen in bootlog |
LCPD-12435 | am43xx-gpevm | V3_3D domain consumes ~4mw higher during suspend & standby states |
LCPD-12456 | Analyze / fix klocwork warnings for DWC3 / UDC | |
LCPD-12461 | Analyze / fix klocwork warnings for GPMC | |
LCPD-12465 | Analyze / fix klocwork warnings for PRUETH | |
LCPD-12474 | am43xx-gpevm | am437x-gp-evm: Remove duplicate uart0 and uart0_pins_default nodes |
LCPD-12535 | omapl138-lcdk | Top level Make fails on Omapl138 due to fatal error |
LCPD-12633 | am57xx-evm | PCIe sata could not be enumerated |
LCPD-12634 | am57xx-evm | PCIe wifi: no network interface being created even it is detected |
LCPD-12665 | k2g-evm | CAN interface is missing in k2g |
LCPD-12690 | am335x-evm | Newer releases of SDK u-boot load kernel slower |
LCPD-12693 | k2g-evm | PCIe support is not in so all pcie tests failed on k2g-evm |
LCPD-12733 | ethtool -k eth0 gives an error message |
2.1.7.3. Errata Workarounds Available in this Release¶
Record ID | Title |
---|---|
LCPD-876 | OMAP5: Errata i810: DPLL Controller Sticks when left clock requests are removed |
LCPD-975 | J6/J6eco: 32clk is psuedo (erratum i856) - realtime counter |
LCPD-976 | J6/J6eco: 32clk is psuedo (erratum i856) - clock source |
LCPD-1022 | J6: Errata: i694: System I2C hang due to miss of Bus Clear support @ OMAP level |
LCPD-1087 | J6: MMC: Errata: i802: OMAP5430 MMCHS: DCRC errors during tuning procedure |
LCPD-1108 | J6: Wrong Access In 1D Burst For YUV4:2:0-NV12 Format (Errata i631) |
LCPD-1146 | DMM hang: Errata VAYU-BUG02976 (i878) (register part) |
LCPD-1776 | [J6 SATA Adaptation] J6 - Errata i783, SATA Lockup After SATA DPLL Unlock/Relock |
LCPD-4184 | Implement workaround for errata i814 - Bandgap Temperature read Dtemp can be corrupted |
LCPD-4217 | Implement Workaround for Errata i814 - Bandgap Temperature read Dtemp can be corrupted |
LCPD-4218 | Implement Workaround for Errata i813 - Spurious Thermal Alert Generation When Temperature Remains in Expected Range |
LCPD-4647 | [rpmsg 2015 LTS] Implement errata i879 - DSP MStandby requires CD_EMU in SW_WKUP |
LCPD-4648 | [rpmsg 2014 LTS] Implement errata i879 - DSP MStandby requires CD_EMU in SW_WKUP |
LCPD-4910 | J6/OMAP5: errata i810 implementation |
LCPD-4975 | DSS AM5/DRA7: implement WA for errata i886 |
LCPD-5052 | Upstream: Post the dmtimer errata fix for i874 |
LCPD-5309 | LCPD: i896: USB Port disable doesnt work |
LCPD-5310 | i900: CTRL_CORE_MMR_LOCK_5 region after locking results in ctrl module inaccessible, recoverable only post a reset |
LCPD-5311 | i893: DCAN ram init issues in HW AUTO and when traffic hitting CAN bus (open investigation) |
LCPD-5460 | Implement WA for Vayu errata i829 (Reusing Pipe Connected To Writeback Pipeline On The Fly To An Active Panel) |
LCPD-5836 | CAL: Errata: i913: CSI2 LDO needs to be disabled when module is powered on |
LCPD-5924 | ALL: CONNECTIVITY: CPSW: errata i877 workarround for cpsw |
LCPD-6907 | Workaround errata i880 for RGMII2 is missing |
LCPD-7642 | MMC/SD: i832: return DLL to default reset state with CLK gated if not in SDR104/HS200 mode. |
LCPD-8277 | u-boot: j6: SATA is not shutdown correctly as per errata i818 |
LCPD-8294 | 37 pins + VOUT pins need slow slew enabled for timing and reliability respectively |
LCPD-9084 | i887: Software workaround to limit mmc3 speed to 64MHz |
LCPD-9173 | i897: USB Stop Endpoint doesnt work in certain circumstances |
2.1.7.4. SDK Known Issues¶
Record ID | Platform | Title | Workaround |
---|---|---|---|
LCPD-5578 | Exception triggered by graphics driver during boot if board does not have SGX (BBB A4) | Build Processor SDK without SGX following instructions here | |
LCPD-7025 | am43xx-gpevm | System takes more than 10 seconds to go from login prompt to system prompt | Automated tests need to account for this boot delay |
LCPD-8345 | am335x-evm, am437x-idk, k2e-evm, k2e-hsevm, k2hk-evm, k2l-evm | Board fails to start login console after waiting 3.5 minutes ( hard to reproduce, ~4/1000) | Restart the EVM |
LCPD-8352 | am43xx-gpevm, am57xx-evm | weston: stress testing with 75 concurrent instances of simple-egl leads to unresponsive HMI due to running out of memory |
|
LCPD-9006 | am57xx-evm | Some GLBenchmark tests fail to run | This is a limitation with Imagination DDK, and no workaround |
LCPD-9616 | am57xx-evm | QtCreator GDB (remote) debugging stops working since QT5.7.1 | use GDB from Processor SDK 3.2 |
LCPD-11010 | am574x-idk | AM574x-idk graphics performance is lower than am572x-idk | Performance issue, no workaround |
LCPD-11549 | am571x-idk, am572x-idk, am574x-idk, am574x-hsidk, am57xx-evm, am57xx-beagle-x15, am57xx-hsevm | Error message with multiple egl, not shared context | Limitation with Imagination DDK, no workaround |
LCPD-12679 | am574x-idk | PVR_K: dmabuf error during video playback | |
LCPD-12778 | am335x-evm | Board hangs in standby & suspend state when wl12x card is attached | |
LCPD-12784 | omapl138-lcdk | Board can’t resume from suspend state sometimes | None |
PLSDK-832 | AM57 | OpenCL matmpy intermittent DSP1 crash due to EdmaMgr issues w/ suspend/resume | Disabling suspend/resume on the DSPs prevents this intermittent failure: echo on > /sys/bus/platform/devices/40800000.dsp/power/control; echo on > /sys/bus/platform/devices/41000000.dsp/power/control |
PLSDK-885 | AM57 | OpenCV Video test failure w/ GStreamer errors | Use the workaround from PLSDK-832 |
PLSDK-1266 | am572x-idk | PRP: stale IGMP packets (IPv6) seems directly sent to eth2/eth3 of a HRP node | None |
PLSDK-1308 | am572x-idk | PRP: PRP node is shown as SAN at times in the node table dump when not offloaded | No problem with offload, which is default |
PLSDK-1398 | k2g-hsevm, k2hk-hsevm, k2e-evm, k2e-hsevm | Document workaround for IPC demo hangs if run after OpenCL demos | Run IPC demo w/o running OpenCL first |
PLSDK-1419 | k2l-evm | Intermittent-IP address display issue on LCD for K2L RT | Use ifconfig once Linux boots, to acquire IP address |
PLSDK-1556 | k2hk-evm, k2hk-hsevm, k2e-evm, k2l-evm | SA LLD: saBasicExample test shows warning as ‘Alignment trap’ on K2x platforms. | Just a warning message. No impact to test output |
PLSDK-1602 | am437x-evm | Simple people tracking demo: Bulk transfer failed, observed inconsistent behavior of the application | None |
PLSDK-1693 | am572x-evm | It takes long time to use “kill pid” to close matrix-browser | Start and stop Matrix GUI using /etc/init.d/matrix start, and /etc/init.d/matrix stop, respectively |
PLSDK-1707 | am571x-idk, am572x-idk | prueth: debugfs_create_dir() fails during boot and error message shown | Only impact the debug stats display. No other functionality affected. Once user login to root, user may do ifconfig or ifup to bring up the interface |
PLSDK-1720 | am437x-evm | Simple people tracking demo: Tracking Incorrect Number of People | None |
PLSDK-1814 | am572x-evm | Camera support is not available from the default dtbs | Use am57xx-evm*-cam-mt9t111.dtb for mt9t111 camera, and am57xx-evm*-cam-ov10635.dtb for ov10635 camera |
PLSDK-1817 | HSR/PRP: Outstanding Net-Jury tests failures: 92/105 passed, 7 blocked and 6 failed | None | |
PLSDK-1828 | am571x-idk, am572x-idk | HSR: In a ring topology, seeing small performance degradation with concurrent traffic | None |
PLSDK-1909 | am572x-evm | DLP SDK demo: Assertion `ctx->pollfds_cnt >= internal_nfds’ failed | None |
PLSDK-1922 | k2hk-hsevm, k2e-evm, k2e-hsevm, k2l-evm | K2: PA and NWAL are not supported in PLSDK 5.0 | None |
PLSDK-1924 | am335x-ice, am335x-sk, beagleboneblack | AM3: Observed unwanted failure message in boot log. | None |
PLSDK-1945 | am572x-evm | qApp->quit() does not work with the enhanced eglfs_kms QPA | None |
PLSDK-1953 | am571x-idk, am572x-idk | Linux PRP: lreTransparentReception - passRCT doesn’t work as expected | None |
PLSDK-1963 | k2e-evm | K2E:Observed unwanted failure messages in boot log | No functionality affected except the log message. If not needed, do not connect anything to the PCIe slot. |
PLSDK-2067 | am571x-idk | Transparent Clock crashes after a couple of days due to memory leak | |
PLSDK-2095 | am571x-idk, am572x-idk | kernel: EXPORT symbol “__hyp_stub_vectors seen during kernel build | |
PLSDK-2107 | k2g-ice | sorte for K2G: master is not working | None |
PLSDK-2109 | am437x-evm, am572x-evm | QtWebengine demobrowser shows problems at LTS2018 on EGLFS QPA | None |
PLSDK-2113 | am571x-idk, am572x-idk | PTP BC overshoot caused by cable unplug and plug back in | |
PLSDK-2128 | am335x-evm, am437x-evm, am438x-epos-evm, am572x-evm | Weston 2.0: overlay window display issue | None. For Wayland demo, you may use qwindow-compositor instead of Weston. |
PLSDK-2171 | am571x-idk, am572x-idk | PRU HSR firmware: small degradation in performance seen for MTU sized frames | None |
PLSDK-2174 | am335x-evm, am335x-hsevm, am335x-ice, am335x-sk, beagleboneblack, am437x-idk, am437x-sk, am437x-evm, am438x-epos-evm, am437x-hsevm, am570x-evm, am571x-idk, am572x-idk, am572x-evm, am572x-hsevm, am574x-idk, am574x-hsidk | boot stuck on “please wait” display screen when no input device is connected | Connect an input device (e.g., mouse, keyboard) when booting the EVM |
PLSDK-2178 | am335x-ice | ICSS EMAC intermittent error in received acyclic packet content | None |
PLSDK-2181 | k2g-ice | k2g-ice Eth0 IP address not displayed | |
PLSDK-2186 | am572x-evm | video-analytic-demo should run on top of Weston instead of qwindow-compistor | Run the deom on top of qwindow-compositor, as available from Matrix GUI |
PLSDK-2188 | am335x-evm, am572x-evm | Failure to load ftdi_sio kernel module | None |
PLSDK-2190 | am571x-idk | Matrix Launcher: Independent_Video_with_QT_widgets_to_Different_Displays failing on am571-idk-rt platform | Intermittent issue |
PLSDK-2192 | am572x-evm | Using OpenVX image causing kernel crash or hang during boot up | Switch back to OpenCL firmware after completing the OpenVX testing: reload-dsp-fw.sh opencl |
PLSDK-2194 | am437x-evm, am572x-evm | QtWebengine demobrowser crashes during window resize operations at LTS2018 | None |
PLSDK-2198 | k2g-ice, k2g-evm | Multimedia: ERROR: from element /GstPipeline:pipeline0/GSTQTMux: qtmux0: Could not multiplex stream | None |
PLSDK-2220 | k2e-evm | UBI Image for K2E exceeds the available size limit | None |
PLSDK-2228 | am572x-evm | AM572x GP EVM: Unable to boot with jailhouse dtb | Apply patch here |
PLSDK-2229 | am572x-idk | Jailhouse ethercat slave failed to reach Operational state with SOEM master on am572-idk rt | |
PLSDK-2234 | am571x-idk | 3BC Jitter exceeds specification | None |
2.1.7.5. U-Boot Known Issues¶
Record ID | Priority | Title | Platform | Workaround |
---|---|---|---|---|
LCPD-12244 | P3-Medium | AM43xx u-boot needs to support PHY_INVERT_CLKOUT=1 | am437x-idk, am437x-sk, am43xx-epos, am43xx-gpevm | |
LCPD-12176 | P3-Medium | U-boot: Fix IOdelay error path issue | am571x-idk, am572x-idk, am574x-idk, am57xx-evm | |
LCPD-11586 | P3-Medium | dhcp failed to get IP address after reboot for K2G-ICE non-RT linux | k2g-ice | |
LCPD-10805 | P3-Medium | U-Boot: Fix uart boot on am335x-evm | am335x-evm | |
LCPD-10726 | P3-Medium | Update DDR3 emif regs structure for EMIF2 for the beagle_x15 board in U-Boot board file | am572x-idk, am57xx-evm | |
LCPD-9369 | P3-Medium | AM437x GP EVM older PG version Uboot UART boot fails intermittently | ||
LCPD-8701 | P3-Medium | Soft reboot broken | k2g-ice | |
LCPD-5416 | P3-Medium | U-BOOT: K2G: “reset” fails for certain SD cards | K2G | |
LCPD-10668 | P3-Medium | Ethernet boot: Sometimes the board could not boot uboot from Ethernet on k2g-evm | k2g-evm | |
LCPD-9539 | P3-Medium | dhcp does not work after soft reboot | k2g-evm | |
LCPD-7864 | P3-Medium | U-Boot: Ethernet boot fails on AM335x and AM437x | am335x-evm, am335x-ice, am335x-sk, am437x-idk, am437x-sk, am43xx-gpevm | |
LCPD-7547 | P3-Medium | uboot nand write hangs for big size on k2g | k2g-evm | |
LCPD-7366 | P3-Medium | uboot McSPI driver drives multiple chip selects simultaneously | am335x-evm | |
LCPD-5517 | P3-Medium | Board fails to load bootloader sometimes when eSATA is connected | AM572x | |
LCPD-5116 | P3-Medium | BBB: U-Boot: Board fails to acquire dhcp address sometimes | AM335x | |
LCPD-4817 | P4-Low | am57xx-evm: uboot: usb failed to detect Kingston DataTraveler usb msc device | AM572x |
2.1.7.6. Linux Kernel Known Issues¶
Record ID | Priority | Title | Component | Subcomponent | Platform | Workaround |
---|---|---|---|---|---|---|
LCPD–12784 | P2-High | Board can’t resume from suspend state sometimes | Power & Thermal | omapl138-lcdk | ||
LCPD–9877 | P2-High | rtc alarm does not wakeup board from poweroff state | Power & Thermal | omapl138-lcdk | ||
LCPD–12734 | P2-High | K2G: Ethernet performance is low | Connectivity | k2g-evm | ||
LCPD–9972 | P2-High | Soft reboot failed on k2g-evm with class 10 SD cards | Connectivity | k2g-evm | ||
LCPD–12513 | P2-High | Android O: Board takes longer to boot compared to MM | Baseport | am57xx-evm | ||
LCPD–11577 | P3-Medium | IPC: Protocol and MessageQ Recovery tests failed | IPC, System Test | am57xx-evm | ||
LCPD–12781 | P3-Medium | ipu opencl-monitor causes suspend failures | IPC, System Integration | am57xx-evm | ||
LCPD–12933 | P3-Medium | Board fails to resume from standby/suspend state via UART sometimes | Power & Thermal | |||
LCPD–9527 | P3-Medium | Potential deadlock reported by pm_suspend on am335x | Power & Thermal | am335x-evm, am335x-sk, beaglebone, beaglebone-black | ||
LCPD–7670 | P3-Medium | AM43xx: pm debug counters are wrong | Power & Thermal | am437x-idk, am437x-sk | ||
LCPD–7314 | P3-Medium | Active power is slighly higher than on 2015 LTS release (Linux 4.1) | Power & Thermal | am335x-evm | ||
LCPD–7256 | P3-Medium | Board sometimes hangs after suspend/resume cycle | Power & Thermal | am57xx-evm | ||
LCPD–6427 | P3-Medium | vpe fails to suspend sometimes | Power & Thermal | am571x-idk, am572x-idk, am57xx-evm | ||
LCPD–1245 | P3-Medium | AM335x: Power: Reverse current leakage on poweroff | Power & Thermal | am335x-evm | ||
LCPD–1204 | P3-Medium | AM335x - Some voltage rails remain active during poweroff | Power & Thermal | |||
LCPD–965 | P3-Medium | AM335x: Power: Poweroff is not shutting down voltage domains | Power & Thermal | |||
LCPD–10987 | P3-Medium | OpenCL tests failed due to missing CMEM carveouts in dts | IPC, System Integration | OpenCL | am574x-idk | |
LCPD–12673 | P3-Medium | Board refuses to suspend on setup with SATA device | Connectivity | omapl138-lcdk | ||
LCPD–12664 | P3-Medium | Some of SATA tests failed with Internel oops error | Connectivity | am57xx-evm | ||
LCPD–12566 | P3-Medium | CAN user guide references canconfig which is not supported any more | Connectivity | |||
LCPD–11952 | P3-Medium | AM57x: disabling USB super-speed phy in DT causes kernel crash | Connectivity | USB | am571x-idk | |
LCPD–11564 | P3-Medium | AM57xx-evm: eth1 1G connection failure to netgear switch | Connectivity | CPSW, ETHERNET, PHYIF | am57xx-evm | |
LCPD–10974 | P3-Medium | am43xx-gpevm - usb camera gadget shows halting frames | Connectivity | USB | ||
LCPD–10781 | P3-Medium | NetCP module removal results in backtrace and kernel panic | Connectivity | NETCP | k2g-evm | |
LCPD–10777 | P3-Medium | mtd_stresstest failed on omapl138 | Connectivity | NAND | omapl138-lcdk | |
LCPD–10551 | P3-Medium | K2E eth0 does down when running udp traffic, eth1 stops working | Connectivity | NETCP | k2e-evm | |
LCPD–10221 | P3-Medium | Longer resume times observed on setup with usb device cable | Connectivity | USB | am335x-evm | |
LCPD–9974 | P3-Medium | PCIe x2 width is not at expected width on am571x-idk | Connectivity | PCIe | am571x-idk | |
LCPD–9905 | P3-Medium | AM437x: UART: Implement workaround for Advisory 27? Spurious UART interrupts when using EDMA | Connectivity | UART | am43xx-gpevm | |
LCPD–9816 | P3-Medium | USBdevice omapl138 - Flood ping from server to dut usbdevice at 65500 bytes has packet loss | Connectivity | USB | omapl138-lcdk | |
LCPD–9815 | P3-Medium | Failed to start Login Service when using debug systest build on omapl138 | Connectivity | omapl138-lcdk | ||
LCPD–9804 | P3-Medium | SATA performance decreased by ~34% for read and ~54% for write compared to v2.6.33 kernel | Connectivity | SATA | omapl138-lcdk | |
LCPD–9658 | P3-Medium | OMAP-L138 LCDK: MUSB does not enumerate mouse connected to Keyboard hub | Connectivity | USB | omapl138-lcdk | |
LCPD–9591 | P3-Medium | CONNECTIVITY: USB NCM gadget ping with packet sizes > 10000 fails | Connectivity | |||
LCPD–9469 | P3-Medium | Fix race condition when adding VLAN entries | Connectivity | NETCP | k2e-evm, k2g-evm, k2g-ice, k2hk-evm, k2l-evm | |
LCPD–9466 | P3-Medium | SATA PMP causes suspend failures | Connectivity | SATA | am57xx-evm | |
LCPD–9455 | P3-Medium | Kernel Warning reported for a USB audio device when listing with pulseaudio | Connectivity | USB | am335x-evm | |
LCPD–9428 | P3-Medium | Ethernet performace UDP: iperf command fails with two threads for lower buffer length | Connectivity | NETCP | k2e-evm, k2hk-evm, k2l-evm | |
LCPD–9372 | P3-Medium | Nand stress tests failed on am335x-evm | Connectivity | NAND | am335x-evm | |
LCPD–9366 | P3-Medium | PCIe USB drive sometimes could not be enumerated | Connectivity | PCIe | k2g-evm | |
LCPD–9011 | P3-Medium | K2G-evm: usb devices do not enumerate behind a TUSB8041 usb3.0 hub | Connectivity | USB | ||
LCPD–8984 | P3-Medium | Kernel boot to initramfs with PA enabled results in no DHCP IP address assigned to network interfaces | Connectivity | NETCP | k2e-evm, k2l-evm | |
LCPD–8637 | P3-Medium | K2HK: Long-term ping test fails due to ethernet link going down | Connectivity | |||
LCPD–8636 | P3-Medium | Serial corruption being seen in kernel | Connectivity | UART | am335x-evm | |
LCPD–8354 | P3-Medium | K2G EVM: Need to use PMT data | Audio & Display, Baseport, Connectivity | PINMUX | k2g-evm | |
LCPD–8353 | P3-Medium | K2G ICE: Need to use PMT data | Audio & Display, Baseport, Connectivity | PINMUX | k2g-ice | |
LCPD–8133 | P3-Medium | USB: “cannot reset” errors observed sometimes | Connectivity | USB | am335x-evm | |
LCPD–8100 | P3-Medium | CONNECTIVITY: K2G ethernet performance numbers are low | Connectivity | NETCP | k2g-evm | |
LCPD–8078 | P3-Medium | AM3 SK: Touchscreen isn’t responsive | Audio & Display, Connectivity | am335x-sk | ||
LCPD–8033 | P3-Medium | AM3 SK: Unexpected USB2-1 Messages on UART | Connectivity | USB | ||
LCPD–7955 | P3-Medium | Uncorrectable Bitflip errors seen after switch to SystemD | Connectivity | GPMC | am335x-evm, am43xx-gpevm, k2e-evm, k2g-evm, k2g-ice, k2hk-evm, k2hk-hsevm, k2l-evm | Workaround to erase the NAND flash completely if flashed with an incompatible flash writer. SystemD tries to mount all partitions and that is the reason this is being seen now. |
LCPD–7829 | P3-Medium | uboot: UHS card did not work on the expected speed in uboot | Connectivity | am57xx-evm | ||
LCPD–7744 | P3-Medium | UHS SDR104 card works on different speed after soft reboot | Connectivity | am57xx-evm | ||
LCPD–7623 | P3-Medium | Seeing SPI transfer failed error sometimes on k2hk when using rt kernel | Connectivity | SPI | k2hk-evm | |
LCPD–7559 | P3-Medium | K2E/K2HK does not enumerate usb3 devices through usb3.0 hub | Connectivity | USB | k2e-evm, k2hk-evm | |
LCPD–7265 | P3-Medium | Uboot eMMC does not use HS200 on am57xx-gpevm | Connectivity | am57xx-evm | ||
LCPD–6334 | P3-Medium | k2g-evm: NAND is untestable due to data corruption issues | Connectivity | k2g-evm | ||
LCPD–6300 | P3-Medium | am57xx-evm: A few UHS cards could not be numerated in kernel and mmc as rootfs failed. | Connectivity | am57xx-evm | ||
LCPD–6144 | P3-Medium | am572x-idk: eMMC failed to enumerate | Connectivity | MMCSD | am572x-idk | |
LCPD–5699 | P3-Medium | pci: am572x-idk: pci broadcom card doesn’t enumerate | Connectivity | AM571x, AM572x | ||
LCPD–5677 | P3-Medium | K2E-evm: Marvel SATA controller could not be detected sometimes when Power On Reset is involved | Connectivity | K2E | ||
LCPD–5522 | P3-Medium | pcie-usb sometimes the usb drive/stick could not be enumerated | Connectivity | am571x-idk, am572x-idk, am57xx-evm | ||
LCPD–5362 | P3-Medium | MUSB: Isoch IN only utilises 50% bandwidth | Connectivity | USB | AM335x | |
LCPD–5308 | P3-Medium | i897: USB Stop Endpoint doesnt work in certain circumstances | Connectivity | USB | AM437x, AM571x, AM572x | |
LCPD–4849 | P3-Medium | K2hk: Connectivity: UART data corruption observed sometimes in loopback mode | Connectivity | |||
LCPD–4503 | P3-Medium | ALL: 8250 UART driver not enabeld as wake source by default | Connectivity | UART | ||
LCPD–1239 | P3-Medium | J6: Connectivity: J6 could not resume when PCI-SATA card is in | Connectivity | PCIe | am572x-idk, am57xx-evm | |
LCPD–1198 | P3-Medium | am43xx-gpevm:Connectivity: when kmemleak debug is enabled and mmc stress test is run, OOM killer is seen to kick in. Does not happen without kernel debug. | Connectivity | |||
LCPD–1144 | P3-Medium | Logitech USB-PS/2 Optical Mouse cannot be detected every other time the system is suspended/resumed (AM335x-EVM) | Connectivity | |||
LCPD–1106 | P3-Medium | Connectivity:PCIe-SATA ext2 1G write performance is poor due to ata failed command | Connectivity | PCIe | am57xx-evm | |
LCPD–932 | P3-Medium | AM33X: CONNECTIVITY: MUSB MSC read numbers are lower in 3.14 compared to 3.12 | Connectivity | USB | ||
LCPD–869 | P3-Medium | AM335x: Connectivity: USB data transfer fails if board is suspended/resumed | Connectivity | |||
LCPD–662 | P3-Medium | CONNECTIVITY: AM335X: distortion in USB audio when msc connect/disconnect happens in parallel | Connectivity | |||
LCPD–12512 | P3-Medium | Board is not able to boot from emmc after flashing | Baseport | am57xx-evm | ||
LCPD–11546 | P3-Medium | Rare kernel crash triggered by task_blocks_on_rt_mutex | Baseport | am574x-idk, k2e-evm | ||
LCPD–10533 | P3-Medium | Cryptos: SHA1_Hash demo test fails on AM3/4/5 platforms | Baseport | am335x-evm, am335x-ice, am43xx-gpevm, am571x-idk, am572x-idk, am574x-idk, am57xx-evm | ||
LCPD–10451 | P3-Medium | Context switch delay increased based on LMBench numbers | Baseport | am335x-evm, am43xx-gpevm, am571x-idk, am572x-idk, am574x-idk, am57xx-evm | ||
LCPD–9981 | P3-Medium | Some LTP’s memory management tests fail due to low amount of free memory | Baseport | omapl138-lcdk | ||
LCPD–9980 | P3-Medium | LTP’s math tests float_exp_log and float_trigo fail due to OOM | Baseport | omapl138-lcdk | ||
LCPD–9756 | P3-Medium | pm_runtime does not kicks in for some IPs (serial, gpio and wdt) | Baseport | omapl138-lcdk | ||
LCPD–8640 | P3-Medium | Crypto performance for AES drops 3-10% in 2016.05 | Baseport | |||
LCPD–8550 | P3-Medium | CPSW memory allocation errors seen during boot | Audio & Display, Baseport | am335x-sk | ||
LCPD–8406 | P3-Medium | K2G: PADCONFIG_202 register cannot be re-programmed | Baseport | k2g-evm, k2g-ice | This has proven to be a silicon issue related to locking RSTMUX. It is currently being discussed if it will be fixed in a newer silicon revision. Currently to avoid this issue the affected pins pinmux are not changed in the kernel. This is because U-boot locks RSTMUX which causes problems if the kernel tries to change the pinmuxing for the pins. | |
LCPD–8350 | P3-Medium | UART boot does not work on am57xx-evm | Baseport | am57xx-evm | ||
LCPD–8347 | P3-Medium | BUG: sleeping function called from invalid context triggered by keystone_pcie_fault | Baseport | k2e-evm, k2g-evm | ||
LCPD–8336 | P3-Medium | Soft reboot does not work on am43xx-hsevm rev1.5b | Baseport | am43xx-hsevm | ||
LCPD–8257 | P3-Medium | Boot failed 1 of 1000 times on k2g | Baseport | k2g-evm | ||
LCPD–7717 | P3-Medium | LTP Timer test fails for clock_settime02 for dra71-evm | Baseport, System Test | |||
LCPD–7486 | P3-Medium | uboot debug with ccs is failing for K2 | Baseport | k2hk-evm | ||
LCPD–7222 | P3-Medium | Asynchronous abort seen during soft reboot from kernel | Baseport | k2g-evm | ||
LCPD–6998 | P3-Medium | K2G sometimes boot failed with kernel oops error | Baseport | k2g-evm | ||
LCPD–6663 | P3-Medium | [RT] Kmemleak is buggy and boot is crashed randomly | Baseport | |||
LCPD–5537 | P3-Medium | kmemleak: Could not scan kmemleak due to object search tree errors | Baseport | AM571x, AM572x | ||
LCPD–12790 | P3-Medium | DSS: work-around for DRA7 errata i932 | Audio & Display | Display | am571x-idk, am572x-idk, am574x-idk, am574x-hsidk, am57xx-evm | |
LCPD–12680 | P3-Medium | Seeing i2c timeout error and board failed to boot | Audio & Display | k2g-evm | ||
LCPD–12511 | P3-Medium | Audio record is not working | Audio & Display | am57xx-evm | ||
LCPD–11138 | P3-Medium | VIP driver multi-channel capture issue with TVP5158 | Audio & Display | Capture, VIP | am571x-idk, am572x-idk, am574x-idk, am574x-hsidk, am57xx-evm | |
LCPD–10954 | P3-Medium | DSS sync-losts and underflows seen with bad config | Audio & Display | Display | am437x-sk | |
LCPD–7735 | P3-Medium | Powerdomain (vpe_pwrdm) didn’t enter target state 0 | Audio & Display, Power & Thermal | am57xx-evm | ||
LCPD–7696 | P3-Medium | DRA7xx: VPE: File2File checksum changes across multiple runs | Audio & Display | am571x-idk, am572x-idk, am57xx-evm | There is no workaround for this issue yet. No visual artifacts, but checksum on initial frame differs as couple of bytes are incorrect | |
LCPD–7693 | P3-Medium | VIP: OV1063x: Video artifacts in LVDS cameras | Audio & Display | Capture | ||
LCPD–6377 | P3-Medium | OMAP_BO_CACHED feature not functional | Audio & Display, Multimedia | Display | am437x-idk, am437x-sk, am43xx-gpevm, am571x-idk, am572x-idk, am57xx-evm, k2g-evm | |
LCPD–5380 | P3-Medium | omapdss error: HDMI I2C Master Error | Audio & Display | AM572x | Occurs only with this monitor -https://www.amazon.com/gp/product/B00PFLZV2G | |
LCPD–4858 | P4-Low | Power: pm_debug state counters are not increased during suspend | Power & Thermal | AM335x, AM437x | ||
LCPD–4779 | P4-Low | coreaon, wkupaon and rtc power domains OFF counters are increasing during SUSPEND | Power & Thermal | AM571x, AM572x | ||
LCPD–1191 | P4-Low | AM335x: Power: System resumes due to wakeup source USB1_PHY without any external trigger | Power & Thermal | Use GPIO interrupt instead of USB PHY for wakeup source. | ||
LCPD–1013 | P4-Low | AM335x: Power: Seldom short-duration power increase (~38mw) in VDDSHV4 domain | Power & Thermal | |||
LCPD–10455 | P4-Low | remoteproc/keystone: Hang observed while running RPMSG_PROTO example app | IPC | DSP_remoteproc | k2g-evm, k2g-ice, k2hk-evm, k2l-evm | |
LCPD–9801 | P4-Low | remoteproc/davinci: DSP boot is broken after a suspend/resume cycle | IPC | DSP_remoteproc | omapl138-lcdk | |
LCPD–9481 | P4-Low | Sometime the system hangs while loading the rpmsg rpc modules | IPC | RPMSG-RPC | am571x-idk, am572x-idk, am57xx-evm, am57xx-hsevm | |
LCPD–7495 | P4-Low | Sometimes a Kernel Warning + Oops is seen when removing keystone_remoteproc module | IPC | k2hk-evm | ||
LCPD–4855 | P4-Low | [rpmsg 2015 LTS] J6Eco: IPC: Board hangs when an MMU fault occurs in the first message | IPC | am572x-idk | ||
LCPD–4699 | P4-Low | rpmsg-rpc: kernel crash during error recovery with dynamic debug traces enabled | IPC | am571x-idk, am572x-idk, am57xx-evm | ||
LCPD–12783 | P4-Low | Missing instruction for pcie-ep config on k2g-evm for 4.14 kernel | Connectivity | k2g-evm | ||
LCPD–11570 | P4-Low | Base ubi filesystem could not be mounted as ubifs on k2g-evm | Connectivity | k2g-evm | ||
LCPD–9589 | P4-Low | I2C: Sometimes i2c read write failed on farm01 and farm02 | Connectivity | am335x-evm | ||
LCPD–9222 | P4-Low | PRUSS Ethernet does not work on AM572x ES1.1 | Connectivity | PRUSS-Ethernet | am572x-idk | |
LCPD–8477 | P4-Low | K2: serdes nodes doesn’t have a functional clock | Connectivity | SERDES | k2e-evm, k2e-hsevm, k2g-evm, k2g-ice, k2hk-evm, k2hk-hsevm, k2l-evm, k2l-hsevm | |
LCPD–8270 | P4-Low | K2: SerDes driver need to enable PD of the peripheral before access the SerDes h/w | Connectivity | SERDES | k2g-evm | |
LCPD–7998 | P4-Low | Realtime OSADL Test results degraded slightly for am572x-idk | Connectivity | am572x-idk | ||
LCPD–7903 | P4-Low | Uboot phy startup failed and dhcp failed occasionally on k2 board | Connectivity | k2g-evm, k2hk-evm | ||
LCPD–7480 | P4-Low | K2L/E EVMs doesn’t boot to Linux when both 1G Ethernet interfaces are connected | Connectivity | k2e-evm, k2l-evm | ||
LCPD–7188 | P4-Low | PCIe-SATA test failed | Connectivity | am57xx-evm | TI custom board would help with signal integrity issues being seen with the EVM. | |
LCPD–1207 | P4-Low | AM43XX/AM57XX: CONNECTIVITY: dwc3_omap on am43xx and xhci_plat_hcd on dra7 - removal results in segmentation fault | Connectivity | USB | ||
LCPD–998 | P4-Low | MUSB does not free urbs causing usb audio playback to fail | Connectivity | AM335x | ||
LCPD–671 | P4-Low | AM33XX: CONNECTIVITY: MUSB in PIO mode - video issues | Connectivity | |||
LCPD–525 | P4-Low | AM438x: Connectivity: I2C operates 9% beyond desired frequency | Connectivity | |||
LCPD–10223 | P4-Low | Keystone-2 Linking RAM region 0 size register REGION0_SIZE programming | Baseport | k2hk-evm | ||
LCPD–6075 | P4-Low | BUG: using smp_processor_id() in preemptible [00000000] code during remoteproc suspend/resume | Baseport, IPC | am572x-idk, am57xx-evm | ||
LCPD–9098 | P4-Low | Writeback: error prints seen when doing wb capture | Audio & Display | Capture, Display, Writeback | am571x-idk, am572x-idk, am57xx-evm | |
LCPD–8884 | P4-Low | VIP does not work after incorrectly configuring captured YUYV frame as NV12 | Audio & Display | Capture, VIP | ||
LCPD–5059 | P4-Low | omapdrm: moving plane from one enabled display to another causes errors | Audio & Display | Display | ||
LCPD–4681 | P4-Low | omapdrm: an error when enabling a display is not handled correctly | Audio & Display | Display | ||
LCPD–1171 | P4-Low | DMM errata i878 (framebuffer part) | Audio & Display | Display, TILER | am571x-idk, am572x-idk, am57xx-evm |
2.1.7.7. RT Linux Kernel Known Issues¶
Record ID | Priority | Title | Component | Subcomponent | Platform | Workaround |
---|---|---|---|---|---|---|
LCPD-6663 | P3-Medium | [RT] Kmemleak is buggy and boot is crashed randomly | Baseport | |||
LCPD-7623 | P3-Medium | Seeing SPI transfer failed error sometimes on k2hk when using rt kernel | Connectivity | SPI | k2hk-evm | |
LCPD-11546 | P3-Medium | Rare kernel crash triggered by task_blocks_on_rt_mutex | Baseport | am574x-idk, k2e-evm | ||
LCPD-11568 | P3-Medium | dhcp failed to get IP address after reboot for K2G-ICE non-RT linux | Baseport | u-boot | k2g-ice |
Installation and Usage
The Software Developer’s Guide provides instructions on how to setup up your Linux development environment, install the SDK and start your development. It also includes User’s Guides for various Example Applications and Code Composer Studio.
Host Support
The Processor SDK is developed, built and verified on Ubuntu 14.04 and 16.04. Details on how to create a virtual machine to load Ubuntu 14.04 are described in this page.
Note
Processor SDK Installer is 64-bit, and installs only on 64-bit host machine. Support for 32-bit host is dropped as Linaro toolchain is available only for 64-bit machines
2.2. Performance Guide¶
2.2.1. Kernel Performance Guide¶
Read This First
All performance numbers provided in this document are gathered using following Evaluation Modules unless otherwise specified.
Name | Description |
---|---|
AM335x | AM335x Evaluation Module rev 1.5B with ARM running at 1000MHz, DDR3-400 (400MHz/800 MT/S), TMDXEVM3358 |
AM437x-gpevm | AM437x-gpevm Evaluation Module rev 1.5A with ARM running at 1000MHz, DDR3-400 (400MHz/800 MT/S), TMDSEVM437X |
AM572x EVM | AM57xx Evaluation Module rev A2 with ARM running at 1500MHz, DDR3L-533 (533 MHz/1066 MT/S), TMDSEVM572x |
K2HK EVM | K2 Hawkings Evaluation Module rev 40 with ARM running at 1200MHz, DDR3-1600 (800 MHz/1600 MT/S), EVMK2H |
K2G EVM | K2 Galileo Evaluation Module rev C, DDR3-1333 (666 MHz/1333 MT/S), EVMK2G |
Table: Evaluation Modules
About This Manual
This document provides performance data for each of the device drivers which are part of the Process SDK Linux package. This document should be used in conjunction with release notes and user guides provided with the Process SDK Linux package for information on specific issues present with drivers included in a particular release.
If You Need Assistance
For further information or to report any problems, contact http://community.ti.com/ or http://support.ti.com/
Linux Kernel
System Benchmarks
LMBench
LMBENCH / host LMBENCH_L_PERF_HostSide | am335x-evm | am437x-evm | am57xx-evm | k2g-evm | omapl138-lcdk |
---|---|---|---|---|---|
af_unix_sock_stream_latency (microsec) | 43.04 | 26.38 | 25.08 | 47.4 | 691.75 |
af_unix_socket_stream_bandwidt (MBs) | 181.55 | 185.87 | 2213.87 | 676.85 | 28.96 |
bw_file_rd-io-1mb (MB/s) | 183.76 | 198.69 | 1162.4 | 579.71 | 39.86 |
bw_file_rd-o2c-1mb (MB/s) | 159.01 | 168.18 | 894.13 | 456.0 | 36.59 |
bw_mem-bcopy-16mb (MB/s) | 155.15 | 193.06 | 1945.05 | 1243.78 | 36.59 |
bw_mem-bcopy-1mb (MB/s) | 194.25 | 198.22 | 4936.4 | 1337.92 | 91.23 |
bw_mem-bcopy-2mb (MB/s) | 203.29 | 196.54 | 3133.7 | 1241.46 | 91.05 |
bw_mem-bcopy-4mb (MB/s) | 212.15 | 197.18 | 2063.63 | 1231.34 | 90.46 |
bw_mem-bcopy-8mb (MB/s) | 219.11 | 197.84 | 1965.36 | 1238.01 | 91.48 |
bw_mem-bzero-16mb (MB/s) | 995.09 | 672.64 | 4974.35 | 3391.27 | 146.3 |
bw_mem-bzero-1mb (MB/s) | 588.05 (min 194.25, max 981.84) | 436.49 (min 198.22, max 674.76) | 5283.82 (min 4936.4, max 5631.24) | 2930.13 (min 1337.92, max 4522.33) | 119.23 (min 91.23, max 147.23) |
bw_mem-bzero-2mb (MB/s) | 593.69 (min 203.29, max 984.09) | 435.03 (min 196.54, max 673.51) | 4416.36 (min 3133.7, max 5699.02) | 2549.74 (min 1241.46, max 3858.02) | 118.75 (min 91.05, max 146.45) |
bw_mem-bzero-4mb (MB/s) | 598.32 (min 212.15, max 984.49) | 434.95 (min 197.18, max 672.72) | 3719.54 (min 2063.63, max 5375.44) | 2434.52 (min 1231.34, max 3637.69) | 118.82 (min 90.46, max 147.17) |
bw_mem-bzero-8mb (MB/s) | 612.51 (min 219.11, max 1005.91) | 435.11 (min 197.84, max 672.38) | 3543.09 (min 1965.36, max 5120.82) | 2374.16 (min 1238.01, max 3510.31) | 118.86 (min 91.48, max 146.24) |
bw_mem-cp-16mb (MB/s) | 157.83 | 195.57 | 1043.36 | 605.3 | 146.95 |
bw_mem-cp-1mb (MB/s) | 597.9 (min 198.45, max 997.34) | 437.43 (min 201.11, max 673.74) | 5018.3 (min 4390.99, max 5645.6) | 2737.33 (min 602.77, max 4871.89) | 123.6 (min 100.24, max 146.95) |
bw_mem-cp-2mb (MB/s) | 591.38 (min 195.1, max 987.65) | 436.32 (min 199.46, max 673.17) | 3403.48 (min 1203.73, max 5603.22) | 2279.04 (min 605.51, max 3952.57) | 122.17 (min 97.84, max 146.5) |
bw_mem-cp-4mb (MB/s) | 602.16 (min 197.51, max 1006.8) | 436.59 (min 200.46, max 672.72) | 3147.15 (min 1050.97, max 5243.32) | 2100.14 (min 573.81, max 3626.47) | 122.34 (min 97.76, max 146.92) |
bw_mem-cp-8mb (MB/s) | 601.77 (min 202.15, max 1001.38) | 436.97 (min 201.39, max 672.55) | 3082.54 (min 1044.25, max 5120.82) | 2050.91 (min 608.37, max 3493.45) | 123.17 (min 99.5, max 146.83) |
bw_mem-fcp-16mb (MB/s) | 274.7 | 192.96 | 1085.78 | 608.3 | 147.23 |
bw_mem-fcp-1mb (MB/s) | 636.12 (min 290.4, max 981.84) | 434.43 (min 194.1, max 674.76) | 4255.77 (min 2880.29, max 5631.24) | 2565.17 (min 608.0, max 4522.33) | 106.65 (min 66.07, max 147.23) |
bw_mem-fcp-2mb (MB/s) | 634.56 (min 285.02, max 984.09) | 433.28 (min 193.05, max 673.51) | 3442.98 (min 1186.94, max 5699.02) | 2215.01 (min 572.0, max 3858.02) | 106.47 (min 66.48, max 146.45) |
bw_mem-fcp-4mb (MB/s) | 640.31 (min 296.12, max 984.49) | 432.59 (min 192.45, max 672.72) | 3224.13 (min 1072.82, max 5375.44) | 2115.06 (min 592.42, max 3637.69) | 106.41 (min 65.64, max 147.17) |
bw_mem-fcp-8mb (MB/s) | 652.16 (min 298.4, max 1005.91) | 432.64 (min 192.9, max 672.38) | 3087.91 (min 1054.99, max 5120.82) | 2059.59 (min 608.87, max 3510.31) | 106.21 (min 66.18, max 146.24) |
bw_mem-frd-16mb (MB/s) | 249.55 | 242.95 | 919.06 | 730.96 | 126.66 |
bw_mem-frd-1mb (MB/s) | 279.99 (min 269.58, max 290.4) | 222.08 (min 194.1, max 250.06) | 2985.88 (min 2880.29, max 3091.47) | 724.59 (min 608.0, max 841.18) | 96.21 (min 66.07, max 126.34) |
bw_mem-frd-2mb (MB/s) | 270.5 (min 255.98, max 285.02) | 218.21 (min 193.05, max 243.37) | 1672.22 (min 1186.94, max 2157.5) | 657.2 (min 572.0, max 742.39) | 96.76 (min 66.48, max 127.03) |
bw_mem-frd-4mb (MB/s) | 273.01 (min 249.89, max 296.12) | 217.32 (min 192.45, max 242.19) | 1071.24 (min 1069.66, max 1072.82) | 661.24 (min 592.42, max 730.06) | 96.38 (min 65.64, max 127.11) |
bw_mem-frd-8mb (MB/s) | 274.0 (min 249.59, max 298.4) | 218.21 (min 192.9, max 243.52) | 986.16 (min 917.33, max 1054.99) | 669.63 (min 608.87, max 730.39) | 96.82 (min 66.18, max 127.45) |
bw_mem-fwr-16mb (MB/s) | 995.89 | 672.35 | 4973.58 | 3390.19 | 146.65 |
bw_mem-fwr-1mb (MB/s) | 633.46 (min 269.58, max 997.34) | 461.9 (min 250.06, max 673.74) | 4368.54 (min 3091.47, max 5645.6) | 2856.54 (min 841.18, max 4871.89) | 136.65 (min 126.34, max 146.95) |
bw_mem-fwr-2mb (MB/s) | 621.82 (min 255.98, max 987.65) | 458.27 (min 243.37, max 673.17) | 3880.36 (min 2157.5, max 5603.22) | 2347.48 (min 742.39, max 3952.57) | 136.77 (min 127.03, max 146.5) |
bw_mem-fwr-4mb (MB/s) | 628.35 (min 249.89, max 1006.8) | 457.46 (min 242.19, max 672.72) | 3156.49 (min 1069.66, max 5243.32) | 2178.27 (min 730.06, max 3626.47) | 137.02 (min 127.11, max 146.92) |
bw_mem-fwr-8mb (MB/s) | 625.49 (min 249.59, max 1001.38) | 458.04 (min 243.52, max 672.55) | 3019.08 (min 917.33, max 5120.82) | 2111.92 (min 730.39, max 3493.45) | 137.14 (min 127.45, max 146.83) |
bw_mem-rd-16mb (MB/s) | 252.08 | 370.24 | 3039.51 | 2442.0 | 137.28 |
bw_mem-rd-1mb (MB/s) | 632.54 (min 271.7, max 993.38) | 326.16 (min 277.93, max 374.39) | 12286.96 (min 10893.25, max 13680.66) | 1780.64 (min 869.72, max 2691.55) | 343.06 (min 135.96, max 550.16) |
bw_mem-rd-2mb (MB/s) | 620.05 (min 255.2, max 984.9) | 321.63 (min 273.97, max 369.28) | 8821.85 (min 7389.16, max 10254.53) | 1577.89 (min 697.47, max 2458.3) | 351.19 (min 137.73, max 564.65) |
bw_mem-rd-4mb (MB/s) | 628.51 (min 251.73, max 1005.28) | 321.84 (min 273.58, max 370.1) | 2465.67 (min 1597.44, max 3333.89) | 1570.33 (min 701.63, max 2439.02) | 348.43 (min 136.48, max 560.38) |
bw_mem-rd-8mb (MB/s) | 600.78 (min 217.18, max 984.37) | 321.69 (min 274.55, max 368.82) | 2179.64 (min 1297.65, max 3061.62) | 1569.11 (min 698.81, max 2439.4) | 349.88 (min 137.48, max 562.27) |
bw_mem-rdwr-16mb (MB/s) | 202.31 | 296.81 | 914.13 | 569.09 | 108.22 |
bw_mem-rdwr-1mb (MB/s) | 202.65 (min 198.45, max 206.85) | 248.71 (min 201.11, max 296.3) | 5663.04 (min 4390.99, max 6935.08) | 640.31 (min 602.77, max 677.85) | 104.07 (min 100.24, max 107.89) |
bw_mem-rdwr-2mb (MB/s) | 199.09 (min 195.1, max 203.07) | 247.71 (min 199.46, max 295.95) | 2603.87 (min 1203.73, max 4004.0) | 588.02 (min 570.53, max 605.51) | 103.01 (min 97.84, max 108.17) |
bw_mem-rdwr-4mb (MB/s) | 200.21 (min 197.51, max 202.91) | 247.66 (min 200.46, max 294.85) | 1073.73 (min 1050.97, max 1096.49) | 572.42 (min 571.02, max 573.81) | 103.02 (min 97.76, max 108.28) |
bw_mem-rdwr-8mb (MB/s) | 202.31 (min 202.15, max 202.46) | 247.52 (min 201.39, max 293.65) | 986.87 (min 929.48, max 1044.25) | 589.72 (min 571.06, max 608.37) | 103.78 (min 99.5, max 108.06) |
bw_mem-wr-16mb (MB/s) | 995.77 | 274.69 | 1273.07 | 696.44 | 565.87 |
bw_mem-wr-1mb (MB/s) | 600.12 (min 206.85, max 993.38) | 287.12 (min 277.93, max 296.3) | 10307.87 (min 6935.08, max 13680.66) | 773.79 (min 677.85, max 869.72) | 329.03 (min 107.89, max 550.16) |
bw_mem-wr-2mb (MB/s) | 593.99 (min 203.07, max 984.9) | 284.96 (min 273.97, max 295.95) | 7129.27 (min 4004.0, max 10254.53) | 634.0 (min 570.53, max 697.47) | 336.41 (min 108.17, max 564.65) |
bw_mem-wr-4mb (MB/s) | 604.1 (min 202.91, max 1005.28) | 284.22 (min 273.58, max 294.85) | 1346.97 (min 1096.49, max 1597.44) | 636.33 (min 571.02, max 701.63) | 334.33 (min 108.28, max 560.38) |
bw_mem-wr-8mb (MB/s) | 593.42 (min 202.46, max 984.37) | 284.1 (min 274.55, max 293.65) | 1113.57 (min 929.48, max 1297.65) | 634.94 (min 571.06, max 698.81) | 335.17 (min 108.06, max 562.27) |
bw_mmap_rd-mo-1mb (MB/s) | 265.6 | 257.8 | 3079.15 | 822.23 | 96.94 |
bw_mmap_rd-o2c-1mb (MB/s) | 183.72 | 193.01 | 1214.43 | 450.59 | 82.13 |
bw_pipe (MB/s) | 258.8 | 359.52 | 579.67 | 381.68 | 26.15 |
bw_unix (MB/s) | 181.55 | 185.87 | 2213.87 | 676.85 | 28.96 |
lat_connect (us) | 73.15 | 60.89 | 51.95 | 82.41 | 1082.33 |
lat_ctx-2-128k (us) | 219.99 | 196.21 | 10.59 | 14.18 | 76.23 |
lat_ctx-2-256k (us) | 613.53 | 624.95 | 10.42 | 106.75 | 170.67 |
lat_ctx-4-128k (us) | 470.73 | 454.47 | 9.2 | 74.38 | 206.3 |
lat_ctx-4-256k (us) | 794.69 | 669.21 | 9.34 | 74.04 | 224.42 |
lat_fs-0k (num_files) | 232.0 | 287.0 | 339.0 | 230.0 | 20.0 |
lat_fs-10k (num_files) | 80.0 | 86.0 | 141.0 | 93.0 | 8.0 |
lat_fs-1k (num_files) | 128.0 | 133.0 | 177.0 | 134.0 | 11.0 |
lat_fs-4k (num_files) | 118.0 | 149.0 | 201.0 | 137.0 | 11.0 |
lat_mem_rd-stride128-sz1000k (ns) | 432.71 | 205.55 | 12.83 | 124.69 | 240.39 |
lat_mem_rd-stride128-sz125k (ns) | 11.66 | 16.05 | 12.68 | 20.06 | 229.81 |
lat_mem_rd-stride128-sz250k (ns) | 70.47 | 38.08 | 12.82 | 20.16 | 229.91 |
lat_mem_rd-stride128-sz31k (ns) | 3.01 | 9.25 | 6.48 | 18.06 | 186.16 |
lat_mem_rd-stride128-sz50 (ns) | 3.01 | 4.01 | 2.67 | 4.01 | 5.04 |
lat_mem_rd-stride128-sz500k (ns) | 430.44 | 161.22 | 12.82 | 35.83 | 241.72 |
lat_mem_rd-stride128-sz62k (ns) | 9.14 | 16.93 | 12.68 | 19.06 | 231.85 |
lat_mmap-1m (us) | 239.0 | 133.0 | 50.0 | 81.0 | 624.0 |
lat_ops-double-add (ns) | 2.37 | 1.01 | 0.73 | 1.09 | 36.63 |
lat_ops-double-mul (ns) | 11.03 | 7.02 | 3.34 | 5.02 | 103.95 |
lat_ops-float-add (ns) | 2.29 | 0.92 | 0.73 | 1.1 | 21.54 |
lat_ops-float-mul (ns) | 10.07 | 6.03 | 3.34 | 5.01 | 66.03 |
lat_ops-int-add (ns) | 1.0 | 1.03 | 0.67 | 1.0 | 1.69 |
lat_ops-int-bit (ns) | 0.67 | 0.67 | 0.45 | 0.67 | 2.55 |
lat_ops-int-div (ns) | 72.79 | 96.14 | 60.12 | 90.7 | 190.92 |
lat_ops-int-mod (ns) | 23.45 | 22.3 | 8.92 | 13.38 | 88.3 |
lat_ops-int-mul (ns) | 6.07 | 4.06 | 2.09 | 3.14 | 6.65 |
lat_ops-int64-add (ns) | 1.21 | 1.38 | 0.74 | 1.11 | 5.29 |
lat_ops-int64-bit (ns) | 1.03 | 1.04 | 0.68 | 1.02 | 2.58 |
lat_ops-int64-div (ns) | 210.08 | 200.62 | 124.17 | 185.6 | 858.36 |
lat_ops-int64-mod (ns) | 55.82 | 46.9 | 22.04 | 33.11 | 248.69 |
lat_pagefault (us) | 1.74 | 1.38 | 0.96 | 1.63 | 7.98 |
lat_pipe (us) | 37.36 | 20.26 | 27.28 | 36.91 | 502.93 |
lat_proc-exec (us) | 1324.25 | 1254.6 | 567.4 | 905.83 | 7763.0 |
lat_proc-fork (us) | 1275.4 | 1073.2 | 529.2 | 850.67 | 7127.0 |
lat_proc-proccall (us) | 0.02 | 0.01 | 0.01 | 0.01 | 0.29 |
lat_select (us) | 42.4 | 35.88 | 27.78 | 47.77 | 175.97 |
lat_sem (us) | 5.69 | 3.24 | 2.04 | 4.82 | 80.26 |
lat_sig-catch (us) | 13.14 | 6.89 | 3.34 | 5.21 | 48.99 |
lat_sig-install (us) | 1.39 | 0.88 | 0.62 | 0.98 | 6.16 |
lat_sig-prot (us) | 0.54 | 0.35 | 0.27 | 0.62 | |
lat_syscall-fstat (us) | 3.13 | 2.65 | 2.38 | 3.78 | 31.35 |
lat_syscall-null (us) | 0.58 | 0.42 | 0.32 | 0.5 | 2.57 |
lat_syscall-open (us) | 256.0 | 244.0 | 150.94 | 200.81 | 1548.75 |
lat_syscall-read (us) | 1.02 | 0.79 | 0.44 | 0.62 | 5.28 |
lat_syscall-stat (us) | 7.72 | 6.2 | 5.43 | 8.36 | 100.49 |
lat_syscall-write (us) | 0.69 | 0.55 | 0.35 | 0.52 | 4.15 |
lat_tcp (us) | 1.04 | 0.75 | 0.54 | 0.81 | 7.18 |
lat_unix (us) | 43.04 | 26.38 | 25.08 | 47.4 | 691.75 |
latency_for_0.50_mb_block_size (nanosec) | 430.44 | 161.22 | 12.82 | 35.83 | 241.72 |
latency_for_1.00_mb_block_size (nanosec) | 216.36 (min 0.0, max 432.71) | 102.77 (min 0.0, max 205.55) | 6.41 (min 0.0, max 12.83) | 62.34 (min 0.0, max 124.69) | 120.19 (min 0.0, max 240.39) |
pipe_bandwidth (MBs) | 258.8 | 359.52 | 579.67 | 381.68 | 26.15 |
pipe_latency (microsec) | 37.36 | 20.26 | 27.28 | 36.91 | 502.93 |
procedure_call (microsec) | 0.02 | 0.01 | 0.01 | 0.01 | 0.29 |
select_on_200_tcp_fds (microsec) | 42.4 | 35.88 | 27.78 | 47.77 | 175.97 |
semaphore_latency (microsec) | 5.69 | 3.24 | 2.04 | 4.82 | 80.26 |
signal_handler_latency (microsec) | 1.39 | 0.88 | 0.62 | 0.98 | 6.16 |
signal_handler_overhead (microsec) | 13.14 | 6.89 | 3.34 | 5.21 | 48.99 |
tcp_ip_connection_cost_to_loca (microsec) | 73.15 | 60.89 | 51.95 | 82.41 | 1082.33 |
tcp_latency_using_localhost (microsec) | 1.04 | 0.75 | 0.54 | 0.81 | 7.18 |
Table: LM Bench Metrics
Dhrystone
ARM Benchmarks / host Dhrystone_S_PERF_HostSide | am335x-evm | am437x-evm | am57xx-evm | k2g-evm | omapl138-lcdk |
---|---|---|---|---|---|
dhrystone_per_mhz (DMIPS/MHz) | 2.2 | 2.5 | 3.3 | 3.6 | 1.4 |
dhrystone_per_second (DhrystoneP) | 3846153.8 | 4444444.5 | 8695652.0 | 6451613.0 | 546448.1 |
Table: Dhrystone Benchmark
Whestone
ARM Benchmarks / host Whetstone_S_PERF_HostSide | am335x-evm | am437x-evm | am57xx-evm | k2g-evm | omapl138-lcdk |
---|---|---|---|---|---|
whetstone (MIPS) | 555.6 | 2000.0 | 3333.3 | 2500.0 | 31.6 |
Table: Whestone Benchmark
Linpack
ARM Benchmarks / host Linpack_S_PERF_HostSide | am335x-evm | am437x-evm | am57xx-evm | k2g-evm | omapl138-lcdk |
---|---|---|---|---|---|
linpack (Kflops) | 56034.0 | 180246.0 | 1030103.0 | 691020.0 | 7362.0 |
Table: Linpack Benchmark
NBench
ARM Benchmarks / host NBench_S_PERF_HostSide | am335x-evm | am437x-evm | am57xx-evm | k2g-evm | omapl138-lcdk |
---|---|---|---|---|---|
assignment (Iterations) | 8.17 | 8.42 | 17.09 | 11.58 | 0.94 |
fourier (Iterations) | 1829.8 | 7199.6 | 12404.0 | 8377.0 | 125.15 |
fp_emulation (Iterations) | 80.31 | 88.34 | 169.63 | 112.95 | 17.74 |
huffman (Iterations) | 806.67 | 883.92 | 1403.6 | 933.77 | 207.33 |
idea (Iterations) | 1532.8 | 1652.2 | 4382.1 | 2918.6 | 450.87 |
lu_decomposition (Iterations) | 75.17 | 335.84 | 700.98 | 554.62 | 5.74 |
neural_net (Iterations) | 2.0 | 8.45 | 22.11 | 15.09 | 0.19 |
numeric_sort (Iterations) | 388.71 | 593.25 | 700.44 | 444.99 | 92.37 |
string_sort (Iterations) | 66.75 | 63.91 | 139.33 | 93.91 | 6.08 |
Table: NBench Benchmarks
Stream
ARM Benchmarks / host Stream_1_core_S_PERF_Hostside | am335x-evm | am437x-evm | am57xx-evm | k2g-evm |
---|---|---|---|---|
add (MB/s) | 487.3 | 598.9 | 3701.5 | 2335.6 |
copy (MB/s) | 434.3 | 407.1 | 3841.7 | 2443.3 |
scale (MB/s) | 533.1 | 650.3 | 4262.1 | 2372.7 |
triad (MB/s) | 458.2 | 368.6 | 3710.5 | 2266.3 |
Table: Stream
Interrupt Latency Measurement
The following table gives interrupt latency measurements taken across 1001 measurement samples.
Interrupt Latency (in micro seconds) | Number of samples (under 0% cpu load) (1001 total samples) | Number of samples (under 100% cpu load using hackbench ``hackbench -P -l -1 -g 10``) (501 total samples) |
---|---|---|
10 | 25 | 0 |
11 | 265 | 25 |
12 | 531 | 249 |
13 | 167 | 203 |
14 | 11 | 24 |
15 | 2 | 0 |
Table: Interrupt Latency Measurement
Boot-time Measurement
Boot media: MMCSD
Boot Configuration | am335x-evm: boot time (sec) | am437x-evm: boot time (sec) | am57xx-evm: boot time (sec) | k2g-evm: boot time (sec) | omapl138-lcdk: boot time (sec) |
---|---|---|---|---|---|
Kernel boot time test when bootloader, kernel and sdk-rootfs are in mmc-sd | 29.11 (min 28.74, max 29.79) | 28.19 (min 26.05, max 33.63) | 15.92 (min 15.63, max 16.41) | 26.81 (min 25.79, max 27.94) | 104.72 (min 103.55, max 106.85) |
Kernel boot time test when init is /bin/sh and bootloader, kernel and sdk-rootfs are in mmc-sd | 5.57 (min 5.56, max 5.58) | 5.18 (min 5.17, max 5.22) | 5.9 (min 5.87, max 5.97) | 7.57 | 10.98 (min 10.79, max 11.62) |
Table: ‘
ALSA SoC Audio Driver
- Access type - RW_INTERLEAVED
- Channels - 2
- Format - S16_LE
- Period size - 64
Sampling Rate (Hz) | am335x-evm: Throughput (bits/sec) | am335x-evm: CPU Load (%) | am437x-evm: Throughput (bits/sec) | am437x-evm: CPU Load (%) | am57xx-evm: Throughput (bits/sec) | am57xx-evm: CPU Load (%) | k2g-evm: Throughput (bits/sec) | k2g-evm: CPU Load (%) | omapl138-lcdk: Throughput (bits/sec) | omapl138-lcdk: CPU Load (%) |
8000 | 255999.0 | 0.88 | 256000.0 | 0.31 | 255991.0 | 0.09 | 256006.0 | 2.38 | ||
11025 | 352799.0 | 2.74 | 352800.0 | 0.58 | 352791.0 | 0.13 | 352799.0 | 0.39 | 352811.0 | 3.3 |
16000 | 511998.0 | 0.94 | 512000.0 | 0.18 | 511981.0 | 0.16 | 512021.0 | 5.34 | ||
22050 | 705597.0 | 4.94 | 705600.0 | 1.03 | 705581.0 | 0.24 | 705598.0 | 0.76 | 705637.0 | 5.78 |
24000 | 705597.0 | 4.72 | 705600.0 | 0.91 | 705581.0 | 0.17 | 705637.0 | 6.07 | ||
32000 | 1023994.0 | 0.97 | 1024000.0 | 0.17 | 1023963.0 | 0.23 | 1024074.0 | 7.91 | ||
44100 | 1411190.0 | 8.46 | 1411200.0 | 1.75 | 1411161.0 | 0.42 | 1411195.0 | 1.35 | 1411336.0 | 11.89 |
48000 | 1535988.0 | 2.01 | 1536000.0 | 0.23 | 1535943.0 | 0.44 | 1536160.0 | 12.85 | ||
88200 | 2822365.0 | 16.53 | 2822395.0 | 2.95 | 2822321.0 | 0.8 | 2822387.0 | 2.87 | 2729820.0 | 24.61 |
96000 | 3071957.0 | 22.71 | 3071994.0 | 0.23 | 3071885.0 | 1.26 | 2962544.0 | 26.59 |
Table: Audio Capture
Sampling Rate (Hz) | am335x-evm: Throughput (bits/sec) | am335x-evm: CPU Load (%) | am437x-evm: Throughput (bits/sec) | am43xx-gpevm: CPU Load (%) | am57xx-evm: Throughput (bits/sec) | am57xx-evm: CPU Load (%) | k2g-evm: Throughput (bits/sec) | k2g-evm: CPU Load (%) | omapl138-lcdk: Throughput (bits/sec) | omapl138-lcdk: CPU Load (%) |
8000 | 256101.0 | 3.18 | 256102.0 | 0.37 | 256096.0 | 0.09 | 256109.0 | 2.65 | ||
11025 | 352939.0 | 2.64 | 352940.0 | 0.49 | 352935.0 | 0.11 | 352942.0 | 0.36 | 352952.0 | 3.11 |
16000 | 512202.0 | 0.88 | 512203.0 | 0.15 | 512191.0 | 0.16 | 512225.0 | 4.65 | ||
22050 | 705878.0 | 4.58 | 705880.0 | 0.91 | 705870.0 | 0.23 | 705884.0 | 0.75 | 705919.0 | 5.94 |
24000 | 705878.0 | 4.54 | 705880.0 | 0.88 | 705870.0 | 0.19 | 705919.0 | 5.75 | ||
32000 | 1024402.0 | 0.95 | 1024407.0 | 0.21 | 1024382.0 | 0.22 | 1024482.0 | 8.61 | ||
44100 | 1411752.0 | 7.81 | 1411760.0 | 1.44 | 1411740.0 | 0.42 | 1411766.0 | 1.25 | 1411899.0 | 11.12 |
48000 | 1536599.0 | 13.95 | 1536609.0 | 3.08 | 1536573.0 | 0.49 | 1536771.0 | 12.99 | ||
88200 | 2823489.0 | 16.07 | 2823514.0 | 2.87 | 2823479.0 | 0.78 | 2823530.0 | 2.5 | 2731798.0 | 23.52 |
96000 | 3073203.0 | 23.34 | 3073213.0 | 0.19 | 3071806.0 | 0.65 | 2964908.0 | 26.65 |
Table: Audio Playback
Sensor Capture
Capture video frames (MMAP buffers) with v4l2c-ctl and record the reported fps
Resolution | Format | am43xx-gpevm: Fps | am43xx-gpevm: Sensor | am57xx-evm: Fps | am57xx-evm: Sensor |
1280x800 | nv12 | ||||
1280x800 | rgb4 | ||||
1280x800 | yuyv | ||||
1600x1200 | ba81 | 14.56 (min 14.56, max 14.57) | ov2659 | ||
1600x1200 | yuyv | 14.56 (min 14.56, max 14.57) | ov2659 | ||
160x128 | nv12 | 40.88 (min 40.79, max 41.0) | mt9t111 | ||
160x128 | rgb4 | 40.88 (min 40.79, max 41.0) | mt9t111 | ||
2048x1536 | nv12 | 6.63 (min 6.14, max 6.68) | mt9t111 | ||
2048x1536 | rgb4 | 6.63 (min 6.14, max 6.68) | mt9t111 | ||
320x240 | ba81 | 43.78 (min 43.7, max 44.0) | ov2659 | ||
320x240 | nv12 | ||||
320x240 | rgb4 | ||||
320x240 | yuyv | 43.78 (min 43.7, max 44.0) | ov2659 |
Table: Sensor Capture
Display Driver
Mode | am335x-evm: Fps | am43xx-gpevm: Fps | am57xx-evm: Fps | k2g-evm: Fps |
---|---|---|---|---|
1920x1200@60 | ||||
480x272@60 | 59.94 (min 59.93, max 59.95) | |||
800x480@60 | 59.52 (min 59.34, max 59.7) | 59.52 (min 59.5, max 59.54) | ||
800x480@62 | 61.81 (min 59.9, max 61.96) |
Table: Display performance (LCD)
Mode | am335x-evm: Fps | am43xx-gpevm: Fps | am57xx-evm: Fps | k2g-evm: Fps |
---|---|---|---|---|
1024x576@60 | 59.97 (min 59.43, max 60.51) | 58.49 (min 51.4, max 60.0) | 59.97 (min 59.95, max 59.99) | 60.01 (min 60.0, max 60.01) |
1024x768@60 | 60.0 (min 59.98, max 60.02) | |||
1024x768@70 | 70.07 (min 69.88, max 70.26) | |||
1024x768@75 | 75.03 (min 74.78, max 75.31) | |||
1152x864@75 | 75.0 (min 74.76, max 75.22) | |||
1280x1024@60 | 60.02 (min 60.0, max 60.04) | |||
1280x1024@75 | 75.03 (min 74.99, max 75.06) | |||
1280x720@60 | 60.0 (min 59.38, max 60.62) | 60.0 | 60.0 (min 59.98, max 60.02) | 60.0 |
1280x768@60 | 59.87 (min 59.85, max 59.89) | |||
1280x768@75 | 74.89 (min 74.84, max 74.98) | |||
1280x800@60 | 59.81 (min 59.79, max 59.83) | |||
1280x800@75 | 74.93 (min 74.9, max 74.96) | |||
1280x960@60 | 60.0 (min 59.98, max 60.03) | |||
1360x768@60 | 59.95 (min 59.93, max 59.97) | |||
1400x1050@60 | 59.98 (min 59.96, max 60.0) | |||
1400x1050@75 | 74.87 (min 74.83, max 74.9) | |||
1440x900@60 | 59.89 (min 59.87, max 59.91) | |||
1440x900@75 | 74.98 (min 74.95, max 75.02) | |||
1600x1200@60 | 60.0 (min 59.98, max 60.02) | |||
1600x1200@65 | 65.0 (min 64.97, max 65.03) | |||
1600x900@60 | 60.0 (min 59.98, max 60.02) | |||
1680x1050@60 | 59.95 (min 59.93, max 59.98) | |||
1680x945@60 | 60.02 (min 59.99, max 60.04) | |||
1920x1080@60 | 60.0 (min 59.97, max 60.03) | |||
2048x1152@60 | 60.0 (min 59.97, max 60.03) | |||
640x480@60 | 59.99 (min 59.02, max 60.01) | 60.0 (min 59.98, max 60.02) | ||
640x480@73 | 72.74 (min 71.61, max 73.51) | 72.81 (min 72.78, max 72.84) | ||
640x480@75 | 74.92 (min 72.47, max 75.12) | 75.0 (min 74.97, max 75.03) | ||
720x400@70 | 70.05 (min 68.93, max 70.46) | 70.08 (min 70.06, max 70.11) | ||
800x600@56 | 56.22 (min 55.32, max 56.26) | 56.25 (min 56.23, max 56.27) | ||
800x600@60 | 60.32 (min 59.57, max 61.09) | 60.32 (min 60.3, max 60.34) | ||
800x600@72 | 72.17 (min 71.0, max 72.57) | 72.19 (min 72.18, max 72.2) | 72.19 (min 71.94, max 72.44) | 72.19 (min 72.18, max 72.19) |
800x600@75 | 74.95 (min 73.77, max 75.01) | 70.95 (min 48.39, max 75.79) | 75.0 (min 74.97, max 75.03) | 75.0 (min 74.99, max 75.01) |
832x624@75 | 74.5 (min 73.33, max 75.42) | 74.55 (min 74.54, max 74.57) | 74.55 (min 74.52, max 74.58) | 74.57 (min 74.56, max 74.58) |
848x480@60 | 60.0 (min 59.99, max 60.01) | 60.0 (min 59.98, max 60.02) |
Table: Display performance (HDMI)
Graphics SGX Driver
Run GLBenchmark and capture performance reported Display rate (Fps), Fill rate, Vertex Throughput, etc. All display outputs (HDMI and LCD) are connected when running these tests
Performance (Fps)
Benchmark | Test Number | am335x-evm: Fps | Test Number | am43xx-gpevm: Fps | Test Number | am57xx-evm: Fps |
GLB25_EgyptTestC24Z16FixedTime test | 2500005.0 | 5.08 (min 2.4, max 13.85) | 2500005.0 | 5.2 (min 2.41, max 14.18) | 2500005.0 | 38.66 (min 21.45, max 59.4) |
GLB25_EgyptTestC24Z16_ETC1 test | 2501001.0 | 6.2 (min 2.17, max 13.99) | 2501001.0 | 6.36 (min 2.21, max 14.41) | 2501001.0 | 45.49 (min 20.88, max 60.47) |
GLB25_EgyptTestC24Z16_ETC1to565 test | 2501401.0 | 6.2 (min 1.02, max 14.36) | 2501401.0 | 6.37 (min 2.2, max 14.4) | 2501401.0 | 45.5 (min 21.02, max 60.05) |
GLB25_EgyptTestC24Z16_PVRTC4 test | 2501101.0 | 6.02 (min 2.36, max 13.81) | 2501101.0 | 6.22 (min 2.15, max 13.96) | 2501101.0 | 45.38 (min 21.13, max 59.92) |
GLB25_EgyptTestC24Z24MS4 test | 2500003.0 | 5.18 (min 1.95, max 11.62) | 2500003.0 | 5.41 (min 1.95, max 11.92) | 2500003.0 | 44.07 (min 20.05, max 59.58) |
GLB25_EgyptTestStandard_inherited test | 2000000.0 | 23.83 (min 15.29, max 36.37) | 2000000.0 | 24.63 (min 15.9, max 37.64) | 2000000.0 | 59.52 (min 59.29, max 59.7) |
Table: GLBenchmark 2.5 Performance
Vertex Throughput
Benchmark | Test Number | am335x-evm: Rate (triangles/sec) | Test Number | am43xx-gpevm: Rate (triangles/sec) | Test Number | am57xx-evm: Rate (triangles/sec) |
GLB25_TriangleTexFragmentLitTestC24Z16 test | 2500511.0 | 2205701.25 | 2500511.0 | 2306408.0 | 2500511.0 | 32949374.0 |
GLB25_TriangleTexTestC24Z16 test | 2500301.0 | 11232186.0 | 2500301.0 | 11852763.0 | 2500301.0 | 105576472.0 |
GLB25_TriangleTexVertexLitTestC24Z16 test | 2500411.0 | 3751958.25 | 2500411.0 | 4220526.5 | 2500411.0 | 39980256.0 |
Table: GLBenchmark 2.5 Vertex Throughput
Pixel Throughput
Benchmark | Test Number | am335x-evm: Rate (texel/sec) | am335x-evm: Fps | Test Number | am43xx-gpevm: Rate (texel/sec) | am43xx-gpevm: Fps | Test Number | am57xx-evm: Rate (texel/sec) | am57xx-evm: Fps |
GLB25_FillTestC24Z16 test | 2500101.0 | 106066112.0 | 4.33 (min 4.18, max 5.02) | 2500101.0 | 108455432.0 | 4.43 (min 4.25, max 5.18) | 2500101.0 | 1440882048.0 | 58.53 (min 52.58, max 59.53) |
Table: GLBenchmark 2.5 Pixel Throughput
Multimedia (Decode)
Run gstreamer pipeline “gst-launch-1.0 playbin uri=file://<Path to stream> video-sink=”kmssink sync=false connector=<connector id>” audio-sink=fakesink” and calculate performance based on the execution time reported. All display display outputs (HDMI and LCD) were connected when running these tests, but playout was forced to LCD via the connector=<connector id> option.
H264
Resolution | am57xx-evm: Fps | am57xx-evm: IVA Freq (MHz) | am57xx-evm: IPU Freq (MHz) |
1080i | 60.6 | 532.0 | |
1080p | 59.5 | 532.0 | |
720p | 59.94 | 532.0 | |
720x480 | 60.0 | 532.0 | |
800x480 | 60.0 | 532.0 |
Table: Gstreamer H264 in AVI Container Decode Performance
MPEG4
Resolution | am57xx-evm: Fps | am57xx-evm: IVA Freq (MHz) | am57xx-evm: IPU Freq (MHz) |
CIF | 60.0 | 532.0 | |
QVGA | 60.0 | 532.0 | |
VGA | 63.75 | 532.0 |
Table: GStreamer MPEG4 in 3GP Container Decode Performance
MPEG2
Resolution | am57xx-evm: Fps | am57xx-evm: IVA Freq (MHz) | am57xx-evm: IPU Freq (MHz) |
1080p | 532.0 | ||
720p | 59.94 | 532.0 |
Table: GStreamer MPEG2 in MP4 Container Decode Performance
Ethernet Driver
PCIe Driver
PCIe-ETH
TCP Window Size(Kbytes) | k2g-evm: Bandwidth (in Mbits/sec) |
8 | 682.96 |
16 | 746.4 |
32 | 964.8 |
64 | 1191.2 |
128 | 1305.6 |
256 | 1355.6 (min 1352.0, max 1359.2) |
Table: ‘
NAND Driver
AM335X-EVM
Buffer size (bytes) | Write UBIFS Throughput (Mbytes/sec) | Write UBIFS CPU Load (%) | Read UBIFS Throughput (Mbytes/sec) | Read UBIFS CPU Load (%) |
102400 | 4.2 | 59.81 | 6.18 | 27.59 |
262144 | 4.2 | 59.14 | 6.15 | 27.0 |
524288 | 4.2 | 59.62 | 6.17 | 27.01 |
1048576 | 4.22 | 59.39 | 6.18 | 27.73 |
5242880 | 4.2 | 58.95 | 6.16 | 27.87 |
Table: ‘
AM43XX-GPEVM
Buffer size (bytes) | Write UBIFS Throughput (Mbytes/sec) | Write UBIFS CPU Load (%) | Read UBIFS Throughput (Mbytes/sec) | Read UBIFS CPU Load (%) |
102400 | 6.95 | 66.31 | 10.45 | 40.57 |
262144 | 6.95 | 66.43 | 10.29 | 40.9 |
524288 | 6.97 | 65.85 | 10.36 | 41.72 |
1048576 | 6.95 | 66.71 | 10.37 | 41.55 |
5242880 | 6.97 | 65.9 | 10.38 | 40.33 |
Table: ‘
OMAPL138-LCDK
Buffer size (bytes) | Write UBIFS Throughput (Mbytes/sec) | Write UBIFS CPU Load (%) | Read UBIFS Throughput (Mbytes/sec) | Read UBIFS CPU Load (%) |
102400 | 1.29 | 100.0 | 1.9 | 100.0 |
262144 | 1.38 | 100.0 | 1.92 | 100.0 |
524288 | 1.37 | 100.0 | 1.92 | 100.0 |
1048576 | 1.38 | 100.0 | 1.93 | 100.0 |
5242880 | 1.38 | 100.0 | 1.89 | 100.0 |
Table: ‘
QSPI Flash Driver
K2G-EVM
Buffer size (bytes) | Write UBIFS Throughput (Mbytes/sec) | Write UBIFS CPU Load (%) | Read UBIFS Throughput (Mbytes/sec) | Read UBIFS CPU Load (%) |
102400 | 0.58 | 76.01 | 22.71 | 11.76 |
262144 | 0.57 | 79.7 | 22.64 | 5.88 |
524288 | 0.57 | 80.64 | 22.78 | 5.88 |
1048576 | 0.57 | 81.0 | 22.61 | 5.88 |
Table: ‘
SPI Flash Driver
K2G-EVM
Buffer size (bytes) | Write UBIFS Throughput (Mbytes/sec) | Write UBIFS CPU Load (%) | Read UBIFS Throughput (Mbytes/sec) | Read UBIFS CPU Load (%) |
102400 | 0.14 | 51.42 | 0.23 | 8.1 |
262144 | 0.14 | 51.48 | 0.23 | 9.07 |
524288 | 0.14 | 51.72 | 0.23 | 10.42 |
1048576 | 0.14 | 51.43 | 0.23 | 7.63 |
Table: ‘
EMMC Driver
AM43XX-GPEVM
Buffer size (bytes) | Write VFAT Throughput (Mbytes/sec) | Write VFAT CPU Load (%) | Read VFAT Throughput (Mbytes/sec) | Read VFAT CPU Load (%) |
102400 | 6.2 | 8.25 | 23.72 | 22.1 |
262144 | 6.03 | 8.55 | 25.18 | 29.5 |
524288 | 6.03 | 8.07 | 25.65 | 20.87 |
1048576 | 5.59 | 7.43 | 25.12 | 18.94 |
5242880 | 6.03 | 8.86 | 24.71 | 18.63 |
Table: ‘
Buffer size (bytes) | Write EXT4 Throughput (Mbytes/sec) | Write EXT4 CPU Load (%) | Read EXT4 Throughput (Mbytes/sec) | Read EXT4 CPU Load (%) |
102400 | 6.0 | 5.92 | 24.62 | 21.33 |
262144 | 6.02 | 6.33 | 23.85 | 17.93 |
524288 | 5.9 | 6.03 | 19.38 | 14.21 |
1048576 | 6.03 | 6.12 | 25.91 | 17.0 |
5242880 | 6.01 | 6.42 | 25.85 | 18.78 |
Table: ‘
Buffer size (bytes) | Write EXT2 Throughput (Mbytes/sec) | Write EXT2 CPU Load (%) | Read EXT2 Throughput (Mbytes/sec) | Read EXT2 CPU Load (%) |
102400 | 5.77 | 7.12 | 25.29 | 21.18 |
262144 | 5.96 | 7.02 | 26.0 | 20.0 |
524288 | 5.95 | 7.47 | 26.4 | 18.16 |
1048576 | 5.96 | 7.23 | 26.4 | 17.3 |
5242880 | 5.83 | 7.33 | 26.2 | 18.05 |
Table: ‘
AM57XX-EVM
Buffer size (bytes) | Write VFAT Throughput (Mbytes/sec) | Write VFAT CPU Load (%) | Read VFAT Throughput (Mbytes/sec) | Read VFAT CPU Load (%) |
102400 | 11.48 | 4.12 | 65.6 | 7.35 |
262144 | 11.45 | 3.89 | 71.86 | 8.33 |
524288 | 11.48 | 4.12 | 74.65 | 9.61 |
1048576 | 11.41 | 4.31 | 74.77 | 8.99 |
5242880 | 11.45 | 3.79 | 74.61 | 9.03 |
Table: ‘
Buffer size (bytes) | Write EXT4 Throughput (Mbytes/sec) | Write EXT4 CPU Load (%) | Read EXT4 Throughput (Mbytes/sec) | Read EXT4 CPU Load (%) |
102400 | 12.11 | 2.78 | 63.65 | 7.32 |
262144 | 12.02 | 3.39 | 76.41 | 8.06 |
524288 | 12.01 | 3.39 | 79.77 | 6.92 |
1048576 | 12.07 | 2.83 | 79.76 | 6.59 |
5242880 | 12.03 | 3.06 | 71.45 | 6.57 |
Table: ‘
Buffer size (bytes) | Write EXT2 Throughput (Mbytes/sec) | Write EXT2 CPU Load (%) | Read EXT2 Throughput (Mbytes/sec) | Read EXT2 CPU Load (%) |
102400 | 11.66 | 3.95 | 69.9 | 5.84 |
262144 | 11.6 | 3.87 | 75.5 | 7.58 |
524288 | 11.67 | 3.63 | 78.49 | 13.43 |
1048576 | 11.58 | 3.99 | 78.54 | 1.61 |
5242880 | 11.59 | 3.5 | 78.51 | 6.49 |
Table: ‘
K2G-EVM
Buffer size (bytes) | Write VFAT Throughput (Mbytes/sec) | Write VFAT CPU Load (%) | Read VFAT Throughput (Mbytes/sec) | Read VFAT CPU Load (%) |
102400 | 19.98 | 24.9 | 39.72 | 16.15 |
262144 | 20.13 | 24.13 | 41.56 | 15.26 |
524288 | 20.08 | 24.62 | 42.58 | 16.73 |
1048576 | 20.05 | 24.57 | 42.62 | 15.45 |
5242880 | 20.0 | 23.42 | 42.61 | 14.69 |
Table: ‘
Buffer size (bytes) | Write EXT4 Throughput (Mbytes/sec) | Write EXT4 CPU Load (%) | Read EXT4 Throughput (Mbytes/sec) | Read EXT4 CPU Load (%) |
102400 | 20.72 | 18.98 | 37.11 | 13.36 |
262144 | 20.74 | 18.02 | 38.08 | 13.45 |
524288 | 20.88 | 17.84 | 40.33 | 7.38 |
1048576 | 20.17 | 17.85 | 40.31 | 13.41 |
5242880 | 20.46 | 17.93 | 39.34 | 12.12 |
Table: ‘
Buffer size (bytes) | Write EXT2 Throughput (Mbytes/sec) | Write EXT2 CPU Load (%) | Read EXT2 Throughput (Mbytes/sec) | Read EXT2 CPU Load (%) |
102400 | 19.71 | 22.47 | 40.38 | 14.68 |
262144 | 20.07 | 21.39 | 42.24 | 14.63 |
524288 | 19.75 | 22.33 | 43.12 | 11.81 |
1048576 | 20.1 | 21.69 | 43.09 | 14.69 |
5242880 | 20.12 | 21.39 | 43.07 | 13.64 |
Table: ‘
SATA Driver
AM57XX-EVM
SATA
Buffer size (bytes) | Write VFAT Throughput (Mbytes/sec) | Write VFAT CPU Load (%) | Read VFAT Throughput (Mbytes/sec) | Read VFAT CPU Load (%) |
102400 | 98.47 | 35.68 | 135.97 | 12.98 |
262144 | 97.9 | 31.29 | 136.06 | 11.81 |
524288 | 99.09 | 31.89 | 135.79 | 12.29 |
1048576 | 98.14 | 30.67 | 135.99 | 11.59 |
5242880 | 98.11 | 31.55 | 136.16 | 11.29 |
Table: ‘
Buffer size (bytes) | Write EXT2 Throughput (Mbytes/sec) | Write EXT2 CPU Load (%) | Read EXT2 Throughput (Mbytes/sec) | Read EXT2 CPU Load (%) |
102400 | 104.68 | 26.15 | 134.82 | 11.6 |
262144 | 105.29 | 26.96 | 134.39 | 11.18 |
524288 | 108.56 | 28.76 | 134.39 | 10.17 |
1048576 | 105.67 | 26.35 | 134.11 | 11.59 |
5242880 | 107.17 | 28.75 | 135.11 | 11.9 |
Table: ‘
Buffer size (bytes) | Write EXT4 Throughput (Mbytes/sec) | Write EXT4 CPU Load (%) | Read EXT4 Throughput (Mbytes/sec) | Read EXT4 CPU Load (%) |
102400 | 123.87 | 24.18 | 133.96 | 12.43 |
262144 | 121.95 | 19.37 | 133.62 | 11.49 |
524288 | 119.86 | 15.94 | 126.78 | 9.6 |
1048576 | 117.01 | 16.05 | 127.82 | 9.83 |
5242880 | 117.12 | 15.53 | 127.99 | 12.45 |
Table: ‘
- Filesize used is : 1G
- SATA II Harddisk used is: Seagate ST3500514NS 500G
mSATA
Buffer size (bytes) | Write EXT4 Throughput (Mbytes/sec) | Write EXT4 CPU Load (%) | Read EXT4 Throughput (Mbytes/sec) | Read EXT4 CPU Load (%) |
102400 | 63.98 | 5.42 | 216.91 | 19.85 |
262144 | 63.91 | 5.07 | 235.85 | 21.25 |
524288 | 63.9 | 4.53 | 251.85 | 22.13 |
1048576 | 63.36 | 4.8 | 259.29 | 21.95 |
5242880 | 60.59 | 4.64 | 261.0 | 22.06 |
Table: ‘
Buffer size (bytes) | Write VFAT Throughput (Mbytes/sec) | Write VFAT CPU Load (%) | Read VFAT Throughput (Mbytes/sec) | Read VFAT CPU Load (%) |
102400 | 61.39 | 20.99 | 220.1 | 22.06 |
262144 | 61.58 | 20.72 | 238.34 | 22.72 |
524288 | 61.31 | 20.32 | 247.71 | 23.26 |
1048576 | 60.79 | 20.7 | 243.87 | 22.85 |
5242880 | 58.33 | 19.3 | 219.34 | 20.95 |
Table: ‘
Buffer size (bytes) | Write EXT2 Throughput (Mbytes/sec) | Write EXT2 CPU Load (%) | Read EXT2 Throughput (Mbytes/sec) | Read EXT2 CPU Load (%) |
102400 | 63.12 | 9.52 | 226.19 | 20.41 |
262144 | 63.23 | 9.31 | 243.11 | 21.3 |
524288 | 63.33 | 8.5 | 253.86 | 21.03 |
1048576 | 76.19 | 9.84 | 259.33 | 21.74 |
5242880 | 63.08 | 7.77 | 257.95 | 23.65 |
Table: ‘
- Filesize used is : 1G
- MSATA Harddisk used is: SMS200S3/30G Kingston mSATA SSD drive
OMAPL138-LCDK
Buffer size (bytes) | Write EXT4 Throughput (Mbytes/sec) | Write EXT4 CPU Load (%) | Read EXT4 Throughput (Mbytes/sec) | Read EXT4 CPU Load (%) |
102400 | 8.65 | 98.1 | 22.11 | 93.82 |
262144 | 10.31 | 97.74 | 25.06 | 96.9 |
524288 | 10.05 | 97.8 | 24.6 | 97.89 |
1048576 | 10.37 | 98.82 | 24.72 | 99.06 |
5242880 | 9.55 | 98.28 | 20.65 | 99.8 |
Table: ‘
Buffer size (bytes) | Write EXT2 Throughput (Mbytes/sec) | Write EXT2 CPU Load (%) | Read EXT2 Throughput (Mbytes/sec) | Read EXT2 CPU Load (%) |
102400 | 12.92 | 97.03 | 23.4 | 99.11 |
262144 | 13.23 | 98.36 | 25.21 | 98.8 |
524288 | 12.27 | 99.18 | 26.44 | 98.99 |
1048576 | 13.69 | 99.22 | 22.32 | 99.57 |
5242880 | 12.32 | 98.12 | 24.41 | 97.9 |
Table: ‘
Buffer size (bytes) | Write VFAT Throughput (Mbytes/sec) | Write VFAT CPU Load (%) | Read VFAT Throughput (Mbytes/sec) | Read VFAT CPU Load (%) |
102400 | 8.86 | 94.39 | 21.86 | 96.62 |
262144 | 10.19 | 91.7 | 24.86 | 96.91 |
524288 | 10.1 | 93.41 | 26.09 | 99.0 |
1048576 | 10.03 | 90.67 | 26.78 | 100.0 |
5242880 | 10.02 | 93.27 | 24.72 | 99.52 |
Table: ‘
MMC/SD Driver
AM335X-EVM
Buffer size (bytes) | Write EXT4 Throughput (Mbytes/sec) | Write EXT4 CPU Load (%) | Read EXT4 Throughput (Mbytes/sec) | Read EXT4 CPU Load (%) |
102400 | 8.0 | 9.95 | 21.24 | 22.06 |
262144 | 9.56 | 12.36 | 22.12 | 18.63 |
524288 | 9.15 | 12.27 | 21.94 | 17.66 |
1048576 | 7.97 | 9.15 | 22.17 | 15.67 |
5242880 | 8.14 | 9.25 | 20.06 | 13.28 |
Table: ‘
Buffer size (bytes) | Write VFAT Throughput (Mbytes/sec) | Write VFAT CPU Load (%) | Read VFAT Throughput (Mbytes/sec) | Read VFAT CPU Load (%) |
102400 | 8.84 | 14.55 | 20.5 | 23.17 |
262144 | 8.57 | 13.78 | 21.22 | 22.15 |
524288 | 8.5 | 12.81 | 21.46 | 19.5 |
1048576 | 9.07 | 14.55 | 21.35 | 19.59 |
5242880 | 9.03 | 15.29 | 20.7 | 17.71 |
Table: ‘
Buffer size (bytes) | Write EXT2 Throughput (Mbytes/sec) | Write EXT2 CPU Load (%) | Read EXT2 Throughput (Mbytes/sec) | Read EXT2 CPU Load (%) |
102400 | 5.05 | 6.92 | 21.13 | 23.71 |
262144 | 4.63 | 6.74 | 21.96 | 19.57 |
524288 | 4.51 | 6.35 | 22.41 | 19.22 |
1048576 | 4.45 | 6.5 | 22.48 | 15.69 |
5242880 | 5.83 | 8.35 | 22.39 | 17.71 |
Table: ‘
The performance numbers were captured using the following:
- SanDisk 8GB MicroSDHC Class 10 Memory Card
- Partition was mounted with async option
AM43XX-GPEVM
Buffer size (bytes) | Write EXT4 Throughput (Mbytes/sec) | Write EXT4 CPU Load (%) | Read EXT4 Throughput (Mbytes/sec) | Read EXT4 CPU Load (%) |
102400 | 8.07 | 8.56 | 21.76 | 15.69 |
262144 | 8.81 | 8.98 | 22.45 | 16.92 |
524288 | 7.8 | 7.99 | 19.19 | 13.81 |
1048576 | 7.62 | 7.59 | 22.31 | 15.24 |
5242880 | 8.31 | 8.99 | 23.01 | 17.28 |
Table: ‘
Buffer size (bytes) | Write VFAT Throughput (Mbytes/sec) | Write VFAT CPU Load (%) | Read VFAT Throughput (Mbytes/sec) | Read VFAT CPU Load (%) |
102400 | 9.47 | 12.57 | 21.1 | 19.31 |
262144 | 9.24 | 12.26 | 21.65 | 18.09 |
524288 | 8.9 | 12.61 | 21.54 | 16.6 |
1048576 | 9.05 | 12.45 | 21.5 | 16.6 |
5242880 | 8.92 | 11.67 | 20.79 | 15.67 |
Table: ‘
The performance numbers were captured using the following:
- Sandisk Ultra 8GB Micro SDHC Flash Card Class10
- Partition was mounted with async option
AM57XX-EVM
Buffer size (bytes) | Write EXT4 Throughput (Mbytes/sec) | Write EXT4 CPU Load (%) | Read EXT4 Throughput (Mbytes/sec) | Read EXT4 CPU Load (%) |
102400 | 9.52 | 2.5 | 39.52 | 4.9 |
262144 | 9.94 | 2.52 | 41.69 | 4.0 |
524288 | 9.05 | 2.76 | 43.5 | 3.15 |
1048576 | 10.01 | 2.86 | 43.38 | 5.13 |
5242880 | 8.73 | 2.26 | 43.07 | 5.1 |
Table: ‘
Buffer size (bytes) | Write EXT2 Throughput (Mbytes/sec) | Write EXT2 CPU Load (%) | Read EXT2 Throughput (Mbytes/sec) | Read EXT2 CPU Load (%) |
102400 | 6.78 | 2.21 | 38.87 | 4.31 |
262144 | 7.1 | 2.28 | 41.34 | 4.34 |
524288 | 6.61 | 2.65 | 42.62 | 3.49 |
1048576 | 6.62 | 2.78 | 43.18 | 3.95 |
5242880 | 7.58 | 3.25 | 43.18 | 5.32 |
Table: ‘
Buffer size (bytes) | Write VFAT Throughput (Mbytes/sec) | Write VFAT CPU Load (%) | Read VFAT Throughput (Mbytes/sec) | Read VFAT CPU Load (%) |
102400 | 6.99 | 2.8 | 39.02 | 5.08 |
262144 | 8.44 | 3.27 | 40.64 | 4.5 |
524288 | 8.03 | 3.56 | 41.09 | 4.17 |
1048576 | 9.45 | 3.88 | 41.08 | 5.69 |
5242880 | 7.46 | 2.86 | 42.07 | 5.06 |
Table: ‘
The performance numbers were captured using the following:
- Sandisk Ultra 8GB Micro SDHC Flash Card Class10
- Partition was mounted with async option
K2G-EVM
Buffer size (bytes) | Write EXT4 Throughput (Mbytes/sec) | Write EXT4 CPU Load (%) | Read EXT4 Throughput (Mbytes/sec) | Read EXT4 CPU Load (%) |
102400 | 5.57 | 4.86 | 17.34 | 6.2 |
262144 | 5.3 | 5.14 | 15.91 | 7.19 |
524288 | 5.2 | 4.95 | 19.73 | 5.69 |
1048576 | 5.56 | 5.14 | 17.01 | 5.37 |
5242880 | 4.95 | 4.66 | 22.2 | 6.82 |
Table: ‘
Buffer size (bytes) | Write EXT2 Throughput (Mbytes/sec) | Write EXT2 CPU Load (%) | Read EXT2 Throughput (Mbytes/sec) | Read EXT2 CPU Load (%) |
102400 | 5.99 | 6.86 | 21.72 | 8.73 |
262144 | 5.49 | 6.23 | 22.38 | 9.3 |
524288 | 5.29 | 5.82 | 22.73 | 7.39 |
1048576 | 6.64 | 7.77 | 22.73 | 7.59 |
5242880 | 5.89 | 6.11 | 22.73 | 8.01 |
Table: ‘
Buffer size (bytes) | Write VFAT Throughput (Mbytes/sec) | Write VFAT CPU Load (%) | Read VFAT Throughput (Mbytes/sec) | Read VFAT CPU Load (%) |
102400 | 5.82 | 7.68 | 21.36 | 10.77 |
262144 | 9.01 | 11.79 | 22.05 | 8.9 |
524288 | 8.41 | 11.15 | 22.32 | 8.14 |
1048576 | 7.39 | 9.53 | 22.08 | 8.65 |
5242880 | 7.96 | 9.93 | 22.05 | 8.82 |
Table: ‘
The performance numbers were captured using the following:
- Sandisk Ultra 8GB Micro SDHC Flash Card Class10
- Partition was mounted with async option
OMAPL138-LCDK
Buffer size (bytes) | Write EXT4 Throughput (Mbytes/sec) | Write EXT4 CPU Load (%) | Read EXT4 Throughput (Mbytes/sec) | Read EXT4 CPU Load (%) |
102400 | 5.24 | 88.08 | 13.91 | 67.36 |
262144 | 5.02 | 71.34 | 14.46 | 64.15 |
524288 | 5.17 | 71.19 | 13.53 | 63.67 |
1048576 | 5.02 | 70.22 | 13.46 | 62.14 |
5242880 | 5.67 | 75.62 | 13.51 | 71.83 |
Table: ‘
Buffer size (bytes) | Write EXT2 Throughput (Mbytes/sec) | Write EXT2 CPU Load (%) | Read EXT2 Throughput (Mbytes/sec) | Read EXT2 CPU Load (%) |
102400 | 2.96 | 39.99 | 15.4 | 69.7 |
262144 | 3.09 | 30.86 | 15.89 | 65.53 |
524288 | 3.11 | 29.77 | 16.06 | 63.58 |
1048576 | 3.28 | 31.76 | 16.15 | 63.07 |
5242880 | 3.34 | 31.39 | 15.47 | 64.61 |
Table: ‘
Buffer size (bytes) | Write VFAT Throughput (Mbytes/sec) | Write VFAT CPU Load (%) | Read VFAT Throughput (Mbytes/sec) | Read VFAT CPU Load (%) |
102400 | 4.1 | 60.98 | 14.75 | 73.75 |
262144 | 4.13 | 53.75 | 13.7 | 73.51 |
524288 | 4.07 | 52.91 | 14.25 | 63.7 |
1048576 | 4.05 | 56.39 | 14.59 | 66.34 |
5242880 | 3.96 | 54.7 | 13.4 | 65.7 |
Table: ‘
- 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 | omapl138-lcdk |
---|---|---|---|---|
copy_102400_throughput (MBytes/sec) | 18.62 | 26.30 | 170.63 | 0.45 |
copy_1048576_throughput (MBytes/sec) | 18.33 | 26.18 | 160.08 | 0.45 |
copy_5242880_throughput (MBytes/sec) | 18.32 | 25.30 | 162.25 | |
read_102400_cpuload (%) | 72.3 | 46.26 | 37.5 | 4.37 |
read_102400_throughput (MBytes/sec) | 12.96 | 30.22 | 222.37 | 0.99 |
read_1048576_cpuload (%) | 74.5 | 45.89 | 30.49 | 4.55 |
read_1048576_throughput (MBytes/sec) | 13.29 | 30.18 | 208.65 | 0.99 |
read_5242880_cpuload (%) | 70.0 | 46.18 | 31.33 | |
read_5242880_throughput (MBytes/sec) | 13.3 | 30.18 | 218.63 | |
write_102400_cpuload (%) | 64.4 | 51.11 | 53.19 | 4.42 |
write_102400_throughput (MBytes/sec) | 19.9 | 29.62 | 142.47 | 0.84 |
write_1048576_cpuload (%) | 39.55 | 50.22 | 52.45 | 4.73 |
write_1048576_throughput (MBytes/sec) | 21.21 | 29.53 | 142.81 | 0.84 |
write_5242880_cpuload (%) | 35.17 | 51.00 | 51.49 | |
write_5242880_throughput (MBytes/sec) | 21.02 | 29.29 | 146.73 |
Table: ‘
USBHOST / host USBHOST_L_PERF_VFAT_0002 | am335x-evm | am43xx-gpevm | am57xx-evm | omapl138-lcdk |
---|---|---|---|---|
copy_102400_throughput (MBytes/sec) | 18.07 | 26.52 | 151.9 | 0.44 |
copy_262144_throughput (MBytes/sec) | 17.76 | 25.8 | 150.2 | 0.45 |
read_102400_cpuload (%) | 72.7 | 46.94 | 31.0 | 5.29 |
read_102400_throughput (MBytes/sec) | 12.96 | 30.35 | 207.9 | 0.99 |
read_262144_cpuload (%) | 54.11 | 47.67 | 28.8 | 4.87 |
read_262144_throughput (MBytes/sec) | 13.34 | 30.31 | 210.2 | 0.99 |
write_102400_cpuload (%) | 65.43 | 49.27 | 52.4 | 7.85 |
write_102400_throughput (MBytes/sec) | 19.91 | 29.98 | 140.8 | 0.82 |
write_262144_cpuload (%) | 46.9 | 49.93 | 51.3 | 6.66 |
write_262144_throughput (MBytes/sec) | 20.69 | 29.89 | 140.5 | 0.83 |
Table: ‘
USB Mass Storage Class Slave Driver
# dd if=/dev/zero of=/dev/shm/50M bs=1M count=50"
Insert the USB mass storage gadget with /dev/shm/50M
as the backing
storage:
# insmod g_mass_storage.ko file=/dev/shm/50M
For test setup details refer to USB MSC device setup
AM335X USB SLAVE DEVICE PERFORMANCE
Bytes Transferred (MB)”/dev/shm/50M” file as storage device | Number of files transferred | Total Bytes transferred (MB) | Transfer Rate (MB/sec) |
---|---|---|---|
50 | 1 | 50 | 17.5 |
Table: AM335X USB Slave Read Performance values
Bytes Transferred (MB)”/dev/shm/50M” file as storage device | Number of files transferred | Total Bytes transferred (MB) | Transfer Rate (MB/sec) |
---|---|---|---|
50 | 1 | 50 | 4.0 |
Table: AM335X USB Slave Write Performance values
AM43XX GPEVM USB SLAVE DEVICE PERFORMANCE
Bytes Transferred (MB)”/dev/shm/50M” file as storage device | Number of files transferred | Total Bytes transferred (MB) | Transfer Rate (MB/sec) |
---|---|---|---|
50 | 1 | 50 | 34.6 |
Table: AM43XX USB Slave Read Performance values
Bytes Transferred (MB)”/dev/shm/50M” file as storage device | Number of files transferred | Total Bytes transferred (MB) | Transfer Rate (MB/sec) |
---|---|---|---|
50 | 1 | 50 | 20.3 |
Table: AM43XX USB Slave WritePerformance values
AM57XX GPEVM USB SLAVE DEVICE PERFORMANCE
Bytes Transferred (MB)”/dev/shm/50M” file as storage device | Number of files transferred | Total Bytes transferred (MB) | Transfer Rate (MB/sec) |
---|---|---|---|
50 | 1 | 50 | 30.6 |
Table: AM57XX USB Slave Read Performance values
Bytes Transferred (MB)”/dev/shm/50M” file as storage device | Number of files transferred | Total Bytes transferred (MB) | Transfer Rate (MB/sec) |
---|---|---|---|
50 | 1 | 50 | 21.7 |
Table: AM57XX USB Slave WritePerformance values
OMAPL138-LCDK USB SLAVE DEVICE PERFORMANCE
Bytes Transferred (MB)”/dev/shm/50M” file as storage device | Number of files transferred | Total Bytes transferred (MB) | Transfer Rate (MB/sec) |
---|---|---|---|
50 | 1 | 50 | 10.1 |
Table: OMAPL138-LCDK USB Slave Read Performance values
Bytes Transferred (MB)”/dev/shm/50M” file as storage device | Number of files transferred | Total Bytes transferred (MB) | Transfer Rate (MB/sec) |
---|---|---|---|
50 | 1 | 50 | 3.4 |
Table: OMAPL138-LCDK USB Slave WritePerformance values
USB CDC/RNDIS Slave Driver
Performance benchmarks were collected using the Iperf tool and default options were used to collect the throughput numbers.
AM335X USB CDC Performance
TCP Window Size(in KBytes) | Interval (in Seconds) | Bandwidth (Mbits/Sec) |
---|---|---|
16 | 60 | 59.5 |
32 | 60 | 58.8 |
64 | 60 | 59.0 |
128 | 60 | 57.5 |
Table: AM335X USB CDC Performance values - Client
AM43XX GPEVM USB CDC Performance
TCP Window Size(in KBytes) | Interval (in Seconds) | Bandwidth (Mbits/Sec) |
---|---|---|
16 | 60 | 166.1 |
32 | 60 | 165.5 |
64 | 60 | 139.6 |
128 | 60 | 172.8 |
Table: AM43XX GPEVM USB CDC Performance values - Client
AM57XX USB CDC Performance
TCP Window Size(in KBytes) | Interval (in Seconds) | Bandwidth (Mbits/Sec) |
---|---|---|
16 | 60 | 245.9 |
32 | 60 | 253.0 |
64 | 60 | 254.0 |
128 | 60 | 257.0 |
Table: AM57XX USB CDC Performance values - Client
K2G-EVM USB CDC Performance
TCP Window Size(in KBytes) | Interval (in Seconds) | Bandwidth (Mbits/Sec) |
---|---|---|
16 | 60 | 181.0 |
32 | 60 | 177.8 |
64 | 60 | 183.1 |
128 | 60 | 195.8 |
Table: K2G-EVM USB CDC Performance values - Client
OMAPL138-LCDK USB CDC Performance
TCP Window Size(in KBytes) | Interval (in Seconds) | Bandwidth (Mbits/Sec) |
---|---|---|
16 | 60 | 14.8 |
32 | 60 | 15.3 |
64 | 60 | 21.4 |
128 | 60 | 25.5 |
Table: OMAPL138-LCDK USB CDC Performance values - Client
AM335X USB RNDIS Performance
TCP Window Size(in KBytes) | Interval (in Seconds) | Bandwidth (Mbits/Sec) |
---|---|---|
16 | 60 | 41.6 |
32 | 60 | 41.3 |
64 | 60 | 41.3 |
128 | 60 | 39.5 |
Table: AM335XX USB RNDIS Performance values - Client
AM43XX GPEVM USB RNDIS Performance
TCP Window Size(in KBytes) | Interval (in Seconds) | Bandwidth (Mbits/Sec) |
---|---|---|
16 | 60 | 137.5 |
32 | 60 | 137.8 |
64 | 60 | 140.4 |
128 | 60 | 145.1 |
Table: AM43XX GPEVM USB RNDIS Performance values - Client
AM57XX USB RNDIS Performance
TCP Window Size(in KBytes) | Interval (in Seconds) | Bandwidth (Mbits/Sec) |
---|---|---|
16 | 60 | 218.0 |
32 | 60 | 207.0 |
64 | 60 | 219.2 |
128 | 60 | 245.1 |
Table: AM57XX USB RNDIS Performance values - Client
OMAPL138-LCDK GPEVM USB RNDIS Performance
TCP Window Size(in KBytes) | Interval (in Seconds) | Bandwidth (Mbits/Sec) |
---|---|---|
16 | 60 | 15.8 |
32 | 60 | 13.6 |
64 | 60 | 13.6 |
128 | 60 | 15.1 |
Table: OMAPL138-LCDK USB RNDIS Performance values - Client
CRYPTO Driver
OpenSSL Performance
CRYPTO / host / openssl_performance_tests Crypto_M_PERF_openssl_perf_hardware_acceleration | am335x-evm | am43xx-gpevm | am57xx-evm |
---|---|---|---|
aes-128-cbc_cpu_util (%) | 53.0 | 52.0 | 51.0 |
aes-128-cbc_system_time (s) | 7.83 | 7.72 | 7.46 |
aes-128-cbc_user_time (s) | 0.33 | 0.29 | 0.29 |
aes-128-cbc_throughput_16_byte (KBytes/s) | 2618.10 | 1285.91 | 2728.38 |
aes-128-cbc_throughput_64_byte (KBytes/s) | 7359.20 | 4473.96 | 9228.57 |
aes-128-cbc_throughput_256_byte (KBytes/s) | 4719.39 | 4549.72 | 4907.43 |
aes-128-cbc_throughput_1024_byte (KBytes/s) | 11510.76 | 12902.74 | 13863.59 |
aes-128-cbc_throughput_8192_byte (KBytes/s) | 23582.91 | 22599.0 | 30165.67 |
aes-192-cbc_cpu_util (%) | 53.0 | 53.0 | 53.0 |
aes-192-cbc_system_time (s) | 7.72 | 7.7 | 7.48 |
aes-192-cbc_user_time (s) | 0.38 | 0.34 | 0.53 |
aes-192-cbc_throughput_16_byte (KBytes/s) | 2547.03 | 1291.43 | 2704.12 |
aes-192-cbc_throughput_64_byte (KBytes/s) | 7037.41 | 4332.93 | 9028.78 |
aes-192-cbc_throughput_256_byte (KBytes/s) | 4775.05 | 4566.87 | 4822.95 |
aes-192-cbc_throughput_1024_byte (KBytes/s) | 11949.14 | 12920.15 | 13564.93 |
aes-192-cbc_throughput_8192_byte (KBytes/s) | 22852.56 | 22410.58 | 30029.14 |
aes-256-cbc_cpu_util (%) | 53.0 | 52.0 | 51.0 |
aes-256-cbc_system_time (s) | 7.8 | 7.64 | 7.23 |
aes-256-cbc_user_time (s) | 0.25 | 0.33 | 0.46 |
aes-256-cbc_throughput_16_byte (KBytes/s) | 2544.62 | 1253.87 | 2660.18 |
aes-256-cbc_throughput_64_byte (KBytes/s) | 6971.33 | 4229.82 | 8711.68 |
aes-256-cbc_throughput_256_byte (KBytes/s) | 4755.63 | 4513.28 | 4801.37 |
aes-256-cbc_throughput_1024_byte (KBytes/s) | 11919.02 | 12654.25 | 13875.54 |
aes-256-cbc_throughput_8192_byte (KBytes/s) | 22637.33 | 21940.91 | 30157.48 |
des-cbc_cpu_util (%) | 98.0 | 34.0 | 20.0 |
des-cbc_system_time (s) | 14.63 | 5.07 | 2.92 |
des-cbc_user_time (s) | 0.26 | 0.21 | 0.14 |
des-cbc_throughput_16_bytes (KBytes/s) | 2550.70 | 384.94 | 309.7 |
des-cbc_throughput_64_bytes (KBytes/s) | 6918.89 | 1526.29 | 1157.99 |
des-cbc_throughput_256_bytes (KBytes/s) | 11626.50 | 4176.55 | 3913.05 |
des-cbc_throughput_1024_bytes (KBytes/s) | 13944.15 | 10096.98 | 9137.15 |
des-cbc_throughput_8192_bytes (KBytes/s) | 14084.78 | 16048.13 | 14811.14 |
des3_cpu_util (%) | 97.0 | 34.0 | 19.0 |
des3_system_time (s) | 14.64 | 5.1 | 2.73 |
des3_user_time (s) | 0.19 | 0.15 | 0.21 |
des3_throughput_16_bytes (KBytes/s) | 2071.46 | 378.36 | 308.61 |
des3_throughput_64_bytes (KBytes/s) | 4062.38 | 1530.01 | 1161.83 |
des3_throughput_256_bytes (KBytes/s) | 5182.46 | 4177.58 | 3847.17 |
des3_throughput_1024_bytes (KBytes/s) | 5051.61 | 10106.88 | 8784.55 |
des3_throughput_8192_bytes (KBytes/s) | 5815.29 | 16042.67 | 14508.03 |
md5_cpu_util (%) | 77.0 | 75.0 | 76.0 |
md5_system_time (s) | 9.41 | 9.1 | 9.37 |
md5_user_time (s) | 2.35 | 2.36 | 2.07 |
md5_throughput_16_bytes (KBytes/s) | 450.38 | 591.81 | 841.65 |
md5_throughput_64_bytes (KBytes/s) | 1741.31 | 2359.04 | 3318.04 |
md5_throughput_256_bytes (KBytes/s) | 3317.25 | 4292.52 | 4604.07 |
md5_throughput_1024_bytes (KBytes/s) | 9480.53 | 10861.57 | 12864.85 |
md5_throughput_8192_bytes (KBytes/s) | 35820.89 | 41730.05 | 53581.14 |
sha1_cpu_util (%) | 77.0 | 76.0 | 73.0 |
sha1_system_time (s) | 9.04 | 9.63 | 9.29 |
sha1_user_time (s) | 2.71 | 1.9 | 1.77 |
sha1_throughput_16_bytes (KBytes/s) | 409.02 | 543.48 | 779.83 |
sha1_throughput_64_bytes (KBytes/s) | 1574.89 | 2130.22 | 3057.05 |
sha1_throughput_256_bytes (KBytes/s) | 3148.12 | 3957.93 | 4147.71 |
sha1_throughput_1024_bytes (KBytes/s) | 9346.05 | 10750.29 | 13415.08 |
sha1_throughput_8192_bytes (KBytes/s) | 36315.14 | 41517.06 | 53936.13 |
Table: ‘
time -v openssl speed -elapsed -evp aes-128-cbc
IPSec Performance
Note: queue_len is set to 300 and software fallback threshold set to 9 to enable software support for optimal performance
Hardware Crypto-based IPSec Throughput | am335x-evm | am43xx-gpevm | am57xx-evm |
---|---|---|---|
udp_aes128_sha1 (Mbps) | 57.4 | 62.0 | 148.2 |
udp_aes192_sha1 (Mbps) | 55.6 | 65.8 | 139.2 |
udp_aes256_sha1 (Mbps) | 55.6 | 63.8 | 141.2 |
Table: ‘
DCAN Driver
Performance and Benchmarks not available in this release.
2.2.2. RT Kernel Performance Guide¶
Read This First
All performance numbers provided in this document are gathered using following Evaluation Modules unless otherwise specified.
Name | Description |
---|---|
AM335x | AM335x Evaluation Module rev 1.5B with ARM running at 1000MHz, DDR3-400 (400MHz/800 MT/S), TMDXEVM3358 |
AM437x-gpevm | AM437x-gpevm Evaluation Module rev 1.5A with ARM running at 1000MHz, DDR3-400 (400MHz/800 MT/S), TMDSEVM437X |
AM572x IDK | AM57xx Evaluation Module rev A2 with ARM running at 1500MHz, DDR3L-533 (533 MHz/1066 MT/S), TMDXIDK5278 |
K2HK EVM | K2 Hawkings Evaluation Module rev 40 with ARM running at 1200MHz, DDR3-1600 (800 MHz/1600 MT/S), EVMK2H |
K2G EVM | K2 Galileo Evaluation Module rev C, DDR3-1333 (666 MHz/1333 MT/S), EVMK2G |
Table: Evaluation Modules
About This Manual
This document provides performance data for each of the device drivers which are part of the LCPD Core SDK package. This document should be used in conjunction with release notes and user guides provided with the LCPD Core SDK package for information on specific issues present with drivers included in a particular release.
If You Need Assistance
For further information or to report any problems, contact http://community.ti.com/ or http://support.ti.com/
Linux Kernel
System Benchmarks
Dhrystone
ARM Benchmarks / host Dhrystone_S_PERF_HostSide | am574x-idk |
---|---|
cpu_clock (MHz) | 1000 |
dhrystone_per_mhz (DMIPS/MHz) | 3.45 |
dhrystone_per_second (DhrystoneP) | 6060606.0 |
Table: Dhrystone Benchmark
Whestone
ARM Benchmarks / host Whetstone_S_PERF_HostSide | am574x-idk |
---|---|
whetstone (MIPS) | 2500.0 |
Table: Whestone Benchmark
Linpack
ARM Benchmarks / host Linpack_S_PERF_HostSide | am574x-idk |
---|---|
linpack (Kflops | 687010.0 |
Table: Linpack Benchmark
NBench
ARM Benchmarks / host NBench_S_PERF_HostSide | am574x-idk |
---|---|
assignment (Iterations) | 11.39 |
fourier (Iterations) | 8249.1 |
fp_emulation (Iterations) | 112.66 |
huffman (Iterations) | 934.14 |
idea (Iterations) | 2917.0 |
lu_decomposition (Iterations) | 551.29 |
neural_net (Iterations) | 14.75 |
numeric_sort (Iterations) | 469.16 |
string_sort (Iterations) | 92.96 |
Table: NBench Benchmarks
Stream
ARM Benchmarks / host Stream_1_core_S_PERF_Hostside | am574x-idk |
---|---|
add (MB/s) | 2840.7 |
copy (MB/s) | 3072.0 |
scale (MB/s) | 3168.4 |
triad (MB/s) | 2960.1 |
Table: Stream Benchmarks
Maximum Latency under different use cases
Shield (dedicated core) Case
shield_shell()
{
create_cgroup nonrt 0
create_cgroup rt 1
for pid in $(cat /sys/fs/cgroup/tasks); do /bin/echo $pid > /sys/fs/cgroup/nonrt/tasks; done
/bin/echo $$ > /sys/fs/cgroup/rt/tasks
}
Use Case | am574x-idk: latency |
---|---|
L_PERF_SHIELD_SMP_1080ENC | 47.0 |
L_PERF_SHIELD_SMP_1080ENCDEC | 51.0 |
L_PERF_SHIELD_SMP_GRAPHICS | 45.0 |
L_PERF_SHIELD_SMP_HACKBENCH | 47.0 |
L_PERF_SHIELD_SMP_MEM | 36.0 |
L_PERF_SHIELD_SMP_NET | 27.0 |
L_PERF_SHIELD_SMP_NO_LOAD | 32.0 |
L_PERF_SHIELD_SMP_STRESS_LOAD | 46.0 |
L_PERF_SHIELD_SMP_UART | 49.0 |
L_PERF_SHIELD_SMP_USB | 48.0 |
L_PERF_SHIELD_SMP_USB_NET | 54.0 |
Table: Max Latency for shielded use cases
OSADL Test
Latency test used by https://www.osadl.org/ Command: “cyclictest -l100000000 -m -n -a0 -t1 -p99 -i200 -h400 -q”
am574x-idk
# Total: 100000000
# Min Latencies: 00007
# Avg Latencies: 00011
# Max Latencies: 00038
# Histogram Overflows: 00000
# Histogram Overflow at cycle number:
# Histogram
000000 000000
000001 000000
000002 000000
000003 000000
000004 000000
000005 000000
000006 000000
000007 000006
000008 006778
000009 5852853
000010 2587813
000011 53313381
000012 33663230
000013 2055609
000014 515347
000015 229216
000016 1376865
000017 170278
000018 042501
000019 022922
000020 007325
000021 055718
000022 065202
000023 015769
000024 011486
000025 000835
000026 000640
000027 000700
000028 000490
000029 001261
000030 001190
000031 000909
000032 000830
000033 000525
000034 000214
000035 000074
000036 000019
000037 000010
000038 000004
000039 000000
000040 000000
Boot-time Measurement
Sensor Capture
Capture video frames (MMAP buffers) with v4l2c-ctl and record the reported fps
Resolution | Format | am574x-idk: Fps | am574x-idk: Sensor |
1600x1200 | ba81 | 14.56 (min 14.56, max 14.57) | ov2659 |
1600x1200 | rgb4 | 14.56 (min 14.56, max 14.57) | ov2659 |
320x240 | ba81 | 43.78 (min 43.7, max 44.0) | ov2659 |
320x240 | rgb4 | 43.78 (min 43.7, max 44.0) | ov2659 |
Table: Sensor Capture
Display Driver
Set different display modes using modetest’s sync plus flip option (modetest -v -s ...)
Mode | am574x-idk:Fps |
---|---|
1920x1200@60 | 60.0 (min 59.9, max 60.11) |
Table: Display performance (LCD)
Mode | am574x-idk: Fps |
---|---|
1024x576@60 | 59.97 (min 59.86, max 60.08) |
1024x768@60 | 60.0 (min 59.93, max 60.1) |
1024x768@70 | 70.07 (min 69.99, max 70.18) |
1024x768@75 | 75.03 (min 74.9, max 75.14) |
1152x864@75 | 75.0 (min 74.83, max 75.19) |
1280x1024@60 | 60.02 (min 59.91, max 60.11) |
1280x1024@75 | 75.02 (min 74.92, max 75.13) |
1280x720@60 | 60.0 (min 59.89, max 60.14) |
1280x768@60 | 59.87 (min 59.75, max 59.98) |
1280x768@75 | 74.89 (min 74.78, max 75.06) |
1280x800@60 | 59.81 (min 59.76, max 59.87) |
1280x800@75 | 74.93 (min 74.84, max 75.04) |
1280x960@60 | 60.0 (min 59.93, max 60.1) |
1360x768@60 | 59.95 (min 59.87, max 60.06) |
1400x1050@60 | 59.98 (min 59.93, max 60.05) |
1400x1050@75 | 74.87 (min 74.74, max 74.99) |
1440x900@60 | 59.89 (min 59.83, max 59.95) |
1440x900@75 | 74.98 (min 74.89, max 75.1) |
1600x1200@60 | 60.0 (min 59.89, max 60.11) |
1600x1200@65 | 65.0 (min 64.88, max 65.12) |
1600x900@60 | 60.0 (min 59.92, max 60.07) |
1680x1050@60 | 59.95 (min 59.87, max 60.02) |
1680x945@60 | 60.02 (min 59.94, max 60.08) |
1920x1080@60 | 60.0 (min 59.84, max 60.19) |
2048x1152@60 | 60.0 (min 59.93, max 60.1) |
640x480@60 | 60.0 (min 59.74, max 60.26) |
640x480@73 | 72.81 (min 72.73, max 72.94) |
640x480@75 | 75.0 (min 74.77, max 75.16) |
720x400@70 | 70.08 (min 69.99, max 70.21) |
800x600@56 | 56.25 (min 56.15, max 56.35) |
800x600@60 | 60.32 (min 60.14, max 60.51) |
800x600@72 | 72.19 (min 72.07, max 72.35) |
800x600@75 | 75.0 (min 74.91, max 75.13) |
832x624@75 | 74.55 (min 74.44, max 74.69) |
848x480@60 | 60.0 (min 59.96, max 60.05) |
Table: Display performance (HDMI)
Graphics SGX Driver
Run GLBenchmark and capture performance reported Display rate (Fps), Fill rate, Vertex Throughput, etc. All display outputs (HDMI and LCD) are connected when running these tests
Performance (Fps)
Benchmark | Test Number | am574x-idk: Fps |
GLB25_EgyptTestC24Z16FixedTime test | 2500005.0 | 33.04 (min 18.74, max 57.37) |
GLB25_EgyptTestC24Z16_ETC1 test | 2501001.0 | 39.83 (min 18.37, max 60.37) |
GLB25_EgyptTestC24Z16_ETC1to565 test | 2501401.0 | 39.8 (min 18.29, max 60.08) |
GLB25_EgyptTestC24Z16_PVRTC4 test | 2501101.0 | 39.55 (min 17.83, max 60.42) |
GLB25_EgyptTestC24Z24MS4 test | 2500003.0 | 35.73 (min 16.86, max 60.01) |
GLB25_EgyptTestStandard_inherited test | 2000000.0 | 59.99 (min 58.78, max 60.27) |
Table: GLBenchmark 2.5 Performance
Vertex Throughput
Benchmark | Test Number | am574x-idk: Rate (triangles/sec) |
GLB25_TriangleTexFragmentLitTestC24Z16 test | 2500511.0 | 20116708.0 |
GLB25_TriangleTexTestC24Z16 test | 2500301.0 | 89445160.0 |
GLB25_TriangleTexVertexLitTestC24Z16 test | 2500411.0 | 24012782.0 |
Table: GLBenchmark 2.5 Vertex Throughput
Pixel Throughput
Benchmark | Test Number | am574x-idk: Rate (texel/sec) | am574x-idk: Fps |
GLB25_FillTestC24Z16 test | 2500101.0 | 1131143808.0 | 45.94 (min 43.28, max 47.21) |
Table: GLBenchmark 2.5 Pixel Throughput
Multimedia (Decode)
Run gstreamer pipeline “gst-launch-1.0 playbin uri=file://<Path to stream> video-sink=”kmssink sync=false connector=<connector id>” audio-sink=fakesink” and calculate performance based on the execution time reported. All display display outputs (HDMI and LCD) were connected when running these tests, but playout was forced to LCD via the connector=<connector id> option.
H264
Resolution | am574x-idk: Fps | IVA Freq (MHz) | IPU Freq (MHz) |
1080p | 60.0 | ||
720p | 59.94 | ||
720x480 | 61.13 | ||
800x480 | 62.3 |
Table: Gstreamer H264 in AVI Container Decode Performance
Resolution | am574x-idk: Fps | IVA Freq (MHz) | IPU Freq (MHz) |
1080p | 59.5 | ||
720p | 59.94 | ||
720x480 | 60.0 | ||
800x480 | 60.0 | ||
CIF | 60.0 |
Table: Gstreamer H264 in MP4 Container Decode Performance
MPEG4
Resolution | am574x-idk: Fps | IVA Freq (MHz) | IPU Freq (MHz) |
720p | 59.94 | ||
VGA | 60.0 |
Table: GStreamer MPEG4 in MP4 Container Decode Performance
Resolution | am574x-idk: Fps | IVA Freq (MHz) | IPU Freq (MHz) |
720x576 | 61.11 | ||
VGA | 63.75 |
Table: GStreamer MPEG4 in AVI Container Decode Performance
Resolution | am574x-idk: Fps | IVA Freq (MHz) | IPU Freq (MHz) |
CIF | 60.0 | ||
QVGA | 60.0 | ||
VGA | 63.75 |
Table: GStreamer MPEG4 in 3GP Container Decode Performance
MPEG2
Resolution | am574x-idk: Fps | IVA Freq (MHz) | IPU Freq (MHz) |
720p | 59.94 |
Table: GStreamer MPEG2 in MP4 Container Decode Performance
Ethernet Driver
USB Driver
XHCI Host controller
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
QSPI Flash Driver
AM574x-IDK
Buffer size (bytes) | Write UBIFS Throughput (Mbytes/sec) | Write UBIFS CPU Load (%) | Read UBIFS Throughput (Mbytes/sec) | Read UBIFS CPU Load (%) |
102400 | 0.49 | 75.19 | 15.36 | 29.63 |
262144 | 0.48 | 74.42 | 15.5 | 24.0 |
524288 | 0.48 | 72.49 | 14.94 | 22.22 |
1048576 | 0.48 | 72.38 | 15.01 | 24.0 |
Table: ‘
SPI Flash Driver
K2HK-EVM
EMMC Driver
AM574X-IDK
Buffer size (bytes) | Write EXT4 Throughput (Mbytes/sec) | Write EXT4 CPU Load (%) | Read EXT4 Throughput (Mbytes/sec) | Read EXT4 CPU Load (%) |
102400 | 27.17 | 21.63 | 56.9 | 22.55 |
262144 | 27.12 | 21.41 | 66.09 | 22.68 |
524288 | 26.41 | 22.52 | 70.24 | 22.64 |
1048576 | 26.34 | 21.27 | 73.03 | 25.0 |
5242880 | 26.46 | 22.32 | 72.39 | 24.65 |
Table: ‘
SATA Driver
MMC/SD Driver
AM574X-IDK
Buffer size (bytes) | Write EXT4 Throughput (Mbytes/sec) | Write EXT4 CPU Load (%) | Read EXT4 Throughput (Mbytes/sec) | Read EXT4 CPU Load (%) |
102400 | 13.73 | 11.34 | 70.05 | 26.12 |
262144 | 13.88 | 11.35 | 74.59 | 25.63 |
524288 | 12.62 | 10.84 | 69.72 | 17.63 |
1048576 | 12.77 | 10.29 | 73.11 | 20.96 |
5242880 | 14.64 | 14.48 | 82.56 | 27.31 |
Table: ‘
- 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 05.xx Releases¶
2.4.1.1. Processor SDK 05.00¶
This is the first release for 2018 LTS (Kernel: 4.14, U-boot: 2018.01, gcc: 7.2.1 and Yocto: 2.4 (rocko)).
With Yocto migration, several open source components (Qt, Wayland, Weston, GStreamer, iPerf, etc.) are all upgraded. For the exact versions of the new components, please refer to the Software Manifest., and for any migration issues, refer to the corresponding component’s release notes, and Processor SDK Known Issues list.
Following are major compatability changes for TI drivers, components.
- IPC
- Remoteproc core
- RPMSG_VIRTIO is no longer automatically selected by remoteproc platform drivers, has to be enabled specifically in defconfigs
- The RSC_CUSTOM remoteproc custom resource type has been replaced with two new RSC_PRELOAD_VENDOR and RSC_POSTLOAD_VENDOR resource types.
- Two new debugfs variables “resource_table” and “carveout_memories” are added to print the resource table and carveout memories used by a remoteproc
- Error recovery with virtio-rpmsg-bus stack is broken on Upstream vanilla 4.14 kernel. Error recovery is supported only on TI kernels.
- PRUSS remoteproc
- The PRUSS remoteproc bindings have been revised significantly to improve scalability and flexibility
- New child nodes are added to represent the CFG, IEP and MII_RT sub-modules.
- Default firmware names are moved from driver to DT
- Client users will require a new “prus” mandatory property instead of the previous “pruss” property
- “ti,pruss-gp-mux-sel” property is removed from PRU nodes and added as an optional property to client nodes.
- “label” property is dropped from PRU nodes
- “interrupts” and “interrupt-names” properties were moved from INTC node to their parent node.
Client user API has changed to acquire and use a PRU core
- Keystone_remoteproc
- The “label” binding property is dropped from the driver bindings, and is replaced with an alias using the stem “rproc”
- The “ti,sci-id” property for K2G DSP nodes is also dropped.
- The keystone-dsp-mem driver is converted to a regular module from a platform driver, so the dspmem nodes are dropped. The module uses revised bindings.
- Userspace
- New IPC and CMEM releases are needed to use with 4.14 kernel due to difference in AF_RPMSG family number and other kernel API changes
iperf2 is now replaced by iperf3
Keystone-2: PA/PA2 is not supported in NetCP driver.
Keystone-2: NWAL is not supported
MMC: AM57x uses sdhci-omap.c driver instead of omap_hsmmc.c driver
PCIe: The way in which PCIe endpoint is configured has changed. More details can be found from PCIe End Point Driver.
AM335x ICE v2: A new DT file (am335x-ice-v2-prueth.dts) is added to support PRUSS Ethernet ports. The following configurations are supported.
am335x-ice-v2.dts: Both ports are CPSW controlled (Board jumpers J18 and J19 at RMII).
am335x-ice-v2-prueth.dts: Both ports are PRUSS controlled (Board jumpers J18 and J19 at MII).
Also note that there is an update to the u-boot env script to select DTB file
name based on jumper settings. So user needs to do following when upgrading
to the latest u-boot from this release:
>env default -a
>saveenv
>reset
2.4.2. Processor SDK 04.xx Releases¶
2.4.2.1. Processor SDK 04.03¶
- Added am572x-idk-pps.dts and am571x-idk-pps.dts which are extensions of the am572x-idk.dts abd an571x-idk.dts respectively. The new DTS enables the PPS IO pins (sync/latch) and PTP BC bindings at the modified AM572x-idk and AM571x-idks, where the USB/LCD Display are disabled
- Camera support for AM572x GPEVM is not in the default DTB.Use am57xx-evm*-cam-mt9t111.dtb for mt9t111 camera, and am57xx-evm*-cam-ov10635.dtb for ov10635 camera
- Processor SDK documentation is now created from reStructuredText sources using Sphinx, and hosted on software-dl.ti.com instead of processors wiki
- For AM57xx, with the addition of new components in the filesystem, the minimum SD-card size is 8 GB (4 GB SD cards no longer work).
- For am57xx devices, the location of the saved U-Boot environment has moved from the external SD card to eMMC. Because of this change, the state of the U-Boot environment can no longer be guaranteed on a newly created SD card. The uEnv.txt file located on the boot partition of the SD card contains the logic to compensate for this change. Upon the initial boot, the environment will be reset to the default, and the empty file ”.psdk_setup” will be created on the boot partition. Subsequent boots will detect this file and bypass resetting the environment.
2.4.2.2. Processor SDK 04.02¶
Linux
PRUETH Driver
2.4.2.3. Processor SDK 04.01¶
IPC
PRUSS remoteproc
- PRUs are no longer automatically booted (remoteproc ‘auto_boot’ is set to false) by remoteproc core. A PRU has to be booted either by PRU Client Drivers or a PRU applications in userspace. The kernel-space boot is triggered using the rproc_boot() kernel API, and the user-space applications can use the sysfs to start and stop the corresponding remoteproc. Please see Documentation/ABI/testing/sysfs-class-remoteproc file in kernel for sysfs usage details.
- PRU remoteproc driver no longer configures the PRU Ethernet firmwares automatically using board-machine compatibles. The needed firmware names are configured by the PRU Ethernet driver now using the rproc_set_firmware() function.
- Userspace PRU applications have to make sure to unload any existing PRU client drivers using a specific PRU, and set their firmware using sysfs before starting and using a PRU
2.4.2.4. Processor SDK 04.00¶
- This is the first release for 2017 LTS (Kernel: 4.9, U-boot: 2017.01, gcc: 6.2.1 and Yocto: 2.2 (morty)), with following major changes.
IPC
remoteproc
- The debugfs ‘state’ variable is replaced with a sysfs ‘state’ variable accepting ‘start’ and ‘stop’ to boot and shutdown a remote processor from userspace
- A new sysfs variable ‘firmware’ is also added to set a new firmware. remoteprocs need to be in stopped state before a firmware can be set. New firmwares still need to reside in /lib/firmware
- Booting a remote processor is now triggered by the insertion of the respective remoteproc platform driver. On 4.4, with virtio-rpmsg enabled firmwares, this only happened when both the remoteproc platform driver and virtio_rpmsg_bus module were installed.
- Upstream 4.9 remoteproc and rpmsg cores are not suitable for TI platforms. A minimum of 4.10-rc4 (or the required remoteproc/rpmsg patches from 4.10-rc4) is needed if porting TI remoteproc drivers onto upstream.
rpmsg
- virtio_rpmsg_bus module split into a ‘rpmsg_core’ and virtio-rpmsg transport specific ‘virtio_rpmsg_bus’ modules.
- Removal of virtio_rpmsg_bus no longer stops a remote processor and should be avoided if a remote processor is running. * If removed and installed again, the rpmsg communication devices will not be reprobed.
Keystone_remoteproc
- A new ‘label’ binding property is now mandatory. It will have the string names for the DSPs in the format “dsp<X>” (eg: dsp0, dsp7 etc)
- K2G DSP nodes will require a new “ti,sci-id” property, and a different value for “power-domains” property (this is generic to all K2G devices)
PRUSS remoteproc
- The AM437x specific am437x_pruss_wrapper module has been replaced with a generic pruss_soc_bus module, and is required to be installed on all SoCs.
- New compatibles on AM335x and AM437x SoCs - The previous ‘am3352-xxx’ and ‘am4372-xxx’ have been replaced with a ‘am3356-xxx’ and ‘am4376-xxx’ compatibles since PRUSS are not present on AM3352 and AM4372 SoCs. The PRU nodes are also not enabled by default in base ‘am33xx.dtsi’ and ‘am4372.dtsi’ files.
- New device hierarchy structure - The PRUSS node hierarchy from 4.4 is moved one-level down under a new parent pruss_soc_bus node.
CPSW CPDMA Descriptor Usage
There is a notable change in how to place cpsw cpdma descriptors in DDR and configure descs number: TI K4.4 device tree property was used “descs_pool_size” - descs_pool_size : total number of CPDMA CPPI descriptors to be used for both ingress/egress packets processing. if not specified the default value 256 will be used which will allow to place descriptors pool into the internal CPPI RAM.
New approach https://processors.wiki.ti.com/index.php/Linux_Core_CPSW_User%27s_Guide#Configure_number_of_TX.2FRX_descriptors
PCI ENDPOINT
The usage of ‘pci-ep’ configfs directory to configure PCI Endpoint has been changed in accordance with upstream review comments. Please see https://processors.wiki.ti.com/index.php/Linux_Core_PCIe_EP_User%27s_Guide#4.9_Kernel, for additional details
Display
fbdev is only set up for the primary display, instead of all displays. This results in the secondary displays to be left disabled by the kernel, until an userspace application enables the displays.
U-Boot RNDIS boot
AM335x USB client (RNDIS) boot and Ethernet boot modes are now supported using default defconfig (am335x_evm_defconfig). Similarly AM437x USB client (RNDIS) boot is now supported by am43xx_evm_defconfig. Separate defconfigs for above boot modes no longer exist.
Keystone-2 features
The following features are not ported to 2017 LTS
- SRIO Kernel driver
- 10G Uboot
- IPSec sideband and inflow mode
- QoS
2.4.3. Processor SDK 03.xx Releases¶
2.4.3.1. Processor SDK 03.03¶
- HDMI-connected monitor no longer takes precedence over built-in LCD as a default graphics display for e.g. Matrix
- See the Release Notes for full list of modifications.
2.4.3.2. Processor SDK 03.02¶
- The QT QPA eglfs_kms, which supports multiple screens, has been enabled and used as the default eglfs platform plugin. For more information, see QT and Graphics Migration
- bootmonitor now goes thru mkimage and as a result the load address changed. Users should manually execute following commands in their u-boot environment to properly install the secure monitor on k2 platforms:
setenv addr_mon 0xc08000
setenv addr_mon_mkimg 0xc07ffc0
setenv mon_size 0x1210
setenv sec_bm_install 'go ${addr_mon}4 0xc084000 ${mon_size}; mon_install ${addr_mon_mkimg}'
run sec_bm_install
- HDMI-connected monitor no longer takes precedence over built-in LCD as a default graphics display for e.g. Matrix
2.4.3.3. Processor SDK 03.01¶
- defconfig_builder is now used to generate working kernel defconfigs
- In K2 U-Boot, added multi slave support.
- In K2 Linux PA driver, added pre-classification support. So explicit lut rules for broadcast and multicast are removed and the same is achieved through this feature in PA
- 10G Ethernet driver now supports auto configuration using MCU firmware (a.k.a 10G KR firmware). The firmware file name is ks2_xgbe_serdes_mcu_fw.bin which is available at the same location as other serdes firmwares.
- The current version of the serdes firmware is 03.03.00.02C and the same is not backward compatible with the firmware in the previous SDK release (03.00.00)
2.4.3.4. Processor SDK 03.00¶
- First 2016 LTS Release (Linux Kernel: 4.4, U-Boot: 2016.05, GCC 5.3, Yocto 2.1)
- Unified kernel configuration based on multi_v7_defconfig
- Migrated from SysVinit to systemd for user space initialization.
- U-Boot drivers now uses DT, but is transparent to users
- The content of <evm>-<os>-sdk-arago-src-<ver>.tar.gz on the download page changed from sources to a fetcher script that obtains the sources. This is to efficiently share the sources between different platforms and OSes supported by Processor SDK. See the README inside the tar-ball for instructions
- This release adds support for RT Linux on AM335x ICE and K2G GPEVM
- In K2 U-Boot, multi slave support is currently missing. To use multiple interfaces, please disable CONFIG_DM_ET option in u-boot .config and build.
- See the Release Notes for full list of modifications.
- For information on migrating from MCSDK (K2x) to Processor SDK, see this migration page.
2.4.4. Processor SDK 02.xx Releases¶
2.4.4.1. Processor SDK 02.00.02¶
- This release adds RT Linux support on AM335x, K2H/K, K2E, K2L
- This release supports AM572x IDK and K2G EVM
- OpenCV now uses OpenCL under the hood, to offload compute tasks to C66x cores. This is transparent to the application
- The SGX driver for AM335x has been enhanced to support DRM/WAYLAND based Multi-Window Display. For more information, see AM3 Graphics Migration
- See the Release Notes for full list of modifications.
- For information on migrating from MCSDK (K2x) to Processor SDK, see this migration page.
2.4.4.2. Processor SDK 02.00.01¶
- This release adds support for devices from the KeyStone architecture: K2E, K2H/K, and K2L
- This release also supports RT Linux is supported on AM4 and AM5 device
- The SGX driver for AM4 has been enhanced to support DRM/WAYLAND based Multi-Window Display. For more information, see AM4 Graphics Migration
- There is no migration impact to customers using AM3, and AM5.
- See the Release Notes for full list of modifications.
- For information on migrating from MCSDK (K2x) to Processor SDK, see this migration page.
2.4.4.3. Processor SDK 02.00.00¶
- This release adds support for AM57x
- First 2015 LTS (Kernel 4.1, U-boot 2015.07) Release
- Starting this release, Processor SDK Installer is 64-bit, and installs only on 64-bit host machine. Support for 32-bit host is dropped as Linaro toolchain is available only for 64-bit machines
- For AM3, AM4, Graphics SDK is now obsolete and Graphics stack is integrated into Processor SDK, and supports null DRM based Full Window, with Front and Flip modes. For more information, see Graphics Migration
- Ethernet performance degraded ~10% on am335x-evm due to move from preempt_voluntary
- See the Release Notes for full list of modifications.
2.4.5. MCSDK to Processor SDK Migration Guide¶
Introduction
For many years, the MCSDK has been a great way to get started with Embedded Software development on TI’s KeyStone architecture processors (C66x, K2x). If you go by “what’s in a name?”, you can easily see the connection. The “MC” of MCSDK stands for Multi-Core and The “SDK” refers to Software Development Kit. The MCSDK encapsulated a collection of software elements and tools and was designed to provide a great starting point for developing embedded applications on ARM running Linux and C66x cores running TI-RTOS, on KeyStone processors. One of the goals of the MCSDK was to enable a developer to quickly explore and evaluate the possibilities as well as start development on a customized Linux/TI-RTOS software platform.
Like the Linux kernel itself, which evolves every 77 days or so with a new release, it’s time for the MCSDK to evolve, without departing from it’s heritage. TI has a rich offering of microprocessors from multicore ARMs to tiny, power-efficient DSPs, and different combinations of ARM, DSP, and specialized cores to provide the broad market a variety of solutions. Since many developers will touch several of these devices from project to project, it is beneficial to standardize the experience to maximize the benefit of learning. The limited time developers have in today’s time-to-market driven environment is very important and shouldn’t be wasted.
To this end, the KeyStone devices will be actively supported in the Processor SDK, the unified SDK for TI processors. This allows suport for both C66x and K2x in the same SDK, as well as the other AMx processor. Each developer that uses the Processor SDK from project to project can leverage that experience and know with confidence what they can expect. The Processor SDK is more than a collection of components, the aim is that applications can switch processors with minimal modifications.
Further, we are seeing different use cases for Linux and RTOS:
- A fully RTOS based solution with RTOS on Cortex-A cores in addition to the C66/M4 cores and
- Linux based solutions that need acceleration, but doesn’t really need to get into the programming details of the non Cortex-A cores, and would just need open programming paradigms such as OpenCL, OpenGL, GStreamer to accelerate the Linux applications, leveraging TI’s optimized libraries or codecs
- A heterogenous solution of Coretex-A cores running Linux and C66/M4 cores running RTOS
To this end, the Processor SDK is split into Processor SDK for RTOS and Processor SDK for Linux.
To further customize the experience for developers who typically work on one device we split the SDK to be a separate installer per device, per OS. In summary, the contents of MCSDK is now split into Processor SDK (Linux, RTOS) for K2H/K2K, K2E, and K2L. The devices without ARM processors, C665x and C667x, only support RTOS. With this background in place, let’s dig into more specifics.
Processor-SDK 2.0.1 adds support for KeyStone devices from previous SDKs that are no longer being maintained:
- MCSDK: K2H, K2K, K2E, K2L (last release: MCSDK 3.1.4)
- BIOS-MCSDK: C665x, C667x (last release: BIOS-MCSDK 2.1.2)
If you are migrating from these SDKs, the notes below will highlight any changes that are required.
Installation
As with MCSDK, Processor SDK is also available as an installer on ti.com for download.
Target Machine
The Processor SDK Linux installer is available only for host machines running Linux, where as the Processor SDK RTOS installer is available for both Windows and Linux host machines. Please note that the Processor SDK Linux Installer can be installed only on 64-bit host machines and the support for 32-bit machines is dropped, primarily due to the Linaro toolchain not supporting 32-bit anymore.
Install Packages
As noted earlier, the installer is now available per device, per OS. If you work on multiple devices or work on both RTOS and Linux, you’d have to download multiple installers.
Command Line Installation
The tool to create the installer was changed from InstallJammer, which was an unsupported open source project, to InstallBuilder. If installing on the command line without any user interaction, the command option changed from
--prefix [INSTALL_PATH] --mode unattended
to
--prefix [INSTALL_PATH] --mode silent
Processor SDK Linux
This chapter describes what’s changed from a Linux point of view, when migrating from MCSDK to Processor SDK
Directory Structure
In addition to the pre-built images and the filesystem, the installer now contains a copy of the Linux Kernel and U-Boot GIT repositories, and the sources for Kernel Modules, which’ll be quite handy for reference or further development. There are additional helper/setup scripts to help with getting started with the EVMs. For an overview of the directory structure and a brief description of the contents of the folders, refer to Processor_SDK_Linux_Directory_Structure
Getting Started
The Getting Started Guide for Processor SDK Linux is here. Processor SDK Linux includes a set up script that scripts the necessary steps to setup the development environment on the host machine. The setup script verifies that the Linux host is the recommended Ubuntu LTS version, installs any required host packages, sets up the target FileSystem installation, NFS setup, TFTP setup, Minicom setup, uboot setup, Load uboot script and boots the EVM to Linux Prompt. After installation of the SDK on the Linux host, the setup script should be run to prepare the host for software development. Some of the tasks require administrator privileges. The script will prompt you when these administrator privileges are required. For more details, see Processor_SDK_Linux_Setup_Script.
The procedure to flash the U-Boot, Kernel and filesystem into the flash memory on EVM, also known-as program_evm, is still available, and documented here
U-Boot
U-Boot is upgraded to be based on 2015.07. Listed below are a few major differences from MCSDK.
- To Flash u-boot image onto NOR flash, u-boot upgrade command is changed from burn_uboot to burn_uboot_spi (for SPI NOR boot) and burn_uboot_nand (for NAND boot)
- U-Boot starting address is now at 0x0c00 0000 instead of 0x0c00 1000 in MCSDK
- bootz is enabled in u-boot. So use zImage instead of uImage
- Following default env variable have been updated.
- name_mon from skern-<soc>-evm.bin to skern-<soc>.bin
- name_fdt from uImage-<soc>-evm.dtb to <soc>-evm.dtb
- name_kern from keystone-evm.bin to zImage
- debug_options to ks2_debug. This is set to 1 as before to allow CCS to be connected to DSP core. When the device boots to Linux, the DSP needs to be loaded with the image and run using mpmcl command first before the CCS can be connected to DSP cores. The ks2_debug is not needed in this case.
- Following new env variables are introduced to allow use of a firmware
initramfs image so that Linux drivers that requires firmware can get
it from this before rootfs is mounted during the boot up. This is
needed to support NFS for example.
- name_fw_rd is set to k2-fw-initrd.cpio.gz - This image is supplied in the release package and contains K2 SerDes and QMSS Accumulator firmwares that are required by NetCP and PCIe drivers
- init scripts are modified to include this firmware during boot and pass it to kernel using 2nd argument of bootz command.
- A copy of Kernel GIT repo is included in the “board-support” folder of the Processor SDK Installation
- For more details, refer to the Processor_SDK_Linux_U-Boot_Release_Notes
Linux Kernel
The Linux Kernel is upgraded to 4.1 (2015 LTS). Listed below are a few major differences from MCSDK (3.10 Kernel).
- Firmware is now not built into the Kernel. Instead they are available in the k2-fw-initrd.cpio.gz initramfs which are passed from u-boot to kernel as part of the bootz command for drivers that requires them very early in the boot up before the final rootfs is available.
- Other firmwares that are used by dynamic modules are available in lib/firmware folder of the supplied file system images (for ubifs, initramfs etc) so that they are loaded and used by the driver from the user space.
- A copy of Kernel GIT repo is included in the “board-support” folder of the Processor SDK Installation
- For more details, refer to the Processor_SDK_Linux_Kernel_Release_Notes and Processor_SDK_Linux_Kernel_Performance_Guide
Roadmap
Following features supported in MCSDK are not supported in Processor SDK 02.00.02 Release, and will get added in future Processor SDK releases
- Drivers: UDMA, 10G-KR firmware, IPSec inflow, kexec, network bonding
Kernel Drivers
Listed below are a few major differences from MCSDK (3.10 Kernel).
NetCP Drivers
- Netcp qmss and pkt dma drivers at drivers/soc/ti
- In older kernel, firmwares used to be built into the kernel as an ihex file which is not right thing to do due to licensing issues. Per community accepted practice, the right thing to do is to have the firmware images in a file system and use request_firmware() API in kernel to load it from the file system and use. So with this kernel release, this is how firmware files are used in kernel drivers.
- The Accumulator channels requires the QMSS Accumulator firmware (ks2_qmss_pdsp_acc48.bin) that is located in the k2-fw-initrd.cpio.gz.
- Netcp net driver at the same location as before at drivers/net/ethernet/ti/, but files are renamed with netcp_ prefix
- DT documentation for the above drivers is under Documentation/devicetree/bindings/ folder.
- PA firmwares are now part of the k2-fw-initrd.cpio.g image that is used for early boot. PA firmwares in Linux includes a header + Firmware bloab from the PA LLD package. See kernel source directory Documentation/arm/keystone/netcp-pa.txt for details of the header format.
- Sysfs command file name paths have changed in this release. Please refer the NetCP User Guide for details.
- QoS firmware is part of k2-fw-initrd.cpio.gz.
- QoS qmss driver is implemented in drivers/soc/ti/knav_qmss_qos.c.
- Cpts driver for Keystone is implemented in drivers/net/ethernet/ti/netcp_cpts.c, which corresponds to the cpts.c in MCSDK release.
- Keystone sideband crypto driver uses the firmware file: sa_mci.fw which is different from that on older kernels. In older kernel, there is an array named sa_eng_aes_enc_mci_tbl, which contains a set of micro instructions per algorithm for the SA hardware. This is now captured in a firmware file called sa_mci.fw and used in the driver.
- Multicast filters for special handling of multicast packets to avoid duplication are now not enabled through DT as in MCSDK. Instead a sysfs entry is provided for the same. See Documentation/networking/keystone-netcp.txt for details.
K2 SerDes drivers
- K2 SerDes driver is located at drivers/phy/phy-keystone-serdes.c. It supports 3 serdes modes. PCIe, 1G and 10G.
- The following firmwares are required for proper functioning of the
driver:
- ks2_gbe_serdes.bin - for 1G
- ks2_xgbe_serdes.bin - for 10G
- ks2_pcie_serdes.bin - for PCIe
- These firmwares have configuration values which otherwise were embedded in the driver code in v3.10.x based kernel releases
- These firmwares are available in the file systems and k2-fw-initrd.cpio.gz file supplied in the release package and referred in the u-boot section of this document
PCIe driver
- PCIe RC mode was set in Kernel in MCSDK but moved to U-boot in ProcSDK for upstreaming reason. U-boot needs to be the same release version as Kernel. If not, PCIe mode initialization needs to be added in the older version of u-boot.
Building the Linux SDK
As with MCSDK, the Processor SDK Linux can be fully assembled from sources, via Yocto. This gives the ability for customers to easily add or remove components from the default filesystem(s) provided in the Processor SDK Linux Installer. The instructions on how to build the Processor SDK Linux are available here
Processor SDK RTOS
Directory Structure
Information on the Processor-SDK RTOS directory structre is here. Some modifications were made to be consistent across all devices:
C66x
- SDK folder is per device. So, there is one for C665x and one for C667x.
- IBL, POST, and boot utilities moved from SDK folder
tools
to PDK folderpackages/ti/boot
- NDK examples moved from SDK folder
examples/ndk
to PDK folderpackages/ti/transport/ndk/nimu/example
- program_evm flash utility moved from SDK folder
tools/program_evm
to SDK folderbin
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 folderpackages/ti/transport/ndk/nimu/example
Getting Started
The Processor-SDK RTOS Getting Started Guide is located here. As in MCSDK, this is the page to quickly find links for software and information on setting up hardware. Further information can be found in the Developer Guide. This will look different from the MCSDK documentation since we are now focusing on how to use the SDK software to quickly create an embedded application rather than the design of the software.
Migration from MCSDK (K2x)
CSL
- Renamed “ti/csl/device” folder to “ti/csl/soc” – hence any include header files as “ti/csl/device/k2?/src/xxxx.h” needs to be changed to “ti/csl/soc/k2?/src/xxxx.h”
- One top level include header files per IP replaces multiple CSL files
per IP for the following :
- <ti/csl/cslr_bcp.h>, <ti/csl/cslr_iqn2.h>, <ti/csl/csl_rac.h>, <ti/csl/csl_tac2.h>, <ti/csl/cslr_aif2.h> and <ti/csl/cslr_pcie.h>
- Deprecated top level cslr_cpsw_5gf.h files - applications including csl 5gf header files would need to migrate to include <ti/csl/csl_cpsw.h> file.
Migration from BIOS-MCSDK (C66x)
CSL
- Following SoC defines are added to support C6657 and C6678 in the
CSL.
- SOC_C6657 SOC_C6678
- following files are not supported from the top level CSL folder
(ti/csl)
- csl_mpuAux.h, csl_memprot.h, csl_memprotAux.h, csl_pllcAux.h, csl_cp_tracer.h
- include file changes
- Instead of <ti/csl/csl_cpsw_3gfAux.h> , <ti/csl/csl_cpswAux.h> should be included
- Instead of <ti/csl/csl_cpsw_3gfssAux.h>, <ti/csl/csl(r)_cpsw_ss_s.h> should be included
- Instead of <ti/csl/cslr_pcie*.h> needs to be changed to include cslr_pcie.h
- Instead of <ti/csl/cslr_sgmii.h>, <ti/csl/csl_sgmii.h> include <ti/csl/cslr_cpsgmii.h> and <ti/csl/csl_cpsgmii.h> respectively.
- Instead of <ti/csl/csl(r)_cpsw_3gf*.h> include <ti/csl/csl(r)_cpsw.h>
NOTE Please define appropriate SOC define in the applicatoin when using the CSL. E.g., SOC_C6678 or SOC_C6657 for c6678 and c6657 devices.
CPPI
- Interface with Resource Management (RM) LLD ( Optional )
- Cppi_GlobalConfigParams configuration structure is changed, however there is no change for the applications that include <ti/drv/cppi/device/<soc>/cppi_device.c> file. Applications does not include this directly, need to align the configuration as demonstrated in the cppi_device.c file:
QMSS
- Optional RM LLD interface is supported to enable customers to use Resource manangement.
- Qmss_GlobalConfigParams configuration structure is changed, however there is no change for the applications that include <ti/drv/qmss/device/<soc>/qmss_device.c> file. For applications that does not include this directly, it needs to align the configuration as demonstrated in the qmss_device.c file:
PA/SA
- Support for Resource management (RM LLD) is supported for PA LLD - Note that this is an optional feature, applications that do not enable RM would not need to bring in RM LLD.
HUA Demonstration
The HUA Demo for C66x in BIOS-MCSDK is no longer supported in Processor-SDK. Rather, the Image Processing Demo is the common RTOS demonstration that is supported across all supported devices in the Processor-SDK for RTOS. This demo will continue to be enhanced with more capabilities.
Common Migration for Both MCSDK and BIOS-MCSDK
Platform Library
The Platform Library is deprecated and functionality is provided by the Board Library. For backwards compatibility, Platform Library is provided in this initial release. But it is planned to be dropped in a future release. The Board Library is a common API across all devices in the Processor-SDK.
MCSDK1.1 to Processor SDK Migration for OMAPL13x devices
For OMAPL13x devices, you can refer to the `MCSDK1.1 to Processor SDK Migration <https://processors.wiki.ti.com/index.php/MCSDK1.1_to_Processor_SDK_Migration_Guide_for_OMAPL13x/C674x_devices>`__ link
2.4.6. MCSDK1.1 to Processor SDK Linux Migration Guide for OMAPL13x devices¶
Processor SDK v4.0 release from Texas Instruments adds support for OMAPL13x and aligns the platform software with newer ARM and DSP based SOC’s.
All new development efforts should use Processor SDK. This is the only software package that TI supports on these devices for new development.
Installation
- Processor SDK Linux is available as an installer on ti.com for download
Target Machine
- The Processor SDK Linux installer is available only for 64-bit host machines running Linux. Support for 32-bit machines is dropped primarily due to the Linzro toolchain not supporting 32-bit anymore. Host support for the SDK is described in the Release Notes
Tool Chain
- Processor Linux SDK is using Linaro GCC 6.2-2016.11 cross compiler.
Directory Structure
- The images directory in MCSDK is renamed to prebuilt_images and moved under board_support directory.
- In addition to the prebuilt_images and filesystem, the Linux installer now contains a copy of the Linux Kernel and U-Boot GIT repositories.
- A script create-sdcard.sh is provided in bin directory to create the SD card using prebuilt images in Processor SDK.
- host-tools folder in MCSDK is not included in Processor SDK. Pinmux utility can be downloaded from ti.com. Aisgen utility is replaced by dd command to generate the u-boot ais image.
- For an overview of the directory structure and a brief description of the contents of the folders, please refer to Processor SDK Linux Directory Structure
U-Boot
- Bootz is enabled in u-boot. So use zImage instead of uImage
- A copy of u-boot GIT repo is included in the board-support folder of the Processor SDK installation
- Aisgen utility is not used in Processor SDK to generate the U-Boot ais image, but using dd command:
$ sudo dd if=u-boot.ais of=/dev/sd<N> seek=117 bs=512 conv=fsync
- 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.7. AMSDK to Processor SDK Migration Guide¶
For many years, the AMSDK has been a great way to get started with Embedded Linux development on TI’s broad market line of ARM Cortex-A microprocessors, also referred to as Sitara. If you go by “what’s in a name?”, you can easily see the connection. The “AM” of AMSDK is the first two letters of part numbers in the Sitara line-up. For example, take the AM335x which is an ARM Cortex-A8 based processor which drives the popular Beaglebone Black board. The “SDK” refers to Software Development Kit. The AMSDK was designed from the ground up to provide a great starting point for developing an embedded Linux system on a Sitara Processor. One of the goals of the AMSDK was to enable a developer to quickly (under 10 minutes) explore and evaluate the possibilities as well as start development on a customized Linux software platform in under an hour. It’s up to each developer to decide if the AMSDK achieved these goals, but the feedback overall has been positive.
Like the Linux kernel itself, which evolves every 77 days or so with a new release, it’s time for the AMSDK to evolve, without departing from it’s heritage. TI has a rich offering of microprocessors from multicore ARMs to tiny, power-efficient DSPs, and different combinations of ARM, DSP, and specialized cores to provide the broad market a variety of solutions. Since many developers will touch several of these devices from project to project, it is beneficial to standardize the experience to maximize the benefit of learning. The limited time developers have in today’s time-to-market driven environment is very important and shouldn’t be wasted.
To this end, the AMSDK is being renamed to the Processor SDK for Linux. This new title will allow future devices, which may not carry the “AM” naming convention, to benefit from the same software development experience. Each developer that uses the Processor SDK from project to project can leverage that experience and know with confidence what they can expect.
With this background in place, let’s dig into more specifics.
2.4.7.1. Migrating from AMSDK 8.0 to Processor SDK 1.0¶
As suggested above, this transition at this point in time, is largely a name change. The good news is, migration should be very simple. From a component point of view, Processor SDK for Linux 1.0 is very similar to AMSDK 8.0:
Component | AMSDK 8.0 | Processor SDK 1.0 |
---|---|---|
U-Boot Bootloader | v2014.07 | v2014.07 |
Linux Kernel | 3.14.26 | 3.14.26 |
Toolchain | Linaro GCC 4.7 2013.03 hard-float | Linaro GCC 4.7 2013.03 hard-float |
GUI Development Platform | Qt 4.8 | Qt 5.4 |
Graphics SDK | 05.01.01.02 | 05.01.01.02 |
Supported Platforms | AM335x and AM437x | AM335x and AM437x |
Supported Hosts | Ubuntu 12.04 and 14.04 | Ubuntu 12.04 and 14.04 |
Table: AMSDK 8.0 to Processor SDK 1.0 Component Comparison
It is clear from the above that these SDKs are very similar. The biggest difference by far is the transition from Qt 4.8 to Qt 5.4. If you’d like to learn more about this specifically, please see the Qt 4 to 5 Migration. If you have a “headless” system, or don’t use Qt, then this is really a “don’t care”.
The rest of the Arago filesystem provided with the SDK was updated as well. Please consult the Software Manifest for specific changes.
2.4.7.1.1. Documentation¶
Since the components are mostly common, the documentation is also very similar. The headings and such have been updated to include the new Processor SDK naming, but the content, except when improved or necessary, is largely the same.
2.4.7.1.2. Hardware Platforms¶
Both SDKs support the same hardware platforms from TI. Here’s the list from the Processor SDK, for completeness.
2.4.7.1.3. Board Porting¶
One of the major efforts to developing a customer Linux Embedded System is porting the bootloader, U-Boot in this case, and the Linux kernel to a new hardware platform. Since the U-Boot and Kernel sources provided with the Processor SDK 1.0 are identical, this effort is minimal to non-existent. Custom drivers and any other bootloader or kernel code should move over seamlessly.
2.4.7.1.4. Application Development¶
If using the Arago Filesystem provided with the SDK (i.e. you haven’t yet used Yocto/Open Embedded to create your own), the specific versions of the packages provided might change slightly. Please consult the Software Manifest for any packages your are concerned with.
GUI Development
As highlighted above, this is the largest change between the two SDKs. If Qt 4.x is used currently, it is possible that adaptation to Qt 5.4 will be necessary. It depends largely on the Qt components used and how they transition to Qt 5.4. Again, please consult the Qt 4 to 5 Migration Guide for more information.
2.4.7.2. Summary¶
The AMSDK that you may be familiar with is getting a new name, the Processor SDK for Linux. This name change paves the way for adding more devices from TI’s processor line-up and allow developer’s to enjoy the same experience with more options. What seems like a simple name change at this point, will continue to grow to become an extensive software offering covering a broad range of devices, as well as operating systems, examples, tools, and other important components developers need in this fast-paced, time-to-market driven environment. The experience gained will translate nicely to the next project or the next set of challenges, enabling developers to be more efficient and successful.
The migration from the AMSDK to the Processor SDK is expected to be minimal, with a few noted exceptions. It’s a great time to explore the “new” AMSDK, and see how it will help solve the challenges faced today, and preparing for those in the future.
2.5. Supported Platforms and Versions¶
Supported Host Operating Systems
The following operating systems have been validated to work with our SDK.
- Linux SDK
Operating System | Version |
Ubuntu | 14.04 (64-bit) |
Ubuntu | 16.04 (64-bit) |
- RTOS SDK
Operating System | Version |
Windows | 7 (64-bit) |
Ubuntu | 16.04 (64-bit) |
- Android SDK
Operating System | Version |
Ubuntu | 14.04 (64-bit) |
Supported Platforms and EVMs
The following platforms and EVMs are supported with Processor SDK