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

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

15.4.1. 検出と初期化

HPSに電力が供給され、フラッシュデバイスが安定すると、NANDフラッシュ・コントローラーは特定の初期化シーケンスを実行します。初期化時に、フラッシュ・コントローラーはフラッシュデバイスにクエリーを行い、次のフラッシュ・デバイス・タイプのいずれかに応じてフラッシュ・コントローラー自体をコンフィグレーションします。
  • ONFI 1.0に準拠するデバイス
  • レガシー (ONFI以外の) NANDデバイス

NANDフラッシュ・コントローラーは、ONFI検出プロトコルを使用してRead IDコマンドを送信することで、接続されているONFI準拠のデバイスを識別します。このコマンドを認識しないデバイス (特に、512バイト・ページサイズのデバイス) の場合は、NANDコントローラーをリセットから解放する前に、ソフトウェアでシステム・マネージャーに書き込み、bootstrap_512B_device信号をアサートしてデバイスタイプを識別する必要があります。

NANDコントローラーのリセットが終了すると、NANDフラッシュ・コントローラーは次のコンフィグレーション信号をサンプリングします。これらの信号は、システム・マネージャーのユーザーが書き込み可能なレジスターによって駆動されます。
信号 デフォルト値 説明
bootstrap_inhibit_init 0 NANDコントローラーの初期化を禁止します。コントローラーはデバイスのクエリーを行わず、SLCデバイスのブロック0、ページ0へのPage Loadコマンドを発行しません。この信号がアサートされると、ソフトウェアでデバイス・パラメーター (ページサイズや幅など) に関連するすべてのレジスターをプログラミングすることが想定されています。
bootstrap_512B_device 0 512バイトのデバイスが接続されていることをNANDコントローラーに通知します。
bootstrap_512B_x16_device 0 512バイトのページサイズのデバイスが接続されており、デバイスのI/O幅が16ビットであることをNANDコントローラーに通知します。この信号は、512バイトのデバイスの場合にのみアサートされます。
bootstrap_two_row_addr_cycles 0 接続されているデバイスは、通常の3行のアドレスサイクルではなく、2つのアドレスサイクルのみを必要とします。
bootstrap_inhibit_b0p0_load 1 初期化手順の一部としてデバイスのブロック0、ページ0へのPage Loadコマンドを発行しないようにNANDコントローラーに通知するブートストラップ・ピンです。

初期化をサポートするには、rdy_busy_in ピンを接続している必要があります。

NANDフラッシュ・コントローラーは、次の初期化手順を実行します。

  1. システム・マネージャーがbootstrap_inhibit_initをアサートしている場合、フラッシュ・コントローラーは直接7 に進みます。
  2. デバイスの準備が完了すると、フラッシュ・コントローラーは、「Read ID」コマンドを送信してメモリーデバイスからONFIシグニチャーを読み出し、ONFIデバイスが接続されているかレガシーデバイスが接続されているかを特定します。
  3. メモリーデバイスから返されたデータにONFIシグニチャーがある場合、フラッシュ・コントローラーは、デバイス・パラメーター・ページを読み出します。フラッシュ・コントローラーは、関連するデバイス機能の情報を内部のメモリー・コントロール・レジスターに格納し、フラッシュデバイス内の他のレジスターを正しくプログラミングできるようにします。その後、5 に進みます。
  4. データに有効なONFIシグニチャーがない場合は、フラッシュ・コントローラーは、メモリーデバイスがレガシー (ONFI以外の) デバイスであると想定します。フラッシュ・コントローラーはその後、次の手順を実行します。
    1. resetコマンドをデバイスに送信します。
    2. デバイスのシグニチャー情報を読み出します。
    3. 関連する値を内部のメモリー・コントローラー・レジスターに格納します。
  5. フラッシュ・コントローラーは、メモリーデバイスをリセットします。同時に、メモリー・インターフェイスの幅を確認します。HPSは、8ビットまたは16ビットのNANDフラッシュデバイスを1つサポートします。フラッシュ・コントローラーは、メモリー・インターフェイスの幅を検出します。
  6. フラッシュ・コントローラーは、Page Loadコマンドをデバイスのブロック0、ページ0に送信し、直接読み出しアクセスをコンフィグレーションします。よって、プロセッサーはそのページからの読み出しが可能になります。プロセッサーでは、フラッシュメモリーの最初のページから読み出しを開始することができます。
    注: システム・マネージャーは、リセットがデアサートされる前にbootstrap_inhibit_b0p0_loadをアサートすることにより、この手順をバイパスすることができます。
  7. フラッシュ・コントローラーは、resetコマンドをフラッシュに送信します。
  8. フラッシュ・コントローラーは、statusグループのintr_status0レジスターにあるrst_compビットをクリアし、フラッシュのリセットが完了したことをソフトウェアに示します。