work_sript/06.project/kunpeng_clock.sh
2024-10-15 15:05:56 +08:00

147 lines
6.4 KiB
Bash

#!/bin/sh
#----------------------------------------------------
# EEPROM Content
#----------------------------------------------------
DATA_00="0x26 0x4b 0x6e 0x53 0x00 0xf0 0xff 0xe7 0x26 0x4b 0x6e 0x53 0x41 0xf0 0xff 0x0a"
DATA_01="0x00 0x00 0x00 0xc0 0x01 0x04 0x64 0x00 0x00 0xe0 0xc6 0x01 0x02 0x00 0x10 0xc8"
DATA_02="0x01 0x04 0x64 0x00 0x00 0xe0 0xce 0x01 0x02 0x00 0x10 0xd0 0x01 0x04 0x64 0x00"
DATA_03="0x00 0xe0 0xd6 0x01 0x02 0x00 0x10 0xd8 0x01 0x04 0x64 0x00 0x00 0xe0 0xde 0x01"
DATA_04="0x02 0x00 0x10 0x00 0x00 0xa5 0x02 0x00 0x02 0x08 0x21 0x08 0x00 0x04 0x00 0xf0"
DATA_05="0x12 0x01 0x16 0x00 0x02 0x05 0x83 0x18 0x00 0x04 0x80 0x00 0x8c 0x03 0x21 0x00"
DATA_06="0x01 0x03 0x28 0x00 0x02 0xb2 0x00 0x2c 0x00 0x04 0x45 0x0f 0x4f 0x20 0x30 0x00"
DATA_07="0x02 0x08 0x80 0x34 0x00 0x02 0x08 0x80 0x38 0x00 0x04 0x04 0x00 0x40 0x00 0x3c"
DATA_08="0x00 0x04 0x02 0x00 0x50 0x00 0x40 0x00 0x04 0x04 0x00 0x40 0x00 0x44 0x00 0x04"
DATA_09="0x02 0x00 0x50 0x00 0x48 0x00 0x01 0x0b 0x49 0x00 0x01 0x38 0x50 0x00 0x02 0x20"
DATA_10="0x00 0x60 0x00 0x02 0x20 0x00 0x70 0x00 0x02 0x04 0x00 0x72 0x00 0x02 0x09 0x00"
DATA_11="0x74 0x00 0x04 0x04 0x00 0x02 0x00 0x80 0x00 0x02 0x20 0x00 0x90 0x00 0x02 0x20"
DATA_12="0x00 0xa0 0x00 0x04 0x00 0x00 0x00 0x80 0xc0 0x00 0x04 0x00 0x00 0x00 0x80 0xe0"
DATA_13="0x00 0x04 0x00 0x5a 0x62 0x82 0xe8 0x00 0x08 0x34 0x2b 0x00 0x00 0xbf 0x21 0x00"
DATA_14="0x00 0x00 0x01 0x04 0x00 0x00 0x00 0x80 0x24 0x01 0x02 0x64 0x00 0x26 0x01 0x01"
DATA_15="0x00 0x28 0x01 0x02 0x55 0x00 0x2a 0x01 0x01 0x37 0x2b 0x01 0x01 0xb7 0x2c 0x01"
DATA_16="0x01 0x05 0x2d 0x01 0x01 0x1b 0x30 0x01 0x01 0x0f 0x31 0x01 0x01 0x87 0x34 0x01"
DATA_17="0x01 0x64 0x38 0x01 0x04 0x07 0xc4 0x07 0x60 0x62 0x01 0x02 0x5c 0x8f 0x64 0x01"
DATA_18="0x01 0x22 0x82 0x01 0x01 0x3b 0x86 0x01 0x02 0x42 0x5b 0x88 0x01 0x02 0x10 0x11"
DATA_19="0xe0 0x01 0x08 0x64 0x00 0x00 0x00 0x00 0x00 0x00 0xe0 0xf0 0x01 0x08 0x64 0x00"
DATA_20="0x00 0x00 0x00 0x00 0x00 0xe0 0x00 0x02 0x08 0x64 0x00 0x00 0x00 0x00 0x00 0x00"
DATA_21="0xe0 0x40 0x02 0x01 0x87 0x42 0x02 0x02 0x3c 0x00 0x44 0x02 0x01 0x87 0x46 0x02"
DATA_22="0x02 0x3c 0x00 0x48 0x02 0x01 0x87 0x4a 0x02 0x02 0x3c 0x00 0x4c 0x02 0x01 0x87"
DATA_23="0x4e 0x02 0x02 0x3c 0x00 0x50 0x02 0x01 0x07 0x52 0x02 0x02 0x3c 0x00 0x54 0x02"
DATA_24="0x01 0x07 0x56 0x02 0x02 0x3c 0x00 0x58 0x02 0x01 0x87 0x5a 0x02 0x02 0x3c 0x00"
DATA_25="0x5c 0x02 0x01 0x87 0x5e 0x02 0x02 0x3c 0x00 0x60 0x02 0x01 0x87 0x62 0x02 0x02"
DATA_26="0x3c 0x00 0x64 0x02 0x01 0x07 0x66 0x02 0x02 0x3c 0x00 0x68 0x02 0x01 0x06 0x6a"
DATA_27="0x02 0x02 0x2c 0x00 0x6c 0x02 0x01 0x06 0x6e 0x02 0x02 0x2c 0x00 0x80 0x02 0x01"
DATA_28="0x25 0x84 0x02 0x01 0x25 0x88 0x02 0x01 0x25 0x8c 0x02 0x01 0x25 0x90 0x02 0x01"
DATA_29="0x25 0x94 0x02 0x01 0x10 0x98 0x02 0x01 0x10 0xc4 0x02 0x01 0x0d 0x00 0x00 0xd2"
DATA_30="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00"
DATA_31="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00"
DATA_32="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00"
DATA_33="0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xf3 0x05 0x26 0x06"
#----------------------------------------------------
# Function Define
#----------------------------------------------------
# Function Name :
# Param Define : $1 - EEPROM slave address
# : $2 - write offset
# : $3 - write data
# : $4 - Data Index
write_and_check(){
# Print some Information
echo "-----------------------------------------------------------"
echo "Data Index : $4"
echo "Slave Addr : $1"
echo "Offset : $2"
echo "Data Info : $3"
# Remove prefix '0x' of the Raw Data
cleaned_data=$(echo "$3" | awk '
{
for (i=1; i<=NF; i++)
{
sub(/^0x/, "", $i); print $i
}
}')
# echo "$cleaned_data"
retry_cnt=0
while true
do
# Write Data to EEPROM by I2C
i2c-test -b 6 -s $1 -w -d $2 $3 >> /dev/null
# Get Data of the eeprom and check
eeprom_res=`i2c-test -b 6 -s "$1" -m 1 -rc 16 -d "$2" | awk 'NR==2{print}'`
cleaned_res=$(echo "$eeprom_res" | awk '
{
for (i=1; i <=NF; i++)
{
print $i
}
}')
if [ "$cleaned_data" == "$cleaned_res" ];then
echo "Write Index : $4 , Successfully!"
break
fi
retry_cnt=$(($retry_cnt+1))
if [ $retry_cnt -eq 11 ];then
echo "Retry 10 times, Exit ... Please Manually confirm the I2C Status"
echo "Flash firmware Failed !!! "
exit 1
fi
echo "Check Data Failed, retry : $retry_cnt"
sleep 1
done
}
#----------------------------------------------------
# Start Execute Script
#----------------------------------------------------
# Function ----- slave-offset--data------Index
write_and_check "0x50" "0x00" "$DATA_00" "00"
write_and_check "0x55" "0xf0" "$DATA_01" "01"
write_and_check "0x56" "0x00" "$DATA_02" "02"
write_and_check "0x56" "0x10" "$DATA_03" "03"
write_and_check "0x56" "0x20" "$DATA_04" "04"
write_and_check "0x56" "0x30" "$DATA_05" "05"
write_and_check "0x56" "0x40" "$DATA_06" "06"
write_and_check "0x56" "0x50" "$DATA_07" "07"
write_and_check "0x56" "0x60" "$DATA_08" "08"
write_and_check "0x56" "0x70" "$DATA_09" "09"
write_and_check "0x56" "0x80" "$DATA_10" "10"
write_and_check "0x56" "0x90" "$DATA_11" "11"
write_and_check "0x56" "0xa0" "$DATA_12" "12"
write_and_check "0x56" "0xb0" "$DATA_13" "13"
write_and_check "0x56" "0xc0" "$DATA_14" "14"
write_and_check "0x56" "0xd0" "$DATA_15" "15"
write_and_check "0x56" "0xe0" "$DATA_16" "16"
write_and_check "0x56" "0xf0" "$DATA_17" "17"
write_and_check "0x57" "0x00" "$DATA_18" "18"
write_and_check "0x57" "0x10" "$DATA_19" "19"
write_and_check "0x57" "0x20" "$DATA_20" "20"
write_and_check "0x57" "0x30" "$DATA_21" "21"
write_and_check "0x57" "0x40" "$DATA_22" "22"
write_and_check "0x57" "0x50" "$DATA_23" "23"
write_and_check "0x57" "0x60" "$DATA_24" "24"
write_and_check "0x57" "0x70" "$DATA_25" "25"
write_and_check "0x57" "0x80" "$DATA_26" "26"
write_and_check "0x57" "0x90" "$DATA_27" "27"
write_and_check "0x57" "0xa0" "$DATA_28" "28"
write_and_check "0x57" "0xb0" "$DATA_29" "29"
write_and_check "0x57" "0xc0" "$DATA_30" "30"
write_and_check "0x57" "0xd0" "$DATA_31" "31"
write_and_check "0x57" "0xe0" "$DATA_32" "32"
write_and_check "0x57" "0xf0" "$DATA_33" "33"
echo "Flash firmware successfully"