[U-Boot-Users] [PATCH 07/13] [new uImage] Remove I386 uImage fake_header() routine
Marian Balakowicz
m8 at semihalf.com
Fri Jan 11 15:29:28 CET 2008
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 at semihalf.com>
---
common/cmd_bootm.c | 16 ---------------
include/asm-i386/zimage.h | 1 -
lib_i386/i386_linux.c | 12 -----------
lib_i386/zimage.c | 48 ---------------------------------------------
4 files changed, 0 insertions(+), 77 deletions(-)
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 4b2ea3f..40df9b0 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -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'
@@ -158,21 +154,9 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
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__ */
- {
puts ("Bad Magic Number\n");
show_boot_progress (-1);
return 1;
- }
}
show_boot_progress (2);
diff --git a/include/asm-i386/zimage.h b/include/asm-i386/zimage.h
index c7103b1..b6266e4 100644
--- a/include/asm-i386/zimage.h
+++ b/include/asm-i386/zimage.h
@@ -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
diff --git a/lib_i386/i386_linux.c b/lib_i386/i386_linux.c
index d8ae4fc..8792d84 100644
--- a/lib_i386/i386_linux.c
+++ b/lib_i386/i386_linux.c
@@ -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)
{
diff --git a/lib_i386/zimage.c b/lib_i386/zimage.c
index abe0a25..a998f6f 100644
--- a/lib_i386/zimage.c
+++ b/lib_i386/zimage.c
@@ -224,51 +224,3 @@ void boot_zimage(void *setup_base)
regs.eflags = 0;
enter_realmode(((u32)setup_base+SETUP_START_OFFSET)>>4, 0, ®s, ®s);
}
-
-
-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;
-}
More information about the U-Boot
mailing list