UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 57744

Zynq-7000 SoC のデザイン アドバイザリ - 16 MB より大型のフラッシュを使用する場合の Zynq および QSPI のリセット要件

説明

影響を受ける Zynq-7000 プラットフォーム

シングル、デュアル スタック、デュアル パラレルのコンフィギュレーションでのブートに 16 MB より大型の QSPI フラッシュを使用する Zynq-7000 プラットフォーム

注記: 2 つの 16 MB QSPI フラッシュを使用するデュアル スタックドまたはデュアル パラレル コンフィギュレーション (合計 32 MB) のシステムは、この要件の影響を受けません。

Zynq-7000 でサポートされる QSPI デバイスは、(Xilinx Answer 50991) を参照してください。

背景

Zynq QSPI コントローラーは 3 バイト アドレス指定に制限されるので、ブート イメージがフラッシュの最初の 16 MB にある場合にのみ bootROM でフェッチできます (16 MB は 1 つの QSPI チップでアドレス指定可能な最大容量)。

16 MB より大型の QSPI フラッシュを使用する場合、フラッシュの 16 MB より上の部分のデータにアクセスするため、ソフトウェア ドライバー (スタンドアロン、U-Boot、Linux) で 3 バイト アドレスを拡張し、4 番目のバイトを拡張アドレス レジスタと呼ばれるベンダー特定の QSPI レジスタに保管する必要があります。  

これは、2013.3/14.7 ソフトウェア ドライバーおよびザイリンクス ツールでサポートされる予定です。

この拡張アドレス レジスタは、外部リセット イベント (フラッシュの電源サイクルまたはフラッシュの外部リセット) でしかクリアできません。

QSPI フラッシュの電源サイクルまたは外部リセットの後、デバイスにアクセスする前にリカバリ タイムが必要です。詳細は、QSPI フラッシュのデータシートを参照してください。

リセットに関する考慮事項

bootROM はすべてのシステム リセットで起動されます。

  • POR (外部ピン)
  • SRST (外部ピン)
  • システム SW リセット (SLCR ビットをソフトウェアでセット)
  • SWDT、AWDTx (ウォッチドッグ タイマー)
  • セキュア ロック ダウン (bootROM から)
  • システム デバッグ リセット (JTAG)

拡張アドレス レジスタが読み出し/書き込み操作によりフラッシュの 16 MB より上の部分にアクセスするために変更されており、システム リセットが実行されたときに 0 でない場合があります。

bootROM では QSPI 外部アドレス レジスタは認識されないのでクリアできず、ブート イメージを読み込むことができません。

注記: Zynq-7000 SoC に関するすべての質問を解決するのに役立つ情報は、Zynq-7000 SoC ソリューション センター (Xilinx Answer 52512) を参照してください。

ソリューション

この状況を解決するには、Zynq と QSPI フラッシュのリセットを一緒に制御する必要があります。 

どのリセット (POR またはウォーム リセット) でも、外部 SRST を Zynq に適用し、SRST がディアサートされる前に QSPI が回復できるようにする必要があります。

外部エンティティ (CPLD など) を使用して管理できます。

すべての Zynq プラットフォーム リセットを検出

Zynq にはすべてのウォーム リセット イベントを示す出力ピンがないので、これには専用 PS MIO (USER_IO) を使用する必要があります。

これがウィーク プルアップまたはプルダウンを使用して High または Low になるようにボードを設計する必要があります。

FSBL では、反対の方向にプルされます。これにより、その後のウォーム リセットの前に信号が確実に Low に駆動されます。

CPLD は POR_IN、SRST_IN、および USER_IO を監視し、POR_ZYNQ、SRST_ZYNQ、および QSPI_RESET/QSPI_POWER_EN を駆動します。

フローの 1 例は、 「16 MB より大型のフラッシュを使用する場合の QSPI リセット例」を参照してください。


 

注記: ダイアグラムで SRST_IN は、JTAG SRST (たとえばデバッガーからアサート可能) を含むボード上のすべての SRST の OR です。

SRST_ZYNQ または POR_ZYNQ を使用して Zynq をリセット状態に保持

SRST_ZYNQ を使用する利点は、ウォーム リセットが別のウォーム リセットに変換されるので、デバッグ レジスタなどがそのままに保持されることです。

アプリケーションのニーズによって、代わりに POR_ZYNQ を使用する必要がある場合もあります。

QSPI フラッシュのリセット

QSPI フラッシュにリセット ピンがある場合は、CPLD でそれを駆動します (QSPI_RESET)。

リセット ピンがない場合は、CPLD でボード上の FET などを使用して QSPI フラッシュの電源レールを制御します (QSPI_POWER_EN)。

電源レールと RESET のリカバリ タイムによっては、リセット ピンがある場合でも電源レールを使用した方が有利な場合もあります。

進行中の書き込みまたは消去により、フラッシュが破損する場合があります。

上位ソフトウェア/ファイルシステムでこれを考慮する必要があります。

POR_IN および SRST_IN が SRST_ZYNQ と重複した場合の処理

このロジックで SRST_ZYNQ がアサートされているときに POR_IN および SRST_IN のどちらかまたは両方が発生した場合、『Zynq-7000 SoC テクニカル リファレンス マニ ュアル』 (UG585) のガイドラインに従って、SRST_ZYNQ/POR_ZYNQ を正しい順序でアサートおよびディアサートする必要があります。  

『Zynq-7000 SoC テクニカル リファレンス マニ ュアル』 (UG585) のセクション 6.2.4 「リセット要件」および (Xilinx Answer 52847) を参照してください。

Zynq リセットの解放

CPLD ロジックは、QSPI フラッシュが使用可能になるまで Zynq をリセット状態に保持します (リカバリ タイム期間切れ、詳細は QSPI フラッシュのデータシートを参照)。

注記: bootROM は、POR_ZYNQ が解放 (立ち上がりエッジ) された後 QSPI にアクセスします (CS をアクティブに駆動)。

bootROM のブートイメージ検索

この時点で、bootROM が QSPI フラッシュの最初の 16 MB でブートイメージを検索し始めます (拡張アドレス レジスタは 0)。

注記:

1) CPLD ロジックを設計するのに役立つ追加の考慮事項は、『Zynq-7000 SoC テクニカル リファレンス マニ ュアル』 (UG585) の第 26 章「リセット システム」を参照してください。

SRST および POR 信号の順序は、(Xilinx Answer 52847) を参照してください。

2) 16 MB より大型の QSPI からブートする際のその他の考慮事項は、『Zynq-7000 SoC ソフトウェア開発者向けガイド 』 (UG821) を参照してください。

AR# 57744
日付 06/13/2018
ステータス アクティブ
種類 デザイン アドバイザリ
デバイス
このページをブックマークに追加