こんにちは、皆さん。
i.MX8MM EVK に基づいて設計した i.MX8MM ベースのボードに問題があります。
変更は最小限ですが、EVK の 2 つの USB-C コネクタではなく、電源とデータに 1 つの USB-C コネクタを使用するという点が 1 つの変更点です。
標準の Yocto イメージを起動すると、Linux カーネルの起動に約 2.5 秒かかり、その後リセットされることがわかりました。
私はフォーラムでこの議論を見つけ、これらのパッチを実装しました
https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX8MP-USB-PD-realized/ta-p/1531209
これらの変更により、USB-C ケーブルから直接ボードに電力を供給して起動できるようになります。
ただし、ハブをボードに接続し、USB-C ケーブルからそのハブ (およびボード) に電源を供給すると、再び起動に約 2.5 秒かかり、その後警告なしにリセットされます。
良いブート(USB-C直接コネクテッド)は次のようになります
「」
[ 2.556356] tcpci 1-0050: 電圧/電流制限の設定 0 mV 0 mA
[ 2.556364] tcpci 1-0050: 極性0
[ 2.557998] tcpci 1-0050: mux状態0、usb-role 0、方向0を要求しています
[ 2.559340] tcpci 1-0050: 状態変更 INVALID_STATE -> SNK_UNATTACHED
[ 2.559685] ランダム: 高速初期化完了
[ 2.560044] tcpci 1-0050: CC1: 0 -> 0、CC2: 0 -> 0 [状態 SNK_UNATTACHED、極性 0、切断]
[ 2.560050] tcpci 1-0050: 1-0050: 登録済み
[ 2.568676] imx6q-pcie 33800000.pcie: リンクアップ
[ 2.570054] ALSAデバイスリスト:
[ 2.570058] #0: imx-spdif
[ 2.570060] #1: imx-audio-micfil
[ 2.570063] #2: bt-sco-audio
[ 2.570065] #3: wm8524-audio
[ 2.575605] tcpci 1-0050: 電圧/電流制限の設定 0 mV 0 mA
[ 2.633046] tcpci 1-0050: 極性 0
[ 2.641245] tcpci 1-0050: mux状態0、usb-role 0、方向0を要求しています
[ 2.650541] tcpci 1-0050: cc:=0
[ 2.654583] tcpci 1-0050: 保留中の状態変更 PORT_RESET -> PORT_RESET_WAIT_OFF @ 100 ms
[ 2.665982] tcpci 1-0050: CC1: 0 -> 0、CC2: 0 -> 0 [状態 PORT_RESET、極性 0、切断]
[ 2.677471] imx6q-pcie 33800000.pcie: リンクアップ
[ 2.681841] imx6q-pcie 33800000.pcie: リンクアップ、Gen2
[ 2.762788] tcpci 1-0050: 状態変更 PORT_RESET -> PORT_RESET_WAIT_OFF [100 ms 遅延]
[ 2.770991] tcpci 1-0050: 保留中の状態変更 PORT_RESET_WAIT_OFF -> SNK_UNATTACHED @ 920 ms
[ 2.793168] imx6q-pcie 33800000.pcie: PCIホストブリッジからバス0000:00
[ 2.799538] pci_bus 0000:00: ルートバスリソース [バス 00-ff]
[ 2.805062] pci_bus 0000:00: ルートバスリソース [io 0x0000-0xffff]
[ 2.811270] pci_bus 0000:00: ルートバスリソース [mem 0x18000000-0x1fefffff]
[ 2.818215] pci 0000:00:00.0: [16c3:abcd] タイプ01 クラス0x060400
[ 2.824248] pci 0000:00:00.0: レジスタ 0x10: [メモリ 0x00000000-0x000fffff]
[ 2.830657] pci 0000:00:00.0: reg 0x38: [メモリ 0x00000000-0x0000ffff 設定]
[ 2.837395] pci 0000:00:00.0: D1をサポート
[ 2.841409] pci 0000:00:00.0: PME#はD0 D1 D3hot D3coldからサポートされています
[ 2.849459] pci 0000:01:00.0: [8086:2725] タイプ00 クラス0x028000
[ 2.855560] pci 0000:01:00.0: reg 0x10: [メモリ 0x00000000-0x00003fff 64ビット]
[ 2.862716] pci 0000:01:00.0: PME#はD0 D3hot D3coldからサポートされています
[ 2.883328] pci 0000:00:00.0: BAR 0: 割り当て済み [mem 0x18000000-0x180fffff]
[ 2.890136] pci 0000:00:00.0: BAR 14: 割り当て済み [mem 0x18100000-0x181fffff]
[ 2.897058] pci 0000:00:00.0: BAR 6: 割り当て済み [mem 0x18200000-0x1820ffff pref]
[ 2.904310] pci 0000:01:00.0: BAR 0: 割り当て済み [mem 0x18100000-0x18103fff 64ビット]
[ 2.911985] pci 0000:00:00.0: PCI ブリッジから [バス 01-ff]
[ 2.917348] pci 0000:00:00.0: ブリッジウィンドウ [メモリ 0x18100000-0x181fffff]
[ 2.924572] pcieport 0000:00:00.0: PME: IRQ 238 でシグナリング
[ 2.940737] 未使用のカーネルメモリを解放しています: 26752K
[ 2.945478] /init を init プロセスとして実行します
バージョン249.7以降
[ 3.411637] zram0: 容量の変化を 0 から 1022136320 に検出しました
[ 3.699966] tcpci 1-0050: 状態変更 PORT_RESET_WAIT_OFF -> SNK_UNATTACHED [遅延 920 ミリ秒]
[ 3.708526] tcpci 1-0050: トグルを開始
[ 3.726094] tcpci 1-0050: CC1: 0 -> 0、CC2: 0 -> 3 [状態トグル、極性0、コネクテッド]
[ 3.734375] tcpci 1-0050: 状態変更 TOGGLING -> SNK_ATTACH_WAIT
[ 3.740568] tcpci 1-0050: 保留状態の変更 SNK_ATTACH_WAIT -> SNK_DEBOUNCED @ 200 ms
[ 3.949095] tcpci 1-0050: 状態変更 SNK_ATTACH_WAIT -> SNK_DEBOUNCED [200 ms 遅延]
[ 3.957228] tcpci 1-0050: 状態変更 SNK_DEBOUNCED -> SNK_ATTACHED
[ 3.963593] tcpci 1-0050: cc:=2
[ 3.968654] tcpci 1-0050: 極性1
[ 3.978986] tcpci 1-0050: mux状態1、usb-role 2、方向2を要求しています
[ 3.988963] tcpci 1-0050: 状態変更 SNK_ATTACHED -> SNK_STARTUP
[ 3.995180] tcpci 1-0050: 状態変更 SNK_STARTUP -> SNK_DISCOVERY
[ 4.001457] tcpci 1-0050: 電圧/電流制限の設定 5000 mV 0 mA
[ 4.007822] tcpci 1-0050: vbus=0 チャージ:=1
[ 4.012902] tcpci 1-0050: 状態変更 SNK_DISCOVERY -> SNK_WAIT_CAPABILITIES
[ 4.020374] tcpci 1-0050: 状態変更保留中 SNK_WAIT_CAPABILITIES -> SOFT_RESET_SEND @ 310 ミリ秒
[ 4.029911] tcpci 1-0050: CC1: 0 -> 0、CC2: 3 -> 3 [状態 SNK_WAIT_CAPABILITIES、極性 1、コネクテッド]
[ 4.339236] tcpci 1-0050: 状態変更 SNK_WAIT_CAPABILITIES -> SOFT_RESET_SEND [遅延 310 ミリ秒]
[ 4.348059] tcpci 1-0050: PD TX、ヘッダー: 0x8d
[ 4.364856] tcpci 1-0050: PD TX完了、ステータス: 2
[ 4.370056] tcpci 1-0050: 状態変更 SOFT_RESET_SEND -> HARD_RESET_SEND
[ 4.376867] tcpci 1-0050: PD TX、タイプ: 0x5
[ 4.389564] tcpci 1-0050: PD TX 完了、ステータス: 0
[ 4.394785] tcpci 1-0050: 状態変更 HARD_RESET_SEND -> HARD_RESET_START
[ 4.403601] tcpci 1-0050: 状態変更 HARD_RESET_START -> SNK_HARD_RESET_SINK_OFF
[ 4.411196] tcpci 1-0050: vconn:=0
[ 4.414978] tcpci 1-0050: mux状態1、usb-role 2、方向2を要求しています
[ 4.422366] tcpci 1-0050: 保留中の状態変更 SNK_HARD_RESET_SINK_OFF -> SNK_HARD_RESET_SINK_ON @ 650 ms
[ 5.082397] tcpci 1-0050: 状態変更 SNK_HARD_RESET_SINK_OFF -> SNK_HARD_RESET_SINK_ON [遅延 650 ミリ秒]
[ 5.093960] tcpci 1-0050: 状態変更 SNK_HARD_RESET_SINK_ON -> SNK_STARTUP
[ 5.101032] tcpci 1-0050: 状態変更 SNK_STARTUP -> SNK_DISCOVERY
[ 5.107311] tcpci 1-0050: 電圧/電流制限の設定 5000 mV 0 mA
[ 5.113688] tcpci 1-0050: 状態変更 SNK_DISCOVERY -> SNK_WAIT_CAPABILITIES
[ 5.121577] tcpci 1-0050: 保留中の状態変更 SNK_WAIT_CAPABILITIES -> HARD_RESET_SEND @ 310 ms
[ 5.440826] tcpci 1-0050: 状態変更 SNK_WAIT_CAPABILITIES -> HARD_RESET_SEND [遅延 310 ミリ秒]
[ 5.449649] tcpci 1-0050: PD TX、タイプ: 0x5
[ 5.462207] tcpci 1-0050: PD TX 完了、ステータス: 0
[ 5.467402] tcpci 1-0050: 状態変更 HARD_RESET_SEND -> HARD_RESET_START
[ 5.480229] tcpci 1-0050: 状態変更 HARD_RESET_START -> SNK_HARD_RESET_SINK_OFF
[ 5.487814] tcpci 1-0050: vconn:=0
[ 5.492528] tcpci 1-0050: mux状態1、usb-role 2、方向2を要求しています
[ 5.500184] tcpci 1-0050: 保留中の状態変更 SNK_HARD_RESET_SINK_OFF -> SNK_HARD_RESET_SINK_ON @ 650 ms
[ 6.160197] tcpci 1-0050: 状態変更 SNK_HARD_RESET_SINK_OFF -> SNK_HARD_RESET_SINK_ON [遅延 650 ミリ秒]
[ 6.170998] tcpci 1-0050: 状態変更 SNK_HARD_RESET_SINK_ON -> SNK_STARTUP
[ 6.178058] tcpci 1-0050: 状態変更 SNK_STARTUP -> SNK_DISCOVERY
[ 6.184330] tcpci 1-0050: 電圧/電流制限の設定 5000 mV 0 mA
[ 6.190694] tcpci 1-0050: 状態変更 SNK_DISCOVERY -> SNK_WAIT_CAPABILITIES
[ 6.199432] tcpci 1-0050: 保留中の状態変更 SNK_WAIT_CAPABILITIES -> SNK_READY @ 310 ms
[ 6.518144] tcpci 1-0050: 状態変更 SNK_WAIT_CAPABILITIES -> SNK_READY [遅延 310 ミリ秒]
「」
不良ブート(USBハブ経由)は次のようになります
「」
[ 2.573714] tcpci 1-0050: 電圧/電流制限の設定 0 mV 0 mA
[ 2.588084] tcpci 1-0050: 極性 0
[ 2.593368] ランダム: 高速初期化完了
[ 2.597157] tcpci 1-0050: mux状態0、usb-role 0、方向0を要求しています
[ 2.606898] tcpci 1-0050: 状態変更 INVALID_STATE -> SNK_UNATTACHED
[ 2.614139] tcpci 1-0050: CC1: 0 -> 4、CC2: 0 -> 0 [状態 SNK_UNATTACHED、極性 0、コネクテッド]
[ 2.622935] tcpci 1-0050: 状態変更 SNK_UNATTACHED -> SNK_ATTACH_WAIT
[ 2.629648] tcpci 1-0050: 状態変更 SNK_ATTACH_WAIT -> PORT_RESET
[ 2.636015] tcpci 1-0050: 1-0050: 登録済み
[ 2.645016] tcpci 1-0050: 電圧/電流制限の設定 0 mV 0 mA
[ 2.649889] ALSAデバイスリスト:
[ 2.651137] tcpci 1-0050: 極性 0
[ 2.654108] #0: imx-spdif
[ 2.659325] tcpci 1-0050: mux状態0、usb-role 0、方向0を要求しています
[ 2.660491] #1: imx-audio-micfil
[ 2.667628] imx6q-pcie 33800000.pcie: リンクアップ
[ 2.670836] #2: bt-sco-audio
[ 2.675197] imx6q-pcie 33800000.pcie: リンクアップ、Gen2
[ 2.678253] #3: wm8524-audio
[ 2.687083] tcpci 1-0050: cc:=0
[ 2.691422] tcpci 1-0050: 保留中の状態変更 PORT_RESET -> PORT_RESET_WAIT_OFF @ 100 ms
[ 2.699612] tcpci 1-0050: 状態変更 PORT_RESET -> PORT_RESET_WAIT_OFF [100 ms 遅延]
[ 2.707795] tcpci 1-0050: 0
U-Boot SPL 2021.04-imx_v2021.04_5.10.35_2.0.0+g3463140881 (2021年6月8日 - 01:39:44 +0000)
「」
USB ハブが検出されると、何らかの「リセット」コード フローが発生し、その結果、電源が中断されるようですが、これは現時点での私の推測にすぎません。
これは本当に時間の無駄になっているので、作業を進めるための助けやアドバイスをいただければ幸いです。
ありがとう、そしてよろしく。
アレックス