Boot step in FreeBSD
FreeBSDのブート画面を出してみたい
最初にkernelのソースをいじってPowerPC対応にするのは少し無理があるような気がするので、
まずは、ブート画面だけ でも出るように、FreeBSD-current(ver5.0?)のbootソースをベースに
PowerPC初期化、画面にbootという文字が出るところまで 行かせてみたい。
(現在進行形バイナリ[ofwldr6.elf])
(ブートディスクを探してブートパスを決めるバージョン)
(現在進行形バイナリ[ofwldr8.elf])
(Firewire外付けMOに無理矢理ブートパスをつなげたバージョン)
ところで、ブートプログラムが走る時、システムはどのような 環境になっているのだろうか。まずはそこから勉強です。
勉強するために作ったモニタプログラムを掲載します。
(here(2001-03-09version))
昔の手でプログラムを入力した時代の開発環境が懐かしい方なら 使っていただけると思います。今のところ、
d[ump], m[emory set], g[oto address]
が使えます。それぞれ、
d start-addr stop-addr, m addr data(1byte), g addr
で指定できます。
1. レジスタの割付け
まず、GRP0,GRP1,GRP2は通常、特別な役割を割り付けるようです。
reg | 役割り |
GRP0 | $0のレジスタ(RISC特有) |
GRP1 | スタックポインタ |
GRP2 | プログラムのスタート番地 |
GRP3 | 関数の返り値/引数 |
GRP4 | 関数の返り値/引数 |
GRP5 | 関数の引数 |
GRP6 | 関数の引数 |
GRP7 | 関数の引数 |
実際にはシステムの初期化はofwboot.elfプログラムに頼り、 カーネルのブートの部分をコーディングすることに
注力 することにします。
(現在工事中)
[To Previous]
[To Top]
[To Next]