Operational Modes¶
Introduction¶
The VAR-SOM-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:
- i.MX 91 Datasheet
- IMX Reference Manual
- AN14506: Reducing Power Consumption
- AN14506: i.MX 91 Power Consumption Measurement
Changing Modes¶
Boot low drive device tree¶
The default device tree supports NDM. A special device tree imx91-var-som-symphony-ld.dtb must be booted to support LDM:
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:
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 |