diff options
author | wdenk <wdenk> | 2003-10-16 12:53:35 +0000 |
---|---|---|
committer | wdenk <wdenk> | 2003-10-16 12:53:35 +0000 |
commit | 3d1e8a9d4e40ce17a4fec75ee4055e7ddf6ca1a9 (patch) | |
tree | 43236455d0052d62368a13832a32db815685666d | |
parent | 42d1f0394bef0624fc9664714d54bb137931d6a6 (diff) | |
download | bootable_bootloader_goldelico_gta04-3d1e8a9d4e40ce17a4fec75ee4055e7ddf6ca1a9.zip bootable_bootloader_goldelico_gta04-3d1e8a9d4e40ce17a4fec75ee4055e7ddf6ca1a9.tar.gz bootable_bootloader_goldelico_gta04-3d1e8a9d4e40ce17a4fec75ee4055e7ddf6ca1a9.tar.bz2 |
TRAB auto-update: Base decision if we have to strip the image
header on image type as encoded in the header
-rw-r--r-- | CHANGELOG | 3 | ||||
-rw-r--r-- | README | 4 | ||||
-rw-r--r-- | board/trab/auto_update.c | 12 |
3 files changed, 11 insertions, 8 deletions
@@ -2,6 +2,9 @@ Changes for U-Boot 1.0.0: ====================================================================== +* TRAB auto-update: Base decision if we have to strip the image + header on image type as encoded in the header + * Patches by Xianghua Xiao, 15 Oct 2003: - Added Motorola CPU 8540/8560 support (cpu/85xx) @@ -2325,8 +2325,8 @@ defines the following image properties: LynxOS, pSOS, QNX, RTEMS, ARTOS; Currently supported: Linux, NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS). * Target CPU Architecture (Provisions for Alpha, ARM, Intel x86, - IA64, MIPS, MIPS, PowerPC, IBM S390, SuperH, Sparc, Sparc 64 Bit; - Currently supported: PowerPC). + IA64, MIPS, NIOS, PowerPC, IBM S390, SuperH, Sparc, Sparc 64 Bit; + Currently supported: ARM, Intel x86, MIPS, NIOS, PowerPC). * Compression Type (uncompressed, gzip, bzip2) * Load Address * Entry Point 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 */ |