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

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

10.4.3. メモリーデータの初期化

ECCコントローラーが有効になっている場合は、データの読み出しが行われる前に、メモリーデータが書き込まれている必要があります。 メモリーが書き込まれていない場合は、ECCのシンドローム・ビットがランダムになり、メモリーデータが読み出される際に誤ったシングルビット・エラーまたはダブルビット・エラーを引き起こす場合があります。

RAM内のデータのバイトはすべて、ECCで保護されています。この保護により、次の条件下において意図しないECCエラーが発生することがあります。

  • MPUが初期化されていない位置をプリフェッチした場合
  • MPU (もしくはマスターのいずれか) が初期化されていないバイトから読み出しを行った場合

意図しないECCエラーを防ぐには、ソフトウェアでECCコントローラー内のメモリー初期化ブロックを使用し、メモリーデータ全体とECCビットを初期化する必要があります。初期化ブロックは、メモリーデータをクリアします。ECC Control (CTRL) レジスターで初期化を有効にすることは、ECCを有効にすることとは異なります。

注: SD/MMCなどの真のデュアルポート・メモリーを備えるペリフェラルでは、明示的に両方のメモリーを初期化する必要があります。

ソフトウェアは、ECC Control (CTRL) レジスターを介して初期化を制御します。初期化が開始すると、このプロセスを割り込みまたは停止することができないため、ソフトウェアは、Initialization Status (INITSTAT) レジスターのInitialization Complete (INITCOMPLETE*) ビットが設定されるまで待機する必要があります。メモリーアクセスは、初期化プロセス完了後に許可されます。

初期化ブロックは、レジスター・スレーブ・インターフェイスを介してアクセスされます。 Cortex® -A53 MPCore™ およびセキュア・デバイス・マネージャー (SDM) では、レジスター・スレーブ・インターフェイスに直接アクセスし、メモリーを初期化することができます。

改ざんイベントが発生すると、SDMは、初期化ブロックを使用してECCメモリーをすべてスクランブルします。SDMは、このメモリー・スクランブルをセキュアブート、セキュア・コンフィグレーション、または認証の一部として、機能モードまたは非機能モード時にいつでも開始することができます。