色々と問題はありますが、FT701Wで本体内蔵のファームを書き換えることなく、USBからカーネルを送り込んで起動することに成功しました!
ファームを解析して omap4boot に FT701W の初期化コードを追加してみました。
修正した omap4boot は github で公開してます。
ビルド方法は codesourcery の toolchain を使うので、今回は詳細は割愛しますが以下のような感じです。いろいろ整理ができたら詳しく書きます。
$ make TOOLCHAIN=??????/arm-2011.03/bin/arm-none-eabi- BOARD=ft701w
まだ実用じゃないですが、とりあえず使い方を。
- FT701Wのファームを展開し boot.img を取り出す
- FT701W の電源を落とす
- Linux PC 上で以下のコマンドを実行
$ usbboot boot.img
using built-in 2ndstage.bin
waiting for OMAP44xx device...これで接続待ち状態になる
- FT701W と Linux PC をUSBで接続する。Linux PC で以下のような表示になれば成功
reading ASIC ID
CHIP: 4430
IDEN: 0000000000000000000000000000000000000000
MPKH: 0000000000000000000000000000000000000000000000000000000000000000
CRC0: 9c669ad9
CRC1: 00000000
sending 2ndstage to target... f0030002
waiting for 2ndstage response...
sending image to target...
とりあえず、オリジナルのカーネルを起動することはできたのですが、なぜか画面が表示されません。画面周りはu-bootで初期化してるのかもしれないです。
また、今回の手順では rootfs もオリジナルのファームそのままなので、画面が出ないものの、中では Android が起動してます。
画面は出ませんがUSBは使えるので、adbでログインすることができます。
kernel はソースがないのでいじれないですが、rootfs はいじれるので、ひとまず簡単にファームの保存、復帰できるイメージでも作ってみますかね。