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

ID 683673
日付 12/14/2020
Public

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

ドキュメント目次

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

アプリケーション・イメージをフラッシュメモリーーに追加するには、次の手順を実行します。

  1. Tclコンソールウィンドウで QSPI_OPEN コマンドとQSPI_SET_CSコマンドを実行して、ASx4インターフェイスとフラッシュメモリーへの排他的アクセスを設定します。これで、QSPI_CLOSEコマンドを実行してアクセスを放棄するまで、ASx4インターフェイスとフラッシュに排他的にアクセスできます。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ワードをサポートします。

    図 82. 新しいアプリケーション・イメージをプログラムする
    $ 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の詳細については、サブパーティションテーブルのレイアウトについては表 1を参照し、ポインタブロックのレイアウトについては表 1を参照してください。
上記の例に基づいて、CPB0およびCPB1のアドレスオフセット0x20は、アプリケーション・イメージの開始アドレスを指している必要があります。新しいアプリケーション・イメージの開始アドレスを次のイメージ・ポインター・エントリーに書き込む前に、次の新しいイメージ・ポインター・エントリー値は0xFFFFFFFFである必要があります。
QSPI_read関数を使用して、新しいイメージ・ポインター・エントリー値が0xFFFFFFFFであることを確認できます。QSPI_read関数は2つの引数を取ります:
  1. 開始アドレス
  2. 読み出す単語数

図 83. 新しいイメージ・ポインター・エントリー値が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. 言葉の価値
図 84. 新しいイメージ・ポインター・エントリーへのアドレスポインターの書き込み
% 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ピンをアサートすることにより、新しいアプリケーション・イメージで Intel® Agilex™ FPGAをリコンフィグレーションできるようになりました。または、PCBの電源を入れ直すこともできます。リコンフィグレーション後、現在のイメージアドレスを確認してください。予想されるアドレスは0x03ff0000です。新しいイメージを追加すると、アプリケーション・イメージ・リストには、新しく追加されたアプリケーション・イメージと、現在はセカンダリイメージになっている古いアプリケーション・イメージが含まれます。新しく追加されたアプリケーション・イメージが最も優先されます。

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