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

Re: Porting NetBSD to L-Card+



竹村です。

----- Original Message -----
From: "Naoto Shimazaki" <igy@arhc.org>
To: "TAKEMURA Shin" <takemura@netbsd.org>
Cc: <port-hpcmips-ja@jp.netbsd.org>
Sent: Sunday, December 29, 2002 11:41 AM
Subject: Re: Porting NetBSD to L-Card+

> 物理アドレスの 0x1fc00000 から 0x1fc80000 まで、
> KSEG1 空間では 0xbfc00000 から 0xbfc80000 までが
> モニタの text と data のようです。bss は
> 0xa0000000 から 0xa0020000 までの 128Kbyte ですね。
>
> Linux kernel は 0xbfd00000 から書くようです。

lcbootの読み込みアドレスを0xbfd40000に変更し、
0xbfd00000: lcboot
0xbfd40000: netbsd.gz
のようにflashに書き込んでみました。この領域はもともとは
linuxカーネルがある場所なのでちょっとだけ気が楽という
だけですが。

> もう少し気楽に遊ぶためには、独自モニタがしている処理を
> NetBSD カーネルの mach_init() の手前に当たる位置に
> もってきてあげ、オリジナルのモニタから直接起動できるように
> してあげる必要があると思ってます。

モニタが2段階になってしまいますが、一応オリジナルのモニタから
起動できています。
カーネルのコンフィギュレーションに以下のようなものをたしてみました。
1.6のソースは最新版ですが、それ以外は変更してません。

        options         KLOADER
        wdc*    at pcmcia? function ?
        wd*     at wdc? channel ? drive ? flags 0x0000
        ne*     at pcmcia? function ?           # NE2000-compatible Ethernet

        file-system     NFS     # Sun NFS-compatible filesystem (client)
        options         NFS_BOOT_BOOTP

NFSとKLOADERでネットワーク経由でカーネルを読み込むことが出来ます。
neは動きませんでした。wdは動くようです。
cs0でルートファイルシステムをNFSでマウントしているのですが、
シングルユーザモードからマルチユーザモードに移行する途中で
止まってしまってNFSにアクセスしなくなってしまいます。
しばらく放置すると数分後から

  nfs_timer: ignoring error 55

というエラーがコンソールに無限に出力されます。55は
 No buffer space available ですが、なんとなくcs0がうまく動いていないような
感じです。シングルユーザモードででも

    dd if=/dev/zero of=foo bs=1024 count=4096

としてNFSで書き込んでいたら2MBぐらい書き込んだところで同じように
nfs_timer: ignoring error 55が出続ける症状になりました。
Linuxカーネルに戻してL-Cardからhttpで4MBのファイルをダウンロードする
テストを数回行ってみたところ正常にダウンロードできました。
(でも50kb/secしかスピードが出ませんでした)

島崎さんはcs0を使っていますか?

Takemura