summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Muntsinger <muntsinger@google.com>2019-11-19 20:39:10 -0800
committerTristan Muntsinger <muntsinger@google.com>2019-11-19 20:47:59 -0800
commitb0f74ea680a2c107e5d4cd70c264b3b0e4b71acb (patch)
tree69434f7142e19483e179e466bd9da308bd70d85d
parent206aaf8f41fd406aa88162daf59b2d7fc5347fc4 (diff)
downloadcuttlefish_common-b0f74ea680a2c107e5d4cd70c264b3b0e4b71acb.tar.gz
Fix DFU variable setting in arm64 host image
This was breaking a few things in the script, notably the environment partition was failing to transfer unless it wa the only partition that was being loaded. This change also cleans up some superfluous '&&' and replaces them with cleaner explicit checks. Bug: 144812375 Test: local build and DFU transfer of all partitions Change-Id: I72cbefc0e9318700468811983edea03466a54b09
-rwxr-xr-xtools/create_base_image_arm.sh75
1 files changed, 41 insertions, 34 deletions
diff --git a/tools/create_base_image_arm.sh b/tools/create_base_image_arm.sh
index d79334bb..00ebb2c0 100755
--- a/tools/create_base_image_arm.sh
+++ b/tools/create_base_image_arm.sh
@@ -219,11 +219,11 @@ if test "$Sha" != "$OldSha"; then
setenv serverip ${TftpServer}
setenv loadaddr 0x00200000
mmc dev 0 0;
- file=$TplSplImg; offset=0x40; size=0x1f80; run tftpget1; setenv TplSplImg
- file=$UbootItb; offset=0x4000; size=0x2000; run tftpget1; setenv UbootItb
- file=$TrustImg; offset=0x6000; size=0x2000; run tftpget1; setenv TrustImg
- file=$RootfsImg; offset=0x8000; size=0; run tftpget1; setenv RootfsImg
- file=$UbootEnv; offset=0x1fc0; size=0x40; run tftpget1; setenv UbootEnv
+ setenv file $TplSplImg; offset=0x40; size=0x1f80; run tftpget1; setenv TplSplImg
+ setenv file $UbootItb; offset=0x4000; size=0x2000; run tftpget1; setenv UbootItb
+ setenv file $TrustImg; offset=0x6000; size=0x2000; run tftpget1; setenv TrustImg
+ setenv file $RootfsImg; offset=0x8000; size=0; run tftpget1; setenv RootfsImg
+ setenv file $UbootEnv; offset=0x1fc0; size=0x40; run tftpget1; setenv UbootEnv
mw.b ${scriptaddr} 0 0x8000
env export -b ${scriptaddr} 0x8000
mmc write ${scriptaddr} 0x1fc0 0x40
@@ -237,11 +237,11 @@ if test "$DFUethaddr" = "$ethaddr" || test "$DFUethaddr" = ""; then
setenv serverip ${TftpServer}
setenv loadaddr 0x00200000
mmc dev 0 0;
- file=$TplSplImg; offset=0x40; size=0x1f80; run tftpget1; setenv TplSplImg
- file=$UbootItb; offset=0x4000; size=0x2000; run tftpget1; setenv UbootItb
- file=$TrustImg; offset=0x6000; size=0x2000; run tftpget1; setenv TrustImg
- file=$RootfsImg; offset=0x8000; size=0; run tftpget1; setenv RootfsImg
- file=$UbootEnv; offset=0x1fc0; size=0x40; run tftpget1; setenv UbootEnv
+ setenv file $TplSplImg; offset=0x40; size=0x1f80; run tftpget1; setenv TplSplImg
+ setenv file $UbootItb; offset=0x4000; size=0x2000; run tftpget1; setenv UbootItb
+ setenv file $TrustImg; offset=0x6000; size=0x2000; run tftpget1; setenv TrustImg
+ setenv file $RootfsImg; offset=0x8000; size=0; run tftpget1; setenv RootfsImg
+ setenv file $UbootEnv; offset=0x1fc0; size=0x40; run tftpget1; setenv UbootEnv
mw.b ${scriptaddr} 0 0x8000
env export -b ${scriptaddr} 0x8000
mmc write ${scriptaddr} 0x1fc0 0x40
@@ -249,32 +249,39 @@ if test "$DFUethaddr" = "$ethaddr" || test "$DFUethaddr" = ""; then
echo "Already have ${Sha}. Booting..."
fi
else
- echo "Update ${Sha} isn't for me. Booting..."
+ echo "Update ${Sha} is not for me. Booting..."
fi'
-setenv tftpget1 "
-mw.b ${loadaddr} 0 0x400000
-&& tftp ${file}
-&& isGz=0 && setexpr isGz sub .*\\.gz\$ 1 ${file}
-&& if test $isGz = 1; then
- setexpr boffset ${offset} * 0x200
- && gzwrite mmc 0 ${loadaddr} 0x${filesize} 100000 ${boffset}
- && echo Updated: ${bootfile}
-elif test ${file} = boot.env; then
- env import -b ${loadaddr}
- && echo Updated: boot.env
-else
- && if test $size = 0; then
- setexpr x $filesize - 1
- && setexpr x $x / 0x1000
- && setexpr x $x + 1
- && setexpr x $x * 0x1000
- && setexpr x $x / 0x200
- && size=0x${x}
+setenv tftpget1 '
+if test "$file" != ""; then
+ mw.b ${loadaddr} 0 0x400000
+ tftp ${file}
+ if test $? = 0; then
+ setenv isGz 0 && setexpr isGz sub .*\\.gz\$ 1 ${file}
+ if test $isGz = 1; then
+ if test ${file} = ${UbootEnv}; then
+ echo "** gzipped env unsupported **"
+ else
+ setexpr boffset ${offset} * 0x200
+ gzwrite mmc 0 ${loadaddr} 0x${filesize} 100000 ${boffset} && echo Updated: ${file}
+ fi
+ elif test ${file} = ${UbootEnv}; then
+ env import -b ${loadaddr} && echo Updated: ${file}
+ else
+ if test $size = 0; then
+ setexpr x $filesize - 1
+ setexpr x $x / 0x1000
+ setexpr x $x + 1
+ setexpr x $x * 0x1000
+ setexpr x $x / 0x200
+ size=0x${x}
+ fi
+ mmc write ${loadaddr} ${offset} ${size} && echo Updated: ${file}
+ fi
fi
- && mmc write ${loadaddr} ${offset} ${size}
- && echo Updated: ${bootfile}
-fi
-|| echo ** UPDATE FAILED: ${bootfile} **"
+ if test $? != 0; then
+ echo ** UPDATE FAILED: ${file} **
+ fi
+fi'
if mmc dev 1 0; then; else
run bootcmd_dhcp;
fi