スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

dingux special files

hwinit_2_bin_100122.zip
hwinit_2_src_100122.zip

cp0_src_100122.zip
cp0_bin_100122.zip

なんだか忘れたり、このままロストしてしまうとあれなので、
ちょっとまとめておきます。

dingoo A320において、
dinguxが一部の新しい機種で動かないのはリセット時にほぼ必ず「ある特殊なレジスタ」も初期化されるからです。
そのレジスタ、CP0_CAUSEは初期化された段階で例外が発生するようにセットされます。

その例外とはCP0_STATUSに何らかの値を書き込んだ時点で発生するもので(おそらくは例外フラグのクリア)
例外が発生すると、アセンブラで書かれたLinuxの起動コードの最初の段階で停止します。

旧来のA320では電源OFF->USB接続による電源ON時を除いて、
リセット時にレジスタまでは初期化されないためその例外は発生しません。

調べた所、0x00400000(bit22)がその要因になっているようです。


mfc0 a0,CP0_CAUSE
and a0,~(0x00400000)
mtc0 a0,CP0_CAUSE



それで作られたのが、このフラグをクリアするためのhwinit_2です。
おそらくこれはjz4740が持つ機能であると推測できるので、この方法は広範囲に有効だと思われます。
スポンサーサイト

コメント

非公開コメント

プロフィール

BouKiCHi

Author:BouKiCHi
ABOUT ME
MAIL:alf_byncyou at hotmail.com

WEB:http://clogging.web.fc2.com/
TWITTER:@bkc_alf

月別アーカイブ

FC2カウンター

ブロとも申請フォーム

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。