2417899_ja-JP

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

2417899_ja-JP

2417899_ja-JP

i.MX93 SAI1 TX FIFO エラー

プラットフォーム
ボード:i.MX93 EVK;/sys/devices/soc0/soc_id=i.MX93,
/sys/devices/soc0/revision=1.1。パッケージのマーキング/マスクはまだ記録されていません。
Linux: 6.12.20-lts-next-gdfaf2136deb2,先取り、A55。
テキサス州0x443b0000のSAI1(44000000.dma-controller-CH21経由)。
SAI1シリアルルート:VIDEO_PLLから40 MHz;40 MHz BCLK、1.25 MHzのフレームレート。
SAI3/WM8962はLinux所有で、以下の複製では使用されていません。
LMX2571 I2S FSKシンク:アクティブスロットには符号付き16ビットコード、その他のスロットにはゼロ。
定数コード+8500は期待される+17 kHzのRFオフセットを生成します。

最小限のLinux再現(M33リモートプロックオフライン)
カスタムDTBはSAI1をALSA再生デバイスとして公開します。SAI1 PCMカード0。
静的ALSA PCM:hw:0,0、S16_LE、2チャネル、1,250,000フレーム/秒;
期間は2,400フレーム、バッファは19,200フレームです。ガウスフィルターやその他のフィルターは使用していません。
リアルタイム波形生成。TX FIFO深度32ワード、TX DMAバースト8ワード、
FIFO透かし24。静的データ: スロット 0=8500、スロット 1=0。
コマンド: python3 /root/cp7g_static_playback.py --device hw:0,0 --seconds 600
最新の結果:7億5000万フレームを599.958秒で書き込み、ALSA xruns=0。
SAI1 FEF IRQ診断:1エピソード、2.685ms間に9回のIRQエントリ。
単調稼働時間約675.892537秒で初めて観測されました。
再生が停止する7.16秒前でした。ストリーム終了時のドレインイベントではありません。

最初の割り込み処理(FEFハードウェアアサーション後のタイミング)
TCSR=0x90150c01; 連続読み取り時間=41 ns; 最初の読み取り前にハンドラが動作
TCSR読み取り=209 ns; 最初のTCSR regmap読み取り=120,607 ns (戻り値0)。
FEF W1C regmap 書き込み=241,007 ns (戻り値 0)、詳細スナップショット前。
ACK後TFR0=0x00020001、読み取り時間=242,799 ns。
ACK後のeDMA CH21の最初の生レジスタ読み出し=241,423 ns; 合計CH21
スナップショット時間=487,722 ns。CH_CSR=0x80000005、CH_ES=0x00000000、
CH_INT=0x00000000、CH_SBR=0x00208003、CH_PRI=0x00000000。
TFR0とCH21の値は、確認後ではなく、
初期FEFアサーション。長い読み書きでは、
初期のFIFOエラーを引き起こしました。CH_ES=0はチャネルエラーがなかったことを示すだけです
サンプリングされるとラッチ(吸付)ができた。FEFはALSA xruns=0にもかかわらずハードウェアイベントです。

独立簡易ファームウェア再現
Linux起動時にALSAキャプチャがアイドル状態の場合、M33コードは同じSAI1 TXを駆動しました
単一のセルフリンクeDMA CH21 TCDを使用し、一定の+8500スロット、
メジャーループのコールバックもフォアグラウンドバッファのリフィルもガウスフィルターもありません。
40 MHz BCLK、FIFO 深度 32、ウォーターマーク 24、DMA マイナーループ 16 バイト、
216秒後(Rev R)にSAI1 FEFで停止しました。FEF障害発生後のスナップショットでは、
CH21_ES=0、DMAグローバルES=0の場合、TCDは依然として自己リンク状態でした。同様の故障が発生した
後の優先順位付け試験および内部BCLK試験において。半額料金での試行も失敗に終わった。
したがって、PythonもM33波形計算/再充填も必要ありません。
断続的なSAI1 FEFを再現する。Linuxの再生も
M33、オフライン。プローブの負荷と外部ワイヤの長さの変更は除去されませんでした
問題。

追加の観察
burst-4 / watermark-28のLinux実行では、稼働時間にFEFエピソードが1回ほどありました
別ブートでは676.889秒、最新のバースト8フォルトは675.893秒でした。
最新の起動で約670〜682秒のシステムジャーナル検索では、何も見つかりませんでした
記録された活動。同様の稼働時間はあくまで示唆的なものであり、タイマーの存在を証明するものではありません。

NXPへの質問
1.i.MX93 rev 1.1マスクのエラタムや低消費電力/インターコネクトの既知のものはありますか?
SAI1およびeDMA CH21レジスタへのアクセスやDMAを遅らせる可能性のある状態
SAI1 TXとそのクロックが有効である間に100〜250 USのサービスができるのでしょうか?
2. ハードウェアの状態、クロックゲーティング、インターコネクト、またはeDMAトレースが可能なもの
FEFの前に最初に見落としたSAI1のFIFOサービスリクエストを特定しますか?
3. SAI1 TX FEFは実際のFIFO以外の状態を示しているか?
この非同期マスター構成でアンダーラン?
4. SAI1/eDMAのバースト、ウォーターマーク、またはクロックの制約は文書化されていますか?
i.MX93上の連続40MHz BCLK / 1.25 MHzステレオフレーム出力の場合?

カスタムDTBやLinux fsl_sai.c/hも提供可能です変更と静的再生
スクリプト、M33自己リンクTCDソース、完全なブートクロックツリー、およびスコープ/RFデータ。

オーディオ(PDM |I2S |SAI)Re: i.MX93 SAI1 TX FIFO errors

こんにちは、

遅れて申し訳ございません。中国の祝日期間中は通信帯域幅が限られているため、返信が遅れる場合がございますのでご了承ください。ご理解いただきありがとうございます。

1. いいえ、あなたの設計で見られる挙動を説明する訂正表はありません。

2. TCSR[FEF]は、有効化された送信FIFOにアンダーランエラーが発生し、原因がDMA要求の喪失かどうかは特定できないことを意味します。

3. いいえ、単にFIFOアンダーランです。

4. この構成はSAIスイッチング仕様の範囲内です。この挙動の原因となる明らかな問題がないか確認するために、変更点を教えてください。ドライバの改造は当方で検証されていませんのでご注意ください。

よろしくお願いいたします。

Tags (1)
No ratings
Version history
Last update:
Saturday
Updated by: