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