honeylab's blog

各種ハードウェアの改造、主にファミコンミニなどをやってます(ました)

DDRMini 作業ログ

Avaota-SBCというDDRMiniにかなり近い構成のボード用にビルドしたバイナリが断片的に動くので、これを使ってファームウェアを吸い出しつつ、逆アセンブルを続けているところではあります。

 

・UART0(PB9,PB10)が明確にデバッグ用に出ているがLinuxの先ではDTSで無効化されているのでほとんど何も出てこない。が、最初のBOOTの間はdの先行入力でちょっとだけメッセージが出る。

Image

 

・BOOT0 (emmc上0x2000)がboard_initした後、MMCからTOC1パッケージを読み込んでいる。このへんはこの二つのページの機材がよく似ている。

Allwinner H700 Firmware extraction - KNULLI Wiki

Teclast P85T - linux-sunxi.org

・上にあるように、u-bootのエリアがあるけど実はu-bootじゃないのかな、と思って読み込んで逆アセンブルしているけど、本当にu-bootっぽい。

「U-Boot 2018.07-00009-g40a0e96-dirty (Jul 24 2024 - 13:19:23 +0800) Allwinner Technology」

このツリーは、ベースの2018に山ほどのパッチをしてようやく動かしているものらしい。

・このTOC1がemmcのbootパッケージから!ANDROIDを読んで起動している

 

・その次のパーティションがrootfs、ここにゲームもROMも入っている

Image

・ゲームのROMは独自の暗号化がされている。

Image

・rootfsを書き換えるだけである程度動かせるとは思うけど、現状何も出力できないしシェルにログインできないので大変やりにくい

・どうにかシェルを使うためシリアルコンソールの有効化を試みている

・UART0はLinuxのDTSで無効化されているので起こすのは難しい

・配線を辿るとUART2もつながっている。

 

・ENVのパラメータをいじればttyS2でコンソールが起きるはず

・ENVをいじって書き戻そう!

・書き戻した

・壊れた。

 

壊れた。

 

書き戻す場所を間違えたのか、値がおかしいのか。

もっかいeMMCのフルダンプを取ってどこを壊したのか調べてみる。

 

遠い。