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
> 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. :-]

"All of this is for nothing if we don't go to the stars" - JMS/B5

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to