i.MX508(Cortex-A8)
平成24年8月8日
FreeScaleのi.MX508というプロセッサがあります。Cortex-A8を内蔵したプロセッサで、電子図書などに最適といわれています。
このたび、あるお客様から、i.MX508のバウンダリスキャンを行いたいとのご要望を受け、i.MX508を搭載した評価ボードをいろいろ探し、iW-RainboW-G13Sというボードを購入することにしました。
iW-RainboW-G13Sの購入は日本には在庫がないらしく、インドからの取り寄せで3週間かかるとのことでした。
MITOUJTAGをつないでバウンダリスキャン
入手したらさっそく、MITOUJTAGをつないでみました。
このiW-RainboW-G13Sボードには20ピンのJTAGらしきコネクタが出ています。ピン配置はARMの標準20ピンのようです。
MITOUJTAGをつないで、いざ、自動認識してみると、・・・2つのデバイスが認識されました。IDCODEが未登録のデバイスなのでgenericと出ています。
画面をクリックして、IDCODEを見てみると、左のは02D0101D、右のは1BA00477でした。
一方、FreeScaleのWebサイトからiMX50のBSDLファイルをダウンロードしてくると、iMX508の外側のIDCODEは02D0101Dなので、左のものはFreeScaleのi.MX508そのものであることがわかりました。
※i.MXなどのSoCといわれているデバイスは、CPUのコアと外側のペリフェラルが別々に作られていて、デバイス内部で複数のJTAGデバイスがチェーン接続されているように見えるのが一般的。
謎のデバイス内デバイス
しかし、右のデバイスが何であるかは依然として不明です。おそらくCortex-A8のコアそのものだろうと思い、BSDLファイルを記述してみますが、なかなかインフラストラクチャエラーが消えません。無理やりバウンダリスキャンしても結果は正しくなさそうでした。
ARMのは、命令レジスタ長がいつも4bitなので今回もだろうと推測したのですが、どうもうまくスキャンできません。オシロでTDIとTDO、TCKの関係を見て見ると、8bitの長さがありそうです。
また、ARMのWebサイトにいって、Cortex-A8のJTAG仕様を探したのですが、見つかりませんでした。
ようやくわかったことは、このi.MX508というデバイスは、i.MX508本体→謎デバイス→Cortex-A8と3つのデバイスが中でチェーン接続されていたということです。
ここでいう「謎デバイス」とは、おそらくDAPといわれるものではないかと思われます。このDAPにはJTAGのIDCODEがなく、命令長が4bitであるため、Cortex-A8が8bitの命令長を持つデバイスのように見えたのだと思われます。
そういうわけで、i.MX508→DAP→Cortex-A8と3つのデバイスを手動でチェーンに追加していったら、インフラストラクションテストにも通り、バウンダリスキャン結果も正しいものになりました。
◆追記:謎デバイスの正体が判明しました。 謎デバイスの正体についてはこちら
Linux起動中の様子をバウンダリスキャンで見る
このiW-RainboW-G13Sというボードは、デフォルトでLinuxが動くようになっています。そこで、Linuxが起動するまでの約20秒間の、iMX508の全端子の状態を波形としてキャプチャしてみました。
①DRAM_SDCLKが激しくうごいている。EPDC_SD*というのは何だろう。画像関係かもしれない?
(クリックで拡大)
②DRAM_SDDQSが緑色が多いので、読み出しが多いと思われる。CSPIも少し動く。
(クリックで拡大)
③システム起動後8秒後くらいで画像が出るのだろうか。DISP関係が激しく動きだす。
(クリックで拡大)
④EIMというのは外部拡張モジュールらしい。特に動いていない。
(クリックで拡大)
⑤起動直後からDRAM_*が激しく動いている。読み出しが主。メインメモリだろう。
(クリックで拡大)
⑥メインメモリのデータと、アドレス線。
(クリックで拡大)
⑦DISP関係の信号。ECSPIというのも少し動く。
(クリックで拡大)
⑧UARTが最初からポツリポツリとデータを送信している。
(クリックで拡大)
⑨システム起動後8秒くらいまではSD2の信号が激しくうごいている。おそらくSDメモリカードからブートデータを読み出しているのだろう。その後はSD2は動かない。
(クリックで拡大)
⑩ SD1というのはポツポツ動いている。データ用のSDカードか?
(クリックで拡大)
こうして、iMX508がバウンダリスキャンできるようになりました。回路図もマニュアルもない状態でも、MITOUJTAGでCPUの端子が見えれば、これだけのことがわかります。iMX508のバウンダリスキャンを行うためのBSDLファイルを必要とされるお客様はご連絡ください。