[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: JCC-JP4
あまり気合いをいれていないので進みませんが:-)、ofwboot はお約束の
スタックを増やしたら動きました。
*** Locore.c~ Thu May 28 20:14:09 1998
--- Locore.c Thu Jun 22 18:33:01 2000
***************
*** 43,49 ****
static void startup __P((void *, int, int (*)(void *), char *, int));
static void setup __P((void));
! static int stack[256];
#ifdef XCOFF_GLUE
asm("
--- 43,49 ----
static void startup __P((void *, int, int (*)(void *), char *, int));
static void setup __P((void));
! static int stack[1024];
#ifdef XCOFF_GLUE
asm("
***************
*** 71,77 ****
lis 1,stack@ha
addi 1,1,stack@l
! addi 1,1,1024
b startup
");
--- 71,77 ----
lis 1,stack@ha
addi 1,1,stack@l
! addi 1,1,4096
b startup
");
で ofwboot を使うようにしたら
panic: uvm_page_lookup_freelist: unable to locate physseg
がでるようになったので調べてみたら、この人は使えるメモリー領域を
start size
0x8000, 0x8000
0x30000, 0x30000
0xab000, 0x50000
0xaf000, 0x11000
0x215000, 0x1cd7000
のように重複して渡してくれるのでした。こりゃ動かんわ。
めんどーなのであっさりと
*** powerpc/powerpc/pmap.c~ Thu Jun 22 18:47:43 2000
--- powerpc/powerpc/pmap.c Thu Jun 22 18:53:34 2000
***************
*** 485,490 ****
--- 485,493 ----
#endif
for (mp = avail; mp->size; mp++) {
+ printf("0x%x, 0x%x\n", mp->start, mp->size);
+ if (mp->start < 0x200000)
+ continue;
uvm_page_physload(atop(mp->start), atop(mp->start + mp->size),
atop(mp->start), atop(mp->start + mp->size),
VM_FREELIST_DEFAULT);
とこれで動きました。
# ここはちゃんと重複を確認するべきなのか…?