*BSD News Article 18581


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!mel.dit.csiro.au!its.csiro.au!dmssyd.syd.dms.CSIRO.AU!metro!sequoia!ultima!kralizec.zeta.org.au!kralizec.zeta.org.au!not-for-mail
From: bde@kralizec.zeta.org.au (Bruce Evans)
Newsgroups: comp.os.386bsd.questions
Subject: Re: KERNEL PANIC ANYONE
Date: 17 Jul 1993 01:04:20 +1000
Organization: Kralizec Dialup Unix Sydney: +61-2-837-1183 V.32bis
Lines: 23
Message-ID: <226g1kINNt8q@kralizec.zeta.org.au>
References: <22222@durer.cme.nist.gov> <1993Jul12.180752.29982@prepress.com> <GENE.93Jul14074659@stark.uucp>
NNTP-Posting-Host: kralizec.zeta.org.au

In <GENE.93Jul14074659@stark.uucp> gene@cs.sunysb.edu!stark (Gene Stark) writes:

>In article <1993Jul12.180752.29982@prepress.com> costa@benton.prepress.com (Bob Costa) writes:

>>   I found that kernels in excess of 600k tend to make my system panic.

>Maybe people don't know this.  I didn't, and it sure ruined one of my weekends.
>When you build a kernel, it is important to use "nm" to make sure that _end
>has been assigned an address strictly less than 0xFE090000.  If not, then
>some of your BSS area will be overlapping the bootstrap loader.  Since the

The bug is actually a little different.  It's OK for the BSS to overlap the
loader (even though the GDT is in the loader carcass, it is not accessed).
However, the kernel uses 28K beyond the end of the BSS (rounded up to the
next 4K page boundary).  So _end must be <= 0xFE099000.  This is checked
by the "new" boot loader in the 0.2.4 patchkit.

Also, in pmap.c, 32K of memory immediately below 640K is allocated for
the dma bounce buffer.  I'm not sure if this can overlap anything.  If
not, _end must be <= 0xFE091000, and < 640K memory won't work (but other
things require 640K memory, all without checking that it exists).
-- 
Bruce Evans  bde@kralizec.zeta.org.au