AR# 70148

2017.3 Zynq-7000 SoC: QSPI フラッシュ プログラミングには FSBL を指定する必要がある

説明

2017.3 リリースより、Vivado ハードウェア マネージャーおよび XSDK では、QSPI フラッシュをプログラムするために FSBL を指定する必要があります。

これは Zynq-7000 と Zynq UltraScale+ のフローを共通にするためです。

ソリューション

この変更はいくつかの点に影響しています。

1) 機能している FSBL が必要です。

FSBL が DDR を初期化している場合は、QSPI フラッシュ プログラミングでは実際には DDR が使用されていなくても、DDR が機能している必要があります。

QSPI フラッシュ プログラミング中に FSBL の UART が停止することなく完全に実行されていることを確認するため、FSBL で #define FSBL_DEBUG_INFO を使用してください。


2) Vivado 2017.3 または 2017.4 のフラッシュのプログラミングで問題が発生する場合は、次の環境変数を追加してください。

ENV 変数は、2018.1 の場合は必要ありません。

XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ = 10000000

この設定により、ミニ U-Boot により QSPI デバイスのクロックが強制的に 10 MHz に設定されます。 

注記: FSBL デザインによっては、ハードウェアでQSPI クロックが異なる場合があります。


3) デバイス クロッキングがツールではなく FSBL でコンフィギュレーションされています。

ツールでこれまで使用されていたコンフィギュレーションは次にリストされています。 

フラッシュのプログラミングに問題がある場合は、次の表を参考に FSBL コンフィギュレーションをチェックしてください。

レジスタ名レジスタ アドレスレジスタ値
ARM_PLL_CFG0xF80001100x00177EA0(デフォルト値)
ARM_PLL_CTRL0xF80001000x0001A000ARM_PLL = 866 MHz (バイパスされない)
ARM_CLK_CTRL0xF80001200x1F000400CPU_6x4x = 866 / 4 = 216 MHz
IO_PLL_CFG0xF80001180x00177EA0(デフォルト値)
IO_PLL_CTRL0xF80001080x0001A000IO_PLL = 866 MHz (バイパスされない)
PLL_STATUS0xF800010C0x0000003FARM_PLL および IO_PLL が LOCKED および STABLE。

* PS_REF_CLK = 33.33 MHz と想定


4) XIP (QSPI から実行) の場合は、OCM から実行するカスタム FSBL を QSPI フラッシュ プログラミング中に指定されるように作成する必要があります。

 

AR# 70148
日付 05/25/2018
ステータス アクティブ
種類 一般
デバイス
ツール