インテル® Agilex™ コンフィグレーション・ユーザーガイド

ID 683673
日付 5/30/2022
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

5.6.5. アプリケーション・イメージの追加

プロジェクトにシミュレーション・ファイルを追加するには、以下のステップを実行します。

  1. Tcl コンソール ウィンドウで QSPI_OPEN および QSPI_SET_CSコマンドを実行して、AS x4 インターフェイスとフラッシュ・メモリーへの排他的アクセスを設定します。これで、AS x4インターフェイスに排他的にアクセスでき、を実行してアクセスを放棄するまでフラッシュできます。 QSPI_CLOSE コマンドを実行してアクセスを放棄するまで、AS x4 インターフェイスとフラッシュに排他的にアクセスできます。 QSPI_WRITEコマンドを使用して、新しいアプリケーション・イメージをフラッシュ・メモリーに書き込みます。
  2. あるいは、rsu1.tclスクリプトには、新しいアプリケーション・イメージをフラッシュ・メモリにプログラムするprogram_flash関数が含まれています。次のコマンドは、このタスクを実行します。
    program_flash new_application_image.rpd 0x03FF0000 1024

    program_flash 関数は3つの引数を取ります。

    1. フラッシュ・メモリーに書き込む.rpdファイル。
    2. 開始アドレス。
    3. QSPI_WRITEコマンドで書き込むワード数。QSPI_WRITEは、書き込み命令ごとに最大 1024 ワードをサポートします。

    図 80. 新しいアプリケーション・イメージのプログラム
    $ source rsu1.tcl
    /channels/local/top/master_1
    $ program_flash new_application_image.rpd 0x03ff0000 1024
    total number of words is 584704
    total number of page is 571
    total number of sector is 36
    reading rpd is completed
    start writing flash
    writing flash is completed
  3. QSPI_WRITEコマンドを使用して、コンフィグレーション・ファームウェア・ポインター・ブロック (CPB) 内の新しいイメージ・ポインター・エントリーに新しいアプリケーション・イメージの開始アドレスを書き込みます。書き込みを開始する前に、新しいイメージ・ポインター・エントリーの値が0xFFFFFFFFであることを確認します。
    注: HPS を使用して RSU を管理する場合、構成ポインター ブロック (CPB0 および CPB1) とサブパーティーション テーブル (SPT) の両方のコピーを更新する必要があります。非 HPS の場合、ポインター ブロックの両方のコピーの更新は必須ですが、サブパーティーション テーブルの更新は必要ありません。 SPTの詳細については、サブパーティーション・テーブルのレイアウトを参照してCPB のの詳細については、ポインター ブロックのレイアウトを参照してください。
上記の例に基づくと、CPB0とCPB1のアドレス オフセット0x20は、アプリケーション・イメージの開始アドレスを指している必要があります。 新しいアプリケーション・イメージの開始アドレスを次のイメージ・ポインター・エントリーに書き込む前に、次の新しいイメージ・ポインター・エントリーの値を 0xFFFFFFFF にする必要があります。
QSPI_read関数を使用して、新しいイメージ・ポインター・エントリーの値が0xFFFFFFFFであることを確認できます。QSPI_read 関数は、次の 2 つの引数を取ります。
  1. 開始アドレス
  2. 読み込むワードの数

図 81. 新しいイメージ・ポインター・エントリーの値が 0xFFFFFFFF であることを確認する
$ qspi_read 0x004a0020 1
0x004b0000
$ qspi_read 0x004a0028 1
0xffffffff
% qspi_read 0x004a8020 1
0x004b0000
% qspi_read 0x004a8028 1
0xffffffff
QSPI_write_one_word関数を使用して、新しいアプリケーション・イメージ・アドレスを次のイメージエントリーに書き込むことができます。 QSPI_write_one_word関数は 2 つの引数を取ります。
  1. アドレス
  2. ワードの価値
図 82. 新しいイメージ・ポインター・エントリーへのアドレスポインターの書き込み
% qspi_write_one_word 0x004a0028 0x02000000
% qspi_write_one_word 0x004a8028 0x02000000

次のイメージ・ポインター・エントリーに対してQSPI_read関数を実行して、目的の新しいアプリケーション・イメージの開始アドレスが書き込まれるようにすることができます。

新しいイメージポインターへの更新の確認

% qspi_read 0x004a0028 1
0x02000000
% qspi_read 0x004a8028 1
0x02000000

ホスト・ソフトウェアは、nCONFIGピンをアサートすることにより、新しいアプリケーション・イメージで インテル® Agilex™ FPGA をリコンフィグレーションできるようになります。または、PCBの電源を入れ直すこともできます。リコンフィグレーションの後、現在のイメージ アドレスを確認します。 予想されるアドレスは0x03ff0000です。リモート・システム・アップデートのホストがアプリケーション・イメージをロードすると、決定ファームウェアはイメージ・ポインター項目を逆の順序でトラバースします。新しいイメージは、デバイスを再起動するときに最も優先度が高くなります。

注: リモート・システム更新ホストがアプリケーション・イメージをロードすると、決定ファームウェアはイメージ・ポインター項目を逆の順序でトラバースします。新しいイメージは、デバイスを再起動するときに最も優先度が高くなります。