diff options
author | Steve Sakoman <steve@sakoman.com> | 2010-02-16 10:22:18 -0800 |
---|---|---|
committer | Koen Kooi <koen@openembedded.org> | 2010-04-29 14:49:12 +0200 |
commit | e65d0117079c6399d4b6c648793d7945bfb6b62b (patch) | |
tree | dec5248a2a2b45cb9b7b7a97b309ded3664208ae | |
parent | 4b5faf3bc74f420a089aac22326ddb8f621e7685 (diff) |
overo-writeprom: add utility to write expansion board config eeproms
-rwxr-xr-x | recipes/overo-scripts/files/writeprom.sh | 91 | ||||
-rw-r--r-- | recipes/overo-scripts/overo-writeprom.bb | 16 |
2 files changed, 107 insertions, 0 deletions
diff --git a/recipes/overo-scripts/files/writeprom.sh b/recipes/overo-scripts/files/writeprom.sh new file mode 100755 index 0000000000..e18dcb0f7a --- /dev/null +++ b/recipes/overo-scripts/files/writeprom.sh @@ -0,0 +1,91 @@ +#!/bin/sh + +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=0x50 +vendorid=0x02 + +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 + diff --git a/recipes/overo-scripts/overo-writeprom.bb b/recipes/overo-scripts/overo-writeprom.bb new file mode 100644 index 0000000000..c72c850be6 --- /dev/null +++ b/recipes/overo-scripts/overo-writeprom.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "writeprom script for overo" + +PR="r0" + +SRC_URI = "file://writeprom.sh" + +S = "${WORKDIR}" + +do_install () { + install -d ${D}${bindir}/ + install -m 0755 ${WORKDIR}/writeprom.sh ${D}${bindir}/ +} + +PACKAGES = "${PN}" +FILES_${PN} = "/*" + |