summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2008-09-29 09:27:35 +0000
committerDave Chapman <dave@dchapman.com>2008-09-29 09:27:35 +0000
commit0326055f9153f6635623f9698c5f1186be5e7c4a (patch)
treec92caba34368716d8ddc8ef3c59aecf943ce9eb4
parent11ef4ce1f9500ca1bd5651bc0e0dc49bf0dfbd2d (diff)
downloadrockbox-0326055f9153f6635623f9698c5f1186be5e7c4a.tar.gz
rockbox-0326055f9153f6635623f9698c5f1186be5e7c4a.zip
We don't know how to increase the firmware size, so abort instead of creating a bricking firmware. Suggested by Rafaël Carré (funman).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18663 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--utils/AMS/hacking/mkamsboot.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/utils/AMS/hacking/mkamsboot.c b/utils/AMS/hacking/mkamsboot.c
index a6e4e01532..30ca66e43b 100644
--- a/utils/AMS/hacking/mkamsboot.c
+++ b/utils/AMS/hacking/mkamsboot.c
@@ -195,17 +195,13 @@ int main(int argc, char* argv[])
195 fprintf(stderr,"New total size of firmware - 0x%08x\n",new_length); 195 fprintf(stderr,"New total size of firmware - 0x%08x\n",new_length);
196 196
197 if (firmware_paddedsize != new_paddedsize) { 197 if (firmware_paddedsize != new_paddedsize) {
198 /* Move everything after the firmare block "bootloader_size" 198 /* We don't know how to safely increase the firmware size, so abort */
199 bytes forward to make room for the bootloader */
200 199
201 fprintf(stderr,"Calling memmove(buf + 0x%08x,buf + 0x%08x,0x%08x)\n", 200 fprintf(stderr,
202 0x400 + new_paddedsize, 201 "[ERR] Bootloader too large (%d bytes - %d bytes available), aborting.\n",
203 0x400 + firmware_paddedsize, 202 bootloader_size, firmware_paddedsize - firmware_size);
204 (int)len - firmware_paddedsize);
205 203
206 memmove(buf + 0x400 + new_paddedsize, 204 return 1;
207 buf + 0x400 + firmware_paddedsize,
208 len - firmware_paddedsize);
209 } 205 }
210 206
211 ldr = get_uint32le(&buf[0x400]); 207 ldr = get_uint32le(&buf[0x400]);