#!/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"