2417681_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2417681_ja-JP

2417681_ja-JP

LS1046Aカスタムボード:PBL SD_CLKが195kHzから24kHzに低下し、その後アイドル状態になる。HRESET_BがLOWのままになる。

こんにちは、

これは先ほどのThread(6月は不在)に続くものです。 https://community.nxp.com/t5/QorIQ/LS1046A-custom-board-cold-boot-fails-from-eMMC-SD-and-QSPI/m-p/24...


概要

SDカードからのネイティブコールドブートは、HRESET_BがLOWになると停止します。デバッガ支援ブート(CodeWarrior rcw.apply())は、同じRCW、PBI、およびカードを使用してU-Bootに到達します。ネイティブストール中、PBLは約195kHzでSD_CLKを開始し、コマンドフレームを送信します。DAT0はトグルしません。その後、クロックは停止し、約24kHzで短時間再始動し、バスはアイドル状態になる。これをRM表4-8「RCW州のタイミング」に照らし合わせて解釈するにあたり、ご協力をお願いいたします。

セットアップ(ボード2、リセット作業なし)

  • LS1046AXE8T1A Rev 1.0 (SVR 0x87070010)CPLDは使用せず、STM32 BMCが電源シーケンスとリセットを行います。
  • cfg_rcw_src=0x40 (SW8 = 0010 0000、SW5 極 1 OFF)。
  • 主要基準:100MHz差動。時計選択ストラップ IFC_WE_B (cfg_eng_use0)。DDR参照:差分。
  • SDカード:同じカードでLS1046ARDBをU-Bootで起動できます。
  • EVDD = 3.3 V。SD/eMMCマルチプレクサはSDスロットに設定されています。RCW EVDD_VSEL = 0b10。
  • RCW:ハードコードされた0x9F例からコピーされたPLL比率(プラットフォーム400MHz、CPU1300MHz、PLL2 1000MHz / FMan 500MHz、DDR 1600MT/s)、両方のSerDesは無効化されています:

0810000d 0a000000 00000000 00000000
00000000 00f00012 60040000 c1000000
00000000 00000000 00000000 0001c83e
00004504 24001102 00000096 00000001

  • PBI:前のThreadのストリームと同じで、08610040 6d8bdebf(END/CRC)で終わります。
  • リセット回路:
    • PORESET_Bは、1.8Vへの10kΩプルアップ抵抗を備えたオープンドレインMOSFETによって駆動される。
    • TRST_Bは個別に制御され、PORESET_Bの1ms後に解放されます。
    • HRESET_Bには4.7kΩのプルアップ抵抗があります。

ネイティブのコールドブート観測(デバッガ接続なし)

時間は目安です。t = 0 は ASLEEP の立ち下がりエッジであり、これは別のキャプチャで PORESET_B の立ち上がりと一致しました。

  • ≈ +0.5 ms: SD_CLK は 192〜200 kHz (我々の計算では約 100 MHz/512) で開始します。CMDはアイドル状態です。
  • ≈ +3.2 ms: CMD フレームが開始されます。フレームの形状はCMD0(40 00 00 00 00 95)のように見えますが、まだデコードしていません。
  • ≈ +9.6 ms: SD_CLK は約 1 ms 停止します。
  • ≈ +10.6 ms:クロックなしで CMD と DAT0 にいくつかの遷移が現れます。
  • ≈ +10.7 ~ +11.2 ms: SD_CLK は約 16 サイクルにわたって 24.39 kHz (約 100 MHz/4096) で動作し、CMD フレームはありません。
  • ≈ +11.0 ms: ASLEEP が HIGH になります。
  • その後:残りの250ミリ秒の間、CLK、CMD、DAT0の活動は発生しない。HRESET_BはLOWのままです。
  • HRESET_BはPORESET_Bが解放される前はLOWであり、解放後もLOWのままです。
  • カードが挿入されている間、RESET_REQ_BはHIGHのままです。カードがない場合、RESET_REQ_BはLOWになります。

1000328713.jpeg


1000328739.jpeg


1000328740.jpeg


1000328741.jpeg


失速中のCCSアクセス
CCS::config_chain {ls1043a DAP SAP2} が受け入れられます。ccs::display_mem 2 0x01ee0000 4 0 1 は「スキャンタイムアウト」を返します。

デバッガー支援ブート(動作確認済み)
set_source(0x40)とset_data({13: 0x00004504})(カード上の値と同じ)を実行してからapply()を実行します。RCWSRはカードと照合します。U-BootはCPU 1300、プラットフォーム400、DDR 1600、FMan 500 MHzを報告しています。SDの初期化とFIPのロードに成功しました。

質問

  1. 表4-8「RCWステートタイミング」によると、100MHzのSYSCLKではどのようなSD_CLK周波数と遷移が見られるでしょうか?「~195 kHz → 停止→ ~24 kHz バースト→アイドル」は、カード識別中にPBLがタイムアウトされた、eSDHCがリセットされた、あるいは後期の状態に到達したことを意味しているのでしょうか?
  2. PBLはどのSDコマンドシーケンス(CMD0/CMD8/ACMD41…)を発行し、その際の再試行回数とタイムアウト回数はどのくらいですか?カードが応答しない場合、RESET_REQ_Bはアサートすべきでしょうか?また、どのくらいの時間後にアサートすべきでしょうか?
  3. HRESET_BがLOWの場合、SAP2で「スキャンタイムアウト」が発生するのは想定内ですか?もしそうなら、この状態でPBLの進捗を示せるJTAGアクセシブルな状態は何でしょうか?
  4. ゆっくりとしたPORESET_B上昇(仕様≤1 SYSCLK)がこの挙動を引き起こす可能性はありますか?
  5. カードなしでハードコードされた0x9F: PORESET_B解放後、HRESET_BがHIGHになりませんでした。これはどのように解釈すべきでしょうか?
Re: LS1046A custom board: PBL SD_CLK drops 195 kHz to 24 kHz, then idle; HRESET_B stuck LOW

こんにちは、

波形は、デバイスがRCW/PLL遷移を完了しなかったことを示している。まだ通常のPBI/eSDHC動作段階には至っていません。

1. 100 MHz SYSCLK での SD_CLK の想定値

RCWの積載について:

  • SD_CLK = SYSCLK / 512
  • 100 MHz / 512 = 195.3125 kHz

RCWロードとPLLロック後:

  • HRESET_B解除されるべきである。
  • プラットフォームの時計がスイッチします。
  • SD_CLK = プラットフォーム clock / 80.
  • 400 MHzのプラットフォームクロックの場合、これは約 5 MHzに相当します。NXPはこの遷移を、PLLロックとRCWロードが完了したことを示す兆候であると説明しています。

そのため、

~195 kHz → stop → ~24 kHz burst → idle
 
 

これは、文書化された後期の状態遷移を表していません。24 kHz の値は、約100 MHz / 4096です。これはリセット/デフォルト分周器または再起動のアーティファクトとして扱い、PBL が PBI のロードに達したことの証明とはみなさないでください。クロックだけではSD識別タイムアウトとeSDHCのリセットを区別できません。

2. SDコマンド、再試行、およびRESET_REQ_B

予想されるSD識別の流れは大まかに以下の通りです:

CMD0
CMD8
CMD55 + ACMD41      repeated until the card is ready
CMD2
CMD3
CMD7
then block reads for RCW/PBI data
 
 

CMD1は通常、eMMCの初期化コマンドであり、SDカードの初期化コマンドではありません。

正確なLS1043A ROMリトライ数やコマンドごとのタイムアウトは、NXPのサポート資料には記載されていません。これらは波形から推測すべきではありません。NXPのドキュメントでは端末の挙動が説明されています。選択したSDソースが利用できない場合、SoCは他のソースにフォールバックしません。 RESET_REQ_B を主張して停止します。

したがって、カードが完全に存在しない場合、 RESET_REQ_B最終的にアサートされるはずです。合否判定の基準値として使用できる、「正確にNミリ秒後にアサートする」という固定値は文書化されていません。HRESET_Bローのままで、かつこれがハイのままである場合、デバイスはまだターミナルPBLエラーパスの手前にあるか、ボードがRESET_REQ_Bをマスク/干渉している可能性があります。

3. SAP2「スキャンタイムアウト」

はい、 HRESET_Bがまだ有効になっている間は、これは想定される動作です。同じリセット署名—PORESET_B が解放され、 HRESET_B 低、 RESET_REQ_B 高、デバッグパス経由でプロセッサにアクセスできない—は早期リセット/起動条件に関連付けられています。

SAP2が利用可能になるまでは、PBLの進捗状況を報告する信頼できるCCSRレジスターは存在しない。使用:

  • ポアセットB
  • hreset_b
  • RESET_REQ_B
  • 眠っている
  • CLK_OUT (設定されている場合)

RCWオーバーライド/safe-RCWまたは RESET_REQ_Bの隔離によってデバッグアクセスが確立されたら、以下を検査します。

  • RSTCR
  • RSTRQSR
  • RSTRQPBLSR
  • RSTRQMR

NXPはアクセス可能な場合にこれらのリセットレジスタ RESET_REQ_B 特に推奨しています。

4. PORESET_Bの上昇が遅い

はい。遅いまたは形状の悪い PORESET_B リリースはリセット初期化タイミングに違反し、誤ったストラップ、クロック、PLL サンプリングの原因となることがあります。100 MHz の SYSCLK の場合、1 つの SYSCLK の公称制限は約10 nsです。リセットジェネレータ出力だけでなく、LS1043Aのピンで実際の電圧変動と立ち上がり時間を直接確認してください。

また、 RESET_REQ_B が PORESET_Bにフィードバックしていないかも確認してください。NXPはブートアップ時に分離オプションを推奨しています。なぜなら、起動失敗がリセットループを起こしてJTAGアクセスを妨げる可能性があるからです。

5. 0x9Fテストの意味

0x9FはハードコードされたRCW/デバッグ識別子です。有効なクロックとリセットシーケンスがあれば、SDカードからRCWを読み取る必要性がなくなるはずです。したがって、カード HRESET_B 装着されていなくてもまだ起こらない場合は、 故障はSDカード識別よりも前から起こっている可能性が高いです。

  • SYSCLK/差動クロックの選択または品質
  • PLLロック
  • RCWストラップの解読
  • 電気的なタイミングをリセットします
  • フィードバックまたはJTAG/TRST状態のリセット

つまり、0x9Fという結果は、「カードの欠落」が主な原因であるという説に反論するものである。まず、 HRESET_B 0x9Fで立ち上がり、リセット/クロック設定が正常であることを確認してください。その後、SD RCWのロードに戻ります。

よろしくお願いします。

Tags (1)
No ratings
Version history
Last update:
12 hours ago
Updated by: