This article shows how to enable/disable CPU cores on Toradex modules. It only applies to modules that have more than one core.
The Linux kernel parameter maxcpus can be used to configure the maximum SMP processors Linux should make use of. Use the U-Boot serial console to add the maxcpus boot argument:
Colibri iMX6 # setenv defargs $defargs maxcpus=1Colibri iMX6 # saveenv
The CPU hotplugging allows to enable/disable CPU cores without a system reboot, see below:
root@colibri-imx7:~# echo 0 > /sys/devices/system/cpu/cpu1/online[ 25.213855] CPU1: shutdown
The Linux kernel parameter maxcpus can be used to configure the maximum SMP processors Linux should make use of. Use the U-Boot serial console to add the maxcpus boot argument:
Colibri T30 # setenv defargs $defargs maxcpus=1Colibri T30 # saveenv
The CPU hotplugging allows to enable/disable CPU cores without a system reboot.
Manually turn off CPU cores:
root@colibri-t30:~# echo 0 > /sys/devices/system/cpu/cpu3/online[ 1190.700711] CPU3: shutdown
Note: This is only useful if automatic CPU hotplugging (mentioned below) is turned off.
The Linux Kernel supports automatic core aka CPU hotplugging based on the current load in order to minimize power usage.
Note: On T30 the low-power core migration is disabled as it has some issues.
Turn off low-power core migration:
root@colibri-t30:~# echo Y > /sys/module/cpu_tegra3/parameters/no_lp
Turn on automatic CPU hotplugging:
root@colibri-t30:~# echo 1 > /sys/module/cpu_tegra3/parameters/auto_hotplug[ 2043.597297] Tegra auto-hotplug enabled
For more information on the Tegra specific CPU hotplugging driver refer to the documentation file within the L4T Linux kernel trees: Documentation/arm/nvidia/tegra_parameters.txt resp. Documentation/arm/nvidia/tegra_parameters.txt