Community Translation - Enable Password Protection to Lock Down Flash Memory - KBA227884

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
HiOm_1802421
Level 5
Level 5
Distributor - Marubun (Japan)
50 replies posted 50 questions asked 25 replies posted

Hi,

Currently I'm working on translation of this KBA.

Omoi

0 Likes
1 Reply
HiOm_1802421
Level 5
Level 5
Distributor - Marubun (Japan)
50 replies posted 50 questions asked 25 replies posted

Hi,

I tried to translate this KBA227884 into Japanese.

Enable Password Protection to Lock Down Flash Memory - KBA227884

==========

タイトル:パスワード保護を有効にしてフラッシュメモリをロックダウンする

バージョン:**

質問:

S25FS512Sを使用しています。ユーザーがメモリアレイの消去/プログラムを防ぐために、メモリアレイを保護するパスワードを設定する必要があります。管理者は、必要な時にソフトウェアを更新するために、メモリの保護を解除するパスワードを入力できます。パスワード保護機能を有効にするにはどうすればよいですか?

回答:

パスワード保護は、サイプレスの高度なセクタ保護(ASP)機能の一部です。ASP機能は、フラッシュメモリアレイを保護するための包括的なソリューションを提供します。ASPの詳細は、AN98551 -  Advanced Sector Protection (ASP) in Cypress Quad SPI, Octal SPI, and HyperFlash Device Fa...​ を参照してください。

このドキュメントはFS-Sファミリを例として、ASPパスワード保護モードの有効化の実践的な実装の助言を提供します。他のサイプレス フラッシュ ファミリの場合、手順は同じですが、コマンドとレジスタは異なる場合があります。コマンドとレジスタの詳細は、それぞれのフラッシュ ファミリ データシートを参照してください。

パスワード保護機能を有効にすると、OTPレジスタを設定されます。一度設定すると、元に戻せません。パスワード保護機能を有効化する前に、次を行ってください。(アプリケーションに該当する場合)

  1. 必要に応じて、CR1NV[5],[3],[2]、CR2NV、CR3NVおよびCR4NVのOTP構成ビットをプログラムします。
  2. 必要に応じて、セキュア シリコン領域(OTPエリア)をプログラムします。
  3. 必要に応じて、PPBPコマンドを介してPPBビットをプログラムします。
  4. DDR読み取りコマンドで使用する場合は、NVDLRをプログラムします。

パスワード保護機能を有効にするには、次を行います。

  1. パスワード プログラム コマンド(PASSP E8h)を使用してパスワード レジスタへ64ビットパスワードをプログラムします。
    1. PASSPコマンドの前にWRENコマンドが必要です。
    2. 完了(WIP)のポーリングが必要です。(他の不揮発性レジスタのプログラムと同じ)
        FS512Sデータシートの「Password Register」セクションを参照してください。
  2. パスワードプログラムが完了した後、ステップ1でプログラムしたパスワードが正しいかをパスワード (PASSRD E7h)を読み取って検証します。
    1. これは、パスワード保護モードを有効にする前に行う必要があります。パスワード保護モードが有効になると、もうパスワードは読めなくなります。
    2. アプリケーションが64ビットのパスワードを「記憶」していることを確認してください。パスワードを紛失しても、パスワード レジスタから取り戻すことはできません。
  3. ASPPコマンド(2Fh)またはWRARコマンド(71h)を使用して、ASPレジスタ(ASPR)をFFFBh(ASPR[2:1] = 01b)にプログラムします。

例A:セクタを保護し、パスワード保護を有効にして、メモリアレイをロックダウンするコマンドのシーケンス

  1. WRENコマンド
  2. PPBPコマンド(FDh)または4PPBPコマンド(E3h)。アプリケーションで使用しているアドレスモードに依存します。このコマンドのアドレスは、保護するセクタのアドレスです。
  3. PPBP操作完了をWIPビットで確認するため、ステータス レジスタ1を読み取ります。(通常のページプログラム操作と同じ)
  4. 保護する全セクタに、ステップ1から3を繰り返して保護します。
  5. WRENコマンド
  6. PLBWRコマンド(A6h)でPPB Lockビットを0(ロック)にクリアします。
  7. PLBWR操作完了をWIPビットで確認するため、ステータス レジスタ1を読み取ります。
  8. パスワード保護が有効になるとPPB Lockビットは電源投入またはハードウェア リセットごとにデフォルトで「0」にクリアされるため、ステップ5-7は省略できます。
  9. WRENコマンド
  10. PASSPコマンド(E8h)で64ビットパスワードをプログラムします。
  11. PASSP操作完了をWIPビットで確認するため、ステータス レジスタ1を読み取ります。
  12. PASSRDコマンド(E7h)でプログラムした64ビットパスワードが正しいか、読み出して検証します。
  13. WRENコマンド
  14. ASPPコマンド(2Fh)またはWRARコマンド(71h)でASPレジスタ(ASPR)をFFFBh(ASPR[2:1] = 10b)にプログラムします。
  15. ASPP操作完了をWIPビットで確認するため、ステータス レジスタ1を読み取ります。
  16. 電源再投入またはハードウェアリセットを行います。PPB Lockビットは「0」にクリアされPPBビットをロックし、保護されたセクタはロックダウンされます。パスワード保護が有効になった直後にこのステップを実行し、電源再投入かハードウェアをリセットする前にPPBビットを変更する場合、ステップ5-7は不要です。

例B:保護されたセクタをロック解除してメモリアレイを更新するコマンドのシーケンス

  1. PPBRDコマンド(FCh)または4PPBRDコマンド(E2h)でPPB値を読み取ります。このコマンドで使用するアドレスは、PPBが関連付けられているセクタ アドレスです。たとえば、アドレスが0x00000000の場合、読み取りPPBはセクタ0です。(0x00 - 保護、0xFF - 保護解除)
  2. 全セクタの保護状態をRAMに記録するため、全セクタに対してステップ1を繰り返します。
  3. PASSUコマンド(E9h)
  4. PASSU操作完了をWIPビットで確認するため、ステータス レジスタ1を読み取ります。
  5. PASSUコマンドが正しく完了すると、PPB Lockビットが自動で「1」に変更されます。
  6. WRENコマンド
  7. PPBEコマンド(E4h)でPPBアレイ全体(すべてのPPB)を0xFFに消去します。(すべてのセクタ保護をロック解除します) (PPBアレイは不揮発性アレイであるため、個々のPPBを0x00から0xFFに変更する方法はありません)
  8. 所望のセクタをデータ更新(消去/プログラム)します。
  9. ステップ2でRAMに記録されたPPB値に従い、PPBを0x00に書き戻します。(例Aのステップ1-3)
  10. PPB Lockビットを「0」にクリアもしくは、単純に電源再投入またはハードウェア リセットします。

==========

BR,

Omoi

0 Likes