summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2010-10-11 16:34:43 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2010-10-12 21:32:45 +0200
commitde1823f74ec6312ab35180667a6f19aaa03f0d5e (patch)
tree1c29a721365b22f0b5895d3fd5169dffea655939
parent3b8942faa0ef4088eec60fba0b34cb4be0d7661f (diff)
downloadbarebox-de1823f74ec6312ab35180667a6f19aaa03f0d5e.tar.gz
barebox-de1823f74ec6312ab35180667a6f19aaa03f0d5e.tar.xz
defaultenv: add xmodem support for update
the default mode is tftp to do not change the default behavior Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--defaultenv/bin/_update26
-rw-r--r--defaultenv/bin/_update_help7
-rw-r--r--defaultenv/bin/update11
3 files changed, 31 insertions, 13 deletions
diff --git a/defaultenv/bin/_update b/defaultenv/bin/_update
index 6f2ebd315..87e692232 100644
--- a/defaultenv/bin/_update
+++ b/defaultenv/bin/_update
@@ -10,14 +10,16 @@ if [ ! -e "$part" ]; then
exit 1
fi
-if [ x$ip = xdhcp ]; then
- dhcp
-fi
-
-ping $eth0.serverip
-if [ $? -ne 0 ] ; then
- echo "Server did not reply! Update aborted."
- exit 1
+if [ x$mode = xtftp ]; then
+ if [ x$ip = xdhcp ]; then
+ dhcp
+ fi
+
+ ping $eth0.serverip
+ if [ $? -ne 0 ] ; then
+ echo "Server did not reply! Update aborted."
+ exit 1
+ fi
fi
unprotect $part
@@ -30,6 +32,12 @@ erase $part
echo
echo "flashing $image to $part"
echo
-tftp $image $part
+
+if [ x$mode = xtftp ]; then
+ tftp $image $part
+else
+ loadb -f $image -c
+ cp $image $part
+fi
protect $part
diff --git a/defaultenv/bin/_update_help b/defaultenv/bin/_update_help
index a23f00fe0..1d9b28ea0 100644
--- a/defaultenv/bin/_update_help
+++ b/defaultenv/bin/_update_help
@@ -1,10 +1,11 @@
#!/bin/sh
-echo "usage: $0 -t <kernel|rootfs> -d <nor|nand> [-f imagename] -c"
+echo "usage: $0 -t <kernel|rootfs> -d <nor|nand> [-m tftp|xmodem] [-f imagename] -c"
echo "update tools."
echo ""
echo "options"
echo " -c to check the crc32 for the image and flashed one"
echo ""
-echo "type update -t kernel -d <nor|nand> [-f imagename] to update kernel into flash"
-echo "type update -t rootfs -d <nor|nand> [-f imagename] to update rootfs into flash"
+echo "default mode is tftp"
+echo "type update -t kernel -d <nor|nand> [-m tftp|xmodem] [-f imagename] to update kernel into flash"
+echo "type update -t rootfs -d <nor|nand> [-m tftp|xmodem] [-f imagename] to update rootfs into flash"
diff --git a/defaultenv/bin/update b/defaultenv/bin/update
index 504bff60a..032f3409f 100644
--- a/defaultenv/bin/update
+++ b/defaultenv/bin/update
@@ -5,8 +5,9 @@
type=""
device_type=""
check=n
+mode=tftp
-while getopt "ht:d:f:c" Option
+while getopt "ht:d:f:m:c" Option
do
if [ ${Option} = t ]; then
type=${OPTARG}
@@ -16,6 +17,8 @@ elif [ ${Option} = f ]; then
imagename=${OPTARG}
elif [ ${Option} = c ]; then
check=y
+elif [ ${Option} = m ]; then
+ mode=${OPTARG}
else
. /env/bin/_update_help
exit 0
@@ -45,6 +48,12 @@ else
exit 1
fi
+if [ x${mode} != xtftp ] && [ x${mode} != xxmodem ] ; then
+ echo "unsupported mode ${mode}."
+ . /env/bin/_update_help
+ exit 1
+fi
+
. /env/bin/_update
if [ x${check} = xy ]; then
crc32 -f $image -F $part