From 25d6ff2ef962f44c6308711231e19433cf59df7d Mon Sep 17 00:00:00 2001 From: Praneeth Bajjuri Date: Mon, 2 Jun 2025 15:22:17 -0500 Subject: [PATCH 1/2] docs(linux): AM62LX: Initial 11.00 Release docs Initial Release docs of 11.00 contains based on 11.00.15 tags Signed-off-by: Praneeth Bajjuri --- .../Release_Specific_Migration_Guide.rst | 10 +++- .../linux/Release_Specific_Release_Notes.rst | 53 ++++++++++--------- ...ase_Specific_Yocto_layer_Configuration.rst | 3 +- source/devices/AM62LX/linux/version.txt | 2 +- .../Kernel/Kernel_Drivers/Crypto/DTHEv2.rst | 2 + 5 files changed, 40 insertions(+), 30 deletions(-) diff --git a/source/devices/AM62LX/linux/Release_Specific_Migration_Guide.rst b/source/devices/AM62LX/linux/Release_Specific_Migration_Guide.rst index a423d1b5e..7086d5edd 100644 --- a/source/devices/AM62LX/linux/Release_Specific_Migration_Guide.rst +++ b/source/devices/AM62LX/linux/Release_Specific_Migration_Guide.rst @@ -11,10 +11,16 @@ of the AM62L Linux SDK. Processor SDK Linux AM62LX 11.xx Releases ***************************************** -Processor SDK 11.00.05.02 +Processor SDK 11.00.15.05 ========================= -- This is the first release on the 2025 LTS stream with 6.12 kernel, 2025.01 U-Boot and Yocto Scarthgap/5.0 +- This is the second release on the 2025 LTS stream with 6.12 kernel, 2025.01 U-Boot and Yocto Scarthgap/5.0 - ATF 2.12+ - Yocto Scarthgap/5.0 - Platforms Supported : AM62Lx (HS-FS) : `AM62LX-EVM `__ +Processor SDK 11.00.05.02 +========================= +- This is the first release on the 2025 LTS stream with 6.12 kernel, 2025.01 U-Boot and Yocto Scarthgap/5.0 +- ATF 2.12+ +- Yocto Scarthgap/5.0 +- Platforms Supported : AM62Lx (HS-FS) : `AM62LX-EVM `_ diff --git a/source/devices/AM62LX/linux/Release_Specific_Release_Notes.rst b/source/devices/AM62LX/linux/Release_Specific_Release_Notes.rst index 753d64657..ae1a31359 100644 --- a/source/devices/AM62LX/linux/Release_Specific_Release_Notes.rst +++ b/source/devices/AM62LX/linux/Release_Specific_Release_Notes.rst @@ -35,21 +35,24 @@ found on the SDK download page or in the installed directory as indicated below. - Linux Manifest: :file:`/manifest/software_manifest.htm` -Release 11.00.05.02 +Release 11.00.15.05 =================== -Released on March 2025 +Released on June 2025 What's new ---------- **Processor SDK Linux AM62LX Release has following new features:** - - First 2025 LTS Release Including RT combined branch model + - 2025 LTS Release Including RT combined branch model - New 2-Stage A53 Boot Flow - ATF Based Device Manager including SCMI - - U-Boot: Legacy Boot Flow, Boot modes (UART, MMCSD, OSPI), CPSW, DMA + - U-Boot: Legacy Boot Flow, Boot modes (UART, MMCSD, OSPI), GPMC NAND, CPSW, DMA + - U-Boot: User and Reduced Bootmode OTP Programming + - U-Boot: :ref:`Key writer lite Programming ` - Kernel: DMA, GPIO, I2C, UART, MMCSD, OSPI NOR, eCAP, eQEP, CPSW, McASP/Audio, DSS, DSI + - Kernel: :ref:`DTHEv2 Crypto Accelerator ` - :ref:`Power Management `: DeepSleep and RTC+DDR low power modes. - RT Kernel : Real-Time Linux Interrupt Latency numbers here - :ref:`RT Interrupt Latencies ` - Support for Wifi with M2 CC33xx cards - :ref:`How to Enable M.2-CC33xx in Linux ` @@ -59,11 +62,11 @@ What's new **Component version:** - - Kernel (Including RT) 6.12.13 + - Kernel (Including RT) 6.12.24 - U-Boot 2025.01 - Toolchain GCC 13.3 - ATF 2.12+ - - TIFS Firmware v11.00.05 + - TIFS Firmware v11.00.12 - Yocto scarthgap 5.0 - Debian 13 (Trixie) - Buildroot 2024.11.1 @@ -77,32 +80,32 @@ Build Information U-Boot ------ -| Head Commit: 9a3137c5c11a02fef9f2b66a7e9cb2af6a6a15ba PENDING: configs: am62lx_evm_defconfig: Switch to new DMA driver +| Head Commit: 1d6ba4a32cdd8c987533d5789b5bc7b84c41fabe TI: dts: arm64: ti: sync dtbs from ti-linux-6.12.y upto b0afb35642d7 | uBoot Version: 2025.01 -| uBoot Description: RC Release 11.00.05 +| uBoot Description: RC Release 11.00.15 | Clone: git://git.ti.com/ti-u-boot/ti-u-boot.git | Branch: ti-u-boot-2025.01 -| uBoot Tag: 11.00.05 +| uBoot Tag: 11.00.15 | .. _tf-a-release-notes: TF-A ---- -| Head Commit: dd46885ec58f9394b37f0c3d957e79838999b79d PENDING: fix(ti): am62l: fix am62l-bl1-dtb.sh for readelf parsing issue +| Head Commit: a70f82d5a439cb9e21426908c7410c4f2a646364 PENDING: feat(ti): Add SiP SVC calls for fuse programming | Repo: https://github.com/TexasInstruments/arm-trusted-firmware.git | Branch: ti-master -| Tag: 11.00.05 (2.12+ Based) +| Tag: 11.00.15 (2.12+ Based) | .. _ti-linux-fw-release-notes: ti-linux-firmware ----------------- -| Head Commit: 6bdfa48f6006e9b4a39befb613ad2a46d0f8746e ti-sysfw: am62lx: update to version v11.00.05 +| Head Commit: 1ea29f4b3ec17bdc1a3431a014ea5224962dc779 Merge branch 'main' of git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware into ti-linux-firmware-next | Clone: https://git.ti.com/cgit/processor-firmware/ti-linux-firmware | Branch: ti-linux-firmware -| Tag: 11.00.05 +| Tag: 11.00.15 | Kernel @@ -110,13 +113,13 @@ Kernel .. rubric:: Linux Kernel :name: linux-kernel -| Head Commit: 1a2d611ee02d63eda3ad6d636e1b0cbf5af87b95 PENDING: dmaengine: ti: k3-udma Fix warnings with W=1 -| Kernel Version: 6.12.13 -| Kernel Description: RC Release 11.00.05 +| Head Commit: b0afb35642d79e776a4cf940945367cef87ba127 UPSTREAM: softirq: Use a dedicated thread for timer wakeups on PREEMPT_RT. +| Kernel Version: 6.12.24 +| Kernel Description: RC Release 11.00.15 | Repo: git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git | Branch: ti-linux-6.12.y -| Tag: 11.00.05 +| Tag: 11.00.15 | use-kernel-config=defconfig | config-fragment=kernel/configs/ti_arm64_prune.config | @@ -125,13 +128,13 @@ Kernel .. rubric:: Real Time (RT) Linux Kernel :name: real-time-rt-linux-kernel -| Head Commit: 1a2d611ee02d63eda3ad6d636e1b0cbf5af87b95 PENDING: dmaengine: ti: k3-udma Fix warnings with W=1 -| Kernel Version: 6.12.13 -| Kernel Description: RC Release 11.00.05 +| Head Commit: b0afb35642d79e776a4cf940945367cef87ba127 UPSTREAM: softirq: Use a dedicated thread for timer wakeups on PREEMPT_RT. +| Kernel Version: 6.12.24 +| Kernel Description: RC Release 11.00.15 | Repo: git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git | Branch: ti-linux-6.12.y -| Tag: 11.00.05 +| Tag: 11.00.15 | use-kernel-config=defconfig | config-fragment=config-fragment=kernel/configs/ti_arm64_prune.config kernel/configs/ti_rt.config | @@ -142,21 +145,21 @@ Yocto .. rubric:: meta-ti :name: meta-ti -| Head Commit: d1f9c4761e9f65f8a6f049f3ffdc85a8b0f0f63f CI/CD Auto-Merger: cicd.scarthgap.202502261418 +| Head Commit: 3de174b8c5807a5194b492a55d991ec628d937a8 CI/CD Auto-Merger: cicd.scarthgap.202505291514 | Clone: git://git.yoctoproject.org/meta-ti | Branch: scarthgap -| Release Tag: 11.00.05 +| Release Tag: 11.00.15 | .. rubric:: meta-arago :name: meta-arago -| Head Commit: 3cdf522bfc998250793ddfd58cd503d822f6ee6a CI/CD Auto-Merger: cicd.scarthgap.202502261418 +| Head Commit: 822184f1a9a16b2424445793b2ce10267ed8bb5d CI/CD Auto-Merger: cicd.scarthgap.202505291514 | Clone: git://git.yoctoproject.org/meta-arago | Branch: scarthgap -| Release Tag: 11.00.05 +| Release Tag: 11.00.15 | .. rubric:: meta-tisdk diff --git a/source/devices/AM62LX/linux/Release_Specific_Yocto_layer_Configuration.rst b/source/devices/AM62LX/linux/Release_Specific_Yocto_layer_Configuration.rst index 1ac9db67b..a0e2e314f 100644 --- a/source/devices/AM62LX/linux/Release_Specific_Yocto_layer_Configuration.rst +++ b/source/devices/AM62LX/linux/Release_Specific_Yocto_layer_Configuration.rst @@ -17,7 +17,6 @@ directory of the `oe-layersetup git repo Date: Mon, 2 Jun 2025 15:40:01 -0500 Subject: [PATCH 2/2] perf(linux): Update Linux performance guide for am62lx 11.00 release Update the Linux performance guide for 11.00 release for am62Lx device based on 11.00.15 tag. Signed-off-by: Praneeth Bajjuri --- .../AM62LX/linux/Linux_Performance_Guide.rst | 701 ++++++++++++------ 1 file changed, 492 insertions(+), 209 deletions(-) diff --git a/source/devices/AM62LX/linux/Linux_Performance_Guide.rst b/source/devices/AM62LX/linux/Linux_Performance_Guide.rst index 1a42f814d..a388b0a38 100644 --- a/source/devices/AM62LX/linux/Linux_Performance_Guide.rst +++ b/source/devices/AM62LX/linux/Linux_Performance_Guide.rst @@ -1,6 +1,6 @@ ==================================== - Linux 11.00.00.00 Performance Guide + Linux 11.00.15.05 Performance Guide ==================================== .. rubric:: **Read This First** @@ -35,13 +35,14 @@ https://e2e.ti.com/ or https://support.ti.com/ System Benchmarks ----------------- + LMBench ^^^^^^^ -LMBench is a collection of microbenchmarks of which the memory bandwidth -and latency related ones are typically used to estimate processor +LMBench is a collection of microbenchmarks of which the memory bandwidth +and latency related ones are typically used to estimate processor memory system performance. More information about lmbench at -https://lmbench.sourceforge.net/whatis_lmbench.html and -https://lmbench.sourceforge.net/man/lmbench.8.html +http://lmbench.sourceforge.net/whatis_lmbench.html and +http://lmbench.sourceforge.net/man/lmbench.8.html **Latency**: lat_mem_rd-stride128-szN, where N is equal to or smaller than the cache size at given level measures the cache miss penalty. N that is at least @@ -58,136 +59,140 @@ Execute the LMBench with the following: :: cd /opt/ltp - ./runltp -P am62lxx_evm-fs -f ddt/lmbench -s LMBENCH_L_PERF_0001 + ./runltp -P j721e-idk-gw -f ddt/lmbench -s LMBENCH_L_PERF_0001 .. csv-table:: LMBench Benchmarks :header: "Benchmarks","am62lxx_evm-fs: perf" - "af_unix_sock_stream_latency (microsec)","27.34" - "af_unix_socket_stream_bandwidth (MBs)","458.06" - "bw_file_rd-io-1mb (MB/s)","966.34" - "bw_file_rd-o2c-1mb (MB/s)","500.17" - "bw_mem-bcopy-16mb (MB/s)","741.63" - "bw_mem-bcopy-1mb (MB/s)","743.63" - "bw_mem-bcopy-2mb (MB/s)","720.85" - "bw_mem-bcopy-4mb (MB/s)","767.17" - "bw_mem-bcopy-8mb (MB/s)","798.88" - "bw_mem-bzero-16mb (MB/s)","2186.69" - "bw_mem-bzero-1mb (MB/s)","1464.71 (min 743.63, max 2185.79)" - "bw_mem-bzero-2mb (MB/s)","1454.12 (min 720.85, max 2187.39)" - "bw_mem-bzero-4mb (MB/s)","1477.28 (min 767.17, max 2187.39)" - "bw_mem-bzero-8mb (MB/s)","1491.74 (min 798.88, max 2184.60)" - "bw_mem-cp-16mb (MB/s)","419.34" - "bw_mem-cp-1mb (MB/s)","1430.43 (min 452.56, max 2408.30)" - "bw_mem-cp-2mb (MB/s)","1359.89 (min 428.45, max 2291.33)" - "bw_mem-cp-4mb (MB/s)","1332.46 (min 441.45, max 2223.46)" - "bw_mem-cp-8mb (MB/s)","1346.78 (min 466.39, max 2227.17)" - "bw_mem-fcp-16mb (MB/s)","737.12" - "bw_mem-fcp-1mb (MB/s)","1502.80 (min 819.81, max 2185.79)" - "bw_mem-fcp-2mb (MB/s)","1489.95 (min 792.50, max 2187.39)" - "bw_mem-fcp-4mb (MB/s)","1511.50 (min 835.60, max 2187.39)" - "bw_mem-fcp-8mb (MB/s)","1513.84 (min 843.08, max 2184.60)" - "bw_mem-frd-16mb (MB/s)","1283.49" - "bw_mem-frd-1mb (MB/s)","1038.16 (min 819.81, max 1256.51)" - "bw_mem-frd-2mb (MB/s)","1024.00 (min 792.50, max 1255.49)" - "bw_mem-frd-4mb (MB/s)","1068.31 (min 835.60, max 1301.02)" - "bw_mem-frd-8mb (MB/s)","1073.22 (min 843.08, max 1303.36)" - "bw_mem-fwr-16mb (MB/s)","2209.03" - "bw_mem-fwr-1mb (MB/s)","1832.41 (min 1256.51, max 2408.30)" - "bw_mem-fwr-2mb (MB/s)","1773.41 (min 1255.49, max 2291.33)" - "bw_mem-fwr-4mb (MB/s)","1762.24 (min 1301.02, max 2223.46)" - "bw_mem-fwr-8mb (MB/s)","1765.27 (min 1303.36, max 2227.17)" - "bw_mem-rd-16mb (MB/s)","1327.36" - "bw_mem-rd-1mb (MB/s)","962.76 (min 610.22, max 1315.30)" - "bw_mem-rd-2mb (MB/s)","932.32 (min 565.93, max 1298.70)" - "bw_mem-rd-4mb (MB/s)","959.33 (min 625.20, max 1293.45)" - "bw_mem-rd-8mb (MB/s)","1010.60 (min 711.87, max 1309.33)" - "bw_mem-rdwr-16mb (MB/s)","712.28" - "bw_mem-rdwr-1mb (MB/s)","504.42 (min 452.56, max 556.28)" - "bw_mem-rdwr-2mb (MB/s)","498.08 (min 428.45, max 567.70)" - "bw_mem-rdwr-4mb (MB/s)","504.86 (min 441.45, max 568.26)" - "bw_mem-rdwr-8mb (MB/s)","594.44 (min 466.39, max 722.48)" - "bw_mem-wr-16mb (MB/s)","757.86" - "bw_mem-wr-1mb (MB/s)","583.25 (min 556.28, max 610.22)" - "bw_mem-wr-2mb (MB/s)","566.82 (min 565.93, max 567.70)" - "bw_mem-wr-4mb (MB/s)","596.73 (min 568.26, max 625.20)" - "bw_mem-wr-8mb (MB/s)","717.18 (min 711.87, max 722.48)" - "bw_mmap_rd-mo-1mb (MB/s)","1237.62" - "bw_mmap_rd-o2c-1mb (MB/s)","495.38" - "bw_pipe (MB/s)","399.08" - "bw_unix (MB/s)","458.06" - "lat_connect (us)","59.62" - "lat_ctx-2-128k (us)","14.58" - "lat_ctx-2-256k (us)","31.29" - "lat_ctx-4-128k (us)","13.82" - "lat_ctx-4-256k (us)","19.00" - "lat_fs-0k (num_files)","217.00" - "lat_fs-10k (num_files)","105.00" - "lat_fs-1k (num_files)","152.00" - "lat_fs-4k (num_files)","134.00" - "lat_mem_rd-stride128-sz1000k (ns)","50.64" - "lat_mem_rd-stride128-sz125k (ns)","6.21" - "lat_mem_rd-stride128-sz250k (ns)","13.20" - "lat_mem_rd-stride128-sz31k (ns)","3.90" + "af_unix_sock_stream_latency (microsec)","32.52" + "af_unix_socket_stream_bandwidth (MBs)","432.01" + "bw_file_rd-io-1mb (MB/s)","936.15" + "bw_file_rd-o2c-1mb (MB/s)","462.32" + "bw_mem-bcopy-16mb (MB/s)","704.35" + "bw_mem-bcopy-1mb (MB/s)","739.92" + "bw_mem-bcopy-2mb (MB/s)","715.95" + "bw_mem-bcopy-4mb (MB/s)","694.93" + "bw_mem-bcopy-8mb (MB/s)","734.08" + "bw_mem-bzero-16mb (MB/s)","2113.33" + "bw_mem-bzero-1mb (MB/s)","1429.47 (min 739.92, max 2119.02)" + "bw_mem-bzero-2mb (MB/s)","1410.98 (min 715.95, max 2106.00)" + "bw_mem-bzero-4mb (MB/s)","1400.28 (min 694.93, max 2105.63)" + "bw_mem-bzero-8mb (MB/s)","1390.98 (min 734.08, max 2047.87)" + "bw_mem-cp-16mb (MB/s)","400.91" + "bw_mem-cp-1mb (MB/s)","1355.73 (min 399.31, max 2312.14)" + "bw_mem-cp-2mb (MB/s)","1280.47 (min 393.31, max 2167.63)" + "bw_mem-cp-4mb (MB/s)","1290.96 (min 423.64, max 2158.27)" + "bw_mem-cp-8mb (MB/s)","1296.73 (min 446.10, max 2147.36)" + "bw_mem-fcp-16mb (MB/s)","712.76" + "bw_mem-fcp-1mb (MB/s)","1452.53 (min 786.04, max 2119.02)" + "bw_mem-fcp-2mb (MB/s)","1434.10 (min 762.20, max 2106.00)" + "bw_mem-fcp-4mb (MB/s)","1453.30 (min 800.96, max 2105.63)" + "bw_mem-fcp-8mb (MB/s)","1430.32 (min 812.76, max 2047.87)" + "bw_mem-frd-16mb (MB/s)","1277.75" + "bw_mem-frd-1mb (MB/s)","1009.87 (min 786.04, max 1233.70)" + "bw_mem-frd-2mb (MB/s)","983.24 (min 762.20, max 1204.28)" + "bw_mem-frd-4mb (MB/s)","1023.15 (min 800.96, max 1245.33)" + "bw_mem-frd-8mb (MB/s)","1039.49 (min 812.76, max 1266.22)" + "bw_mem-fwr-16mb (MB/s)","2119.77" + "bw_mem-fwr-1mb (MB/s)","1772.92 (min 1233.70, max 2312.14)" + "bw_mem-fwr-2mb (MB/s)","1685.96 (min 1204.28, max 2167.63)" + "bw_mem-fwr-4mb (MB/s)","1701.80 (min 1245.33, max 2158.27)" + "bw_mem-fwr-8mb (MB/s)","1706.79 (min 1266.22, max 2147.36)" + "bw_mem-rd-16mb (MB/s)","1273.78" + "bw_mem-rd-1mb (MB/s)","928.42 (min 601.23, max 1255.61)" + "bw_mem-rd-2mb (MB/s)","885.57 (min 520.36, max 1250.78)" + "bw_mem-rd-4mb (MB/s)","885.23 (min 516.33, max 1254.12)" + "bw_mem-rd-8mb (MB/s)","975.55 (min 681.66, max 1269.44)" + "bw_mem-rdwr-16mb (MB/s)","689.74" + "bw_mem-rdwr-1mb (MB/s)","461.90 (min 399.31, max 524.48)" + "bw_mem-rdwr-2mb (MB/s)","466.16 (min 393.31, max 539.01)" + "bw_mem-rdwr-4mb (MB/s)","512.76 (min 423.64, max 601.87)" + "bw_mem-rdwr-8mb (MB/s)","566.43 (min 446.10, max 686.75)" + "bw_mem-wr-16mb (MB/s)","717.49" + "bw_mem-wr-1mb (MB/s)","562.86 (min 524.48, max 601.23)" + "bw_mem-wr-2mb (MB/s)","529.69 (min 520.36, max 539.01)" + "bw_mem-wr-4mb (MB/s)","559.10 (min 516.33, max 601.87)" + "bw_mem-wr-8mb (MB/s)","684.21 (min 681.66, max 686.75)" + "bw_mmap_rd-mo-1mb (MB/s)","1145.48" + "bw_mmap_rd-o2c-1mb (MB/s)","478.93" + "bw_pipe (MB/s)","438.63" + "bw_unix (MB/s)","432.01" + "lat_connect (us)","75.81" + "lat_ctx-2-128k (us)","13.11" + "lat_ctx-2-256k (us)","36.99" + "lat_ctx-4-128k (us)","14.81" + "lat_ctx-4-256k (us)","14.32" + "lat_fs-0k (num_files)","195.00" + "lat_fs-10k (num_files)","87.00" + "lat_fs-1k (num_files)","131.00" + "lat_fs-4k (num_files)","131.00" + "lat_mem_rd-stride128-sz1000k (ns)","52.39" + "lat_mem_rd-stride128-sz125k (ns)","6.18" + "lat_mem_rd-stride128-sz250k (ns)","17.61" + "lat_mem_rd-stride128-sz31k (ns)","2.42" "lat_mem_rd-stride128-sz50 (ns)","2.41" - "lat_mem_rd-stride128-sz500k (ns)","44.90" - "lat_mem_rd-stride128-sz62k (ns)","4.92" - "lat_mmap-1m (us)","57.00" + "lat_mem_rd-stride128-sz500k (ns)","46.57" + "lat_mem_rd-stride128-sz62k (ns)","5.74" + "lat_mmap-1m (us)","70.00" "lat_ops-double-add (ns)","3.21" - "lat_ops-double-div (ns)","17.65" + "lat_ops-double-div (ns)","17.66" "lat_ops-double-mul (ns)","3.21" "lat_ops-float-add (ns)","3.21" - "lat_ops-float-div (ns)","10.43" + "lat_ops-float-div (ns)","10.44" "lat_ops-float-mul (ns)","3.21" "lat_ops-int-add (ns)","0.80" - "lat_ops-int-bit (ns)","0.54" + "lat_ops-int-bit (ns)","0.53" "lat_ops-int-div (ns)","4.81" "lat_ops-int-mod (ns)","5.08" - "lat_ops-int-mul (ns)","3.45" + "lat_ops-int-mul (ns)","3.44" "lat_ops-int64-add (ns)","0.80" - "lat_ops-int64-bit (ns)","0.54" + "lat_ops-int64-bit (ns)","0.53" "lat_ops-int64-div (ns)","7.62" "lat_ops-int64-mod (ns)","5.88" "lat_ops-int64-mul (ns)","3.98" - "lat_pagefault (us)","0.95" - "lat_pipe (us)","22.06" - "lat_proc-exec (us)","1411.25" - "lat_proc-fork (us)","1221.80" + "lat_pagefault (us)","1.80" + "lat_pipe (us)","24.62" + "lat_proc-exec (us)","1551.25" + "lat_proc-fork (us)","1343.25" "lat_proc-proccall (us)","0.01" - "lat_select (us)","37.59" - "lat_sem (us)","3.63" - "lat_sig-catch (us)","5.82" - "lat_sig-install (us)","0.79" - "lat_sig-prot (us)","0.95" - "lat_syscall-fstat (us)","2.00" + "lat_select (us)","38.16" + "lat_sem (us)","4.04" + "lat_sig-catch (us)","5.97" + "lat_sig-install (us)","0.75" + "lat_sig-prot (us)","0.61" + "lat_syscall-fstat (us)","2.09" "lat_syscall-null (us)","0.51" - "lat_syscall-open (us)","555.70" - "lat_syscall-read (us)","0.78" - "lat_syscall-stat (us)","5.07" - "lat_syscall-write (us)","0.75" + "lat_syscall-open (us)","418.36" + "lat_syscall-read (us)","0.88" + "lat_syscall-stat (us)","5.27" + "lat_syscall-write (us)","0.85" "lat_tcp (us)","1.02" - "lat_unix (us)","27.34" - "latency_for_0.50_mb_block_size (nanosec)","44.90" - "latency_for_1.00_mb_block_size (nanosec)","25.32 (min 0.00, max 50.64)" - "pipe_bandwidth (MBs)","399.08" - "pipe_latency (microsec)","22.06" + "lat_unix (us)","32.52" + "latency_for_0.50_mb_block_size (nanosec)","46.57" + "latency_for_1.00_mb_block_size (nanosec)","26.19 (min 0.00, max 52.39)" + "pipe_bandwidth (MBs)","438.63" + "pipe_latency (microsec)","24.62" "procedure_call (microsec)","0.01" - "select_on_200_tcp_fds (microsec)","37.59" - "semaphore_latency (microsec)","3.63" - "signal_handler_latency (microsec)","0.79" - "signal_handler_overhead (microsec)","5.82" - "tcp_ip_connection_cost_to_localhost (microsec)","59.62" + "select_on_200_tcp_fds (microsec)","38.16" + "semaphore_latency (microsec)","4.04" + "signal_handler_latency (microsec)","0.75" + "signal_handler_overhead (microsec)","5.97" + "tcp_ip_connection_cost_to_localhost (microsec)","75.81" "tcp_latency_using_localhost (microsec)","1.02" + + + Dhrystone ^^^^^^^^^ Dhrystone is a core only benchmark that runs from warm L1 caches in all modern processors. It scales linearly with clock speed. -Please take note, different runs may produce slightly different results. -This is advised to run this test multiple times in order to get maximum +Please take note, different run may produce different slightly results. +This is advised to run this test multiple times in order to get maximum performance numbers. + Execute the benchmark with the following: :: @@ -201,6 +206,8 @@ Execute the benchmark with the following: "dhrystone_per_mhz (DMIPS/MHz)","9.20" "dhrystone_per_second (DhrystoneP)","6451613.00" + + Whetstone ^^^^^^^^^ Whetstone is a benchmark primarily measuring floating-point arithmetic performance. @@ -216,6 +223,9 @@ Execute the benchmark with the following: "whetstone (MIPS)","5000.00" + + + Linpack ^^^^^^^ Linpack measures peak double precision (64 bit) floating point performance in @@ -224,7 +234,10 @@ solving a dense linear system. .. csv-table:: Linpack Benchmarks :header: "Benchmarks","am62lxx_evm-fs: perf" - "linpack (Kflops)","514473.00" + "linpack (Kflops)","511674.00" + + + NBench ^^^^^^ @@ -237,15 +250,18 @@ https://nbench.io/articles/index.html .. csv-table:: NBench Benchmarks :header: "Benchmarks","am62lxx_evm-fs: perf" - "assignment (Iterations)","12.90" - "fourier (Iterations)","20382.00" - "fp_emulation (Iterations)","192.47" - "huffman (Iterations)","1057.00" - "idea (Iterations)","3075.00" - "lu_decomposition (Iterations)","473.07" + "assignment (Iterations)","12.99" + "fourier (Iterations)","20380.00" + "fp_emulation (Iterations)","192.46" + "huffman (Iterations)","1056.50" + "idea (Iterations)","3074.50" + "lu_decomposition (Iterations)","475.39" "neural_net (Iterations)","7.73" - "numeric_sort (Iterations)","558.90" - "string_sort (Iterations)","146.37" + "numeric_sort (Iterations)","555.93" + "string_sort (Iterations)","146.40" + + + Stream ^^^^^^ @@ -268,10 +284,13 @@ Execute the benchmark with the following: .. csv-table:: Stream Benchmarks :header: "Benchmarks","am62lxx_evm-fs: perf" - "add (MB/s)","1914.10" - "copy (MB/s)","1993.60" - "scale (MB/s)","2136.40" - "triad (MB/s)","1890.70" + "add (MB/s)","1538.50" + "copy (MB/s)","1605.30" + "scale (MB/s)","1718.90" + "triad (MB/s)","1526.50" + + + CoreMarkPro ^^^^^^^^^^^ @@ -281,34 +300,39 @@ While CoreMark stresses the CPU pipeline, CoreMark-Pro tests the entire processo adding comprehensive support for multicore technology, a combination of integer and floating-point workloads, and data sets for utilizing larger memory subsystems. + .. csv-table:: CoreMarkPro Benchmarks :header: "Benchmarks","am62lxx_evm-fs: perf" "cjpeg-rose7-preset (workloads/)","37.31" "core (workloads/)","0.27" - "coremark-pro ()","725.83" - "linear_alg-mid-100x100-sp (workloads/)","13.09" - "loops-all-mid-10k-sp (workloads/)","0.60" + "coremark-pro ()","688.91" + "linear_alg-mid-100x100-sp (workloads/)","13.08" + "loops-all-mid-10k-sp (workloads/)","0.56" "nnet_test (workloads/)","0.97" - "parser-125k (workloads/)","7.09" - "radix2-big-64k (workloads/)","20.48" - "sha-test (workloads/)","72.46" - "zip-test (workloads/)","19.61" + "parser-125k (workloads/)","5.88" + "radix2-big-64k (workloads/)","18.16" + "sha-test (workloads/)","69.93" + "zip-test (workloads/)","18.52" + + + .. csv-table:: CoreMarkProTwoCore Benchmarks :header: "Benchmarks","am62lxx_evm-fs: perf" "cjpeg-rose7-preset (workloads/)","70.92" "core (workloads/)","0.53" - "coremark-pro ()","1172.58" - "linear_alg-mid-100x100-sp (workloads/)","25.85" - "loops-all-mid-10k-sp (workloads/)","1.01" + "coremark-pro ()","1170.45" + "linear_alg-mid-100x100-sp (workloads/)","25.61" + "loops-all-mid-10k-sp (workloads/)","0.99" "nnet_test (workloads/)","1.90" - "parser-125k (workloads/)","5.04" - "radix2-big-64k (workloads/)","26.82" + "parser-125k (workloads/)","5.48" + "radix2-big-64k (workloads/)","26.26" "sha-test (workloads/)","138.89" - "zip-test (workloads/)","33.90" + "zip-test (workloads/)","32.26" + MultiBench ^^^^^^^^^^ MultiBenchâ„¢ is a suite of benchmarks that allows processor and system designers to @@ -320,7 +344,7 @@ demonstrating how well a processor scales over scalable data inputs. Multiple workload processing: shows the scalability of general-purpose processing, demonstrating concurrency over both code and data. MultiBench combines a wide variety of application-specific workloads with the EEMBC -Multi-Instance-Test Harness (MITH), compatible and portable with most multicore +Multi-Instance-Test Harness (MITH), compatible and portable with most any multicore processors and operating systems. MITH uses a thread-based API (POSIX-compliant) to establish a common programming model that communicates with the benchmark through an abstraction layer and provides a flexible interface to allow a wide variety of @@ -329,48 +353,57 @@ thread-enabled workloads to be tested. .. csv-table:: Multibench Benchmarks :header: "Benchmarks","am62lxx_evm-fs: perf" - "4m-check (workloads/)","278.86" - "4m-check-reassembly (workloads/)","54.26" - "4m-check-reassembly-tcp (workloads/)","34.97" - "4m-check-reassembly-tcp-cmykw2-rotatew2 (workloads/)","15.24" - "4m-check-reassembly-tcp-x264w2 (workloads/)","0.91" - "4m-cmykw2 (workloads/)","108.11" - "4m-cmykw2-rotatew2 (workloads/)","19.24" - "4m-reassembly (workloads/)","49.75" - "4m-rotatew2 (workloads/)","20.15" - "4m-tcp-mixed (workloads/)","98.77" - "4m-x264w2 (workloads/)","0.93" + "4m-check (workloads/)","314.35" + "4m-check-reassembly (workloads/)","64.10" + "4m-check-reassembly-tcp (workloads/)","39.75" + "4m-check-reassembly-tcp-cmykw2-rotatew2 (workloads/)","17.39" + "4m-check-reassembly-tcp-x264w2 (workloads/)","0.94" + "4m-cmykw2 (workloads/)","110.87" + "4m-cmykw2-rotatew2 (workloads/)","23.34" + "4m-reassembly (workloads/)","57.24" + "4m-rotatew2 (workloads/)","23.21" + "4m-tcp-mixed (workloads/)","105.96" + "4m-x264w2 (workloads/)","0.95" "empty-wld (workloads/)","1.00" - "idct-4m (workloads/)","16.95" - "idct-4mw1 (workloads/)","16.98" - "ippktcheck-4m (workloads/)","278.68" - "ippktcheck-4mw1 (workloads/)","278.46" - "ipres-4m (workloads/)","65.56" - "ipres-4mw1 (workloads/)","65.10" - "md5-4m (workloads/)","19.24" - "md5-4mw1 (workloads/)","19.94" - "rgbcmyk-4m (workloads/)","56.37" - "rgbcmyk-4mw1 (workloads/)","56.88" - "rotate-4ms1 (workloads/)","18.33" - "rotate-4ms1w1 (workloads/)","18.66" - "rotate-4ms64 (workloads/)","18.49" - "rotate-4ms64w1 (workloads/)","18.64" - "x264-4mq (workloads/)","0.50" - "x264-4mqw1 (workloads/)","0.50" + "idct-4m (workloads/)","17.08" + "idct-4mw1 (workloads/)","17.09" + "ippktcheck-4m (workloads/)","313.83" + "ippktcheck-4mw1 (workloads/)","312.23" + "ipres-4m (workloads/)","75.15" + "ipres-4mw1 (workloads/)","75.23" + "md5-4m (workloads/)","19.67" + "md5-4mw1 (workloads/)","19.62" + "rgbcmyk-4m (workloads/)","56.92" + "rgbcmyk-4mw1 (workloads/)","56.96" + "rotate-4ms1 (workloads/)","20.58" + "rotate-4ms1w1 (workloads/)","20.55" + "rotate-4ms64 (workloads/)","20.82" + "rotate-4ms64w1 (workloads/)","20.89" + "x264-4mq (workloads/)","0.51" + "x264-4mqw1 (workloads/)","0.51" + + Boot-time Measurement --------------------- + Boot media: MMCSD ^^^^^^^^^^^^^^^^^ .. csv-table:: Linux boot time MMCSD :header: "Boot Configuration","am62lxx_evm-fs: Boot time in seconds: avg(min,max)" - "Linux boot time from SD with default rootfs (20 boot cycles)","19.08 (min 18.56, max 19.56)" + "Linux boot time from SD with default rootfs (20 boot cycles)","19.37 (min 19.00, max 19.75)" + + Boot time numbers [avg, min, max] are measured from "Starting kernel" to Linux prompt across 20 boot cycles. + + +| + ALSA SoC Audio Driver --------------------- @@ -379,46 +412,65 @@ ALSA SoC Audio Driver #. Format - S16\_LE #. Period size - 64 + .. csv-table:: Audio Capture :header: "Sampling Rate (Hz)","am62lxx_evm-fs: Throughput (bits/sec)","am62lxx_evm-fs: CPU Load (%)" - "8000","255999.00","0.86" - "11025","352782.00","0.95" - "16000","511974.00","0.82" - "22050","705568.00","1.21" - "24000","705570.00","1.18" + "8000","255998.00","1.04" + "11025","352797.00","1.03" + "16000","511995.00","0.98" + "22050","705593.00","1.16" + "24000","705593.00","1.18" + "32000","1023991.00","1.01" + "44100","1411186.00","1.25" + "48000","1535985.00","1.19" + "88200","2822365.00","1.76" + "96000","3071960.00","1.05" + + + .. csv-table:: Audio Playback :header: "Sampling Rate (Hz)","am62lxx_evm-fs: Throughput (bits/sec)","am62lxx_evm-fs: CPU Load (%)" - "8000","255336.00","0.78" - "11025","352931.00","0.90" + "8000","255334.00","0.99" + "11025","352944.00","0.81" + "16000","512208.00","0.78" + "22050","705887.00","0.79" + "24000","705883.00","0.87" + "32000","1024414.00","0.79" + "44100","1411770.00","1.08" + "48000","1536621.00","1.43" + "88200","2823533.00","1.32" + "96000","3073232.00","0.87" + +| Ethernet --------- +----------------- Ethernet performance benchmarks were measured using Netperf 2.7.1 https://hewlettpackard.github.io/netperf/doc/netperf.html Test procedures were modeled after those defined in RFC-2544: -https://tools.ietf.org/html/rfc2544, where the DUT is the TI device +https://tools.ietf.org/html/rfc2544, where the DUT is the TI device and the "tester" used was a Linux PC. To produce consistent results, -it is recommended to carry out performance tests in a private network and to avoid -running NFS on the same interface used in the test. In these results, +it is recommended to carry out performance tests in a private network and to avoid +running NFS on the same interface used in the test. In these results, CPU utilization was captured as the total percentage used across all cores on the device, -while running the performance test over one external interface. +while running the performance test over one external interface. UDP Throughput (0% loss) was measured by the procedure defined in RFC-2544 section 26.1: Throughput. In this scenario, netperf options burst_size (-b) and wait_time (-w) are used to limit bandwidth -during different trials of the test, with the goal of finding the highest rate at which +during different trials of the test, with the goal of finding the highest rate at which no loss is seen. For example, to limit bandwidth to 500Mbits/sec with 1472B datagram: :: burst_size = / 8 (bits -> bytes) / / 100 (seconds -> 10 ms) - burst_size = 500000000 / 8 / 1472 / 100 = 425 + burst_size = 500000000 / 8 / 1472 / 100 = 425 wait_time = 10 milliseconds (minimum supported by Linux PC used for testing) UDP Throughput (possible loss) was measured by capturing throughput and packet loss statistics when -running the netperf test with no bandwidth limit (remove -b/-w options). +running the netperf test with no bandwidth limit (remove -b/-w options). In order to start a netperf client on one device, the other device must have netserver running. To start netserver: @@ -427,10 +479,10 @@ To start netserver: netserver [-p ] [-4 (IPv4 addressing)] [-6 (IPv6 addressing)] -Running the following shell script from the DUT will trigger netperf clients to measure +Running the following shell script from the DUT will trigger netperf clients to measure bidirectional TCP performance for 60 seconds and report CPU utilization. Parameter -k is used in -client commands to summarize selected statistics on their own line and -j is used to gain -additional timing measurements during the test. +client commands to summarize selected statistics on their own line and -j is used to gain +additional timing measurements during the test. :: @@ -439,38 +491,43 @@ additional timing measurements during the test. do netperf -H -j -c -l 60 -t TCP_STREAM -- -k DIRECTION,THROUGHPUT,MEAN_LATENCY,LOCAL_CPU_UTIL,REMOTE_CPU_UTIL,LOCAL_BYTES_SENT,REMOTE_BYTES_RECVD,LOCAL_SEND_SIZE & - + netperf -H -j -c -l 60 -t TCP_MAERTS -- -k DIRECTION,THROUGHPUT,MEAN_LATENCY,LOCAL_CPU_UTIL,REMOTE_CPU_UTIL,LOCAL_BYTES_SENT,REMOTE_BYTES_RECVD,LOCAL_SEND_SIZE & done -Running the following commands will trigger netperf clients to measure UDP burst performance for -60 seconds at various burst/datagram sizes and report CPU utilization. +Running the following commands will trigger netperf clients to measure UDP burst performance for +60 seconds at various burst/datagram sizes and report CPU utilization. -- For UDP egress tests, run netperf client from DUT and start netserver on tester. +- For UDP egress tests, run netperf client from DUT and start netserver on tester. :: - netperf -H -j -c -l 60 -t UDP_STREAM -b -w -- -m - -k DIRECTION,THROUGHPUT,MEAN_LATENCY,LOCAL_CPU_UTIL,REMOTE_CPU_UTIL,LOCAL_BYTES_SENT,REMOTE_BYTES_RECVD,LOCAL_SEND_SIZE + netperf -H -j -c -l 60 -t UDP_STREAM -b -w -- -m + -k DIRECTION,THROUGHPUT,MEAN_LATENCY,LOCAL_CPU_UTIL,REMOTE_CPU_UTIL,LOCAL_BYTES_SENT,REMOTE_BYTES_RECVD,LOCAL_SEND_SIZE -- For UDP ingress tests, run netperf client from tester and start netserver on DUT. +- For UDP ingress tests, run netperf client from tester and start netserver on DUT. :: netperf -H -j -C -l 60 -t UDP_STREAM -b -w -- -m - -k DIRECTION,THROUGHPUT,MEAN_LATENCY,LOCAL_CPU_UTIL,REMOTE_CPU_UTIL,LOCAL_BYTES_SENT,REMOTE_BYTES_RECVD,LOCAL_SEND_SIZE + -k DIRECTION,THROUGHPUT,MEAN_LATENCY,LOCAL_CPU_UTIL,REMOTE_CPU_UTIL,LOCAL_BYTES_SENT,REMOTE_BYTES_RECVD,LOCAL_SEND_SIZE + -CPSW/CPSW2g/CPSW3g Ethernet Driver +CPSW/CPSW2g/CPSW3g Ethernet Driver ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. rubric:: TCP Bidirectional Throughput + +.. rubric:: TCP Bidirectional Throughput :name: CPSW2g-tcp-bidirectional-throughput .. csv-table:: CPSW2g TCP Bidirectional Throughput :header: "Command Used","am62lxx_evm-fs: THROUGHPUT (Mbits/sec)","am62lxx_evm-fs: CPU Load % (LOCAL_CPU_UTIL)" - "netperf -H 192.168.0.1 -j -c -C -l 60 -t TCP_STREAM; netperf -H 192.168.0.1 -j -c -C -l 60 -t TCP_MAERTS","1110.66","97.65" + "netperf -H 192.168.0.1 -j -c -C -l 60 -t TCP_STREAM; netperf -H 192.168.0.1 -j -c -C -l 60 -t TCP_MAERTS","1243.73","96.90" + + + .. rubric:: TCP Bidirectional Throughput Interrupt Pacing :name: CPSW2g-tcp-bidirectional-throughput-interrupt-pacing @@ -478,21 +535,59 @@ CPSW/CPSW2g/CPSW3g Ethernet Driver .. csv-table:: CPSW2g TCP Bidirectional Throughput Interrupt Pacing :header: "Command Used","am62lxx_evm-fs: THROUGHPUT (Mbits/sec)","am62lxx_evm-fs: CPU Load % (LOCAL_CPU_UTIL)" - "netperf -H 192.168.0.1 -j -c -C -l 60 -t TCP_STREAM; netperf -H 192.168.0.1 -j -c -C -l 60 -t TCP_MAERTS","317.24","32.85" + "netperf -H 192.168.0.1 -j -c -C -l 60 -t TCP_STREAM; netperf -H 192.168.0.1 -j -c -C -l 60 -t TCP_MAERTS","1148.94","95.96" + + + +.. rubric:: UDP Throughput + :name: CPSW2g-udp-throughput-0-loss + +.. csv-table:: CPSW2g UDP Egress Throughput 0 loss + :header: "Frame Size(bytes)","am62lxx_evm-fs: UDP Datagram Size(bytes) (LOCAL_SEND_SIZE)","am62lxx_evm-fs: THROUGHPUT (Mbits/sec)","am62lxx_evm-fs: Packets Per Second (kPPS)","am62lxx_evm-fs: CPU Load % (LOCAL_CPU_UTIL)" + + "64","18.00","11.89","83.00","85.06" + "128","82.00","56.95","87.00","84.68" + "256","210.00","142.75","85.00","51.47" + "1024","978.00","606.16","77.00","81.25" + "1518","1472.00","877.82","75.00","81.39" + + + + +.. csv-table:: CPSW2g UDP Ingress Throughput 0 loss + :header: "Frame Size(bytes)","am62lxx_evm-fs: UDP Datagram Size(bytes) (LOCAL_SEND_SIZE)","am62lxx_evm-fs: THROUGHPUT (Mbits/sec)","am62lxx_evm-fs: Packets Per Second (kPPS)","am62lxx_evm-fs: CPU Load % (LOCAL_CPU_UTIL)" + + "64","18.00","1.21","8.00","8.87" + "128","82.00","3.08","5.00","3.80" + "256","210.00","13.61","8.00","5.80" + "1024","978.00","65.72","8.00","8.75" + "1518","1472.00","98.92","8.00","11.86" + + + + +.. csv-table:: CPSW2g UDP Ingress Throughput possible loss + :header: "Frame Size(bytes)","am62lxx_evm-fs: UDP Datagram Size(bytes) (LOCAL_SEND_SIZE)","am62lxx_evm-fs: THROUGHPUT (Mbits/sec)","am62lxx_evm-fs: Packets Per Second (kPPS)","am62lxx_evm-fs: CPU Load % (LOCAL_CPU_UTIL)","am62lxx_evm-fs: Packet Loss %" + + "64","18.00","20.14","140.00","80.40","83.81" + "128","82.00","66.92","102.00","73.67","79.35" + "256","210.00","191.78","114.00","80.03","46.16" + "1024","978.00","629.86","81.00","77.38","11.72" + "1518","1472.00","721.91","61.00","84.22","6.20" + + +| Linux OSPI Flash Driver ----------------------- -RAW -^^^ -.. csv-table:: OSPI Raw Flash Driver - :header: "File size (Mbytes)","am62lxx_evm-fs: Raw Read Throughput (Mbytes/sec)" +AM62LXX-EVM +^^^^^^^^^^^ - "50","172.41" UBIFS -^^^^^ +""""" .. csv-table:: OSPI Flash Driver :header: "Buffer size (bytes)","am62lxx_evm-fs: Write UBIFS Throughput (Mbytes/sec)","am62lxx_evm-fs: Write UBIFS CPU Load (%)","am62lxx_evm-fs: Read UBIFS Throughput (Mbytes/sec)","am62lxx_evm-fs: Read UBIFS CPU Load (%)" @@ -502,23 +597,211 @@ UBIFS "524288","0.14 (min 0.11, max 0.19)","51.41 (min 50.80, max 52.05)","56.14","33.33" "1048576","0.14 (min 0.11, max 0.19)","51.64 (min 51.40, max 51.84)","53.84","37.50" -Linux QSPI/OSPI Driver ----------------------- -.. csv-table:: - :header: "Flash","File Size","Read Throughput","Write Throughput" - "OSPI NOR","50 MB","205 MB/s","403 KB/s" - "QSPI NAND","50 MB","18.6 MB/s","4.9 MB/s" +RAW +""" -U-Boot QSPI/OSPI Driver ------------------------ +.. csv-table:: OSPI Raw Flash Driver + :header: "File size (Mbytes)","am62lxx_evm-fs: Raw Read Throughput (Mbytes/sec)" -.. csv-table:: - :header: "Flash","File Size","Read Throughput","Write Throughput" + "50","16.78" + + +EMMC Driver +----------- +.. warning:: + + **IMPORTANT**: The performance numbers can be severely affected if the media is + mounted in sync mode. Hot plug scripts in the filesystem mount + removable media in sync mode to ensure data integrity. For performance + sensitive applications, umount the auto-mounted filesystem and + re-mount in async mode. + + + +EMMC EXT4 FIO 1G +^^^^^^^^^^^^^^^^ + + +.. csv-table:: EMMC EXT4 FIO 1G + :header: "Buffer size (bytes)","am62lxx_evm-fs: Write EXT4 Throughput (Mbytes/sec)","am62lxx_evm-fs: Write EXT4 CPU Load (%)","am62lxx_evm-fs: Read EXT4 Throughput (Mbytes/sec)","am62lxx_evm-fs: Read EXT4 CPU Load (%)" + + "1m","128.00","9.30","180.00","8.80" + "4m","125.00","6.05","180.00","5.24" + "4k","85.10","59.89","91.90","56.88" + "256k","122.00","12.02","179.00","10.41" + + +EMMC RAW FIO 1G +^^^^^^^^^^^^^^^ + + +.. csv-table:: EMMC RAW FIO 1G + :header: "Buffer size (bytes)","am62lxx_evm-fs: Write Raw Throughput (Mbytes/sec)","am62lxx_evm-fs: Write Raw CPU Load (%)","am62lxx_evm-fs: Read Raw Throughput (Mbytes/sec)","am62lxx_evm-fs: Read Raw CPU Load (%)" + + "1m","35.80","3.58","44.30","3.39" + "4m","38.40","2.84","44.30","2.33" + "4k","27.80","20.13","41.50","26.05" + "256k","35.90","5.15","44.20","4.76" + + +EMMC EXT4 +^^^^^^^^^ + + +.. csv-table:: EMMC EXT4 + :header: "Buffer size (bytes)","am62lxx_evm-fs: Write EXT4 Throughput (Mbytes/sec)","am62lxx_evm-fs: Write EXT4 CPU Load (%)","am62lxx_evm-fs: Read EXT4 Throughput (Mbytes/sec)","am62lxx_evm-fs: Read EXT4 CPU Load (%)" + + "102400","35.30 (min 34.37, max 35.63)","8.58 (min 7.78, max 10.89)","46.13","9.42" + "262144","33.50 (min 28.29, max 36.51)","8.46 (min 6.57, max 10.40)","46.21","10.99" + "524288","34.84 (min 30.34, max 36.49)","8.49 (min 6.82, max 10.91)","46.36","8.28" + "1048576","33.58 (min 28.79, max 36.14)","7.98 (min 6.34, max 11.15)","46.34","9.07" + "5242880","33.76 (min 28.50, max 36.40)","7.93 (min 5.88, max 10.95)","46.34","8.69" + + +EMMC VFAT +^^^^^^^^^ + + +.. csv-table:: EMMC VFAT + :header: "Buffer size (bytes)","am62lxx_evm-fs: Write VFAT Throughput (Mbytes/sec)","am62lxx_evm-fs: Write VFAT CPU Load (%)","am62lxx_evm-fs: Read VFAT Throughput (Mbytes/sec)","am62lxx_evm-fs: Read VFAT CPU Load (%)" + + "102400","22.07 (min 9.07, max 27.48)","11.72 (min 10.34, max 13.37)","45.80","12.22" + "262144","25.90 (min 9.68, max 31.34)","6.65 (min 5.28, max 10.10)","45.90","10.55" + "524288","25.86 (min 9.84, max 32.57)","9.64 (min 7.73, max 10.85)","45.88","9.43" + "1048576","26.16 (min 9.97, max 33.33)","9.11 (min 7.40, max 10.77)","45.89","9.23" + "5242880","28.22 (min 10.12, max 34.10)","9.96 (min 8.82, max 10.53)","45.86","9.25" + + +UBoot EMMC Driver +----------------- + + + +.. csv-table:: UBOOT EMMC RAW + :header: "File size (bytes in hex)","am62lxx_evm-fs: Write Throughput (Kbytes/sec)","am62lxx_evm-fs: Read Throughput (Kbytes/sec)" + + "2000000","114975.44","175229.95" + "4000000","128000.00","178086.96" + + + +MMCSD +----- + +.. warning:: + + **IMPORTANT**: The performance numbers can be severely affected if the media is + mounted in sync mode. Hot plug scripts in the filesystem mount + removable media in sync mode to ensure data integrity. For performance + sensitive applications, umount the auto-mounted filesystem and + re-mount in async mode. + + +MMC EXT4 FIO 1G +^^^^^^^^^^^^^^^ + + + +.. csv-table:: MMC EXT4 FIO 1G + :header: "Buffer size (bytes)","am62lxx_evm-fs: Write EXT4 Throughput (Mbytes/sec)","am62lxx_evm-fs: Write EXT4 CPU Load (%)","am62lxx_evm-fs: Read EXT4 Throughput (Mbytes/sec)","am62lxx_evm-fs: Read EXT4 CPU Load (%)" + + "1m","18.70","3.03","86.10","6.06" + "4m","18.90","2.77","86.90","3.97" + "4k","4.29","10.42","13.50","14.25" + "256k","17.90","4.38","82.20","7.38" + + + + +MMC RAW FIO 1G +^^^^^^^^^^^^^^ + + + + +.. csv-table:: MMC RAW FIO 1G + :header: "Buffer size (bytes)","am62lxx_evm-fs: Write Raw Throughput (Mbytes/sec)","am62lxx_evm-fs: Write Raw CPU Load (%)","am62lxx_evm-fs: Read Raw Throughput (Mbytes/sec)","am62lxx_evm-fs: Read Raw CPU Load (%)" + + "1m","15.20","2.61","22.80","2.60" + "4m","15.20","2.17","22.80","2.23" + "4k","3.96","6.55","9.70","9.60" + "256k","15.20","3.46","22.50","3.52" + + + +MMC EXT4 +^^^^^^^^ + + + +.. csv-table:: MMC EXT4 + :header: "Buffer size (bytes)","am62lxx_evm-fs: Write Raw Throughput (Mbytes/sec)","am62lxx_evm-fs: Write Raw CPU Load (%)","am62lxx_evm-fs: Read Raw Throughput (Mbytes/sec)","am62lxx_evm-fs: Read Raw CPU Load (%)" + + "102400","9.34 (min 9.21, max 9.44)","3.08 (min 2.75, max 3.57)","11.21","3.28" + "262144","8.94 (min 8.73, max 9.11)","2.90 (min 2.58, max 3.43)","10.80","2.90" + "524288","9.06 (min 8.83, max 9.15)","2.97 (min 2.68, max 3.50)","10.98","2.53" + "1048576","9.09 (min 9.00, max 9.18)","2.78 (min 2.61, max 3.31)","11.22","2.58" + "5242880","9.00 (min 8.60, max 9.26)","2.80 (min 2.58, max 3.45)","11.15","2.51" + + + +The performance numbers were captured using the following: + +- SanDisk Max Endurance SD card (SDSQQVR-032G-GN6IA) +- Partition was mounted with async option + + + + +UBoot MMCSD +----------- + + +UBOOT MMCSD FAT +^^^^^^^^^^^^^^^ + + + +.. csv-table:: UBOOT MMCSD FAT + :header: "File size (bytes in hex)","am62lxx_evm-fs: Write Throughput (Kbytes/sec)","am62lxx_evm-fs: Read Throughput (Kbytes/sec)" + + "400000","19883.50","22505.49" + "800000","16650.41","23011.24" + "1000000","16855.97","23272.73" + + + +The performance numbers were captured using the following: + +- SanDisk Max Endurance SD card (SDSQQVR-032G-GN6IA) + + +| + +USB Driver +---------- + + + +USB Device Controller +^^^^^^^^^^^^^^^^^^^^^ + + +.. csv-table:: USBDEVICE HIGHSPEED SLAVE_READ_THROUGHPUT + :header: "Number of Blocks","am62lxx_evm-fs: Throughput (MB/sec)" + + "150","37.10" + + + + +.. csv-table:: USBDEVICE HIGHSPEED SLAVE_WRITE_THROUGHPUT + :header: "Number of Blocks","am62lxx_evm-fs: Throughput (MB/sec)" + + "150","32.50" - "OSPI NOR","50 MB","303 MB/s","167 KB/s" - "QSPI NAND","50 MB","25.7 MB/s","5.5 MB/s" Low Power Performance ---------------------