UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 19612

EDK、PCI デバイス ドライバ - PCI デバイス ドライバの Initialize() によりデバイス番号が 0 に設定される

説明

キーワード : DeviceID, OPB PCI bridge, デバイス番号, ドライバ, ブリッジ

重要度 : 標準

概要 :
PCI デバイス ドライバでは、Initialize() ファンクションによりホスト ブリッジの PCI BAR が設定されます。 この場合、OPB PCI ブリッジなど PCI ブリッジのデバイス/ファンクションが 0 に等しくなります。 デバイス番号は、VHDL ジェネリックを使用して 0 以外の値に設定できます。 デバイス ドライバのコンフィギュレーションによってマスタが書き込みを中止し、デバイス ドライバではなく、アプリケーションが PCI BAR を設定することになります。

ソリューション

ソリューションは次のとおりです。

1. ホスト ブリッジのデバイス番号が _g.c ドライバ コンフィギュレーション ファイルに渡されます。ドライバは、この情報を使用し、ホスト ブリッジの正しいデバイス番号を識別します。 Initialize() ファンクションでの PCI BAR 設定は、一度にまとめて削除できます。これは、メモリ/マスタ イネーブルやレイテンシ タイマなどと共にホスト ブリッジを設定する必要があるためです。 後者のソリューションをお勧めします。

2. この問題を解消するため、アドレス ビットのジェネリック (C_BRIDGE_IDSEL_ADDR_BIT) がドライバのコンフィギュレーション データに渡されるようになりました。 ドライバは、アドレス ビットからデバイス番号を割り出し (たとえば、ビット 16 はデバイス番号 0、ビット 17 はデバイス番号 1 など)、正しいデバイス番号を使用して Initialize() ファンクションにある PCI バー レジスタを設定します。

3. ドライバから PCI バー レジスタの INIT コードを一度にまとめて削除する方法は、これ以外にも検討されました。 PCI デバイスには、新規ジェネリックの追加やジェネリックの名前変更、新規レジスタの追加など今後も多数の変更があるため、このコードをそのままにしておくのがベストだと思われていました。そうすれば、PCI ドライバは変更による影響を受けません。今後のバージョンのドライバで、コードの削除が検討されます。

この問題は、最新版の 6.2 EDK サービス パックで修正されています。サービス パックは次のサイトから入手できます。
http://www.xilinx.co.jp/ise/embedded/edk.htm
この修正は、6.2 EDK サービス パック 2 以降に含まれます.
AR# 19612
日付 12/15/2012
ステータス アクティブ
種類 一般
このページをブックマークに追加