linuxOS_AP05/debian/test/rockchip-test/ddr/ddr_freq_scaling.sh

45 lines
1.2 KiB
Bash
Raw Normal View History

2025-09-26 01:40:02 +00:00
#!/bin/bash
DMC_PATH1=/sys/class/devfreq/dmc
DMC_PATH2=/sys/bus/platform/drivers/rk3399-dmc-freq/dmc/devfreq/dmc
if [ -d "$DMC_PATH1" ];then
DMC_PATH=$DMC_PATH1
elif [ -d $DMC_PATH2 ];then
DMC_PATH=$DMC_PATH2
else
echo "non-existent dmc path,please check if enable dmc"
exit
fi
echo "DMC_PATH:"$DMC_PATH
if [ "$#" -eq "1" ];then
echo userspace > $DMC_PATH/governor
echo $1 > $DMC_PATH/userspace/set_freq
val=$(cat $DMC_PATH/cur_freq)
echo "already change to" $val"Hz done."
array=$(cat $DMC_PATH/available_frequencies)
let j=${#array[@]}-1
if [ "$val" -eq "${array[j]}" ];then
echo "change frequency to available max frequency done."
else
echo "!!!warning!!!"
echo "!!!warning!!! available max frequency is" ${array[j]}"Hz"
echo "!!!warning!!! please check frequency" $val"Hz if you need."
echo "!!!warning!!!"
fi
exit
else
unset FREQS
read -a FREQS < $DMC_PATH/available_frequencies
RANDOM=$$$(date +%s)
while true; do
echo userspace > $DMC_PATH/governor
FREQ=${FREQS[$RANDOM % ${#FREQS[@]} ]}
echo "set ddr frequency to $FREQ"
echo ${FREQ} > $DMC_PATH/userspace/set_freq
done
fi