« Cosmo-ZをPythonで遠隔操作してグラフ描画 | トップページ | 新しいIoTタイプのZYNQ&ADC計測装置 »

2017.10.13

XILINXのPCIe XDMAコアによる起動不具合の原因

XILINXのPCIe XDMAコアを入れたFPGAをPCにつないで起動すると、OSが起動する途中にハングアップしてしまったり、再起動を繰り返すという現象があります。

海外のforumを見ても問題は報告されています。

すべてのPCで起きるわけではなく、現象が起きるPCとそうでないPCがあります。

Kintex-7搭載のPCI Expressボード「Cosmo-K」でもこの現象が出るので、ハードの問題なのか、VivadoのIPコアのバグなのか切り分けができませんでした。

この現象は、MIGを入れてDMAとDDR3メモリを連携させたあたりから起き始めた気がするので、シグナルインテグリティの問題だったら・・と思うと量産に踏み切る覚悟ができませんでした。

Acpierr1

私の古いPC(上の写真)では、起動時にリブートしてしまうときに一瞬ブルースクリーンが出るのですが、エラーメッセージに何がかかれているかわからなかったので、画面をビデオに撮ってコマ送りで見てみました。

すると、

Acpierr2

ACPI BIOS ERRORと書かれています。これは根が深そうです。新しいPCでは画面にランダムな点がいっぱいでて再起動してしまいます。

いろいろチャレンジしてみて、ようやく原因がわかりました。

Pcie_dma_async

問題は未接続のAXIのBYPASSが存在するためのようです。

Acpierr6

M_AXI_BYPASSというポートは、BAR2にアクセスされたデータが出てくるポートなのですが、これが未接続だとPCの起動時に問題を起こすようです。

使わないのであれば、XDMAの設定でAXI_BYPASSを無効にしたほうがいいでしょう。

Acpierr4

AXI_BYPASSに適当なBRAMをつないでおくくらいではダメで、全アドレスを処理できなければならないのかもしれません。

こうしてAXI_BYPASSのポートが消えると、いままで起動できなかったPCでも問題なく起動するようになりました。

Acpierr5

いま、PCI Express経由でDDR3メモリ(データレート1600MHz)に6TByte程度くらいReadとWriteを繰り返していますが、エラーは一つも起きていません。

Cosmo-Kのエラー率は10^-13以下といえます。

Acpierr3

これで、Kintex-7搭載のPCI Expressボード「Cosmo-K」の量産に踏み切れます。

Cosmok

Cosmo-Kをどうぞよろしくお願いします。

http://www.tokudenkairo.co.jp/cosmok/

|

« Cosmo-ZをPythonで遠隔操作してグラフ描画 | トップページ | 新しいIoTタイプのZYNQ&ADC計測装置 »

コメント

SPF+とは・・・
SFP+っすかね?
http://www.tokudenkairo.co.jp/cosmok/

投稿: インフラ屋 | 2017.11.01 00:54

SPF豚は美味いですね。どうしたのですか?

投稿: なひたふ | 2017.11.29 14:53

「Cosmo-K」のサイトで、「SFP」が「SPF」になっている綴り間違いが有るのでは?
と指摘されていると思います。

投稿: かたおか | 2017.11.30 11:45

コメントを書く



(ウェブ上には掲載しません)




« Cosmo-ZをPythonで遠隔操作してグラフ描画 | トップページ | 新しいIoTタイプのZYNQ&ADC計測装置 »