xref: /OK3568_Linux_fs/debian/overlay-debug/rockchip-test/npu2/npu_freq_scaling.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#!/bin/bash
2*4882a593Smuzhiyun
3*4882a593Smuzhiyunusage()
4*4882a593Smuzhiyun{
5*4882a593Smuzhiyunecho "Usage: npu_freq_scaling.sh [test_second] [every_freq_stay_second]"
6*4882a593Smuzhiyunecho "example: npu_freq_test.sh  3600 30"
7*4882a593Smuzhiyunecho "means npu_freq_test.sh will run 1 hour and every cpu frequency stay 30s"
8*4882a593Smuzhiyun}
9*4882a593Smuzhiyun
10*4882a593Smuzhiyunecho "test will run $1 seconds"
11*4882a593Smuzhiyunecho "every npu frqeucny will stay $2 seconds"
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunNPU_PATH=/sys/devices/platform/*.npu/devfreq/*.npu
14*4882a593Smuzhiyun
15*4882a593Smuzhiyununset FREQS
16*4882a593Smuzhiyunread -a FREQS < $NPU_PATH/available_frequencies
17*4882a593SmuzhiyunRANDOM=$$$(date +%s)
18*4882a593Smuzhiyuntime_cnt=0
19*4882a593Smuzhiyun
20*4882a593Smuzhiyunwhile true; do
21*4882a593Smuzhiyun  if [ $time_cnt -ge $1 ]
22*4882a593Smuzhiyun  then
23*4882a593Smuzhiyun     echo "======TEST SUCCESSFUL, QUIT====="
24*4882a593Smuzhiyun     exit 0
25*4882a593Smuzhiyun  fi
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun  echo userspace > $NPU_PATH/governor
28*4882a593Smuzhiyun  FREQ=${FREQS[$RANDOM % ${#FREQS[@]} ]}
29*4882a593Smuzhiyun  echo "set ddr frequency to $FREQ"
30*4882a593Smuzhiyun  echo ${FREQ} > $NPU_PATH/userspace/set_freq
31*4882a593Smuzhiyun  sleep $2
32*4882a593Smuzhiyun  let "time_cnt=$time_cnt+$2"
33*4882a593Smuzhiyundone
34*4882a593Smuzhiyun
35