i.MX8ULPでのSPI NANDブートこんにちは、
i.MX8ULPのSPI NANDからブートしようとしています。
evkにはSPI NORが搭載されており、そこから起動することはできましたが、当社のボード上のNANDで試したところ、うまくいきませんでした。BT*_CFG*ピンを設定したところ、ブートROMがNANDを読み取ろうとしていることは確認できましたが、M33コアもA35コアも起動しないようなので、ブートイメージが正しくないのではないかと考えています。
imx-mkimage flash_singleboot_m33_flexspiターゲットを使用してイメージを構築していますが、このターゲットはヘッダーブロックとしてfspi_headerファイルを使用します。しかし、このファイル内のコメントを見ると、これはシリアルNOR用でありNAND用ではないようですので、このflexspi構成ブロックヘッダーについて調べています。
ターゲットに適したヘッダーファイルを作成するにはどうすればよいでしょうか?
kobs-ngを見つけたのですが、8ulp向けには設計されていないようです(GPMI NANDコントローラーがなく、軽くパッチを適用しても動作しません)。
8ulpのドキュメントにも、FCFBブロックに関するドキュメントは見当たりませんでした。i.MX 8M Mini Applications Processorのリファレンスマニュアル(およびu-boot mkimageにそれに関するオプションを追加するu-bootパッチ)でそれに関するドキュメントを見つけましたが、たとえそれが本当に同じフォーマットだとしても、i.MX8ULPでそれを使用する方法(特にどのLUTテーブルを使用するか)を教えていただけると助かります。
ありがとうございました。
ドミニク・マルティネ
Re: SPI NAND boot on i.MX8ULPメッセージを見逃してしまい申し訳ありません。そちらの8ULPとSPI-NANDの回路図の一部を共有していただけますか?また、エラーログ全体も共有していただけますか?
Re: SPI NAND boot on i.MX8ULPご回答ありがとうございます。
ボードはSDカードから正常に起動するため、SoC/メモリに明らかな問題はありません(BT*_CFG*からの切り替え)。
BT CFGの正確なピンと使用されているピンについては後ほど投稿しますが、SPI転送を見ると起動時にNANDが読み取られていることがはっきりと確認できるので、この部分は恐らく正しいと思われます。まずはfspi_headerを確認したいと思います。
昨日さらに調べてみたところ、SPSDKのnxpimageにこのためのコマンドがあることが分かりましたが、8ulpのnorフラッシュしかサポートしていないようです。そのため、依然として様々なパラメータを手動で試すしかなく、デバイス上で実行できるkobsのようなドキュメントやツールがあればありがたいです。
ありがとうRe: SPI NAND boot on i.MX8ULP遅れてごめんなさい。
参考までに、ボードの構成は以下のとおりです。
- ブートヒューズをクリアしました(受領時の初期状態)。
- QSPI NANDは以下のように接続されます。
| PTD12(FLEXSPI2_A_SS0_b) | /CS |
| PTD13(FLEXSPI2_A_SCLK) | CLK |
| PTD14(FLEXSPI2_A_DATA3) | /HOLD(IO3) |
| PTD15(FLEXSPI2_A_DATA2) | /WP(IO2) |
| PTD16(FLEXSPI2_A_DATA1) | DO(IO1) |
| PTD17(FLEXSPI2_A_DATA0) | DI(IO0) |
- ブートピンは以下のとおり
- BOOT_MODE0が開いている(0)、BOOT_MODE1がプルアップされている(1)=ピンからブートする
- BT0_CFG0がプルダウンされました(低電力ブートなし)
- BT0_CFG1 がダウンロードされました (デュアルブート M33/A35 "eMMC から"...)
- BT0_CFG2は無視されました
- BT0_CFG3がプルダウンされ、CFG4がプルアップされました(m33ブートインターフェース。デュアルブートでは無視すべきでしょうか?)。
- BT0_CFG5は無視されました
- BT0_CFG6/7は両方ともプルダウンされています(24MHz外部OSC)。
- BT0_CFG[8-11]は無視されました
- BT0_CFG12/13 はフローティング、CFG14 はプルダウンされています (「flexspi デバイスタイプ」が m33 とは独立したブート設定なのか、両方に影響するのかは不明です。念のため、011 (4B READ(0x13) でフラッシュ、これは当社の NAND がサポートしているもの) に設定してみましたが、目に見える違いはありませんでした)。
- BT0_CFG15は無視されました
- BT1_CFG[0-3]は無視されました
- BT1_CFG4 がダウンロードされました (eMMC 高速ブートが無効になっています)
- BT1_CFG5 プルダウン (速度は通常)
- BT1_CFG6/7 がプルダウンされました (バス幅 4)
- BT1_CFG8は無視されました
- BT1_CFG9が起動しました(SDカードブート、SPIブートモードでは無視してください)
- BT1_CFG10/11/12はそれぞれ下落/上昇/下落しました(USDHC2も同様に無視してください)。
- BT1_CFG13/14はそれぞれプルアップ/プルダウンされます(SPI NAND)。
- BT1_CFG15 がプルダウンされました (SD ブートへのリカバリ)
他に確認すべき点があれば教えてください。そうでなければ、フラッシュブート設定ブロックに関するドキュメントに引き続き興味があります。
よろしくお願い申し上げます。
Re: SPI NAND boot on i.MX8ULPSPI NANDとブートモードに関するハードウェア設計はどうでしょうか?ボードには、eMMCやSDカードなど、他のフラッシュメモリが搭載されていますか?はいの場合、システムが起動できるかどうか試してみていただけますか?
Re: SPI NAND boot on i.MX8ULPこんにちは、 @Rita_Wang
お返事ありがとうございます。私はミゾ族で、martinetdの同僚です。
現在、私たちが具体的に知りたいのは、SPI NAND用のブートイメージファイルを作成する方法です。
リファレンス・マニュアルには、FlexSPI2にコネクテッドされたSPI NANDからのブートがサポートされていると記載されています。しかしながら、イメージファイルヘッダーに必要な正確なフォーマットが不明なため、現時点ではブートイメージを作成することができません。
NXPは既に内部的にSPI NANDからi.MX8ULPの起動に成功していると想定します。画像ファイルのヘッダー形式を共有していただくか、このヘッダーを生成するために使用したソフトウェア/ツールをご提供いただければ大変ありがたいです。
ご支援ありがとうございます。
Re: SPI NAND boot on i.MX8ULPこんにちは、 @Rita_Wang さん。
何か進展はありましたか?この件で行き詰まっており、どんなご支援でも大変ありがたく思います。
よろしくお願いします!
Re: SPI NAND boot on i.MX8ULP私はGolden Shiny Oscilloscope ™にアクセスし、その構成で起動すると、チップがNANDの最初の部分を正常に読み取ることを確認しました(ブロック0に対して0x13の読み取りを発行し、NANDがビジー状態でなくなるまでステータスレジスタをポーリングし、その後少なくとも2KBのデータを読み取ります。特に、読み取られたデータは、1KBのゼロとFCFBヘッダーが続くimx-bootイメージの開始部分と一致することを確認しました)。
この時点ではそれ以上何も起こりません。スコープの扱いに慣れていないため、後でさらにデータが読み込まれたかどうかは判断できませんが、読み取りが停止したようです。そのため、私が書いた fspi_header が正しいかどうかを確認したいです (シリアル NOR の 0x01 の代わりにシリアル NAND の 0x02 を入力し、SFlashA1Size、ページ サイズ、セクタ サイズ、ブロック サイズも入力しましたが、それ以外は imx-mkimage リポジトリにあったものをそのまま残しました)。
NAND用の有効なFSPIヘッダーの書き方について、何かヒントをいただけるとありがたいです。
ありがとうRe: SPI NAND boot on i.MX8ULPこんにちは、 @Rita_Wang さん。
この件に関する最新情報はありますか?
i.MX 8ULPでSPI NANDからのブートがサポートされていない場合、できるだけ早く代替方法の調査を開始する必要があります。このSoCでSPI NANDブートが実際に可能かどうか、少なくとも確認していただけますか?
uboot-imxのソースコードにあるarch/arm/mach-imx/cmd_nandbcb.cを確認したところ、imx8mn、imx8qx/qmなどがサポートされていることがわかりました。このことから、SPI NANDブートは可能であると推測される。
また、i.MX 8ULPと全く同じSPI NANDブート仕様を持つi.MXシリーズのプロセッサが他に存在する場合、それらを参考にさせていただきたいので、どの製品か教えていただけますでしょうか?
ご支援いただき、改めて感謝申し上げます。
Re: SPI NAND boot on i.MX8ULP私も試してみます。完了したらまたご連絡します。
Re: SPI NAND boot on i.MX8ULPこんにちは、 @Rita_Wang さん。
最新情報のご提供ありがとうございます。
私は既に、SPI NANDフラッシュを搭載したi.MX8ULPカスタムボードを自作しました。したがって、ブートイメージの作成方法とプログラム方法を教えていただければ、すぐにテストと検証を行うことができます。
事前に手順と情報だけを共有していただくことは可能でしょうか?
よろしくお願いします、
ミゾ族Re: SPI NAND boot on i.MX8ULPこんにちは、 @Rita_Wang さん。
SPI NANDブートがi.MX91と同じ仕様でサポートされているという情報を受け取りました。こちら側でも導入を試みます。
よろしくお願いします、
ミゾ族Re: SPI NAND boot on i.MX8ULPi.MX8ULP ROMはSPI NANDブートをサポートしていますが、EVKはSPI NORのみをサポートしています。SPI NANDを使用したい場合は、 i.MX91のコードを参照してください。詳細はメールでご説明しました。