09/06/04 22:47:43
やっちまった。u-boot書き換え失敗した。
初代玄箱に最新版u-boot-2009.03を無理矢理入れようとしたのが間違いだった。
(´・ω・`)
以下、失敗例。
# diff Makefile.org Makefile
1659,1660c1659
< #linkstation_HDLAN_config \
< # Remove this line when HDLAN is fixed
---
> linkstation_HDLAN_config \
linkstation.hは適当に編集
…
dd if=u-boot.bin of=/dev/mtdblock1 bs=1k
…
再起動
…
シリアルでみると以下で止まってる。
U-Boot 2009.03 ( 5月 30 2009 - 13:41:18) LinkStation / KuroBox
CPU: MPC8245 Revision 1.4 at 196.608 MHz: 16 kB I-Cache 16 kB D-Cache
DRAM: 64 MB
FLASH: 4 MB
00 0b 1317 0985 0200 ff
00 0c 1095 0680 0101 ff
00 0e 1033 0035 0c03 ff
00 0e 1033 0035 0c03 ff
00 0e 1033 00e0 0c03 ff
…
JTAG(ARM-USB-OCD)で復旧します。
379:193
09/06/04 23:11:31
ちょっと長くなるのですまんけど、ARM-USB-OCDで復旧する手順を書くよ。
※自作は切り分け面倒だし、安いパラレルポート対応のやつとか
レガシーデバイスのは買いたくなかったのでARM-USB-OCD買ったよ。
<初代玄箱のJTAG復旧方法>
■必要なもの
・ARM-USB-OCD:1万ぐらい
・1kΩチップ抵抗 × 1
・2550 コネクタ + ピン × 12 (予備で+6ぐらいしておくといいかも)
・適当なケーブル 15cmぐらい × 6
・2550 ピンヘッダ 2列で40個ぐらい × 1
■すること
・ケーブル作成
両端を 2550コネクタで加工する。6本作るので結構面倒だよ。
きっと長さはそろえた方がいいよ。
・R67に1kオームの抵抗を半田付け
繋がらなくてごちゃごちゃやっているときにつけちゃった。
必要かどうかは正直分からんよ。(細かい作業だったのでとりたくない)
誰か試してみてくれると助かる。
・ピンヘッダ
2x8の16個でパッチン切断して、玄箱の基盤に半田付け。
前に付けたヒートシンクにぶつかるので、裏から付けて
間違えないようにピンアサインをマジックで基盤に書いたよ。
※ピンアサインが逆になってるので注意して。
380:193
09/06/04 23:31:54
■すること
・ARM-USB-OCDのドライバインストール、接続
・作ったケーブルで以下のように接続
KUROBOX ARM-USB-OCD
1 TDO 13
3 TDI 5
4 TRST - (3)使わなくても可
6 detect 1
7 TCK 9
9 TMS 7
13 Vcc -
16 GND 20
13 Vcc -
16 GND 20
KUROBOX(基盤裏につけていることに注意)
玄箱につけたピンを上から見た図
1 3 7 9
A B ■ E F ■ ■ ■
■ C D ■ ■ ■ ■ G
2 4 6 16
ARM-USB-OCDの赤いラインがあってコネクタに▼マークがあるところが1
コネクタの口を正面から見た図
1 3 5 7 9 11 13 15 17 19
D C B F E ■ A ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■ G
2 4 20
381:193
09/06/05 17:48:12
(´・ω・`)激しく崩れた。まーいいか。
ちなみにピンアサインはここを参考にさせてもらったよ。ありがとう。
URLリンク(f30.aaa.livedoor.jp)
肝心のアプリだけど、以下を全部試した/試そうとしたんだけど…
・jtag(無料)
ARM-USB-OCDに対応してない。
・urjtag(無料)
ARM-USB-OCDに対応してるけど、detectflashでエラーになっっちゃったので
旧パッチみながらsrc弄ってlinux上やcygwinでコンパイルしたけど駄目だった。
・OpenOCD(無料)
対応しているのはARMだけ。
・H-JTAG
玄箱のFlashに対応してない。
・OCDemon Flash Memory Programmer
ARM-USB-OCDが見つからなかった。アンインストール不可になった。
・Universal Scan
使おうとしたら変なメールだそうとするのでレジストしなかった。
・MITOUJTAG
体験版すら手に入らず
・JtagKeyTool(Asagao)
使い方がさっぱり。
・Cable Server 0.1 for Xilinx Impact
ARM-USB-OCDに対応してない。
探しまくってTopJTAGってソフト見つけたよ。
This pre-release (BETA) version is available free for a limited period: it expires on 1 October 2009.
ってことでベータ版なので自由に使えるらしい。
かなり安定しているし、色々試した中でも一番使いやすい。
何よりARM-USB-OCDに対応してるし玄箱のFlashに対応してる。
パラメータ関係はかなり苦労したけど、玄箱、FLASHのデータシートとにらめっこして何とか解決。
(姉妹ソフトもいい感じ)
382:193
09/06/05 17:50:18
■すること(続き)
・TopJTAG Flash Programmerのインストール
URLリンク(www.topjtag.com)
・BSDLファイルのダウンロード(MPC8241R1BBSDLね)
URLリンク(www.freescale.com)
・TopJTAG Flashの設定
メニューのSetup押して設定開始。
【JTAG Chainタブ】
・「Examine the chain...」ボタンを押して「Generic FTDI FT2232」,
「Olimex OpenOCD JTAG A」、「6MHz」を選択する。
※勝手に見つけてくれる。「Manufacture」,「IDCODE」はそもそも玄箱が返さない仕様なのでn/aでOK
・JTAG Chainの「BSD file : CLICK HERE TO SET」をおして、さっき落としたBSDLファイルをロードする。
【Flash arrayタブ】
・「8-bit (1 chip x 8 bit)」と「16-bit capable in 8-bit~」を選択
・「Use Unlock~」にチェックを入れる。
後はデフォルトでOKのはず。ちなみに「16-bit~」ではまりまくった。
383:193
09/06/05 17:52:10
【Signal Pinsタブ】
MPC8245UM.pdfみながら設定したけどここが一番苦労したよ。
データシートには記載があるので設定してるけど
Flash 4Mしか積んでないのに32Mまで指定できるようになっちゃうからA22~A24まではいらないかも。
設定が多いのでコンフィグファイルそのもの。
何となく設定して保存して~.topflashファイルをテキストエディタで開いて同じになっていればOK
<Pins>
<SignalPin Name="CE" Device="0" PortName="RCS0_L" PortIndex="-1" Inverted="0"/>
<SignalPin Name="OE" Device="0" PortName="FOE_L" PortIndex="-1" Inverted="0"/>
<SignalPin Name="WE" Device="0" PortName="WE_L" PortIndex="-1" Inverted="0"/>
<SignalPin Name="A0" Device="0" PortName="SDMA0" PortIndex="-1"/>
<SignalPin Name="A1" Device="0" PortName="SDMA1" PortIndex="-1"/>
<SignalPin Name="A2" Device="0" PortName="SDMA" PortIndex="2"/>
<SignalPin Name="A3" Device="0" PortName="SDMA" PortIndex="3"/>
<SignalPin Name="A4" Device="0" PortName="SDMA" PortIndex="4"/>
<SignalPin Name="A5" Device="0" PortName="SDMA" PortIndex="5"/>
<SignalPin Name="A6" Device="0" PortName="SDMA" PortIndex="6"/>
<SignalPin Name="A7" Device="0" PortName="SDMA" PortIndex="7"/>
<SignalPin Name="A8" Device="0" PortName="SDMA" PortIndex="8"/>
<SignalPin Name="A9" Device="0" PortName="SDMA" PortIndex="9"/>
<SignalPin Name="A10" Device="0" PortName="SDMA" PortIndex="10"/>
<SignalPin Name="A11" Device="0" PortName="SDBA0" PortIndex="-1"/>
<SignalPin Name="A12" Device="0" PortName="PAR_AR" PortIndex="7"/>
<SignalPin Name="A13" Device="0" PortName="PAR_AR" PortIndex="6"/>
<SignalPin Name="A14" Device="0" PortName="PAR_AR" PortIndex="5"/>
<SignalPin Name="A15" Device="0" PortName="PAR_AR" PortIndex="4"/>
<SignalPin Name="A16" Device="0" PortName="PAR_AR" PortIndex="3"/>
<SignalPin Name="A17" Device="0" PortName="PAR_AR" PortIndex="2"/>
<SignalPin Name="A18" Device="0" PortName="PAR_AR" PortIndex="1"/>
<SignalPin Name="A19" Device="0" PortName="PAR_AR" PortIndex="0"/>
<SignalPin Name="A20" Device="0" PortName="SDBA1" PortIndex="-1"/>
<SignalPin Name="A21" Device="0" PortName="SDMA" PortIndex="11"/>
<SignalPin Name="A22" Device="0" PortName="SRESET_L" PortIndex="-1"/>
<SignalPin Name="A23" Device="0" PortName="TBEN" PortIndex="-1"/>
<SignalPin Name="A24" Device="0" PortName="CHKSTOP_IN_L" PortIndex="-1"/>
<SignalPin Name="D0" Device="0" PortName="MDH" PortIndex="7"/>
<SignalPin Name="D1" Device="0" PortName="MDH" PortIndex="6"/>
<SignalPin Name="D2" Device="0" PortName="MDH" PortIndex="5"/>
<SignalPin Name="D3" Device="0" PortName="MDH" PortIndex="4"/>
<SignalPin Name="D4" Device="0" PortName="MDH" PortIndex="3"/>
<SignalPin Name="D5" Device="0" PortName="MDH" PortIndex="2"/>
<SignalPin Name="D6" Device="0" PortName="MDH" PortIndex="1"/>
<SignalPin Name="D7" Device="0" PortName="MDH" PortIndex="0"/>
</Pins>
【Static Pinsタブ】
色々試しまくったけど、結局何もいらないみたい。
(´・ω・`)
384:193
09/06/05 17:55:23
・設定保存してINFOボタンを押してみる
ちゃんとCFIの情報がとれればOK
・READボタンを押してu-bootが格納されてるアドレス300000から458752バイト読み込んでみる。
u-bootとか文字列見つかればOk。
※1分ぐらいで読み込めるはずだよ。4Mだったら10~15分ぐらいで読み込めるよ。
・読み込んだデータをとりあえずセーブする。
・u-boot-lsppchd-flash-1.2.0-r2.binを準備。(無ければ外人さんのサイトから落として)
・読み込みボタンを押してu-boot-lsppchd-flash-1.2.0-r2.binを読み込む
・Programボタンを押して
Erase Optionを「300000h - 36FFFFh」を削除するように設定。
Verifyも設定して、「Ignore the data~」に「300000」を設定して実行する。
10分ぐらいだったかで終了するよ。
・再起動してシリアル接続でu-bootの環境変数を修正する。
・reset…復活\(^O^)/
長文失礼しました。
385:DNS未登録さん
09/06/05 20:24:46
>>378-374
これはいいまとめ