[new uImage] Remove I386 uImage fake_header() routine
authorMarian Balakowicz <m8@semihalf.com>
Tue, 8 Jan 2008 17:11:44 +0000 (18:11 +0100)
committerWolfgang Denk <wd@denx.de>
Thu, 7 Feb 2008 00:12:55 +0000 (01:12 +0100)
I386 targets are not using a uImage format, instead fake header
is added to ram image before it is further processed by bootm.

Remove this fixup and force proper uImage use for I386.

Signed-off-by: Marian Balakowicz <m8@semihalf.com>
common/cmd_bootm.c
include/asm-i386/zimage.h
lib_i386/i386_linux.c
lib_i386/zimage.c

index fbe81d3039aa41e61e46ce7764eb776e81b94083..aa7c0f5b777f9f0490cb036b2531a53e4c52b1e5 100644 (file)
@@ -79,10 +79,6 @@ static int do_imls (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
 static void print_type (image_header_t *hdr);
 
-#ifdef __I386__
-image_header_t *fake_header(image_header_t *hdr, void *ptr, int size);
-#endif
-
 /*
  *  Continue booting an OS image; caller already has:
  *  - copied image header to global variable `header'
@@ -157,22 +153,10 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 #endif
        memmove (&header, (char *)addr, image_get_header_size ());
 
-       if (!image_check_magic (hdr)) {
-#ifdef __I386__        /* correct image format not implemented yet - fake it */
-               if (fake_header(hdr, (void*)addr, -1) != NULL) {
-                       /* to compensate for the addition below */
-                       addr -= image_get_header_size ();
-                       /* turnof verify,
-                        * fake_header() does not fake the data crc
-                        */
-                       verify = 0;
-               } else
-#endif /* __I386__ */
-           {
+       if (!image_check_magic(hdr)) {
                puts ("Bad Magic Number\n");
                show_boot_progress (-1);
                return 1;
-           }
        }
        show_boot_progress (2);
 
index c7103b1f37e5f8867c2ee2b56f6748e417157bb8..b6266e456a594dc2cca9db0fbd93c970138cbee2 100644 (file)
@@ -70,6 +70,5 @@ void *load_zimage(char *image, unsigned long kernel_size,
                  int auto_boot);
 
 void boot_zimage(void *setup_base);
-image_header_t *fake_zimage_header(image_header_t *hdr, void *ptr, int size);
 
 #endif
index 67a78c4e3bfcf3803bea8bdcd675b71aa533ecb2..6cb021a193e422ef4c09d2ed201f66968549074e 100644 (file)
@@ -33,18 +33,6 @@ extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
 extern image_header_t header;           /* from cmd_bootm.c */
 
-
-image_header_t *fake_header(image_header_t *hdr, void *ptr, int size)
-{
-       /* try each supported image type in order */
-       if (NULL != fake_zimage_header(hdr, ptr, size)) {
-               return hdr;
-       }
-
-       return NULL;
-}
-
-
 void do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
                ulong addr, ulong *len_ptr, int   verify)
 {
index 20f9f8d84b8d0b35598b340ff33bda60e52d0558..c3b4e597aabfd310b085239eb78ac70b005b703f 100644 (file)
@@ -212,7 +212,6 @@ void *load_zimage(char *image, unsigned long kernel_size,
        return setup_base;
 }
 
-
 void boot_zimage(void *setup_base)
 {
        struct pt_regs regs;
@@ -224,51 +223,3 @@ void boot_zimage(void *setup_base)
        regs.eflags = 0;
        enter_realmode(((u32)setup_base+SETUP_START_OFFSET)>>4, 0, &regs, &regs);
 }
-
-
-image_header_t *fake_zimage_header(image_header_t *hdr, void *ptr, int size)
-{
-       /* There is no way to know the size of a zImage ... *
-        * so we assume that 2MB will be enough for now */
-#define ZIMAGE_SIZE 0x200000
-
-       /* load a 1MB, the loaded will have to be moved to its final
-        * position again later... */
-#define ZIMAGE_LOAD 0x100000
-
-       ulong checksum;
-
-       if (KERNEL_MAGIC != *(u16*)(ptr + BOOT_FLAG_OFF)) {
-               /* not a zImage or bzImage */
-               return NULL;
-       }
-
-       if (-1 == size) {
-               size = ZIMAGE_SIZE;
-       }
-#if 0
-       checksum = crc32 (0, ptr, size);
-#else
-       checksum = 0;
-#endif
-       memset(hdr, 0, image_get_header_size ());
-
-       /* Build new header */
-       image_set_magic (hdr, IH_MAGIC);
-       image_set_time (hdr, 0);
-       image_set_size (hdr, size);
-       image_set_load (hdr, ZIMAGE_LOAD);
-       image_set_ep (hdr, 0);
-       image_set_dcrc (hdr, checksum);
-       image_set_os (hdr, IH_OS_LINUX);
-       image_set_arch (hdr, IH_ARCH_I386);
-       image_set_type (hdr, IH_TYPE_KERNEL);
-       image_set_comp (hdr, IH_COMP_NONE);
-
-       image_set_name (hdr, "(none)");
-
-       checksum = crc32 (0, (const char *)hdr, image_get_header_size ());
-       image_set_hcrc (hdr, checksum);
-
-       return hdr;
-}