私は、2 つの SoC が接続されている組み込み PCIe システムに取り組んでいます。ホストはルート コンプレックスであり、スレーブはエンドポイントです。ホストは Linux を実行します。
通常、ホスト SoC は、エンドポイント BAR がマップされるメモリ ウィンドウを提供します。これにより、ホスト上のカード ドライバがスレーブ上の IO またはメモリに読み書きできるようになります。多くの場合、スレーブには、PCIe アドレスとローカル アドレスで動作する PCIe IP に組み込まれた DMAC が含まれます。ホストは、メモリ ウィンドウに書き込むことによって、この DMAC をセットアップします。
私の場合、エンドポイントには PCIe IP に組み込まれた DMAC はありませんが、システム DMAC はあります。そこで、質問を2つ...
- エンドポイントは、BAR を介してルート コンプレックスのメモリにアクセスできますか?
- 組み込みの PCIe DMAC の代わりにシステム DMAC を使用すると、パフォーマンスへの影響はありますか? (つまり、BAR 経由のアクセスは PCIe バス上でどのように表示されますか? アクセスごとに 1 つの TLP を取得しますか?)
どんな助けでも大歓迎です!