Subject: panic: init386: can't find end of memory
To: None <port-i386@netbsd.org>
From: Aymeric Vincent <Aymeric.Vincent@labri.u-bordeaux.fr>
List: port-i386
Date: 11/28/2000 11:33:41
        Hi,

My laptop hangs immediately at boot with the following message:

panic: init386: can't find end of memory

After hunting down the problem, it appears that my BIOS provides
*very* unrealistic values for segment start, size, and type.

As of revision 1.401 of machdep.c, we use the information provided by
the BIOS if available.

[
revision 1.401
date: 2000/09/28 18:31:36;  author: thorpej;  state: Exp;  lines: +328 -56
Reintroduce the ACPI memory map code.  The bug that caused the
IDT to be scribbled over on some systems was found and fixed by
T.SHIOZAKI <tshiozak@netbsd.org>.
]

I think we should discard memory segments which have weird types, but
the question is: where? Maybe the best place is in the bootblock code
since in my case this would remove the only segment, which is a bad
segment, and hence make the code in the kernel revert to the old
method, thanks to the patch in revision 1.407:

[
revision 1.407
date: 2000/10/28 02:29:35;  author: enami;  state: Exp;  lines: +2 -2
Don't use memory map of no entry.  Instead, fallback into old way.
This fixes one of ``can't find end of memory'' panic on startup.
]

What are your suggestions? I'd like to avoid doing the change to the
bootblock myself, because the floppy disk drive in my laptop is broken
and if the bootblock fails, my laptop becomes unusable. :-/

thanks,
 Aymeric