Subject: mmEye netbsd-4 generic kernel doesn't boot?
To: None <port-sh3@NetBSD.org>
From: Anders Gavare <gavare@gmail.com>
List: port-sh3
Date: 05/27/2007 10:32:58
Hi NetBSD/sh3'ers!

I was trying out a NetBSD/mmeye GENERIC kernel today (from the netbsd-4
daily builds), in GXemul. The emulator only supports SH4 so far, not SH3,
but I thought it would be fun to just give it a try anyway.

However, I ran in to a problem which I think is in NetBSD, not in the
emulator. From mmeye/machdep.c, uvm_page_physload() is called. Here is a
function call trace from the emulator:

  <uvm_page_physload(0x4c209,0xd000,0x4c209,0xd000,&_end ...
    <panic("uvm_page_physload: start >= end" ...

The source code in mmeye/machdep.c, just before the uvm_page_physload()
call, looks something like this:

        kernend = atop(round_page(SH3_P1SEG_TO_PHYS(end)));
   #if NKSYMS || defined(DDB) || defined(LKM)
        /* XXX Currently symbol table size is not passed to the kernel. */
        kernend += 0x40000;                                     /* XXX */
   #endif

If I manually change the first and third argument to, say, 0xc209 + 0x40,
then the kernel gets further (and prints some boot messages).

So, should the source code perhaps read:

        kernend += atop(0x40000);                               /* XXX */

instead?


Anders