信頼できる領域と信頼できない領域を分離する方法の 1 つとして、 Cortex® プロセッサ用の Arm® trusted firmware (TF-A) を活用して同じプロセッサ上に信頼できる環境と信頼できない環境を構築する方法があります。Zynq UltraScale+ MPSoC に搭載されている APU (アプリケーション プロセッシング ユニット) は Armv8 Cortex®-A53 であるため、すべての例外レベル (EL) をサポートし、セキュア ドメインと非セキュア ドメインの分離が可能です。
この分離機能は TF-A ソフトウェアで制御されます。トランザクションに AXI4 保護ビットを追加することで TF-A ソフトウェアがセキュア ドメインと非セキュア ドメイン間を調停 (アービトレーション) します。次の図に示すように、信頼できない (黒色) アプリケーションは、信頼できる (青色) メモリやペリフェラルへアクセスする際には TF-A を経由する必要があることがわかります。
Zynq UltraScale+ MPSoC では、ザイリンクスの XPPU (ペリフェラル保護ユニット) と XMPU (メモリ保護ユニット) により TF-A がさらに強化されます。Zynq UltraScale+ MPSoC の XMPU と XPPU を使用することで、TF-A の機能にハードウェア サポートが追加されます。次の図に示すように、APU 上の信頼できるアプリケーション (この場合、トランザクションのマスター) からのすべてのトランザクションは、信頼できるペリフェラルへのアクセスが許可されます。それ以外のマスター (RPU など) は、XMPU/XPPU によってこのペリフェラルへのアクセスがブロックされます。