i.MX8M-PlusのRDCを使用して、A53クラスタ内のコアを分離したいと考えています。RDCセマフォを使って、A53クラスターから特定のCPUが周辺機器にアクセスするのを禁止することは可能でしょうか?
Rev 3 IMX8MPRMリファレンスマニュアルには、ゲートレジスタRDC_SEMAPHOREx_GATEnにおけるGTFSMフィールドの動作について明確ではありません(セクション3.2.6.1)。ロックドメインを知らせるための2ビットと、セマフォをロックしている「プロセッサ」を知らせるための4ビットがあります。
「プロセッサ」とはクラスタ(A53、M7)ですか、それともクラスタ内のコアですか?
もしA53クラスターのcore0がセマフォをUART1にロックした場合、core1...3はUART1にアクセスできるのでしょうか?
No.
i.MX8M Plusでは、RDCセマフォ「プロセッサ」はバス・マスタ/RDCマスターであり、個別のA53コアではありません。A53クラスタはRDC目的で1つのA53プラットフォームマスター/ドメインとして表示されます。A53クアッドコアクラスタは単一のマスタードメインとして扱われ、つまり4つのA53コア(core0~core3)すべてが同じRDCドメインに属します。その結果、Sema42セマフォのGTFSMフィールドは、どのドメイン(例えば、A53クラスタ対M7コア)がロックを保持しているかを識別するのであって、クラスタ内のどの個々のコアがロックを保持しているかを識別するわけではありません。
したがって、A53 core0がUART1のセマフォをロックした場合、A53 core1–3はそのRDCセマフォによって個別にブロックされません。同じA53/RDCドメインにいる場合はUART1にもアクセスできます。
クラスタ内コア分離には、ハードウェアのRDC/Sema42ではなく、OSレベルのリソース管理やスピンロックなどのソフトウェアレベルの仕組みに依存する必要があります。