bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Can't boot with 550K of memory


From: Jochen Hoenicke
Subject: Re: Can't boot with 550K of memory
Date: Thu, 8 Mar 2001 18:02:55 +0100 (MET)

On Mar 8, Thierry Laronde wrote:
> On Thu, Mar 08, 2001 at 03:29:00PM +0100, Krzysztof Leszczynski wrote:
> > Hi,
> 
> Hello,
> > 
> > I'm sorry if this is a FAQ but I browsed the whole 4MB
> > bug-grub.mbox and didn't find any answer.
> > 
> > I use pxegrub with ALLWELL network client, it reports
> > (550K lower / 317744K upper memory), when I tried to tftp a
> > bzImage it says the kernel is too big. I found in grub/stage2/boot.c
> 
> Be careful. If your bzImage is in fact a modified bzImage (via etherboot
> mknbi or another program), the organization of the image is different, and
> GRUB thinks that it is a "small Linux" intended to be installed in low mem.

But the 608K limit also applies for big linux images.  Even for them
the linux setup area must be loaded to address 0x90000 which lies
outside the 550KB usable memory.

Krzysztof Leszczynski wrote further:
> I found in grub/stage2/boot.c
>      /* FIXME: SETUP_SECTS should be supported up to 63.
>        But do you know there are >640KB conventional memory machines?  */
>      if (mbi.mem_lower >= 608 && setup_sects < 60)
>       {
> and changed 608 to 549, now it loads bzImage but then it
> hangs. Then I changed in shared.h
> - #define LINUX_SETUP               RAW_ADDR (0x90000)
> + #define LINUX_SETUP               RAW_ADDR (0x80000)
> and the DEF_INITSEG to 0x8000 in linux/include/asm/boot.h

There are other places that need to be changed, at least
LINUX_SETUP_SEG and LINUX_SETUP_STACK in shared.h and the code in
linux/arch/i386/boot/setup.S must be adapted.  I'm also not sure if
grub or linux use the area from 0x80000-0x90000 for other purposes.
It is really hard to get everything right.

Sorry, but I can't think of an easy way to boot linux with 550KB lower
memory.

  Jochen



reply via email to

[Prev in Thread] Current Thread [Next in Thread]