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

down in comopen



濱嶋です。

いつ頃からか忘れましたが、MC/R430をnfsrootとserial consoleで起動すると
きに、address errorでおちるようになりました。GENERICでは発生しないので
放置してあったのですが、先日から調べ出したところ、comopen()で発生して
いることが分かりました。

boot device: <unknown>
root on ep0
nfs_boot: trying BOOTP
pcmcia1: card irq 3
nfs_boot: BOOTP next-server: 192.168.2.32
nfs_boot: my_addr=192.168.2.88
nfs_boot: my_mask=255.255.255.0
nfs_boot: gateway=192.168.2.16
root on 192.168.2.32:/export/hpcmips
trap: address error (load or I-fetch) in kernel mode
status=0x7f03, cause=0x80000010, epc=0x80006770, vaddr=0xc0004629
pid=13 cmd=init usp=0x7fffdf48 ksp=0xc4007c40
Stopped in pid 13 (init) at     0x80006770:     j       0x8000677c
                bdslot: lw      s0,0(v0)
db> t
80006704+6c (1,2,2000,804fc7a8) ra 80139610 sz 96
80139560+b0 (1,2,2000,804fc7a8) ra 800b2268 sz 40
800b20e0+188 (1,2,2000,804fc7a8) ra 800ac9a8 sz 72
800ac968+40 (804f91c8,2,c0006f00,804fc7a8) ra 800abb60 sz 48
800ab8b0+2b0 (804f91c8,2,c0006f00,804fc7a8) ra 800a81e0 sz 152
800a8108+d8 (804f91c8,2,c0006f00,804fc7a8) ra 80117800 sz 160
80117630+1d0 (804f91c8,2,c0006f00,804fc7a8) ra 801128cc sz 80
mips3_SystemCall+b0 (804f91c8,2,c0006f00,804fc7a8) ra 44cd20 sz 0
PC 0x44cd20: not in kernel space
0+44cd20 (804f91c8,2,c0006f00,804fc7a8) ra 0 sz 0
User-level: pid 13

traceのaddressは上から順に
  comopen
  cnopen
  spec_open
  VOP_OPEN
  vn_open
  sys_open
  syscall_plain
です。


どのような因果関係があるのか分かりませんが、config(8)で生成される
ioconf.cのcfdata[]で、consoleに使う内蔵のcom*が2のときに発生します。
1でも3でも4でも発生しませんでした。

発生するとき状況ではcfdata[]には先頭から
  /*  0: audio* at vraiu* */
  /*  1: ep* at pcmcia* function -1 irq -1 */
  /*  2: com* at vr4102ip* (略) */
となっています。

audio*を削除してep*が0、com*が1になると発生しませんし、ne*とかukphy*を
追加してcom*が3とか4になっても発生しません。


私の知識ではここまでで限界です。ここから先はどこを調べれば良いのか指針
を下さい。