こんにちは、チーム
RM では、SRAM 範囲を初期化する手順が次のように説明されています。
ここで説明するマッピングルールは1 -> 64バイト(0x40)です。
示されているビット演算は、PRAMIASレジスタとPRAMIAEレジスタの範囲を定義するために実行されます。これはSRAMC、SRAMC_1、SRAMC_2、SRAMC_3では正常に動作するようですが、STDBY_SRAM_CFGでは動作しません。
これは私とお客様によって確認されており、彼らは RM 内の計算を使用して 32K の STDBY_SRAM を初期化しようとしていました。
プラミアス = 0
PRAMIAE = 0x1FF
ただし、0〜0x1FF0 (8K) の範囲のみが初期化されました。
そして、PRAMIAE = 0x7FF を使用すると、完全な範囲が初期化されました。
SO、スタンバイSRAMの実際のマッピングルールは1 -> 16バイト(0x10)です。
https://github.com/nxp-auto-linux/arm-trusted-firmware/blob/c9a7f81230064d21e403cfc315cbd3ffdc18752f...で 0x7FF が定義されているのを見つけました。
#SSRAM_MAX_ADDR 0x7FF を定義します
私の質問は次のとおりです:
よろしくお願いいたします。
天祥
こんにちは、ティエンシャンさん
残念ながら、そのようなドキュメントはありません。これについてはハードウェア担当者に問い合わせる必要があります。検証チームがこの式を使用しており、このCASEでは機能するようです: https://bitbucket.sw.nxp.com/projects/AMPFVAL/repos/auto-fval/browse/validation/sramc/driver/inc/sra... 。それが正しいかどうかは分かりません。SRAM/SSRAM の初期化の正しい設定を得るために、ハードウェア チームのメンバーと話し合いました。
SSRAM_MAX_ADDR の名前に関しては、名前を変更するかどうかはわかりません。これは 1 回だけ使用され、 clear_sramc_rangeへのパラメーターとして指定されます。clear_sramc_range のパラメーターはオフセットとして命名されているSO、正確なアドレスではないことを意味します ( clear_sram_rangeとは異なります)。
よろしくお願いします、
アンドレイ