162306a36Sopenharmony_ci#!/bin/bash 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 362306a36Sopenharmony_ci# 462306a36Sopenharmony_ci# CPU helpers 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci# protect against multiple inclusion 762306a36Sopenharmony_ciif [ $FILE_CPU ]; then 862306a36Sopenharmony_ci return 0 962306a36Sopenharmony_cielse 1062306a36Sopenharmony_ci FILE_CPU=DONE 1162306a36Sopenharmony_cifi 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cisource cpufreq.sh 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cifor_each_cpu() 1662306a36Sopenharmony_ci{ 1762306a36Sopenharmony_ci cpus=$(ls $CPUROOT | grep "cpu[0-9].*") 1862306a36Sopenharmony_ci for cpu in $cpus; do 1962306a36Sopenharmony_ci $@ $cpu 2062306a36Sopenharmony_ci done 2162306a36Sopenharmony_ci} 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_cifor_each_non_boot_cpu() 2462306a36Sopenharmony_ci{ 2562306a36Sopenharmony_ci cpus=$(ls $CPUROOT | grep "cpu[1-9].*") 2662306a36Sopenharmony_ci for cpu in $cpus; do 2762306a36Sopenharmony_ci $@ $cpu 2862306a36Sopenharmony_ci done 2962306a36Sopenharmony_ci} 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci#$1: cpu 3262306a36Sopenharmony_cioffline_cpu() 3362306a36Sopenharmony_ci{ 3462306a36Sopenharmony_ci printf "Offline $1\n" 3562306a36Sopenharmony_ci echo 0 > $CPUROOT/$1/online 3662306a36Sopenharmony_ci} 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci#$1: cpu 3962306a36Sopenharmony_cionline_cpu() 4062306a36Sopenharmony_ci{ 4162306a36Sopenharmony_ci printf "Online $1\n" 4262306a36Sopenharmony_ci echo 1 > $CPUROOT/$1/online 4362306a36Sopenharmony_ci} 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci#$1: cpu 4662306a36Sopenharmony_cireboot_cpu() 4762306a36Sopenharmony_ci{ 4862306a36Sopenharmony_ci offline_cpu $1 4962306a36Sopenharmony_ci online_cpu $1 5062306a36Sopenharmony_ci} 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci# Reboot CPUs 5362306a36Sopenharmony_ci# param: number of times we want to run the loop 5462306a36Sopenharmony_cireboot_cpus() 5562306a36Sopenharmony_ci{ 5662306a36Sopenharmony_ci printf "** Test: Running ${FUNCNAME[0]} for $1 loops **\n\n" 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci for i in `seq 1 $1`; do 5962306a36Sopenharmony_ci for_each_non_boot_cpu offline_cpu 6062306a36Sopenharmony_ci for_each_non_boot_cpu online_cpu 6162306a36Sopenharmony_ci printf "\n" 6262306a36Sopenharmony_ci done 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci printf "\n%s\n\n" "------------------------------------------------" 6562306a36Sopenharmony_ci} 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci# Prints warning for all CPUs with missing cpufreq directory 6862306a36Sopenharmony_ciprint_unmanaged_cpus() 6962306a36Sopenharmony_ci{ 7062306a36Sopenharmony_ci for_each_cpu cpu_should_have_cpufreq_directory 7162306a36Sopenharmony_ci} 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci# Counts CPUs with cpufreq directories 7462306a36Sopenharmony_cicount_cpufreq_managed_cpus() 7562306a36Sopenharmony_ci{ 7662306a36Sopenharmony_ci count=0; 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci for cpu in `ls $CPUROOT | grep "cpu[0-9].*"`; do 7962306a36Sopenharmony_ci if [ -d $CPUROOT/$cpu/cpufreq ]; then 8062306a36Sopenharmony_ci let count=count+1; 8162306a36Sopenharmony_ci fi 8262306a36Sopenharmony_ci done 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci echo $count; 8562306a36Sopenharmony_ci} 86