Skip to content

Operational Modes

Introduction

The DART-MX91 supports several operating modes that allow for reduced power usage::

Mode VDD_SOC A55 Max Frequency
DRAM Max Frequency
Low Drive (LDM) with SWFFC 0.8V 900 MHz 312.5 MHz (625 MT/s)
Low Drive (LDM) 0.8V 900 MHz 600 MHz (1200 MT/s)
Nominal Drive (NDM) 0.84V 1.4 GHz 1200 MHz (2400 MT/s)

The Variscite release, based on NXP's Linux BSP GA release, configures the system to run in Nominal drive mode (NDM) by default. Users can make transition to Low-drive mode as defined in the i.MX 91 data sheet.

For more information, please refer to:

Changing Modes

Boot low drive device tree

The default device tree supports NDM. A special device tree imx91-var-dart-dt8mcustomboard-ld.dtb or imx91-var-dart-sonata-ld.dtb must be booted to support LDM:

root@imx91-var-som:~# fw_setenv imx91-var-dart-dt8mcustomboard-ld.dtb; reboot

This device tree enables low drive mode and reduces the speed of the flexspi and usdhc peripherals so they can operate at the lower CPU and DRAM frequencies.

Change between modes

The driver/imx/soc/imx93_lpm.c driver uses imx-atf to manage the operating mode and can be controlled using a sysfs interface.

Read the current mode:

root@imx91-var-som:~# cat /sys/devices/platform/imx93-lpm/mode
System is in ND mode with DDR 2400 MTS!

Change to LDM (1200 MT/s):

root@imx91-var-som:~# echo 2 > /sys/devices/platform/imx93-lpm/mode
System switching to LD/SWFFC mode...
root@imx91-var-som:~# cat /sys/devices/platform/imx93-lpm/mode
System is in LD mode with DDR 1200 MTS!

Change to LDM (625 MT/s):

root@imx91-var-som:~# echo 3 > /sys/devices/platform/imx93-lpm/mode
System switching to LD/SWFFC mode...
root@imx91-var-som:~# cat /sys/devices/platform/imx93-lpm/mode
System is in LD mode with DDR 625 MTS!

Change to NDM (2400 MT/s):

root@imx91-var-som:~# echo 1 > /sys/devices/platform/imx93-lpm/mode
System switching to ND mode...
root@imx91-var-som:~# cat /sys/devices/platform/imx93-lpm/mode
System is in ND mode with DDR 2400 MTS!

Simple Memory Bandwidth Test

The iperf3 utility can be used to run a simple test that will report bitrates relative to the system speed.

Start an iperf3 server:

root@imx91-var-som:~# iperf3 -s > /dev/null &

Switch to the preferred mode, and run an iperf3 client:

root@imx91-var-som:~# iperf3 -c localhost
Connecting to host localhost, port 5201
[  5] local ::1 port 57608 connected to ::1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   388 MBytes  3251 Mbits/sec    0   4.00 MBytes
[  5]   1.00-2.00   sec   388 MBytes  3260 Mbits/sec    0   4.18 MBytes
[  5]   2.00-3.00   sec   388 MBytes  3253 Mbits/sec    0   4.18 MBytes
[  5]   3.00-4.00   sec   387 MBytes  3242 Mbits/sec    0   4.18 MBytes
[  5]   4.00-5.00   sec   389 MBytes  3270 Mbits/sec    0   4.18 MBytes
[  5]   5.00-6.00   sec   389 MBytes  3254 Mbits/sec    0   4.18 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-6.00   sec  2.27 GBytes  3255 Mbits/sec    0             sender
[  5]   0.00-6.00   sec  2.27 GBytes  3255 Mbits/sec                  receiver

Below are the results performed using Yocto Scarthgap with the 6.6.52 kernel:

Mode VDD_SOC MT/s iperf3 Speed (Mbps)
Low Drive with SWFFC 0.8V 625 900
Low Drive 0.8V 1200 1700
Nominal Drive 0.84V 2400 3300