インテル® Agilex™ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/25/2020
Public

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

ドキュメント目次

B.5.3. SPIレガシーモード

SPIレガシーモードでは、ソフトウェアで内部のTX FIFOバッファーおよびRX FIFOバッファーに直接アクセスできるため、ダイレクトまたは間接コントローラー、およびSTIGコントローラーをバイパスすることができます。レガシーモードが有効になっている際に、ソフトウェアはデータスレーブを介して任意の値を任意のアドレスに書き込むことにより、TX FIFOバッファーおよびRX FIFOバッファーにアクセスします。レガシーモードは、cfgレジスターのLegacy IP Mode Enableビット (enlegacyip) で有効にすることができます。

レガシーモードでは、ユーザーは任意のフラッシュ命令をフラッシュ・デバイスに発行することができますが、FIFOバッファーのフィルレベルを効果的に管理するために、ソフトウェアのオーバーヘッドが大きくなります。レガシーSPIモードは本質的に双方向であり、チップセレクトが有効になっている間、データは連続的に双方向に転送されます。ドライバーがフラッシュ・デバイスからのデータの読み出しのみを行う必要がある場合は、ダミーデータを書き込み、チップセレクトをアクティブに保つ必要があります。書き込みトランザクションの場合はその逆になります。

例えば、3つのアドレスバイトをもつ4バイトの基本的な読み出しをフラッシュ・デバイスに行う場合は、ソフトウェアで合計8バイトをTX FIFOバッファーに書き込む必要があります。最初のバイトは命令オペコード、次の3バイトはアドレス、そして最後の4バイトをダミーデータにすることで、読み出しデータが返されている間にチップセレクトがアクティブで維持されるようにします。同様に、8バイトがTX FIFOバッファーに書き込まれているため、ソフトウェアでは、8バイトがRX FIFOバッファーに返されることを想定します。この場合、最初の4バイトは破棄され、デバイスから読み出されたデータを保持する最後の4バイトが残されます。

TX FIFOバッファーとRX FIFOバッファーの深さはそれぞれ4バイトであるため、ソフトウェアでFIFOバッファーのレベルを維持し、TX FIFOバッファーがアンダーフローしないこと、およびRX FIFOバッファーがオーバーフローしないことを保証する必要があります。フィルレベルがウォーターマーク・レベルを超えたことを示す割り込みが提供されます。このウォーターマーク・レベルは、TX Thresholdレジスター (txtresh) およびRX Thresholdレジスター (rxtresh) を介してコンフィグレーション可能です。