uboot が起動しなくなってとても残念なことになりました。
復旧するには、NAND Flash の uboot 領域に
起動可能な uboot イメージを書き込む必要がある。
OpenOCD を使えばどうにかなるらしい。
これまたいろいろ調べたんだけどわからなくて、
いろんな方法試したけどほとんどうまくいかなかった。
Mac OS X だと調子わるかったので
わざわざ Virtualbox で Debian を作ってそこでやったりとかね。
guruplug-installer だとうまくいかなかったし。よくわかんない。
最終的にうまくいったのはこれ。
前回とってきた testenv の中にあるものを使います。
# testenv/sheevaplug/openocd.binaries/bin/ # ./openocd -f target/board/sheevaplug.cfg -c init -c sheevaplug_reflash_uboot -c exit
ここらへんかなり眠かったので、testenv に含まれてた openocd を
実行するのに必要なライブラリとかあまり覚えてない。
そのまま動くかもしれないし、libusb とかそこらへんもとらないといけないかも。
で、上のを実行すると、USB で接続してる JTAG 経由で
GuruPlug に対して、uboot 領域に uboot イメージを書き込む的な。
見事うまくいき、こんどこそ Marvell プロンプトが出て安心しました。
あとは当初の目的通り、uboot をちゃんと正しく正しく書き込む
Marvell>> setenv serverip 192.168.0.2 Marvell>> setenv ipaddr 192.168.0.3 Marvell>> tftp 0x6400000 uboot.guruplug.bin Marvell>> nand erase 0x0 0x100000 Marvell>> nand write.e 0x6400000 0x0 0x100000
今度こそ間違いなく uboot を書き込みました。
reset して Linux が起動するのも確認しました。安心した。
参考
- http://nagou.cocolog-nifty.com/haley/2010/05/guruplug-serv-1.html
- http://www.plugcomputer.org/plugwiki/index.php/Reflashing_images_on_the_GuruPlug
- digital西行庵 wiki - Update of U-Boot on Sheevaplug
- Google Code Archive - Long-term storage for Google Code Project Hosting.
- http://www.eleki-jack.com/Kurobox-pro2/2010/02/ubootopenocd.html