blob: 301b06f072e6a51325f250af52cd2c217b28c732 (
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
|
#!/bin/bash
if [ $# -ne 3 ] && [ $# -ne 5 ];
then
echo "Usage:"
echo ""
echo "writeprom.sh deviceid rev fab_rev [envvar envsetting]"
echo
echo " deviceid - expansion board device number from table:"
echo
echo " Summit 0x01"
echo " Tobi 0x02"
echo " Tobi Duo 0x03"
echo " Palo35 0x04"
echo " Palo43 0x05"
echo " Chestnut43 0x06"
echo " Pinto 0x07"
echo
echo " rev - board revision (e.g. 0x00)"
echo " fab_rev - revision marking from pcb (e.g. R2411)"
echo " envvar - optional u-boot env variable name"
echo " (e.g. dvimode)"
echo " envsetting - optional u-boot env variable setting"
echo " (e.g. 1024x768MR-16@60)"
exit 1
fi
fabrevision=$3
if [ ${#fabrevision} -ge 8 ]; then
echo "Error: fab revision string must less than 8 characters"
exit 1
fi
envvar=$4
if [ ${#envar} -ge 16 ]; then
echo "Error: environment variable name string must less than 16 characters"
exit 1
fi
envsetting=$5
if [ ${#ensetting} -ge 64 ]; then
echo "Error: environment setting string must less than 64 characters"
exit 1
fi
bus=3
device=0x51
vendorid=0x03
i2cset -y $bus $device 0x00 0x00
i2cset -y $bus $device 0x01 $vendorid
i2cset -y $bus $device 0x02 0x00
i2cset -y $bus $device 0x03 $1
i2cset -y $bus $device 0x04 $2
i2cset -y $bus $device 0x05 00
let i=6
hexdumpargs="'${#fabrevision}/1 \"0x%02x \"'"
command="echo -n \"$fabrevision\" | hexdump -e $hexdumpargs"
hex=$(eval $command)
for character in $hex; do
i2cset -y $bus $device $i $character
let i=$i+1
done
i2cset -y $bus $device $i 0x00
if [ $# -eq 5 ]
then
i2cset -y $bus $device 0x05 0x01
let i=14
hexdumpargs="'${#envvar}/1 \"0x%02x \"'"
command="echo -n \"$envvar\" | hexdump -e $hexdumpargs"
hex=$(eval $command)
for character in $hex; do
i2cset -y $bus $device $i $character
let i=$i+1
done
i2cset -y $bus $device $i 0x00
let i=30
hexdumpargs="'${#envsetting}/1 \"0x%02x \"'"
command="echo -n \"$envsetting\" | hexdump -e $hexdumpargs"
hex=$(eval $command)
for character in $hex; do
i2cset -y $bus $device $i $character
let i=$i+1
done
i2cset -y $bus $device $i 0x00
fi
|