1ChipMSXのBIOSロード機能覚書 その32016年12月28日 23:53

OKEIさんにNextorBIOSのSDカードドライバの逆アセンブルリストをいただいた。
とても分かりやすく纏められていて感動!

で、とてもいいサンプルがあるわけなので、さっそくIPLROMの改変に着手。
着手部分はSDカード初期化部分。

元のIPLROMではSDカードコマンドを
1・CMD0→CMD55→CMD41(CMD55とCMD41の組み合わせでACMD41)
もしくは
2・CMD0→CMD55→CMD1
と発行する。
どちらが実行されるかはCMD55の返値で判断されている。
おそらく、1がSDカード、2がMMC用と思われる。

で、ACMD41やCMD1は初期化処理なので初期化終了まで繰り返し発行される。

SDHCに対応するには
CMD0→CMD8→ACMD41→CMD58
と発行する必要があるみたい。

既存の初期化ルーチンにCMD8を組み込んでみたところ、動作は変わらずSDカードは起動するけどSDHCは起動途中でアクセスランプがつきっぱなしでハングした。

アクセスランプがつきっぱなしでハングということはループ抜けていないんだろうとCMD1を発行するか判断するルーチンをつぶして強制的にCMD0→CMD8→ACMD41→CMD58と発行されるように書き換えたところ、SDHCを刺したままでも1ChipMSXがブートするようにはなった。

この状態ではSDカードからのBIOSロードは機能する。しかし、SDHCからのBIOSロード機能が動かない…

どこか見落としあるのかな?




コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
答えは「MSX」です。

コメント:

トラックバック

このエントリのトラックバックURL: http://miyako.asablo.jp/blog/2016/12/28/8297436/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。