1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

NetBSDAdvent Calendar 2022

Day 22

NetBSD/star

Last updated at Posted at 2022-12-22

ryoさんが昔作業していたstarを復活させて見ました。

元のコードはこれです。

こちらがいじったのはここにあります。

直したところは割り込み回りとか、細かいKPIの変更に対応などです。

割り込みはよく分からなかったのでプライオリティー無視で多重割り込み禁止で実装しました。 直しました。

STR9102で確認しているのでSTR81xxは直ってないところがあります。

確認はINSTALLのramdisk.fsでおこないました。

arm共通で使えるようにしたcfiサポートも入ってます。

star_dma.cを他のSOCのコードと同じようにマクロにしたいのですが、エラーになります。どこかに設定があるのだと思われますが、わかりません。 直りました。NetBSDは黒魔術がいろいろありあます。

FreeBSDでもこのSOCのサポートコード書いた人いたのですが、私が試した時には壊れていてまともにうごきませんでした。

umassはあまり調子よくないです。7種類のUSBメモリ/SDリーダーを試して一つしかまともに動きませんでした。 いろいろいじっていたら安定したような気がします。

ターゲットはSwitchにVSC7385を使っていて、ST9100はMACが二つありますが、Switchが1つしか接続ポートがないので、インターフェースは一つしか使えません。

VSC7385はSPIで制御できるようなのですが、制御用の線はつながってなくてEPROMで初期化しているようです。設定はLANの4ポートはそのままで、WANポートがVLANになっているようです。

ryoさんが作られたのは6の前くらいで、まだu-bootのイメージを作る仕組みとか入ってなかったのではないでしょうか。今はbuild.shでu-bootイメージが作れるので、ずいぶん楽にトライ&エラーがができます。

遅いですがarmアーキテクチャはv4で確立したと思うので、貴重だと思います。

flashにkernelを焼くARM-Bootのオペレーション

STR9100>tftpboot 0x00800000 netbsd.ub
STR9100>cp.b 0x00800000 0x10040000 0x00300000

rootfsはsd0(umass)で作ります。

INSTALLのkernelでsd0にインストールしてsd0がrootfsなkernelをflashに焼けば出来上がりです。

これをbootしたところネットワークが使えません。ARMBootがネットワーク初期化をしないとネットワークが使えないようです。

原因はレジスタの初期化と思われ、0x70000000からの0x100のレジスタをARMBootでネットワークアクセスした後にダンプしてその値をソースに突っ込んで設定するようにしました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?