Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
MPC5748G 在 SJA1105SMBEVM 上:代码闪存读取的是返回地址而不是数据;RAM/外设正常 您好, 我有一块 SJA1105SMBEVM 评估板(MPC574xB/C/G + SJA1105P/Q/R/S 网关评估套件,通过 Digi-Key 购买,货号为 568-SJA1105SMBEVM-ND)。板载 MPC5748G 的代码闪存似乎无法正常工作。我希望对以下诊断进行核实,并在申请退货授权 (RMA) 之前了解是否有已记录的恢复程序。 症状 该主板自开箱以来从未运行过其出厂固件。“Alive” LED D3(AH1721 第 5.4 节)从未闪烁过,事实上,板上的任何 LED 都从未闪烁过。 使用 S32DS for Power Architecture v2.1 和 PEmicro USB Multilink Universal 对 sja1105smbevm_tc10example 示例项目进行编程时,程序无限期地卡在以下位置: 编程顺序为:擦除、空白检查、编程和验证 {default}     CMD>VC 验证目标文件 CRC-16 校验值是否与设备范围匹配……        块 00FA0000-00FA0003 ... 它始终停留在这一点上(观察超过 14 分钟)。请注意,00FA0000-00FA0003 只有 4 个字节(RCHW),而 CMD>VC 是在擦除之前运行的预检查,因此在会话的第一次闪存读取时就会失败。 已排除 - J6 跳线:板出厂时未安装跳线,因此稳压器在上电后约 21 秒关闭(AH1721 第 6.4 节)。用跳线连接引脚 2-3 固定。现在电路板可以无限期地保持通电状态。D3 依然纹丝不动。 - PEmicro 探针固件:配置为 ARM 而不是 Qorivva MPC5xxx / ST SPC5xxx。已使用 PEFirmwareConfig.exe 进行修正,现在固件版本为 11.52,架构正确。这确实解决了另一个“空白检查期间出错”对话框的问题,该问题不再出现,但并没有解决闪存读取失败的问题。 - 启动配置中已禁用半主机模式。 - 调试移位频率从 5000 降至 1000 KHz,复位延迟增加到 500 ms,JTAG 排线重新安装在 A 端口 / J10 上。 - 审查:PEmicro 报告没有审查,并正常进入在线调试模式。 使用 S32DS 旁路进行诊断 直接运行 pegdbserver_power_console.exe 并使用 powerpc-eabivle-gdb 探测内存。 连接正常: 检测到 P&E 接口 - Flash 版本 11.52 设备 IDCODE 为 $00000082 启动重置脚本 (s32e200_mpc574xg.mac)... 将 RAM 从 $40000000 初始化为 $400BFFFF。 RESET 脚本已完成。 检测到 MPC574xG 设备。 设备型号为mpc5748g。 模式为在线调试。 内存探测结果: === RAM 写入/读取 @ 0x40001000(写入 0xDEADBEEF) === 0x40001000: 0xdeadbeef <- 确定 === SIUL2 MIDR1 @ 0xFFFC0004 === 0xfffc0004: 0x57483020 0x42004700 <- PARTNUM 0x5748,正常 === 代码闪现 ===     0xfa0000:    0x00fa0000  0x00fa0004  0x00fa0008  0x00fa000c     0xfa0010:    0x00fa0010  0x00fa0014     0xf90000:    0x00f90000  0x00f90004  0x00f90008  0x00f9000c     0x1000000:   0x01000000  0x01000004 每个闪词都会被读取为它自己的地址。那不是数据,也不是擦除后的闪存读取到的 0xFFFFFFFF。RAM 写入/读取、外设读取和寄存器读取均正常工作。 测试的地址来自示例项目自身的链接器脚本(Project_Settings/Linker_Files/linker_flash.ld): flash_rchw:org = 0x00FA0000,len = 0x4 FLASH_BASE_ADDR = 0x01000000 SRAM_BASE_ADDR = 0x40000000 这似乎可以解释这两种症状。At RESET时,BAM 从硬件中的 0x00FA0000 获取 RCHW,没有调试器参与,读取到的是垃圾数据,找不到有效的启动头,因此永远不会启动应用程序代码。空白支票/CMD>VC 都是闪存读取操作,因此编程失败。 问题 针对处于这种状态的 MPC5748G,是否有已记录的恢复程序,例如无需事先读取闪存即可进行的大容量擦除或闪存控制器重新初始化?S32DS 总是先执行验证读取,而验证读取操作会导致程序卡住,因此我一直无法尝试进行裸擦除。如果使用独立组网 (SA) 工具(例如 PROGPPCNEXUS?)是正确的方法,请告知。 否则,这块电路板是否应该被视为有缺陷? 谢谢。 Re: MPC5748G on SJA1105SMBEVM: code flash reads return address instead of data; RAM/peripherals OK 你好, 既然你能读取闪存,我估计这个设备没问题。 尝试加载一个简单的示例并进行调试。例如以下之一: https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/MPC5-software-example-list/ta-p/1102445#MPC5748G 如果在上述任何位置均未找到启动头,则 BAF 确定 设备的生命周期状态。如果生命周期在 CUST_DELIV(客户) 交付)或 MCU 生产,它尝试串行启动。否则,启动失败。 BAF 发出破坏性重置 顺祝商祺! Peter
View full article
2KL[IW610] MURATA 模块的 USB 枚举问题 您好,NXP, 我们遇到 IW610 驱动程序与基于 Ambarella 处理器的 SBC [Ambarella CV75 EVK] 配合使用的问题。IW610 HW 是村田 2KL 模块,通过 USB 接口连接到主机。 [设备设置]: 客户(VVDN)在同一主机上通过Microchip公司的USB4216 USB集线器连接5G/LTE模块和2KL模块。 【问题】:启动时,2KL模块(IW610)可以被正确检测和枚举,但5G/LTE模块检测失败。如果仅将5G/LTE模块连接到系统并重启设备,则设备枚举正常。 当枚举 2KL 模块之后枚举其他 USB 设备时,就会出现此问题。在 2KL 枚举之前枚举的所有设备均工作正常。 附件为客户控制台日志和 WiFi/BT 驱动程序调试日志。 期待您的支持。 谢谢! 潘卡杰·桑特 Re: USB ENUMERATION Issue with 2KL[IW610] MURATA MODULE 你好@pankaj 好的,我这就查看你的日志。 顺祝商祺! 肖恩 Re: USB ENUMERATION Issue with 2KL[IW610] MURATA MODULE 嗨@shaun_wu , 这个问题与外部无线电共存无关,而是与通过 USB 进行设备枚举有关。 请您协助调查所提供的日志中出现的枚举问题。如果您需要更多日志文件,请与我们联系。 Re: USB ENUMERATION Issue with 2KL[IW610] MURATA MODULE 你好@pankaj 对于多无线芯片,我们提供外部共存接口来控制无线流量。您可以按照以下指南连接和配置共存系统: https://www.nxp.com/webapp/Download?colCode=AN14410&appType=license 顺祝商祺! 肖恩
View full article
i.MX93 MIPI CSI-2: clock lane never enters HS at 200 Mbps (data lanes OK) Board: FRDM-i.MX93 (imx93-11x11-lpddr4x-frdm) BSP: Linux 6.18.2, driver phy-fsl-imx9-dphy-rx.c (fsl,imx93-dphy-rx) Camera: custom 2-lane sensor behind MAX96717 / MAX96714 GMSL2 serdes Data rate: 200 Mbps per lane, 2 lanes, continuous clock (fixed by the camera, cannot be changed) PROBLEM The clock lane never enters high speed. No frames are captured. DPHY_RX_STATUS (0x4ae00000 + 0x48) stays at CLK_LANE_HS = 0. WHAT WORKS - GMSL2 link is locked. The deserializer reports VID_LOCK=1, PKT_DET=1, and its CSI-2 output is enabled. - We have scoped the clock lane at the SoC pins. The clock lane is driven, makes the LP-11 to HS transition, and runs continuously while streaming. - Both data lanes are alive and the i.MX93 is decoding them. Polling DPHY_STOPSTATE (offset 0x4c) in a tight kernel loop shows about 500 transitions per 15 ms on each data lane. That matches the per-line data bursts from the camera, so the D-PHY low-power receivers are working and are following the HS entry requests. - The media pipeline is configured and STREAMON is accepted. WHAT DOES NOT WORK - CLK_LANE_HS never becomes 1. We checked it 20000 times in a tight kernel loop, so even a very short pulse would have been seen. - No errors are reported anywhere. INT_ST_MAIN (0x0c), INT_ST_DPHY_FATAL (0xe0) and INT_ST_DPHY (0x110) all read 0x00000000. - 0 bytes are captured. REGISTER VALUES READ ON THE RUNNING BOARD - hsfreqrange = 0x03 (the 205 Mbps row, correct for 200 Mbps) - cfgclkfreqrange = 28 (the config clock is 24 MHz, so (24-17)*4 = 28) - DPHY_STOPSTATE = 0x00000003 when idle, both data lanes in stop state WHAT WE NOTICED IN THE DRIVER The i.MX93 Reference Manual (Rev 7, section 55.3.1) says the D-PHY start-up needs hsfreqrange, cfgclkfreqrange AND osc_freq_target[11:0] to be configured. It also gives a value for counter_for_des_en_config_if in Table 541. The i.MX93 config function in phy-fsl-imx9-dphy-rx.c (imx93_dphy_config) writes only hsfreqrange and cfgclkfreqrange. It does not write osc_freq_target or counter_for_des_en_config_if. QUESTIONS 1. On i.MX93, does osc_freq_target need to be programmed? If so, how should it be written? 2. If it does not, what is supposed to make the clock lane enter HS? 3. Is 200 Mbps with a continuous clock a supported configuration on the i.MX93 CSI-2 port? Thank you.
View full article
RT117x RTC_XTAL(OSC_32K) test output pin Hello, Is there A way to test the frequency of RTC_XTAL(OSC_32K) in RT117x? I found one for 24MHz clock but not 32K in the clock tree in the reference manual. Kind regards, Marwan
View full article
i.MX93 MIPI CSI-2: クロックレーンが200MbpsでHSに進入しない(データレーンは正常) 基板:FRDM-i.MX93 (imx93-11x11-lpddr4x-frdm) BSP:Linux 6.18.2、ドライバー phy-fsl-imx9-dphy-rx.c (fsl, imx93-dphy-rx) カメラ:カスタム2レーンセンサーをMAX96717/MAX96714 GMSL2セルデス データレート:1レーンあたり200 Mbps、2レーン、連続クロック(固定 カメラは変更不可) 問題 時計車線は決して高速走行にはならない。フレームはキャプチャされませんでした。 DPHY_RX_STATUS (0x4ae00000 + 0x48) は CLK_LANE_HS = 0 のままです。 効果的な方法 - GMSL2リンクはロックされています。デシリアライザは、VID_LOCK=1、PKT_DET=1 を報告します。 また、CSI-2出力が有効になっています。 - SoCピンにおけるクロックレーンをスコープで解析しました。時計レーンは 駆動され、LP-11からHSへの移行を行い、連続運転する ストリーミング配信中。 - 両方のデータレーンは正常に動作しており、i.MX93がそれらをデコードしています。世論調査 タイトなカーネルループ内の DPHY_STOPSTATE (オフセット 0x4c) は約 500 を示しています 各データレーンにおける15ミリ秒あたりの遷移回数。これは1行あたりの料金と一致します カメラからのデータバーストが出るため、D-PHYの低出力レシーバは 勤務中で、高校の入学申請に従っています。 - メディアパイプラインの設定が完了し、STREAMONが受け入れられます。 うまくいかないこと - CLK_LANE_HS は決して 1 になりません。私たちは2万回もチェックしました カーネルループなので、非常に短いパルスでも見られたはずです。 - どこにもエラーは報告されていません。INT_ST_MAIN (0x0c) INT_ST_DPHY_FATAL (0xe0) と INT_ST_DPHY (0x110) はすべて読み取り 0x00000000。 - 0バイトがキャプチャされました。 ランニングボード上で読み取られるレジスタ値 - hsfreqrange = 0x03(205 Mbpsの行、200 Mbpsの正確) - cfgclkfreqrange = 28(設定クロックは24 MHz、つまり(24-17)*4 = 28) - DPHY_STOPSTATE = 0x00000003 アイドル時、両方のデータレーンが停止状態 ドライバに気づいたこと i.MX93リファレンス・マニュアル(Rev 7、セクション55.3.1)にはD-PHYと記載されています スタートアップにはHSFREQレンジ、CFGCLKFREQレンジ、そしてosc_freq_targetが必要[11:0] 設定されるべきです。また、counter_for_des_en_config_if の値も提供します。 表541を参照。 phy-fsl-imx9-dphy-rx.c の i.MX93 設定関数 (imx93_dphy_config) は hsfreqrange と cfgclkfreqrange のみを書き込みます。それ osc_freq_target または counter_for_des_en_config_if は書き込みません。 質問 1.i.MX93では、osc_freq_targetをプログラムする必要がありますか?もしそうなら、どのようにして 書くべきでしょうか? 2. もしそうでなければ、時計レーンがHSに入るのは何なのでしょうか? 3. 連続クロックで200 Mbpsがサポートされている構成ですか? i.MX93 CSI-2ポート? よろしくお願いします。
View full article
SJA1105SMBEVM のMPC5748G:コードフラッシュはデータではなく返元アドレスを読み取る;RAM/ペリフェラルは問題ありません こんにちは、 私はSJA1105SMBEVM評価ボード(MPC574xB/C/G + SJA1105P/Q/R/Sゲートウェイ評価キット、Digi-Key経由で568-SJA1105SMBEVM-NDとして購入)を持っています。オンボードのMPC5748Gのコードフラッシュが機能していないようです。下記の診断内容について妥当性を確認させていただきたいのと、RMA(返品承認)手続きを進める前に、文書化された回復手順が存在するかどうかを知りたいです。 兆候 この基板は開封以来、工場出荷時のファームウェアを一度も実行していません。「Alive」LED D3(AH1721セクション5.4)は一度も点滅したことがなく、実際、基板上のどのLEDも一度も点滅したことがない。 S32DS for Power Architecture v2.1とPEmicro USB Multilink Universalを使ったsja1105smbevm_tc10example例プロジェクトのプログラミングは、次の段階で無期限に止まります。 プログラミングの手順は、消去、空白チェック、プログラム、検証です(デフォルト)。     CMD>VC オブジェクトファイルのCRC-16をデバイス範囲と照合しています... ブロック 00FA0000-00FA0003 ... (14分以上観察した結果)この地点から先に進むことは決してない。00FA0000-00FA0003はわずか4バイト(RCHW)であり、CMD>VCは消去前に実行されるプリチェックなので、セッションの最初のフラッシュリードで失敗します。 既に除外済み - J6ジャンパー:ジャンパーが装着されていない基板が出荷されていたため、電源投入後約21秒でレギュレーターがシャットダウンしました(AH1721セクション6.4)。ピン2-3にジャンパー線を接続することで修正しました。基板はこれで無期限に電源供給され続ける。D3は相変わらず瞬きをしない。 - PEmicroプローブファームウェア:Qorivva MPC5xxx / ST SPC5xxxではなくARM向けに設定されました。PEFirmwareConfig.exeを使用して修正し、正しいアーキテクチャのファームウェア11.52になりました。これにより、別の「空白チェック中にエラーが発生しました」というダイアログは表示されなくなりましたが、フラッシュ読み取りエラーは解決されませんでした。 - 起動設定でセミホスティングが無効になっています。 - デバッグシフト周波数を5000kHzから1000kHzに下げ、リセット遅延を500msに上げ、JTAGリボンケーブルをポートA/J10に再接続しました。 - 検閲: PEmicro は検閲がないと報告し、正常にインサーキットデバッグモードに入ります。 S32DSバイパス時の診断 pegdbserver_power_console.exeを直接実行し、powerpc-eabivle-gdbを使用してメモリをプローブします。 接続は正常です。 P&Eインターフェース検出 - フラッシュバージョン11.52 デバイスIDコードは$00000082です リセットスクリプト(s32e200_mpc574xg.mac)を開始します...     $40000000から$400BFFFFまでのRAMを初期化しています。 リセットスクリプトが完了しました。 MPC574xG デバイスが検出されました。 デバイスはmpc5748gです。 モードはインサーキットデバッグです。 メモリプローブの結果: === RAM書き込み/読み出し @ 0x40001000 (0xDEADBEEFに書き込み) ===     0x40001000:  0xdeadbeef                                    <- OK     === SIUL2 MIDR1 @ 0xFFFC0004 ===     0xfffc0004:  0x57483020  0x42004700                        <- PARTNUM 0x5748、OK === コードフラッシュ ===     0xfa0000:    0x00fa0000  0x00fa0004  0x00fa0008  0x00fa000c     0xfa0010:    0x00fa0010  0x00fa0014     0xf90000:    0x00f90000  0x00f90004  0x00f90008  0x00f9000c     0x1000000:   0x01000000  0x01000004 フラッシュワードはそれぞれ、自身のアドレスとして読み上げられる。それはデータではなく、消去されたフラッシュメモリが読み取るであろう0xFFFFFFFFでもありません。RAMの書き込み/読み取り、ペリフェラルの読み取り、レジスタの読み取りはすべて正常に動作します。 テスト対象のアドレスは、サンプルプロジェクト自身のリンカースクリプト(Project_Settings/Linker_Files/linker_flash.ld)からのものです。     flash_rchw      : org = 0x00FA0000、len = 0x4 FLASH_BASE_ADDR = 0x01000000 SRAM_BASE_ADDR = 0x40000000 これは両方の症状を説明しているように思われる。リセット時、BAMはハードウェアのRchWを0x00FA0000から取得し、デバッガを使わずにゴミデータを読み込み、有効なブートヘッダーを見つけず、アプリケーションコードを起動しません。そしてブランクチェック/CMD>VCはどちらもフラッシュ読み取りなので、プログラミングは失敗します。 質問 この状態のMPC5748Gに対して、例えばマス消去やフラッシュコントローラの再初期化など、事前のフラッシュ読み取りを必要としない文書化された復旧手順はありますか?S32DSは常に最初に検証読み取りを行いますが、これがハングする操作なので、裸消去を試みることはできませんでした。スタンドアロンツール(PROGPPCNEXUSなど)が適切なアプローチであれば、ご教示ください。 そうでなければ、この基板は不良品として扱われるべきでしょうか? ありがとうございます。 Re: MPC5748G on SJA1105SMBEVM: code flash reads return address instead of data; RAM/peripherals OK こんにちは、 フラッシュメモリを読み取れるということは、そのデバイスは正常だと思います。 簡単なサンプルを読み込んでデバッグしてみてください。例えば、以下のいずれかの例: https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/MPC5-software-example-list/ta-p/1102445#MPC5748G 上記のいずれの場所にもブートヘッダーが見つからない場合、BAFは デバイスのライフサイクルステータス。ライフサイクルがCUST_DELIV(顧客)にある場合 Delivery)またはMCUプロダクションで、シリアルブートを試みます。そうでなければ、ブートは失敗しました。 そしてBAFは破壊的なリセットを発行する よろしくお願いいたします。 ピーター
View full article
i.MX93 MIPI CSI-2:时钟通道在 200 Mbps 速率下始终无法进入高速模式(数据通道正常) 主板:FRDM-i.MX93 (imx93-11x11-lpddr4x-frdm) BSP:Linux 6.18.2,驱动程序 phy-fsl-imx9-dphy-rx.c (fsl,imx93-dphy-rx) 摄像头:MAX96717 / MAX96714 GMSL2 串行器/解串器后方的定制双车道传感器 数据速率:每通道 200 Mbps,2 条通道,连续时钟(由……固定) (摄像头,无法更改) 问题 时钟车道永远不会进入高速行驶状态。未捕获任何帧。 DPHY_RX_STATUS (0x4ae00000 + 0x48) 保持 CLK_LANE_HS = 0。 哪些方法有效 - GMSL2 链路已锁定。反序列化器报告 VID_LOCK=1,PKT_DET=1, 并且其 CSI-2 输出已启用。 - 我们已经对 SoC 引脚的时钟通道进行了测量。时钟车道是 驱动后,完成 LP-11 到 HS 的转换,并持续运行 直播时。 - 两条数据通道均已启用,i.MX93 正在解码它们。轮询 在紧凑的内核循环中,DPHY_STOPSTATE(偏移量 0x4c)显示大约 500 每条数据通道每 15 毫秒的转换次数。这与每行数据相符。 由于摄像头会发出数据突发,因此需要使用D-PHY低功耗接收器。 正在努力工作,并按照高中入学申请流程进行操作。 - 媒体管道已配置,STREAMON 已被接受。 哪些方法行不通? - CLK_LANE_HS 永远不会变为 1。我们在严密的环境下检查了20000次。 由于是内核循环,所以即使是很短的脉冲也会被检测到。 - 未报告任何错误。INT_ST_MAIN (0x0c) INT_ST_DPHY_FATAL (0xe0) 和 INT_ST_DPHY (0x110) 均被读取 0x00000000。 - 捕获到 0 字节。 读取仪表盘上的寄存器值 - hsfreqrange = 0x03(205 Mbps 行,更正为 200 Mbps) - cfgclkfreqrange = 28(配置时钟为 24 MHz,因此 (24-17)*4 = 28) - 当空闲时,DPHY_STOPSTATE = 0x00000003,两条数据通道均处于停止状态 我们注意到司机身上的一些特点 i.MX93 参考手册(修订版 7,第 55.3.1 节)指出 D-PHY 启动需要 hsfreqrange、cfgclkfreqrange 和 osc_freq_target[11:0] 待配置。它还为 counter_for_des_en_config_if 提供了一个值 见表541。 phy-fsl-imx9-dphy-rx.c 中的 i.MX93 配置函数 (imx93_dphy_config)仅写入 hsfreqrange 和 cfgclkfreqrange。它 不写入 osc_freq_target 或 counter_for_des_en_config_if。 问题 1.在 i.MX93 上,是否需要对 osc_freq_target 进行编程?如果是这样,该如何操作? 应该写下来吗? 2. 如果不是这样,是什么原因导致时钟通道进入高速通道? 3. 200 Mbps 的速率和连续时钟是否是受支持的配置? i.MX93 CSI-2 端口? 谢谢!
View full article
2KL[IW610] MURATAモジュールにおけるUSB列挙の問題 こんにちは、NXPさん。 AnbarellaプロセッサベースのSBC(Ambarella CV75 EVK)でIW610ドライバが動作する問題が発生しています。IW610ハードウェアは、USBインターフェースでホストに接続された村田2KLモジュールです。 [デバイス設定]: 構成は、顧客(VVDN)がMicrochipのUSB HUB-USB4216を介して同じホスト上で5G/LTEモジュール+2KLモジュールを使用しているというものです。 [問題]:起動時に2KLモジュール(IW610)は正しく検出・列挙されていますが、5G/LTEモジュールの検出が失敗しています。5G/LTEモジュールだけをシステムに接続した状態で再起動すると、正しく列挙されます。 この問題は、2KLモジュールの列挙後に他のUSBデバイスが列挙される際に発生します。2KL列挙前に列挙されたすべてのデバイスは正常に動作します。 添付は顧客のコンソールログとWiFi/BTドライバのデバッグログです。 皆さまのサポートを心よりお待ちしています。 ありがとうございます パンカジ・サント Re: USB ENUMERATION Issue with 2KL[IW610] MURATA MODULE こんにちは、 @pankaj さん。 はい、ログを確認させてください。 よろしくお願いいたします。 ショーン Re: USB ENUMERATION Issue with 2KL[IW610] MURATA MODULE こんにちは@shaun_wuさん この問題は、外部無線機器との共存とは関係なく、USB経由のデバイス列挙に関するものです。 提供されたログの列挙問題を調査するサポートはできますか?追加のログが必要な場合はお知らせください。 Re: USB ENUMERATION Issue with 2KL[IW610] MURATA MODULE こんにちは、 @pankaj さん。 複数無線チップの場合、無線通信を制御するための外部共存インターフェースを提供しています。共存環境の接続と設定については、以下のガイドを参照してください。 https://www.nxp.com/webapp/Download?colCode=AN14410&appType=license よろしくお願いいたします。 ショーン
View full article
MPC5748G on SJA1105SMBEVM: code flash reads return address instead of data; RAM/peripherals OK Hi, I have an SJA1105SMBEVM evaluation board (MPC574xB/C/G + SJA1105P/Q/R/S Gateway Evaluation Kit, purchased via Digi-Key as 568-SJA1105SMBEVM-ND). The onboard MPC5748G appears to have non-functional code flash. I would like a sanity check on the diagnosis below, and to know whether there is a documented recovery procedure before I pursue an RMA. SYMPTOM The board has never executed its factory firmware since unboxing. The "Alive" LED D3 (AH1721 section 5.4) has never blinked, and in fact no LED on the board has ever blinked. Programming the sja1105smbevm_tc10example example project with S32DS for Power Architecture v2.1 and a PEmicro USB Multilink Universal hangs indefinitely at:     Programming sequency is : erase, blank check, program, and verify {default}     CMD>VC     Verifying object file CRC-16 to device ranges ...        block 00FA0000-00FA0003 ... It never advances past this point (observed for more than 14 minutes). Note that 00FA0000-00FA0003 is only 4 bytes (the RCHW), and CMD>VC is a pre-check that runs before erase, so this is failing on the very first flash read of the session. ALREADY RULED OUT - J6 jumper: board shipped with no jumper installed, so the regulators shut down about 21 s after power-up (AH1721 section 6.4). Fixed with a jumper on pins 2-3. The board now stays powered indefinitely. D3 still never blinks. - PEmicro probe firmware: was configured for ARM rather than Qorivva MPC5xxx / ST SPC5xxx. Corrected with PEFirmwareConfig.exe, now firmware 11.52 with the correct architecture. This did resolve a separate "Error during blank check" dialog, which no longer occurs, but it did not resolve the flash read failure. - Semihosting disabled in the launch configuration. - Debug Shift Freq lowered from 5000 to 1000 KHz, reset delay raised to 500 ms, JTAG ribbon reseated on Port A / J10. - Censorship: PEmicro reports no censorship and enters In-Circuit Debug mode normally. DIAGNOSTICS WITH S32DS BYPASSED Driving pegdbserver_power_console.exe directly and probing memory with powerpc-eabivle-gdb. Connection is clean:     P&E Interface detected - Flash Version 11.52     Device IDCODE is $00000082     Starting reset script (s32e200_mpc574xg.mac) ...     Initializing RAM from $40000000 to $400BFFFF.     Reset script completed.     MPC574xG Device detected.     Device is mpc5748g.     Mode is In-Circuit Debug. Memory probe results:     === RAM write/readback @ 0x40001000 (wrote 0xDEADBEEF) ===     0x40001000:  0xdeadbeef                                    <- OK     === SIUL2 MIDR1 @ 0xFFFC0004 ===     0xfffc0004:  0x57483020  0x42004700                        <- PARTNUM 0x5748, OK     === code flash ===     0xfa0000:    0x00fa0000  0x00fa0004  0x00fa0008  0x00fa000c     0xfa0010:    0x00fa0010  0x00fa0014     0xf90000:    0x00f90000  0x00f90004  0x00f90008  0x00f9000c     0x1000000:   0x01000000  0x01000004 Every flash word reads back as its own address. That is not data, and not 0xFFFFFFFF as erased flash would read. RAM writes/reads, peripheral reads, and register reads all work correctly. The addresses tested are the ones from the example project's own linker script (Project_Settings/Linker_Files/linker_flash.ld):     flash_rchw      : org = 0x00FA0000, len = 0x4     FLASH_BASE_ADDR = 0x01000000     SRAM_BASE_ADDR  = 0x40000000 This appears to explain both symptoms. At reset the BAM fetches the RCHW from 0x00FA0000 in hardware, with no debugger involved, reads garbage, finds no valid boot header, and never starts application code. And blank check / CMD>VC are both flash reads, so programming fails. QUESTION Is there a documented recovery procedure for an MPC5748G in this state, for example a mass erase or flash controller re-initialization that does not require a preceding flash read? S32DS always performs the verify read first, which is the operation that hangs, so I have not been able to attempt a bare erase. If a standalone tool is the correct approach (PROGPPCNEXUS?), please advise. Otherwise, should this board be treated as defective? Thanks. Re: MPC5748G on SJA1105SMBEVM: code flash reads return address instead of data; RAM/peripherals OK Hello, Since you are able to read flash, I expect that device is good. Try to load simple example and debug it. For example one of these: https://community.nxp.com/t5/MPC5xxx-Knowledge-Base/MPC5-software-example-list/ta-p/1102445#MPC5748G If no boot header is found in any of the locations mentioned above, the BAF determines the Life Cycle status of the device. If the Life Cycle is in CUST_DELIV (Customer Delivery) or MCU Production, it attempts a serial boot. Otherwise, the boot has failed and BAF issues a destructive reset Best regards, Peter
View full article
USB ENUMERATION Issue with 2KL[IW610] MURATA MODULE Hi NXP, We have an issue with the IW610 DRIVER working with Ambarella processor-based SBC [Ambarella CV75 EVK]. The IW610 HW is the Murata 2KL Module which is connected to the host over USB interface.  [DEVICE SETUP]:  The setup is that the customer (VVDN) is using a 5G/LTE module + 2KL Module on the same host through a USB HUB -USB4216 from Microchip.  [ISSUE]: At boot up the 2KL MODULE (IW610) is detected and enumerated correctly, but the 5G/LTE module detection is failing.  If the device is rebooted  with the 5G/LTE modules only connected to the system it enumerates correctly.  The issue is seen whenever the other USB devices are getting enumerated post the enumeration of the 2KL module. All devices enumerated before the 2KL enumeration work correctly.  Attached is the customer console logs and WiFi/BT driver Debug logs. Looking forward to your support. Thanks, Pankaj Sant Re: USB ENUMERATION Issue with 2KL[IW610] MURATA MODULE Hello @pankaj  Sure let me check your logs. Best Regards Shaun Re: USB ENUMERATION Issue with 2KL[IW610] MURATA MODULE Hi @shaun_wu , The issue is not related to external radio co existence but with the device enumeration over USB. Can you support to investigate the enumeration issue with the provided logs. incase if you need additional logs kindly let us know. Re: USB ENUMERATION Issue with 2KL[IW610] MURATA MODULE Hello @pankaj  For multiple radio chip, we provide external coexistence interface to control radio traffic. You may follow the guide to connect and configure coexistence:  https://www.nxp.com/webapp/Download?colCode=AN14410&appType=license  Best Regards Shaun
View full article
16MHz external crystal not working on the S32K314HMS custom board Hi, I am facing an issue with an external crystal of 16MHz not working with S32K314HMS custom board. I am using a build created from S32 Design Studio for S32 Platform Version: 3.6.9 Build id: 260624. I am using raw code to test the board function, as shown below in main.c: #include /* Corrected Raw Hardware Register Addresses for S32K314 */ #define SIUL2_MSCR_PTB5 (*(volatile uint32_t*)(0x40290294U)) #define MC_CGM_CLKOUT_CNTRL (*(volatile uint32_t*)(0x402D4000U)) /* --- CORRECTED FXOSC REAL ADDRESSES --- */ #define FXOSC_CTRL_REG (*(volatile uint32_t*)(0x40288000U)) /* Corrected from 402D4000 */ #define FXOSC_STAT_REG (*(volatile uint32_t*)(0x40288004U)) /* Corrected from 402D4004 */ volatile uint32_t rawTimeoutCounter = 0; volatile uint32_t crystalStableResult = 0; int main(void) { /* 1. RAW PIN SETUP: Configure PTB5 as a High-Drive Output mapped to CLKOUT */ SIUL2_MSCR_PTB5 = (5U << 0) | (1U << 21) | (1U << 19); /* 2. RAW CLOCK ROUTING: Route the Raw FXOSC clock directly to the CLKOUT hardware block */ MC_CGM_CLKOUT_CNTRL = (1U << 24) | (0U << 16); /* Source = FXOSC_CLK, Divider = 1, Enable = 1 */ /* 3. RAW HARDWARE KICKSTART: Power on the External Crystal (FXOSC) analog circuitry */ FXOSC_CTRL_REG |= 0x01U; /* 4. NON-BLOCKING SOFTWARE POLL We read the raw hardware status register. If a crystal is physically oscillating, the status register will flip a hardware bit or report a non-zero value. */ for (rawTimeoutCounter = 0; rawTimeoutCounter < 800000U; rawTimeoutCounter++) { /* Check if the FXOSC status register reports it is locked and stable (Bit 31) */ if ((FXOSC_STAT_REG & 0x80000000U) != 0U) { crystalStableResult = 1; /* HW SUCCESS: Crystal is alive and shaking! */ break; } } /* 5. PASS / FAIL EVALUATION PADS */ if (crystalStableResult == 1) { /* --- CRYSTAL HARDWARE PASSED --- */ for (;;) { __asm("NOP"); /* Put a breakpoint here for success */ } } else { /* --- CRYSTAL HARDWARE FAILED --- */ for (;;) { __asm("NOP"); /* Put a breakpoint here for a safe failure catch */ } } return 0; } I am attaching the board schematic for your reference. board_schematic.pngboard_schematic.png   Also attaching the .mex configuration for your reference. Re: 16MHz external crystal not working on the S32K314HMS custom board Hello @sksingh4476 , a 16 MHz crystal is within the supported FXOSC crystal frequency range for the S32K3 family, so the crystal frequency itself should not be the issue. However, from the raw code snippet it is not clear whether the complete FXOSC configuration is being applied. In particular, please check the FXOSC gain/transconductance setting (GM_SEL). In crystal mode, GM_SEL = 0000b should not be used, because this corresponds to zero transconductance and the oscillator may not start or become stable. Regarding the mex file: The generated clock initialization code must be called by the application. If the test code bypasses the generated RTD initialization and writes only a few registers manually, then all mandatory FXOSC settings, including GM_SEL, must also be configured manually. I would recommend first creating any standard S32DS/RTD example project and configuring the FXOSC through the Clock Configuration tool. Please verify whether the external crystal starts correctly with the generated RTD clock initialization code. This is a better baseline than starting directly with a minimal raw-register test, because the generated configuration should include all required FXOSC settings, including the oscillator mode and gain configuration. If the standard example works, you can then compare the generated FXOSC register values with your minimal code and gradually reduce the code to the smallest required sequence. If the standard example does not work either, then the next step should be to check the hardware side, especially the crystal parameters, ESR, load capacitors including PCB stray capacitance, layout around EXTAL/XTAL, and the gain margin calculation. The datasheet specifies the oscillator build-up condition using gmXOSC > 5 * gm_crit, so the selected crystal and external components should be verified against this requirement. Best regards, Pavel
View full article
RT117x RTC_XTAL(OSC_32K) 测试输出引脚 你好, RT117x中是否有办法测试RTC_XTAL(OSC_32K)的频率? 我在参考手册的时钟树中找到了 24MHz 时钟的,但没有找到 32K 时钟的。 此致敬礼, 马尔万
View full article
定制 i.MX95 设计:当使用不同的 REFCLK 源时,PCIE1 和 PCIE2 能否形成 PCIe x2 链路? 您好,NXP团队, 我们正在开发基于 i.MX95 的定制设计。 在我们的设计中,PCIE1 REFCLK 来自 i.MX95 PCIe 时钟输出,而 PCIE2 REFCLK 来自外部时钟发生器。 鉴于 PCIE1 和 PCIE2 使用不同的 REFCLK 源,它们还能组合成 PCIe x2 链路吗? 附图为简化的示意图,供您参考。在我们的自定义设计中,PCIE1 REFCLK 和 PCIE2 REFCLK 由不同的源生成。 (PCIE1_REF_PAD_CLK 为 10K 端接,PCIE2_REF_PAD_CLK_P 由时钟发生器 (U22) 提供时钟信号) Screenshot 2026-08-17 110108.pngScreenshot 2026-08-17 110108.png   谢谢! Re: Custom i.MX95 Design: Can PCIE1 and PCIE2 Form a PCIe x2 Link When Using Different REFCLK Source @Louisliyuan 不——i.MX95 上的 PCIE1 和 PCIE2 不能合并成一条 PCIe x2 链路。i.MX95 PCIe 子系统有两个 PCIe Gen 3.0 接口,每个接口支持 x1 通道,配备两个单通道 SerDes 控制器和两个单通道 PHY。 这意味着 PCIE1 和 PCIE2 是独立的 x1 PCIe 链路,而不是一个 x2 控制器的两条通道。 所以,对于您的定制设计: PCIE1 可以使用 i.MX95 PCIe 时钟输出/参考时钟架构作为 x1 链路运行。 PCIE2 可以使用外部时钟发生器作为独立的 x1 链路运行,但需满足已记录的独立参考时钟要求,例如时钟发生器差异限制为 300 ppm。 在 i.MX95 上,PCIE1 + PCIE2 不能合并成单个 x2 PCIe 链路。  
View full article
Custom i.MX95 Design: Can PCIE1 and PCIE2 Form a PCIe x2 Link When Using Different REFCLK Sources? Hello NXP Team, We are developing a custom i.MX95-based design. In our design, PCIE1 REFCLK is sourced from the i.MX95 PCIe clock output, while PCIE2 REFCLK is sourced from an external clock generator. Given that PCIE1 and PCIE2 use different REFCLK sources, can they still be combined to form a PCIe x2 link? A simplified schematic snippet is attached for reference. PCIE1 REFCLK and PCIE2 REFCLK are generated from different sources in our custom design. (PCIE1_REF_PAD_CLK are 10K terminated, PCIE2_REF_PAD_CLK_P are sourced from clock generator(U22)) Screenshot 2026-08-17 110108.pngScreenshot 2026-08-17 110108.png   Thank you. Re: Custom i.MX95 Design: Can PCIE1 and PCIE2 Form a PCIe x2 Link When Using Different REFCLK Source @Louisliyuan  No — PCIE1 and PCIE2 on i.MX95 cannot be combined into one PCIe x2 link. The i.MX95 PCIe subsystem has two PCIe Gen 3.0 interfaces, each supporting x1 lane , with two single-lane SerDes controllers and two single-lane PHYs.  That means PCIE1 and PCIE2 are independent x1 PCIe links, not two lanes of one x2 controller. so, for your custom design: PCIE1 can operate as an x1 link using the i.MX95 PCIe clock output/reference-clock architecture. PCIE2 can operate as an independent x1 link using the external clock generator, subject to the documented separate-reference-clock requirements such as the clock-generator difference limit of 300 ppm . PCIE1 + PCIE2 cannot be combined into a single x2 PCIe link on i.MX95  
View full article
RT117x RTC_XTAL(OSC_32K) テスト出力ピン こんにちは、 RT117xでRTC_XTAL(OSC_32K)の周波数をテストする方法はありますか? 24MHzのクロック用のものは見つかりましたが、リファレンスマニュアルのクロックツリーには32Kはありませんでした。 敬具 マルワン
View full article
カスタムi.MX95設計:異なるREFCLKソースを使用した場合、PCIE1とPCIE2がPCIe x2リンクを形成できますか? NXPチームの皆様、こんにちは。 私たちはカスタムのi.MX95ベースの設計を開発しています。 当社の設計では、PCIE1 RECCLKはi.MX95 PCIeクロック出力から供給され、PCIE2 RECCLKは外部クロックジェネレーターから供給されています。 PCIE1とPCIE2は異なるREFCLKソースを使用しているにもかかわらず、それらを組み合わせてPCIe x2リンクを形成することは可能でしょうか? 参考のために、簡略化した回路図の一部を添付します。PCIE1 REFCLKとPCIE2 REFCCLKは、カスタム設計で異なるソースから生成されます。 (PCIE1_REF_PAD_CLKは10KΩ終端、PCIE2_REF_PAD_CLK_Pはクロックジェネレータ(U22)から供給されます) Screenshot 2026-08-17 110108.pngスクリーンショット 2026-08-17 110108.png   よろしくお願いします。 Re: Custom i.MX95 Design: Can PCIE1 and PCIE2 Form a PCIe x2 Link When Using Different REFCLK Source @Louisliyuan  いいえ — i.MX95上のPCIE1とPCIE2は1つのPCIe x2リンクに統合できません。i.MX95 PCIeサブシステムは、x1レーンをサポートする2つのPCIe Gen 3.0インターフェースを持ち、2つのシングルレーンのSerDesコントローラと2つのシングルレーンのPHYを備えています。 つまり、PCIE1とPCIE2は独立したx1 PCIeリンクであり、1つのx2コントローラーが2レーンになるわけではありません。 SO,あなたのカスタムデザインについて: PCIE1はi.MX95 PCIeクロック出力/参照クロックアーキテクチャを用いてx1リンクとして動作可能です。 PCIE2は外部クロックジェネレーターを用いた独立したx1リンクとして動作可能であり、クロック-ジェネレーター差制限300 ppmなどの文書化された別リファレンスクロック要件に従います。 PCIE1 + PCIE2はi.MX95上で単一のx2 PCIeリンクに統合することはできません  
View full article
S32K328 的 GMAC RX 中断 我使用的是 S32K328 的 GMAC,想使用中断方法从我的 PC 接收数据包。但发现了一些不同的现象: 1. 可以调用中断处理程序 GMAC0_CH0_RX_IRQHandler,并正常接收数据包。 2. PC 发送数据包后,GMAC0_CH0_RX_IRQHandler 被调用了数秒。 3. GMAC0_CH0_RX_IRQHandler 无法调用,且未收到数据包? 原因可能是什么?如何解决这个问题? Re: GMAC RX interrupt of S32K328 你好@zyt , 感谢您分享配置信息。由于我没有 EB Tresos 设备,所以我根据提供的文件手动检查了 GMAC 的配置。 我将您的 Eth_43_GMAC 配置与一个可正常运行的 S32K358 GMAC 1G lwIP FreeRTOS 参考项目进行了比较。一个显著的区别是出口 FIFO 配置。在您的项目中,出口 FIFO 缓冲区长度配置为 128 字节,MTL 出口队列大小为 256 字节。而在参考项目中,出口 FIFO 缓冲区长度为 1536 字节,MTL 出口队列大小为 4096 字节。   如果您的应用程序发送任何帧或上层发送响应,则这种小型 TX/Egress 配置对于标准以太网帧来说可能过于有限,尤其是在 1G RGMII 模式下。请尝试增加以下数值:   - 将 EthCtrlConfigEgressFifoBufLenByte 设置为 1536 - 将 EthCtrlConfigMTLEgressQueueSizeInBytes 设置为 4096   对于 RX 路径,RX 缓冲区长度本身为 1536 字节,这看起来很合理。但是,您的 MTL Ingress 队列大小也是 1536 字节,而参考项目使用 4096 字节。因此,作为另一项测试,请尝试增加以下数值:   - 将 EthCtrlConfigMTLIngressQueueSizeInBytes 设置为 4096   另外,为了进行调试,请暂时启用接收所有模式。您当前的配置已禁用 PKT_FILTER_RECV_ALL,而参考项目已启用它。这有助于将 MAC 过滤从分析中排除。   此外,还有其他一些区别,例如EthEnableCacheManagement 和 EthCtrlReleaseResourceAfterReception,但这未必是错误的。   顺祝商祺! 帕维尔 Re: GMAC RX interrupt of S32K328 你好: 我尝试过单播帧和广播帧,每帧之间的延迟是 1 秒,我觉得这速度已经够慢了。 现象相同,开始时没有 RxStatsDropEvents,但几帧后就会出现。 我的EB配置如附件所示,请帮忙检查一下是否方便您使用。 谢谢。 Re: GMAC RX interrupt of S32K328 你好@zyt , RxStatsDropEvents 表明 GMAC 接收到了一些帧,但这些帧在接收路径中的某个地方被丢弃了。这可能与接收资源可用性、接收 FIFO/队列处理、描述符/缓冲区可用性、数据包过滤或上层接收处理有关。   请尝试以下检查:   1. 请从 PC 缓慢发送相同的单播帧,例如一次发送一帧或帧之间延迟较大,并比较测试前后的 RX 统计数据。如果 RxStatsDropEvents 不再增加,则问题可能与 RX 缓冲区回收、处理时间或来自 PC 的突发流量有关。   2. 请用广播帧重复测试,然后用精确到 GMAC 驱动程序中配置的 MAC 地址的单播帧重复测试。这有助于排除 MAC 地址/过滤问题。   请同时检查RGMII时钟和外设配置。作为参考,我在NXP社区发布了一个S32K358 GMAC示例: https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K358-GMAC-1G-lwIP-FreeRTOS-S32DS-3-6-1-RTD600/ta-p/2355872     请注意,此示例适用于 S32K358,而不是 S32K328,因此未经检查 S32K328 引脚排列和时钟配置,不得直接复制。但是,它可以作为整体时钟设置、Eth_43_GMAC 配置和 DCMRWF 寄存器解决方法的参考。   如果可以的话,能否也分享一下您压缩后的项目文件?如果没有该项目,很难确定丢包是由配置、RX 资源处理、队列路由还是应用程序接收路径引起的。 顺祝商祺! 帕维尔 Re: GMAC RX interrupt of S32K328 你好: 我通过 RTD 函数 Eth_43_GMAC_GetRxStats 读取帧信息,看起来有丢帧事件。 zyt_0-1787017861198.pngzyt_0-1787017861198.png RX 流全部由 RTD 处理,如下所示,我没有修改。 GMAC0_CH0_RX_IRQHandler > GMAC_RxIRQHandler > Eth_43_GMAC_RxIrqCallback > Eth_43_GMAC_Receive 造成这种情况的原因可能是什么?谢谢。 Re: GMAC RX interrupt of S32K328 你好@zyt , 谢谢你提供的详细信息。   请同时根据此帖检查 Pins/Clocks/device_init(): S32K358 - GMAC 时钟配置   从截图中可以看出,GMAC0 中断向量似乎已配置并映射到 RTD 处理程序,包括 GMAC0_CH_0_RX_IRQHandler。由于有时会进入此处理程序并接收到帧,因此基本的中断路由看起来并没有完全错误。   但是,在使用 AUTOSAR Eth_43_GMAC 驱动程序时,请同时检查底层 IRQ 处理程序之上的接收流程。RX 中断处理程序本身通常不是完整的应用程序级接收处理。应用程序或上层仍然需要调用预期的 Eth_43_GMAC 接收 API 流程,例如 Eth_43_GMAC_Receive(),以便从驱动程序读取接收到的帧,并通过配置的回调路径进一步传递。   请检查以下几点:   1. 请确认 Eth_43_GMAC_Receive() 是否在 RX 中断事件之后调用,或者根据您的应用程序设计,是否定期从您的主/任务上下文中调用。如果发生中断,但接收到的帧没有从 RX 缓冲区中被消耗,则后续帧可能无法按预期接收。   2. 请验证接收到的单播帧目标 MAC 地址是否与 GMAC 驱动程序中配置的 MAC 地址完全匹配。为了进行调试,您可以暂时启用接收所有/混杂模式,以排除 MAC 过滤作为原因。   3. 请检查使用的是哪个接收队列/FIFO。您的屏幕截图显示了 CH0、CH1 和 CH2 的 RX 中断处理程序。如果数据包过滤器或队列配置将帧路由到另一个 RX 队列,则应用程序必须使用相应的 FIFO 索引调用接收函数并正确处理该队列。   4. 请验证接收缓冲区/描述符的可用性。接收到帧并处理完毕后,驱动程序必须能够再次重用或获取 RX 缓冲区。如果接收缓冲区耗尽,第一帧可能被正确接收,但后面的帧可能会延迟或丢失。   5. 如果启用了缓存,请验证 GMAC 描述符和 RX 缓冲区是否放置在不可缓存的内存区域中,或者是否执行了所需的缓存维护。否则,CPU 可能会看到过时的描述符状态或过时的接收数据。   6. 由于帧是从 Python 脚本以单播帧的形式发送的,请通过 Wireshark 确认 PC 是否确实连续发送了具有预期目标 MAC 地址的帧。如果某些帧需要地址解析,或者目标地址无法按预期到达,则 PC 端可能会引入重试或延迟,这在 MCU 端可能看起来像是延迟的 RX 中断行为。   作为参考,我建议先将该项目与改编的 S32K3 Ethernet/lwIP 示例进行比较。这有助于确认 RGMII PHY 接口、时钟、MAC 地址和基本 RX 路径是否正常工作,然后再关注自定义 AUTOSAR Eth_43_GMAC 中断接收实现。   如果问题仍然存在,请分享应用程序的 Eth_43_GMAC 接收部分,特别是调用 Eth_43_GMAC_Receive() 的位置、RX FIFO 配置、MAC 地址/过滤器配置以及故障后的 GMAC DMA/MTL/MAC 状态寄存器。 贝茨致意, 帕维尔 Re: GMAC RX interrupt of S32K328 Hello: 1. I use RGMII 2. I use  RTD 6.0.0. 3. I use Eth_43_GMAC driver. 4. Interrupt is like below: zyt_0-1786962682804.pngzyt_0-1786962682804.png 5. I send unicast frames with python script. All the packages I send are the same, and GMAC0_CH0_RX_IRQHandler is from RTD which is the lowest handler like picture above. Re: GMAC RX interrupt of S32K328 你好@zyt , 您能否提供更多关于您设备配置的详细信息?   1. 你在 S32K328 上使用的是哪个 MAC/PHY 接口,例如 MII、RMII 或 RGMII? 2. 您使用的是哪个版本的S32K3 RTD? 3. 您使用的是 AUTOSAR MCAL Eth_43_GMAC 驱动程序还是底层 GMAC IP 驱动程序? 4. 能否分享一下相关的中断配置以及 GMAC0_CH0_RX_IRQHandler 的实现? 5. PC 发送的是哪种类型的帧,例如 ping/ICMP、UDP、原始以太网帧、广播帧或单播帧?   作为参考测试,我还建议首先尝试使用修改后的 S32K3 Ethernet/lwIP 示例来重现该行为。这有助于将基本的 GMAC/PHY/时钟/配置问题与特定应用中断或 RX 缓冲区处理问题区分开来。     关于症状,如果 RX 中断有时会被调用,并且可以正确接收帧,则基本的 RX 路径可能至少部分有效。然而,这种不一致的行为仍然可能由以下几点之一造成:   - RX 缓冲区或描述符处理:在处理接收到的帧之后,必须将 RX 缓冲区/描述符返回给驱动程序/DMA。如果操作不当,RX 缓冲区可能变得不可用,并且进一步的 RX 中断可能会停止或变得不一致。   - 中断处理:请确保 RX 中断已配置为正确的 GMAC 通道,并且使用了预期的驱动程序中断处理程序/状态清除流程。如果中断状态未正确清除,则以下 RX 事件可能无法按预期报告。   - 缓存/内存一致性:如果启用了缓存,请验证 GMAC 描述符和 RX 缓冲区是否放置在合适的不可缓存内存区域中,或者是否执行了所需的缓存维护。否则,CPU 可能会看到过时的描述符状态或过时的接收数据。   - 数据包过滤/MAC 地址:为了调试目的,请尝试暂时启用接收所有/混杂模式。这有助于检查帧是否被 MAC 地址过滤器、VLAN 过滤器或其他数据包过滤器设置拒绝。   - 帧类型和 PC 行为:如果 PC 发送 ping 等 IP 流量,则在发送 ICMP 流量之前,第一个帧可能是 ARP 请求/回复。如果 ARP 解析失败或某些帧被过滤/丢弃,则中断可能会延迟几秒钟,因为 PC 会重新发送 ARP 或应用程序稍后重试。   - PHY 链路和时钟:请确认 PHY 链路是否正常,以及所选 MII/RMII/RGMII 接口所需的输入时钟是否存在且稳定。   请分享上述配置详情,如果可能,请提供故障发生后的 GMAC DMA/MTL/MAC 状态寄存器。这应该有助于确定问题是与中断配置、RX 描述符/缓冲区处理、数据包过滤还是外部 PHY/接口设置有关。 顺祝商祺! 帕维尔
View full article
SDMA 加载问题:i.MX8MP 平台 i.MX8M Plus EVK,内核版本 6.12.49-lts-next-g42fbadd4b2e9-dirty WiFi/蓝牙模块:AW-XM729,驱动程序:btnxpuart 相同的硬件/内核,两个 Yocto 镜像:imx-image-core(蓝牙功能正常)和 imx-image-multimedia(蓝牙功能不正常)。 问题 在多媒体图像中, imx-sdma@30bd0000需要大约 60 秒才能报告固件就绪: [ 3.11] imx-sdma 30bd0000.dma-controller:sdma 或 sdma 固件未就绪! [ 60.40] imx-sdma 30bd0000.dma-controller: 已找到固件。 btnxpuart 在 SDMA 准备就绪之前约 3-7 秒探测蓝牙 UART,因此 UART 无法获取 DMA 通道,导致蓝牙的 HCI_Reset 超时: imx-uart 30860000.serial:我们无法为 RX/TX 从设备 DMA 做准备! 蓝牙:hci0:操作码 0x0c03 失败:-110 在工作核心镜像中,SDMA 在 BT 探测之前约 3.7 秒准备就绪——没有问题。 请帮忙!
View full article
GMAC RX interrupt of S32K328 I use GMAC of S32K328, and want to use interrupt method to receive package from my PC. But found some differnt phenomenon: 1. Interrupt handler GMAC0_CH0_RX_IRQHandler can be called, and receive package normally. 2. Many seconds GMAC0_CH0_RX_IRQHandler called after PC send package. 3. GMAC0_CH0_RX_IRQHandler can't called, and no package receive? What might be the reason? How to solve that? Re: GMAC RX interrupt of S32K328 Hello @zyt , Thank you for sharing the configuration. Since I do not have EB tresos available, I reviewed the GMAC configuration manually from the provided files. I compared your Eth_43_GMAC configuration with a working S32K358 GMAC 1G lwIP FreeRTOS reference project. One significant difference is the Egress FIFO configuration. In your project, the Egress FIFO buffer length is configured to 128 bytes and the MTL Egress queue size is 256 bytes. In the reference project, the Egress FIFO buffer length is 1536 bytes and the MTL Egress queue size is 4096 bytes.   If your application transmits any frames or if the upper layer sends responses, this small TX/Egress configuration may be too limited for standard Ethernet frames, especially in 1G RGMII mode. As a test, please try increasing:   - EthCtrlConfigEgressFifoBufLenByte to 1536 - EthCtrlConfigMTLEgressQueueSizeInBytes to 4096   For the RX path, the RX buffer length itself is 1536 bytes, which looks reasonable. However, your MTL Ingress queue size is also 1536 bytes, while the reference project uses 4096 bytes. Therefore, as another test, please also try increasing:   - EthCtrlConfigMTLIngressQueueSizeInBytes to 4096   In addition, for debugging, please temporarily enable receive-all mode. Your current configuration has PKT_FILTER_RECV_ALL disabled, while the reference project enables it. This can help to exclude MAC filtering from the analysis.   There are also other differences like EthEnableCacheManagement and EthCtrlReleaseResourceAfterReception, but this is not necessarily wrong.   Best regards, Pavel Re: GMAC RX interrupt of S32K328 Hello: I have tried both unicast frames or broadcast frames, the delay between every frame is 1 second, I think it's enough slow. The phenomenon is the same, there is no RxStatsDropEvents at bigining, but it appears after a few frames. My EB configuration is like attachment, please help to check if it's convenience for you. Thanks. Re: GMAC RX interrupt of S32K328 Hello @zyt , RxStatsDropEvents suggests that some frames are seen by the GMAC, but are dropped somewhere in the RX path. This may be related to RX resource availability, RX FIFO/queue handling, descriptor/buffer availability, packet filtering or the upper-layer receive processing.   Please try the following checks:   1. Please send the same unicast frames slowly from the PC, for example one frame at a time or with a larger delay between frames, and compare the RX statistics before and after the test. If RxStatsDropEvents no longer increases, the issue may be related to RX buffer recycling, processing time, or burst traffic from the PC.   2. Please repeat the test with broadcast frames and then with unicast frames addressed exactly to the MAC address configured in the GMAC driver. This will help to exclude a MAC address/filtering issue.   Please also verify the RGMII clock and peripheral configuration. As a reference, I have published an S32K358 GMAC example on the NXP Community: https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K358-GMAC-1G-lwIP-FreeRTOS-S32DS-3-6-1-RTD600/ta-p/2355872     Please note that this example is for S32K358, not S32K328, so it must not be copied directly without checking the S32K328 pinout and clock configuration. However, it can be used as a reference for the overall clock setup, Eth_43_GMAC configuration and the DCMRWF register workaround.   If possible, could you please also share your zipped project? Without the project, it is difficult to determine whether the drops are caused by configuration, RX resource handling, queue routing or the application receive path. Best regards, Pavel Re: GMAC RX interrupt of S32K328 Hello: I read the frame info by RTD function Eth_43_GMAC_GetRxStats, it looks has drop event. zyt_0-1787017861198.pngzyt_0-1787017861198.png The RX flow all handled by RTD like below, I didn't modify. GMAC0_CH0_RX_IRQHandler -> GMAC_RxIRQHandler -> Eth_43_GMAC_RxIrqCallback -> Eth_43_GMAC_Receive What might be the reason for this? Thanks. Re: GMAC RX interrupt of S32K328 Hello @zyt , Thank you for the details.   Please also check Pins/Clocks/device_init() accordingly to this thread: S32K358 - GMAC Clock Configuration   From the screenshot, the GMAC0 interrupt vectors seem to be configured and mapped to the RTD handlers, including GMAC0_CH_0_RX_IRQHandler. Since this handler is sometimes entered and the frame can be received, the basic interrupt routing does not look completely wrong.   However, when using the AUTOSAR Eth_43_GMAC driver, please also check the receive flow above the low-level IRQ handler. The RX interrupt handler itself is not usually the complete application-level receive processing. The application or upper layer still needs to call the expected Eth_43_GMAC receive API flow, for example Eth_43_GMAC_Receive(), so that the received frame is read from the driver and passed further through the configured callback path.   Please check the following points:   1. Please confirm that Eth_43_GMAC_Receive() is called after the RX interrupt event, or periodically from your main/task context, according to your application design. If the interrupt occurs but the received frame is not consumed from the RX buffers, the following frames may not be received as expected.   2. Please verify that the received unicast frame destination MAC address exactly matches the MAC address configured in the GMAC driver. For debug purposes, you can temporarily enable receive-all/promiscuous mode to exclude MAC filtering as the reason.   3. Please check which RX queue/FIFO is used. Your screenshot shows RX interrupt handlers for CH0, CH1, and CH2. If the packet filter or queue configuration routes frames to another RX queue, the application must call the receive function with the corresponding FIFO index and handle that queue correctly.   4. Please verify RX buffer/descriptor availability. After a received frame is processed, the driver must be able to reuse or obtain RX buffers again. If the RX buffers are exhausted, the first frame may be received correctly, but later frames may be delayed or lost.   5. If cache is enabled, please verify that the GMAC descriptors and RX buffers are placed in a non-cacheable memory region, or that the required cache maintenance is performed. Otherwise, the CPU may see stale descriptor status or stale received data.   6. Since the frames are sent from a Python script as unicast frames, please also confirm by Wireshark that the PC really sends the frames continuously with the expected destination MAC address. If some frames require address resolution or if the destination is not reachable as expected, the PC side may introduce retries or delays, which can look like delayed RX interrupt behavior on the MCU side.   As a reference, I would recommend comparing the project with an adapted S32K3 Ethernet/lwIP example first. This can help to confirm that the RGMII PHY interface, clocks, MAC address, and basic RX path are working before focusing on the custom AUTOSAR Eth_43_GMAC interrupt receive implementation.   If the issue still remains, please share the Eth_43_GMAC receive part of the application, especially where Eth_43_GMAC_Receive() is called, the RX FIFO configuration, MAC address/filter configuration, and the GMAC DMA/MTL/MAC status registers after the failure. Bets regards, Pavel Re: GMAC RX interrupt of S32K328 Hello: 1.I use RGMII 2. I use RTD 6.0.0. 3. I use the Eth_43_GMAC driver. 4. Interruption is like the following: zyt_0-1786962682804.pngzyt_0-1786962682804.png 5. I send unicast frames with python script. All the packages I send are the same, and GMAC0_CH0_RX_IRQHandler is from RTD which is the lowest handler like picture above. Re: GMAC RX interrupt of S32K328 Hello @zyt , Could you please provide a few more details about your setup?   1. Which MAC/PHY interface are you using on S32K328, for example MII, RMII or RGMII? 2. Which S32K3 RTD version are you using? 3. Are you using the AUTOSAR MCAL Eth_43_GMAC driver or the lower-level GMAC IP driver? 4. Could you share the relevant interrupt configuration and the implementation of GMAC0_CH0_RX_IRQHandler? 5. What kind of frames are sent from the PC, for example ping/ICMP, UDP, raw Ethernet frames, broadcast or unicast frames?   As a reference test, I would also recommend trying to reproduce the behavior using an adapted S32K3 Ethernet/lwIP example first. This can help to separate a basic GMAC/PHY/clock/configuration issue from an application-specific interrupt or RX-buffer handling issue.     Regarding the symptoms, if the RX interrupt is sometimes called and the frame can be received correctly, the basic RX path is likely at least partially working. However, the inconsistent behavior may still be caused by one of the following points:   - RX buffer or descriptor handling: after a received frame is processed, the RX buffer/descriptor must be returned back to the driver/DMA. If this is not done correctly, RX buffers may become unavailable and further RX interrupts may stop or become inconsistent.   - Interrupt handling: please make sure that the RX interrupt is configured for the correct GMAC channel and that the expected driver interrupt handler/status clearing flow is used. If the interrupt status is not cleared correctly, the following RX events may not be reported as expected.   - Cache/memory coherency: if cache is enabled, please verify that the GMAC descriptors and RX buffers are placed in a suitable non-cacheable memory region, or that the required cache maintenance is performed. Otherwise, the CPU may see stale descriptor status or stale received data.   - Packet filtering/MAC address: for debug purposes, please try enabling receive-all/promiscuous mode temporarily. This helps to check whether the frame is rejected by the MAC address filter, VLAN filter, or another packet filter setting.   - Frame type and PC behavior: if the PC sends IP traffic such as ping, the first frames may be ARP requests/replies before ICMP traffic is sent. If ARP resolution fails or some frames are filtered/dropped, it may look like the interrupt is delayed by several seconds because the PC retransmits ARP or the application retries later.   - PHY link and clocks: please also confirm that the PHY link is up and that the required input clocks for the selected MII/RMII/RGMII interface are present and stable.   Please share the above configuration details and, if possible, the GMAC DMA/MTL/MAC status registers after the failure. This should help identify whether the issue is related to interrupt configuration, RX descriptor/buffer handling, packet filtering, or the external PHY/interface setup. Best regards, Pavel
View full article
SDMA読み込みの問題: i.MX8MP プラットフォーム  i.MX8M Plus EVK、カーネル 6.12.49-lts-next-g42fbadd4b2e9-dirty WiFi/BTモジュール:AW-XM729、ドライバbtnxpuart 同じハードウェア/カーネルで、Yoctoイメージが2つ:imx-image-core(BTは動作)vs imx-image-multimedia(BTが失敗) 問題 マルチメディアイメージでは、 imx-sdma@30bd0000 がファームウェア準備完了を報告するのに約60秒かかります: [ 3.11] imx-sdma 30bd0000.dma-controller: sdmaまたはSDMAファームウェアが準備できていません! [ 60.40 ] IMX-SDMA 30bd0000.dma-controller: ファームウェアを発見。 BTNXPUARTは、SDMAが準備される前の~3〜7秒でBT UARTをプローブするため、UARTはDMAチャネルを取得できず、BTのタイムアウトHCI_Resetします。 imx-uart 30860000.serial: RX/TXのスレーブDMAに備えられません! Bluetooth: hci0: Opcode 0x0c03 failed : -110 動作中のコアイメージでは、BTプローブの前に約3.7秒でSDMAの準備が整います。問題はありません。 助けてください!
View full article