فهرست منبع

TRAB auto-update: Base decision if we have to strip the image
header on image type as encoded in the header

wdenk 21 سال پیش
والد
کامیت
3d1e8a9d4e
3فایلهای تغییر یافته به همراه11 افزوده شده و 8 حذف شده
  1. 3 0
      CHANGELOG
  2. 2 2
      README
  3. 6 6
      board/trab/auto_update.c

+ 3 - 0
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)

+ 2 - 2
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

+ 6 - 6
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 */