1*4882a593Smuzhiyun#!/bin/sh 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun# $1 is chip 4*4882a593SmuzhiyunCHIP_ID="" 5*4882a593SmuzhiyunHIGH_LEVEL="3.3V" # get from chip trm 6*4882a593SmuzhiyunLOW_LEVEL="1.8V" # get from chip trm 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunTOOL_HEXDUMP="NO" 9*4882a593SmuzhiyunVERSION="V1.0.1" 10*4882a593Smuzhiyunprogram_name="$0" 11*4882a593Smuzhiyun 12*4882a593Smuzhiyunfunction help_msg() 13*4882a593Smuzhiyun{ 14*4882a593Smuzhiyun echo "Please input chip." 15*4882a593Smuzhiyun echo "$program_name <chip>" 16*4882a593Smuzhiyun echo "chip: rv1126,rv1109,rk3308,rk3308b,rk3308bs" 17*4882a593Smuzhiyun exit 0 18*4882a593Smuzhiyun} 19*4882a593Smuzhiyun 20*4882a593Smuzhiyunfunction echo_msg() 21*4882a593Smuzhiyun{ 22*4882a593Smuzhiyun echo -e "\e[1;31m $1 \e[0m" 23*4882a593Smuzhiyun} 24*4882a593Smuzhiyun 25*4882a593Smuzhiyunfunction get_reg() 26*4882a593Smuzhiyun{ 27*4882a593Smuzhiyun if [ -n "$1" ]; then 28*4882a593Smuzhiyun _val=`io -4 -r $1` 29*4882a593Smuzhiyun _val=`echo ${_val##*:}` 30*4882a593Smuzhiyun _val=`echo 0x${_val}` 31*4882a593Smuzhiyun echo "$_val" 32*4882a593Smuzhiyun else 33*4882a593Smuzhiyun echo "get register error." 34*4882a593Smuzhiyun exit -1 35*4882a593Smuzhiyun fi 36*4882a593Smuzhiyun} 37*4882a593Smuzhiyun 38*4882a593Smuzhiyunfunction print_val() 39*4882a593Smuzhiyun{ 40*4882a593Smuzhiyun tag="$2" 41*4882a593Smuzhiyun if [ $(( $1 )) -eq 0 ];then 42*4882a593Smuzhiyun echo_msg "$tag $HIGH_LEVEL" 43*4882a593Smuzhiyun else 44*4882a593Smuzhiyun echo_msg "$tag $LOW_LEVEL" 45*4882a593Smuzhiyun fi 46*4882a593Smuzhiyun} 47*4882a593Smuzhiyun 48*4882a593Smuzhiyunfunction list_iodomain_rv1126_rv1109() 49*4882a593Smuzhiyun{ 50*4882a593Smuzhiyun iodomain_val=`get_reg 0xFE020140` 51*4882a593Smuzhiyun pmuio1_vsel=$(( 0x1 << 9 )) 52*4882a593Smuzhiyun pmuio0_vsel=$(( 0x1 << 8 )) 53*4882a593Smuzhiyun vccio7_vsel=$(( 0x1 << 7 )) 54*4882a593Smuzhiyun vccio6_vsel=$(( 0x1 << 6 )) 55*4882a593Smuzhiyun vccio5_vsel=$(( 0x1 << 5 )) 56*4882a593Smuzhiyun vccio4_vsel=$(( 0x1 << 4 )) 57*4882a593Smuzhiyun vccio3_vsel=$(( 0x1 << 3 )) 58*4882a593Smuzhiyun vccio2_vsel=$(( 0x1 << 2 )) 59*4882a593Smuzhiyun vccio1_vsel=$(( 0x1 << 1 )) 60*4882a593Smuzhiyun flash_vosel=$(( 0x1 << 0 )) 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun print_val $(( $iodomain_val & $pmuio1_vsel )) "pmuio1_vsel:" 63*4882a593Smuzhiyun print_val $(( $iodomain_val & $pmuio0_vsel )) "pmuio0_vsel:" 64*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio7_vsel )) "vccio7_vsel:" 65*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio6_vsel )) "vccio6_vsel:" 66*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio5_vsel )) "vccio5_vsel:" 67*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio4_vsel )) "vccio4_vsel:" 68*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio3_vsel )) "vccio3_vsel:" 69*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio2_vsel )) "vccio2_vsel:" 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun if [ $(( $iodomain_val & $flash_vosel )) -eq 0 ];then 72*4882a593Smuzhiyun # read iomux 73*4882a593Smuzhiyun gpio0b3_iomux_val=`get_reg 0xFE020008` 74*4882a593Smuzhiyun gpio0b3_iomux_val_off=$(( 0x1 << 12 )) 75*4882a593Smuzhiyun if [ $(( $gpio0b3_iomux_val & $gpio0b3_iomux_val_off )) -eq 0 ];then 76*4882a593Smuzhiyun # read gpio data direction 77*4882a593Smuzhiyun gpio0b3_data_direction_val=`get_reg 0xFF460008` 78*4882a593Smuzhiyun gpio0b3_data_direction_val_off=$(( 0x1 << 11 )) 79*4882a593Smuzhiyun if [ $(( $gpio0b3_data_direction_val & $gpio0b3_data_direction_val_off )) -eq 0 ];then 80*4882a593Smuzhiyun # read gpio data register 81*4882a593Smuzhiyun gpio0b3_data_reg_val=`get_reg 0xFF460070` 82*4882a593Smuzhiyun gpio0b3_data_reg_val_off=$(( 0x1 << 11 )) 83*4882a593Smuzhiyun print_val $(( $gpio0b3_data_reg_val & $gpio0b3_data_reg_val_off )) "vccio1_vsel:" 84*4882a593Smuzhiyun else 85*4882a593Smuzhiyun echo "Check vccio1_vsel error!!!" 86*4882a593Smuzhiyun fi 87*4882a593Smuzhiyun else 88*4882a593Smuzhiyun echo "Check vccio1_vsel error!!!" 89*4882a593Smuzhiyun fi 90*4882a593Smuzhiyun fi 91*4882a593Smuzhiyun if [ $(( $iodomain_val & $flash_vosel )) -eq 1 ];then 92*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio1_vsel )) "vccio1_vsel:" 93*4882a593Smuzhiyun fi 94*4882a593Smuzhiyun} 95*4882a593Smuzhiyun 96*4882a593Smuzhiyunfunction list_iodomain_rk3308_rk3308b_rk3308bs() 97*4882a593Smuzhiyun{ 98*4882a593Smuzhiyun iodomain_val=`get_reg 0xFF000300` 99*4882a593Smuzhiyun flash_vosel=$(( 0x1 << 8 )) 100*4882a593Smuzhiyun vccio5_vsel=$(( 0x1 << 5 )) 101*4882a593Smuzhiyun vccio4_vsel=$(( 0x1 << 4 )) 102*4882a593Smuzhiyun vccio3_vsel=$(( 0x1 << 3 )) 103*4882a593Smuzhiyun vccio2_vsel=$(( 0x1 << 2 )) 104*4882a593Smuzhiyun vccio1_vsel=$(( 0x1 << 1 )) 105*4882a593Smuzhiyun vccio0_vsel=$(( 0x1 << 0 )) 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun if [ $(( $iodomain_val & $flash_vosel )) -eq $(( 0x1 << 8 )) ];then 108*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio5_vsel )) "vccio5_vsel:" 109*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio4_vsel )) "vccio4_vsel:" 110*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio3_vsel )) "vccio3_vsel:" 111*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio2_vsel )) "vccio2_vsel:" 112*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio1_vsel )) "vccio1_vsel:" 113*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio0_vsel )) "vccio0_vsel:" 114*4882a593Smuzhiyun fi 115*4882a593Smuzhiyun if [ $(( $iodomain_val & $flash_vosel )) -eq 0 ];then 116*4882a593Smuzhiyun # read iomux 117*4882a593Smuzhiyun gpio0a4_iomux_val=`get_reg 0xFF000000` 118*4882a593Smuzhiyun gpio0a4_iomux_val_off=$(( 0x1 << 8 )) 119*4882a593Smuzhiyun if [ $(( $gpio0a4_iomux_val & $gpio0a4_iomux_val_off )) -eq 0 ];then 120*4882a593Smuzhiyun # read gpio data direction 121*4882a593Smuzhiyun gpio0a4_data_direction_val=`get_reg 0xFF220004` 122*4882a593Smuzhiyun gpio0a4_data_direction_val_off=$(( 0x1 << 4 )) 123*4882a593Smuzhiyun if [ $(( $gpio0a4_data_direction_val & $gpio0b3_data_direction_val_off )) -eq 0 ];then 124*4882a593Smuzhiyun # read gpio data register 125*4882a593Smuzhiyun gpio0a4_data_reg_val=`get_reg 0xFF220050` 126*4882a593Smuzhiyun gpio0a4_data_reg_val_off=$(( 0x1 << 4 )) 127*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio5_vsel )) "vccio5_vsel:" 128*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio4_vsel )) "vccio4_vsel:" 129*4882a593Smuzhiyun print_val $(( $gpio0a4_data_reg_val & $gpio0a4_data_reg_val_off )) "vccio3_vsel:" 130*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio2_vsel )) "vccio2_vsel:" 131*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio1_vsel )) "vccio1_vsel:" 132*4882a593Smuzhiyun print_val $(( $iodomain_val & $vccio0_vsel )) "vccio0_vsel:" 133*4882a593Smuzhiyun else 134*4882a593Smuzhiyun echo "Check vccio1_vsel error!!!" 135*4882a593Smuzhiyun fi 136*4882a593Smuzhiyun else 137*4882a593Smuzhiyun echo "Check vccio1_vsel error!!!" 138*4882a593Smuzhiyun fi 139*4882a593Smuzhiyun fi 140*4882a593Smuzhiyun} 141*4882a593Smuzhiyun 142*4882a593Smuzhiyunfunction list_iodomain_rk3326_rk3326s() 143*4882a593Smuzhiyun{ 144*4882a593Smuzhiyun iodomain0_val=`get_reg 0xFF140180` 145*4882a593Smuzhiyun iodomain1_val=`get_reg 0xFF010100` 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun pmuio2_vsel=$(( 0x1 << 15 )) 148*4882a593Smuzhiyun pmuio1_vsel=$(( 0x1 << 14 )) 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun vccio5_vsel=$(( 0x1 << 6 )) 151*4882a593Smuzhiyun vccio4_vsel=$(( 0x1 << 5 )) 152*4882a593Smuzhiyun vccio3_vsel=$(( 0x1 << 4 )) 153*4882a593Smuzhiyun vccio2_vsel=$(( 0x1 << 3 )) 154*4882a593Smuzhiyun vccio1_vsel=$(( 0x1 << 2 )) 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun print_val $(( $iodomain1_val & $pmuio2_vsel )) "pmuio2_vsel:" 157*4882a593Smuzhiyun print_val $(( $iodomain1_val & $pmuio1_vsel )) "pmuio1_vsel:" 158*4882a593Smuzhiyun print_val $(( $iodomain0_val & $vccio5_vsel )) "vccio5_vsel:" 159*4882a593Smuzhiyun print_val $(( $iodomain0_val & $vccio4_vsel )) "vccio4_vsel:" 160*4882a593Smuzhiyun print_val $(( $iodomain0_val & $vccio3_vsel )) "vccio3_vsel:" 161*4882a593Smuzhiyun print_val $(( $iodomain0_val & $vccio2_vsel )) "vccio2_vsel:" 162*4882a593Smuzhiyun print_val $(( $iodomain0_val & $vccio1_vsel )) "vccio1_vsel:" 163*4882a593Smuzhiyun} 164*4882a593Smuzhiyun 165*4882a593Smuzhiyunfunction list_iodomain_rk3566_rk3568() 166*4882a593Smuzhiyun{ 167*4882a593Smuzhiyun iodomain0_val=`get_reg 0xFDC20140` 168*4882a593Smuzhiyun iodomain1_val=`get_reg 0xFDC20144` 169*4882a593Smuzhiyun iodomain2_val=`get_reg 0xFDC20148` 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun pmuio2_vsel=$(( 0x1 << 1 )) 172*4882a593Smuzhiyun 173*4882a593Smuzhiyun vccio7_vsel=$(( 0x1 << 7 )) 174*4882a593Smuzhiyun vccio6_vsel=$(( 0x1 << 6 )) 175*4882a593Smuzhiyun vccio5_vsel=$(( 0x1 << 5 )) 176*4882a593Smuzhiyun vccio4_vsel=$(( 0x1 << 4 )) 177*4882a593Smuzhiyun vccio3_vsel=$(( 0x1 << 3 )) 178*4882a593Smuzhiyun vccio2_vsel=$(( 0x1 << 2 )) 179*4882a593Smuzhiyun vccio1_vsel=$(( 0x1 << 1 )) 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun print_val $(( $iodomain2_val & $pmuio2_vsel )) "pmuio2_vsel:" 182*4882a593Smuzhiyun print_val $(( $iodomain0_val & $vccio7_vsel )) "vccio7_vsel:" 183*4882a593Smuzhiyun print_val $(( $iodomain0_val & $vccio6_vsel )) "vccio6_vsel:" 184*4882a593Smuzhiyun print_val $(( $iodomain0_val & $vccio5_vsel )) "vccio5_vsel:" 185*4882a593Smuzhiyun print_val $(( $iodomain0_val & $vccio4_vsel )) "vccio4_vsel:" 186*4882a593Smuzhiyun print_val $(( $iodomain0_val & $vccio3_vsel )) "vccio3_vsel:" 187*4882a593Smuzhiyun print_val $(( $iodomain0_val & $vccio2_vsel )) "vccio2_vsel:" 188*4882a593Smuzhiyun print_val $(( $iodomain0_val & $vccio1_vsel )) "vccio1_vsel:" 189*4882a593Smuzhiyun} 190*4882a593Smuzhiyun 191*4882a593Smuzhiyunfunction chk_rv1126_rv1109() 192*4882a593Smuzhiyun{ 193*4882a593Smuzhiyun nvem_path="/sys/bus/nvmem/devices/rockchip-otp0/nvmem" 194*4882a593Smuzhiyun iff=`hexdump -C $nvem_path | grep -Ew "00000000 52 56 11 26|00000000 52 56 11 09"` 195*4882a593Smuzhiyun if [ -n "$iff" ]; then 196*4882a593Smuzhiyun CHIP_ID=rv1126_rv1109 197*4882a593Smuzhiyun HIGH_LEVEL="3.3V" 198*4882a593Smuzhiyun LOW_LEVEL="1.8V" 199*4882a593Smuzhiyun return 0 200*4882a593Smuzhiyun fi 201*4882a593Smuzhiyun return 1 202*4882a593Smuzhiyun} 203*4882a593Smuzhiyun 204*4882a593Smuzhiyunfunction chk_rk3308_rk3308b_rk3308bs() 205*4882a593Smuzhiyun{ 206*4882a593Smuzhiyun nvem_path="/sys/bus/nvmem/devices/rockchip-otp0/nvmem" 207*4882a593Smuzhiyun iff=`hexdump -C $nvem_path | grep -Ew "00000000 52 4b 33 08"` 208*4882a593Smuzhiyun if [ -n "$iff" ]; then 209*4882a593Smuzhiyun CHIP_ID=rk3308 210*4882a593Smuzhiyun HIGH_LEVEL="3.3V" 211*4882a593Smuzhiyun LOW_LEVEL="1.8V" 212*4882a593Smuzhiyun return 0 213*4882a593Smuzhiyun fi 214*4882a593Smuzhiyun return 1 215*4882a593Smuzhiyun} 216*4882a593Smuzhiyun 217*4882a593Smuzhiyunfunction chk_rk3326_rk3326s() 218*4882a593Smuzhiyun{ 219*4882a593Smuzhiyun nvem_path="/sys/bus/nvmem/devices/rockchip-otp0/nvmem" 220*4882a593Smuzhiyun iff=`hexdump -C $nvem_path | grep -Ew "00000000 52 4b 33 26"` 221*4882a593Smuzhiyun if [ -n "$iff" ]; then 222*4882a593Smuzhiyun CHIP_ID=rk3326 223*4882a593Smuzhiyun HIGH_LEVEL="3.3V" 224*4882a593Smuzhiyun LOW_LEVEL="1.8V" 225*4882a593Smuzhiyun return 0 226*4882a593Smuzhiyun fi 227*4882a593Smuzhiyun return 1 228*4882a593Smuzhiyun} 229*4882a593Smuzhiyun 230*4882a593Smuzhiyunfunction chk_rk3566_rk3568() 231*4882a593Smuzhiyun{ 232*4882a593Smuzhiyun nvem_path="/sys/bus/nvmem/devices/rockchip-otp0/nvmem" 233*4882a593Smuzhiyun iff=`hexdump -C $nvem_path | grep -Ew "00000000 52 4b 35 68|00000000 52 4b 35 66"` 234*4882a593Smuzhiyun if [ -n "$iff" ]; then 235*4882a593Smuzhiyun CHIP_ID=rk356x 236*4882a593Smuzhiyun HIGH_LEVEL="3.3V" 237*4882a593Smuzhiyun LOW_LEVEL="1.8V" 238*4882a593Smuzhiyun return 0 239*4882a593Smuzhiyun fi 240*4882a593Smuzhiyun return 1 241*4882a593Smuzhiyun} 242*4882a593Smuzhiyun 243*4882a593Smuzhiyunfunction get_chip_id() 244*4882a593Smuzhiyun{ 245*4882a593Smuzhiyun # if error, exit -1 246*4882a593Smuzhiyun if [ "$TOOL_HEXDUMP" = "YES" ];then 247*4882a593Smuzhiyun # if check otp success, just return CHIP_ID and ignore $1 248*4882a593Smuzhiyun chk_rv1126_rv1109 249*4882a593Smuzhiyun if [ $? -eq 0 ];then 250*4882a593Smuzhiyun return 0 251*4882a593Smuzhiyun fi 252*4882a593Smuzhiyun chk_rk3308_rk3308b_rk3308bs 253*4882a593Smuzhiyun if [ $? -eq 0 ];then 254*4882a593Smuzhiyun return 0 255*4882a593Smuzhiyun fi 256*4882a593Smuzhiyun chk_rk3326_rk3326s 257*4882a593Smuzhiyun if [ $? -eq 0 ];then 258*4882a593Smuzhiyun return 0 259*4882a593Smuzhiyun fi 260*4882a593Smuzhiyun chk_rk3566_rk3568 261*4882a593Smuzhiyun if [ $? -eq 0 ];then 262*4882a593Smuzhiyun return 0 263*4882a593Smuzhiyun fi 264*4882a593Smuzhiyun fi 265*4882a593Smuzhiyun 266*4882a593Smuzhiyun # if check otp failed, check CHIP_ID with $1 267*4882a593Smuzhiyun case "$1" in 268*4882a593Smuzhiyun rv1126|rv1109|RV1126|RV1109) 269*4882a593Smuzhiyun chip_id=`io -4 -r 0XFE000110 | grep -w 00001109` 270*4882a593Smuzhiyun if [ $? -eq 0 -a -n "$chip_id" ]; then 271*4882a593Smuzhiyun CHIP_ID=rv1126_rv1109 272*4882a593Smuzhiyun HIGH_LEVEL="3.3V" 273*4882a593Smuzhiyun LOW_LEVEL="1.8V" 274*4882a593Smuzhiyun return 0 275*4882a593Smuzhiyun fi 276*4882a593Smuzhiyun ;; 277*4882a593Smuzhiyun rk3308bs|RK3308BS) 278*4882a593Smuzhiyun chip_id=`io -4 -r 0XFF000800 | grep -w 0003308c` 279*4882a593Smuzhiyun if [ $? -eq 0 -a -n "$chip_id" ]; then 280*4882a593Smuzhiyun CHIP_ID=$1 281*4882a593Smuzhiyun HIGH_LEVEL="3.3V" 282*4882a593Smuzhiyun LOW_LEVEL="1.8V" 283*4882a593Smuzhiyun return 0 284*4882a593Smuzhiyun fi 285*4882a593Smuzhiyun ;; 286*4882a593Smuzhiyun rk3308b|RK3308B) 287*4882a593Smuzhiyun chip_id=`io -4 -r 0XFF000800 | grep -w 00003308` 288*4882a593Smuzhiyun if [ $? -eq 0 -a -n "$chip_id" ]; then 289*4882a593Smuzhiyun CHIP_ID=$1 290*4882a593Smuzhiyun HIGH_LEVEL="3.3V" 291*4882a593Smuzhiyun LOW_LEVEL="1.8V" 292*4882a593Smuzhiyun return 0 293*4882a593Smuzhiyun fi 294*4882a593Smuzhiyun ;; 295*4882a593Smuzhiyun rk3308|RK3308) 296*4882a593Smuzhiyun chip_id=`io -4 -r 0XFF000800 | grep -w 00000cea` 297*4882a593Smuzhiyun if [ $? -eq 0 -a -n "$chip_id" ]; then 298*4882a593Smuzhiyun CHIP_ID=$1 299*4882a593Smuzhiyun HIGH_LEVEL="3.3V" 300*4882a593Smuzhiyun LOW_LEVEL="1.8V" 301*4882a593Smuzhiyun return 0 302*4882a593Smuzhiyun fi 303*4882a593Smuzhiyun ;; 304*4882a593Smuzhiyun rk3326|RK3326) 305*4882a593Smuzhiyun chip_id=`io -4 -r 0XFF140800 | grep -w 00003326` 306*4882a593Smuzhiyun if [ $? -eq 0 -a -n "$chip_id" ]; then 307*4882a593Smuzhiyun CHIP_ID=$1 308*4882a593Smuzhiyun HIGH_LEVEL="3.3V" 309*4882a593Smuzhiyun LOW_LEVEL="1.8V" 310*4882a593Smuzhiyun return 0 311*4882a593Smuzhiyun fi 312*4882a593Smuzhiyun ;; 313*4882a593Smuzhiyun rk3326s|RK3326S) 314*4882a593Smuzhiyun chip_id=`io -4 -r 0XFF140800 | grep -w 00003326` 315*4882a593Smuzhiyun if [ $? -eq 0 -a -n "$chip_id" ]; then 316*4882a593Smuzhiyun CHIP_ID=$1 317*4882a593Smuzhiyun HIGH_LEVEL="3.3V" 318*4882a593Smuzhiyun LOW_LEVEL="1.8V" 319*4882a593Smuzhiyun return 0 320*4882a593Smuzhiyun fi 321*4882a593Smuzhiyun ;; 322*4882a593Smuzhiyun rk3566|rk3568|RK3566|RK3568) 323*4882a593Smuzhiyun chip_id=`io -4 -r 0XFDC60800 | grep -w 00003566` 324*4882a593Smuzhiyun if [ $? -eq 0 -a -n "$chip_id" ]; then 325*4882a593Smuzhiyun CHIP_ID=$1 326*4882a593Smuzhiyun HIGH_LEVEL="3.3V" 327*4882a593Smuzhiyun LOW_LEVEL="1.8V" 328*4882a593Smuzhiyun return 0 329*4882a593Smuzhiyun fi 330*4882a593Smuzhiyun ;; 331*4882a593Smuzhiyun *) 332*4882a593Smuzhiyun help_msg 333*4882a593Smuzhiyun ;; 334*4882a593Smuzhiyun esac 335*4882a593Smuzhiyun 336*4882a593Smuzhiyun echo "Not found CHIP_ID...exit!!!" 337*4882a593Smuzhiyun exit 0 338*4882a593Smuzhiyun} 339*4882a593Smuzhiyun 340*4882a593Smuzhiyun# input parameter 341*4882a593Smuzhiyun# CHIP_ID --> rv1126,rk3308,rk3308b,rk3308bs,rk3566,rk3568 342*4882a593Smuzhiyun# HIGH_LEVEL --> "3.3V" 343*4882a593Smuzhiyun# LOW_LEVEL --> "1.8V" 344*4882a593Smuzhiyunfunction get_iodomain_val() 345*4882a593Smuzhiyun{ 346*4882a593Smuzhiyun # if error, exit -1 347*4882a593Smuzhiyun echo_msg "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 348*4882a593Smuzhiyun echo_msg "XXXXXXXXXX PLEASE CHECK IO-DOMAIN !!!!!!!!!!!!!!!" 349*4882a593Smuzhiyun echo_msg "XXXXXXXXXX 请务必检查IO电源域配置 !!!!!!!!!!!!!!!" 350*4882a593Smuzhiyun echo_msg "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 351*4882a593Smuzhiyun echo_msg "Get IO DOMAIN VALUE:" 352*4882a593Smuzhiyun case "$CHIP_ID" in 353*4882a593Smuzhiyun rv1126|rv1109|RV1126|RV1109|rv1126_rv1109|RV1126_RV1109) 354*4882a593Smuzhiyun list_iodomain_rv1126_rv1109 355*4882a593Smuzhiyun ;; 356*4882a593Smuzhiyun rk3308bs|rk3308b|rk3308|RK3308BS|RK3308B|RK3308) 357*4882a593Smuzhiyun list_iodomain_rk3308_rk3308b_rk3308bs 358*4882a593Smuzhiyun ;; 359*4882a593Smuzhiyun rk3326|rk3326s|RK3326|RK3326) 360*4882a593Smuzhiyun list_iodomain_rk3326_rk3326s 361*4882a593Smuzhiyun ;; 362*4882a593Smuzhiyun rk3566|rk3568|rk356x|RK3566|RK3568|RK356X) 363*4882a593Smuzhiyun echo_msg "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 364*4882a593Smuzhiyun echo_msg "注意事项:PMUIO1/PMUIO2 固定不可配" 365*4882a593Smuzhiyun echo_msg "VCCIO2电平由硬件FLASH_VOL_SEL决定:" 366*4882a593Smuzhiyun echo_msg "当VCCIo2供电是1.8V,则FLASH_VOL_SEL管脚必须保持为高电平;" 367*4882a593Smuzhiyun echo_msg "当VCCIO2供电是3.3V,则FLASH_VOL_SEL管脚必须保持为低电平;" 368*4882a593Smuzhiyun echo_msg "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 369*4882a593Smuzhiyun 370*4882a593Smuzhiyun list_iodomain_rk3566_rk3568 371*4882a593Smuzhiyun ;; 372*4882a593Smuzhiyun *) 373*4882a593Smuzhiyun help_msg 374*4882a593Smuzhiyun ;; 375*4882a593Smuzhiyun esac 376*4882a593Smuzhiyun echo_msg "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 377*4882a593Smuzhiyun exit 0 378*4882a593Smuzhiyun} 379*4882a593Smuzhiyun 380*4882a593Smuzhiyunfunction chk_env() 381*4882a593Smuzhiyun{ 382*4882a593Smuzhiyun echo_msg "$0 version: $VERSION" 383*4882a593Smuzhiyun # if error, exit -1 384*4882a593Smuzhiyun which io &>/dev/null 385*4882a593Smuzhiyun if [ $? -ne 0 ]; then 386*4882a593Smuzhiyun echo_msg "install io command first!!!" 387*4882a593Smuzhiyun exit -1 388*4882a593Smuzhiyun fi 389*4882a593Smuzhiyun 390*4882a593Smuzhiyun which hexdump &>/dev/null 391*4882a593Smuzhiyun if [ $? -eq 0 ]; then 392*4882a593Smuzhiyun TOOL_HEXDUMP="YES" 393*4882a593Smuzhiyun fi 394*4882a593Smuzhiyun} 395*4882a593Smuzhiyun 396*4882a593Smuzhiyunif [ "$1" = "-h" -o "$1" = "--help" ]; then 397*4882a593Smuzhiyun help_msg 398*4882a593Smuzhiyunfi 399*4882a593Smuzhiyunchk_env 400*4882a593Smuzhiyunget_chip_id $1 401*4882a593Smuzhiyunecho_msg "Get CHIP ID: $CHIP_ID" 402*4882a593Smuzhiyunget_iodomain_val 403