[new uImage] Remove I386 uImage fake_header() routine

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>
This commit is contained in:
Marian Balakowicz 2008-01-08 18:11:44 +01:00 committed by Wolfgang Denk
parent 559316faf7
commit 261dcf4624
4 changed files with 1 additions and 79 deletions

View 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);

View 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

View 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)
{

View 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;
}