Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
在调用 mlockall(MCL_FUTURE) 的进程中使用 iMX8MP GPU 会导致内核 BUG() 一位客户报告了一个与使用 iMX8MP GPU(使用 EGL 绘图)相关的问题。当初始化 GPU 的进程先前调用 mlockall(MCL_FUTURE) 时,一旦 CMA 区域被映射到用户空间,内核就会报告以下 BUG(): Kernel BUG at remap_pfn_range_internal+0x23c/0x2c8 Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP CPU: 0 PID: 3197 Comm: galcore_window_ Tainted: G O 6.6.142-7.7.0-devel #1-Torizon Hardware name: Toradex Verdin iMX8M Plus WB on Verdin Development Board (DT) pc : remap_pfn_range_internal+0x23c/0x2c8 x27: 00000000a2100000 x20: 0068000000000fcb x19: 0000007f90000000 ^^^^^^^^^^^^^^^^^^^^^^ the PTE already present Call trace: remap_pfn_range_internal+0x23c/0x2c8 remap_pfn_range+0x24/0x58 dma_direct_mmap+0xf4/0x150 dma_mmap_attrs+0x18/0x3c _CMAFSLMapUser+0x9c/0x150 [galcore] gckOS_LockPages+0xe4/0x148 [galcore] gckKERNEL_MapVideoMemory+0x90/0x1dc [galcore] gckVIDMEM_NODE_LockCPU+0x1b4/0x250 [galcore] _LockVideoMemory.isra.0+0x1f4/0x28c [galcore] gckKERNEL_Dispatch+0x210/0x1730 [galcore] gckDEVICE_Dispatch+0xcc/0x220 [galcore] drv_ioctl+0x340/0x444 [galcore] __arm64_sys_ioctl+0xac/0xf0 Kernel panic - not syncing: Oops - BUG: Fatal exception mlockall(MCL_FUTURE) 通常用于实时应用程序,而报告此问题的客户正在使用 CODESYS 来驱动其 HMI。 我们利用人工智能辅助分析了该问题,并找到了该问题触发原因的合理解释: galcore 驱动程序中的 CMA 分配器不包含 .mmap() 方法。钩。在 _CMAFSLMapUser() 执行期间,它调用 mmap() 获取 vma,然后使用该 vma 通过 find_vma() 定位 CMA 区域。mmap() 的调用方式导致内核延迟分配 SHM 区域以满足请求。正常情况下,当找到 CMA 区域并重新映射时,此分配会在片刻后被丢弃。 但是,当 MCL_FUTURE 处于活动状态时,内核不能再延迟分配 SHM 区域,因此它会在 mmap() 返回之前填充整个区域。在这种情况下,该地址上有有效的页面,而稍后对 remap_pfn_range() 的调用最终会默默地丢弃内存管理维护信息,这正是 BUG() 所阻止的。 我将附上一个 zip 文件,其中包含一个程序的源代码,该程序可以稳定地重现该问题,而无需运行 CODESYS。AI代理建议使用以下补丁来修复此问题: diff -uNr a/hal/kernel/inc/gc_hal_options.h b/hal/kernel/inc/gc_hal_options.h --- a/hal/kernel/inc/gc_hal_options.h 2026-09-04 13:00:44.596621860 +0000 +++ b/hal/kernel/inc/gc_hal_options.h 2026-09-04 13:01:15.643862002 +0000 @@ -1471,9 +1471,17 @@ * Enable this macro can replace the /dev/zero by anon_inode: * [galcore] in /proc/ /maps. * Without the macro, run 'cat /proc/ /maps' will print "/dev/zero". + * + * It is also what gives the allocators an ->mmap handler, which is + * required so that the reservation made by vm_mmap() is created as a + * device mapping (VM_IO | VM_PFNMAP) rather than as ordinary anonymous + * memory. Without it, a process that has called mlockall(MCL_FUTURE) + * gets the range pre-faulted inside vm_mmap(), and the subsequent + * remap_pfn_range() then hits BUG_ON(!pte_none()) in remap_pte_range(). + * See tmp_mmap() in gc_hal_kernel_allocator.c. */ #ifndef gcdANON_FILE_FOR_ALLOCATOR -# define gcdANON_FILE_FOR_ALLOCATOR 0 +# define gcdANON_FILE_FOR_ALLOCATOR 1 #endif /* diff -uNr a/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c b/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c --- a/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c 2026-09-04 13:00:44.605314869 +0000 +++ b/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c 2026-09-04 13:01:15.644216883 +0000 @@ -400,7 +400,13 @@ gcmkHEADER_ARG("Allocator=%p Mdl=%p Cacheable=%d", Allocator, Mdl, Cacheable); #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0) +#if gcdANON_FILE_FOR_ALLOCATOR + /* Same as the gfp, dma and reserved_mem allocators: go through the + * allocator's anon file so that its ->mmap handler runs. */ + userLogical = (gctPOINTER)vm_mmap(Allocator->anon_file, +# else userLogical = (gctPOINTER)vm_mmap(gcvNULL, +# endif 0L, Mdl->numPages * PAGE_SIZE, PROT_READ | PROT_WRITE, diff -uNr a/hal/os/linux/kernel/gc_hal_kernel_allocator.c b/hal/os/linux/kernel/gc_hal_kernel_allocator.c --- a/hal/os/linux/kernel/gc_hal_kernel_allocator.c 2026-09-04 13:00:44.603242857 +0000 +++ b/hal/os/linux/kernel/gc_hal_kernel_allocator.c 2026-09-04 13:01:15.644041018 +0000 @@ -104,6 +104,36 @@ static int tmp_mmap(struct file *fp, struct vm_area_struct *vma) { + /* + * Declare the reservation as a device mapping with raw PFNs, before + * mmap() returns it to the caller. remap_pfn_range() sets both flags + * anyway; setting them here only makes them effective from the moment + * the VMA is created, and that is what matters: + * + * - the kernel treats VM_IO | VM_PFNMAP as VM_SPECIAL, documented in + * include/linux/mm.h as "Special vmas that are non-mergable, + * non-mlock()able". mmap_region() therefore clears VM_LOCKED from + * this VMA and leaves mm->locked_vm alone, and __mm_populate() + * skips it outright ("if (vma->vm_flags & (VM_IO | VM_PFNMAP)) + * continue;" in mm/gup.c). + * + * - so a process that has called mlockall(MCL_FUTURE) no longer has + * this range pre-faulted inside vm_mmap(). Every other mapping in + * that process keeps being locked and pre-faulted as before; only + * device memory, which is neither pageable nor swappable and gains + * nothing from being pre-faulted, is left out. + * + * - and the allocator's own remap_pfn_range(), a few microseconds + * later, therefore finds an empty range instead of one the kernel + * has just populated, so it no longer trips + * BUG_ON(!pte_none(ptep_get(pte))) in remap_pte_range(). + */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0) + vm_flags_set(vma, VM_IO | VM_PFNMAP); +#else + vma->vm_flags |= VM_IO | VM_PFNMAP; +#endif + return 0; } 上游驱动程序使用了一种不同的机制来绕过这个问题。其他 galcore 分配器使用相同的模式(调用 vm_mmap 获取 vma),因此很可能容易受到相同的 BUG() 的影响。 请您调查并修复 galcore 驱动程序?这个问题导致实际应用场景无法正常运行,直接影响到我们的客户。 谢谢! 拉斐尔 Re: Using iMX8MP GPU on a process that call mlockall(MCL_FUTURE) causes kernel BUG() 嗨@rbeims 让我先运行一下测试,然后再和GPU团队确认。 此致, 志明
記事全体を表示
TJA1445がスリープモードの場合、CANHとCANLは低レベルになります。 こんにちは、 TJA1445をスリープモードでテストする際、ウェイクアップソースモードをWUFに設定し、VBATVCCをデフォルトで0、CPNCを1、PNCOKを1に設定した場合、スリープモードに入った後にCANHとCANLが2.5Vではなく低レベル(0V)になるのはなぜですか?この時点でCANの状態は「CANオフライン」ですか?TJA1445がスリープモードに入ったときにCANHとCANLが2.5Vになるように設定するにはどうすればよいですか?現在のテスト環境では、CANメッセージを1つ送信するだけではTJA1445をウェイクアップするには不十分です。 liugaosong_0-1788782128664.pngliugaosong_0-1788782128664.pngliugaosong_0-1788782128664.png CH1はINHピン、CH2はCANHピンです。ご覧のとおり、スリープモードは低レベルです。 Re: TJA1445 休眠时CANH和CANL为低电平 PN関連のレジスタが電源障害前に設定されていれば、VCC/VIOをオフにしてBATのみを残すことができます。  そして、バス上でWUPに一致するメッセージが見つかった場合、CANオフラインからCANオフラインバイアスに移行できます。WUFに一致する別のメッセージを受信すると、PNウェイクアップを開始できます。 WUPメッセージの要件は、ほとんどのメッセージで一般的に満たされています。つまり、特定のフレームを2つ連続して送信すれば、デバイスを起動するのに十分です。     Re: TJA1445 休眠时CANH和CANL为低电平 こんにちは、 ボードがスリープモードになり、VCCがオフになった場合、TJA1445は1フレームでウェイクアップできないのでしょうか?CANオフラインからCANオフラインバイアスへのプロセスを経る必要があるのでしょうか?このとき、CANHとCANLは2.5Vになるのでしょうか、それともCANステータスが常にCANオフラインモードのままTJA1445はスリープモードに入るのでしょうか?
記事全体を表示
Flash Drives # which is best flash drive avialble now in the market ## Please tell me Re: Flash Drives Hi@reedjhn9 I didn't quite understand your question. Could you describe it in more detail—specifically, the product you are using and the exact issue you want to know about?
記事全体を表示
USB初期化失敗: -22 こんにちは、 USBポート経由でuucツールを使用してwic.b2zイメージをeMMCに書き込もうとしています。書き込み中にUSB初期化失敗:-22エラーが発生しました。imx8mpプロセッサを使用しています。 bootcmd_mfg を実行します: mfgtool_args を実行します。iminfo が${initrd_addr}の場合、test が${tee}の場合、bootm が${tee_addr} ${initrd_addr} ${fdt_addr}の場合、booti が${loadaddr} ${initrd_addr} ${fdt_addr}の場合、fi を実行します。それ以外の場合は、echo "fastboot を実行します..." を実行します。fastboot 0 を実行します。fi を実行します。 自動起動を停止するには、任意のキーを押してください: 0 ## 43800000 番地の画像を確認中... 不明な画像フォーマット! fastbootを実行... USB初期化失敗: -22 u-boot=>     i.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlus Re: USB init failed: -22 こんにちは、 問題の原因を分析するために、ボードの起動設定と全過程を共有してください。 Re: USB init failed: -22 U-Boot SPL 2024.04-lf_v2024.04+g6c4545203d1+p0(2024年11月15日 - 04:02:13 +0000) DDRINFO: DRAM initを起動 DDRINFO:DRAMレート4000MTS DDRINFO:ddrphyのキャリブレーション完了 DDRINFO: ddrmix設定完了 第0節:RNGのインスタンス化 ノーマルブート BOOTROMからの起動を試みています 起動段階:USB起動 img info 0x48022fa0、サイズ1064を探せます ダウンロードを続ける必要があります 1024 注意:JR0はHABで使用可能なのでNSにリリースしないでください 通知:BL31: v2.10.0(リリース):オートモーティブ-15.0.0_1.1.0 お知らせ:BL31:製造日時:2024年11月4日 08:52:12 U-Boot 2024.04-lf_v2024.04+g6c4545203d1+p0(2024年11月15日 - 04:02:13 +0000) CPU:i.MX8MP Lite[4] rev1.1 1600 MHz(1200 MHzで動作) CPU:インダストリアル温度グレード(-40°Cから105°C)で35°Cに対応 リセット原因:POR(POR) モデル:NXP i.MX8MPlus LPDDR4 EVKボード DRAM:6 GiB tcpc_init: デバイスIDが見つからない=0x50 setup_typec: tcpc port2 init 失敗、err=-19 tcpc_init: デバイスIDが見つからない=0x50 setup_typec: tcpc port1 init 失敗、err=-19 コア:284デバイス、36 uクラス、デバイスツリー:別々 MMC: FSL_SDHC: 1, FSL_SDHC: 2 どこからともなく環境を読み込む...了解 [*]-ビデオリンク0adv7535_mipi2hdmi adv7535@3d:cecデバイスID=0x3cが見つかりません プローブ失敗 パネル装置adv7535@3d 表示タイミングが取得できない プローブ映像装置故障、退位-19 [0] LCD-controller@32e80000、ビデオ [1] mipi_dsi@32e60000、video_bridge [2] adv7535@3d、パネル adv7535_mipi2hdmi adv7535@3d: cecデバイスIDが見つからない=0x3c プローブ失敗 パネル装置adv7535@3d 表示タイミングが取得できない プローブ映像装置故障、退位-19 出演:連続ドラマ 終了:連続ドラマ えっと:連続 第0節:RNGのインスタンス化 MMC:カードは提示されていません USB起動検出。Fastbootモードに入る! ネット:FEC0のPHYが取得できませんでした:addr 1 FEC0: addr 1のPHYが取得できませんでした eth1:ethernet@30bf0000【プライム】 速攻:通常 mfgtoolsのUSBから起動 警告 - mfgtoolsのデフォルト環境をご利用ください 、デフォルト環境を使用 実行bootcmd_mfg:実行mfgtool_args;もし情報が ${initrd_addr}なら;もしテストなら ${tee} =はい;次にbootm ${tee_addr} ${initrd_addr} ${fdt_addr};そうでなければbooti ${loadaddr} ${initrd_addr} ${fdt_addr};fi;そうでなければエコー「Run fastboot ...";ファストブート0;FI; どのキーを押してもオートブートを止める:0 ## 43800000で画像確認中... 不明な画像フォーマット! fastbootを実行... USB初期化失敗: -22 u-boot=> Re: USB init failed: -22 こんにちは、 最後のプリビルドイメージ(Linux 6.18.20_2.0.0)と uuu ツールの最終バージョンを再度フラッシュしてみてください。 敬具。
記事全体を表示
USB 初始化失败:-22 您好, 我尝试使用 uuc 工具通过 USB 端口将 wic.b2z 镜像刷入 eMMC 存储。刷写过程中出现 USB 初始化失败:-22 错误。我使用的是 imx8mp 处理器。 运行 bootcmd_mfg: run mfgtool_args;if iminfo ${initrd_addr} ; then if test ${tee} = yes; then bootm ${tee_addr} ${initrd_addr} ${fdt_addr} ; else booti ${loadaddr} ${initrd_addr} ${fdt_addr} ; fi; else echo "运行 fastboot ..."; fastboot 0; fi; 按任意键停止自动启动:0 正在检查 43800000 处的图像... 未知图像格式! 运行 fastboot... USB 初始化失败:-22 u-boot=>     i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus Re: USB init failed: -22 你好, 请提供完整的操作流程和主板的启动配置,以便我们分析问题原因。 Re: USB init failed: -22 U-Boot SPL 2024.04-lf_v2024.04+g6c4545203d1+p0(2024年11月15日 - 04:02:13 +0000) DDRINFO:启动 DRAM 初始化 DDRINFO:DRAM 速率 4000MTS DDRINFO:DDRPHY 校准完成 DDRINFO:ddrmix 配置完成 SEC0:RNG 实例化 正常启动 尝试从 BOOTROM 启动 启动阶段:USB 启动 查找图像信息 0x48022fa0,大小 1064 需要继续下载 1024 注意:请勿将 JR0 释放给 NS,因为它可能被 HAB 使用。 注意:BL31:v2.10.0(版本):automotive-15.0.0_1.1.0 通知:BL31:构建时间:2024年11月4日 08:52:12 U-Boot 2024.04-lf_v2024.04+g6c4545203d1+p0(2024年11月15日 - 04:02:13 +0000) CPU:i.MX8MP Lite[4] rev1.1 1600 MHz(运行频率为 1200 MHz) CPU:工业级耐温等级(-40℃至105℃),工作温度35℃ 复位原因:POR 型号:NXP i.MX8MPlus LPDDR4 EVK 板 动态随机存取存储器(DRAM):6 GiB tcpc_init:找不到设备 ID=0x50 setup_typec:tcpc port2 初始化失败,错误代码=-19 tcpc_init:找不到设备 ID=0x50 setup_typec:tcpc port1 初始化失败,错误代码=-19 核心:284 个设备,36 个微类,设备树:独立 MMC:FSL_SDHC:1,FSL_SDHC:2 环境正在加载,但不知从何而来……好的 [*]-视频链接 0adv7535_mipi2hdmi adv7535@3d:找不到 CEC 设备 ID=0x3c 探测面板设备 adv7535@3d 失败 无法获取显示时序 探测视频设备故障,返回码 -19 [0] lcd-controller@32e80000,视频 [1] mipi_dsi@32e60000,视频桥 [2] adv7535@3d,面板 adv7535_mipi2hdmi adv7535@3d:找不到 CEC 设备 ID=0x3c 探测面板设备 adv7535@3d 失败 无法获取显示时序 探测视频设备故障,返回码 -19 输入:串行 输出:串口 错误:串行 SEC0:RNG 实例化 MMC:未持有卡片 检测 USB 启动。即将进入fastboot模式! 网络:无法获取 FEC0 的 PHY:地址 1 无法获取 FEC0 的 PHY:地址 1 eth1:以太网@30bf0000 [PRIME] Fastboot:正常 从 USB 启动 mfgtools *** 警告 - 请使用 mfgtools 的默认环境 使用默认环境 运行 bootcmd_mfg: run mfgtool_args;if iminfo ${initrd_addr} ; then if test ${tee} = yes; then bootm ${tee_addr} ${initrd_addr} ${fdt_addr} ; else booti ${loadaddr} ${initrd_addr} ${fdt_addr} ; fi; else echo "运行 fastboot ..."; fastboot 0; fi; 按任意键停止自动启动:0 ## 正在检查 43800000 处的图像... 未知图像格式! 运行 fastboot... USB 初始化失败:-22 u-boot=> Re: USB init failed: -22 你好, 请尝试再次刷入最新的预编译镜像( Linux 6.18.20_2.0.0 )和最新版本的uuu工具。 此致敬礼
記事全体を表示
S32K344 – Is PFLASH Block 2 available to the application with HSE_B firmware installed? Hello, We are developing a Power Distribution Unit around the S32K344 (HSE_FW_S32K344_0_2_55_0, 0.2.55.0 build pb150130 (30 janvier 2025). Type : Standard FW configuration) with a dual-bank bootloader and secure firmware update. We are stuck on one point of the flash layout and would appreciate a definitive answer. The problem Our NVM configuration regions (runtime parameters written by the application) currently live in PFLASH Block 0, in the same block as the executing code. Writing to them at runtime triggers read-while-write stalls on the core, which freezes the unit for the duration of the program/erase operation. This is not acceptable for our application (the PDU drives safety-relevant loads). The obvious fix is to move these regions to a block that does not contain executed code. Block 2 (0x600000–0x6FFFFF, sectors 368–381) is the natural candidate: it is not used by our application banks, and it is not the block where HSE stores its data. What we have checked so far – The S32K3xx Reference Manual describes the PFLASH block structure but does not say anything about HSE reservations. – The public HSE Basic FW FAQ states that Blocks 0 and 1 are guaranteed for the application, and that the HSE firmware reserves part of Block 3 (176 KB in FULL_MEM configuration). It does not mention Block 2 at all. – The HSE demo application and RTD examples we looked at do not use Block 2 either, so we cannot infer anything from them. – We have submitted an NDA / DocStore access request for the HSE Firmware Reference Manual v2.4, which we understand covers this. The request is pending. Questions With HSE_B firmware installed, is Block 2 entirely available to the application (code and data) in FULL_MEM configuration? What about AB_SWAP? Is there any HSE-related restriction on erasing/programming Block 2 at runtime from the application core (e.g. sectors locked or monitored by HSE, SBAF or secure boot)? Is there a public document that describes the full PFLASH block allocation between HSE firmware, SBAF and the application? If not, could someone help us get access to the HSE Firmware Reference Manual while our NDA request is processed? Until we have a confirmed answer, our design is deliberately confined to Blocks 0 and 1, which leaves us with the read-while-write issue. Thank you in advance for your help. Re: S32K344 – Is PFLASH Block 2 available to the application with HSE_B firmware installed? Hello @manu_fenixecu, A1. Yes, Block 2 is entirely user flash. Refer to HSE-B FW RM v2.7, Figure 33 (FULL_MEM) and Figure 34 (AB_SWAP) for the flash memory layout of S32K344, S32K314, and S32K324. A2. HSE-B FW RM v2.7, Section 14.6.4.2 (HSE_CONFIG_GPR3) — the application should read bit 27. A3. The only publicly available reference is the S32K3xx RM rev12, Table 198 ("Configuration details when the HSE_B firmware usage feature flag is enabled"). The HSE-B FW RM cannot be shared without an NDA in place. For HSE-related support, please use support tickets rather than this public community. Regards, Daniel Re: S32K344 – Is PFLASH Block 2 available to the application with HSE_B firmware installed? Thank you for sharing 😉
記事全体を表示
mlockall(MCL_FUTURE)を呼び出すプロセスでiMX8MP GPUを使用すると、カーネルBUG() あるお客様がiMX8MPのGPU使用(EGLによる描画)に関する問題を報告しました。以前mlockall(MCL_FUTURE)と呼ばれていたGPU初期化プロセスが、CMA領域がユーザースペースにマッピングされると、カーネルは以下のBUG()を報告します: Kernel BUG at remap_pfn_range_internal+0x23c/0x2c8 Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP CPU: 0 PID: 3197 Comm: galcore_window_ Tainted: G O 6.6.142-7.7.0-devel #1-Torizon Hardware name: Toradex Verdin iMX8M Plus WB on Verdin Development Board (DT) pc : remap_pfn_range_internal+0x23c/0x2c8 x27: 00000000a2100000 x20: 0068000000000fcb x19: 0000007f90000000 ^^^^^^^^^^^^^^^^^^^^^^ the PTE already present Call trace: remap_pfn_range_internal+0x23c/0x2c8 remap_pfn_range+0x24/0x58 dma_direct_mmap+0xf4/0x150 dma_mmap_attrs+0x18/0x3c _CMAFSLMapUser+0x9c/0x150 [galcore] gckOS_LockPages+0xe4/0x148 [galcore] gckKERNEL_MapVideoMemory+0x90/0x1dc [galcore] gckVIDMEM_NODE_LockCPU+0x1b4/0x250 [galcore] _LockVideoMemory.isra.0+0x1f4/0x28c [galcore] gckKERNEL_Dispatch+0x210/0x1730 [galcore] gckDEVICE_Dispatch+0xcc/0x220 [galcore] drv_ioctl+0x340/0x444 [galcore] __arm64_sys_ioctl+0xac/0xf0 Kernel panic - not syncing: Oops - BUG: Fatal exception mlockall(MCL_FUTURE)はリアルタイムアプリケーションで一般的に使われており、問題を報告した顧客はCODESYSを使ってHMIを駆動しています。 AIを活用した分析を実施した結果、問題が発生する理由として考えられる説明が明らかになりました。 galcoreドライバーのCMAアロケーターには.mmap()が含まれていません。フック。_CMAFSLMapUser() の実行中に、mmap() を呼び出して vma を取得し、それを使用して find_vma() を使用して CMA 領域を特定します。mmap() の呼び出し方法により、カーネルは要求を満たすために SHM 領域を遅延的に割り当てることになります。通常の場合、CMAが見つかって再マッピングされると、この割り当てはすぐに破棄されます。 しかし、MCL_FUTUREがアクティブなとカーネルはもはやSHM領域を怠惰に割り当てることができなくなり、mmap()が戻る前にエリア全体を埋め尽くします。この場合、このアドレスには有効なページがあり、後のremap_pfn_range()への呼び出しはメモリ管理のハウスキーピング情報を静かに破棄することになり、これはまさにBUG()が防いでいることです。 CODESYSを実行せずに問題を再現できるプログラムのソースコードを含むzipファイルを添付します。AIエージェントは、この問題を修正するために以下のパッチを提案しました。 diff -uNr a/hal/kernel/inc/gc_hal_options.h b/hal/kernel/inc/gc_hal_options.h --- a/hal/kernel/inc/gc_hal_options.h 2026-09-04 13:00:44.596621860 +0000 +++ b/hal/kernel/inc/gc_hal_options.h 2026-09-04 13:01:15.643862002 +0000 @@ -1471,9 +1471,17 @@ * Enable this macro can replace the /dev/zero by anon_inode: * [galcore] in /proc/ /maps. * Without the macro, run 'cat /proc/ /maps' will print "/dev/zero". + * + * It is also what gives the allocators an ->mmap handler, which is + * required so that the reservation made by vm_mmap() is created as a + * device mapping (VM_IO | VM_PFNMAP) rather than as ordinary anonymous + * memory. Without it, a process that has called mlockall(MCL_FUTURE) + * gets the range pre-faulted inside vm_mmap(), and the subsequent + * remap_pfn_range() then hits BUG_ON(!pte_none()) in remap_pte_range(). + * See tmp_mmap() in gc_hal_kernel_allocator.c. */ #ifndef gcdANON_FILE_FOR_ALLOCATOR -# define gcdANON_FILE_FOR_ALLOCATOR 0 +# define gcdANON_FILE_FOR_ALLOCATOR 1 #endif /* diff -uNr a/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c b/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c --- a/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c 2026-09-04 13:00:44.605314869 +0000 +++ b/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c 2026-09-04 13:01:15.644216883 +0000 @@ -400,7 +400,13 @@ gcmkHEADER_ARG("Allocator=%p Mdl=%p Cacheable=%d", Allocator, Mdl, Cacheable); #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0) +#if gcdANON_FILE_FOR_ALLOCATOR + /* Same as the gfp, dma and reserved_mem allocators: go through the + * allocator's anon file so that its ->mmap handler runs. */ + userLogical = (gctPOINTER)vm_mmap(Allocator->anon_file, +# else userLogical = (gctPOINTER)vm_mmap(gcvNULL, +# endif 0L, Mdl->numPages * PAGE_SIZE, PROT_READ | PROT_WRITE, diff -uNr a/hal/os/linux/kernel/gc_hal_kernel_allocator.c b/hal/os/linux/kernel/gc_hal_kernel_allocator.c --- a/hal/os/linux/kernel/gc_hal_kernel_allocator.c 2026-09-04 13:00:44.603242857 +0000 +++ b/hal/os/linux/kernel/gc_hal_kernel_allocator.c 2026-09-04 13:01:15.644041018 +0000 @@ -104,6 +104,36 @@ static int tmp_mmap(struct file *fp, struct vm_area_struct *vma) { + /* + * Declare the reservation as a device mapping with raw PFNs, before + * mmap() returns it to the caller. remap_pfn_range() sets both flags + * anyway; setting them here only makes them effective from the moment + * the VMA is created, and that is what matters: + * + * - the kernel treats VM_IO | VM_PFNMAP as VM_SPECIAL, documented in + * include/linux/mm.h as "Special vmas that are non-mergable, + * non-mlock()able". mmap_region() therefore clears VM_LOCKED from + * this VMA and leaves mm->locked_vm alone, and __mm_populate() + * skips it outright ("if (vma->vm_flags & (VM_IO | VM_PFNMAP)) + * continue;" in mm/gup.c). + * + * - so a process that has called mlockall(MCL_FUTURE) no longer has + * this range pre-faulted inside vm_mmap(). Every other mapping in + * that process keeps being locked and pre-faulted as before; only + * device memory, which is neither pageable nor swappable and gains + * nothing from being pre-faulted, is left out. + * + * - and the allocator's own remap_pfn_range(), a few microseconds + * later, therefore finds an empty range instead of one the kernel + * has just populated, so it no longer trips + * BUG_ON(!pte_none(ptep_get(pte))) in remap_pte_range(). + */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0) + vm_flags_set(vma, VM_IO | VM_PFNMAP); +#else + vma->vm_flags |= VM_IO | VM_PFNMAP; +#endif + return 0; } 上流ドライバーはこの問題を回避する別のメカニズムを使用しています。他の galcore アロケータも同じパターン (vm_mmap を呼び出して vma を取得する) を使用しているため、同じ BUG() の影響を受ける可能性があります。 この件について調べて、galcoreドライバーを直してもらえますか?この問題は実際のユースケースが正常に動作することを妨げており、直接的にお客様に影響を及ぼしています。 ありがとうございました。 ラファエル Re: Using iMX8MP GPU on a process that call mlockall(MCL_FUTURE) causes kernel BUG() こんにちは@rbeims  テストを実行してからGPUチームに確認させてください。 よろしくお願いします、 志明
記事全体を表示
i.MX8QXP C0: クラッシュ証拠キャプチャ SCwatchdogresetCortex-M4監視A35クラスタ全体にラムーブ こんにちは、NXPチームの皆さん、 プラットフォームの詳細: SoC: i.MX8QXP C0、MEKリファレンスに基づくカスタムボード BSP: NXP Linux 6.6.3 [状態完全タグ、例:lf-6.6.3-1.0.0]、ヨクト・スカースギャップ SCFWバージョン:[scu_rmを実行し、ブートログを確認してバージョンを貼り付けてください] SECO/AHAB: [有効/無効、バージョン] U-Boot: [2024.04/tag] Cortex-M4(CM4_0):現在使用されておらず、ファームウェアはインストールされていません ユースケース:生産オートモーティブ向けインストゥルメントクラスター;A35はLinux/Weston HMIを動作させています 問題提起: 実稼働環境では、A35 複合システムがクラッシュしたり、ハードハングアップ(カーネルパニック/ロックアップ)を起こしたりするケースが時折発生します。現在では持続的なクラッシュの証拠もなく、自律的な復旧もありません。クラスターは手動で電源を入れ直すまで停止状態のままで、フィールドやDVの発生はデバッグできません。我々は、(a) pstore/ramoops を使用したウォッチドッグリセット後のパニックログの永続化、および (b) A35 パーティションのみをリセットできる機能を備えた CM4_0 による A35 の監視を実装したいと考えています。 i.MX8QXP C0において、システムウォッチドッグ(imx-sc-wdt、SCFWによって処理される)が作動した場合、どのようなタイプのリセットが実行されますか?(SoC/ボード全体のリセット、またはAクラスタパーティションのリセット)これはSCFWボードファイルまたはsc_pm API経由で設定可能ですか? Re: i.MX8QXP C0: crashevidence capture ramoops across SCwatchdogresetCortex-M4 supervision A35 clus こんにちは、 はい、SCFWが管理する仮想監視犬を使ってパーティションをリセットすることもできます SC_TIMER_WDOG_ACTION_PARTITION 動作はLinux/A35パーティションのみをリセットします。 また、SCFW sc_pm APIを介してA35パーティション上で sc_pm_reset_partition() を呼び出すことで、CM4_0ファームウェアから直接同じ効果を得る方法もあります。これにより、CM4_0はウォッチドッグメカニズムとは独立した完全な監視制御が可能になります。 この件については、あなたが使っている特定のバージョンのSCFW移植ガイドで詳しく知ることができます。 よろしくお願いいたします。 アルド。
記事全体を表示
S32K322 LCU/Emios S32K144とS32K322のエンコーダの実装方法と原理の違いについて理解を深めたいです。 S32K144では、初期の角度がPWMを通じて伝達され、その後カウントがABIインターフェースに提供されてさらなるプロセッシングが行われます。また、FTMを介した直交デコーダ機能を使用して、A、B、I信号/配線の断線を検出する故障検出メカニズムも備えています。 しかし、S32K322では、同じロジックが期待どおりに動作せず、特に方向を正しく検出できないことが問題となっています。 例えば、Iパルス線が切断されると、絶対カウントはゼロになる。これによりスイッチングが誤作動し、その後、絶対カウントが徐々に変化し、最終的に4095パルスに達する。 S32K144では、Iパルスが切断された場合でも、単一出力のA信号とB信号によって適切なカウント値が得られるため、故障を検出することが可能です。 以下のケースで期待される挙動を例示したり、明確にしていただけますか? Aパルスワイヤーが切断されました Bパルスワイヤーが外れています Iパルスワイヤが切断されました AとBのパルスワイヤーが切断されています A、B、Iパルスワイヤが切断されている また、S32K144とS32K322の両方で、これらのシナリオでエンコーダのカウントと方向がどのように振る舞うかについても説明していただけると助かります。 よろしくお願いいたします。 ティル S32K3 S32K1 ブラシレスDCモータ  Re: S32K322 LCU/Emios こんにちは、 S32K322にはS32K144上にあるFTMペリフェラルは含まれていません。S32K3ファミリでは、直交エンコーダの機能はLCU、TRGMUX、eMIOSモジュールの連携を中心に構築されています。これは、S32K144に搭載されているFTMベースの直交デコーダとは根本的に異なるアーキテクチャである。 S32K322では、PHAとPHBはLCUによって別々のCWおよびCCWパルスストリームにデコードされ、2つのeMIOSチャネルでカウントされます。アプリケーションはこれらのカウンターの差からインクリメンタル位置を得ます。 S32K3直交デコーダデザインの有用な出発点は、アプリケーションノートAN13767、特に4.2.5節で、方向検出、TRGMUXルーティング、eMIOSエッジカウンタ構成に使用されるLUT真理表を説明しています。追加情報はS32K344モータ制御キットのページおよび関連するコミュニティディスカッションでご覧いただけます。 AN13767: アプリケーションノートAN13767 S32K344モーター制御キット: S32K344 BLDC/PMSM開発キット コミュニティディスカッション: S32K344の直交デコーダ LCUのLUT実装に基づき、A信号またはB信号のいずれかが切断されても、残ったチャネルはLCU出力でCWまたはCCWパルスを生成するトランジションを生成できます。その結果、対応するeMIOSカウンターはカウントを継続し、方向情報が引き続き取得できる場合があります。しかし、パルスレートが低下するため、通常動作時と比較して1回転あたりのカウント数が約4分の1に減少する。 A信号とB信号の両方が切断されている場合、LCU入力には有効な直交位相遷移は存在しません。その結果、CWパルスもCCWパルスも生成されず、eMIOSカウンタは変化しない。 インデックス(I)信号に関しては、NXPモーター制御キットの実装ではインデックス信号は使用されていません。位置と方向はAおよびBの直交信号のみから導かれ、位置のずれはローターアライメント時に校正されます。さらに、この実装ではインデックス信号はMCUに接続されていません。したがって、I信号を切断した際に観察される挙動はアプリケーション固有のものと考えられます。 BR、ペトル Re: S32K322 LCU/Emios アプリケーションノートに記載されているLCUのLUTロジックを完全には理解できませんでした。 私には以下の質問があります。 1. A/B信号切断の検出: 絶対カウントだけでAまたはB信号の切断を検出するのは信頼性が低いことは理解しています。なぜなら、AまたはBの信号が切断された場合でも絶対カウントが 0または4095 のままになるからです。 同時に、 CW/CCWカウンター に基づいて固定しきい値を定義するのは難しいです。なぜならローターが前後に回転し、カウンターが転がってしまうからです。したがって、CW/CCWカウンターはロールオーバー条件に応じて 4095を超え、最大65535(uint16)まで続きます。 このシナリオにおいて、 A/B信号の切断を検出するための推奨されるロジックまたは閾値は何でしょうか? カウンターローバーの状態を考慮し、この状況に適した診断方法を提案していただけますか?
記事全体を表示
S32DS license expiring Hi, when I open my S32DS I get following message:   S32 Design Studio for ARM ActivationId: 8AEC-51FD-AB5B-6A4D Evaluation Days: 9 Feature Version: 2.2 Feature Status: Evaluation (9 days) what do I have to do to extend my license?  Best regards Sandra Re: S32DS license expiring Hello, I have notified admin to prolong your license. Best regards, Peter Re: S32DS license expiring Hello, You license is now extended to 2030. Best regards, Peter Re: S32DS license expiring Hello, I could not active the S32DS, because the issue of picture, could you help me how to solve this problem? HelenLi_0-1778831877838.pngHelenLi_0-1778831877838.pngHelenLi_0-1778831877838.png Re: S32DS license expiring Help! My S32DS IDE  license is about to expire. Could you please help me extend its usage period? Thank you ! license : 1A99 90A8 2F06 339B Re: S32DS license expiring Hello: ActivationId: 04E9-8F5A-8B1F-F9C8 The license validity period needs to be extended. Re: S32DS license expiring Hello! My S32DS IDE license is about to expire. Could you please help me extend its usage period? Thank you ! license : EA09-8465-A8E8-F07B
記事全体を表示
Using iMX8MP GPU on a process that call mlockall(MCL_FUTURE) causes kernel BUG() A customer reported an issue related to the use of the iMX8MP GPU (drawing using EGL). When the process that initializes the GPU previously called mlockall(MCL_FUTURE), as soon as the CMA area is mapped into userspace, the kernel reports the following BUG(): Kernel BUG at remap_pfn_range_internal+0x23c/0x2c8 Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP CPU: 0 PID: 3197 Comm: galcore_window_ Tainted: G O 6.6.142-7.7.0-devel #1-Torizon Hardware name: Toradex Verdin iMX8M Plus WB on Verdin Development Board (DT) pc : remap_pfn_range_internal+0x23c/0x2c8 x27: 00000000a2100000 x20: 0068000000000fcb x19: 0000007f90000000 ^^^^^^^^^^^^^^^^^^^^^^ the PTE already present Call trace: remap_pfn_range_internal+0x23c/0x2c8 remap_pfn_range+0x24/0x58 dma_direct_mmap+0xf4/0x150 dma_mmap_attrs+0x18/0x3c _CMAFSLMapUser+0x9c/0x150 [galcore] gckOS_LockPages+0xe4/0x148 [galcore] gckKERNEL_MapVideoMemory+0x90/0x1dc [galcore] gckVIDMEM_NODE_LockCPU+0x1b4/0x250 [galcore] _LockVideoMemory.isra.0+0x1f4/0x28c [galcore] gckKERNEL_Dispatch+0x210/0x1730 [galcore] gckDEVICE_Dispatch+0xcc/0x220 [galcore] drv_ioctl+0x340/0x444 [galcore] __arm64_sys_ioctl+0xac/0xf0 Kernel panic - not syncing: Oops - BUG: Fatal exception mlockall(MCL_FUTURE) is commonly used by real time applications, and the customer who reported the issue is using CODESYS to drive their HMI. We executed an AI-assisted analysis of the issue, and uncovered a plausible explanation for the reason the issue is being triggered: The CMA allocator in the galcore driver doesn't include an .mmap() hook. During the _CMAFSLMapUser() execution, it calls mmap() to get a vma, which is then used to locate the CMA area using find_vma(). The way mmap() is called causes the kernel to lazilly allocate a SHM area to fullfil the request. In normal cases, this allocation gets discarded moments later when the CMA are is found and remapped. However, when MCL_FUTURE is active the kernel cannot lazilly allocate the SHM area anymore, so it goes and populates the entire area before mmap() returns. In this case we have valid pages on this address, and the later call to remap_pfn_range() would end up silently discarding the memory management housekeeping information, which is exactly what the BUG() prevents. I'll attach a zip file which contains the source code of a program that reproduces the issue consistently without the need to run CODESYS. The AI agent suggested the following patch to fix it: diff -uNr a/hal/kernel/inc/gc_hal_options.h b/hal/kernel/inc/gc_hal_options.h --- a/hal/kernel/inc/gc_hal_options.h 2026-09-04 13:00:44.596621860 +0000 +++ b/hal/kernel/inc/gc_hal_options.h 2026-09-04 13:01:15.643862002 +0000 @@ -1471,9 +1471,17 @@ * Enable this macro can replace the /dev/zero by anon_inode: * [galcore] in /proc/ /maps. * Without the macro, run 'cat /proc/ /maps' will print "/dev/zero". + * + * It is also what gives the allocators an ->mmap handler, which is + * required so that the reservation made by vm_mmap() is created as a + * device mapping (VM_IO | VM_PFNMAP) rather than as ordinary anonymous + * memory. Without it, a process that has called mlockall(MCL_FUTURE) + * gets the range pre-faulted inside vm_mmap(), and the subsequent + * remap_pfn_range() then hits BUG_ON(!pte_none()) in remap_pte_range(). + * See tmp_mmap() in gc_hal_kernel_allocator.c. */ #ifndef gcdANON_FILE_FOR_ALLOCATOR -# define gcdANON_FILE_FOR_ALLOCATOR 0 +# define gcdANON_FILE_FOR_ALLOCATOR 1 #endif /* diff -uNr a/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c b/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c --- a/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c 2026-09-04 13:00:44.605314869 +0000 +++ b/hal/os/linux/kernel/allocator/freescale/gc_hal_kernel_allocator_cma.c 2026-09-04 13:01:15.644216883 +0000 @@ -400,7 +400,13 @@ gcmkHEADER_ARG("Allocator=%p Mdl=%p Cacheable=%d", Allocator, Mdl, Cacheable); #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0) +#if gcdANON_FILE_FOR_ALLOCATOR + /* Same as the gfp, dma and reserved_mem allocators: go through the + * allocator's anon file so that its ->mmap handler runs. */ + userLogical = (gctPOINTER)vm_mmap(Allocator->anon_file, +# else userLogical = (gctPOINTER)vm_mmap(gcvNULL, +# endif 0L, Mdl->numPages * PAGE_SIZE, PROT_READ | PROT_WRITE, diff -uNr a/hal/os/linux/kernel/gc_hal_kernel_allocator.c b/hal/os/linux/kernel/gc_hal_kernel_allocator.c --- a/hal/os/linux/kernel/gc_hal_kernel_allocator.c 2026-09-04 13:00:44.603242857 +0000 +++ b/hal/os/linux/kernel/gc_hal_kernel_allocator.c 2026-09-04 13:01:15.644041018 +0000 @@ -104,6 +104,36 @@ static int tmp_mmap(struct file *fp, struct vm_area_struct *vma) { + /* + * Declare the reservation as a device mapping with raw PFNs, before + * mmap() returns it to the caller. remap_pfn_range() sets both flags + * anyway; setting them here only makes them effective from the moment + * the VMA is created, and that is what matters: + * + * - the kernel treats VM_IO | VM_PFNMAP as VM_SPECIAL, documented in + * include/linux/mm.h as "Special vmas that are non-mergable, + * non-mlock()able". mmap_region() therefore clears VM_LOCKED from + * this VMA and leaves mm->locked_vm alone, and __mm_populate() + * skips it outright ("if (vma->vm_flags & (VM_IO | VM_PFNMAP)) + * continue;" in mm/gup.c). + * + * - so a process that has called mlockall(MCL_FUTURE) no longer has + * this range pre-faulted inside vm_mmap(). Every other mapping in + * that process keeps being locked and pre-faulted as before; only + * device memory, which is neither pageable nor swappable and gains + * nothing from being pre-faulted, is left out. + * + * - and the allocator's own remap_pfn_range(), a few microseconds + * later, therefore finds an empty range instead of one the kernel + * has just populated, so it no longer trips + * BUG_ON(!pte_none(ptep_get(pte))) in remap_pte_range(). + */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0) + vm_flags_set(vma, VM_IO | VM_PFNMAP); +#else + vma->vm_flags |= VM_IO | VM_PFNMAP; +#endif + return 0; } The upstream driver uses a different mechanism which bypasses this issue. Other galcore allocators use the same pattern (calling vm_mmap to get a vma) and thus are likely succeptible to the same BUG(). Could you please look into this and fix the galcore driver? This issue prevents a real use case from working properly, and is affecting our customer directly. Thank you, Rafael Re: Using iMX8MP GPU on a process that call mlockall(MCL_FUTURE) causes kernel BUG() Hi @rbeims  Let me run the test and then check with the GPU team. Best Regards, Zhiming
記事全体を表示
TJA1445 休眠时CANH和CANL为低电平 Hi,     测试TJA1445进入Sleep模式时,唤醒源模式为WUF,VBATVCC默认为0,CPNC配置为1,PNCOK配置为1,为什么进入Sleep模式后,CANH和CANL为低电平0v,不是2.5V,此时CAN state是CAN Offline吗?如何配置可以当TJA1445进入Sleep后,CANH和CANL为2.5V,因为当前环境测试下来,CAN唤醒时,只发一帧CAN报文,是无法唤醒TJA1445的, liugaosong_0-1788782128664.pngliugaosong_0-1788782128664.pngliugaosong_0-1788782128664.png CH1是INH引脚,CH2是CANH,可以看到休眠是低电平。 Re: TJA1445 休眠时CANH和CANL为低电平 如果在掉电前设置好PN相关的寄存器,是可以关掉VCC/VIO,只保留BAT的。  然后总线上如果有满足WUP的报文,可以从CAN Offline进入CAN OfflinBias。再收到符合WUF的报文就可以PN唤醒了, WUP报文的要求正常一般报文都能满足,相当于连续发两帧特定帧报文就能唤醒     Re: TJA1445 休眠时CANH和CANL为低电平 Hi, 板子休眠,VCC是关了的,TJA1445做不到一帧唤醒吗?必须要要经过从CAN Offline进入CAN OfflinBias吗?这时候CANH和CANL能不能是2.5V,还是说TJA1445进入Sleep模式,CAN状态一定是在CAN Offline模式。
記事全体を表示
U盘 目前市面上最好的U盘是哪一款? ## 请告诉我 Re: Flash Drives 你好@ reedjhn9 我不太明白你的问题。您能否更详细地描述一下——具体来说,您正在使用的产品以及您想了解的具体问题?
記事全体を表示
i.MX8DXL CAAM COVER limitation for P-384 private key / black blob use case Hi NXP team, We are evaluating ECDSA P-384 black key/blob support on i.MX8DXL CAAM. Observed results P-256 Starting from an externally provided plaintext P-256 private key: Plaintext key → COVER → black key blob Restore black key from black blob ECDSA sign/verify Result: PASS P-384 (CAAM-generated black key) Generate ECDSA private key as KEY_COLOR_BLACK Generate black blob from private key without COVER operation Restore black key from black blob ECDSA sign/verify Result: PASS P-384 (external plaintext private key) Starting from an externally provided plaintext P-384 private key (48 bytes): Plaintext key → COVER → black key blob Restore black key from black blob ECDSA sign/verify Result: FAIL Additional observation We noticed the following comments in the NXP patch: https://github.com/nxp-imx-support/imx_sec_apps/blob/master/caam-ecdsa-blackkey/patch/0002-caam-black-key-blob-feature.patch /* * KEY commands seems limited to 32 bytes, so we should use the load * command instead which can load up to 64 bytes. * * TODO: The KEY command indicate it should be able to load key bigger * than 32bytes but it doesn't work in practice * * TODO: The LOAD command indicate it should be able to load up to 96 * byte keys it doesn't work in practice and is limited to 64 bytes */ We observed similar behavior. Using the LOAD command instead of the KEY command allows us to handle keys larger than 32 bytes, including a 48-byte P-384 private key. However, this does not resolve the issue above. Although the key can be covered and stored in a blob, the restored black key cannot be used successfully for ECDSA sign/verify.   Our questions: Is there any known limitation of the CAAM COVER operation for ECC private keys larger than 32 bytes? Is importing an external P-384 plaintext private key through COVER and then using it as an ECDSA black key a supported use case? Is the observed behavior expected due to a CAAM hardware limitation? Is there a recommended CAAM method to import an externally generated P-384 plaintext private key and use it as a black key for ECDSA operations? Any guidance would be appreciated. Thanks and best regards, hojames. Re: i.MX8DXL CAAM COVER limitation for P-384 private key / black blob use case Additional note:   Our concern is not limited to the ECDSA use case.   Even if importing an external P-384 private key through COVER is not a supported ECDSA workflow, we would still like to understand the limitations of the COVER operation itself.   In our application, the COVER operation may also be used to protect general sensitive data, not only ECDSA private keys. Therefore, support for payload sizes larger than 32 bytes is an important consideration. Based on our testing, using the LOAD-command workaround allows handling payloads larger than 32 bytes. Payloads below approximately 80 bytes appear to work, while larger sizes show inconsistent behavior. We would like to understand whether these observations reflect an actual CAAM limitation or an implementation issue. Could NXP also clarify whether there are any documented size limitations for the COVER operation itself, independent of the ECDSA use case?   Thank you. Re: i.MX8DXL CAAM COVER limitation for P-384 private key / black blob use case We need to set up the environment to test this CAAM function. We will update you once We have some results.
記事全体を表示
IW416 Wi-Fi 射频测试模式 – PN9 / EN 300 328 有效载荷模式 你好, 我们正在使用 AN14114 Rev.7.0 对IW416进行 EN 300 328 法规测试评估。 我们的认证实验室要求使用 PN9 数据序列进行连续调制传输。 然而,在 Wi-Fi TX 连续命令中,AN14114 仅描述了一种固定的有效载荷模式: echo "tx_continuous= " 并举例如下: echo "tx_continuous=1 0 0xAAA 0 3 0x8" 请您确认一下: 1. IW416 Wi-Fi RF 测试模式是否支持直接生成 PN9/PRBS9? 2. 如果不是,NXP 推荐用于 EN 300 328 测试的有效载荷模式是什么? 3. 0xAAA 能否作为连续分组模式中 PN9 的推荐替代方案? 4. 这些设置对于连续调制传输是否正确? - 传输模式 = 0 -cs模式=0 - 活动子通道 = 3 谢谢!
記事全体を表示
IMXRT1024でヒューズを焼損させずにHABをテストする 署名のないledのblinkyコードを使ってHAB監査API(報告状況と報告イベント情報)を実装しました。EVKボードは開いており、ヒューズも焼けていません 署名なしイメージ(CSF=0) - HABが4イベント情報で失敗 署名画像 - HAB パス0イベント情報 なので、ボードでもオープンHAB認証が実行されているのでイベント情報が見られると仮定しました。 しかし今回は同じIVT(CSF=0)でプロジェクトファームウェアを使い、同じHAB監査を実施しました 署名なし画像 - 0 イベント情報 のHABパス リードされた点滅ログ(署名なし): RVTヘッダー 0x 2002c0: tag=0xdd len=0x 038 par=0x43 HAB:RVTバージョン=0x 40305 居住区:report_status() = 0x33(HAB_FAILURE) HAB: config = 0xf0(HAB_CFG_OPEN) HAB: state = 0x66(HAB_STATE_NONSECURE) HAB: event[0], 8バイト HAB: hdr: tag=0xdb len=0x 0 8 par=0x43 HAB: status=0x33(HAB_FAILURE) reason=0x22(HAB_INV_ADDRESS) context=0x a(HAB_CTX_AUTHENTICATE) engine=0x 0(HAB_ENG_ANY) HAB: raw: db 0 8 43 33 22 a 0 HAB: event[1], 20バイト HAB: hdr: tag=0xdb len=0x 014 par=0x43 HAB: status=0x33(HAB_FAILURE) reason=0x c(HAB_INV_ASSERTION) コンテキスト=0xa0(HAB_CTX_ASSERT) engine=0x 0(HAB_ENG_ANY) HAB: raw: db 0 14 43 33 c a0 0 0 0 0 0 0 60 0 10 0 0 0 0 20 HAB: event[2], 20バイト HAB: hdr: tag=0xdb len=0x 014 par=0x43 HAB: status=0x33(HAB_FAILURE) reason=0x c(HAB_INV_ASSERTION) context=0xa0(HAB_CTX_ASSERT) engine=0x 0(HAB_ENG_ANY) HAB: raw: db 0 14 43 33 c a0 0 0 0 0 0 60 0 10 20 0 0 0 1 HAB: event[3], 20バイト HAB: hdr: tag=0xdb len=0x 014 par=0x43 HAB: status=0x33(HAB_FAILURE) reason=0x c(HAB_INV_ASSERTION) コンテキスト=0xa0(HAB_CTX_ASSERT) engine=0x 0(HAB_ENG_ANY) HAB: raw: db 0 14 43 33 c a0 0 0 0 0 0 0 60 0 20 0 0 0 4 HAB: VERDICT = 4 イベント情報 記録済み -- 上記のデコード済みフィールドを参照 私のプロジェクトファームウェア(署名なし) HAB: RVTヘッダー 0x002002c0 HAB: tag=0xdd len=0x0038 par=0x43 HAB:RVTが確認され有効 居住区:RVTバージョン=0x00040305 居住区:report_status() = 0xf0 HAB: config = 0xf0 HAB: state = 0x66 HAB: 監査イベント情報やクエリなし... HAB: report_event(idx=0) 0x33返されました(イベント情報やクエリなし) HAB: VERDICT = PASS(監査イベント情報なし) なぜ違いがあるのか Re: Test HAB on IMXRT1024 without burning fuses こんにちは、 @Abhay2080 さん。 ご連絡ありがとうございます!LED点滅コードが入っているSDK版と、画像作成に使われているSPT版の両方をいただけますか? ご辛抱いただきありがとうございます! すてきな一日を、 カン ------------------------------------------------------------------------------- 注記: この投稿があなたの質問への回答になっている場合は、「正解としてマーク」ボタンをクリックしてください。ありがとうございます! - 前回の投稿から7週間Threadをフォローしており、その後の返信は無視しています もし後で関連する質問があれば、新しいThreadを開き、閉じたThreadを参照してください。 ------------------------------------------------------------------------------- Re: Test HAB on IMXRT1024 without burning fuses これはSDKバージョンです - SDK_25_06_00_MIMXRT1024xxxxx SPTバージョン - 26.06 MCU xpresso - v25.6.136 MCU Xpressoでコンパイルした場合、LED Blinky用の署名なし画像はSPTとCST 4.0の両方で作成されます Re: Test HAB on IMXRT1024 without burning fuses こんにちは、 @Abhay2080 さん。 情報と詳細なログをありがとうございます。これは素晴らしい観察結果で、違いはIVT内のCSFポインタがゼロかゼロでないかという一点に集約されます。 HABv4が認証を決定する方法 i.MX RT10xxでは、ブートROMは認証を試みるかどうかを判断する前にIVTのCSFフィールドを確認します。 CSF = 0x00000000 (null)の場合、HABは認証を完全にスキップし、イベント情報は記録されず report_status() 0xf0 (HAB_SUCCESS)を返します。これはセキュリティ上の「合格」ではありません。認証は一度も試みられていません。 CSF = non-zero (CSF領域を指す場合):HABは認証を試みます。署名が欠落または無効の場合、失敗イベント情報が記録され、 report_status() は 0x33 (HAB_FAILURE)を返します。オープンボードの場合、これはブートを停止させません。 なぜLED点滅(署名なし)が4つの故障イベント情報を示したのか あなたのLED点滅バイナリはMCUXpresso IDEによって構築され、その後SPT(Secure Provisioning Tool)で処理されてブート可能なイメージが作成されました。「署名なし」ビルドタイプの場合でも、SPTのブートイメージパイプラインは、ゼロ以外のCSFポインタをIVTに書き込み、イメージ内にCSF領域を予約します。Boot ROMは非ゼロポインタを発見し、認証を試みましたが有効な署名データは見つからず、4つのイベントを記録しました。 イベント情報0( HAB_INV_ADDRESS / HAB_CTX_AUTHENTICATE 😞 HABは認証のために画像を探しましたが、無効なアドレスに遭遇しました。これは空のCSF領域と一致します。 イベント情報1–3( HAB_INV_ASSERTION / HAB_CTX_ASSERT 😞 HABによる画像領域に対する内部検証は、実際の脳脊髄液データが存在しないため失敗しました。 なぜプロジェクトのファームウェア(署名なし)にイベント情報が0と表示されたのか あなたのプロジェクトファームウェアは、SPTの起動可能なイメージ生成ステップ を経ずに 、MCUXpresso IDEを通じて直接コンパイルされました。結果として得られるバイナリには、IVT内に真のヌルCSFポインタが含まれています。Boot ROMは CSF = 0 を認識し、認証を完全にスキップし、HABはクリーンな報告をします。ログの report_event(idx=0) からの 0x33 リターンは「このインデックスにイベント情報なし」(つまり、クエリ自体が何も保存されていないため返HAB_FAILURE)を意味しており、HABが故障を検出したわけではありません。 確認の簡単な方法 バイトオフセット +0x18 (CSFフィールド)で、両方のバイナリのIVTを調べます。 SPT製LED点滅:ゼロ以外の値(例: 0x60006xxx または類似のフラッシュアドレス) プロジェクトファームウェア: 0x00000000 プロジェクトのファームウェアで HAB 監査を適切にテストするには 起動可能なイメージはSPT(またはelftosb/nxpimage)でビルドし、CSF領域をイメージに埋め込む必要があります。署名なしビルドでも同様です。これにより、Boot ROMが認証を試み、HABイベント情報が生成されます。そうして初めて、HAB監査コードはテスト目的のための有意義なデータを収集できるようになります。 まとめると、HAB認証はオープンボード上で動作するというあなたの最初の仮定は正しいですが、それはIVTに非ゼロのCSFポインタが存在する場合に限られます。プロジェクトのファームウェアで観察された動作は想定どおりであり、正しいものです。 これで少しでも分かりやすくなれば幸いです!他に質問があればお知らせください。   すてきな一日を、 カン ------------------------------------------------------------------------------- 注記: この投稿があなたの質問への回答になっている場合は、「正解としてマーク」ボタンをクリックしてください。ありがとうございます! - 前回の投稿から7週間Threadをフォローしており、その後の返信は無視しています もし後で関連する質問があれば、新しいThreadを開き、閉じたThreadを参照してください。 ------------------------------------------------------------------------------- Re: Test HAB on IMXRT1024 without burning fuses はい、Kan_Liあなたが言った説明は正しいですが、正しいシナリオは私たちにとってです。 LED点滅(署名なし)-> このバイナリiはMCU Xpresso IDEのみで生成(SPT経由は処理していません)。サイズ - 30KB そして、LED点滅(符号なし)と私のプロジェクト(符号なし)の両方のIVTを比較しても、両方ともまったく同じIVT(CSF=0)でした。サイズ 64KB 16進数比較を参照 左側はLED点滅、右側は私のプロジェクトのファームウェアです また、ヒューズを焼損させずにHABを正しくテストする方法についても教えてください。 Abhay2080_0-1788931301704.pngAbhay2080_0-1788931301704.pngAbhay2080_0-1788931301704.pngAbhay2080_0-1788931301704.pngAbhay2080_0-1788931301704.png Re: Test HAB on IMXRT1024 without burning fuses こんにちは、 @Abhay2080 さん。 16進数での比較をありがとうございます。おかげで状況がずっと分かりやすくなりました。おっしゃる通り、両方のバイナリはCSF=0の同一のIVT(初期値変換)を持っています。実際の根本原因は、CSFポインタではなく、ブートデータ size フィールドにあります。 16進ダンプの内容 ファイルオフセット 0x1020 (IVTの boot_data が指す位置)にあるブートデータ構造を見てみましょう。 フィールド LED点滅 プロジェクトファームウェア start (0x1020) 0x60000000 0x60000000 size (0x1024) 0x00004000 = 16 KB 0x00000400 = 1 KB plugin (0x1028) 0x00000000 0x00000000 IVT内の両方のCSFフィールドは 0x00000000 であり、同一であることが確認されました。 HABの挙動が異なる理由 HABライブラリの authenticate_image() は、認証を試みる前に画像スコープを決定するために、Boot Data領域( start から start + size )を使用します。重要なことに、 IVT自体はフラッシュオフセット 0x1000 (ベースから4096バイト)に配置されています。HABは、IVTが宣言されたブートデータ領域内に含まれるかどうかを確認します。 LED点滅— ブートデータは16KB( 0x4000 )を宣言します。オフセット 0x1000 (4096)のIVTは [0x60000000, 0x60004000) の中にあります。HAB は IVT を見つけ、 authenticate_image() を試行し、CSF=0 に遭遇します → ログには HAB_INV_ADDRESS + 3 つのアサーション失敗が記録されます → report_status() = HAB_FAILURE 。 プロジェクトファームウェア- ブートデータは 1 KB ( 0x400 ) のみを宣言しています。オフセット 0x1000 (4096)のIVTは [0x60000000, 0x60000400) 外側です。HABは宣言された領域内で有効なIVTを検出できず→認証は→ report_status() = HAB_SUCCESS , 0イベント情報で完全にスキップされます。 まとめると、プロジェクトファームウェアの1KBブートデータサイズは誤って小さすぎます。IVTはその境界を超えているため、HABはそれに手を出しません。 ブートデータのサイズはどちらも、実際のバイナリファイルのサイズ(それぞれ30KBと64KB)とは一致しないことに注意してください。両方のイメージは、適切なブート可能なイメージビルダーではなく、IDEが直接生成したブートデータを持っています。サイズのずれの程度によって、HABが発生するかどうかが決まります。 根本的な原因 SPTやelftosbを経ずにMCUXpresso IDEから直接コンパイルすると、結果として得られるバイナリはHAB評価のための適切なブートデータ構造を持ちません。 size フィールドは、IVT を包含する場合と包含しない場合がある値に設定され、予測不可能な HAB 監査結果をもたらします。 ヒューズを焼損させずにHABを正しくテストする方法 オープンボードにおける信頼できる手法は以下のとおりです。 SPTまたはelftosbを使用してビルドします。これにより、ブートデータ(ベースからCSF/コードの終わりまでイメージ全体をカバーする start 、 size )、FCB、IVT、およびオプションでCSFブロックが正しく設定されます。生のIDEコンパイル .bin でHABをテストするのは絶対に避けてください。ブートデータは信頼性が低くなります。 署名のないイメージ(CSF=0、正しいブートデータ)でテスト してください — HABは認証を試みますがCSFは検出できず、 HAB_INV_ADDRESS +アサーション失敗を記録します。 report_status() = HAB_FAILURE 。これにより、HABが正しく動作しており、監査コードが正常に機能していることが確認できます。これはまさに、あなたのLED点滅+SPTの結果が示していたことと同じです。 署名付きイメージ(CSFが有効で、ブートデータが正しいもの)を使用してテストします。SPTまたはCST 4.0を使用して、キーで適切に署名されたイメージを作成します。オープンボードでは、HABは埋め込まれたSRK/CSFを使用してイメージを認証します。署名が有効であれば、→ report_status() = HAB_SUCCESS 、0のイベント情報となります。署名が間違っていたり欠如している場合、→失敗のイベント情報。どちらの場合もオープンボード上でブートが続きます。 ヒューズを書き込む前に信頼性を確認してください。署名済みのイメージがオープンボードに表示され、HAB_SUCCESS が表示された後でのみ、SRK ハッシュヒューズを書き込んでください。これにより認証チェーン全体が安全に検証されます。 推奨されるテスト手順(すべてオープンボードで実施): Step 1: SPT -> Build unsigned image -> Flash -> Run HAB audit Expected: HAB_FAILURE, 4 events (HAB is running, audit code is correct) Step 2: SPT/CST -> Build signed image -> Flash -> Run HAB audit Expected: HAB_SUCCESS, 0 events (signing + authentication working end-to-end) Step 3: Corrupt the signed image or swap keys -> Flash -> Run HAB audit Expected: HAB_FAILURE, events logged (confirms rejection logic) Step 4: Burn fuses (SRK hash) -> confirm Step 2 still passes on Closed board これで違いが十分に説明できたでしょうか。重要なポイントは、HABをテストする際は必ずSPT/elftosbを使って起動可能なイメージを構築することです。生のIDEバイナリは使わないでください。 すてきな一日を、 カン ------------------------------------------------------------------------------- 注記: この投稿があなたの質問への回答になっている場合は、「正解としてマーク」ボタンをクリックしてください。ありがとうございます! - 前回の投稿から7週間Threadをフォローしており、その後の返信は無視しています もし後で関連する質問があれば、新しいThreadを開き、閉じたThreadを参照してください。 ------------------------------------------------------------------------------- Re: Test HAB on IMXRT1024 without burning fuses @Kan_Li 、Boot データは小さなエンディアン32ビットワードに保存されているため、両方のバイナリのStartは同じなので、誤解されていると思います 始め0x60000000 ブートデータサイズは LED点滅 - 0x00400000(4MB) 私のプロジェクトです - 0x00040000(256KB) つまり、あなたの説明通りIVTは定義されたブートデータ内に含まれます Re: Test HAB on IMXRT1024 without burning fuses こんにちは、 @Abhay2080 さん。 おっしゃる通りです。バイト順序の誤りについてお詫び申し上げます。両方のブートデータサイズ(4MBと256KB)にはIVTが含まれているため、以前の説明は誤りでした。 根本原因:スタートアップコードによってHABイベントログが消去された ブートROMは両方のイメージに対して同じ4つの失敗イベント情報(CSF=0、認証試行)を生成します。違いは、プロジェクトファームウェアのCランタイム起動時が、HABライブラリがイベントログやステータスを保存する領域を含む大きなOCRAM領域をゼロにし、HAB監査コードが実行される 前に ゼロ化することです。そのため、 report_status() は 0xF0 返却し、イベント情報は0でした。HAB状態自体が消去されたのです。 修正方法: HAB監査コールをBSSのゼロイニットループの前に Reset_Handler に移動すると、イベント情報が見えます。 他に何かご質問がありましたら、お気軽にお知らせください。 すてきな一日を、 カン ------------------------------------------------------------------------------- 注記: この投稿があなたの質問への回答になっている場合は、「正解としてマーク」ボタンをクリックしてください。ありがとうございます! - 前回の投稿から7週間Threadをフォローしており、その後の返信は無視しています もし後で関連する質問があれば、新しいThreadを開き、閉じたThreadを参照してください。 -------------------------------------------------------------------------------
記事全体を表示
TJA1410_10Base_T1s こんにちは、NXP S32K5とTJA1410を使用して10BASE-T1Sのテストを行っています。現在、TXピンに波形が見え、RXピンとEDピンにも波形があり、これはMDIで信号が受信できることを示しています。しかし、TXピンはMDIにデータを送信できません。 TX_RX_ED-2026-09-10-19-26-50.bmpTX_RX_ED-2026-09-10-19-26-50.bmpTX_RX_ED-2026-09-10-19-26-50.bmpTX_RX_ED-2026-09-10-19-26-50.bmp よろしくお願いいたします。 シアンロン イーサネット PHY Re: TJA1410_10Base_T1s こんにちは@wuxianlongさん MDIはどのように測定しましたか?MDIは差動インターフェースなので、差動オシロスコーププローブを使う必要があります。MDIは適切な差動終端を必要とします。AN14787 - アプリケーションノート10BASE-T1S イーサネットPMDトランシーバ TJA1410、Rev. 1.0、第3.3章を参照してください。 よろしくお願いいたします。 パベル Re: TJA1410_10Base_T1s こんにちは@wuxianlongさん このメールが、あなたがお元気でいらっしゃる時に届くことを願っています。現在お手元にある製品、NPI(新製品紹介)S32K5についてお手伝いしていますが、まだ正式に発売されていません。 これらの製品の早期アクセス権を得たお客様は、現場エンジニアを割り当てていることにご注意ください。指定されたフィールドエンジニアが、この製品に関する問題や懸念、問い合わせの主要なサポートチャネルとなります。 正式リリース後、オンラインサポートチームはより幅広いサポートを展開していきます。それまでは、私たちは必要な支援を提供する体制が整っていません。 この件についてご理解いただき感謝いたします。 ご理解いただきありがとうございます。 よろしくお願いいたします。 パベル Re: TJA1410_10Base_T1s こんにちは、 @PavelL 私は差動プローブを使用しませんでした。私が送信(TX)すると、オシロスコープ上のMDIには変動が見られず、平坦/水平な状態が維持されます。しかし、PCがデータを送信すると、MDIには明確な差動波形が表示される。TJA1410が正しく送信モードに切り替わっておらず、チップは通常モードのままにしているように感じます。PHYの現在のモードを確認する方法はありますか?現在、私たちのTJA1410はSMIインターフェースに接続されていませんが、どのような注意点を取るべきでしょうか? 敬具 仙龍 Re: TJA1410_10Base_T1s こんにちは@wuxianlongさん S32K5はNPIデバイスであるため、現時点では弊社側でS32K5とTJA1410の完全なセットアップを検証することができませんのでご了承ください。   TJA1410動作モードはSMIインターフェースを通じて選択されません。通常モードと送信モード間の遷移は、TXピンで受信したコマンドによって制御されます。したがって、TXでデータアクティビティを観測したとしても、TJA1410が送信モードに入ったことを必ずしも確認できるわけではありません。前述のTRANSMITコマンドとそのタイミングは、TJA1410データシートに指定されているタイミングにも準拠する必要があります。   TJA1410データシートの図10に従って、通常モードから送信モードへの遷移を確認してください。特に、TXコマンドと差動VLINE信号、およびED出力を併せて取得してください。これにより、TJA1410がTRANSMITコマンドを認識し、MDIトランスミッタを起動するかどうかが確認されます。   よろしくお願いいたします。 パベル
記事全体を表示
TJA1410_10Base_T1s Hi,NXP I am testing 10BASE-T1S using the S32K5 and TJA1410. Currently, I can see waveforms on the TX pin, and there are also waveforms on the RX and ED pins, which indicates that signals can be received on the MDI. However, the TX pin is unable to send data to the MDI. TX_RX_ED-2026-09-10-19-26-50.bmpTX_RX_ED-2026-09-10-19-26-50.bmpTX_RX_ED-2026-09-10-19-26-50.bmpTX_RX_ED-2026-09-10-19-26-50.bmp Best Reagrds. xianlong Ethernet PHY Re: TJA1410_10Base_T1s Hello @wuxianlong , How have you measured the MDI? MDI is differential interface so you need to use differential oscilloscope probe. MDI requires proper differential termination - please refer to AN14787 - Application note 10BASE-T1S Ethernet PMD transceiver TJA1410, Rev. 1.0 , chapter 3.3. Best regards, Pavel Re: TJA1410_10Base_T1s Hello @wuxianlong , I hope this email finds you well. I am writing to you in regard to a product currently in your possession – an NPI (New Product Introduction) - S32K5 - which has not been officially launched yet. Please be advised that customers who have been granted early access to such products have assigned their field engineers. Your designated field engineer should serve as your primary support channel for any issues, concerns or queries you may have about this product. Our online support team will be opening a wider range of support for this product once it has been officially released. Until then, we will not be equipped to provide the desired assistance. We appreciate your understanding in this matter. Thank you for your understanding. Best regards, Pavel Re: TJA1410_10Base_T1s Hi,@PavelL  I did not use a differential probe. When I transmit (TX), the MDI shows no fluctuation on the oscilloscope — it remains flat/horizontal. However, when the PC sends data, the MDI clearly shows a differential waveform. It feels like the TJA1410 is not being correctly switched into transmit mode and the chip remains in normal mode. Are there any methods to verify the PHY's current mode? Currently, our TJA1410 is not connected to an SMI interface — what precautions should we take regarding this? Best Regards, xianlong Re: TJA1410_10Base_T1s Hello @wuxianlong , Since S32K5 is an NPI device, please note that we are currently unable to validate the complete S32K5 and TJA1410 setup on our side.   The TJA1410 operating mode is not selected through the SMI interface. The transitions between Normal and Transmitting modes are controlled by commands received on the TX pin. Therefore, observing data activity on TX does not necessarily confirm that the TJA1410 has entered Transmitting mode. The preceding TRANSMIT command and its timing must also comply with the timing specified in the TJA1410 data sheet.   Please verify the transition from Normal to Transmitting mode according to Figure 10 in the TJA1410 data sheet. In particular, please capture the TX command together with the differential VLINE signal and ED output. This should confirm whether the TJA1410 recognizes the TRANSMIT command and activates its MDI transmitter.   Best regards, Pavel
記事全体を表示
Programming External MCU (S32K358) using open board debugger of S32K3X8EVB-Q289HWUM Hello,  I am trying to program my external MCU S32K358 using an onboard debugger of S32K3X8EVB-Q289HWUM board connected at 20-pin Cortex Debug D ETM connector, along with cable J55 cable. But I get errors. Please let me know what I actually need to do to successfully program my controller. Yash2530_0-1789183591258.jpegYash2530_0-1789183591258.jpegYash2530_0-1789183591258.jpeg CMD>VC Verifying object file CRC-16 to device ranges ... block 00400000-0042F4B7 ... Calculated CRC-16 does not match block. (File = $A9EE, Device = $EDEF) Error verifying flash of device Error occured during Flash programming. INFO: DAP IDCODE = 0x6BA02477 INFO: DAP successfully powered up. DP CTRL/STAT = 0xF0000000 Starting reset script (C:\NXP\S32DS.3.6.7\eclipse\plugins\com.pemicro.debug.gdbjtag.pne_6.1.8.202603121731\supportFiles_ARM\NXP\S32K3xx\S32K358.mac) ... REM Enable clocks for selected cores in MC_ME module Delaying for 200mS ... Done. REM Initialize RAM and DMA: REM Initialize DMA TCD: REM Copy valid executable code to RAM for each core to be used. REM Enable required cores in MC_ME: Delaying for 20mS ... Done. Delaying for 20mS ... Done. Reset script (C:\NXP\S32DS.3.6.7\eclipse\plugins\com.pemicro.debug.gdbjtag.pne_6.1.8.202603121731\supportFiles_ARM\NXP\S32K3xx\S32K358.mac) completed. PEmicro GDB Launch Failure : Error during flash programming. Terminating debug session. PE-ERROR: Error downloading to the device. Terminating debug session. Disconnected from "127.0.0.1" via 127.0.0.1. Disconnection by port "53100" from 6224 PE-ERROR: Error : Attempted to send response but connection already closed. Disconnected from "127.0.0.1" via 127.0.0.1. Disconnection by port "53104" from 7224 INFO: DAP IDCODE = 0x6BA02477 Target Disconnected. Regards, Yash Gupta Re: Programming External MCU (S32K358) using open board debugger of S32K3X8EVB-Q289HWUM Hi First of all, I do not recommend using the onboard debugger. The onboard debugger on the S32K3X8EVB is designed for programming and debugging the MCU on the evaluation board itself. Using this debugger to program or debug an external custom S32K358 board is not an officially recommended use case by PEmicro; therefore, NXP cannot guarantee proper operation in this configuration. Limitations regarding the onboard debugger were previously mentioned in the "Program/Debug issue with S32K142-Q48" discussion. I am not aware if PEmicro has changed the limitations for the S32K3 onboard debugger. Even if there are no such limitations from PEmicro, you must still ensure that the onboard S32K358 is not being powered through the debugger interface circuitry (verify by measuring onboard VDD_HV_A, VDD_HV_B, V11, etc.) or that the JTAG_TCLK/SWD_CLK lines are disconnected from the onboard S32K358. Additionally, you need to verify that the signal voltage of the onboard debugger interface matches the voltage on your custom board. Best Regards, Robin
記事全体を表示
IW416 Wi-Fi RFテストモード – EN300 328用のPN9 / ペイロードパターン こんにちは、 当社は、AN14114 Rev.7.0を使用して、EN 300 328規制試験におけるIW416の評価を行っています。 当社の認証機関は、PN9データシーケンスを用いた連続変調送信を要求しています。 しかし、Wi-Fi TX連続コマンドにおいて、AN14114は固定ペイロードパターンのみを規定している。 echo "tx_continuous=<開始/停止> " そして、次のような例を挙げています。 echo "tx_continuous=1 0 0xAAA 0 3 0x8" 確認いただけますか: 1. IW416 Wi-Fi RFテストモードは直接PN9/PRBS9生成に対応していますか? 2. そうでない場合、NXPはEN 300 328試験にどのようなペイロードパターンを推奨しますか? 3. 0xAAAは連続パケットモードのPN9の推奨代替として使用可能か? 4. これらの設定は、連続変調送信に対して正しいですか? - 送信モード = 0 - cs モード = 0 - アクティブなサブチャネル = 3 よろしくお願いします。
記事全体を表示