[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: root.diskimage-980222.gz



<19980224224318L.makoto@ki.nu>の記事において
1998年02月24日22時43分頃、makoto@ki.nuさんは書きました。

 > 0 > boot scsi/sd@6:2 -a 
 > >> NetBSD/powerpc OpenFirmware Boot, Revision 1.3
 > >> (tsubai@yokyun, Sun Feb 22 23:33:42 JST 1998)
 > Boot: netbsd.ofcons
 > no active packageBooting scsi/sd@6/netbsd.ofcons
 > 871436@0x100000+72916@0x1d4c0c 
 >  start=0x100000

ちょいと気になる点がもうひとつ。

egcs+binutilsの組合わせで、PSIMで使えるかどうか確かめていたのですが、
どうもofwbootからkernelが動かない。

理由を調べてみると、openfirmware()でOFのエントリを実行するときに
スタックを破壊していっている模様。

Locore.cでstackを自前で用意して使うようになっていて、
そのサイズが1Kだったので、試しに16Kにしてみると...
正常にkernelが動作しました。(initでささったけど :-)

ちゅーことで、だめでもともとでしょうが、
currentのsys/arch/powerpc/stand/ofwbootをstack増やしてから、
試してみてはいかがでしょうか。

sakamoto@cec.co.jp

Index: Locore.c
===================================================================
RCS file: /cvsroot/src/sys/arch/powerpc/stand/ofwboot/Locore.c,v
retrieving revision 1.4
diff -c -r1.4 Locore.c
*** Locore.c	1998/02/22 07:42:30	1.4
--- Locore.c	1998/02/25 11:36:54
***************
*** 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[4096];
  
  #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*4
  	b	startup
  ");