From: wdenk Date: Thu, 16 Oct 2003 12:53:35 +0000 (+0000) Subject: TRAB auto-update: Base decision if we have to strip the image X-Git-Tag: LABEL_2006_03_12_0025~721 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=3d1e8a9d4e40ce17a4fec75ee4055e7ddf6ca1a9;p=oweals%2Fu-boot.git TRAB auto-update: Base decision if we have to strip the image header on image type as encoded in the header --- diff --git a/CHANGELOG b/CHANGELOG index 0c871e9b69..b8e52fdb6c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -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) diff --git a/README b/README index e3f4f9ddd4..82a8ec64a1 100644 --- a/README +++ b/README @@ -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 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 */