From f3254b2dba5f8a63ec5e18efeb3d17c9024e46a2 Mon Sep 17 00:00:00 2001 From: Kendall Willis Date: Thu, 30 Jul 2026 16:12:48 -0500 Subject: [PATCH] feat(Linux_Performance_Guide): update LPM perf measurements for SDK 12.1 Update the power and resume latency measurements for SDK 12.1. Signed-off-by: Kendall Willis --- .../AM62AX/linux/Linux_Performance_Guide.rst | 44 +++---- .../AM62LX/linux/Linux_Performance_Guide.rst | 107 ++++-------------- .../AM62PX/linux/Linux_Performance_Guide.rst | 44 ++++--- .../AM62X/linux/Linux_Performance_Guide.rst | 30 ++--- 4 files changed, 79 insertions(+), 146 deletions(-) diff --git a/source/devices/AM62AX/linux/Linux_Performance_Guide.rst b/source/devices/AM62AX/linux/Linux_Performance_Guide.rst index 5148d0d1d..aff3d3b50 100644 --- a/source/devices/AM62AX/linux/Linux_Performance_Guide.rst +++ b/source/devices/AM62AX/linux/Linux_Performance_Guide.rst @@ -824,6 +824,7 @@ Listed for each algorithm are the code snippets used to run each time -v openssl speed -elapsed -evp aes-128-cbc +| Low Power Performance --------------------- @@ -836,34 +837,34 @@ Power Performance "vdd_core","0.85","0.00" "vddr_core","0.85","0.00" - "soc_dvdd_3v3","3.30","3.31" - "soc_dvdd_1v8","1.80","1.89" + "soc_dvdd_3v3","3.30","1.98" + "soc_dvdd_1v8","1.80","1.98" "vdda_1v8","1.80","0.02" - "vdd_lpddr4","1.10","3.31" - "Total"," ","8.53" + "vdd_lpddr4","1.10","4.14" + "Total"," ","8.13" .. csv-table:: DeepSleep Power Performance :header: "Rail name","Rail voltage(V)","Power (mW)" - "vdd_core","0.85","15.96" - "vddr_core","0.85","1.87" - "soc_dvdd_3v3","3.30","6.61" - "soc_dvdd_1v8","1.80","2.44" - "vdda_1v8","1.80","11.13" - "vdd_lpddr4","1.10","2.20" - "Total"," ","40.21" + "vdd_core","0.85","12.13" + "vddr_core","0.85","1.68" + "soc_dvdd_3v3","3.30","6.03" + "soc_dvdd_1v8","1.80","6.27" + "vdda_1v8","1.80","10.86" + "vdd_lpddr4","1.10","2.21" + "Total"," ","39.18" .. csv-table:: MCU Only Power Performance :header: "Rail name","Rail voltage(V)","Power (mW)" - "vdd_core","0.85","134.81" - "vddr_core","0.85","1.92" - "soc_dvdd_3v3","3.30","11.40" - "soc_dvdd_1v8","1.80","2.17" - "vdda_1v8","1.80","19.55" - "vdd_lpddr4","1.10","2.76" - "Total"," ","172.60" + "vdd_core","0.85","135.91" + "vddr_core","0.85","1.90" + "soc_dvdd_3v3","3.30","11.07" + "soc_dvdd_1v8","1.80","5.59" + "vdda_1v8","1.80","19.50" + "vdd_lpddr4","1.10","3.31" + "Total"," ","177.29" Partial I/O Data - All voltage rails were measured to be near 0V @@ -871,6 +872,7 @@ Partial I/O Data .. note:: The measurements shown are from an AM62Ax rev E3. Results may vary based off of the board revision being used. + For the most accurate power measurements, use the latest TIVA firmware. Further optimizations are possible for these low power modes. Please refer to the AM62x Power Consumption App Note (https://www.ti.com/lit/pdf/spradg1) @@ -880,9 +882,9 @@ Resume Latency Performance .. csv-table:: LPM Resume Latency Performance :header: "Low Power Mode","Total Resume Latency (ms)" - "I/O Only + DDR", "742" - "DeepSleep", "153" - "MCU Only", "115" + "I/O Only + DDR", "775" + "DeepSleep", "140" + "MCU Only", "92" The performance numbers are measured without the Linux printk logs. To remove the Linux printk logs, run the following commands in the terminal: diff --git a/source/devices/AM62LX/linux/Linux_Performance_Guide.rst b/source/devices/AM62LX/linux/Linux_Performance_Guide.rst index 810e70527..6f93fc3a6 100644 --- a/source/devices/AM62LX/linux/Linux_Performance_Guide.rst +++ b/source/devices/AM62LX/linux/Linux_Performance_Guide.rst @@ -910,80 +910,6 @@ Listed for each algorithm are the code snippets used to run each time -v openssl speed -elapsed -evp aes-128-cbc -.. _crypto-performance: - -Crypto Performance Comparison -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -The following table shows different AES/SHA algorithms throughput measured using -openssl speed across DTHEv2 accelerator, ARM Cryptographic Extension (CE), and baseline ARM CPU. - -.. csv-table:: Crypto Accelerator Performance - :header: "Algorithm", "Size (bytes)", "Accelerator (MB/s)", "ARM CE (MB/s)", "ARM (MB/s)" - :widths: 20, 25, 20, 20, 20 - - "aes-128-cbc", "16", "0.28", "86.98", "27.92" - "aes-128-cbc", "64", "1.15", "271.53", "35.53" - "aes-128-cbc", "256", "4.64", "568.31", "38.34" - "aes-128-cbc", "1024", "16.39", "798.42", "39.10" - "aes-128-cbc", "8192", "81.19", "908.94", "39.33" - "aes-128-cbc", "16384", "110.11", "914.60", "39.34" - "aes-128-ecb", "16 bytes", "0.28", "91.03", "28.94" - "aes-128-ecb", "64 bytes", "1.13", "249.47", "35.86" - "aes-128-ecb", "256 bytes", "4.49", "571.00", "38.26" - "aes-128-ecb", "1024 bytes", "16.17", "857.11", "38.92" - "aes-128-ecb", "8192 bytes", "80.49", "1008.18", "39.09" - "aes-128-ecb", "16384 bytes", "110.41", "1020.21", "39.06" - "aes-192-cbc", "16 bytes", "0.19", "73.43", "24.97" - "aes-192-cbc", "64 bytes", "0.83", "244.53", "30.80" - "aes-192-cbc", "256 bytes", "3.07", "470.42", "32.82" - "aes-192-cbc", "1024 bytes", "10.39", "619.40", "33.37" - "aes-192-cbc", "8192 bytes", "50.85", "684.81", "33.56" - "aes-192-cbc", "16384 bytes", "54.89", "686.18", "33.55" - "aes-192-ecb", "16 bytes", "0.28", "86.24", "26.24" - "aes-192-ecb", "64 bytes", "1.15", "235.42", "31.64" - "aes-192-ecb", "256 bytes", "4.63", "527.54", "33.47" - "aes-192-ecb", "1024 bytes", "16.39", "773.91", "33.93" - "aes-192-ecb", "8192 bytes", "75.54", "897.52", "34.09" - "aes-192-ecb", "16384 bytes", "100.75", "906.88", "34.08" - "aes-256-cbc", "16 bytes", "0.26", "81.45", "22.12" - "aes-256-cbc", "64 bytes", "1.07", "228.09", "27.11" - "aes-256-cbc", "256 bytes", "4.30", "410.80", "28.73" - "aes-256-cbc", "1024 bytes", "14.73", "521.14", "29.14" - "aes-256-cbc", "8192 bytes", "48.88", "565.59", "29.28" - "aes-256-cbc", "16384 bytes", "85.82", "568.26", "29.29" - "aes-256-ecb", "16 bytes", "0.27", "84.14", "22.99" - "aes-256-ecb", "64 bytes", "1.11", "223.06", "27.15" - "aes-256-ecb", "256 bytes", "4.43", "467.53", "28.48" - "aes-256-ecb", "1024 bytes", "15.28", "672.34", "28.27" - "aes-256-ecb", "8192 bytes", "68.27", "764.23", "28.96" - "aes-256-ecb", "16384 bytes", "89.08", "764.39", "28.96" - "sha2-256", "16 bytes", "0.21", "10.44", "6.69" - "sha2-256", "64 bytes", "0.83", "38.35", "19.73" - "sha2-256", "256 bytes", "2.11", "125.98", "44.82" - "sha2-256", "1024 bytes", "8.32", "292.62", "65.99" - "sha2-256", "8192 bytes", "56.35", "479.45", "76.56" - "sha2-256", "16384 bytes", "95.08", "499.02", "77.43" - "sha2-512", "16 bytes", "0.19", "6.45", "6.44" - "sha2-512", "64 bytes", "0.76", "25.70", "25.68" - "sha2-512", "256 bytes", "2.01", "55.91", "55.89" - "sha2-512", "1024 bytes", "7.82", "94.66", "94.60" - "sha2-512", "8192 bytes", "55.03", "118.61", "118.52" - "sha2-512", "16384 bytes", "97.24", "120.80", "120.69" - -.. csv-table:: CPU Usage % - :header: "Algorithm", "Accelerator (%)", "ARM CE (%)", "ARM (%)" - :widths: 25, 25, 25, 25 - - "aes-128-cbc", "19%", "99%", "99%" - "aes-128-ecb", "18%", "99%", "99%" - "aes-192-cbc", "9%", "97%", "99%" - "aes-192-ecb", "17%", "99%", "99%" - "aes-256-cbc", "17%", "99%", "99%" - "aes-256-ecb", "16%", "99%", "99%" - "sha2-256", "41%", "99%", "99%" - "sha2-512", "38%", "99%", "99%" - | Low Power Performance @@ -1010,26 +936,26 @@ DSS plus DeepSleep, DeepSleep, RTC + I/O + DDR, and RTC Only. .. csv-table:: DeepSleep Power Performance :header: "Rail name","Rail voltage(V)","Power (mW)" - "vdd_core", "0.75", "7.17" - "soc_dvdd_1v8", "1.80", "1.47" - "soc_dvdd_3v3", "3.29", "3.38" - "vdda_1v8", "1.80", "1.02" - "vdd_lpddr4_pmic2", "1.10", "0.99" - "vdd_rtc", "0.74", "0.03" + "vdd_core", "0.75", "6.71" + "soc_dvdd_1v8", "1.80", "1.46" + "soc_dvdd_3v3", "3.30", "3.44" + "vdda_1v8", "1.80", "1.05" + "vdd_lpddr4_pmic2", "1.10", "0.97" + "vdd_rtc", "0.75", "0.03" "vdd_rtc_1v8", "1.80", "0.02" - "Total"," ","14.07" + "Total"," ","13.67" .. csv-table:: RTC + I/O + DDR Power Performance :header: "Rail name","Rail voltage(V)","Power (mW)" "vdd_core", "0.00", "0.00" - "soc_dvdd_1v8", "1.80", "1.46" - "soc_dvdd_3v3", "3.29", "0.99" + "soc_dvdd_1v8", "1.80", "1.36" + "soc_dvdd_3v3", "3.30", "0.98" "vdda_1v8", "0.00", "0.00" - "vdd_lpddr4_pmic2", "1.10", "0.95" - "vdd_rtc", "0.75", "0.02" + "vdd_lpddr4_pmic2", "1.10", "1.03" + "vdd_rtc", "0.75", "0.03" "vdd_rtc_1v8", "1.80", "0.01" - "Total"," ","3.44" + "Total"," ","3.41" .. csv-table:: RTC Only Power Performance :header: "Rail name","Rail voltage(V)","Power (mW)" @@ -1043,6 +969,10 @@ DSS plus DeepSleep, DeepSleep, RTC + I/O + DDR, and RTC Only. "vdd_rtc_1v8", "1.80", "0.01" "Total"," ","0.05" +.. note:: + + For the most accurate power measurements, use the latest TIVA firmware. + Resume Latency Performance ^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1050,8 +980,9 @@ Resume Latency Performance :header: "Low Power Mode","Total Resume Latency (ms)" "RTC Only", "Full normal boot time (~seconds)" - "RTC + I/O + DDR", "385" - "DeepSleep", "171" + "RTC + I/O + DDR", "388" + "DeepSleep", "165" + "DSS plus DeepSleep", "499" The performance numbers are measured without the Linux printk logs. To remove the Linux printk logs, run the following commands in the terminal: diff --git a/source/devices/AM62PX/linux/Linux_Performance_Guide.rst b/source/devices/AM62PX/linux/Linux_Performance_Guide.rst index bd6baa2b5..2ba7e6cb9 100644 --- a/source/devices/AM62PX/linux/Linux_Performance_Guide.rst +++ b/source/devices/AM62PX/linux/Linux_Performance_Guide.rst @@ -956,33 +956,33 @@ Power Performance "vdd_core","0.85","0.00" "vddr_core","0.85","0.00" - "soc_dvdd_3v3","3.30","2.04" - "soc_dvdd_1v8","1.80","8.27" + "soc_dvdd_3v3","3.30","2.11" + "soc_dvdd_1v8","1.80","8.42" "vdda_1v8","1.80","0.10" - "vdd_lpddr4","1.10","0.46" - "Total"," ","10.87" + "vdd_lpddr4","1.10","4.21" + "Total"," ","14.84" .. csv-table:: DeepSleep Power Performance :header: "Rail name","Rail voltage(V)","Power (mW)" - "vdd_core","0.85","10.71" - "vddr_core","0.85","1.01" - "soc_dvdd_3v3","3.30","6.11" - "soc_dvdd_1v8","1.80","2.83" - "vdda_1v8","1.80","1.45" - "vdd_lpddr4","1.10","0.39" - "Total"," ","13.4" + "vdd_core","0.85","16.70" + "vddr_core","0.85","1.31" + "soc_dvdd_3v3","3.30","5.68" + "soc_dvdd_1v8","1.80","2.60" + "vdda_1v8","1.80","2.15" + "vdd_lpddr4","1.10","3.27" + "Total"," ","31.71" .. csv-table:: MCU Only Power Performance :header: "Rail name","Rail voltage(V)","Power (mW)" - "vdd_core","0.85","151.75" - "vddr_core","0.85","1.38" - "soc_dvdd_3v3","3.30","6.30" + "vdd_core","0.85","154.64" + "vddr_core","0.85","1.96" + "soc_dvdd_3v3","3.30","5.67" "soc_dvdd_1v8","1.80","2.74" - "vdda_1v8","1.80","10.07" - "vdd_lpddr4","1.10","0.23" - "Total"," ","172.47" + "vdda_1v8","1.80","10.63" + "vdd_lpddr4","1.10","4.06" + "Total"," ","179.69" Partial I/O Data - All voltage rails were measured to be near 0V @@ -991,13 +991,11 @@ Partial I/O Data The power consumption on the vdda_1v8 rail does not include an oscillator on the rail that has significant current consumption. - Since previous SDK power measurements include the oscillator on the - rail, the reported power measurements are significantly different from - the current reported power measurements. .. note:: The measurements shown are from an AM62Px SK rev E1-1. Results may vary based off of the board revision being used. + For the most accurate power measurements, use the latest TIVA firmware. Further optimizations are possible for these low power modes. Please refer to the AM62x Power Consumption App Note (https://www.ti.com/lit/pdf/spradg1) @@ -1007,9 +1005,9 @@ Resume Latency Performance .. csv-table:: LPM Resume Latency Performance :header: "Low Power Mode","Total Resume Latency (ms)" - "I/O Only + DDR", "691" - "DeepSleep", "149" - "MCU Only", "103" + "I/O Only + DDR", "606" + "DeepSleep", "145" + "MCU Only", "92" The performance numbers are measured without the Linux printk logs. To remove the Linux printk logs, run the following commands in the terminal: diff --git a/source/devices/AM62X/linux/Linux_Performance_Guide.rst b/source/devices/AM62X/linux/Linux_Performance_Guide.rst index b0b84b237..35574e31e 100644 --- a/source/devices/AM62X/linux/Linux_Performance_Guide.rst +++ b/source/devices/AM62X/linux/Linux_Performance_Guide.rst @@ -1262,6 +1262,7 @@ IPSec Software Performance "aes192","162.16 (min 50.20, max 456.20)","14.00 (min 4.00, max 40.00)","44.00 (min 29.67, max 51.46)","0.70","0.00","36.21" "aes256","190.65 (min 45.70, max 459.10)","16.50 (min 4.00, max 40.00)","39.63 (min 26.98, max 51.15)","125.30 (min 0.40, max 409.10)","10.75 (min 0.00, max 36.00)","51.72 (min 49.72, max 54.04)" +| Low Power Performance ------------------------- @@ -1272,24 +1273,24 @@ Power Performance .. csv-table:: DeepSleep Power Performance :header: "Rail name","Rail voltage(V)","Power (mW)" - "vdd_core","0.85","9.33" + "vdd_core","0.85","9.01" "vddr_core","0.85","n/a" - "soc_dvdd_3v3","3.30","7.71" - "soc_dvdd_1v8","1.80","0.63" - "vdda_1v8","1.80","1.94" - "vdd_ddr4","1.10","8.04" - "Total"," ","27.64" + "soc_dvdd_3v3","3.30","5.86" + "soc_dvdd_1v8","1.80","4.37" + "vdda_1v8","1.80","1.80" + "vdd_ddr4","1.10","8.07" + "Total"," ","29.11" .. csv-table:: MCU Only Power Performance :header: "Rail name","Rail voltage(V)","Power (mW)" - "vdd_core","0.85","92.83" + "vdd_core","0.85","90.67" "vddr_core","0.85","n/a" - "soc_dvdd_3v3","3.30","13.90" - "soc_dvdd_1v8","1.80","0.99" - "vdda_1v8","1.80","10.80" - "vdd_ddr4","1.10","9.03" - "Total"," ","126.56" + "soc_dvdd_3v3","3.30","13.65" + "soc_dvdd_1v8","1.80","4.95" + "vdda_1v8","1.80","10.81" + "vdd_ddr4","1.10","8.58" + "Total"," ","128.66" Partial I/O Data - All voltage rails were measured to be near 0V @@ -1297,6 +1298,7 @@ Partial I/O Data .. note:: The measurements shown are from an SK-AM62B-P1. Results may vary based off of the board variant being used. + For the most accurate power measurements, use the latest TIVA firmware. Further optimizations are possible for these low power modes. Please refer to the AM62x Power Consumption App Note (https://www.ti.com/lit/pdf/spradg1) @@ -1306,8 +1308,8 @@ Resume Latency Performance .. csv-table:: LPM Resume Latency Performance :header: "Low Power Mode","Total Resume Latency (ms)" - "DeepSleep", "137" - "MCU Only", "94" + "DeepSleep", "124" + "MCU Only", "76" The performance numbers are measured without the Linux printk logs. To remove the Linux printk logs, run the following commands in the terminal: