1 Reply Latest reply on May 5, 2020 6:33 PM by JuyoungJ_06

    Community Translation - Using SRWD Bit and WP# Signal to Hardware-Protect Flash Memory - KBA227603

    KaKi_1384211

      【タイトル】

      SRWDビットとWP#信号を使用したSPI Flash Memoryのハードウェアプロテクトについて ー KBA227603

       

      【質問】

      SPI Flash Memoryに格納されたコードが悪意のあるアクセスによって、意図しない変更をされないように、BPビットを使用して、

      格納データをプロテクトしています。ハードウェアプロテクトする方法を教えてください。

       

      【回答】

      不揮発性Status Register Write Disable(SRWD) ビットとライトプロテクト(WP#) 信号を組み合わせることで、

      ブロックプロテクト(BP) ビットでプロテクトされたFlashエリアをより強固にハードウェアプロテクトできます。

      それはレジスタ内のBPビット(BP2, BP1, BP0) TBPROTビットを組み合わせて使用することによって、

      BPビットやTBPROTビットでプロテクト設定されたメインのFlashエリアを書き込みや消去動作から保護することができます。

      プロテクトするエリアの設定はステータスレジスタ内のBPビットの値によって決まり、ボトム(Low Address) 側からプロテクト、もしくは

      トップ(High Address) 側からプロテクトの設定はコンフィグレーションレジスタ内のTBPROTビットの値によって決まります。

      ステータスレジスタ内のBPビットのデフォルト値は “0” のため、プロテクトエリアは設定されていません。

      コンフィギュレーションレジスタ内のTBPROTビットのデフォルト値は “0” のため、トップ(High Address) 側からプロテクトされます。

       

      WP#Low(VIL) へドライブされ、SRWDビットの値が “1” に設定されている場合、ステータスレジスタとコンフィギュレーションレジスタへ書き込むことは出来ません。

      これによって、ステータスレジスタ内のBPビットとコンフィギュレーションレジスタ内のTBPROTビットもプロテクトすることができます。

      その結果、BPビットとTBPROTビットでプロテクト設定されている全てのFlashエリアはWP#Write Register(WRR) コマンド中にLowにドライブされていれば、

      データ変更から、より強固にプロテクトすることができます。

       

      SRWDビットのデフォルト値は “0” です。SRWDビットの値を “1” に変更するためには下記2つの方法があります。

      1. プログラマーによるFlash Memory単体状態での書き込み :

      Flash Memoryエリアへコードを書き込んだ後、プロテクトするFlash MemoryエリアをBPビット、及び TBPROTビットで設定します。

      その後、SRWDビットの値を “1” に設定後、WP#信号をグランドに落としたPCBに実装する方法があります。

      2. PCB実装された状態でのFlash Memoryへ書き込み :

      WP#信号をグランドに落としたPCBFlash Memoryを実装し、PCB実装された状態でFlash Memoryへコードを書き込みます。

      その後、プロテクトするFlash MemoryエリアをBPビット、及び TBPROTビットで設定した上で、SRWDビットの値を “1” に設定する方法があります。

       

      Quadモードが有効(CR[1] = 1) の場合、WP#の機能は使用できません。Quadモード時のWP#端子はIO2として動作します。

      従いまして、Quadモードが有効になっている場合は、WP#Low(VIL)によるステータスレジスタとコンフィギュレーションレジスタのプロテクトは機能しません。

       

      SWRDビット + WP#信号のハードウェアプロテクトは従来の方法です。Cypress S25FL-S、及び S25FS-Sシリーズはコード領域をプロテクトするために

      Advanced Sector Protection(ASP) の仕組みも提供しています。