Re: make boot fails

Andrzej Krzysztofowicz (ankry@green.mif.pg.gda.pl)
Tue, 11 May 1999 14:25:57 +0200 (EEST)


>
> As was discussed at length a few weeks ago (which is why I did not cc the
> list) the limit for zImage is a 512K image, for bzImage it is hard coded
> to be 1.44M (the size of a floppy) but could be made larger if needed .
>

You are wrong. I remember the discussion and even gave an example as
1413 kB ( <1.44MB ) kernel does not build as bzimage.

Short analysis of
arch/i386/boot/bootsect.S
and
arch/i386/boot/setup.S
shows that size of kernel to be load is stored in

syssize:
.word SYSSIZE

i.e. should not exceed
(2^16 - 1) * 16 Bytes

This is the limit of internal (used to boot from a floppy) bootloader.

I don't know if lilo/loadlin use this variable in kernel loading procedure,
however. If they use the code from setup.S to load the kernel into memory
the problem exists. If they use their own code - the problem probably goes
away.

Modification .word -> .dword is not trivial.

This kernel size limit is controlled during build process in
arch/i386/boot/tools/build.c :

u32 sys_size;
[...]
if (sys_size > (is_big_kernel ? 0xffff : DEF_SYSSIZE))
die("System is too big. Try using %smodules.",
is_big_kernel ? "" : "bzImage or ");
[...]
buf[0] = (sys_size & 0xff);
buf[1] = ((sys_size >> 8) & 0xff);
if (write(1, buf, 2) != 2)
die("Write of image length failed");

sys_size contains value (size of hernel)/16 rounded up.

> >
> > It seems that you have reached the limit (1MB - 16B) of the kernel size
> > on i386 that can be currently handled by its internal bootloader.
> > I don't know if it is possible for lilo/loadlin to handle larger kernels.
> >
> > The reason is that kernel size is 16bit intereger counting 16 byte chunks.
> > It is possible to modify it, however it could introduce many problems
> > with backward compatibility and needs somebody to rewrite bootloaders.
> >

Andrzej

-- 
=======================================================================
  Andrzej M. Krzysztofowicz               ankry@mif.pg.gda.pl
  phone (48)(58) 347 14 61
Faculty of Applied Phys. & Math.,   Technical University of Gdansk

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/