Hi,
FlexSPI ROM APIのget_config機能の使用について質問があります。
RT1060では、イメージの最初の4KiB(0x60000000から始まる)にフラッシュ設定ブロックがあります。ただし、呼び出し時には
g_bootloaderTree->flexSpiNorDriver->get_config返された構成がフラッシュの構成と一致しませんが、これは一致すると想定していました。だから、私はその関数が実際に何をするのか疑問に思っています、それは1)フラッシュにある構成を返すのか、それとも2)フラッシュチップと通信して構成を決定するのか、それとも3)何か他のことをするのか?
感謝
ダニエル書
私も同じことを考えていたので、LUTなしで試してみましたが、うまくいきませんでした。私が動作させた最小のLUTは、読み取りコマンドを備えたものでした。私の仮定では、XIPを使用する場合は、コードをフラッシュチップから読み取る必要があるため、少なくとも読み取りコマンドが必要です。それがなければ、get_config走ることさえできません。
私も @MulattoKid の質問に対する答えの必要性を反響させたいと思います
特に、get_config() ROM APIは、QSPIまたはHyperFlashからの読み取り/プログラム/消去を可能にする場合に、アプリケーションがLUTを持つ必要さえなくしますか?また、これはFCBのイメージと何か関係がありますか?get_config() ROM API が有効な LUT を何らかの方法で取得できるのであれば、なぜ FCB が存在する必要があるのでしょうか。おそらく、そのJDECコマンドをサポートしていないフラッシュパーツの場合ですか?
get_config() ROM APIとLUT(さらにFCB)の必要性との間の相互作用がよくわかりません。
1060/1064アプリケーションがQSPIまたはHyperflashを使用する場合にLUTが必要かどうか(そしてその理由)を明確にしていただければ幸いです。
この情報を共有していただきありがとうございます、 @diego_charles!
こんにちは@MulattoKid
ご覧のとおり、bootROM はメモリから LUT 情報を取得し、関連する JEDEC SFPD 規格に準拠している場合は、その特定の構成を検出します。i.MX RT1170 ROMAPI デモの例を参照してください。
bootROM の get_config API を呼び出した後、FlexSPI LUT の内容が更新されていることがわかります。さらに、API が存在する 構成 構造は RAM 内にあり、後でこの例で使用されます。
bootROM開発チームは、市場では非常に広範囲のメモリメーカーになると考えていたため、JEDEC標準を使用できるため、メモリの構成を保存しないことを決定しました。
メモリ パラメータ検出の関連トピックとして、MCUXPresso IDE には、汎用フラッシュ ドライバまたは場合によってはより具体的なフラッシュ ドライバが統合されています。汎用ドライバーは、パラメーターの検出に bootROM を使用します。IDEユーザーガイドの次の章では、これを紹介しています。
これがお役に立てば幸いですので、まだ質問やコメントがある場合はお知らせください。
ディエゴ
さらに詳しく読むと、SFDP コマンドは LUT を返しますか。LUTのサイズである256バイトが返されるようですが、正しいですか?
一部の読み取りから、MCUは「Read JEDEC ID」コマンドを送信する可能性が高く、これによりJEDEC ID ++とフラッシュチップのサイズが返されるようです。これで、特定のチップのサイズがどのように決定されるかがわかりますが、コマンドLUTについてはどうでしょうか。ブート ROM には、サポートするさまざまなフラッシュ チップのテーブルがあり、JEDEC ID に基づいて正しい LUT テーブル バージョンへのルックアップを実行しますか。