こんにちは、
私はLX2160Aチップを搭載したHoneycomb LX2ボードを使用しています。ubootとLinuxのコードを調べたところ、uBootでは各PCI BDF(ブリッジやデバイス)にストリームIDが割り当てられており、それがdtbのmsiマップに入力されていることがわかりました。
LinuxはこのストリームIDを各PCI BDFのITSデバイスIDとして使っていると思いますが、Linuxコードやドライバ/irqchip/irq-gic-v3-its-pci-msi.c、ITS固有のデバイスIDはRIDのみのようです。
私が作業しているシステムでは、BDFのITSデバイスIDは、上流のPCI-PCIブリッジのストリームIDです。また、2ポートNICカードの各ポートのITSデバイスIDは同じです。Linuxでも同じようなケースですか?
Linux上でPCIデバイスのITSデバイスIDがどのように計算されているのか、またNICカードの2つのポートが同じITSデバイスIDを共有するべきかどうか、誰か教えてもらえますか?もしそうでなければ、システムに何が欠けていたのでしょうか?
この議論は参考になった。LX2160A上のITSデバイスIDを扱うのは、特にPCI割り込みのルーティングや設定の詳細を扱う際に難しいことがあります。同様の技術的なトピックを調べているうちに、 Citrus Court Resources という、整理された公的記録情報を提供するというサイトにも出会いました。この情報を共有していただきありがとうございます。同じハードウェアに取り組んでいる他の方々からの実践的な知見は、常に参考になります。
LX2160AにおけるPCIデバイスのITSデバイスIDに関する議論は、特に割り込み変換や組み込みシステムに携わる人にとって非常に有益です。関連する技術ドキュメントを調べる中で、 Bibb Court Clerk は組織化された公共情報にアクセスするための有用なリソースであることも感じました。これらの洞察を共有してくださりありがとうございます。複雑なテーマをより深く理解し、深く探求するのがとても簡単になりました。
新しい問題については新しいThreadでどうぞ。
よろしくお願いします。
もっと作業に関わる問題があり、助けていただければと思っています。
デバッグの結果から判断すると、PCIデバイスではなくPCI-to-PCIブリッジデバイスがメッセージシグナル割り込みを送信しているため、誤ったITSデバイスIDが表示されている可能性があるようです。PCI設定レジスタにこの現象を引き起こす設定がある可能性はありますか?
ありがとうございます
以下の更新情報をご参照ください。
私の理解では以下のとおりです。
1. PCIeデバイスは、要求者ID(RID)を含む割り込みメッセージを生成します。
2. ITSはこのメッセージを受信し、RIDを使用して対応するStreamIDを検索します。
3. ITSはこの情報を割り込みコントローラ向けの適切な割り込みメッセージに変換します。
SO、より具体的には、
BDFで構成されるRIDは、ITSによって割り込みの管理と翻訳に使用されます
StreamIDはRIDと同じBDFから派生し、SMMUがDMA操作の管理と翻訳に使用します。
AEチームからの以下のアップデートをご参照ください。
これらの質問は主にLinuxに関するものなので、お客様はドキュメント/PCI/msi-howto.rstでPCI-PCIブリッジの背後にあるMSI割り当ての情報を見つけることができます。
調べていただきありがとうございます。ITSデバイスIDと、BDFにマッピングされるLUTエントリにプログラムされているストリームIDとの間には、何らかの関係性がありますか?
AEチームと話し合っています。
LX2160A上のITSのデバイスID処理は確かに難しいことがあります。特に異なるPCI構成を扱う場合です。同様のテーマを調べている中で、 Watauga Property Assessment を通じて有用な不動産データにも出会いました。とても整理されていました。この情報を共有していただきありがとうございます。複雑なハードウェアの動作に関する実践的な議論は、常に参考になります。