dingux 続き4

あめりあです。
ダイソで売ってるの。GBM専用だよ!こんなの買う奴いないよな!て半年前に笑っていたのですが買いました。めっちゃオススメ(笑
GBMゼルダファーストを開始。Lv.1は適当に歩いていたら見つけたので攻略したのですが、Lv.2の場所分からないです。二十年前の記憶なんて皆無です。Lv.2探していたらホワイトソードを授けてくれる老人発見。案の定授かることは出来ませんでしたが。ファーストからゾーラがいたなんて忘れてましたよ。

jz4740のデータシートを眺めていて驚愕の事実を知る。
このチップ、NOR,NAND,USBからのブートをデフォサポートしていたのでした(BOOT_SEL0(C14)/SEL1(C13)の組み合わせで切替)。BOOT ROMを内包しているので、a320におけるBボタン+リセットでBOOT ROMよりingenic社製のusbboot(device)がロードされてホストからの要求を待機するのでしょう。
BOOT_SEL0が1、BOOT_SEL1が0の場合にUSBブートモードに入るので、GPIOのbit14が立てばBOOT_SEL0が1になるとデータシートから読めるため、a320のBボタンがGPIOのbit14にマッピングされているのでしょうが(口で言うのは簡単)。が。が。が。よくそのマッピングが分かったなーとまた感心。回路図なんてdingoo社で公開されているとは思われず、ちゅうてもa320のGPIOなんて数が知れているので総当りでも行けると言えば行けるのですが、そんな原始的な方法じゃなくても知りえる術があるのでしょうか。チップに直結されていればテスタでも分かりますけど。ちゅか分解したことないし。偉大なる先業に敬意を表します。そいや、ingenic配布usbtoolのpdfにはsw5を押しながらリセットて書いてあったっけ。既にそこにヒントが隠れていたんだ。こうやって色々調べていると、ingenic社(jz4740製造元)がキーになっていてdingoo社はあくまでも利用側なんで、そもそもググるときのキーワードが狭かったような気がしてきた(a320とかdingooで複合検索していたので)。jz4740をキーにすると世界が広がりますね(usbtoolのlinux版とか普通に見つかったし)。そいや、jz4740てWinCE,Linux,μC/OSサポなんで、a320のオリジナルがどのRTOS採用とか不明なんですけど、デフォ搭載エミュからしてμC/OSて無いんじゃな?とか、まーどうでも良い推測(ちゅかどうでも良い)。
そゆことなんで、ブリってもusbブート状態は恒久的に実現が出来るため、かなり怖いものなしになるんじゃないですかね。usbブートのモジュールもNANDにある格納されていると思っていたので、ブリったら終わりじゃん!て思っていましたが、そいや、中国語炸裂recoveryToolでアンブリする動画を観ていたんで合点いきました。ingenic配布のrecoveryToolは、先の中国語炸裂recoveryToolかと思ってコードリードしたんですけど、違いましたね。あれはdingoo社提供かな?hxfとか指定するし。ingenic配布のは、どうも起動した状態で更新する類のものなんで、アップグレーダとかで利用される風味。注意書きでusbブートをサポしていないjzシリーズではこれ使ってね!書いてあったと思います。
そんなこんなで、下ボタン+起動でのファームアップはdingooオリジナルブートローダの機能であり、まーコード上で探してもある訳ないと、こちらも合点。
あと謎なのは
・dual-bootローダをインストールする前にhwinit.binをRAM先頭へロードしておく理由
・dual-bootローダのNANDインストール先(アドレス)
ちゅかね、NANDのメモリマップが色々な意味で整理付いてないんです。まだdingux導入していないんですね、実は(笑
もうね、舐め尽してから導入しようかと。