AR# 60803

Zynq-7000 SoC - QSPI が 16 MB よりも大きく、オプションの Execute-in-Place (XIP) モードが使用されている場合のブート イメージ要件

説明

BootROM はリニア モードを使用して QSPI フラッシュの最初の16 MB にアクセスし、ブート イメージを検索します。

QSPI フラッシュのサイズが 16 MB より大きく、オプションの Execute-in-Place モードが使用されている場合は、ブート イメージの格納場所に制限があります。

RSA が使用されている場合も同じ制限が適用されます。詳細は、(Xilinx Answer 57900) を参照してください。

QSPI リニア モードの読み出しコマンド (6bh) で最初の 4 バイトに正しいデータを取得できない可能性があります。

次の図を見ると、メモリの上位 16 MB から間違った 4 バイトのデータが取り込まれています。

 

これは、リニア モードの QSPI コントローラーの既知の問題です。


 

標準の QSPI ブート モード (XIP ではない) で、BootROM ヘッダーの最初の 4 バイトが使用されておらず、チェックサムは 0x020 から 0x044 までしか計算されていません。

このため、間違ったデータを無視することができます。QSPI は問題なくブートします。

しかし、QSPI が XIP を使用してブートする場合は、フラッシュ リニア アドレス空間の再マップに最初のワードが使用されます。

次は、シングルの x2 または x4、デュアル スタックの x4、およびデュアル パラレルの x4 のコンフィギュレーションにて、16 MB よりも大きい QSPI フラッシュで RSA 認証が使用される場合にのみ適用されます。

QSPI デバイスのサイズが 16 MB よりも大きく、オプションの Execute-in-Place モードが使用されている場合は、ブート イメージをフラッシュの 0x0 オフセットには配置できません。

ソリューション

この要件を回避するには、次の 3 つの方法があります。

  • フラッシュの最初の 32 KB を消去し、ブート イメージを 0x0 + 32 KB オフセットにプログラムする。
    BootROM は 0x0 からブートできず、フォールバックして 0x0 + 32 KB オフセットからブートします (『Zynq-7000 All Programmable SoC テクニカル リファレンス マニュアル』 (UG585) の「ブート パーティションの検索」を参照)。
  • ブート イメージを 0x0 にプログラムし、イメージ ヘッダーを 0x0 + 16 MB オフセットで複製する。
    BootROM はイメージ ヘッダーを 0x0 + 16 MB オフセットで使用した後、0x0 にプログラムされたブート イメージを使用してブートします。
  • シングルの x1 QSPI モードのみを使用する。

注記: XIP を使用しない場合は、16 MB より大きい QSPI でも、ブート イメージを 0x0 に配置できます。

AR# 60803
日付 05/28/2018
ステータス アクティブ
種類 一般
デバイス