aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwdenk <wdenk>2003-10-16 12:53:35 +0000
committerwdenk <wdenk>2003-10-16 12:53:35 +0000
commit3d1e8a9d4e40ce17a4fec75ee4055e7ddf6ca1a9 (patch)
tree43236455d0052d62368a13832a32db815685666d
parent42d1f0394bef0624fc9664714d54bb137931d6a6 (diff)
TRAB auto-update: Base decision if we have to strip the image
header on image type as encoded in the header
-rw-r--r--CHANGELOG3
-rw-r--r--README4
-rw-r--r--board/trab/auto_update.c12
3 files changed, 11 insertions, 8 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 0c871e9b6..b8e52fdb6 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 e3f4f9ddd..82a8ec64a 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 40a92fd91..dd62d0948 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 */