USL-5P

NetBSD/landisk ブートローダ

現時点でのものを置きましたので、どうぞ。

続 NetBSD/landisk

ダンマリしてしまうのは、タイマーが動作していないんじゃないんですかね。LANDISK は SH4 内蔵 RTC を使用していない様ですし。

NetBSD/landisk

USL-5P で CF 上の ffsv1 からカーネルを読み出せるブートローダなら提供できますが、いかがでしょうか。多分 LANDISK でも使えるのでは無いかと思います。 今は netboot できるように SH7751R PCIC と RTL8139 のドライバを書いている所です。まあ、いつ完…

ブートローダ

CF 上の ffsv1 からダミーカーネルを読める程度の能力は実装した。 SH IPL+g version 0.9, Copyright (C) 2000 Free Software Foundation, Inc. This software comes with ABSOLUTELY NO WARRANTY; for details type `w'. This is free software, and you ar…

デバッグ

レジスタのダンプやらに使ってたデバッグルーチン。また書くのが面倒なのでバックアップ。 .align 2 print_hex: mov #-28, r2 mov #0xf, r3 mov r4, r7 1: mov r7, r1 shld r2, r1 and r3, r1 mova .L.hexchr, r0 mov.b @(r0, r1), r0 mov r0, r4 mov #31, r…

boot1 到達

やっと Primary Bootstrap の文字を拝む事に成功。が /boot の open() が失敗した。

sh-ipl+g

ネタも無いので sh-ipl+g BIOS call の仕方。r0 に機能番号、r4-r7 に引数を設定して trapa 0x3f で起動する。処理結果は r0 に設定される。破壊されるレジスタは r0 のみ。まあ、trap なんであたりまえって言えばあたりまえだけど。 またソースを見るのも嫌…

ld -N

ldscript を見たら解決方法が判った。ld のオプションに -N を付けると .data セグメントをアラインせずに .text セグメントと同一ページに置いてくれるらしい。Makefile の LDFLAGS に -N を追加してみたら、自分が欲しかったデータが生成される様になった…

ld

bootxx がとりあえずリンクできる様になったので objcopy -O binary してみたら、何か ELF 形式の実行ファイルより大きくなってしまってアルェ〜な感じ。objdump で ELF ヘッダを見てみたら .data セグメントの配置アドレスが離れているのが原因っぽいなぁ。…

r12

PBR の先頭は 3 バイトしか使えないのか。つーことは、遅延スロットの命令を無害なものになる様にするしかないのかぁ。 sh-lilo の r12 にはそういう秘密があったのね、あー。

MBR パーティションテーブル

やられたー。4 バイトアラインされていないメモリから mov.l しようとしてアボートしてた。そりゃ、パーティションテーブル走査処理から抜けないわ。

ブート

MBR→PBR→boot1→boot2 の順なのか。

勘違い

多大なる勘違いをしている事に気付いたので修正。

続々々々々々々々々 USL-5P

sh-lilo の動作シーケンス解説を元にして、ちまちまとブートローダを書いていくかね。

続々々々々々々々 USL-5P

とりあえず、LED を点灯させるコードを書いてみた。で、CF の先頭セクタに書き込んでブートさせてみたら、電源と LAN の LED が点灯する事が確認できた。おっけ。 sh-ipl+g で起動時に電源と LAN の LED が点灯させられているので、動作確認するには LED を…

続々々々々々々 USL-5P

sh-ipl+g では MBR のセクタを読み込んで、読み込んだメモリアドレスの先頭にジャンプしてくれるのか。って事は MBR の +000h〜+01BDh までのコード部分に 1st boot loader を書く必要があるのか。

続々々々々々 USL-5P

sh-ipl+g の動作シーケンス解説 sh-lilo の動作シーケンス解説

続々々々々 USL-5P

内蔵 CF のイメージをバイナリエディタで覗いてみる。ほー、MBR があるのね。ファイルシステムは ext2 なのかな。 んー、今のカーネルだと ext2 をマウントできる様になってないな。じゃあ、カーネルとクロスツールチェイン作るか。で、エンディアンはどっち…

続々々々 USL-5P

CF を抜いたままブートしてみたら、sh-ipl+g 起動後 IDE 関連のエラーを延々と吐き続けた。カーネルは CF 上のものを読むのか。それじゃカーネル差し替えも楽だね。 んー、sh-ipl+g って何だろ。やっぱり g られてんの?

続々々 USL-5P

とりあえず、手元にあったクロスケーブルで接続してみたけど駄目だった。USB-RSAQ2 と直結したら通信できた。

続々 USL-5P

「USL-5Pで遊ぶ」を参考にしてシリアルコンソールをつけてみる。真似して IC 上に直接コンデンサをハンダ付けしてみたけど、もう二度とこんな事したくないよ…。 で、この図には TxD が二つあるんだけど、ここら辺を見ると CN7-2 が RxD って事で良いのかなぁ…

続 USL-5P

電源を入れる前に分解。内蔵されている CF を引っこ抜いてバックアップ。

USL-5P

とりあえず、買ってきた。ちっちゃくって良いね。