インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

7.3.4.3. AxPROT[2:0] に関する考慮事項

ARM® プロトコル仕様では、 AXI* マスターは複数レベルの操作特権をサポートし、セキュアおよび非セキュアな操作状態をサポートすることが可能です。AxPROT[2:0]は、次のようにアクセスを識別します。

表 68.   AxPROTの値一覧
AxPROT 機能
[0] 0 非特権アクセス
1 特権アクセス
[1] 0 セキュアアクセス
1 非セキュアアクセス
[2] 0 データアクセス
1 命令アクセス
注: キャッシュの一貫性には、複数のマスターからのトランザクションにおいて、ACE-liteインターフェイスのAxPROT値が同じである必要があります。この値は、読み出し/書き込みアクセスのアクセス許可を定義するものです。
Cortex*-A53には、次の4つの実行レベルがあります。
  • EL0 – アプリケーション
  • EL1 – OS
  • EL2 – ハイパーバイザー
  • EL3 – セキュアモニター

FPGA マスターとHPSは、同じメモリーにアクセスしている場合に、同じレベルのセキュア/特権モードになっている必要があります。MPUがEL1 (OS) またはEL2 (ATFフローU-Boot) の場合、アクセスは非セキュア/特権モードになります。よって、FPGA マスターでは、AxPROTを0x3 (‘b011) に設定して使用する必要があります。MPUがEL3 (ATF/SPL、非ATF U-boot) の場合は、アクセスはセキュア/特権モードになるため、FPGA マスターでは、AxPROTを0x1 (‘b001) に設定して使用する必要があります。

注: キャッシュの一貫性には、MPUとFPGA マスターが同じセキュアレベルまたは特権レベルになっている必要があります。これにより、予期しない動作を回避します。

次の FPGA-to-HPS トランザクション例のセクションでは、FPGA マスターは常にAxPROT = (b’001) に設定されています。これにより、MPUのEL3と同様に、メモリーのすべての領域へのデータアクセス、セキュアアクセス、および特権アクセスが可能になります。この例は、ブート時に「mem=nn」カーネル・コマンド・ライン・オプションを使用してLinuxカーネルによって静的に割り当てられたメモリーにアクセスするFPGA マスターを表しています。DMAのメモリー割り当てと「mem=nn」コマンド・ライン・オプションに関しては、Linuxカーネルのドキュメントを参照してください。HPSで実行されているカーネルによって割り当てられたメモリーにアクセスするFPGA のその他の例として一般的なのは、静的割り当て、カーネル割り当て、およびユーザー空間割り当てです。これらの例は、 AN 886: Intel Agilex® デバイスのデザイン・ガイドライン 、もしくはRocketboards.orgより利用可能です。