From owner-freebsd-current Tue Mar 13 20:54: 4 2001 Delivered-To: freebsd-current@freebsd.org Received: from mrout1.yahoo.com (mrout1.yahoo.com [208.48.125.95]) by hub.freebsd.org (Postfix) with ESMTP id ED6DD37B719 for ; Tue, 13 Mar 2001 20:53:59 -0800 (PST) (envelope-from peter@yahoo-inc.com) Received: from daintree.yahoo.com (daintree.yahoo.com [205.216.162.172]) by mrout1.yahoo.com (8.11.1/8.11.1/y.out) with ESMTP id f2E4rmO07228; Tue, 13 Mar 2001 20:53:48 -0800 (PST) Received: from yahoo-inc.com (localhost [127.0.0.1] (may be forged)) by daintree.yahoo.com (8.11.0/8.11.0) with ESMTP id f2E4rli01794; Tue, 13 Mar 2001 20:53:47 -0800 (PST) (envelope-from peter@yahoo-inc.com) Message-Id: <200103140453.f2E4rli01794@daintree.yahoo.com> X-Mailer: exmh version 2.1.1 10/15/1999 To: Richard Todd Cc: current@freebsd.org Subject: Re: Tracking down problem with booting large kernels (bug in locore.s) In-Reply-To: Date: Tue, 13 Mar 2001 20:53:47 -0800 From: Peter Wemm Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Richard Todd wrote: [..] > The pushl and ret is where the boot code is jumping to "begin:" at its proper > virtual address after the page tables are setup. I'm guessing that > create_pagetables is somehow losing and creating bogus page tables such that > the jump to the kernel virtual address space goes into deep space somewhere, > but frankly the details of page tables on the i386 are beyond my expertise. > So I'm posting this in hopes that someone on here *does* know enough to figur e > out what's going wrong when the kernel size is sufficiently large. Just a thought.. You might try this: Index: locore.s =================================================================== RCS file: /home/ncvs/src/sys/i386/i386/locore.s,v retrieving revision 1.142 diff -u -r1.142 locore.s --- locore.s 2001/02/25 07:44:39 1.142 +++ locore.s 2001/03/14 04:46:27 @@ -889,7 +889,7 @@ /* install a pde for temporary double map of bottom of VA */ movl R(KPTphys), %eax xorl %ebx, %ebx - movl $1, %ecx + movl $NKPT, %ecx fillkpt(R(IdlePTD), $PG_RW) /* install pde's for pt's */ And see if you get past it. (Sorry for the xterm cut/paste spam). Dont run with this if it does get past it, or badness will result as the temporary mappings wont be turned off and you'll leave yourself a massive root exploitable hole. This is just a hunch to see if it gets you past *that specific point*. If so, a proper fix is pretty trivial from there. No guarantees as to whether this will even boot though. :-] Cheers, -Peter -- Peter Wemm - peter@yahoo-inc.com; peter@FreeBSD.org; peter@wemm.org "All of this is for nothing if we don't go to the stars" - JMS/B5 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message