Difference between revisions of "DESK-MX9-L/Deployment/Power Manager"

From DAVE Developer's Wiki
Jump to: navigation, search
(Measurements)
 
(2 intermediate revisions by one other user not shown)
Line 6: Line 6:
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
|-
 
|-
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|2024/04/02
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|2024/04/02
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000"|Power Manager documentation
+
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Power Manager documentation
 
|-
 
|-
 
|}
 
|}
Line 18: Line 18:
 
== Operational characteristics ==
 
== Operational characteristics ==
  
The measurement of power consumption of the <code>SOM</code> are executed with <code>3.3 V</code> supply.
+
The power consumption measurements for [[AURA SOM | AURA SOM]] are executed with <code>3.3 V</code> power supply.
  
 
== Power consumption ==
 
== Power consumption ==
 +
 +
There are various operating modes available.
  
 
'''Attention''': the SOC used does not support the DVFS and therefore the use of the <code>governor</code> present in the Linux kernel, instead of this functionality to scale the performance to have lower consumption by the SOC there is a new technology the <code>Low Drive mode</code>.
 
'''Attention''': the SOC used does not support the DVFS and therefore the use of the <code>governor</code> present in the Linux kernel, instead of this functionality to scale the performance to have lower consumption by the SOC there is a new technology the <code>Low Drive mode</code>.
Line 29: Line 31:
  
 
* [https://www.nxp.com/docs/en/data-sheet/IMX93CEC.pdf i.MX93 datasheet]
 
* [https://www.nxp.com/docs/en/data-sheet/IMX93CEC.pdf i.MX93 datasheet]
* [https://docs.nxp.com/bundle/AN13917/page/topics/introduction.html AN13917: i.MX 93 Power Consumption Measurement]
+
* [https://docs.nxp.com/bundle/AN13917/page/topics/reducing_power_consumption_0.html AN13917: i.MX 93 Reducing the power Consumption]
 +
* [https://docs.nxp.com/bundle/AN13917/page/topics/overview_of_imx_93_power_architecture.html AN13917: i.MX 93 Power Architecture]
  
 
There are four operating modes(Not all present by default on <code>Aura SOM</code>):
 
There are four operating modes(Not all present by default on <code>Aura SOM</code>):
Line 52: Line 55:
 
| -
 
| -
 
|-
 
|-
| Low drive (LD Mode)
+
| Low drive (LD Mode) (1)
 
| 0.8 V
 
| 0.8 V
 
| 933 MHz
 
| 933 MHz
Line 58: Line 61:
 
| (3)
 
| (3)
 
|-
 
|-
| Low drive (LD Mode)
+
| Low drive (LD Mode) (2)
 
| 0.8 V
 
| 0.8 V
 
| 933 MHz
 
| 933 MHz
Line 66: Line 69:
  
 
Note:
 
Note:
* (1): <code>Over drive</code> is the default operating mode.
+
* (1): <code>Over drive</code> is the default operating mode
* (2): <code>Over drive</code> can be disabled, see [[#Disable Over drive Mode | here]].
+
* (2): <code>Over drive</code> can be disabled, see [[#Device Tree | here]]
* (3): <code>Low drive</code> need to activate from <code>device tree</code> by default these are not present, see [[#Enable Low drive Mode | here]].
+
* (3): <code>Low drive</code> need to be activated from <code>device tree</code> by default these are not present, see [[#Device Tree | here]]
 +
 
  
 
==== Device Tree ====
 
==== Device Tree ====
  
To enable/disable and configure the driver must use the device tree, by default the node <code>lpm</code> present on <code>arch/arm64/boot/dts/freescale/imx93.dtsi</code> are disabled, then the <code>Low Drive Mode</code> are disable.
+
To enable/disable and configure the driver the device tree must used: by default the node <code>lpm</code> present on <code>arch/arm64/boot/dts/freescale/imx93.dtsi</code> is disabled, then the <code>Low Drive Mode</code> is disabled.
  
By default on <code>Aura SOM</code> the support are enable with minimal configuration to have:
+
By default, on <code>Aura SOM</code> the support is enabled with minimal configuration to have:
 
* <code>Over drive Mode</code>
 
* <code>Over drive Mode</code>
 
* <code>Nominal drive Mode</code>
 
* <code>Nominal drive Mode</code>
Line 103: Line 107:
 
</pre>
 
</pre>
  
The node <code>lpm</code> to change the SOC voltage supply need the <code>PMIC buck regulator reference</code> on <code>Aura SOM</code> the PMIC Buck used to power the SOC are the <code>Buck1</code>.
+
The node to change the SOC voltage supply needs the <code>PMIC buck regulator reference</code> on <code>Aura SOM</code> the PMIC Buck used is <code>Buck1</code>.
  
 
===== Enable Low drive Mode =====
 
===== Enable Low drive Mode =====
  
To enable the two modality <code>Low drive Mode</code> add the property <code>ld-mode-enabled</code> on <code>lpm</code> node of device tree.
+
To enable the two modalities <code>Low drive Mode</code> add the property <code>ld-mode-enabled</code> on <code>lpm</code> node of the device tree.
  
By default on <code>Aura SOM</code> this modalities are disabled.
+
By default on <code>Aura SOM</code> these modalities are disabled.
  
'''Attention''': if you want to add this modalities check if you must change the <code>clock rate</code> of the other peripherals like:
+
'''Attention''': if you want to add these modalities, properly check if you must change the <code>clock rate</code> for the other peripherals like:
* <code>flexspi1</code> to <code>266000000</code>.
+
* <code>flexspi1</code> to <code>266000000</code>
* <code>usdhc1</code> to <code>266000000</code>.
+
* <code>usdhc1</code> to <code>266000000</code>
* <code>usdhc2</code> to <code>266000000</code>.
+
* <code>usdhc2</code> to <code>266000000</code>
* <code>usdhc3</code> to <code>266000000</code>.
+
* <code>usdhc3</code> to <code>266000000</code>
  
 
See also the <code>NXP EVK</code> here <code>arch/arm64/boot/dts/freescale/imx93-11x11-evk-ld.dts</code>
 
See also the <code>NXP EVK</code> here <code>arch/arm64/boot/dts/freescale/imx93-11x11-evk-ld.dts</code>
Line 193: Line 197:
  
 
The measurements were performed with follow device connected to the board (Only the most energy-intensive devices are listed).
 
The measurements were performed with follow device connected to the board (Only the most energy-intensive devices are listed).
* Eth0 interface up.
+
* Eth0 interface up
* Eth1 interface up.
+
* Eth1 interface up
* uSD.
+
* uSD
* DSI-HDMI converter and HDMI display up.
+
* DSI-HDMI converter and HDMI display up
  
 
===== Quiet =====
 
===== Quiet =====
  
On quiet the core not have any additional process/task.
+
On quiet the core nt have any additional process/task.
  
 
===== Stressed =====
 
===== Stressed =====
  
 
To simulate high consumption, the following energy-intensive operations were performed:
 
To simulate high consumption, the following energy-intensive operations were performed:
* configured the both eth interface and execute an endless iperf3 with an external server support
+
* both eth interfaces are configured and an endless iperf3 - with external server support - is executed
* use the camera and stream it to the HDMI display
+
* camera streaming a video to the HDMI display
* execute the <code>sat</code>, is a specialized executable to stress the SOC and RAM memory
+
* execute the <code>sat</code> for stressing the SOC and the RAM memory
  
 
Then there are four energy-intensive operations.
 
Then there are four energy-intensive operations.
Line 217: Line 221:
 
!Current
 
!Current
 
!Power
 
!Power
!Diff
+
!Diff Normal
 +
!Diff Stress
 
|-
 
|-
 
| '''Quiet-normal (LPM: Over drive)'''
 
| '''Quiet-normal (LPM: Over drive)'''
 
| 0,5 A
 
| 0,5 A
 
| 1.65 W
 
| 1.65 W
| Rreference
+
| Normal reference
 +
| -50% (Reference: <code>Stressed-normal (LPM: Over drive)</code>)
 
|-
 
|-
 
| '''Quiet-nominal (LPM: Nominal drive)'''
 
| '''Quiet-nominal (LPM: Nominal drive)'''
Line 228: Line 234:
 
| 1.55 W
 
| 1.55 W
 
| -6 %
 
| -6 %
 +
| -32% (Reference: <code>Stressed-nominal (LPM: Nominal drive)</code>)
 
|-
 
|-
 
| '''Stressed-normal (LPM: Over drive)'''
 
| '''Stressed-normal (LPM: Over drive)'''
Line 233: Line 240:
 
| 2.475 W  
 
| 2.475 W  
 
| +50%
 
| +50%
 +
| Stress reference
 
|-
 
|-
 
| '''Stressed-nominal (LPM: Nominal drive)'''
 
| '''Stressed-nominal (LPM: Nominal drive)'''
Line 238: Line 246:
 
| 1.55 W
 
| 1.55 W
 
| +24%
 
| +24%
 +
| -17 %
 
|-
 
|-
 
| '''Suspend'''
 
| '''Suspend'''
Line 243: Line 252:
 
| 0.152 W
 
| 0.152 W
 
| -91 %
 
| -91 %
 +
| -93 %
 
|-
 
|-
 
|'''Freeze'''
 
|'''Freeze'''
Line 248: Line 258:
 
|0.59 W
 
|0.59 W
 
| -64 %
 
| -64 %
 +
| -76 %
 
|}
 
|}
  

Latest revision as of 08:31, 5 April 2024

History
Issue Date Notes
2024/04/02 Power Manager documentation



Power Manager[edit | edit source]

Operational characteristics[edit | edit source]

The power consumption measurements for AURA SOM are executed with 3.3 V power supply.

Power consumption[edit | edit source]

There are various operating modes available.

Attention: the SOC used does not support the DVFS and therefore the use of the governor present in the Linux kernel, instead of this functionality to scale the performance to have lower consumption by the SOC there is a new technology the Low Drive mode.

Low Drive mode[edit | edit source]

Documentation from NXP:

There are four operating modes(Not all present by default on Aura SOM):

Mode VDD SOC A55 Max Frequency DRAM Max Frequency Note
Over drive (OD Mode, default) 0.9 V 1700 MHz 1866 MHz (3733 MTS) (1)(2)
Nominal drive (ND Mode) 0.85 V 1400 MHz 1400 MHz (2800 MTS) -
Low drive (LD Mode) (1) 0.8 V 933 MHz 933 MHz (1866 MTS) (3)
Low drive (LD Mode) (2) 0.8 V 933 MHz 625 MTS (3)

Note:

  • (1): Over drive is the default operating mode
  • (2): Over drive can be disabled, see here
  • (3): Low drive need to be activated from device tree by default these are not present, see here


Device Tree[edit | edit source]

To enable/disable and configure the driver the device tree must used: by default the node lpm present on arch/arm64/boot/dts/freescale/imx93.dtsi is disabled, then the Low Drive Mode is disabled.

By default, on Aura SOM the support is enabled with minimal configuration to have:

  • Over drive Mode
  • Nominal drive Mode

To do this see arch/arm64/boot/dts/freescale/imx93-aura.dtsi:

...
&lpm {
	soc-supply = <&buck1>;
	status = "okay";
};
...
&lpi2c2 {
        ....
	pmic@25 {
		compatible = "nxp,pca9451a";
                ...
		regulators {
			buck1: BUCK1 {
				...
			};
		...
		};
	...
	};
};
...

The node to change the SOC voltage supply needs the PMIC buck regulator reference on Aura SOM the PMIC Buck used is Buck1.

Enable Low drive Mode[edit | edit source]

To enable the two modalities Low drive Mode add the property ld-mode-enabled on lpm node of the device tree.

By default on Aura SOM these modalities are disabled.

Attention: if you want to add these modalities, properly check if you must change the clock rate for the other peripherals like:

  • flexspi1 to 266000000
  • usdhc1 to 266000000
  • usdhc2 to 266000000
  • usdhc3 to 266000000

See also the NXP EVK here arch/arm64/boot/dts/freescale/imx93-11x11-evk-ld.dts

Disable Over drive Mode[edit | edit source]

To disable the Over drive Mode and have by default the Nomial drive Mode add the property no-od-mode on lpm node of device tree.

Command[edit | edit source]

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@desk-mx93-rev0:~# cat /sys/devices/platform/imx93-lpm/mode
System is in OD mode with DDR 3733 MTS!

Read the current clock of core.

root@desk-mx93-rev1:~# mhz
1690 MHz, 0.5917 nanosec clock

To change on Over drive Mode:

root@desk-mx93-rev1:~# echo 0 > /sys/devices/platform/imx93-lpm/mode
[ 9456.025419] System switching to OD mode...
root@desk-mx93-rev1:~# cat /sys/devices/platform/imx93-lpm/mode
System is in OD mode with DDR 3733 MTS!
root@desk-mx93-rev1:~# mhz
1690 MHz, 0.5917 nanosec clock

To change on Nominal drive Mode:

root@desk-mx93-rev1:~# echo 1 > /sys/devices/platform/imx93-lpm/mode
[ 9557.112015] System switching to ND mode...
root@desk-mx93-rev1:~# cat /sys/devices/platform/imx93-lpm/mode
System is in ND mode with DDR 1866 MTS!
root@desk-mx93-rev1:~# mhz
1398 MHz, 0.7153 nanosec clock

To change on Low drive Mode (1866 MTS) (Modality not present by default):

root@desk-mx93-rev1:~# echo 2 > /sys/devices/platform/imx93-lpm/mode
[ 9623.164150] System switching to LD/SWFFC mode...
root@desk-mx93-rev1:~# cat /sys/devices/platform/imx93-lpm/mode
System is in LD mode with DDR 1866 MTS!
root@desk-mx93-rev1:~# mhz
898 MHz, 1.1136 nanosec clock

To change on Low drive Mode (625 MTS) (Modality not present by default):

root@desk-mx93-rev1:~# echo 3 > /sys/devices/platform/imx93-lpm/mode
[ 9648.546368] System switching to LD/SWFFC mode...
root@desk-mx93-rev1:~# cat /sys/devices/platform/imx93-lpm/mode
System is in LD mode with DDR 625 MTS!
root@desk-mx93-rev1:~# mhz
898 MHz, 1.1136 nanosec clock

Operational Mode[edit | edit source]

The typical operating modes envisaged are:

  • Quiet-normal (LPM: Over drive)
  • Quiet-nominal (LPM: Nominal drive)
  • Stressed-normal (LPM: Over drive)
  • Stressed-nominal (LPM: Nominal drive)
  • Suspend
  • Freeze

Setup[edit | edit source]

The measurements were performed with follow device connected to the board (Only the most energy-intensive devices are listed).

  • Eth0 interface up
  • Eth1 interface up
  • uSD
  • DSI-HDMI converter and HDMI display up
Quiet[edit | edit source]

On quiet the core nt have any additional process/task.

Stressed[edit | edit source]

To simulate high consumption, the following energy-intensive operations were performed:

  • both eth interfaces are configured and an endless iperf3 - with external server support - is executed
  • camera streaming a video to the HDMI display
  • execute the sat for stressing the SOC and the RAM memory

Then there are four energy-intensive operations.

Measurements[edit | edit source]

Mode Current Power Diff Normal Diff Stress
Quiet-normal (LPM: Over drive) 0,5 A 1.65 W Normal reference -50% (Reference: Stressed-normal (LPM: Over drive))
Quiet-nominal (LPM: Nominal drive) 0.469 A 1.55 W -6 % -32% (Reference: Stressed-nominal (LPM: Nominal drive))
Stressed-normal (LPM: Over drive) 0.75 A 2.475 W +50% Stress reference
Stressed-nominal (LPM: Nominal drive) 0.469 A 1.55 W +24% -17 %
Suspend 0.046 A 0.152 W -91 % -93 %
Freeze 0.179 A 0.59 W -64 % -76 %