Skip to content

Instantly share code, notes, and snippets.

@DavidPu
Last active August 29, 2015 14:21
Show Gist options
  • Save DavidPu/69f37de94e4f79bd9f34 to your computer and use it in GitHub Desktop.
Save DavidPu/69f37de94e4f79bd9f34 to your computer and use it in GitHub Desktop.
fix jetson tk1 cpu/gpu/emc clocks to specific frequency.
#!/bin/bash
#usage:
# $source setclocks.sh
# $setxxfreq ..
#set -x
function setcpufreq()
{
if [ -z $1 ]; then
echo "usage:setcpufreq <CPUFREQ in kHz>|max [ONLINECPUS](default 4)"
echo "e.g: setcpufreq max or setcpufreq max 2"
echo "avaliable CPU freqs(kHz):"
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
return 0
fi
freq=$1
if [ x"$1" = xmax ]; then
freq=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`
fi
echo N > /sys/module/qos/parameters/enable
echo 0 > /sys/devices/system/cpu/cpuquiet/tegra_cpuquiet/enable
#disable emc dvs
#echo N > /sys/module/tegra12_emc/parameters/emc_enable
#disable core dvs
echo Y > /sys/module/tegra12_dvfs/parameters/disable_core
#disable CPU dvs
echo Y > /sys/module/tegra12_dvfs/parameters/disable_cpu
echo 1 > /sys/kernel/cluster/immediate
echo 1 > /sys/kernel/cluster/force
echo "G" > /sys/kernel/cluster/active
echo "userspace" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo "fixing cpu freq to $freq"
echo $freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
maxcpu=4
if [ x"$2" = x1 ]; then
maxcpu=1
elif [ x"$2" = x2 ]; then
maxcpu=2
elif [ x"$2" = x3 ]; then
maxcpu=3
else
maxcpu=4
fi
echo "maxcpu $maxcpu"
i=1
while [ $i -lt $maxcpu ] ;do
if [ `cat /sys/devices/system/cpu/cpu$i/online` = 0 ]; then
echo 1 > /sys/devices/system/cpu/cpu$i/online
fi
i=$(($i+1))
done
while [ $i -lt 4 ] ;do
if [ `cat /sys/devices/system/cpu/cpu$i/online` = 1 ]; then
echo 0 > /sys/devices/system/cpu/cpu$i/online
fi
i=$(($i+1))
done
}
function setemcfreq()
{
if [ -z $1 ]; then
echo "usage:setemcfreq <EMCFREQ in kHZ>|max"
echo "avaliable EMC freqs:"
cat /sys/kernel/debug/clock/emc/possible_rates
return 0
fi
if [ x"$1" = xmax ]; then
freq=`cat /sys/kernel/debug/clock/emc/max`
else
freq=$(($1*1000))
fi
echo "fixing emc freq to $freq"
echo $freq > /sys/kernel/debug/clock/override.emc/rate
echo 1 > /sys/kernel/debug/clock/override.emc/state
}
function setgpufreq()
{
if [ -z $1 ]; then
echo "usage:setgpufreq <EMCFREQ in kHZ>|max"
echo "avaliable GPU freqs:"
cat /sys/kernel/debug/clock/gbus/possible_rates
return 0
fi
if [ x"$1" = xmax ]; then
freq=`cat /sys/kernel/debug/clock/gbus/max`
else
freq=$(($1*1000))
fi
echo "fixing gpu freq to $freq"
echo $freq > /sys/kernel/debug/clock/override.gbus/rate
echo 1 > /sys/kernel/debug/clock/override.gbus/state
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment