AR# 67818

Zynq UltraScale+ MPSoC: JTAG/SD ブート モードでの 2016.3 PMUFW の読み込みおよびサンプルの実行

説明

このアンサーでは、次の内容について説明します。

  • SDK を使用した PMU ファームウェアの構築
  • SDK を使用した PMU ファームウェアのデバッグ
  • (Xilinx Answer 67871) Zynq UltraScale+ MPSoC: ES2 およびそれ以降のデバイスでは MicroBlaze PMU MDM がデフォルトで無効になっている
  • SD ブート モードを使用した PMU ファームウェアの読み込み
  • FSBL を使用した PMU ファームウェアの読み込み
  • CBR を使用した PMU ファームウェアの読み込み

ソリューション

SDK を使用した PMU ファームウェアの構築

  1. XSDK を開きます。
  2. 次のように設定して新しいアプリケーションを作成します。
    1. プロジェクト/ボード サポート パッケージを指定します。
    2. OS プラットフォーム: スタンドアロン
    3. ハードウェア プラットフォーム: ZynqMP_ZCU102_hw_platform
    4. プロセッサ: psu_pmu_0
       
  3. [Next] をクリックします。利用可能なテンプレートに「ZynqMP PMU Firmware」が表示されます。
  4. [Finish] をクリックして PMU ファームウェアを生成します。
  5. ローカル ボードへ接続して、接続をテストします。接続が問題なく確立されたことを示すポップアップ ウィンドウが表示されるはずです。
  6. ターミナルで COM ポートを接続して UART 出力を表示します。
    注記: PMU ファームウェアは、デフォルトの STDOUT として psu_uart_0 を使用します。これは、[Modify BSP Settings] でほかの UART に変更できます。
    PMU ファームウェアからのデバッグ出力を無効にするには、xpfw_config.h ファイルにあるライン「#define DEBUG_MODE」を PMU ファームウェア ソース コードから未定義設定/削除/コメントアウトします。
  7. XSCT コンソールで、ボードへ接続して PMU ファームウェアを実行します。
  8. ターミナル コンソールに PMU ファームウェア出力を表示します。

 

SDK を使用した PMU ファームウェアのデバッグ

  1. アプリケーション上で右クリックし、[Debug As] → [Debug Configurations] をクリックします。
  2. [System Debugger] を右クリックして [New] をクリックします。[New Configuration] が表示されるはずです。[Debug] をクリックします。
  3. デバッグ パースペクティブを選択します。[OK] をクリックします。
  4. デバッグ パースペクティブが表示されて PMU ファームウェアが実行されます。
  5. フローを制御するためにブレークポイントを配置し、デバッグの目的で再度実行します。

 

SD ブート モードを使用した PMU ファームウェアの読み込み

注記: 1.0 シリコンで PMU ファームウェアが非 JTAG ブート モードで読み込まれると、スタートアップ時に PMU ファームウェアにより「Error: Unhandled IPI received」というエラー メッセージがログに記録されることがあります。

これは無視しても問題ありません。この問題は、IPI0 ISR が PMU ROM によってクリアされていないことに起因します。2.0 およびそれ以降のバージョンのシリコンで修正されています。

 

FSBL を使用した PMU ファームウェアの読み込み:

  1. pmufw.elf ファイルが必要です。(このページの上の方にある PMU ファームウェアの構築を参照)
  2. SDK で A53 用に FSBL を構築します。(R5 の使用も可)
  3. A53 用に hello_world サンプルを作成します。「hello_world example」プロジェクト上で右クリックし、[Create a boot image] をクリックします。
  4. 次のように設定して新しい bif ファイルを作成します。
    1. アーキテクチャ: ZynqMP
    2. パーティションに A53 FSBL と hello_world サンプルがデフォルトで表示されます。PMU ファームウェアも必要です。
    3. [Add] をクリックして、pmufw.elf のパスを入力します。パーティション タイプ: datafile、デスティネーション デバイス: PS、デスティネーション CPU: PMU と設定します。
    4. [OK] をクリックします。
    5. パーティションとして pmufw を追加した後、PMUFW パーティションをクリックして [UP] をクリックします。
    6. パーティション順が次のようになっていることを確認します。
      1. A53 FSBL
      2. PMUFW
      3. hello world App
    7. [Create Image] をクリックします。サンプル プロジェクトの「bootimage」という新しいフォルダーに BOOT.bin が作成されます。
    8. .BIF ファイルを表示してパーティション順を確認します。
    9. この BOOT.bin を SD カードにコピーします。
    10. ZCU102 ボードを SD ブート モードで起動します。fsbl → pmufw → hello_world の順序でサンプル出力が表示されます。

 

CBR を使用した PMU ファームウェアの読み込み:

PMU ファームウェアが CBR によって読み込まれる場合、これは FSBL の前で実行されます。 

このため、MIO、クロック、およびほかの初期化はこの時点で実行されません。つまり、PMUFW バナーおよびほかの出力は FSBL の前に表示されないということです。

FSBL 実行後、PMUFW 出力は通常どおりに表示されます。

  1. CBR による PMU ファームウェアの読み込みを可能にするには、BOOT.bin ブート パーティションの変更のみが必要です。
  2. FSBL を使用した PMU ファームウェアの読み込み: で示した上記の最初の 3 つの手順に従います。
  3. 新しい bif ファイルを作成します。
    1. アーキテクチャ: ZynqMP と設定します。
    2. A53 FSBL と hello_world サンプルがパーティションに デフォルトで表示されます。PMU ファームウェアも必要です。
    3. [Add] をクリックして、pmufw.elf のパスを入力します。さらにパーティション タイプ: pmu (BootROM によって読み込まれる) と設定します。
    4. [OK] をクリックします。
    5. [Create Image] をクリックします。サンプル プロジェクトの「bootimage」という新しいフォルダーに BOOT.bin が作成されます。
    6. パーティション順を確認するために、.bif ファイルを表示することもできます。
    7. この BOOT.bin を SD カードにコピーします。
    8. ZCU102 ボードを SD ブート モードで起動します。pmufw → fsbl → hello_world の順序でサンプル出力が表示されます。
AR# 67818
日付 10/27/2016
ステータス アクティブ
種類 一般
デバイス