2016-08-12 3 views
1

私はPCI BAR0からFPGAメモリにアクセスする必要があるプロジェクトに取り組んでいますユーザー空間。私は古いカーネルで行うために使用何Linuxカーネル4.7(Arch ARM64)は、PCI BAR0の/ sys/bus/pci/devices/* /に "resource0"ファイルを作成しません

/SYS /バス/ PCI /デバイス/ my_device/に位置し、その後公開さのmmap()機能を使用しているresource0という名前のファイル開いていますユーザ空間へのFPGAメモリ。

残念ながら、カーネルバージョン4.7(アーキテクチャARM64)では、何らかの理由でresource0ファイルが作成されていないようです。

lspciを使用すると、システムがFPGAのPCI BARを認識することがわかります。また、/sys/bus/pci/devices/my_device/ディレクトリを検索すると、リソースというファイルがあり、その中に書かれているPCI BARのアドレスがあることがわかります。

誰も似たような状況に精通していますか? Linuxを作成するにはどうすればいいですかresource0ファイルを作成しますか?

+0

おそらく古いカーネルは32ビットですか? –

答えて

2

私はあなたの懸念を理解しています。上流に受け入れられなかったツリーパッチからこれを試すことができます。

https://patchwork.codeaurora.org/patch/2059/

http://lists.infradead.org/pipermail/linux-arm-kernel/2015-July/359435.html

それはあなたがユーザ空間でPCIリソースファイルをマップするために役立つだろう。

+0

ありがとうございました! この回避策は私の問題の解決策だと思われますが、パッチを適用する方法はわかりません! 私はそれをテストすることができたらフィードバックをお送りします。 –

+0

パッチに関するコメントは、vfio-pciを使って示唆されました。おそらく、sysfsの代わりにそのモジュールを使うこともできます。 –

関連する問題