製品情報
- MITOUJTAG
- JTAG書き込みツール
- IC真贋判定サービス
- Spartan-7評価ボード
- Artix-7評価ボード
- ZYNQ搭載ADCボード「Cosmo-Z」
- Cosmo-Zについて
- 2017年度アップグレード
- ライブラリAPIマニュアル
- このような用途に最適
- ボード写真
- Type-C基板
- 仕様と機能
- チュートリアル
- 使用方法
- ダウンロード
- 注文情報
- その他
- 開発者向け情報
- 内部構造
- 内部レジスタ
- ZynqでLinuxが動くまでのまとめ
- 開発環境の準備
- EMIOの設定
- メモリの設定
- AXIポートの設定
- 割り込み発生
- XILINXソフトウェア開発環境の準備
- u-bootの生成
- ramdiskの生成
- linuxの生成
- DeviceTreeの生成
- Linuxのカスタマイズ
- ToDo
- 古い情報
- 開発日記
- 2017年10月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年6月
- 2017年5月
- 2017年4月
- 2017年3月
- 2017年2月
- 2017年1月
- 2016年12月
- 2016年11月
- 2016年10月
- 2016年9月
- 2016年8月
- 2016年7月
- 2016年6月
- 2016年5月
- 2016年4月
- 2016年3月
- 2016年2月
- 2016年1月
- 2015年12月
- 2015年11月
- 2015年10月
- 2015年9月
- 2015年8月
- 2015年7月
- 2015年6月
- 2015年5月
- 2015年4月
- 2015年3月
- 2015年2月
- 2015年1月
- 2014年12月
- 2014年11月
- 2014年10月
- 2014年9月
- 2014年8月
- 2014年7月
- 2014年4月
- Kintex-7 PCIe Express光ボード「Cosmo-K」
- 販売終了製品
- Spartan-6評価ボード
- EXPARTAN-6T
- 18bit20chデータロガー「AD360」
- Kintex-7 HDMI&CSIボード「Cosmo-K DVI」
- 1Gサンプリング超高速ADCボード「HyperFADC」
- MPPCアレイ
- 18bit AD変換ボード
- FPGA拡張ベースボード
- 究極のRX62N評価ボード
- 特電FX3評価ボード
- RXDuinoライブラリ
- 仕様と機能
- RXduinoダウンロード
- 注文情報
- セットアップガイド
- 使用例
- RaXinoのLEDを点滅させる
- LEDをPWM点滅させる
- RX-MEGAにMARY-GBを載せてGPSを受信する
- ルネサスE1エミュレータを利用したデバッグ
- RXduinoライブラリでUSB通信を行う
- 特電HALでUSB通信を行う
- RXduinoライブラリでUARTとUSB仮想シリアルを使う
- Nahimonによるプログラムのロード
- 複数のシリアルを使う
- 12ビットA/Dコンバータを使う
- サンプルコード集
- 基本のプログラム
- 基本のLEDチカチカ
- PWMでLEDをじわーっと光らせる
- 12bit A/Dコンバータのサンプル
- セルフリセット
- GPIOのテスト
- アナログ波形の出力
- 浮動小数点演算とprintf
- 内蔵データフラッシュの使い方
- ピン割り込みの使い方
- タイマ割り込みの使い方
- PWMの周波数を変更する
- RTCの使い方
- サーボを20チャネルとPWMを14チャネル使う
- ステッピングモータのテスト
- シリアル通信とUSB
- USB仮想COMポートを用いた通信
- シリアルポートを用いた通信
- 複数のシリアルポートを使うプログラム
- シリアル通信のCR(0x0d)やLF(0x0a)の設定
- シリアル通信のストップビットモードなどの変更
- SDカード(MMCカード)の動作サンプル
- USBホストとしての動作とエニュメレーション
- AndroidスマートフォンとADBで通信する
- ネットワーク機能
- HTTPクライアント ホームページの閲覧
- イーサネットのパケットキャプチャ
- UDPの送受信
- メールを送信する
- Twitterにつぶやく
- TELNETでどこかにリモートログインする
- TELNETデーモン
- NTPで内蔵時計を合わせる
- 各種部品との接続
- RaXinoに搭載されている加速度センサ
- キャラクタ液晶に文字を表示するには
- 秋月電子のジャイロと接続する
- フラクタルの描画
- 3軸加速度センサ KXM52を使う
- マルツのOLEDを使う
- MARY-GBを用いたGPSの受信
- RXduinoマニュアル
- RaXino(ラクシーノ)
- RaXino-i(ラクシーノ・アイ)
- RX-MEGA 某誌付録RX62N用拡張ボード
- JTAG WARP9
- 特電PCI Express評価ボード

技術情報
会社情報
- 会社概要
- 商品のご購入について
- 求人情報
- イベント案内
- FPGAカンファレンス2026出展のご案内
- 展示会DSF2025出展のご案内
- MITOUJTAG Free版のご案内
- 書籍のご案内
- DSF2024出展のお知らせ
- 未踏会議2024出展のお知らせ
- ネプコンジャパン2022出展のお知らせ
- SEMIジャパン2022出展のお知らせ
- FPGAセミナー(初級編)
- FPGAセミナー(中級編)
- Cosmo-Z活用セミナー
- Trenz社製品活用ZYNQセミナー
- 日本物理学会2018春季
- 日本物理学会2018春季
- 応用物理学会2018春季
- 応用物理学会2018春季
- 応用物理学会2018春季
- FPGAカンファレンス2018
- Cosmo-Zセミナー
- ZYNQ&Trenz製品セミナー
- ET/IoT2017
- 2017年春の学会付設展示会
- Embedded Technology 2016
- 応用物理学会2016春季
- Embedded Technology 2015
- JSAP EXPO AUTUMN 2015
- 物理学会第70回年次大会
- JSAP EXPO SPRING 2015
- MITOUJTAG講習会
- ET2014
- ET2013
- ET2012
- ET2011
- ET2010
- ET2009
- ET2008
- ET2006
- ET2005
- FPGAカンファレンス2007
- FPGAカンファレンス2008
- FPGAカンファレンス2009
- ボードコンピュータ展2008
- IPAX2007
- IPAX2008
- IPAX2009
- テクノフロンティア2009
- ESEC2007
- EDSFair2009
- EDSFair2010
- FPGAカンファレンス2009
- ルネサスRXセミナ2012
- Interface誌2012年1月号 特設ページ
- CEATEC2011
- CEATEC2012
- 特殊電子回路の通信簿
2017年10月
XILINXのPCIe XDMAコアによる起動不具合の原因
2017.10.13
XILINXのPCIe XDMAコアを入れたFPGAをPCにつないで起動すると、OSが起動する途中にハングアップしてしまったり、再起動を繰り返すという現象があります。
海外のforumを見ても問題は報告されています。
- https://forums.xilinx.com/t5/PCI-Express/XDMA-Linux-hang-up-on-boot-time/td-p/737666
- https://forums.xilinx.com/t5/PCI-Express/pcie-xdma-hang-up-Windows7-booting/td-p/762747
- https://forums.xilinx.com/t5/PCI-Express/PCIE-DMA-subsystem-hang-up-while-PC-booting/td-p/775955
すべてのPCで起きるわけではなく、現象が起きるPCとそうでないPCがあります。
Kintex-7搭載のPCI Expressボード「Cosmo-K」でもこの現象が出るので、ハードの問題なのか、VivadoのIPコアのバグなのか切り分けができませんでした。
この現象は、MIGを入れてDMAとDDR3メモリを連携させたあたりから起き始めた気がするので、シグナルインテグリティの問題だったら・・と思うと量産に踏み切る覚悟ができませんでした。
私の古いPC(上の写真)では、起動時にリブートしてしまうときに一瞬ブルースクリーンが出るのですが、エラーメッセージに何がかかれているかわからなかったので、画面をビデオに撮ってコマ送りで見てみました。
すると、
ACPI BIOS ERRORと書かれています。これは根が深そうです。新しいPCでは画面にランダムな点がいっぱいでて再起動してしまいます。
いろいろチャレンジしてみて、ようやく原因がわかりました。
問題は未接続のAXIのBYPASSが存在するためのようです。
M_AXI_BYPASSというポートは、BAR2にアクセスされたデータが出てくるポートなのですが、これが未接続だとPCの起動時に問題を起こすようです。
使わないのであれば、XDMAの設定でAXI_BYPASSを無効にしたほうがいいでしょう。
AXI_BYPASSに適当なBRAMをつないでおくくらいではダメで、全アドレスを処理できなければならないのかもしれません。
こうしてAXI_BYPASSのポートが消えると、いままで起動できなかったPCでも問題なく起動するようになりました。
いま、PCI Express経由でDDR3メモリ(データレート1600MHz)に6TByte程度くらいReadとWriteを繰り返していますが、エラーは一つも起きていません。
Cosmo-Kのエラー率は10^-13以下といえます。
これで、Kintex-7搭載のPCI Expressボード「Cosmo-K」の量産に踏み切れます。









