blob: 67d70633970e488592b85e05e77a783b2b030f8f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
#!/bin/sh -e
# SOC update tool, need two parameter(soc update file name and TFTP ip)
if [ ! -n "$1" -o ! -n "$2" ] ;then
echo "Please enter SOC-ImageName and TFTP-IP."
echo "Format: socupdate.sh FileName IP"
echo "Example: socupdate.sh 0ACJAXXX.ROM 192.168.1.1"
exit
fi
echo "SOC update start."
echo "Check BMC status."
checkbmc='gpioutil -p Q4'
if $checkbmc = "1"; then
echo "BMC is ready."
else
echo "BMC isn't ready."
exit
fi
echo "Check SOC image does it exist."
cd /tmp/
FILEEXIST=0
if [ -f "/tmp/$1" ]; then
GETFILE=`du -k $1 | awk '{print $1}'`
if [ "$GETFILE" -eq "65536" ]; then
FILEEXIST=1
echo "SOC image is exist."
else
FILEEXIST=0
fi
fi
if [ $FILEEXIST -eq 0 ]; then
echo "Get SOC image from TFTP server."
echo "Please wait a few minutes."
tftp -g -r $1 $2 &
sleep 2
LENGTH=0
ERRCOUNT=0
while true
do
echo -ne "\r["
usleep 500000
while [ $LENGTH -le 30 ]
do
usleep 500000
echo -n ">"
LENGTH=$(($LENGTH+1))
if [ -f "/tmp/$1" ]; then
GETFILE=`du -k $1 | awk '{print $1}'`
if [ $GETFILE -eq 65536 ]; then
echo -en "\r"
echo -en "--- Image download completed --- \n"
usleep 1000000
break 2
fi
else
ERRCOUNT=$(($ERRCOUNT+1))
if [ $ERRCOUNT -le 10 ]; then
echo -en "\r"
echo -en "SOC-ImageName or TFTP-IP is ERROR. \n"
usleep 500000
exit
fi
fi
done
echo -n "]"
LENGTH=0
usleep 500000
echo -en "\r "
done
fi
sleep 3
echo "Switch the host SPI bus to BMC."
cmd='gpioutil -p C7 -v 1'
if $cmd 1>/dev/null 2>&1; then
echo "Switch completed."
else
echo "Switch failed."
fi
echo "Load the ASpeed SMC driver"
echo 1e630000.flash-controller > /sys/bus/platform/drivers/aspeed-smc/bind
sleep 2
chassisstate=$(obmcutil chassisstate | awk -F. '{print $NF}')
echo "---Current Chassisstate $chassisstate---"
if [ "$chassisstate" == 'On' ];
then
echo "---Chassis on turning it off---"
obmcutil chassisoff
sleep 10
fi
echo "Flashcp to update SOC."
echo "Please wait a few minutes."
flashcp -v /tmp/$1 /dev/mtd6
sleep 3
echo "Switch the host SPI bus to HOST."
cmd1='gpioutil -p C7 -v 0'
if $cmd1 1>/dev/null 2>&1; then
echo "Switch completed."
else
echo "Switch failed."
fi
echo "unLoad the ASpeed SMC driver"
echo 1e630000.flash-controller > /sys/bus/platform/drivers/aspeed-smc/unbind
echo -ne "SOC update steps is complete.\n"
if [ "$chassisstate" == 'On' ];
then
echo "5 sec later will be power-on."
echo "If wantn't power-on, please CTRL + C leave script."
WAITSEC=5
while [ $WAITSEC -ge 0 ]
do
echo -n "Countdown seconds:$WAITSEC"
sleep 1
echo -en "\r"
WAITSEC=$(($WAITSEC-1))
if [ $WAITSEC -eq 0 ]; then
echo -en "\r"
echo -en "--- Power-on --- \n"
obmcutil chassison
break 1
fi
done
fi
|