diff options
Diffstat (limited to 'board')
-rw-r--r-- | board/trab/auto_update.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/board/trab/auto_update.c b/board/trab/auto_update.c index 40a92fd91e..dd62d09483 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 */ |