2419880_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2419880_ja-JP

2419880_ja-JP

[i.MX8QXP] 256バイトを超えるI2C読み取りはタイムアウト。256バイトおよびページングされた読み取りは合格。

こんにちは、NXP チームの皆様、

AppleのMFi認証ICにアクセスしている際に、i.MX8QXP C0 MEKプラットフォームでI2Cのロングリード問題に直面しています。

MFiデバイスは、最大256バイトまでの読み取りにおいて正しく通信します。しかし、256バイトを超える単一の読み取りは必ずタイムアウトする。完全な証明書は128バイトのページに分割すると正常に読み取ることができます。

この問題が i.MX LPI2C PIOドライバの既知の制限や問題かどうかを確認するためのサポートを必要としており、適切なドライバ修正やDMA設定を推奨したいのです。

プラットフォームの詳細

  • プラットフォーム:NXP i.MX8QXP C0 MEK
  • カーネル: Linux 6.6.52-lynx-lts-next
  • Yocto baseline: Scarthgap-based build
  • I2Cコントローラ: 5a810000.i2c
  • Linuxアダプター: /dev/i2c-1
  • ドライバ: drivers/i2c/busses/i2c-imx-lpi2c.c
  • コントローラーモード:PIO
  • MFiスレーブアドレス: 0x10
  • I2C周波数:400kHz
  • 証明書長レジスタ: 0x30
  • 証明書データレジスタ: 0x31以降
  • このデバイスの証明書の長さ:608バイト
  • 再現性:100%

カーネル初期化によりPIOモードが確認されます。

imx-lpi2c 5a810000.i2c:pioモードを使用する
i2c i2c-1: LPI2Cアダプタが登録されました

ライブデバイスツリーは400kHzであることを確認しています。

MFiアプリケーションは以下のシーケンスを実行します。

  1. レジスタ0x30を選択します。
  2. 2バイトの証明書の長さを読み取ります。
  3. 返された証明書の長さ: 0x0260 、つまり608バイト。
  4. レジスタ0x31を選択します。
  5. 608バイトの読み取りを1回要求します。

申請結果:

Reading Certificate Size
Setting register 0x30
Reading register 0x30, 2 bytes
Allocating Certificate Size: 608 bytes

Reading Certificate Data
Setting register 0x31
Reading register 0x31, 608 bytes
Reading register 0x31, 608 bytes failed: EIO

Reading register 0x31, 608 bytes
Reading register 0x31, 608 bytes failed: ETIMEDOUT

Reading register 0x31, 608 bytes
Reading register 0x31, 608 bytes failed: ETIMEDOUT

動的デバッグ出力:

i2c i2c-1:  exit with: error: -5
i2c i2c-1:  exit with: error: -110
i2c i2c-1:  exit with: error: -110

 



タグ(1)
評価なし
バージョン履歴
最終更新日:
土曜日
更新者: