Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
DDR 工具发送 pmic_set 命令失败。 您好, 目前,我正在尝试在 DDR Tool 中调整 PCA9450C 的 BUCK6 输出电压,但我遇到了一个问题。 我将以下命令烧录到 i.MX8M Plus 开发板上,并确认 PCA9450C 确实已连接到 I2C1: 内存集 0x30330200 32 0x00000010 # I2C1_SCL 多路复用器 (SION=1) 内存集 0x30330204 32 0x00000010 # I2C1_SDA 多路复用器 (SION=1) 内存集 0x30330460 32 0x000001C6 # I2C1_SCL 焊盘 内存集 0x30330464 32 0x000001C6 # I2C1_SDA 焊盘 sysparam set pmic_cfg 0x004A sysparam set pmic_set 0x1E11 下载完 .ds 文件后文件执行后,UART 控制台返回了以下日志: PMIC 在 DDR 脚本中初始化 I2C_I2SR(0x30a2000c):0x81 总线还没准备好 错误:PMIC 寄存器[0x1e]初始化失败,值为[0x11] 用示波器检查 I2C1 SCL 和 SDA 线时,我发现两条线都被拉低并锁存。只有在断电重启后,它们才会恢复到默认的高电平状态。 此外,我已经验证,如果我注释掉 #sysparam 命令,就可以在 I2C 总线上成功观察到默认的 PMIC 初始化波形,并且 UART 日志正确地表明 PCA9450 已被检测到。 Re: Failed to send the pmic_set command in the DDR Tool. 我找到了根本原因。IOMUXC_I2C1_SDA_IN_SELECT_INPUT (0x303305A4) 和 IOMUXC_I2C1_SCL_IN_SELECT_INPUT (0x303305A8) 寄存器未配置。我建议将这些细节添加到应用笔记中,以供将来参考。谢谢!” Re: Failed to send the pmic_set command in the DDR Tool. 注释掉#sysparam后,我使用示波器捕获了 i.MX8M Plus 写入 PCA9450C 的默认配置。捕获到的序列如下: 0x25W,0x00 0x25R,0x31 0x25W、0x0C、0x29 0x25W、0x11、0x1C 0x25W、0x12、0x14 0x25W、0x10、0x59 0x25W、0x1E、0x14 基于这些发现,我将这些命令添加到了 .ds 文件中。文件: # 2. IOMUX 配置。(SION=1,ODE=1,内部上拉) 内存集 0x30330200 32 0x00000010 # I2C1_SCL 多路复用器 (SION=1) 内存集 0x30330204 32 0x00000010 # I2C1_SDA 多路复用器 (SION=1) 内存集 0x30330460 32 0x00000176 # I2C1_SCL 焊盘 内存集 0x30330464 32 0x00000176 # I2C1_SDA PAD sysparam set pmic_cfg 0x0025 # PMIC 地址 sysparam set pmic_set 0x0C29 # 将 BUCK1 和 BUCK3 设置为 0.85V,将 BUCK2 设置为 0.9V sysparam set pmic_set 0x111C # BUCK1 DVS0 = 0.95V 系统参数设置 pmic_set 0x1214 # BUCK1 DVS1 = 0.85V sysparam set pmic_set 0x1059 # BUCK1CTRL = 0x59(通过 PMIC_STBY_REQ 进行 DVS 控制) sysparam set pmic_set 0x1E11 # BUCK6 设置为 1.025V 然而,UART 控制台仍然卡在这个阶段。与之前略有不同,它不再抛出任何错误信息,而是直接停止运行: 下载完成 等待目标板启动…… 使用示波器检查 I2C1 SCL 和 SDA 线时,其行为与之前相同:两条线都被拉低并锁定,只有在断电重启后才会恢复到默认的高电平状态。 Re: Failed to send the pmic_set command in the DDR Tool. 如果禁用预配置的 PMIC 初始化,则需要手动完成所有操作。 在i.MX 93 EVK板上,默认的 PMIC I2C 总线是 I2C 2。 要将其更改为 I2C 1,您需要设置正确的引脚复用: 然后你需要发送正确的命令:(例如) 命令说明: 数量 Command Value 说明 0 pmic_cfg 0x0025 I2C总线1 (0 代表 I2C1,1 代表 I2C2,2 代表 I2C3,3 代表 I2C4……) PMIC 地址 0x25 1 pmic_set 0x0C29 寄存器=0x0C BUCKxOUT_DVS0/1 预设降压电压1=0.8V,preset_buck2=0.7V,预设降压3=0.8VPCA9451_BUCK123_DVS 值=0x29 2 pmic_set 0x1118 寄存器=0x11 BUCK1OUT_DVS0=0.9V PCA9451_BUCK1OUT_DVS0 值=0x18 3 pmic_set 0x1718 寄存器=0x17 BUCK3OUT_DVS0=0.9V PCA9451_BUCK3OUT_DVS0 值=0x18 4 pmic_set 0x1428 寄存器=0x14 将 VDDQ 设置为 1.1V PCA9451_BUCK2OUT_DVS0 值=0x28 BUCK6 设置将位于寄存器 0x1D 和 0x1E 中。 希望对您有所帮助。 伯恩哈德。 Re: Failed to send the pmic_set command in the DDR Tool. 哦,对了,就是著名的DAISY收银机。抓得好! 选择自定义配置时,所有设置都需要手动完成。你说得对,在引脚配置方面,DAISY 寄存器并不是重点。对于 UART 引脚复用设置,除了标准的引脚复用和焊盘设置外,它还出现在 RX 信号的 ds 中。但对于 I2C,固件会在后台进行默认配置,您在 ds 文件中看不到这些设置。 顺便提一下,对于 i.MX 93,I2C1 和 I2C2 没有 DAISY 链寄存器,但 I2C3-8 有。 我会将您的反馈意见反馈给我们的工具组,这个细节应该包含在配置工具的用户手册中。或者,或者此外,I2C 接口设置应该出现在 ds 文件中。 问候, 伯恩哈德。
View full article
eb tresos 许可证不能被允许(最大允许数量) 您好,我的 eb tresos 许可证有问题。 状态:4,正在创建请求 状态:5,请求已创建 状态:6,上下文已创建 状态:7,已连接到远程服务器 状态:8,请求已发送 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:10,等待回复 状态:9,正在轮询响应 状态:11,已完成 错误:flxActAppActivationSend (50040,41147,10248) 指定的数量超过了允许的最大数量(0)。 连接 FlexNet Operations Server 失败。 请更新许可证代码
View full article
LS1046A DDR问题 LS1046A和BCM88270(交换芯片)通过pcie.3 x1 gen2连接(SD2_T/RX2_P/N),LS1046A使用4片K4AAG165WC-BCWE(无ecc), 目前的碰到的现象: 1.在bcm88270不向ls1046a通过pcie发送以太网数据包的情况下,使用stress ng和memtester程序测试内存都没有问题 2.在bcm88270向ls1046a通过pcie发送以太网数据包时,stress ng和memtester会出错 3.LS1046A通过pcie反复读写bcm88270寄存器或者表项(通过dma),没有问题。而且同时测试的stress ng也没问题。 Board Design Communication & Control(I3C | I2C | SPI | FlexCAN | Ethernet | FlexIO) Re: LS1046A DDR问题 由于单独测试stress ng和memtester正常, 证明DDR基本功能正常,  只有BCM88270发包时出错,说明错误是被PCIe流量触发的。 结合你给出的现象,可能原因概率排序: 40%  BCM88270 RX DMA地址越界/描述符错误 25%  PCIe RX方向SI问题(收包时暴露) 15%  PCIe Cache Coherent配置错误 10%  DDR SI问题(高带宽触发) 10%  电源完整性问题     第一种可能:PCIe DMA写坏了DDR(最高概率) 现象最符合:BCM88270发包  > PCIe DMA写入LS1046A内存 >  DMA地址错误或描述符错误 -> 覆盖了Memtester或Stress-ng使用的内存 -> 检测到内存错误 检查方法:查看DMA Buffer地址, 确认RX Descriptor, RX Buffer, SKB, DMA Pool 是否有越界。Linux下查看dma_alloc_coherent()返回地址,检查start,size,end是否有重叠。   memtester避开DMA区域,例如memtester 2M,观察DMA是否位于低端内存,如果避开DMA区域后不再报错,基本锁定DMA覆盖。   第二种可能:PCIe Cache Coherent配置错误 LS1046A是DPAA架构, PCIe DMA涉及CPU Cache, CCI-400, PCIe Controller, DDR, 如果BCM88270使用DMA写入DDR: 但驱动:dma_sync_single_for_cpu(), dma_sync_single_for_device() 处理错误,会造成:CPU看到旧数据, DMA写入新数据, 然后memcmp失败, memory test失败。 检查设备树,查看PCIe节点pcie@340000是否带dma-coherent; 如果配置错误,会导致随机内存错误。     第三种可能:PCIe接收方向SI问题 这里值得特别关注。你提到:PCIe.3 x1 Gen2,SD2_TX/RX2_P/N, 只有BCM88270 -> LS1046A发包时出错。而LS1046A -> BCM88270时DMA访问表项正常。 说明 PCIe RX方向更可疑。 PCIe寄存器访问:流量很小,即使BER较高也不容易暴露。  以太网收包:持续PCIe DMA TLP, 流量大几个数量级。此时:CRC重传, Replay,NAK,明显增加。 虽然PCIe理论有LCRC保护。但如果链路边缘化:可能导致:DMA timeout,描述符损坏,驱动异常,最终表现为:内存测试失败。   查看PCIe错误计数器: lspci -vv, 重点: CESta: Correctable Error; UESta: Uncorrectable Error; 查看:BadTLP, BadDLLP, ReplayNumRollover, ReceiverError是否增长。     第四种可能:DDR SI/PI边缘问题 虽然单独Stress正常,但仍不能完全排除。 原因:BCM88270发包时会增加: 1) PCIe SerDes功耗    增加:1V, 1.8V, AVDD_SERDES噪声。 2) DDR访问量剧增    正常测试: CPU<->DDR    现在变成: CPU,PCIe DMA, DDR Controller 同时工作,带宽显著提高。如果DDR裕量不足:开始出错。    验证方法:降低DDR频率,例如: 1600MT/s → 1333MT/s, 如果问题消失,基本锁定DDR SI/PI问题。    查看DDR ECC统计: 虽然无ECC,但可以uboot下用 md.l 读取DDR控制器状态寄存器,查看DDR_ERR_DETECT是否出现异常。     第五种可能:电源完整性问题 4片K4AAG165WC-BCWE容量较大。当 PCIe高速收包 + CPU Stress + DDR高带宽 同时发生,板上可能出现:VDD_DDR, VDD_SOC, VDD_CORE跌落。 重点测量: 示波器看VDD_DDR,VDD_SOC在故障时的纹波和瞬时跌落是否超标。特别是在BCM88270开始大流量发包瞬间。     第六种可能:PCIe与DDR走线串扰 LS1046A上:PCIe3和DDR4都属于高速接口,如果布局比较紧:PCIe RX, DDR DQ, DDR DQS存在平行长距离走线。 大流量PCIe时可能激发问题。这种现象非常符合:不发包 => 正常, 大发包 => DDR出错.     建议排查顺序: Step1: 抓PCIe错误: lspci -vv,看Receiver Error,Bad TLP,Replay,CRC Error是否持续增长。 Step2: 关闭网络驱动DMA收包。只保留PCIe读写寄存器,验证Stress是否仍正常。若正常,说明问题在RX DMA路径。 Step3: 在RX DMA Buffer前后加保护区,例如:0x5A5A5A5A,持续检查是否被覆盖。确认是否DMA越界。 Step4: 降PCIe速率,强制 Gen2 -> Gen1,如果故障消失,优先检查PCIe SI。 Step5: 降DDR频率,1600MT/s -> 1333MT/s,如果消失,优先检查DDR SI/PI。 Re: LS1046A DDR问题 问题已经解决,是BCM驱动问题,谢谢支持!
View full article
LS1046A DDRに関する問題 LS1046AとBCM88270(スイッチチップ)は、PCIe.3 x1 Gen2(SD2_T/RX2_P/N)を介して接続されています。LS1046Aは、K4AAG165WC-BCWEチップ(ECCなし)を4個使用しています。 現在直面している状況: 1. BCM88270がPCIe経由でLS1046Aにイーサネットパケットを送信していない場合、stress ngとmemtesterを使用したメモリテストでは問題は検出されません。 2. BCM88270がPCIe経由でLS1046Aにイーサネットパケットを送信すると、`stress ng`と`memtester`でエラーが発生します。 3. LS1046Aは、PCIe(DMA経由)を介してBCM88270のレジスタまたはエントリへの読み書きを繰り返し実行しますが、問題なく動作します。さらに、同時に実施したストレステストでも問題は検出されませんでした。 ボードデザイン 通信および制御(I3C | I2C | SPI | FlexCAN | Ethernet | FlexIO) Re: LS1046A DDR问题 stress ngとmemtesterによる個別のテストは正常であったため、DDRの基本機能は正常であることが証明されました。唯一のエラーはBCM88270がパケットを送信した際に発生したものであり、このエラーはPCIeトラフィックによって引き起こされたことを示しています。 ご説明いただいた現象に基づき、考えられる原因の確率を順位付けすると以下のようになります。 40% BCM88270 RX DMA アドレス範囲外/ディスクリプタエラー 25% PCIe RX方向SIの問題(パケット受信時に顕在化) 15% PCIeキャッシュコヒーレント構成エラー DDR SI の問題が 10% 発生(高帯域幅が原因) 10%の電力整合性の問題     第一の可能性:PCIe DMAがDDRメモリを破損させた(最も可能性が高い)。 最もよく一致する現象: BCM88270 パケット送信 PCIe DMAによるLS1046Aメモリへの書き込み > DMAアドレスエラーまたはディスクリプタエラー -> MemtesterまたはStress-ngで使用されているメモリを上書きしています -> メモリエラーが検出されました 検査方法:DMAバッファアドレスを確認し、RXディスクリプタ、RXバッファ、SKB、およびDMAプールが範囲外になっていないか確認します。Linuxでは、dma_alloc_coherent()の戻りアドレスを確認し、開始アドレス、サイズ、および終了アドレスが重複していないか確認します。   memtester(例えばmemtester 2M)を使用してDMA領域を回避してください。DMAが低位メモリ領域に位置しているかどうかを確認してください。DMA領域を回避した後にエラーが報告されなくなった場合、DMAの上書きは基本的にロックされています。   2つ目の可能性は、PCIeキャッシュコヒーレント構成エラーです。 LS1046AはDPAAアーキテクチャを採用しています。PCIe DMAには、CPUキャッシュ、CCI-400、PCIeコントローラ、およびDDRが関与します。BCM88270がDMAを使用してDDRに書き込む場合: しかし、ドライバ`dma_sync_single_for_cpu()`と`dma_sync_single_for_device()`が正しく処理されない場合、CPUは古いデータを参照し、DMAは新しいデータを書き込み、その結果`memcmp`と`memory test`が失敗します。 デバイスツリーを確認して、PCIeノードpcie@340000にdma-coherentが設定されているかどうかを確認してください。設定が正しくない場合、ランダムメモリエラーが発生します。     3つ目の可能性:PCIe受信方向SIの問題 これは特に注意を払うべき点です。PCIe.3 x1 Gen2、SD2_TX/RX2_P/Nの場合、BCM88270からLS1046Aにパケットを送信する場合にのみエラーが発生するとおっしゃっていましたが、LS1046AからBCM88270へのDMAアクセステーブルのエントリは正常です。 これは、PCIe RX方向の方がより疑わしいことを示唆している。 PCIeレジスタアクセス:トラフィックは非常に少なく、BERが高くても容易には露出しない。 イーサネットパケットの受信:PCIe DMA TLPが継続的に動作し、トラフィック量が数桁増加します。このとき、CRC再送信、リプレイ、およびNAK(ネットワークアドレス変換)が大幅に増加します。 PCIeは理論的にはLCRC保護機能を備えているものの、リンクが不安定になると、DMAタイムアウト、ディスクリプタの破損、ドライバの異常、そして最終的にはメモリテストの失敗につながる可能性がある。   PCIeエラーカウンタを確認するには、`lspci -vv`を実行し、CESta: 訂正可能なエラー、UESta: 訂正不可能なエラーに注意してください。また、BadTLP、BadDLLP、ReplayNumRollover、およびReceiverErrorが増加していないかどうかも確認してください。     4つ目の可能性:DDR SI/PIエッジ問題 ストレスレベル自体は正常範囲内ではあるものの、完全に否定することはできない。 理由:BCM88270がパケットを送信すると、以下の値が増加します。 1) PCIe SerDesの消費電力 追加:1V、1.8V、AVDD_SERDESノイズ。 2) DDRアクセス量が急増 通常テスト:CPU <-> DDR 現在では、CPU、PCIe DMA、DDRコントローラが同時に動作するため、帯域幅が大幅に向上しています。DDRの容量が不足すると、エラーが発生し始めます。 検証方法:DDRの周波数を下げてください。例えば、1600MT/s → 1333MT/s。問題が解消すれば、基本的にはDDRのSI/PIの問題です。 DDR ECC 統計を確認するには: ECC はありませんが、uboot の md.l を使用して DDR コントローラ ステータス レジスタを読み取り、DDR_ERR_DETECT が異常かどうかを確認できます。     5つ目の可能性:電源の完全性の問題 4つのK4AAG165WC-BCWEチップは比較的大きな容量を持っています。高速PCIeパケット受信、CPU負荷、高DDR帯域幅が同時に発生すると、ボード上でVDD_DDR、VDD_SOC、VDD_COREの電圧降下が発生する可能性があります。 重要な測定項目:オシロスコープを使用して、障害発生時にVDD_DDRおよびVDD_SOCのリプルと過渡電圧降下が制限値を超えていないかを確認します。特に、BCM88270が大量のパケットを送信し始める瞬間に注意してください。     6つ目の可能性:PCIeとDDRのトレースクロストーク LS1046Aでは、PCIe3とDDR4はどちらも高速インターフェースです。レイアウトがタイトな場合、PCIe RX、DDR DQ、DDR DQSは並列の長距離配線となっています。 大量のPCIeトラフィックは問題を引き起こす可能性があります。この現象は、パケットが送信されない場合、正常に動作し、パケット量が多い場合、DDRエラーが発生するというパターンとよく一致します。     調査の推奨順序: ステップ 1: PCIe エラーをキャプチャします: lspci -vv を使用して、レシーバー エラー、Bad TLP、リプレイ、および CRC エラーが継続的に増加しているかどうかを確認します。 ステップ2:ネットワークドライバのDMAパケット受信を無効にします。PCIeの読み書きレジスタのみを有効にしたまま、Stressが正しく動作するかどうかを確認します。正しく動作する場合は、RX DMAパスに問題があります。 ステップ3:RX DMAバッファの前後に保護ゾーンを追加します(例:0x5A5A5A5A)。そして、それらが上書きされていないかどうかを継続的にチェックします。DMAが制限を超えていないか確認します。 ステップ4:PCIeの速度を下げ、Gen2からGen1に強制的に切り替えます。これで不具合が解消された場合は、まずPCIe SIを確認してください。 ステップ5:DDR周波数を1600MT/sから1333MT/sに下げます。問題が解消された場合は、まずDDR SI/PIを確認してください。 Re: LS1046A DDR问题 問題は解決しました。BCMドライバーの問題でした。ご協力ありがとうございました!
View full article
DDRツールでpmic_setコマンドの送信に失敗しました。 こんにちは、 現在、DDR ToolでPCA9450CのBUCK6出力電圧を調整しようとしていますが、問題が発生しました。 以下のコマンドをi.MX8M Plusボードに書き込み、PCA9450Cが確かにI2C1に接続されていることを確認しました: メモリ設定 0x30330200 32 0x00000010 # I2C1_SCL MUX (SION=1) メモリセット 0x30330204 32 0x00000010 # I2C1_SDA MUX (SION=1) メモリセット 0x30330460 32 0x000001C6 # I2C1_SCL PAD メモリセット 0x30330464 32 0x000001C6 # I2C1_SDA PAD sysparam set pmic_cfg 0x004A sysparam set pmic_set 0x1E11 .dsファイルをダウンロードした後ファイルに対して、UARTコンソールは以下のログを出力しました。 PMICはDDRスクリプトで初期化されます I2C_I2SR(0x30a2000c):0x81 バスはまだ準備ができていません エラー: PMIC reg[0x1e] の初期化が値[0x11]で失敗しました オシロスコープでI2C1のSCLとSDAラインをチェックしたところ、両方のラインがプルダウンされてラッチされていることが確認できました。それらは電源を再投入した後にのみ、デフォルトのプルアップ状態に戻ります。 さらに、#sysparam コマンドをコメントアウトすると、I2Cバス上のデフォルトのPMIC初期化波形を正常に観察でき、UARTログもPCA9450が検出されたことを正しく示しています。 Re: Failed to send the pmic_set command in the DDR Tool. 根本原因を突き止めました。IOMUXC_I2C1_SDA_IN_SELECT_INPUT (0x303305A4) および IOMUXC_I2C1_SCL_IN_SELECT_INPUT (0x303305A8) レジスタが設定されていません。この詳細は将来の参考のためにアプリケーションノートに添付することをお勧めします。ありがとう!" Re: Failed to send the pmic_set command in the DDR Tool. #sysparamをコメントアウトした後、オシロスコープを使用して、i.MX8M Plus が PCA9450C に書き込むデフォルト設定をキャプチャしました。キャプチャされたシーケンスは以下のとおりです。 0x25W、0x00 0x25R、0x31 0x25W、0x0C、0x29 0x25W、0x11、0x1C 0x25W、0x12、0x14 0x25W、0x10、0x59 0x25W、0x1E、0x14 これらの調査結果に基づき、私は.dsファイルに以下のコマンドを追加しました。ファイル: # 2. IOMUX 設定。(SION=1、ODE=1、内部プルアップ) メモリ設定 0x30330200 32 0x00000010 # I2C1_SCL MUX (SION=1) メモリセット 0x30330204 32 0x00000010 # I2C1_SDA MUX (SION=1) メモリセット 0x30330460 32 0x00000176 # I2C1_SCL PAD メモリセット 0x30330464 32 0x00000176 # I2C1_SDA PAD sysparam set pmic_cfg 0x0025 # PMICアドレス sysparam set pmic_set 0x0C29 # BUCK1&3を0.85Vに設定、BUCK2を0.9Vに設定 sysparam set pmic_set 0x111C # BUCK1 DVS0 = 0.95V sysparam セット pmic_set 0x1214 # BUCK1 DVS1 = 0.85V sysparam set pmic_set 0x1059 # BUCK1CTRL = 0x59 (PMIC_STBY_REQ を介した DVS 制御) sysparam set pmic_set 0x1E11 # BUCK6 を 1.025V に設定 しかし、UARTコンソールはこの段階で依然として停止してしまう。以前とは少し異なり、エラーメッセージは表示されなくなり、ここで停止します。 ダウンロードが完了しました ターゲットボードの起動を待っています... オシロスコープでI2C1のSCL線とSDA線をチェックしたところ、動作は以前と同じで、両方の線ともプルダウンされてラッチされており、電源を入れ直した後にのみデフォルトのプルアップ状態に戻ります。 Re: Failed to send the pmic_set command in the DDR Tool. 事前設定されたPMIC初期化を無効にすると、すべて手動で行う必要があります。 i.MX 93 EVKボードでは、デフォルトのPMIC I2CバスはI2C2です。 I2C 1に変更するには、適切なピンマルチプレクサを設定する必要があります。 次に、適切なコマンドを送信する必要があります。(例) コマンドの説明: 件 コマンド バリュー 説明 0 pmic_cfg 0x0025 I2Cバス1 (0はI2C1、1はI2C2、2はI2C3、3はI2C4…) PMICアドレス0x25 1 pmic_set 0x0C29 レジスタ=0x0C BUCKxOUT_DVS0/1 preset_buck1=0.8V、preset_buck2=0.7V、preset_buck3=0.8VPCA9451_BUCK123_DVS 値=0x29 2 pmic_set 0x1118 レジスタ=0x11 BUCK1OUT_DVS0=0.9V PCA9451_BUCK1OUT_DVS0 値=0x18 3 pmic_set 0x1718 レジスタ=0x17 BUCK3OUT_DVS0=0.9V PCA9451_BUCK3OUT_DVS0 値=0x18 4 pmic_set 0x1428 レジスタ=0x14 VDDQを1.1Vに設定 PCA9451_BUCK2OUT_DVS0値=0x28 BUCK6の設定は、レジスタ0x1Dと0x1Eに格納されます。 お役に立てば幸いです。 ベルンハルト。 Re: Failed to send the pmic_set command in the DDR Tool. ああ、そうそう、あの有名なDAISYレジスターですね。よく気づいたね! カスタム設定を選択した場合、すべてを手動で設定する必要があります。おっしゃる通り、ピン構成に関しては、DAISYレジスタはあまり重要視されません。UARTピン多重化設定については、標準のピン多重化設定とパッド設定に加えて、RX信号のdsに表示されます。しかし、I2Cに関してはファームウェアがバックグラウンドでデフォルト設定として処理するため、dsファイルに設定内容は表示されません。 補足として、i.MX 93の場合、I2C1とI2C2にはDAISYチェーンレジスタは存在しませんが、I2C3~8には存在します。 この詳細はツールグループにフィードバックします。この詳細は設定ツールのユーザーマニュアルの一部になるべきです。あるいは、または追加して、I2Cインターフェースの設定がdsファイルに表示されるはずです。 よろしくお願いいたします。 ベルンハルト。
View full article
LS1046A DDR Issues The LS1046A and BCM88270 (switch chip) are connected via PCIe.3 x1 Gen2 (SD2_T/RX2_P/N). The LS1046A uses four K4AAG165WC-BCWE chips (without ECC). The current situation encountered: 1. When the BCM88270 is not sending Ethernet packets to the LS1046A via PCIe, memory tests using stress ng and memtester show no problems. 2. When the BCM88270 sends Ethernet packets to the LS1046A via PCIe, `stress ng` and `memtester` will encounter errors. 3. The LS1046A repeatedly reads and writes to the BCM88270 registers or entries via PCIe (through DMA) without any problems. Furthermore, stress testing at the same time also showed no issues. Board Design Communication & Control(I3C | I2C | SPI | FlexCAN | Ethernet | FlexIO) Re: LS1046A DDR问题 Since individual tests of stress ng and memtester were normal, it proves that the basic functions of DDR are normal. The only error occurred when BCM88270 sent packets, indicating that the error was triggered by PCIe traffic. Based on the phenomena you described, the probabilities of the possible causes are ranked as follows: 40% BCM88270 RX DMA address out of bounds/descriptor error 25% PCIe RX direction SI issue (exposed during packet reception) 15% PCIe Cache Coherent Configuration Error 10% DDR SI issue (triggered by high bandwidth) 10% power integrity issues     First possibility: The PCIe DMA corrupted the DDR memory (highest probability). The phenomenon most closely matches: BCM88270 packet sending PCIe DMA write to LS1046A memory > DMA address error or descriptor error -> Overwriting memory used by Memtester or Stress-ng -> Memory error detected Inspection method: Check the DMA buffer address to confirm whether RX Descriptor, RX Buffer, SKB, and DMA Pool are out of bounds. On Linux, check the return address of dma_alloc_coherent() to check if start, size, and end overlap.   Avoid DMA regions using memtester, for example, memtester 2M. Observe whether the DMA is located in low memory. If no more errors are reported after avoiding the DMA region, the DMA overwriting is basically locked.   The second possibility is a PCIe Cache Coherent configuration error. The LS1046A uses a DPAA architecture. PCIe DMA involves the CPU cache, CCI-400, PCIe controller, and DDR. If the BCM88270 uses DMA to write to DDR: However, errors in the driver's `dma_sync_single_for_cpu()` and `dma_sync_single_for_device()` functions can cause the CPU to see old data, the DMA to write new data, and then `memcmp` and `memory test` to fail. Check the device tree to see if the PCIe node pcie@340000 has dma-coherent; if the configuration is incorrect, it will cause random memory errors.     The third possibility: PCIe receive direction SI problem This deserves special attention. You mentioned that for PCIe.3 x1 Gen2, SD2_TX/RX2_P/N, the error only occurs when sending packets from BCM88270 to LS1046A. However, the DMA access table entries are normal when LS1046A -> BCM88270. This suggests that the PCIe RX direction is more suspicious. PCIe register access: traffic is very small, and it is not easily exposed even if the BER is high. Ethernet packet reception: Continuous PCIe DMA TLP, traffic volume is several orders of magnitude higher. At this time: CRC retransmission, replay, and NAK (Network Address Translation) increase significantly. Although PCIe theoretically has LCRC protection, if the link becomes marginalized, it may lead to: DMA timeout, descriptor corruption, driver anomalies, and ultimately, memory test failures.   To check the PCIe error counters: `lspci -vv`, pay attention to: CESta: Correctable Error; UESta: Uncorrectable Error; check if BadTLP, BadDLLP, ReplayNumRollover, and ReceiverError are increasing.     The fourth possibility: DDR SI/PI edge problem Although the stress level is normal on its own, it cannot be completely ruled out. Reason: When BCM88270 sends packets, it will increase the following: 1) PCIe SerDes power consumption Added: 1V, 1.8V, AVDD_SERDES noise. 2) DDR access volume surged Normal test: CPU <-> DDR Now, the CPU, PCIe DMA, and DDR controller work simultaneously, significantly increasing bandwidth. If DDR capacity is insufficient, errors will begin to occur. Verification method: Reduce the DDR frequency, for example: 1600MT/s → 1333MT/s. If the problem disappears, it is basically a DDR SI/PI issue. To check DDR ECC statistics: Although there is no ECC, you can use md.l in uboot to read the DDR controller status register and check if DDR_ERR_DETECT is abnormal.     Fifth possibility: Power integrity issue The four K4AAG165WC-BCWE chips have a relatively large capacity. When high-speed PCIe packet reception, CPU stress, and high DDR bandwidth occur simultaneously, the following may occur on the board: VDD_DDR, VDD_SOC, and VDD_CORE drops. Key measurements: Use an oscilloscope to check if the ripple and transient voltage drop of VDD_DDR and VDD_SOC exceed the limits during a fault. Pay special attention to the moment when the BCM88270 starts sending large amounts of packets.     Sixth possibility: PCIe and DDR trace crosstalk On the LS1046A: PCIe3 and DDR4 are both high-speed interfaces. If the layout is tight: PCIe RX, DDR DQ, and DDR DQS have parallel long-distance traces. High-volume PCIe traffic may trigger issues. This phenomenon closely matches the pattern: no packets sent => normal operation, high packet volume => DDR error.     Suggested order of investigation: Step 1: Capture PCIe errors: use lspci -vv to check if Receiver Error, Bad TLP, Replay, and CRC Error are continuously increasing. Step 2: Disable network driver DMA packet reception. Only keep the PCIe read/write registers enabled and verify if Stress is still working correctly. If it is, the problem lies in the RX DMA path. Step 3: Add protection zones before and after the RX DMA Buffer, for example: 0x5A5A5A5A, and continuously check if they are overwritten. Confirm whether the DMA has exceeded the limit. Step 4: Reduce the PCIe speed and force Gen2 -> Gen1. If the fault disappears, check the PCIe SI first. Step 5: Reduce DDR frequency, 1600MT/s -> 1333MT/s. If the problem disappears, first check DDR SI/PI. Re: LS1046A DDR问题 The problem has been resolved; it was a BCM driver issue. Thank you for your support!
View full article
eb tresos license can not be allowed(maximum quantity allowed) hello, there is eb tresos license problem. Status: 4, Creating request Status: 5, Request created Status: 6, Context created Status: 7, Connected to remote server Status: 8, Request Sent Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 10, Waiting for response Status: 9, Polling for response Status: 11, Done ERROR: flxActAppActivationSend (50040,41147,10248) The quantity specified exceeds maximum quantity allowed (0). Connection to FlexNet Operations Server failed. please update license code
View full article
IMX6Q U-Boot こんにちは、私はIMX6qプロセッサを搭載したカスタムカメラを持っています。 古いブートローダーと古いカーネル上で動作するファームウェアを持っています。 ブートローダーとカーネルをアップデートする必要があります。 しかし、カーネルの読み込み段階を突破できません。 UARTログは常に空です。 助けてください。 Re: IMX6Q U-BooT こんにちは、 @CAT5000さん。 お元気でお過ごしのことと思います。 現在のBSPバージョンと新しいBSPバージョンを指定してください。 また、コンソールで定義されているUARTに関連するソフトウェアの変更もあります。 よろしくお願いいたします。 サラス。 Re: IMX6Q U-BooT こんにちは! 実は、プロセッサを最後のBSPバージョンに移植するためのガイドがあります。 UG10165 (i.MXポーティングガイド)をご覧ください。 U-bootで行う必要のある変更点について説明します。 また、Sabreボードをお持ちなら、Embedded Linux for i.MXアプリケーション・プロセッサ から最終版の事前コンパイル済みイメージをダウンロードして、ボードにフラッシュするだけで済みます。 よろしくお願いします、 サラス。 Re: IMX6Q U-BooT 動作するブートローダーバージョン U-Boot 2018.03 (2021年4月22日 04:17:10 -0400) CPU:Freescale i.MX6Q rev1.3 996 MHz(動作周波数は792 MHz) CPU:オートモーティブ温度グレード(-40°Cから125°C)で30°Cに対応 リセット原因:POR(POR) モデル:Freescale i.MX6 クアッドSABERスマートデバイスボード ボード:MX6-SabreSD ウォッチドッグ有効 DRAM:2 GiB PMIC:PFUZE100!DEV_ID=0x10 REV_ID=0x21 MMC: FSL_SDHC: 0、FSL_SDHC: 1、FSL_SDHC: 2 MMCから環境を読み込んでいます... カードが電圧に反応しませんでした 私のボードはSabreSDを搭載したリファレンスボードです。 回路図とデータは全て揃っています 私はこういう作業は得意ではないのですが、新機能を試すためにファームウェアをアップデートしたいと思っています。
View full article
EB tresosのアクティベーションコードが失敗しました AUTOSARでEBtresosを使おうとしているのですが、アクティベートできませんでした。 アクティベーションコード: 7416-E905-5CC2-F20A ERROR: flxActAppActivationSend (50040,41147,10248) 指定された数量が許容最大数量 (0) を超えています。 FlexNet Operations Serverへの接続に失敗しました。 だからEBtresosを使うにはもう一つのアクティベートコードが必要です。 どうもありがとうございます。 Re: EB tresos activation code failed ご辛抱いただきありがとうございます。 社内チームがウェブページ上のアクティベーションコードを更新しました。 最新の認証コードを確認するには、以下のリンクをクリックしてください。 S32K3 標準ソフトウェア - > オートモーティブ SW - EB tresos Studio / AUTOSAR 設定ツール - > EB tresos Studio 29.0.0 Re: EB tresos activation code failed ハイ ご迷惑をおかけして申し訳ございません! この件については既に社内チームに報告済みです。返信があり次第、ご連絡いたします。   よろしくお願いいたします ロビン Re: EB tresos activation code failed こんにちは。NXPのウェブサイトで更新されたアクティベーションコードは、引き続き7416-E905-5CC2-F20Aです。今日アクティベートしようとしたのですが、やはり失敗しました。 ERROR: flxActAppActivationSend (50040,41147,10248) 指定された数量が許容最大数量 (0) を超えています。 FlexNet Operations Serverへの接続に失敗しました。 Re: EB tresos activation code failed 前回の返信をご覧ください。アクティベーションコードが更新されました。 EBTresosページのアクティベーションコードがまだ変更されていないバージョンを教えてください。内部チームに報告して更新を依頼します。
View full article
EB Tresos激活码失败 我尝试使用 EBtresos for AUTOSAR,但是激活失败了。 激活码: 7416-E905-5CC2-F20A ERROR: flxActAppActivationSend (50040,41147,10248) 指定的数量超过最大允许数量 (0)。 连接 FlexNet Operations Server 失败。 所以我需要另一个激活码才能使用 EBtresos。 谢谢! Re: EB tresos activation code failed 感谢您的耐心等待。 内部团队已更新网页上的激活码。 请点击下方链接查找最新激活码: S32K3 标准软件-> 汽车软件 - EB tresos Studio / AUTOSAR 配置工具 -> EB tresos Studio 29.0.0 Re: EB tresos activation code failed HI 给您带来的不便,我们深表歉意! 我已经将此问题报告给了内部团队,一旦收到他们的回复,我会立即通知您。   此致敬礼, Robin Re: EB tresos activation code failed 您好,NXP 网站上更新的激活码仍然是:7416-E905-5CC2-F20A。我今天尝试激活它,但仍然失败了。 ERROR: flxActAppActivationSend (50040,41147,10248) 指定的数量超过最大允许数量 (0)。 连接 FlexNet Operations Server 失败。 Re: EB tresos activation code failed 请查看我之前的回复;激活码已更新。 请告诉我哪个版本的 EBTresos 页面激活码尚未被修改,以便我向内部团队报告并进行更新。
View full article
EBのトレソライセンスは許可できません(最大数量制限) こんにちは、EB Tresosのライセンスに問題があります。 ステータス: 4、リクエストを作成中 ステータス: 5、リクエストが作成されました ステータス: 6、コンテキストが作成されました ステータス:7、リモートサーバーにコネクテッド ステータス: 8、リクエスト送信済み Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) ステータス: 10、応答待ち Status: 9, Polling for response(ステータス9:応答を問い合わせ中) Status: 11, Done(ステータス11:完了) エラー: flxActAppActivationSend (50040,41147,10248) 指定された数量は、許容最大数量(0)を超えています。 FlexNetオペレーションサーバーへの接続に失敗しました。 ライセンスコードを更新してください
View full article
IMX6Q U-Boot 您好,我有一台定制相机,搭载IMX6q处理器。 我有一个可以在旧版引导加载程序和旧版内核上运行的固件。 我需要更新引导加载程序和内核。 但我始终无法通过内核加载阶段。 UART 日志始终为空。 请帮忙。 Re: IMX6Q U-BooT 你好@CAT5000 希望你一切都好。 请指定当前 BSP 版本和新版本。 此外,您的软件更改与 UART 相关,其中 UART 已在控制台中定义。 顺祝商祺! 萨拉斯。 Re: IMX6Q U-BooT 您好! 实际上,我们有将我们的处理器移植到最新 BSP 版本的指南。 请参考UG10165 (i.MX 移植指南)。 这里描述了需要在 U-boot 中进行的更改。 另外,如果您有 Sabre 开发板,您可以直接从Embedded Linux for i.MX Applications Processors下载最新版本的预编译镜像,然后刷写到您的开发板上。 此致, 萨拉斯。 Re: IMX6Q U-BooT 工作引导加载程序版本 U-Boot 2018.03(2021年4月22日 - 04:17:10 -0400) CPU:Freescale i.MX6Q rev1.3 996 MHz(运行频率为 792 MHz) CPU:汽车级温度等级(-40℃至125℃),工作温度30℃ 复位原因:POR 型号:飞思卡尔 i.MX6 Quad SABER 智能设备板 板:MX6-SabreSD 已启用看门狗 动态随机存取存储器(DRAM):2 GiB PMIC:PFUZE100!开发版本号=0x10 版本号=0x21 MMC:FSL_SDHC:0,FSL_SDHC:1,FSL_SDHC:2 从MMC加载环境... 卡未响应电压 我的主板是参考板,搭载 SabreSD 卡。 我拥有所有原理图和数据。 我不擅长这类任务,但我很想更新固件,体验一下新功能。
View full article
セーフティマニュアル、セーフティアプリケーションノート、S32_SPDソース/試験パッケージの請求 NXPサポートチームの皆さん、こんにちは。 私はNDAに署名し、NXPのウェブサイトでセーフティアクセス権を得ています。しかしながら、S32K388に関する以下の文書をまだ見つけることができません。 |# |文書 | |---|----------| |1 |S32K3xx 安全マニュアル | |2 |S32K3xx 安全アプリケーションノート | |3 |S32K3xx FMEDA / DFA(利用可能な場合) | |4 |S32K388 安全補足(該当する場合) | 直接ダウンロードリンクを教えていただけるか、これらの書類を私のメールに送っていただけませんか? ご助言ありがとうございます。 よろしくお願いします、 xlele Re: Request for Safety Manual, Safety Application Note, and S32_SPD Source/Test Packages こんにちは、 xleleさん。 ご不便をおかけして申し訳ありません。ダウンロードリンクや文書自体をお客様に送ることは許可されていません。お客様は NXPのウェブサイトからダウンロードする必要があります。 SECURE ACCESS RIGHTSを取得したことを必ず確認してください。 1. S32K3xx セーフティ マニュアル 4. S32K3xxセーフティマニュアルの添付ファイルからAddendum_S32K3xx.xlsx を探してください。 2. あなたがどの文書について言及しているのか、私にはよく分かりません。同じ場所で「安全アプリケーションノート」に似た文書を探してください。 3. 「S32K388 FMEDA」というキーワードで対応する文書を見つけることができます。 よろしくお願いいたします ロビン
View full article
请求提供功能安全手册、功能安全应用笔记和 S32_SPD 源/测试软件包 您好,NXP支持团队, 我已经签署了保密协议,并获得了恩智浦网站的功能安全访问权限。但是,我仍然无法找到以下与 S32K388 相关的文档: | # | 文档 | |---|----------| | 1 | S32K3xx 功能安全手册 | | 2 | S32K3xx 功能安全应用说明 | | 3 | S32K3xx FMEDA / DFA(如有) | | 4 | S32K388 功能安全附录(如适用) | 请问能否提供直接下载链接或将这些文件发送到我的邮箱? 感谢您的帮助。 此致, xlele Re: Request for Safety Manual, Safety Application Note, and S32_SPD Source/Test Packages 你好xlele, 带来不便敬请谅解。我们不允许向客户发送下载链接或文件本身。客户需要从恩智浦网站下载。 请确认您已获得安全访问权限。 1. S32K3xx 功能安全手册 4. 请从 S32K3xx 功能安全手册的附件中找到Addendum_S32K3xx.xlsx 。 2. 我不确定您指的是哪份具体文件。请在同一位置查找与“功能安全 应用笔记”类似的文档。 3. 您可以通过搜索关键词“S32K388 FMEDA”找到相应的文档。 此致敬礼, Robin
View full article
Request for Safety Manual, Safety Application Note, and S32_SPD Source/Test Packages Hi NXP Support Team, I have signed the NDA and been granted Safety Access on the NXP website. However, I am still unable to locate the following documents for S32K388: | # | Document | |---|----------| | 1 | S32K3xx Safety Manual | | 2 | S32K3xx Safety Application Note | | 3 | S32K3xx FMEDA / DFA (if available) | | 4 | S32K388 Safety Addendum (if applicable) | Could you please provide the direct download links or send these documents to my email? Thanks for your help. Best regards, xlele Re: Request for Safety Manual, Safety Application Note, and S32_SPD Source/Test Packages Hi xlele, Sorry for the inconvenience. We are not permitted to send download links or the documents themselves to our customers.  Customers need to download it from the NXP website. Please confirm that you have obtained SECURE ACCESS RIGHTS. 1. S32K3xx Safety Manual 4. Please find the Addendum_S32K3xx.xlsx from the Attachments to the S32K3xx Safety Manual. 2. I'm not sure which specific document you're referring to. Please look for a document similar to "Safety Application Note" in the same place. 3. You can find the corresponding documents by searching for the keywords "S32K388 FMEDA". Best Regards, Robin
View full article
i.MX943 S2R Resume Time Regression from LF6.12 to LF6.18 BSP: Root Cause and Workaround Platform: i.MX943 | Kernel: Linux 6.18 (LF6.18 BSP) | Category: Power Management Overview If you have migrated from LF6.12 to LF6.18 on i.MX943 and noticed that your board takes significantly longer to resume from Suspend-to-RAM (S2R), this article explains why the behavior changed, what is behind it, and what you can do to reduce the observable latency. Observed Symptom On the IMX943LP5EVK-19, the total resume latency — measured from the ONOFF key (SW5) falling edge to a GPIO toggled in user space — differs noticeably between the two BSP releases: Scenario LF6.18 LF6.12 Default BSP (PCIe enabled) ~3420 ms ~1420 ms PCIe disabled ~1060 ms ~257 ms Delta (PCIe on vs. off) ~2360 ms ~1163 ms The data shows that PCIe is the dominant contributor to the extra resume time in LF6.18. Additionally, a ~500 ms gap was observed between the kernel log messages  Restarting tasks: Done  and  random: crng reseeded on system resumption , indicating a secondary delay in the post-resume path. Root Cause Primary Cause — PCIe FLR Moved to the Resume Path A critical bug fix was introduced in LF6.18 to address a system panic during suspend on i.MX943 when PCIe-attached ENETC Ethernet ports were active. Before the fix (LF6.12): The ENETC driver called  pcie_flr()  (PCIe Function Level Reset) during the suspend phase. Under certain timing conditions,  pci_pm_suspend_noirq()  would access the PCIe device before the FLR had completed, causing a call trace and system reboot. This is a real, critical bug — though not consistently reproducible without specific peripheral configurations. What the fix does (LF6.18): To eliminate the race condition, the FLR was moved from the suspend path to the very beginning of the resume path. This is the correct and safe approach, but it comes with a latency cost: pcie_flr()  internally uses  msleep() , an asynchronous sleep that adds >100 ms of delay per call. On i.MX943, multiple ENETC ports are present. Since these FLR operations execute sequentially, the delays accumulate — resulting in the ~2360 ms overhead observed with PCIe enabled. Important: The LF6.12 resume time measurements were taken against a kernel with a latent suspend panic bug. Those numbers do not represent a stable baseline. The LF6.18 figures reflect correct, stable behavior. Secondary Cause — Post-Resume Entropy Reseeding Delay A ~500 ms delay between  Restarting tasks: Done  and  random: crng reseeded on system resumption  was also identified. This is caused by the kernel's random number generator (CRNG) reseeding process briefly blocking after tasks are unfrozen during resume. Why This Cannot Simply Be Reverted Reverting the PCIe FLR fix to recover the LF6.12 resume speed would re-expose the system to random panics during suspend — an unacceptable trade-off for any production design. The longer resume time is therefore an intentional and necessary consequence of making suspend/resume reliable on i.MX943. Recommended Workaround To address the secondary ~500 ms CRNG reseeding delay, write  1  to  /sys/power/freeze_filesystems  before entering suspend: echo 1 > /sys/power/freeze_filesystems echo mem > /sys/power/state This has been confirmed to eliminate the post-resume entropy delay. Note: Investigation also shows that the PCIe-related portion of the resume overhead (~2360 ms) is attributable to sequential FLR execution across multiple ENETC ports. Parallelizing these operations is a potential future optimization, but no timeline is committed at this point. How to Measure Resume Latency on Your Board Use the following script on i.MX943 to reproduce the measurement: # Configure GPIO_IO31 as output, pull down /unit_tests/memtool -32 0x43810044=0x80000000 /unit_tests/memtool -32 0x43810054=0x80000000 /unit_tests/memtool -32 0x43810040=0x0 # Enter suspend echo mem > /sys/power/state # After wakeup (press ONOFF/SW5), pull GPIO_IO31 high /unit_tests/memtool -32 0x43810040=0x80000000 Measure the interval between the ONOFF falling edge and the GPIO rising edge using an oscilloscope or BCU power tool. Summary Item Detail Affected platform i.MX943 (IMX943LP5EVK-19) Affected BSP LF6.18 and later Primary cause PCIe FLR moved to resume path to fix suspend panic Secondary cause CRNG reseeding delay (~500 ms) post-resume Recommended workaround echo 1 > /sys/power/freeze_filesystems PCIe resume overhead ~2360 ms (sequential FLR across ENETC ports) — by design The increased resume time in LF6.18 is expected behavior resulting from a necessary stability fix. The LF6.12 baseline was measured against a kernel with a latent suspend panic bug and should not be used as a performance reference. Upgrading from LF6.12 to LF6.18 on i.MX943 brings a noticeable increase in S2R resume latency — from ~1420 ms up to ~3420 ms under default BSP configuration. This is not a regression to be fixed, but an intentional consequence of a critical suspend panic fix introduced in LF6.18. This article explains the root cause behind the PCIe FLR timing change, the secondary CRNG reseeding delay, and provides a confirmed workaround to reduce observable resume time. i.MX Processors
View full article
S32G2 M7 implementation of PFE Ethernet through SerDes and SJA1110 on RDB2 Recently, some customers have requested that PFE be used together with SerDes and SJA1110 Switch on S32G2 M7. However, the existing PFE driver routines do not have the implementation for this function. Therefore, this article mainly aims to achieve this function, mainly completing the configuration and application of SerDes, as well as joint use with SJA1110 Switch application for the S32G2 M7 on the RDB2 board. This document can serve as a reference for customers and developers who intend to apply PFE + SerDes + SJA1110, especially for applications requiring SGMII connectivity between the processor and an external automotive Ethernet switch. This article is based on the PFE driver demo of MasterProject_RDB2 and has made some corresponding application modifications and explanations to achieve it. It is expected that this document will be useful for developers working on similar applications. S32G
View full article
How to do NAN test on 2 IW612 modules with I.MX93-EVK What is NAN? Neighbor Awareness Networking (NAN), also known as Wi-Fi Aware, is a mechanism defined by the Wi-Fi Alliance. NAN is an additional Wi-Fi interface to micro-AP (uAP), Station (STA), and Wi-Fi direct (wfd) that allows for quick discovery without the connection-association flow. The interface named: nan0.In this demo test, NAN is used to Wi-Fi locate and/or range. NXP Wi-Fi Products Supports NAN: Currently we have our IW612, IW611,AW611 and AW693 support NAN feature on Linux OS, and the remote devices should also be Linux OS or Android OS. Currently we do not support for remote device which running iOS. Below is the Release Notes showing which product in our NXP supports NAN feature. https://github.com/nxp-imx/mwifiex/blob/doc_WCT_release/doc/Release_Notes/Linux_RN/topics/wi_fi_radio.md Caution: There is typo in above release note. Actually IW610 doesn't support NAN feature. Demo setup: In this doc, the test is based on 2 IW612 module: Murata 2EL M.2 module on I.MX93-EVK which is running Linux OS, the Linux kernel is L6.12.49. IW612's driver and FW version is: SDIW612---18.99.8.p3--MM6X18542.p8-(FP92), and the nanapp in this release could not outout wls message, official working nanapp will be in next release, available in the end of March/2026. wifi_mod_para.conf SDIW612 = { cfg80211_wext=0xf max_vir_bss=1 cal_data_cfg=none ps_mode=2 auto_ds=2 host_mlme=1 drv_mode=0x17 fw_name=nxp/sduart_nw61x_v1.bin.se } Copy correct version's nanapp and mlanutl and mlanwls to 2 boards, and add execute permission. root@imx93evk:~# chmod +x nanapp root@imx93evk:~# chmod +x mlanutl root@imx93evk:~# chmod +x mlanwls Copy correct FWand driver: mlan.ko + moal.ko(Cross compiled with L6.12.49 linux kernel BSP, not included in this doc). After the I.MX93-EVK board boot up, need to unload the default L6.12.49's Wi-Fi driver, then load the newer L6.18.2 Wi-Fi driver and FW. The whole process is shown as follow: The generated wls_leader.log and wls_follower.log files contain location information. The Wireshark sniffer contains NAN-related packets. Please see attached .pdf file for more detailed steps and logs outputs. How to configure to use Wireshark capture Sniffer logs On Ubuntu PC 24.04.2 LTS? Below is the commands for your reference. sudo iw dev //Check your Wi-Fi card name. Here is:wlp111s0 for me. sudo ifconfig wlp111s0 down sudo systemctl stop NetworkManager sudo killall wpa_supplicant //Here need to stop NetworkManager and wpa_supplicant, otherwise, after we configure wlp111s0 into monitor mode, these 2 service will automatically change it to managed mode. sudo iwconfig wlp111s0 mode monitor //set wlp111s0 into monitor mode sudo iwconfig //check whether set into monitor mode successfully. Here should show Mode:monitor sudo wireshark //Need to use sudo permission to run Wireshark, otherwise, could not use Wireshark to capture sniffer. Then choose wlp111s0 to capture sniffer. Reference link: Neighbor Awareness Networking (NAN) -Application note (confidential) https://github.com/nxp-imx/mwifiex/blob/doc_WCT_release/doc/Release_Notes/Linux_RN/topics/wi_fi_radio.md Best regards, Christine.
View full article
Radar - Overview 1 Introduction Radar (Radio Detection and Ranging) is a key sensing technology in modern vehicles, used to perceive the environment by transmitting radio waves and analyzing their reflections from surrounding objects. In automotive systems, radar enables reliable detection under a wide range of weather and lighting conditions. This article introduces the automotive radar node of our demo and explains how it can be integrated into a modern vehicle electronic architecture. 2 Table of Contents •Introduction •Overview •Context •References •Conclusion 3 Overview How radar supports automotive systems Within an automotive system, the radar node plays a central role in advanced driver assistance systems (ADAS) and automated driving functions, such as adaptive cruise control, collision avoidance, and blind-spot detection. It continuously measures object presence and motion in the vehicle’s surroundings, providing robust and real-time perception data. In this implementation, the radar application is developed using NXP’s Model-Based Design Toolbox for Radar, a MATLAB add-on developed by NXP. By using this toolbox, developers can design, simulate, and generate code while leveraging the hardware accelerators available on the target platform to achieve high performance and deterministic execution. The offloading of processing to the accelerators is achieved through the integration of the NXP Radar SDK within the MATLAB environment. Target Audience This series of articles serves a wide range of engineering and technical stakeholders involved in the design, development, and integration of radar systems. This chapter outlines the intended audience: Embedded Software Engineers Radar Engineers System Architects & Vehicle Architecture Engineers Hardware Engineers Model-Based Design and MATLAB Developers Academic and Research Communities 4 Context The radar application is targeted for the NXP S32R45 MCU, a high-performance processor designed specifically for automotive radar signal processing. In the vehicle electronic architecture, the radar node is connected directly to the Central Node, which is responsible for sensor fusion and higher-level decision-making. For each radar frame, the NXP S32R45 MCU detects and processes objects in the field of view and transmits, via CAN, the distance, speed, and direction of each detected object to the Central Node. This structured data exchange enables efficient integration of radar information into the overall vehicle perception and control system.   Figure 1. Example integration of the radar node into a vehicle electronic architecture. 5 References MathWorks Model-Based Design Toolbox for RADAR Community Accelerate the Discrete Fourier Transform with NXP SPT 6 Conclusion In conclusion, the radar node is a fundamental building block of the modern vehicle electronic architecture, providing accurate and reliable perception data that enables advanced safety and automation functions. This introductory chapter has outlined the role of the radar node within the vehicle system and its contribution to environment perception for advanced driving functions. The next chapters will build on this foundation by exploring the radar signal processing chain, the implementation approach, and the main software components that enable the application on the target platform.
View full article
How to Enable Super Overdrive (SOD) Mode (2.0 GHz) on i.MX95 Some customer wants to know how to enable the SOD for MIMX9596DVZXQAC, commercial qualification in 19mm. They want to test the SOD mode which is A55 running at 2.0GHz, there is no any documentation in our NXP side explaining how to do that. Here this article give the describe and enable the Super Overdrive mode on the i.MX95. 1\Introduction the i.MX95 Voltage Operating Modes The i.MX power architecture is designed with the expectation that a dedicated PMIC supplies all required power rails, ensuring compliance with stringent power-up and power-down sequencing requirements. Majority of the digital logic is supplied with two supplies: VDD_ARM and VDD_SOC. VDD_ARM is for the CORTEXAMIX. VDD_SOC is for the rest of the modules in SoC. The VDD_SOC has following modes: Overdrive mode Nominal mode Underdrive mode Suspend mode The VDD_ARM has following modes: Super Overdrive mode Overdrive mode Nominal mode Underdrive mode Suspend mode The i.MX95 power management architecture is based on multiple performance setpoints controlled by the System Manager (SM). These setpoints control: Cortex-A55 operating frequency VDD_ARM voltage Power consumption Thermal dissipation The available performance modes are:PRK,LOW,NOM,ODV,SOD Where SOD (Super Overdrive) is available only on qualified 2.0 GHz capable devices such as MIMX9596DVZXQAC. In our datasheet we can see that for the part number only MIMX9596DVZXQAC A core support the 2.0 GHz. Details in the naming rules: For the operating ranges in our datasheet can see the details: Only the Cortex-A55 support the super overdrive mode, and for the typical voltage is 1.0V. In our reference design the VDD_ARM and VDD_SOC from different PMIC. And for the frequency of modules can also see in the datasheet, for the default setting is 1.8GHz, the maximum is 2004MHz. 2\ Enable Super Overdrive (SOD) Mode (2.0 GHz) on MIMX9596DVZXQAC Understanding about SOD mode:  The default NXP BSP SM (System Manager) code will automatically detect if the iMX 95 device it is running on is a 2.0 GHz capable device, and then the code will enable operation at 2.0 GHz with Super Overdrive voltage mode.  Linux on the iMX 95 only needs to request 2.0 GHz from the System Manager to enable it. Default BSP support code: In the download source code path : /imx95BSP/tmp/work/imx95_19x19_lpddr5_evk-poky-linux/imx-system-manager/2025q4/git/devices/MIMX95/sm/dev_sm_perf.c Or in our github source can see the code: imx-sm/devices/MIMX95/sm/dev_sm_perf.c at master · nxp-imx/imx-sm · GitHub The NXP BSP already contains logic to detect whether the device supports 2.0 GHz operation /* Check for 2+GHz device */ if (speedGrade >= 2000000000U) { /* 2+GHz devices support PRK, LOW, NOM, ODV, SOD setpoints */ s_perfNumLevels[PS_VDD_ARM] = DEV_SM_NUM_PERF_LVL_ARM; }  When the System Manager reads: speedGrade >= 2000000000 the BSP automatically: Enables the SOD performance level Enables 2.0 GHz OPP Manages required ARM voltage transitions The above code will enable the SOD without changing anything. Then in Linux you can use performance to run at 2.0GHz. Using the following command: echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor Then we can check the frequency and voltage of the VDD_ARM.  3\ Enabling SOD on a Non-2.0 GHz EVK (Evaluation Only) For evaluation on the EVK with the 1.8 GHz i.MX95, the process to enable 2.0 GHz and Super Overdrive voltage mode is to modify a single line of SM (System Manager) code so that 2 GHz is enabled even if the iMX 95 does not report 2 GHz operation is possible. Change this file: /MIMX95/sm/dev_sm_perf.c else { /* All other devices support PRK, LOW, NOM, ODV setpoints */ s_perfNumLevels[PS_VDD_ARM] = DEV_SM_NUM_PERF_LVL_ARM - 1U; }// This the the default running code for the 1.8GHz for the i.MX95 FROM: s_perfNumLevels[PS_VDD_ARM] = DEV_SM_NUM_PERF_LVL_ARM - 1U; TO: s_perfNumLevels[PS_VDD_ARM] = DEV_SM_NUM_PERF_LVL_ARM;//Force to work on the SOD mode.  Then rebuild the imx-system-manager and generate a new image. Write the images to the i.MX95 19x19 lpddr5 EVK board. Run the board and boot up. root@imx95-19x19-lpddr5-evk:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies 500000 900000 1404000 1800000 2004000 root@imx95-19x19-lpddr5-evk:~# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 2004000 BCU tool show that VDD_ARM is 1.0v when "running" at 2.0GHz and VDD_ARM is 0.9v when running at 1.8GHz, so the SOD is working. I did the the above change and tested on NXP imx95 1.8GHz 19x19 lpddr5 EVK board and the SOD worked 4\Summary So For the MIMX9596DVZXQAC the BSP is expected to automatically detect 2.0 GHz capability and enable SOD mode without source code modifications. EVK Modification The forced SM modification described above: DEV_SM_NUM_PERF_LVL_ARM is intended only for evaluation and debug purposes. It bypasses the normal speed-grade detection mechanism and should not be considered a production configuration for non-qualified devices. For the customer's MIMX9596DVZXQAC device: No BSP modification should be required. System Manager automatically checks the speed grade. If the device reports 2.0 GHz capability, SOD is enabled automatically. Linux only needs to request the highest CPU frequency. SOD operation can be verified by: Availability of 2004000 kHz CPU running at 2.0 GHz VDD_ARM increasing from ~0.9 V to ~1.0 V This confirms successful operation in Super Overdrive (SOD) Mode. IMX95EVK
View full article