378 :
193 :
2009/06/04(木) 22:47:43 ID:??? やっちまった。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 :2009/06/04(木) 23:11:31 ID:???
ちょっと長くなるのですまんけど、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 :2009/06/04(木) 23:31:54 ID:???
■すること ・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 :2009/06/05(金) 17:48:12 ID:???
(´・ω・`)激しく崩れた。まーいいか。
ちなみにピンアサインはここを参考にさせてもらったよ。ありがとう。
http://f30.aaa.livedoor.jp/~umino/pukiwiki.php?Linkstation%2FJTAG 肝心のアプリだけど、以下を全部試した/試そうとしたんだけど…
・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 :2009/06/05(金) 17:50:18 ID:???
■すること(続き)
・TopJTAG Flash Programmerのインストール
http://www.topjtag.com/flash-programmer/ ・BSDLファイルのダウンロード(MPC8241R1BBSDLね)
http://www.freescale.com/webapp/sps/site/overview.jsp?code=DRPPCBSDLFLS ・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 :2009/06/05(金) 17:52:10 ID:???
【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 :2009/06/05(金) 17:55:23 ID:???
・設定保存して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^)/ 長文失礼しました。