こんにちは。このソースからボードを起動するために、I2C eeprom に RCW と BL をロードする方法を知りたいです。
私はこのThreadを見つけました: https://community.nxp.com/t5/QorIQ/LS1028-RCW-generation-to-boot-from-I2C-EEPROM-to-NOR-Flash/mp/145... 、しかし、私も行き詰まってしまいました。
BL2 のどのバージョン (bl2_emmc、bl2_sd など) をロードする必要があるかを知りたいのですが、Yocto コンパイルでは bl2_i2c が表示されません。
これを生成するには何かを変更する必要がありますか?それとも必要ありませんか?
ありがとうございます
イムグルザ
これは古いThreadだとはわかっていますが、このチケットと同様の問題が発生しています。起動可能な SD カードから u-boot を使用して rcw および bl2 bin を eeprom にプログラムする手順を実行し、EEPROM にデータが存在することを確認しました。スイッチを再構成して EEPROM から起動し、j26 の i2c トラフィックをキャプチャすると、次のようになります。
EEPROMが応答していないようです。
これを主張どおりに動作させる方法を見つけるのをCAN手伝ってもらえますか?
こんにちは、
これを試してから時間が経ちましたが、うまくいきません。
コネクタ J26 の I2C 信号をチェックしています。ボードを起動すると、I2C コマンドが 1 つだけ表示されます。このコマンドは、0x50 アドレスへの書き込み要求です。EEPROMからのACKがありません:
これは、I2C マルチプレクサが適切に構成されておらず、EEPROM が接続されているバス 0 に接続されていないことを意味します...
LS から EEPROM へのパスを有効にするには、CPLD でこのデバイスを構成する必要があると思います。
それを動作させるための回避策はありますか?これは既知の問題ですか?
ありがとうございます
イムグルザ
RCW イメージを i2c eeprom に書き込めるかどうかを確認してください。
=> tftp 0xa0000000 nxa22585/ls1028ardb/rcw_1500_gpu600.bin
=> i2c 書き込み 0xa0000000 0x50 0.2 0x10c
=>リセット
=> i2c 読み取り 0x50 0.2 0x10c 0xc0000000
=> md 0xc0000000
c0000000: aa55aa55 80100000 3c004010 00000030 UU....@.<0...
c0000010: 00000000 00000000 00000000 018f0000 ................
c0000020: 0030c000 00000000 020031a0 00002580 ..0......1...%..
c0000030: 00000000 00003296 00000000 00000010 .....2..........
c0000040: 00000000 00000000 00000000 00000000 ................
c0000050: 00000000 00000000 00000000 00000000 ................
c0000060: 00000000 00000000 00000000 00000000 ................
c0000070: 200e705a 00000000 bb580000 00000000 Zp. ......X.....
c0000080: 00000000 00000000 458ca4b5 334008bc ...........E..@3
c0000090: 00000001 33400154 47474747 33400158 ....T.@3GGGGX.@3
c00000a0: 47474747 334008bc 00000000 335008bc [email protected]
c00000b0: 00000001 33500154 47474747 335008bc ....T.P3GGGG..P3
c00000c0: 00000000 33400890 00800401 33500890 [email protected]
c00000d0: 00800401 33400098 00000000 33500098 [email protected]
c00000e0: 00000000 31e00900 00000004 31e00400 .......1.......1
c00000f0: 1800d000 8000000a 00000400 1800d000 ................
=>
ping @yipingwang
こんにちは@yipingwang
bl2.bin の書き込み中にボードがフリーズしてしまい、正しくロードされていないと思われます...
以下キャプチャです:
LS1028ARDB の回路図を確認すると、EEPROM への書き込みを許可するにはピン sw_cfg_wp を '0' にする必要があると思います。
私もそれを設定しましたが、書き込みプロセスがフリーズし、その後、ブート オプションを eeprom に変更すると、印刷された文字が表示されません。
何が問題なのか分かりますか?
よろしくお願いいたします。
イムグルザ
https://community.nxp.com/t5/QorIQ/LS1028-RCW-generation-to-boot-from-I2C-EEPROM-to-NOR-Flash/mp/145...に添付されている i2c_ls1028a.zipのイメージをお試しください。
=> tftp 0xa0000000 rcw_1500_gpu600.bin
=> i2c 書き込み 0xa0000000 0x50 0.2 10c
=> tftp 0xa0000000 bl2.bin
=> i2c 書き込み 0xa0000000 0x50 0x400.29431
FIP イメージを NAND フラッシュの 0x100000 にフラッシュしてください。
ping @yipingwang 、何が起こっているのかアイデアがありますか?
よろしくお願いいたします。
イムグルザ
こんにちは、
ご対応ありがとうございます。
実行すると次のようになります:
=> i2c 書き込み 0xa0000000 0x50 0x400.20x13431
プロセッサがハングアップするので、bl2 バイナリが eeprom に適切にフラッシュされているかどうかわかりません...
i2c 書き込みコマンドでサイズを 16 進形式で書き込みました。終了したように見えたら、ブートスイッチを変更しましたが、シリアルセッションには何も印刷されませんでした...
もう一つ質問があります。FIP を再フラッシュする必要がありますか?私のCASE、uboot/kernel/rtfs を保存する場所として NAND を使用したいと思います。
ありがとうございます
イムグルザ
更新された手順は次のとおりです。
$ bitbake rcw -c cleansstate
$ bitbake rcw -c パッチ
RCWソースコードフォルダbuild_ls1028ardb/tmp/work/ls1028ardb-fsl-linux/rcw/git-r0/git/ls1028ardb/R_SQPP_0x85bb/に移動し、 rcw_1500_gpu600.rcwファイルの末尾に次のコマンドを追加します。
.pbi
0x01e00400,0x1800d000を書き込む
ブロックコピー 0xa,0x400,0x1800d000,0x9435
。終わり
CCSR書き込みコマンド:
DCFG にあるブート ロケーション ポインター下位アドレス (BOOTLOCPTRL) レジスタでブート ロケーション ポインターを 0x1800d000 に設定します。
ブロックコピーコマンド:
ブロックコピー 0x0a,0x400,0x00100000,0x9400
ソース: I2C EEPROM = 0xa
送信元アドレス: 0x400
宛先アドレス: OCRAM (0x100000)
ブロックサイズ: BL2バイナリのサイズ(バイト単位)
$ ビットバック rcw
$ bitbake atf -c cleansstate
$ ビットベイクATF
build_ls1028ardb/tmp/deploy/images/ls1028ardb/atf/ にある atf イメージ bl2_flexspi_nor.pbl と fip_uboot.bin を取得します。
LS1028ARDBのU-BootでI2Cを使用してEEPROMをプログラミングする
=> i2cプローブ
有効なチップアドレス: 00 50 52 53 57 66 67 77 7C
=> i2c 書き込み 0xa0000000 0x50 0.2 0x11c
=> i2c 読み取り 0x50 0.2 0x114 0xc0000000
=> i2c 書き込み 0xa0000000 0x50 0x400.2