Resource Manager Registry Settings
This article contains descriptions of registry settings for the resource manager on Colibri and Apalis T20 / T30 modules.
Dynamic Frequency Switching
The modules support dynamic frequency switching (DFS), also known as dynamic voltage and frequency switching (DVFS). To reduce power consumption the CPU adjusts its operating frequencies to the current workload.
There are cases where you want to disable the DFS. This can be done temporarily in the Toradex Task Manager or by program code, or permanently by a registry value.
Configuring DFS in the Toradex Task Manager.
The Toradex Task Manager tool provides a user interface to disable DFS, and to change particular operating frequencies. The settings are not stored, so they are lost after a reboot.
Configuring DFS by Application Code
The Toradex Frequency Library (FreqLib) provides API functions to change the Tegra system clock frequencies.
Configuring DFS in the Registry
The DFS feature can be disabled permanently by setting the following registry value. If DFS is disabled, the system will run at the frequency defined by the registry key DfsCpuHighCornerKHz.
[HKLM\Drivers\BuiltIn\nvrm]
Dfs=1 ; Dfs=1 (Dfs enabled) is the default
It is possible to configure the minimum and the maximum frequency that the system is allowed to use for dynamic frequency switching:
[HKLM\Drivers\BuiltIn\nvrm]
DfsCpuLowCornerKHz=0 ; Minimum frequency[kHz] that the system uses when dynamically adjusting the CPU frequency
; By default, this value is set to 200MHz (before image 1.3beta3 it was 40Mhz)
; Only in image 1.3beta2 and higher
DfsCpuHighCornerKHz=1000000 ; Maximum frequency[kHz] that the system uses when dynamically adjusting the CPU frequency
; By default, this value is set to the highest valid CPU frequency
; Only in image 1.3beta2 and higher
DfsEMCLowCornerKHz=266000 ; Minimum frequency[kHz] that the system uses when dynamically adjusting the DDR frequency
; Set to 0 to get lowest possible clock.
; By default, this value is set to the max valid DDR frequency in 1.3 images, so DFS is disabled.
; Available since 1.3beta3
DfsEMCHighCornerKHz=266000 ; Maximum frequency[kHz] that the system uses when dynamically adjusting the DDR frequency
; By default, this value is set to the highest valid DDR frequency.
; Available since 1.3beta3
Dynamic Core Disable
On the Tegra family you can dynamically disable and enable cores. As soon as the CPU usages gets bellow a threshold all but one core gets disabled.
This feature saves around 0.5W on the Colibri and Apalis T30 where as on the Colibri T20 this does not make a big difference.
This feature is available since image 2.1. In Image 2.1 it was disabled by default, from 2.2b2 on it is enabled by default. In order to enable or disable this feature you need to set the following registry setting:
[HKLM\Drivers\BuiltIn\nvrm]
DynamicCPUPowerOff=0 ; Dynamically disable cores. 0 = disabled, 1 = enabled. Default: 1.
You can also manually disabling cores. From Toradex Task Manager V1.8 on you can click on one of the green CPU usage bars to disable / enable single cores.
Temperature Throttling Configuration
To prevent the system from overheating our images throttle down the CPU speed. The default settings can be modified. This config is supported from Image V2.1b2 on. As the voltage vs CPU speed ratio is different from one module to an other, we limit the CPU to a voltage and not a CPU speed. The voltage results in a CPU speed implicitly.
[HKLM\Drivers\BuiltIn\nvrm]
Dtt=1 ; Enable or disable temperature throttling.
; 0= disabled, 1=enabled. Default: 1
DttDegreesLow=60 ; Threshold to limit the voltage. Voltage will be
; limited to DttVoltageThrottleMv. Value in °C, Default: 60°C
DttDegreesHigh=85 ; Threshold for clockDown Temperature Throtteling (clock will
; be reduced in steps of DttCpuDeltaKhz, but not
; more than DttMinCpuKhz). Value in °C, Default: 80°C
DttDegreesHysteresis=5 ; Value in °C, Default: 5°C
DttVoltageThrottleMv=900 ; Voltag to use during voltage limit temperature throttling.
; Value in Mv, Default: 900Mv
DttCpuDeltaKhz=100000 ; Throttle down in steps of DttCpuDeltaKhz.
; Value in KHz, Default: 100MHz
DttMinCpuKhz=0 ; Do not throttle down to more than DttMinCpuKhz.
; If 0 it will be set to half of the max frequency.
; Value in KHz, Default: 0
Undervoltage Lockout
This is applicable for the Colibri T20 only.
The Colibri T20 detects a low voltage condition if the main 3.3V supply drops below 3.0V ±2.5%. The behavior after detecting such an undervoltage depends on the WinCe image revision:
In images V1.2 and below an undervoltage condition causes the system to enter a SLEEP mode, which can only be left with a full power cycle (reset is not sufficient).
In images V1.3beta1 and later, the behavior can be configured in the registry:
[HKLM\Drivers\BuiltIn\nvrm]
ResetOnVccLow=1 ; 1 = default: The system is reset and reboots as soon as Vcc is above the low-voltage threshold.
; 0: The system ignores the low-voltage condition and continues operation