summaryrefslogtreecommitdiff
path: root/board/trab/auto_update.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/trab/auto_update.c')
-rw-r--r--board/trab/auto_update.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/board/trab/auto_update.c b/board/trab/auto_update.c
index 40a92fd..dd62d09 100644
--- a/board/trab/auto_update.c
+++ b/board/trab/auto_update.c
@@ -352,8 +352,12 @@ au_do_update(int idx, long sz)
debug ("flash_sect_erase(%lx, %lx);\n", start, end);
flash_sect_erase(start, end);
wait_ms(100);
- /* strip the header - except for the kernel and app */
- if (idx == IDX_FIRMWARE || idx == IDX_DISK) {
+ /* strip the header - except for the kernel and ramdisk */
+ if (hdr->ih_type == IH_TYPE_KERNEL || hdr->ih_type == IH_TYPE_RAMDISK) {
+ addr = (char *)hdr;
+ off = sizeof(*hdr);
+ nbytes = sizeof(*hdr) + ntohl(hdr->ih_size);
+ } else {
addr = (char *)((char *)hdr + sizeof(*hdr));
#ifdef AU_UPDATE_TEST
/* copy it to where Linux goes */
@@ -362,10 +366,6 @@ au_do_update(int idx, long sz)
#endif
off = 0;
nbytes = ntohl(hdr->ih_size);
- } else {
- addr = (char *)hdr;
- off = sizeof(*hdr);
- nbytes = sizeof(*hdr) + ntohl(hdr->ih_size);
}
/* copy the data from RAM to FLASH */