Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
PN7160A 和 linux_libnfc-nci 在 Raspberry Pi 5 2026 64 位 Trixie 系统上运行 你好, 我正在尝试为工作项目启动 PN7160A,但始终无法让 linux_libnfc-nci 正常工作。该补丁已过时,lgpiod 在版本 2 中进行了全面改进。 还需要使用标志 sudo make install CFLAGS="-Wno-error=implicit-function-declaration" " 否则我就会 "demoapp/main.c:在函数“onMessageReceived”中: demoapp/main.c:451:5:错误:隐式声明函数“PrintNDEFContent” [-Wimplicit-function-declaration] 451 | PrintNDEFContent(NULL, NULL, message, length); 我找到了 2025 年关于 PN7150 的一篇旧帖子,但是当我尝试编译时,我遇到了奇怪的错误,例如“uint8_t”未在作用域中声明,请使用 。我的树莓派操作系统是最新的Trixie Debian 13.6。 需要一些帮助,谢谢。 Re: PN7160A and linux_libnfc-nci on Raspberry Pi 5 2026 64-bit Trixie 你好@paulwitulski 请将补丁作为附件应用。
View full article
S32K358 eMIOS ISR 卡在 85°C 尊敬的恩智浦技术支持团队: 我们在 S32K358 上进行 85°C 左右的温度测试时遇到了问题。   在我们的应用中,我们使用了 6 个 eMIOS 通道,每个通道都配置为在 PWM 的两个边沿生成中断,频率为 200Hz。   在 85°C 时,MCU 有时会卡在某个 eMIOS 中断服务例程 (ISR) 中。ISR 无法退出,因为代码会通过读取 eMIOS 寄存器来检查中断标志,但该标志的值为 0(文件 Emios_Mcl_Ip_Irq.c)。 😞   如果( 0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32) eMIOS_S_FLAG_MASK ))   调试后我们发现,当问题出现时,包含 eMIOS 基地址的变量( Emios_Ip_paxBase)为 NULL 。而当应用程序正常运行时,该指针有效,并且 eMIOS 寄存器也能被正确读取。 似乎在某些情况下,对 eMIOS 外设的引用在 ISR 执行期间会被损坏或清除。   您是否有任何关于可能存在的已知问题或根本原因的线索,例如堆栈溢出、内存损坏、并发访问、中断服务例程处理或温度相关行为?   顺祝商祺! 西蒙 Re: S32K358 eMIOS ISR stuck at 85°C 嗨,范恩 我目前使用的是 RTD 7.0.0 版本。 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@simon98 你使用的是哪个版本的RTD?任何其他信息都将不胜感激。 此外,在 6.0.0 之前的 RTD 版本中,存在一个与函数作用域内静态变量的内存映射不正确相关的已知问题 (ARTD-159985)。 此问题描述了在 Emios_Mcl_Ip.c 中定义的变量 Emios_Ip_paxBase 存在的问题。Emios_Mcl_Ip_Irq.c 被赋予了不一致的初始化特性。更多详情请参阅软件版本说明。 BR,VaneB Re: S32K358 eMIOS ISR stuck at 85°C 嗨@simon98 能否提供一个能够重现所观察到的现象的简单应用程序?另外,能否确认一下您使用的是定制电路板还是评估电路板? 另外,能否分享一下测试是如何进行的,以确认该问题是否在 85°C 时出现? Re: S32K358 eMIOS ISR stuck at 85°C 嗨@VaneB , 目前我正在使用一块带有 S32K358 的定制板,其中我使用以下 eMIOS_1 通道生成 200 Hz 的 PWM:ch3、ch9、ch11、ch12、ch13、ch19。代码是使用 Simulink 生成的。 我将定制电路板放入 85°C 的气候箱中一段时间后,观察到了卡顿现象。 我在使用 S32DS (3.6.7) 进行调试时我发现它卡在了 ISR(EMIOS1_1_IRQ) 中,所以我在入口/出口函数附近以及 Emios_Pwm_IrqHandler 和 Emios_Pwm_Ip_IrqHandler 函数中都添加了一些自定义计数器,以便检测代码的哪些部分正在执行。 经过一些测试,我发现,当它卡住时,内部…… static void Emios_Pwm_IrqHandler(const uint8 Instance, const uint8 Channel) { /* 检查 Emios 通道上是否发生了事件 */ 如果 (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32)eMIOS_S_FLAG_MASK)) { /* 检查 EMIOS 通道上是否发生了事件 */ 如果 (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].C) & ((uint32)(eMIOS_C_DMA_MASK | eMIOS_C_FEN_MASK)))) { Emios_Pwm_Ip_IrqHandler(实例, 通道); } 别的 { /* 什么也不做 - 如果遇到虚假中断,立即返回 */ } } } if 条件: 如果 (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32)eMIOS_S_FLAG_MASK)) 始终为 0,因为由于某种原因,Emios_Ip_paxBase[Instance] 指向 0。这意味着没有人清除中断标志,因此它进入了一个无法逃脱的循环。 以下是我用来检测此问题的代码: static void Emios_Pwm_IrqHandler(const uint8 Instance, const uint8 Channel) { // uint32_t s; // uint32_t c; // uint32_t s_flag; // uint32_t s_ovr; dbg_pwm_last_instance = 实例; dbg_pwm_last_channel = Channel; dbg_pwm_last_base_addr = (uint32_t)Emios_Ip_paxBase[Instance]; dbg_pwm_last_c_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].C; dbg_pwm_last_s_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].S; dbg_emiosipirq_static_state1++; /* 如果 (实例 == 1) { 切换(通道) { 案例16: dbg_emiosipirq_static_cnt_ch16++; 休息; 案例17: dbg_emiosipirq_static_cnt_ch17++; 休息; 案例18: dbg_emiosipirq_static_cnt_ch18++; 休息; 案例19: dbg_emiosipirq_static_cnt_ch19++; 休息; 默认: dbg_emiosipirq_static_cnt_oth1++; 休息; } } 别的 { dbg_emiosipirq_static_cnt_oth2++; } */ /* Lettura reale dei registri vista dal codice */ /* s = Emios_Ip_paxBase[Instance]->CH.UC[Channel].S; c = Emios_Ip_paxBase[Instance]->CH.UC[Channel].C; s_flag = s & (uint32)eMIOS_S_FLAG_MASK; s_ovr = s & (uint32)eMIOS_S_OVR_MASK; dbg_pwm_last_s = s; dbg_pwm_last_c = c; dbg_pwm_flag_mask = (uint32)eMIOS_S_FLAG_MASK; dbg_pwm_ovr_mask = (uint32)eMIOS_S_OVR_MASK; dbg_pwm_last_s_and_flag = s_flag; dbg_pwm_last_s_and_ovr = s_ovr; 如果 (s_flag != 0U) { dbg_pwm_s_flag_yes++; } 别的 { dbg_pwm_s_flag_no++; } 如果 (s_ovr != 0U) { dbg_pwm_s_ovr_yes++; } 别的 { dbg_pwm_s_ovr_no++; } 如果 ((s_flag == 0U) && (s_ovr != 0U)) { dbg_pwm_flag0_ovr1_count++; } 否则如果 ((s_flag != 0U) && (s_ovr != 0U)) { dbg_pwm_flag1_ovr1_count++; } 否则如果 ((s_flag != 0U) && (s_ovr == 0U)) { dbg_pwm_flag1_ovr0_count++; } 别的 { dbg_pwm_flag0_ovr0_count++; } */ /* 检查 EMIOS 通道上是否发生了事件 */ 如果 (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].S) & (uint32)eMIOS_S_FLAG_MASK)) { dbg_emiosipirq_static_state2++; /* 检查 EMIOS 通道上是否发生了事件 */ 如果 (0U != ((Emios_Ip_paxBase[Instance]->CH.UC[Channel].C) & ((uint32)(eMIOS_C_DMA_MASK | eMIOS_C_FEN_MASK)))) { dbg_emiosipirq_static_state3++; Emios_Pwm_Ip_IrqHandler(实例, 通道); } 别的 { dbg_emiosipirq_static_state4++; /* 什么也不做 - 如果遇到虚假中断,立即返回 */ } } 别的 { dbg_emiosipirq_static_state5++; //Emios_Pwm_Ip_IrqHandler(Instance, Channel); //Emios_Pwm_Ip_IrqHandler(1, 19); } } 以下是我存储 Emios_Ip_paxBase 应指向的地址的全局变量: dbg_pwm_last_base_addr = (uint32_t)Emios_Ip_paxBase[Instance]; dbg_pwm_last_c_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].C; dbg_pwm_last_s_addr = (uint32_t)&Emios_Ip_paxBase[Instance]->CH.UC[Channel].S; 我还添加了一些自定义代码,用于在运行时读取 NVIC 寄存器:附件中包含线程、通用寄存器、NVIC 寄存器和变量表达式、EMIOS 寄存器等文件,以及我进行的 6 次测试。 另外,我会在私信中提供我用来测试此行为的 S32DS 项目。 希望这些信息对大家有所帮助。如有任何其他疑问,请随时联系我。 BR, 西蒙 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@simon98 非常感谢您提供这些信息。 由于代码似乎卡在了 EMIOS1_1_IRQ 中,根据您的配置,它对应于 eMIOS 1 通道 19,让我们尝试将分析范围缩小到这一特定部分。 为了简化调试并排除其他模块的任何干扰,请创建一个仅包含此 eMIOS 配置的最小测试项目。这将有助于我们找出问题所在,并更好地了解其根本原因。如需指导,您可以查看S32M27x/S32K3 – eMIOS 使用主题中提供的示例。 同样的行为是否仍然存在?另外,如果您有评估板,最好能在上面测试一下相同的代码。 Re: S32K358 eMIOS ISR stuck at 85°C 嗨,范恩 我本周会尝试给你一个简单的项目来复现这种行为。 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@simon98 我们的评估板主要设计用于室温环境,尚未经过极低或极高温度的测试或认证。 您仍然可以在室温范围之外使用评估板,但我们无法保证它们在这些条件下的性能。 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@VaneB , 我用简化的配置在我的定制板上测试了这个问题,该配置只包括六个 eMIOS1 通道。遗憾的是,在这种配置下我无法重现该错误。应用程序运行正常,不会卡在 EMIOS_1_IRQ 中。 目前,我正在研究将为我们定制板开发的完整项目加载到 EVB 上是否可行。在继续之前,我还想了解一下定制板和 EVB 之间的硬件差异是否可能导致任何意外行为,甚至损坏 EVB。 BR, 西蒙 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@VaneB , 经过多次尝试,我终于创建了一个 EVB 项目,该项目尽可能地重现了在我的定制板上运行的应用程序。具体来说,我将所有引脚的配置方式都与我的自定义项目中的配置方式相同。 然后我在 85°C 的条件下用我的定制板测试了这个项目,eMIOS ISR 问题仍然存在:应用程序继续卡住。 之后,我在相同的温度条件下,甚至在 90°C 以上,对 EVB 进行了完全相同的项目测试,但我无法重现该问题——EVB 继续正常运行,没有出现卡顿。 此时,您会建议采取哪些后续步骤来确定问题的根本原因并找到可能的解决方案? 如果您需要我提供任何其他信息、测量数据或调试数据,请告诉我。 我附上了一个 ZIP 文件,其中包含完整的 EVB 项目以及我的定制板和 EVB 上的 K358 图片。 感谢您的支持。 BR 西蒙娜 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@simon98 由于该问题仅在您的定制板上出现,而未在 EVB 上出现,因此值得调查根本原因是否与硬件有关。 我建议您将您的硬件设计与 EVB 原理图进行比较,并查看 S32K3 硬件设计指南,以验证所有相关建议是否已正确实施。 Re: S32K358 eMIOS ISR stuck at 85°C 嗨@VaneB ,   我们已对硬件设计进行了审查,未发现明显的硬件问题。此外,由于硬件设计和运行条件不同,该电路板与 NXP EVB 不具有直接可比性。   如果客户发现定制板存在温度相关问题,如何才能从恩智浦半导体获得一对一的支持?   BR, 西蒙
View full article
需要帮助查找适用于 i.MX95 内核版本 (v6.6.52-2.2.0) 的 Neutron 变流器 SDK。 您好,NXP团队, 我目前正在使用 LF_v6.6.52-2.2.2_images_IMX95 ,并且我正在尝试确定 Neutron Converter SDK 的正确版本,以便将 TensorFlow Lite INT8 量化 模型 转换 为 NPU 格式。 我尝试过多个版本的 Neutron 变流器 SDK,但每次尝试都出现以下错误: 信息:NeutronDelegate 委托:27 个节点中有 1 个节点被委托,共 1 个分区。 信息:已为 CPU 创建 TensorFlow Lite XNNPACK 委托。 警告:微代码版本不匹配!0x359f358d(预期为 0xa186aaf2) 警告:微代码版本不匹配!0x359f358d(预期为 0xa186aaf2) 推理轮询超时 错误:元器件='Neutron Driver',类别='超时',代码=754 回溯(最近一次调用): 文件“/home/object_detc/main.py”,第 80 行,在 中 解释器.调用() 文件“/usr/lib/python3.12/site-packages/tflite_runtime/interpreter.py”,第 941 行,在 invoke 中 self._interpreter.Invoke() RuntimeError: /usr/src/debug/tensorflow-lite-neutron-delegate/2.16.2/neutron_delegate.cc:355 neutronRC != ENONE (193099 != 0)节点编号 27 (NeutronD. 能否解释一下为什么移除了对LF_v6.6.52-2.2.2_images_IMX95的支持?是因为该电路板支持包仍被视为 alpha 版本吗? 请问您能否也就以下问题提供一些建议: 是否可以将 Neutron 变流器 SDK 与此内核/电路板支持包 版本一起使用? 如果是这样,那么哪个版本的 Neutron 变流器 SDK 与 LF_v6.6.52-2.2.2_images_IMX95 兼容 ? 如果没有,是否有其他版本的 eIQ 工具或不同的工作流程可以与此 BSP 一起使用? 感谢您的帮助。期待您的指导。 疑似软件缺陷 Re: Need help to find Neutron Converter sdk for i.MX95 kernel version (v6.6.52-2.2.0) 你好@boopathi123 , 感谢您联系恩智浦技术支持! 看来您使用的是非常早期的芯片版本。在这种情况下,我建议使用 eIQ 工具包中包含的 Neutron 变流器。但是请注意,此 BSP 版本并未得到 i.MX95 的官方支持。 i.MX95 正式发布,采用 B0 硅版本和 BSP 6.12.34。早期的硅片版本旨在用于评估和预生产目的,因此可能无法提供与当前支持的设备相同的功能、稳定性、兼容性或性能。 因此,我强烈建议迁移到以下受支持的组合: i.MX95 B0 硅 BSP 6.12.34 或更高版本 使用受支持的软件和硬件配置将确保您能够享受到 i.MX95 平台的最新修复、优化和 NPU 软件支持。 你观察到的现象可能与早期硅片版本中的局限性或已知问题有关,而不是与模型本身有关。 此致, 查维拉
View full article
没有 FreeMaster 插件模块 我安装了freemaster 3.2.7版本,我尝试了很多方法,但插件模块里什么都没有。我很着急。这是我工作中必不可少的工具。有人能帮帮我吗?非常感谢。 1.我以管理员身份安装FreeMASTER,或者运行“c:\NXP\FreeMASTER 3.2\FreeMASTER\register.bat”——均无效!!! 2. Re: there has no FreeMaster plug-in module 你好, 据我所知,最新的 Windows 更新并没有改变 COM+ 和 ActiveX 对象的工作方式。这两件事无关。你遇到的问题确实很奇怪。 我们选取一个插件(CAN 通信)并查看其注册详情。 再次以管理员身份运行“命令提示符”,然后切换到“c:\NXP\FreeMASTER 3.2\FreeMASTER”目录,并使用不带 /s(静默)选项的 regsvr32 命令: regsvr32 插件/can/focpgi.dll 确认信息将显示: 然后在同一命令提示符控制台中,使用以下命令启动注册表编辑器: 注册表 需要一些时间(可能需要几分钟),然后编辑器就会出现。导航至 计算机\HKEY_CLASSES_ROOT\WOW6432Node\CLSID\{C10A92C3-7D47-4FDC-94B6-64B8E5C85E01} 此条目代表 FreeMASTER-over-CAN 插件 (focpgi.dll)。它必须登记在册。 您可以检查 InprocServer32 入口点是否指向正确的 focpgi.dll 文件。 “已实现类别”ID 是 FreeMASTER 使用 Windows COM 类别 API来查找所有插件的 ID。为了确保插件类别存在,请在注册表编辑器中检查Computer\HKEY_CLASSES_ROOT\Component Categories\{48A185C0-FFDB-11D3-80E3-00C04F176153}项,您应该会看到“MCB Communication Plugins”文本值: 另一个实验方法是从 register.bat 脚本中删除 /s 开关并运行它。每个 DLL 文件都会显示一个注册确认框。 请分享相关的屏幕截图或错误信息。感谢您的合作。 问候, 米哈尔 Re: there has no FreeMaster plug-in module 如果有人能帮我解决这个问题,我请他喝咖啡。 Re: there has no FreeMaster plug-in module 我尝试了你的方法,但模块仍然没有出现。 这是否与我的Windows系统更新到最新版本有关? Re: there has no FreeMaster plug-in module 你好, 安装程序和 register.bat 都使用了“ regsvr32.exe ”。系统实用程序,应默认安装在任何 Windows 操作系统中。 首先,请确保您的系统上存在 regsvr32 工具。只需按下 Win+R 键,然后运行命令“regsvr32”。 你应该会看到类似这样的帮助框: 如果此工具无法正常工作,则可能是您的计算机受到了管理员的系统限制。你需要把它修好。 如果 regsvr32 运行正常,我们来看看 register.bat 会输出什么错误信息: 打开开始菜单。 找到“命令提示符”应用程序 右键单击并选择“以管理员身份运行”(见下图) 在控制台中,输入cd "c:\NXP\FreeMASTER 3.2\FreeMASTER" 运行register.bat 您应该看不到任何错误(就像最后图片中显示的那样)。 如果没有错误,插件将出现在 FreeMASTER 中。如有任何错误,请在此处告知。 问候, 米哈尔 Re: there has no FreeMaster plug-in module 你好, 总结一下——所有插件注册都成功完成,但 FreeMASTER 选项对话框中的插件列表仍然为空。 您能否尝试在另一台电脑上进行测试? 此外,还有两个其他实用程序可以访问插件列表。请尝试运行远程服务器工具(“c:\NXP\FreeMASTER 3.2\FreeMASTER\mcbsvr.exe”)。然后按下“添加”按钮,看看插件列表是否也为空: 在“命名连接”管理器(c:\NXP\FreeMASTER 3.2\FreeMASTER\pgimgr.exe)中也可以尝试类似的操作,然后按“新建”按钮: 如果这两个工具中任何一个能够显示不为空的插件列表,请告诉我。 谢谢你, 米哈尔 Re: there has no FreeMaster plug-in module 你好,我又测试了一遍。目前该模块仍不可用。我已经删除了 register.bat 文件中所有包含“/s”的行。目前还有其他解决方案吗? Re: there has no FreeMaster plug-in module 我试过了,但还是不行。我的电脑里有很多数据,我不想重装系统。这真是太麻烦了。之前一直都正常,但有一天突然就连不上了。 Re: there has no FreeMaster plug-in module 你好, 我准备了一个小型测试工具,它可以帮助我们发现您机器上的问题所在。请查看下方附件“plugin_test.exe”。 在命令提示符控制台中运行(无需以管理员身份运行)。 Usage: plugin_test [ProgID|CLSID] test# 0 - create and release the component test# 1 - create and call Configure() test# 2 - enumerate all registered McbCommPlugin components (ProgID|CLSID argument is optional for test 2) 所选插件实例化的测试可能通过。试试这个: plugin_test.exe 0 MCBPGI.TCPSERIAL.1 Component : MCBPGI.TCPSERIAL.1 CLSID : {ED244618-9103-41BE-B382-E92036BD04FC} Test : 0 [test 0] CoCreateInstance ... [test 0] OK - component created successfully. [test 0] Releasing ... [test 0] Released. Result: PASS 该工具甚至可以尝试显示插件配置对话框: plugin_test.exe 1 MCBPGI.TCPSERIAL.1 而它终将显现: 最后,测试 2 以类似于 FreeMASTER 的方式进行插件枚举。它很可能在你这边失败: plugin_test.exe 2 Test : 2 [test 2] Creating StdComponentCategoriesMgr ... [test 2] OK - ICatInformation obtained. [test 2] Enumerating McbCommPlugin classes: [1] {1BB3C904-F1F4-4652-92EE-368716FE1D10} (BDMPGI.DAPCOM.1) [2] {2080BBA8-0641-4306-A956-6BEBB7C75249} (JTAGPGI.CCSCOM.1) [3] {225E034C-1AA6-4EC5-9A6C-A9FA9E890373} (BDMPGI.HCSCOM.1) [4] {30AB7AA1-493A-4DD7-9509-C9C91EFFF0FD} (BDMPGI.PDBDMCOM.1) [5] {5A129680-897E-4014-916D-9B1FE13DE156} (BDMPGI.EONCECOM.1) [6] {6D13CD9D-9F2D-4066-B655-45B54CA7494B} (MCBPGI.NETCOM.1) [7] {7AC03FB7-4792-4F26-8152-92E466276068} (DEMOPGI.DummyCom.1) [8] {80F17965-EDBD-41F1-9182-3C44E04E5794} (BDMPGI.ISYSCOM.1) [9] {8C575DB3-9769-4B66-AB60-C83CEA683E01} (BDMPGI.JLINKCOM.1) [10] {C10A92C3-7D47-4FDC-94B6-64B8E5C85E01} (FOCPGI.FocCom.1) [11] {C10A92C4-7D47-4FDC-94B6-64B8E5C85E01} (FOLPGI.FolCom.1) [12] {ED244616-9103-41BE-B382-E92036BD04FC} (MCBPGI.STDCOM.1) [13] {ED244617-9103-41BE-B382-E92036BD04FC} (MCBPGI.HTTPCOM.1) [14] {ED244618-9103-41BE-B382-E92036BD04FC} (MCBPGI.TCPSERIAL.1) [test 2] Total: 14 plug-in(s) found. Result: PASS 谢谢您的合作。 Michal
View full article
NXP iMX8MP: U-Boot内のWFIベースのCPUアイドル状態が復帰しない 親愛なるNXPサポートチームへ、 私たちはi.MX8M Plusベースの製品向けにU-Bootの低消費電力待機メカニズムを調査しており、NXPからの指導を歓迎する段階に達しています。 ソフトウェアのバージョン SoC: NXP i.MX8M Plus BSP: ATF: lf_v2.10_android-15.0.0_1.2.0 U-Boot: lf_v2024.04_android-15.0.0_1.2.0 公開されているNXP BSPに基づいています(Varisciteフォークには、ATF/GICコードパスに関する重要な変更は含まれていません)。 ゴール アプリはAndroidを起動する前に、バッテリーが完全に放電された状態で数分間U-Bootに留まっている必要があります。 mdelay()に基づくビジーループは不必要な電力を消費し、追加の熱を発生させるため、ARMジェネリックタイマー(CNTP, PPI 30)を使って定期的に低消費電力のアイドル状態とウェイクに入ろうとしています。 初期実装 CNTPタイマーの設定 PPI 30を有効にする EL2から生のwfi()を実行する プロセッサはwfi()から決して起動しません。UARTの出力は、例外やクラッシュもなく、単に停止するだけです。 PSCIの実装 PSCI_VERSIONは1.1を返します。 PSCI_FEATURES(CPU_SUSPEND) は 0 を返します (サポートされています) CPU_SUSPENDを呼び出してスタンバイ電源状態を要求します これにより、ATFスタンバイ実装であるimx_cpu_standby()に到達しますが、システムは全く同じようにハングアップします。例外も発生せず、UART出力もなく、実行は再開されません。 したがって、両方とも: EL2で実行されたraw wfi() wfi() は ATF を介して PSCI で実行されます 全く同じ動作を生み出す。 既に検証済みのもの CPUとタイマー U-BootはEL2上で実行されます。 CNTPタイマーは正しくプログラムされています。 CNTP_TVAL_EL0 は正しくカウントダウンします。 CNTP_CTL_EL0 には以下が表示されます。 有効 = 1 IMASK = 0 武装直後のISTATUSは0です。 CPUインターフェース ICC_PMR_EL1は正しく設定されています。 ICC_IGRPEN1_EL1が有効になっています。 仮想化 HCR_EL2には以下が含まれます: IMO = 0 FMO = 0 したがって、EL2仮想化による割り込みルーティングは関与しません。 割り込みセキュリティ分類 ATFの情報筋から以下のことを確認しました。 すべてのPPIは、汎用GICv3ヘルパーコードによって最初にグループ1非セキュアとして設定されます。 SGI8 (およびオプションで SDEI SGI) のみがセキュアとして再構成されます。 PPI 30 はセキュア割り込みプロパティテーブルに存在しません。 したがって、Generic Timer 割り込みは予想通りグループ1非安全のままのままです。 SCR_EL3.TWE 当初、非セキュアな wfi() が SCR_EL3.TWE を介して EL3 にトラップされるのではないかと疑っていましたが、wfi() が PSCI を介して ATF 自体の中で実行された場合にも同じ動作が発生するため、これは可能性が低いと思われます。 追加調査 ATFのGIC初期化を追跡していると、gicv3_distif_init()がDistributor EnableGrpビットをクリアし、セキュア割り込みプロパティテーブルで要求されたビットのみを再有効化していることに気付きました。 ヘルパーは Group0 と Group1 の Secure プロパティのみを生成するため、EnableGrp1NS が明示的に再度有効になることはないようです。 これを検証するために、我々は以下のことを行いました。 GICD_CTLR を読み込む EnableGrp1NS = 0 を観測しました EL2からEnableGrp1NSを独自に設定しようと試みました。 意外なことに: 書き込みは問題なく完了します。 RWPは正常に動作します。 しかし、読み戻し後もEnableGrp1NSは0のままです。 また、以下の点も確認しました。 GICD_CTLR.DS == 0 GICメモリ領域に対するRDC保護は無効になっています(ENA = 0)。 RDC違反記録はゼロのままです。 したがって、RDCは書き込みを妨げていないようです。 残りの疑問 現時点で、以下の項目を除外しました。 タイマープログラミング、 CPUインターフェース構成、 割り込み優先度マスキング、 割り込みグループ分類、 SCR_EL3.TWE トラッピング、 PSCIと生のWFI実行の比較、 RDC保護。 残された説明のつかない挙動は、アーキテクチャ的に非安全な書き込み可能なディストリビュータ制御ビット(EnableGrp1NS)がこのプラットフォーム上で書き込みを受け入れていないようで、その結果、生のwfi()もPSCIもGeneric Timer割り込みで起動CPU_SUSPENDしないことです。 この動作はi.MX8M Plus Android 15 BSPで予想されるのでしょうか? 汎用タイマーPPIがwfi()からCPUを起動させるために、公開ATFソース以外でプラットフォーム固有の初期化が欠けているのでしょうか? EnableGrp1NSは、このプラットフォーム上で安全でないソフトウェアによる変更を意図的に防いでいるのでしょうか? U-Bootから定期的にウェイクアップする機能を、以下のいずれかの方法で実装することに成功した人はいますか? 生のwfi()、または PSCI CPU_SUSPEND ARMのジェネリックタイマーで動かされているのか? 初期化シーケンスやプラットフォーム固有の動作についてのご意見をいただけると大変ありがたいです。 よろしくお願いします。 よろしくお願いいたします。 桟橋
View full article
ls1021a eTSEC 送信タイムアウト 私はLS1021A IoTと、このCPUをベースにしたプロトタイプ基板を持っています。どちらの場合も、弊社独自のブートローダーを使用しています。 IOTボードでは完璧に動作しますが、私のボードではイーサネットポートで送信タイムアウトが発生します。数回のpingが送信され、その後送信タイムアウトが発生し、さらにpingが送信されます。このため、TFTPはほとんど利用できません。 もちろん、ハードウェアの違いはあります。私たちのMACはBCM54616Sに接続され、その後LAN9514に接続されています。自動交渉の上限は100FDです。ループバックモードでもTXタイムアウトが発生します。 データを送信するためには、ボードのTBI PHYでビットSGMII_ANビットを設定しなければなりませんでしたが、IOTでは不要でした(IOTは1000FDで交渉可能です)。 なぜTXがこんなに断続的に起こるのか分かりません。この速度制限と関係があるのでしょうか? Re: ls1021a eTSEC tx timeout こんにちは、 100FD SGMIIの場合、プロトタイプ基板上のブートローダーで以下の項目を確認してください。 LS1021AのeTSECをSGMII 100Mbpsに設定する ECNTRL[TBIM] = 1 ECNTRL[SGMIIM] = 1 ECNTRL[R100M] = 1 MACCFG2[I/F Mode] = 01 (10/100モードの場合) LS1021Aのリファレンスマニュアルには、SGMII 100Mbpsの場合、 R100M = 1 設定することが明記されています。 内部のTBI PHYをリセットしプログラムするRMは、SGMIIがTBIレジスタセットを使用していること、そしてSGMIIを含むすべてのインターフェースモードでTBIをリセットすることが重要であると述べています。 SGMII_AN ビットは設定したままにしてください。TBI の SGMII_AN ビットは「1 に設定する必要があります」と記載されています。このビットを設定した後にしか基板が送信しないのは驚くことではありません。このPHY/MACモードのブートローダー初期化が不完全であることを示唆しています。 100 Mbps での 1G スタイルの SGMII AN 動作に頼らないでください。LS1021A では、100 Mbps SGMII 動作時に「SGMII リンクが正常ではありません」というメッセージが表示されたり、リンクのサイクル後に断続的にパケットが送信されないという報告が知られていますが、1G 動作では問題ありません。それは、あなたのTXタイムアウトの正確な根本原因を証明するものではありませんが、100FD SGMIIの設定が有力な容疑者であることを示唆しています。 ループバックの結果が重要です。もし「ループバックモード」が外部PHYループバックやSGMII側ループバックであれば、100FDのSGMII/TBIセットアップは関与可能です。内部MAC/eTSECループバックの場合、外部BCM54616S/LAN9514パスはほとんど関係ないので、eTSECの初期化、ディスクリプタリングの処理、キャッシュの一貫性、およびTXの停止/エラー状態に焦点を当てます。 デバッグを行うには、タイムアウトが発生したときにeTSEC TXの停止状態を確認してください。RMは、eTSECがTxBDリングからの送信フレームを処理しなくなったときに送信停止ビットを設定すると述べています。繰り返し可能な原因には、バスエラー、無効なBD/データアドレス、修正不能なBD/データ読み取りエラー、長さ 0 の Ready = 1 などのTxBDプログラミングエラーなどがあります。また、見ているかどうかも確認してください IEVENT_BSY ;NXPの資料では、BSYはバッファ不足やソフトウェアがBDリングに十分速く対応できないことによるRXフレームのドロップと説明されており、これは純粋なSGMIIの電気的症状ではなくソフトウェア/BDリングの症状です。 推奨される分離シーケンス: 1. 必要に 応じて、 外部 PHY を 100FD に 強制し 、 銅線に対する自動ネゴシエーションを無効にします 。2. LS1021Aの MAC / eTSEC を SGMII 100Mbps に 強制的に設定する : TBIM = 1 、 SGMIIM = 1 、 R100M = 1 、 MACCFG2 I / F モード = 10 / 100。3. SGMII モードを設定した後、 TBIを リセット / 再初期化します 。4. TBI SGMII_AN = 1 に設定します 。 5. TBI リンク / AN ステータス 、 eTSEC ECNTRL / MACCFG2 、 および PHY SGMII 側 ステータス を確認します 。6.タイムアウト時に、 IEVENT 、 TXハルトレジスタ、 DMAステータス、およびTXBDリングの内容をダンプします。 敬具 Re: ls1021a eTSEC tx timeout 言い忘れていましたが、私のポートはSGMIIモードに設定されています。 Re: ls1021a eTSEC tx timeout こんにちは、 詳細な調査結果をありがとうございます。ご指摘いただいた回避策(1ミリ秒の遅延、手動によるDMAフラッシュ、 dma-coherent 削除)の組み合わせは、キャッシュエイリアスの問題の典型的なパターンです。以下に、根本原因の説明と推奨される解決方法を示します。 根本原因:TX記述子領域上のキャッシュされた仮想エイリアス LS1021A ENET DMAはキャッシュ整合性のないバス・マスタであり、CPUキャッシュの可視性を持たずにDDRを直接読み込みます。LS1021A上のgianfarの正しい運用モデルは、非コヒーレントなソフトウェア管理モデルです。すなわち、ディスクリプタをキャッシュされていないメモリに割り当て、CPUがディスクリプタフィールドを更新するたびに明示的な dma_sync_* 呼び出しを行います。 LPAEの変更によって最も可能性が高いのは、記述子の物理アドレス範囲のページテーブルエントリに、誤ったキャッシュ属性(デバイスまたは通常のキャッシュ不可ではなく、通常のライトバック)が付与されたことです。これにより、同じ物理メモリに対して異なるキャッシュ性を持つ2つの仮想エイリアスが作成されます。割り当てパス( dma_alloc_noncoherent 経由)はキャッシュされていない状態をマッピングしますが、send関数のパケットごとのTXディスクリプタ更新パスはキャッシュされたエイリアス経由でアクセスします。CPUは更新されたディスクリプタフィールドをキャッシュラインに書き込みますが、それらはDDRに到達せず、ENET DMAは古いデータを読み取ってアンダーランを起こします。 なぜあなたの3つの回避策はすべて同じ欠陥を隠蔽しているのか 1 ms遅延/メッセージ挿入:低負荷時にCPU書き込みバッファが自然に消耗する十分なレイテンシを追加します。タイミング依存で、トラフィックや周波数の変化により故障します。 send 関数で dma_flush 手動で指定すると、DMA がディスクリプタを読み取る前に、PoC へのキャッシュのクリーンアップが強制されます。これは正しい動作ですが、領域が実際にキャッシュされていない場合は不要です。 enet デバイス ノードから dma-coherent 削除すると、カーネルは送信前に各 TX ディスクリプタに対して dma_map_single() / dma_sync_single_for_device() を呼び出し、明示的にキャッシュをクリアします。これも正しく、LS1021A-IOT が送信パスのフラッシュなしで確実に動作した理由を説明しています。 送信パスのフラッシュがないことが、欠けている要素です。LS1021A-IOTは dma-coherent 削除しても動作しました。これは、カーネルのDMAマッピングレイヤーが同期を自動的に挿入したためです。一方、プロトタイプにはそのパスがありません。LPAEの変更により、同期を再導入することなく記述子領域のキャッシュ属性が変更されたためです。 DDR3LとDDR4/周波数の違い これは根本原因ではありません。異なるDRAMの種類や周波数が書き込みレイテンシやバッファのドレインタイミングを変えるため、プロトタイプでは故障がより目立つのですが、根本的な欠陥はアーキテクチャ的なもので、十分な負荷がかかると両方の基板に存在します。 推奨される修正方法 正しく、かつ矛盾のない解決策は、以下の2つを組み合わせることです。 enetデバイスノードから dma-coherent 離しておきましょう(非コヒーレントモデル)。これにより、カーネルDMAレイヤーは、 dma_alloc_noncoherent を介して割り当てられたディスクリプタのDMA所有権が転送される前に、 dma_sync_single_for_device() 自動的に発行します。 TX 送信パスにおいて、各パケットに TX 記述子フィールド ( status 、 data_length 、 data_pointer ) が書き込まれる箇所に、明示的な dma_sync_single_for_device() 呼び出しを追加します。これは手動で追加したフラッシュですが、 TDAR を書く前に正式には dma_sync_single_for_device(dev, desc_dma_addr, sizeof(txbd), DMA_TO_DEVICE) として配置する必要があります。これにより、MMUがディスクリプタ領域をどのように属性付けしても、モデルは明示的かつ正確になります。 別途、ENET記述子に使用される物理アドレス範囲に割り当てられた AttrIndx / TEX+C+B フィールドについて、LPAE MMUライブラリの変更を監査します。ディスクリプタプールは、Device-nGnRnE(厳密な順序付け)またはNormal Non-cacheableとしてマッピングする必要があります。Normal Writebackは使用しないでください。カーネルの ptdump デバッグインターフェースで、割り当て後にディスクリプタプールの仮想アドレスを確認することで、実際に使われている属性を検証できます。 あなたが追加したDMAフラッシュは回避策ではなく、正しい仕組みです。本当の欠陥は、そもそも送信パスにそれが存在していなかったことであり、LPAEの変更によってその領域の実効的なキャッシュ可能性が変わったため、この欠陥が露呈した。   よろしくお願いします。 Re: ls1021a eTSEC tx timeout 送信機能にメッセージを追加したり、1ミリ秒の遅延を設けたりすることで、データの損失なく正しく転送することが可能になります。 送信関数内のTXディスクリプタにDMAフラッシュを追加したところ、改善されました。ただし、ディスクリプタはキャッシュされていないメモリに割り当てられるため、これは必要ないはずです。LPAEサポートを追加したMMUライブラリの欠陥かもしれません。 そういえば、ずいぶん前にenetデバイスノードのdma-coherentプロパティを削除したところ、LS1021A-IOTが動作するようになったことを思い出しました。これは、ディスクリプタ用にキャッシュされていないメモリを割り当てながら、DMAフラッシュを強制的に実行します。しかし、送信関数には、各パケットのTX記述子を更新するキャッシュフラッシュ機能がありませんでした。なぜ私のプロトタイプでは動作しないのか分かりません(周波数の違い、DDR3LとDDR4の違い,...)
View full article
PN7221 fails to detect ISO 14443-3B We ported PN7221 in accordance with the document AN14880 PN7160/PN7220 - Android 16 porting guide. During testing, ISO 14443-3B (NfcB) cards cannot be detected. Moreover, after tapping such a card, the NFC function malfunctions and fails to recognize any cards. It is necessary to toggle NFC off and on again to restore normal operation. Relevant logs are attached below for your analysis. ❯ 07-16 09:24:28.515 530 6384 D NxpTml : PN72xx - I2C Read successful..... 07-16 09:24:28.515 530 6384 D NxpNciR : len = 26 > 61051701010001FF010C0B00000000D103860500808001000000 07-16 09:24:28.515 530 6384 D NxpTml : PN72xx - Posting read message..... 07-16 09:24:28.516 530 6387 D NxpHal : read successful status = 0x0 07-16 09:24:28.516 530 6387 D NxpHal : NxpNci: RF Interface = Frame RF 07-16 09:24:28.516 530 6387 D NxpHal : NxpNci: Protocol = Unknown 07-16 09:24:28.516 530 6387 D NxpHal : NxpNci: Mode = B Passive Poll 07-16 09:24:28.516 530 6387 D NxpHal : NCI NTF: RF_DEACTIVATED len=26 type=1 07-16 09:24:28.517 530 6384 D NxpTml : PN72xx - Read requested..... 07-16 09:24:28.517 530 6384 D NxpTml : PN72xx - Invoking I2C Read..... 07-16 09:24:28.517 1599 6381 D libnfc_nci: rw_t4t_send_to_lower: conn_id sent to lower =0 07-16 09:24:28.517 530 542 I android.hardware.nfc2-service.nxp: write 07-16 09:24:28.517 530 6385 D NxpTml : PN72xx - Write requested..... 07-16 09:24:28.517 530 6385 D NxpTml : PN72xx - Invoking I2C Write..... 07-16 09:24:28.519 530 6385 D NxpNciX : len = 12 > 0000091D0000000000080100 07-16 09:24:28.519 530 6385 D NxpTml : PN72xx - I2C Write successful..... 07-16 09:24:28.519 530 6385 D NxpTml : PN72xx - Posting Fresh Write message..... 07-16 09:24:28.519 530 6385 D NxpTml : PN72xx - Tml Writer Thread Running................ 07-16 09:24:28.519 530 6387 D NxpHal : write successful status = 0x0 07-16 09:24:28.520 530 6384 D NxpTml : PN72xx - I2C Read successful..... 07-16 09:24:28.520 530 6384 D NxpNciR : len = 6 > 600603010001 07-16 09:24:28.520 530 6384 D NxpTml : PN72xx - Posting read message..... 07-16 09:24:28.521 530 6387 D NxpHal : read successful status = 0x0 07-16 09:24:28.521 530 6387 D NxpHal : NCI NTF: CORE_GENERIC_ERROR len=6 07-16 09:24:28.521 530 6384 D NxpTml : PN72xx - Read requested..... 07-16 09:24:28.521 530 6384 D NxpTml : PN72xx - Invoking I2C Read..... 07-16 09:24:28.523 530 6384 D NxpTml : PN72xx - I2C Read successful..... 07-16 09:24:28.523 530 6384 D NxpNciR : len = 5 > 0000020000 07-16 09:24:28.523 530 6384 D NxpTml : PN72xx - Posting read message..... 07-16 09:24:28.523 530 6387 D NxpHal : read successful status = 0x0 07-16 09:24:28.524 1599 6381 I libnfc_nci: rw_t3Bt_sm_get_id (): sub_state:WAIT_ENDEF_FILE_CTRL_TLV (17) 07-16 09:24:28.524 1599 6381 D libnfc_nci: rw_t4t_send_to_lower: conn_id sent to lower =0 07-16 09:24:28.524 530 542 I android.hardware.nfc2-service.nxp: write 07-16 09:24:28.524 530 6385 D NxpTml : PN72xx - Write requested..... 07-16 09:24:28.524 530 6385 D NxpTml : PN72xx - Invoking I2C Write..... 07-16 09:24:28.524 530 6384 D NxpTml : PN72xx - Read requested..... 07-16 09:24:28.524 530 6384 D NxpTml : PN72xx - Invoking I2C Read..... 07-16 09:24:28.525 530 6385 D NxpNciX : len = 8 > 0000050036000008 07-16 09:24:28.525 530 6385 D NxpTml : PN72xx - I2C Write successful..... 07-16 09:24:28.525 530 6385 D NxpTml : PN72xx - Posting Fresh Write message..... 07-16 09:24:28.525 530 6385 D NxpTml : PN72xx - Tml Writer Thread Running................ 07-16 09:24:28.525 530 6387 D NxpHal : write successful status = 0x0 07-16 09:24:28.527 530 6384 D NxpTml : PN72xx - I2C Read successful..... 07-16 09:24:28.527 530 6384 D NxpNciR : len = 6 > 600603010001 07-16 09:24:28.528 530 6384 D NxpTml : PN72xx - Posting read message..... 07-16 09:24:28.528 530 6387 D NxpHal : read successful status = 0x0 07-16 09:24:28.528 530 6387 D NxpHal : NCI NTF: CORE_GENERIC_ERROR len=6 07-16 09:24:28.530 530 6384 D NxpTml : PN72xx - Read requested..... 07-16 09:24:28.530 530 6384 D NxpTml : PN72xx - Invoking I2C Read..... 07-16 09:24:28.531 530 6384 D NxpTml : PN72xx - I2C Read successful..... 07-16 09:24:28.532 530 6384 D NxpNciR : len = 14 > 00000B21CBA4729CB97166900000 07-16 09:24:28.532 530 6384 D NxpTml : PN72xx - Posting read message..... 07-16 09:24:28.532 530 6387 D NxpHal : read successful status = 0x0 07-16 09:24:28.533 1599 6381 I libnfc_nci: rw_t3Bt_sm_get_id (): sub_state:???? UNKNOWN SUBSTATE (18) 07-16 09:24:28.533 1599 6381 I libnfc_nci: nfa_rw_update_pupi_id: 07-16 09:24:28.534 530 6384 D NxpTml : PN72xx - Read requested..... 07-16 09:24:28.534 530 6384 D NxpTml : PN72xx - Invoking I2C Read..... Re: PN7221 fails to detect ISO 14443-3B We've upgraded to version 3.2.5, but the test results remain unchanged. 07-17 01:13:52.157 533 542 D NxpHal : FW version found on the device = 0x30205 Re: PN7221 fails to detect ISO 14443-3B Hello @zhangkai  Please update to 3.2.5, you can get the FW file by going: nfc-NXPNFCC_FW/InfraFW/pn7220 at master · NXP/nfc-NXPNFCC_FW Re: PN7221 fails to detect ISO 14443-3B 06-24 10:20:33.259 390 401 D NxpHal : FW version found on the device = 0x302c4 Re: PN7221 fails to detect ISO 14443-3B Hello @zhangkai  which is the version of FW? if it low 3.2.5, please update to the newest, and test again. If still has question, please provide full log to us. Re: PN7221 fails to detect ISO 14443-3B Hello @zhangkai  Could you provide libnfc-nci.conf and libnfc-nxp.conf files? Re: PN7221 fails to detect ISO 14443-3B Hello @zhangkai This issue may be related to the changes in A16. Specifically: Prior to A15, NXP's mobile MWs relied on NFA_PROTOCOL_T3BT(80) to support ID cards, but A16 has directly included Chinese ID cards in its support scope through Google. However, the PN7xxx MWs still retain this code. Therefore, customers are trying to completely remove the T3BT logic from the PN7xxx MWs and directly use Google's native logic. Re: PN7221 fails to detect ISO 14443-3B The configuration file has been uploaded.
View full article
Ubuntu 26.04 LTS での「8MPLUSLPD4-EVK」ビルドの問題 こんにちは、NXPさん。 私は「8MPLUSLPD4-EVK」を使用しています。BSPをビルドしようとしているのですが、ビルドで問題が発生しています。この件についてご協力をお願いします。さらに詳しい情報が必要な場合はお知らせください。 エラーログ: dasmiddepogu@dasmiddepogu-ThinkPad-P14s-Gen-6:~/NXP/project/imx-Yocto-bsp/build$ bitbake core-image-minimal エラー:サーバー環境の設定を試みます:ローカルパラメータでサーバー構成を更新できません:トレースバック(直近の通話履歴): runCommand内のファイル「/ホーム/dasmiddepogu/NXP/project/imx-Yocto-bsp/sources/poky/bitbake/lib/bb/command.py」、runCommandの91行目 結果 = command_method(self、commandline) ファイル「/ホーム/dasmiddepogu/NXP/project/imx-Yocto-bsp/sources/poky/bitbake/lib/bb/command.py」、updateConfigの291行目 command.cooker.updateConfigOpts(options,環境、コマンドライン) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ファイル「/home/dasmiddepogu/NXP/project/imx-yocto-bsp/sources/poky/bitbake/lib/bb/cooker.py」、updateConfigOptsの471行目 self.reset() ~~~~~~~~~~^^ ファイル「/home/dasmiddepogu/NXP/project/imx-yocto-bsp/sources/poky/bitbake/lib/bb/cooker.py」、1741行目、リセット中 self.handlePRServ() ~~~~~~~~~~~~~~~~~^^ ファイル「/home/dasmiddepogu/NXP/project/imx-yocto-bsp/sources/poky/bitbake/lib/bb/cooker.py」、337行目、handlePRServ 内 self.hashserv.serve_as_process(log_level=記録。警告) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ ファイル「/home/dasmiddepogu/NXP/project/imx-yocto-bsp/sources/poky/bitbake/lib/bb/asyncrpc/serv.py」、402行目、serve_as_process self.process.start() ~~~~~~~~~~~~~~~~~~~^^ ファイル "/usr/lib/python3.14/multiprocessing/process.py",121行目、開始 self._popen= self._Popen(self) ~~~~~~~~~~~^^^^^^ ファイル "/usr/lib/python3.14/multiprocessing/context.py",230行目、_Popen内 return _default_context.get_context().Process._Popen(process_obj) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^ ファイル "/usr/lib/python3.14/multiprocessing/context.py",306行目、_Popen内 return Popen(process_obj) ファイル "/usr/lib/python3.14/multiprocessing/popen_forkserver.py",35行目、 __init__ super(). __init__ (process_obj) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ ファイル "/usr/lib/python3.14/multiprocessing/popen_fork.py",20行目、 __init__ self._launch(process_obj) ~~~~~~~~~~~~^^^^^^^^^^^^^ ファイル "/usr/lib/python3.14/multiprocessing/popen_forkserver.py",47行目、_launch内 reduction.dump(process_obj,buf) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ ファイル "/usr/lib/python3.14/multiprocessing/reduction.py",60行目、ダンプファイル内 ForkingPickler(file, protocol).dump(obj) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^ _pickle。PicklingError: local object .run をpickleできません0x7802f7325380> 辞書項目 '_target' をシリアライズするとき multiprocessing.context.Process の状態をシリアル化する場合 multiprocessing.context.Process オブジェクトをシリアル化する際 リポジトリの詳細: $ mkdir imx-yocto-bsp $ CD IMX-Yocto-BSP $ repo init -u https://github.com/nxp-imx/imx-manifest-b imx-linux-scarthgap -ムimx-6.6.36-2.1.0.xml $ リポジトリ同期 $ DISTRO=fsl-imx-xwayland MACHINE=imx8mp-lpddr4-evk ソース imx-setup-release.sh -b build LinuxホストPCの詳細: PRETTY_NAME="Ubuntu 26.04 LTS" NAME="Ubuntu" VERSION_ID="26.04" VERSION="26.04 (Resolute Racoon)" VERSION_CODENAME=決然 ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" サポートURL=" https://help.ubuntu.com/ " バグ報告URL=" https://bugs.launchpad.net/ubuntu/ " PRIVACY_POLICY_URL=" https://www.ubuntu.com/legal/terms-and-policies/privacy-policy " UBUNTU_CODENAME=resolute ロゴ=ubuntuロゴ ホストPCの設定: 建築:x86_64 CPUオペモード:32ビット、64ビット アドレスサイズ:物理42ビット、仮想48ビット バイト順:リトルエンディアン CPU(16) オンラインCPUリスト:0-15 ベンダーID:GenuineIntel モデル名:Intel(R) Core(TM) Ultra 7 255H CPUファミリ:6 モデル:197 スレッド数(コアあたり):1本 ソケットあたりのコア数:16個 ソケット数:1 ステップ数:2 CPUスケーリングMHz:17% CPU最大MHz:5100,0000 CPU最小MHz:400.0000 DDR容量:32GB i.MX8ULP Re: "8MPLUSLPD4-EVK" build issue with Ubuntu 26.04 LTS こんにちは、 @middepogudasさん お元気でお過ごしのことと思います。 imx-linux-scarthgap BSPはUbuntu 22.04およびUbuntu 24.04でサポートされていることが検証されています。 Ubuntu 26.04はデフォルトでPython 3.14を使用していますが、そのBSPに含まれるBitbakeのバージョンはPython 3.14と完全には互換性がないようです。 Ubuntu 26.04 LTSが完全にサポートされるまでは、Ubuntu 24.04 LTSまたはUbuntu 22.04 LTSを使用してコンパイルすることをお勧めします。 また、Python 3.12で仮想環境を使うのも試してみてください。 よろしくお願いいたします。 サラス。 Re: "8MPLUSLPD4-EVK" build issue with Ubuntu 26.04 LTS こんにちは、NXPさん。 Ubuntuを24.04にアップデートしましたが、ビルドの問題が発生しています。ビルドエラーログを添付します。このビルドの問題についてご協力をお願いします。 OS情報: asmiddepogu@dasmiddepogu-ThinkPad-P14s-Gen-6:~/NXP/DOC$ cat /etc/os-release PRETTY_NAME="Ubuntu 24.04.4LTS" 名前="Ubuntu" VERSION_ID="24.04" バージョン="24.04.4 LTS (ノーブル・ナンバット)" バージョンコード名=ノーブル ID=ubuntu ID_LIKE=debian HOME_URL=" https://www.ubuntu.com/ " サポートURL=" https://help.ubuntu.com/ " バグ報告URL=" https://bugs.launchpad.net/ubuntu/ " PRIVACY_POLICY_URL=" https://www.ubuntu.com/legal/terms-and-policies/privacy-policy " UBUNTU_CODENAME=noble ロゴ=ubuntuロゴ dasmiddepogu@dasmiddepogu-ThinkPad-P14s-Gen-6:~/NXP/DOC$ ビルドエラーログ: 今では「bitbake 」を実行できます。 一般的なターゲットは以下の通りです: コアイメージ最小 メタツールチェーン meta-toolchain-sdk ADT-installer meta-IDE-サポート ビルド環境は以下のように構成されています。 MACHINE=imx8mp-lpddr4-evk SDKMACHINE=i686 DISTRO=fsl-imx-xwayland EULA= BSPDIR= BUILD_DIR=。 dasmiddepogu@dasmiddepogu-ThinkPad-P14s-Gen-6:~/NXP/DOC$ DISTRO=fsl-imx-xwayland MACHINE=imx8mp-lpddr4-evk ソース imx-setup-release.sh -b build dasmiddepogu@dasmiddepogu-ThinkPad-P14s-Gen-6:~/NXP/imx-yocto-bsp/build$ bitbake core-image-minimal 注意:あなたのconf/bblayers.confは自動的に更新されました。 警告: ホストディストリビューション「ubuntu-24.04」このバージョンのビルドシステムでは検証されていません。予期しないエラーが発生する可能性があります。テスト済みのディストリビューションを使用することをお勧めします。 キャッシュの読み込み: 100% | | 残り時間: --:--:-- 依存関係キャッシュから0件のエントリを読み込みました。 レシピの解析: 100% |# 3643 .bb の解析ファイル完了(キャッシュ済み0個、解析済み3643個)。ターゲット数5719、スキップ数375、マスク数17、エラー数0。 注:不足しているタスクキューの依存関係を解決します ビルド構成: BB_VERSION = 「2.8.0」 BUILD_SYS = 「x86_64-linux」 NATIVELSBSTRING = "ubuntu-24.04" TARGET_SYS = "aarch64-poky-linux" MACHINE = "imx8mp-lpddr4-evk" ディストリビューション = "fsl-imx-xwayland" DISTRO_VERSION = 「6.6-スカースギャップ」 TUNE_FEATURES = "aarch64 armv8a crc crypto" TARGET_FPU = "" メタ meta-poky = "HEAD:f43f393ef0246b7bee6eed8bcf8271cf2b8cdf40" メタOE メタマルチメディア meta-python = "HEAD:80e01188fa822d87d301ee71973c462d7a865493" meta-freescale = "HEAD:0f8091c63dd8805610c09b08409bc58492a3b16f" meta-freescale-3rdparty = "HEAD:6c063450d464eb2f380443c7d9af1b94ce9b9d75" meta-freescale-distro = "HEAD:b9d6a5d9931922558046d230c1f5f4ef6ee72345" メタ-IMX-BSP meta-imx-sdk メタ-IMX-ML meta-imx-v2x = "HEAD:92ad51ef3cc7f132238f1ae6c8e81432f2a69cc7" meta-nxp-demo-experience = "HEAD:8fd7154c05b716e9635279047f65785399432d88" meta-nxp-マター-baseline meta-nxp-openthread = "HEAD:783becb4b5716d989f50db95b7133d38eae5b47b" meta-Arm meta-arm-toolchain = "HEAD:1b85bbb4cab9658da3cd926c62038b8559c5c64e" meta-clang = "HEAD:fe561f41aef0cff9e6f96730ab59f28dca2eb682" メタノーム メタネットワーキング meta-filesystems = "HEAD:80e01188fa822d87d301ee71973c462d7a865493" meta-qt6 = "HEAD:dc13e1bfda4a4757a08c2d6673bc4bac012c4a80" メタパーセク meta-tpm = "HEAD:11ea91192d43d7c2b0b95a93aa63ca7e73e38034" meta-仮想化 = "HEAD:6a80f140e387621f62964209a2e07d3bcfb125ce" 注: 非ネイティブバイナリ shim を取得していますhttp://downloads.yoctoproject.org/releases/uninative/4.5/x86_64-nativesdk-libc-4.5.tar.xz;sha256sum=43ee6a25bcf5fce16ea87076d6a96e79ead6ced90690a058d07432f902773473(まずPREMIRRORSを確認します) Sstate の概要: 要求 2656 ローカル 0 ミラー 0 見逃した 2656 現在 0 (一致率 0%、完了率 0%)################################################################################################################################### ## | ETA: 0:00:00 Initialising tasks: 100% |## ## 注:タスクの実行 エラー: PermissionError: [Errno 1] 操作が許可されていません 上記の例外処理中に、別の例外が発生しました。 トレースバック(直近の通話): ファイル「/ホーム/dasmiddepogu/NXP/imx-yocto-bsp/sources/poky/bitbake/bin/bitbake-worker」、278行目、子内 bb.utils.disable_network(uid,gid) ファイル「/ホーム/dasmiddepogu/NXP/imx-Yocto-bsp/sources/poky/bitbake/lib/bb/utils.py」、1696行目、disable_network Open("/proc/self/uid_map", "w")をfとして使う: 許可エラー:[Errno 1] 操作は許可されません エラー:タスク(/home/dasmiddepogu/NXP/imx-yocto-bsp/sources/poky/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb:do_unpack)が終了コード「1」で失敗しました エラー:許可エラー:[エラー1] 操作は許可されていません 上記の例外処理中に、別の例外が発生しました。 トレースバック(直近の通話): ファイル「/ホーム/dasmiddepogu/NXP/imx-yocto-bsp/sources/poky/bitbake/bin/bitbake-worker」、278行目、子内 bb.utils.disable_network(uid,gid) ファイル「/ホーム/dasmiddepogu/NXP/imx-Yocto-bsp/sources/poky/bitbake/lib/bb/utils.py」、1696行目、disable_network Open("/proc/self/uid_map", "w")をfとして使う: 許可エラー:[Errno 1] 操作は許可されません エラー:タスク(/home/dasmiddepogu/NXP/imx-yocto-bsp/sources/poky/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb:do_prepare_recipe_sysroot)が終了コード「1」で失敗しました。 注:タスク概要:34件のタスクを試みましたが、そのうち再実行不要は0件、2件は失敗しました。 概要:2つの課題が失敗: /ホーム/dasmiddepogu/NXP/imx-yocto-bsp/sources/poky/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb:do_unpack /home/dasmiddepogu/NXP/imx-yocto-bsp/sources/poky/meta/recipes-extended/texinfo-dummy-native/texinfo-dummy-native.bb:do_prepare_recipe_sysroot 概要:警告メッセージが1件ありました。 概要:2件のエラーメッセージが発生し、ゼロ以外の終了コードが返されました。 dasmiddepogu@dasmiddepogu-ThinkPad-P14s-Gen-6:~/NXP/imx-yocto-bsp/build$ ありがとう、、 ダス・ミッデポグ
View full article
S32N55: How to build a blob image for fast wake-up boot. Hello Team, As we know, the S32N55 supports Fast Wake-up Boot. I tried building a blob image using the same format as Full Wake-up Boot, but the boot process failed. Could you please guide me on how to correctly build a blob image for Fast Wake-up Boot? Thank you! Best regards, Tangsheng. FSS_FW Priority: MEDIUM Re: S32N55: How to build a blob image for fast wake-up boot. Hello @Tangsheng_Zhou, The team has picked up the case and will provide an answer as soon as possible.  Best regards, Radu  Re: S32N55: How to build a blob image for fast wake-up boot. Hello @RaduBraga  I noticed that this ticket has been closed. Is there any update on the progress?   Best regards, Tangsheng. Re: S32N55: How to build a blob image for fast wake-up boot. Hello @Tangsheng_Zhou , I took over the case and will provide a response as soon as possible.   Best regards, Paul Re: S32N55: How to build a blob image for fast wake-up boot. Hello @Tangsheng_Zhou , If you are supporting a Direct Customer, please provide: BSSM Contract: Yes / No Customer Company*: Project Name*: Customer Contact Point* (Name & Email): Software & Hardware Information: SW Package Info*: HW* (Board/Chipset/Platform): SW Version*: *required I am still working with the development team for this case Best regards, Paul Re: S32N55: How to build a blob image for fast wake-up boot. Hello @Tangsheng_Zhou , Thank you for these details, I am working on this case and will provide an answer as soon as possible! Best regards, Paul Re: S32N55: How to build a blob image for fast wake-up boot. Hello @PaulB0bes  This case is not tied to any specific customer or project. However, I believe customers may encounter similar questions in the future, which is why I raised this request.   Best regards, Tangsheng. Re: S32N55: How to build a blob image for fast wake-up boot. Hello @PaulB0bes  Below are the detailed steps for testing.   1. built a small FSS image within AOSRAM memory region(reserved the IVT header), which only have a while loop in main.c 2. build the FSS Firmware image,  do I need to fill the FRB Threshold Reg? If so, how to fill it or any special thing need to be considered. 3. built the IVT blob image in IVT tool, with start address from 0x24800000 4. write the IVT blob image into flash at 0xD00000. 5. before the system enter sleep, copy the IVT blob image into AOSRAM, and configure the WKPU mode for FSS_WKUP0 as fast wake-up mode. 5. wakeup the system image via FSS_WAKUP0. The FSS could not reach the while(1) loop. It appears that a reset event was triggered during the wake-up process instead of a fast wake-up.   Thanks for your support!   Best regards, Tangsheng. Re: S32N55: How to build a blob image for fast wake-up boot. Hello @Tangsheng_Zhou , It would help if you could share the exact steps you followed when you tried to build the blob image. I think it would be easier for us to identify the issue that way.   Best regards, Paul Re: S32N55: How to build a blob image for fast wake-up boot. Hi @Tangsheng_Zhou , FRB is for TCM memory (ITCM +DTCM). In theory we have 2 cases 1: FAST wakeup Boot      for fast wakeup FRB is not needed, due to the fact that image boots from AON SRAM Memory. 2: FULL wakeup Boot      Can you tell me if you want to boot to ITCM? if yes FRB threshold 0 should be provided in FSS Image header, the address is 12 bit masked and address will be calculated as multiple of 8kb for FRB .       Hope this helps a little. Also could you provide me the IVT blob? Best regards, Paul Re: S32N55: How to build a blob image for fast wake-up boot. Hello @PaulB0bes  No, I just want to run the F-Core in AO-SRAM.  main_app1.bin is the FSS firmware image. How to fill these two field, should it be started from AO_SRAM address, 0x24800000? the start pointer and entry pointer of my image is 0x24800240. main_blob1.bin is the blob image that contain IVT header. Thanks! Best regards, Tangsheng. Re: S32N55: How to build a blob image for fast wake-up boot. Hello @PaulB0bes  The complete IVT image rather than the FSS Firmware was copied to AO_SRAM before entering sleep mode to test the fast wake-up functionality.   Thanks! Best regards, Tangsheng Re: S32N55: How to build a blob image for fast wake-up boot. Hello @PaulB0bes  The whole IVT blob image was copied to start of AO_SRAM, including IVT header and FSS FW header, and FSS FW binary. Thanks! Best regards, Tangsheng. Re: S32N55: How to build a blob image for fast wake-up boot. Hi @Tangsheng_Zhou , Just to make sure I understand the flow, are you copying the complete IVT blob image to the beginning of AO_SRAM before sleep, or are you copying only the FSS firmware image for Fast Wake-up Boot? Best regards, Paul
View full article
MCXA266: ディープパワーダウンからのウェイクアップ後、WUUウェイクアップフラグは0になります(SRS=0x4010、SSRS=0x4011)。 こんにちは、 私はFRDM-MCXA266ボードにおける、ディープパワーダウンモードからのWUUウェイクアップ動作について調査しています。 環境: - MCU:MCXA266 - 委員会:FRDM-MCXA266 - SDK例プロジェクト:frdmmcxa266_power_mode_switch_ll_mcxa - SDKバージョン:26.6.000 - 開発環境:MCUXpressoIDE_25.6.136 BOARD_InitHardware() が呼び出される前にリセットとウェイクアップの状態を読み取るために、main() の冒頭付近に以下のコードを追加しました。 /******************************************************************************* * Variables ******************************************************************************/ char *const g_modeNameArray[] = APP_POWER_MODE_NAME; char *const g_modeDescArray[] = APP_POWER_MODE_DESC; uint32_t resetCount; uint32_t resetStatus; uint32_t resetStickyStatus; uint32_t wakeupResource; uint32_t wuuWakeupPinsFlag; /******************************************************************************* * Code ******************************************************************************/ int main(void) { uint32_t freq; app_power_mode_t targetPowerMode; bool needSetWakeup = false; // --- START ADDED CODE --- resetStatus = CMC_GetSystemResetStatus(CMC); resetStickyStatus = CMC_GetStickySystemResetStatus(CMC); CMC_ClearStickySystemResetStatus(CMC, resetStickyStatus); wakeupResource = CMC_GetWakeupSource(CMC); wuuWakeupPinsFlag = WUU_GetExternalWakeUpPinsFlag(WUU0); WUU_ClearExternalWakeUpPinsFlag(WUU0, wuuWakeupPinsFlag); // --- END ADDED CODE --- BOARD_InitHardware(); // --- START ADDED CODE --- DbgConsole_Printf("CMC_GetSystemResetStatus(CMC) = 0x%x\r\n", resetStatus); DbgConsole_Printf("CMC_GetStickySystemResetStatus(CMC) = 0x%x\r\n", resetStickyStatus); DbgConsole_Printf("CMC_GetWakeupSource(CMC) = 0x%x\r\n", wakeupResource); DbgConsole_Printf("WUU_GetExternalWakeUpPinsFlag(WUU0) = 0x%x\r\n", wuuWakeupPinsFlag); // --- END ADDED CODE --- APP_SetVBATConfiguration(); APP_SetSPCConfiguration(); APP_InitWaketimer(); 関連する出力全体は以下のとおりです。 「`」 通常起動。 ######################### ## Power Mode Switch Demo ## ######################### コアクロック = 240000000Hz 電源モード:アクティブ 希望する操作を選択してください Aを押してアクティブモードに入ります Bを押してスリープモードに入ります Cキーを押してディープスリープモードに入ります Dキーを押して電源オフモードに入ります Eキーを押してDeepPowerDownモードに入ります 電源モード選択を待っています... ディープパワーダウン:VDD_CORE電圧ドメイン全体がパワーゲートされます。 起動ソースを選択してください: Aボタンを押して、ウェイクアップソースとしてタイマーを選択してください。 Bボタンを押して、ウェイクアップボタンをウェイクアップソースとして選択します。 起動ソースの選択を待っています... ウェイクアップボタンがウェイクアップソースとして選択されました。 起動するにはSW2を押してください。 電源ドメインを分離します:VDD_USB。 CMC_GetSystemResetStatus(CMC) = 0x4010 CMC_GetStickySystemResetStatus(CMC) = 0x4011 CMC_GetWakeupSource(CMC) = 0x0 WUU_GetExternalWakeUpPinsFlag(WUU0) = 0x0 通常起動。 「`」 初回起動時に、以下の値が表示されました。 CMC_GetSystemResetStatus(CMC) = 0x110 CMC_GetStickySystemResetStatus(CMC) = 0x110 CMC_GetWakeupSource(CMC) = 0x0 WUU_GetExternalWakeUpPinsFlag(WUU0) = 0x0 次に、ディープパワーダウンモードを選択し、ウェイクアップソースとしてウェイクアップボタンを選択し、SW2を押しました。 MCUは正常に起動し、アプリケーションは再起動されましたが、以下の数値が印刷されました。 CMC_GetSystemResetStatus(CMC) = 0x4010 CMC_GetStickySystemResetStatus(CMC) = 0x4011 CMC_GetWakeupSource(CMC) = 0x0 WUU_GetExternalWakeUpPinsFlag(WUU0) = 0x0 CMCリセットステータスに関する私の解釈は以下のとおりです。 - 0x00004010:ソフトウェアリセット + ウォームリセット - 0x00004011:ソフトウェアリセット + ウォームリセット + ディープダウンウェイクアップリセット この解釈が正しければ、固定状態はディープダウンウェイクアップリセットが最初に行われ、その後ソフトウェアウォームリセットが行われたことを示しています。 アプリケーションの起動コード、system_MCXA266.cを確認しました。例のソースは見つかりませんでしたが、NVIC_SystemReset()、SYSRESETREQ、またはSCB->AIRCRの書き込みは見つかりませんでした。 また、保持されたNOLOAD変数を使用して、SystemInitHook()にカウンターを追加しました。SystemInitHook()はウェイクアップ後に一度だけ実行されたため、SystemInit()後にソフトウェアリセットされた証拠は見つかりませんでした。 私の質問は以下のとおりです。 ディープパワーダウンからのWUUウェイクアップ後、SRS = 0x4010およびSSRS = 0x4011は想定される値ですか? MCXA266 Boot ROMやExtended Bootloaderは、アプリケーション起動前にソフトウェアウォームリセットを発行しますか? どのWUUピンがディープ・パワーダウンのウェイクアップを引き起こしたかを特定するための推奨される方法は何ですか? 私の現在のCMCリセット状態の解釈は以下の通りですが、ビットの定義を誤解していたら訂正してください。 英語は母国語ではないので、説明のどこか分かりにくい部分があれば教えてください。 よろしくお願いします。 MCXA Re: MCXA266: WUU wake-up flags are 0 after Deep Power-Down wake-up (SRS=0x4010, SSRS=0x4011) こんにちは、@ka-2020 ご質問ありがとうございます。同じ設定で私の方でもテストを再現し、動作を調査します。結果が出次第、調査結果とご質問への回答をご連絡いたします。 ご辛抱とサポートに感謝いたします。 BR アリス Re: MCXA266: WUU wake-up flags are 0 after Deep Power-Down wake-up (SRS=0x4010, SSRS=0x4011) こんにちは、 @Alice_Yang さん。 この件について調べていただき、ありがとうございます。 別のWUU外部ウェイクアップピンを使用して追加テストを実施し、その結果を共有したいと思います。 元のウェイクアップボタンの設定に加えて、以下の設定を追加しました。 WUU_SetExternalWakeUpPinsConfig(APP_WUU, 0, &wakeupButtonConfig); 次に、WUUピン0に割り当てられたピンを使用して、デバイスをディープパワーダウン状態から復帰させました。デバイスは正常に復帰しましたが、以前と同じ結果が見られました。 CMC_GetSystemResetStatus(CMC) = 0x4010 CMC_GetStickySystemResetStatus(CMC) = 0x4011 CMC_GetWakeupSource(CMC) = 0x0 WUU_GetExternalWakeUpPinsFlag(WUU0) = 0x0 したがって、この動作は元のSW2 WUUピンに特有のものではないようです。 捜査の進捗状況について何か新しい情報はありますか? 追加のログ、ソースコード、レジスタ値、またはテスト結果が必要な場合は、お知らせください。 よろしくお願いします。
View full article
flex-installer「lsdk2606」バージョンを使用している「imx95-15x15-frdm」Debianで「Weston.Service」に問題が発生しました。 こんにちは、 flex-installerバージョン「 lsdk2606 」を使用してDebianイメージをインストールしました。 ネタバレ (ハイライトして読む) Sudo Flex-installer -I auto -d /dev/sdX -m imx95-15x15-frdm Sudo Flex-installer -I auto -d /dev/sdX -m imx95-15x15-frdm 私のimx95-15x15-frdmでは その後、標準の手順に従ってインストールを続行しました。 ネタバレ (ハイライトして読む) debian-post-install-pkg debian-post-install-pkg すべてのパッケージをインストールし再起動した後、起動時に以下のエラーが発生しました: ネタバレ (ハイライトして読む) [失敗] weston.service - W…nd コンポジターをシステムサービスとして起動できませんでした。 [失敗] weston.service - W…nd コンポジターをシステムサービスとして起動できませんでした。 ネタバレ (ハイライトして読む) root@imx95-15x15-frdm:~# systemctl status weston.service × weston.service - システムサービスとしてのWaylandコンポジタであるWeston ロード済み: ロード済み (/usr/lib/systemd/system/weston.service;有効; プリセット: 有効) アクティブ: 失敗 (結果: 終了コード) 2026年7月20日(月) 13:51:20 UTC以降; 19秒前 呼び出し: 67b22b0fa1484ce681d8b2acdc107add トリガー: ● weston.socket ドキュメント: man:weston(1) man:weston.ini(5) http://wayland.freedesktop.org/ プロセス: 408 ExecStart=/usr/bin/weston --log=${XDG_RUNTIME_DIR}/weston.log --modules=systemd-notify.so (code=exited, status=1/FAILURE) メインPID: 408 (コード=終了、ステータス=1/失敗) メモリピーク:3.5M CPU: 49ms 7月20日 13:51:19 imx95-15x15-frdm systemd[1]: weston.service - WaylandコンポジタであるWestonをシステムサービスとして開始します... 7月20日 13:51:19 imx95-15x15-frdm (weston)[408]: pam_unix(weston-autologin:session): user root(uid=0) by (uid=0) がセッションを開きました 7月20日 13:51:20 imx95-15x15-frdm systemd[1]: weston.service:メインプロセスが終了しました。終了コード=exited、ステータス=1/FAILURE 7月20日 13:51:20 imx95-15x15-frdm systemd[1]: weston.service:結果「exit-code」で失敗しました。 7月20日 13:51:20 imx95-15x15-frdm systemd[1]: weston.service - WaylandコンポジタであるWestonをシステムサービスとして起動できませんでした。 root@imx95-15x15-frdm:~# systemctl status weston.service×weston.service - Wayland コンポジタである Weston をシステム サービスとしてロードしました: ロード済み (/usr/lib/systemd/system/weston.service;有効; プリセット: 有効) アクティブ: 失敗 (結果: 終了コード) 2026年7月20日(月) 13:51:20 UTC以降; 19秒前 呼び出し: 67b22b0fa1484ce681d8b2acdc107add トリガー: ● weston.socketドキュメント: man:weston(1) man:weston.ini(5) http://wayland.freedesktop.org/プロセス:408 ExecStart=/usr/bin/weston --log=${XDG_RUNTIME_DIR}/weston.log --modules=systemd-notify.so (code=exited, status=1/FAILURE) メインPID: 408 (code=exited, status=1/FAILURE) メモリピーク:3.5M CPU: 49ms 7月20日 13:51:19 imx95-15x15-frdm systemd[1]: weston.service - Weston、Waylandコンポジター、システムサービスとして...7月20日 13:51:19 imx95-15x15-frdm (weston)[408]: pam_unix(weston-autologin:session): ユーザーroot(uid=0) by (uid=0) がユーザーroot(uid=0)のためにセッションを開きました by (uid=0) 7月20日 13:51:20 imx95-15x15-frdm systemd[1]: weston.service:メインプロセスが終了しました。コード=exited、ステータス=1/FAILURE 7月20日 13:51:20 imx95-15x15-frdm systemd[1]: weston.service:結果「exit-code」で失敗しました。Jul 20 13:51:20 imx95-15x15-frdm systemd[1]: weston.service - Wayland コンポジタである Weston をシステム サービスとして起動できませんでした。 ネタバレ (ハイライトして読む) root@imx95-15x15-frdm:~# cat /run/user/0/weston.log 日付: 2026年7月20日 UTC [12:34:22.150]ウェストン 14.0.2 https://wayland.freedesktop.org バグ報告先: https://gitlab.freedesktop.org/wayland/weston/issues/ ビルド: LSDK-25.12_DEBIAN-13_LF-6.12.20-168-g2ddc741+ [12:34:22.153]コマンドライン: /usr/bin/weston --log=/run/user/0/weston.log --modules=systemd-notify.so [12:34:22.153]OS: Linux、6.12.49、#5 SMP PREEMPT 2026年5月28日木曜日 13:07:26 KST、aarch64 [12:34:22.153]フライトレコーダー:有効 [12:34:22.155]設定ファイル「/etc/xdg/weston/weston.ini」を使用します。 [12:34:22.156]出力再描画ウィンドウの最大時間は16ミリ秒です。 [12:34:22.158]モジュールの読み込み '/usr/lib/libweston-14/drm-backend.so' [12:34:22.162]モジュールの読み込みに失敗:libdisplay-info.so.1:共有オブジェクトファイルを開けません:そのようなファイルやディレクトリはありません [12:34:22.162]致命的エラー: コンポジターバックエンドの作成に失敗しました root@imx95-15x15-frdm:~# cat /run/user/0/weston.logDate:2026年7月20日 UTC[12:34:22.150]weston 14.0.2https://wayland.freedesktop.orgバグは https://gitlab.freedesktop.org/wayland/weston/issues/Build に報告します。LSDK-25.12_DEBIAN-13_LF-6.12.20-168-g2ddc741+[12:34:22.153]コマンドライン: /usr/bin/weston --log=/run/user/0/weston.log --modules=systemd-notify.so[12:34:22.153]OS: Linux, 6.12.49, #5 SMP PREEMPT 2026年5月28日(木) 13:07:26 KST, aarch64[12:34:22.153]フライトレコーダー:有効[12:34:22.155]設定ファイル「/etc/xdg/weston/weston.ini」を使用しています[12:34:22.156]出力再描画ウィンドウの最大時間は16ミリ秒です。[12:34:22.158]モジュールの読み込み '/usr/lib/libweston-14/drm-backend.so'[12:34:22.162]モジュールの読み込みに失敗しました: libdisplay-info.so.1: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません[12:34:22.162]致命的エラー: コンポジターバックエンドの作成に失敗しました 私も同じエラーが出ています(関連があるかどうかはわかりませんが)、でも画面には何も表示されません。 ネタバレ (ハイライトして読む) it6263 3-004c: DDC FIFOのクリアに失敗しました it6263 3-004c: EDIDの読み取りに失敗しました it6263 3-004c: DDC FIFOのクリアに失敗しました。it6263 3-004c: EDIDの読み取りに失敗しました。 Re: Issue "Weston.Service" on the "imx95-15x15-frdm" Debian using flex-installe root@imx95-15x15-frdm:~# ldd /usr/lib/libweston-14/drm-backend.so Linux-vdso.so.1 (0x0000ffffac56c000) libweston-14.so.0 => /USR/lib/libweston-14.so.0 (0x0000ffffac410000) libwayland-client.so.0 => /lib/aarch64-Linux-gnu/libwayland-client.so.0 (0x0000ffffac3e0000) libpixman-1.so.0 => /lib/aarch64-linux-gnu/libpixman-1.so.0 (0x0000ffffac330000) libwayland-server.so.0 => /lib/aarch64-linux-gnu/libwayland-server.so.0 (0x0000ffffac2f0000) libdrm.so.2 => /usr/lib/libdrm.so.2 (0x0000ffffac2b0000) libudev.so.1 => /lib/aarch64-linux-gnu/libudev.so.1 (0x0000ffffac250000) libdisplay-info.so.1 => 見つかりません libgbm.so.1 => /usr/lib/libgbm.so.1 (0x0000ffffac220000) libseat.so.1 => /lib/aarch64-linux-gnu/libseat.so.1 (0x0000ffffac1f0000) libinput.so.10 => /lib/aarch64-linux-gnu/libinput.so.10 (0x0000ffffac170000) libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffabfb0000) /lib/ld-linux-aarch64.so.1 (0x0000ffffac520000) libxkbcommon.so.0 => /lib/aarch64-linux-gnu/libxkbcommon.so.0 (0x0000ffffabf40000) libffi.so.8 => /lib/aarch64-linux-gnu/libffi.so.8 (0x0000ffffabf10000) libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffabe60000) libcap.so.2 => /lib/aarch64-linux-gnu/libcap.so.2 (0x0000ffffabe30000) libsystemd.so.0 => /lib/aarch64-linux-gnu/libsystemd.so.0 (0x0000ffffabd00000) Libmtdev.so.1 => /lib/aarch64-linux-gnu/libmtdev.so.1 (0x0000ffffabcd0000) libevdev.so.2 => /lib/aarch64-linux-gnu/libevdev.so.2 (0x0000ffffabc90000) libwacom.so.9 => /lib/aarch64-linux-gnu/libwacom.so.9 (0x0000ffffabc60000) libgudev-1.0.so.0 => /lib/aarch64-linux-gnu/libgudev-1.0.so.0 (0x0000ffffabc30000) libgobject-2.0.so.0 => /lib/aarch64-linux-gnu/libgobject-2.0.so.0 (0x0000ffffabba0000) libglib-2.0.so.0 => /lib/aarch64-linux-gnu/libglib-2.0.so.0 (0x0000ffffaba10000) libatomic.so.1 => /lib/aarch64-linux-gnu/libatomic.so.1 (0x0000ffffab9e0000) libpcre2-8.so.0 => /lib/aarch64-linux-gnu/libpcre2-8.so.0 (0x0000ffffab920000) Re: Issue "Weston.Service" on the "imx95-15x15-frdm" Debian using flex-installe 以下のコマンドを実行して出力を共有してもらえますか? find /usr -name "libdisplay-info*" よろしくお願いします。 Re: Issue "Weston.Service" on the "imx95-15x15-frdm" Debian using flex-installe 最新情報のご提供ありがとうございます。 システム上にはlibdisplay-infoが存在するのがわかりますが、Westonのログはlibdisplay-info.so.1を探しており、インストール済みのライブラリはLibdisplay-info.so.2のようです。 以下のコマンドを実行して出力を共有してもらえますか? ldd /usr/lib/libweston-14/drm-backend.so これにより、ライブラリのバージョン不一致やその他の依存関係の欠落がないかを確認するのに役立ちます。 Re: Issue "Weston.Service" on the "imx95-15x15-frdm" Debian using flex-installe Hello root@imx95-15x15-frdm:~# find /usr -name "libdisplay-info*" /usr/lib/aarch64-linux-gnu/libdisplay-info.so.2 /usr/lib/aarch64-linux-gnu/libdisplay-info.so.0.2.0 /usr/share/doc/libdisplay-info2
View full article
Support Request: HD-SDI Interface Using i.MX8M Plus LVDS Output Dear Sir, We are designing a system based on the NXP i.MX8M Plus processor and would like your guidance regarding the implementation of an HD-SDI interface. Our requirement is to support three HD-SDI outputs. We are planning to use the LVDS interface of the i.MX8M Plus and convert it to HD-SDI using the following devices: LMH0340SQE/NOPB – LVDS to HD-SDI Serializer 2 × LMH0324RTWT – 1-to-3 HD-SDI Distribution Amplifiers Could you please confirm whether the LVDS interface of the i.MX8M Plus is compatible with this architecture for generating three HD-SDI outputs? If this approach is not recommended or supported, could you please suggest an alternative solution for implementing three HD-SDI interfaces while continuing to use the i.MX8M Plus processor? We would prefer to retain the i.MX8M Plus in our design, as it satisfies all of our other system requirements. We would appreciate your recommendations and any reference designs or application notes that may help us implement this interface successfully. Thank you for your support. We look forward to your guidance. Best regards, Samudralankaiah Jampani Analog(ADC|CMP|DAC|OpAmps) Board Design MCXA MCXC Re: Support Request: HD-SDI Interface Using i.MX8M Plus LVDS Output Hello, Unfortunately I'm not really used to this kind of use case, as I was investigating the part you have shared it seem that it is expected to use with an FPGA not an LVDS channel, so I'm not sure that you may use this interface for that. Maybe using a different bridge or other of the interfaces in the i.MX8MP or even another layer (FPGA) in between could be a solution. Best regards/Saludos, Aldo.
View full article
MCUX 25.6.136、newlib-nano、& swprintf 未定義 MCUX 25.6.136でswprintfへの未定義参照が発生しています。& newlib-nano。newlibも試してみましたが、結果は同じでした。 いろいろ調べてみたところ、newlib-nano/newlib に上流の問題が見つかりました。https: //sourceware.org/pipermail/newlib/2024/021012.html NXPが私の推測を裏付けてくれるか気になっています。Newlib-nanoのバンドル版にもこの問題があるのではないかと。もしそうなら、newlib-nano/newlibの新しいバージョンを取り入れて修正する案は考えられていますか? - コナー
View full article
i.mx8M plus Serial download failure Dear NXP, I connected the board with the attached circuit diagram to the i.MX8M plus board and performed a Serial Download, but as shown in the captured image, only the screen appears and the process does not proceed further. I would like to inquire about how to resolve this. Thank you. Best Regards, Inho Jeon Re: i.mx8M plus Serial download failure Dear  yipingwang, The NXP EVK (8MPLUS-BB) works fine, but the board with the circuit I designed (the attached circuit diagram) operates for a while as shown in the screenshot and then stops. Please review the attached circuit diagram to ensure it is properly designed. Thank you. Best Regards, Inho Jeon Re: i.mx8M plus Serial download failure Please download the latest UUU from https://github.com/nxp-imx/mfgtools/releases Then use the following command to program images. unzstd    - .rootfs.wic.zst uuu -b emmc_all   - .rootfs.wic If it still fails, please try the following command. uuu.exe -b emmc imx-boot-imx8mpevk-sd.bin-flash_evk Re: i.mx8M plus Serial download failure The schematic looks same as the NXP EVK base board. The only difference is JTAG_MOD was pulled high. Please remove R216 to have a try.     Re: i.mx8M plus Serial download failure Dear yipigwang,  The OS image upload still fails even after removing R216. Please review the circuit diagram again. Thank you. Re: i.mx8M plus Serial download failure Would you please execute the following commands and capture the UUU log to me again? unzstd    - .rootfs.wic.zst uuu -b emmc_all   - .rootfs.wic Re: i.mx8M plus Serial download failure Attached a capture image file. Re: i.mx8M plus Serial download failure On your Linux host PC, please execute the following commands first. $ unzstd imx-image-core- imx8mpevk*.rootfs.wic.zst Then execute the following UUU command. uuu -b emmc_all imx-boot-imx8mpevk-sd.bin-flash_evk imx-image-core- imx8mpevk*.rootfs.wic Re: i.mx8M plus Serial download failure I have several questions on this issue as shown below. Please help to clarify them. Did the same CPU board work well on the NXP base board, but failed on the custom one?  Could the same CPU board pass DDR stress test with the custom base board? Is there any log printed from the debug console during the Serial download process? Re: i.mx8M plus Serial download failure Here is the answer: Did the same CPU board work well on the NXP base board, but failed on the custom one? => YES.  Could the same CPU board pass DDR stress test with the custom base board? => YES. Is there any log printed from the debug console during the Serial download process? => No Re: i.mx8M plus Serial download failure It did not work even after applying the method you suggested. Please suggest another method. Thank you.
View full article
ls1021a eTSEC tx timeout I have a LS1021A IOT and a prototype board based on this cpu. On both we use our boot loader. It works perfectly in the IOT board but on my board I get TX timeout on the Ethernet port. I get a few pings going and then tx timeout and more pings.  This makes tftp rarely possible. There are hardware difference of course. Our MAC is connected to a BCM54616S then to a LAN9514. The autonegotiation is limited to 100FD. TX timeout also happens in loopback mode. In order to transmit data, I had to set bit SGMII_AN bit in the TBI PHY on my boards while I did not have to on the IOT (IOT can negotiate at 1000FD). Not sure why the TX is so intermittent. Could it be related to this speed limitation? Re: ls1021a eTSEC tx timeout Hello, For 100FD SGMII , verify these items in your boot loader on the prototype board: Set LS1021A eTSEC for SGMII 100 Mbps ECNTRL[TBIM] = 1 ECNTRL[SGMIIM] = 1 ECNTRL[R100M] = 1 MACCFG2[I/F Mode] = 01 for 10/100 mode The LS1021A RM specifically notes setting R100M = 1 for SGMII 100 Mbps. Reset and program the internal TBI PHY The RM states that SGMII uses the TBI register set and that it is important to reset the TBI for all interface modes, including SGMII. Keep SGMII_AN set The TBI SGMII_AN bit is documented as “must be set to 1.” So the fact that your board only transmits after setting this bit is not surprising; it suggests your boot-loader initialization was incomplete for this PHY/MAC mode. Do not rely on 1G-style SGMII AN behavior at 100 Mbps There are known LS1021A reports where 100 Mbps SGMII operation shows “SGMII link is not ok” or intermittent no-packet behavior after link cycling, while 1G operation is clean. That does not prove your exact TX timeout root cause, but it makes 100FD SGMII configuration a strong suspect. The loopback result matters. If your “loopback mode” is external PHY loopback or SGMII-side loopback, the 100FD SGMII/TBI setup can still be involved. If it is internal MAC/eTSEC loopback , then the external BCM54616S/LAN9514 path is mostly out of the picture, and I would focus on eTSEC initialization, descriptor-ring handling, cache coherency, and TX halt/error status. For debugging, check the eTSEC TX halt status when the timeout occurs. The RM says the transmit halt bits are set when eTSEC is no longer processing transmit frames from a TxBD ring; repeatable causes include bus errors, invalid BD/data addresses, uncorrectable BD/data read errors, and TxBD programming errors such as Ready = 1 with length 0 . Also check whether you are seeing IEVENT_BSY ; NXP material describes BSY as dropped RX frames due to lack of buffers/software not servicing the BD ring fast enough, which is a software/BD-ring symptom rather than a pure SGMII electrical symptom. Recommended isolation sequence: 1. Force external PHY to 100FD, no autoneg toward copper if needed. 2. Force LS1021A MAC/eTSEC to SGMII 100 Mbps: TBIM=1, SGMIIM=1, R100M=1, MACCFG2 I/F mode=10/100. 3. Reset/reinitialize TBI after setting SGMII mode. 4. Set TBI SGMII_AN=1. 5. Confirm TBI link/AN status, eTSEC ECNTRL/MACCFG2, and PHY SGMII-side status. 6. On timeout, dump IEVENT, TX halt registers, DMA status, and TXBD ring contents. regards  Re: ls1021a eTSEC tx timeout Forgot to say my port is set for SGMII mode. Re: ls1021a eTSEC tx timeout Adding messages or 1ms delay in the send functions allows the correct transfer of data without loss. I added a DMA flush to the TX descriptors in the send function and this helps. Though, this should not be necessary considering the descriptors are allocated in uncached memory. It could be a defect in the MMU library to which I added LPAE support. Now I remember that a long time ago I removed the dma-coherent property in the enet device node and this was enough for the LS1021A-IOT to work. This is forcing a DMA flush while allocating uncached memory for the descriptors. But there was no cache flush in the send functions which updates the TX descriptors on each packet. Not sure why it does not work on my prototype (difference in frequency, DDR3L vs DDR4,...) Re: ls1021a eTSEC tx timeout Hi, Thank you for the detailed findings — the combination of workarounds you identified (1 ms delay, manual DMA flush, and removing dma-coherent ) is a textbook fingerprint of a cache alias problem. Here is the root cause explanation and the recommended fix path. Root cause: cached virtual alias over the TX descriptor region The LS1021A ENET DMA is a non-cache-coherent bus master — it reads DDR directly, with no visibility into the CPU cache. The correct operating model for gianfar on LS1021A is the non-coherent software-managed model: descriptors allocated in uncached memory, with explicit dma_sync_* calls whenever the CPU updates a descriptor field. What your LPAE changes most likely introduced is a page table entry for the descriptor physical address range that carries the wrong cache attribute — Normal Writeback instead of Device or Normal Non-cacheable. This creates two virtual aliases to the same physical memory with different cacheability: the allocation path (via dma_alloc_noncoherent ) maps it uncached, but the per-packet TX descriptor update path in the send function accesses it through a cached alias. The CPU writes the updated descriptor fields into the cache line, they never reach DDR, and the ENET DMA reads stale data and underruns. Why your three workarounds all mask the same defect 1 ms delay / message insertion: adds enough latency for the CPU writeback buffer to drain naturally under low load — timing-dependent, will fail under traffic or frequency change. Manual dma_flush in the send function: forces a cache clean-to-PoC before the DMA reads the descriptor — correct behaviour, but should not be necessary if the region is genuinely uncached. Removing dma-coherent from the enet device node: causes the kernel to call dma_map_single() / dma_sync_single_for_device() on each TX descriptor before submission, which explicitly cleans the cache — also correct, and explains why the LS1021A-IOT worked reliably without a send-path flush. The absence of the send-path flush is the missing piece. The LS1021A-IOT worked with dma-coherent removed because the kernel's DMA mapping layer inserted the sync automatically; your prototype does not have that path because the LPAE changes altered the descriptor region's cache attributes without re-introducing the sync. DDR3L vs DDR4 / frequency difference This is not the root cause. Different DRAM type and frequency change write latency and buffer drain timing, which is why the failure is more visible on your prototype — but the underlying defect is architectural and will be present on both boards under sufficient load. Recommended fix The correct and self-consistent fix is to combine both of the following: Keep dma-coherent removed from the enet device node (non-coherent model). This causes the kernel DMA layer to issue dma_sync_single_for_device() automatically before DMA ownership is transferred for descriptors allocated via dma_alloc_noncoherent . Add explicit dma_sync_single_for_device() calls in the TX send path at the point where TX descriptor fields ( status , data_length , data_pointer ) are written on each packet. This is the flush you added manually — but it should be formally placed as a dma_sync_single_for_device(dev, desc_dma_addr, sizeof(txbd), DMA_TO_DEVICE) before writing TDAR . This makes the model explicit and correct regardless of how the MMU attributes the descriptor region. Separately, audit the LPAE MMU library change for the AttrIndx / TEX+C+B fields assigned to the physical address range used for ENET descriptors. The descriptor pool should be mapped as Device-nGnRnE (strongly ordered) or Normal Non-cacheable — not Normal Writeback. You can verify the actual attributes in use with the kernel's ptdump debug interface by checking the virtual address of the descriptor pool after allocation. The DMA flush you added is not a workaround — it is the correct mechanism. The real defect is that it was absent from the send path in the first place, and the LPAE changes exposed this because they altered the effective cacheability of the region.   Regards
View full article
ls1021a eTSEC 发送超时 我有一个 LS1021A 物联网芯片和一个基于该芯片的原型板。两者都使用引导加载程序。 它在物联网板上运行完美,但在我的板上,以太网端口出现TX超时错误。我发出几个 ping 请求后,发送超时,然后又发出更多 ping 请求。这使得TFTP几乎无法使用。 当然,硬件方面也存在差异。我们的 MAC 连接到 BCM54616S,然后连接到 LAN9514。自动协商的上限为 100FD。TX超时在环回模式下也会发生。 为了传输数据,我必须在我的板子上的 TBI PHY 中设置 SGMII_AN 位,而 IOT 则不需要这样做(IOT 可以协商 1000FD)。 不确定为什么TX信号如此不稳定。这是否与速度限制有关? Re: ls1021a eTSEC tx timeout 你好, 对于 100FD SGMII,请在原型板的引导加载程序中验证以下项目: 设置 LS1021A eTSEC 用于 SGMII 100 Mbps ECNTRL[TBIM] = 1 ECNTRL[SGMIIM] = 1 ECNTRL[R100M] = 1 MACCFG2[I/F Mode] = 01 表示 10/100 模式 LS1021A RM 特别指出,对于 SGMII 100 Mbps,应将 R100M = 1 。 重置和编程内部 TBI PHY。RM 指出 SGMII 使用 TBI 寄存器集,并且对于所有接口模式(包括 SGMII)重置 TBI 非常重要。 保持 SGMII_AN 设置为 TBI SGMII_AN 位“必须设置为 1”。因此,您的电路板只有在设置此位后才会发送数据,这并不奇怪;这表明您的引导加载程序初始化对于此 PHY/MAC 模式不完整。 不要依赖 100 Mbps 下的 1G 式 SGMII AN 行为。已知 LS1021A 报告显示,100 Mbps SGMII 操作在链路循环后会出现“SGMII 链路不正常”或间歇性无数据包行为,而 1G 操作则正常。这并不能证明您的 TX 超时的确切根本原因,但这足以证明 100FD SGMII 配置是一个强烈的怀疑对象。 回环结果很重要。如果您的“环回模式”是外部 PHY 环回或 SGMII 侧环回,则 100FD SGMII/TBI 设置仍然可能参与其中。如果是内部 MAC/eTSEC 环回,那么外部 BCM54616S/LAN9514 路径基本无关紧要,我会重点关注 eTSEC 初始化、描述符环处理、缓存一致性和 TX 停止/错误状态。 为了进行调试,请检查超时发生时 eTSEC TX 停止状态。RM 表示,当 eTSEC 不再处理来自 TxBD 环的发送帧时,会设置发送停止位;可重复出现的原因包括总线错误、无效的 BD/数据地址、无法纠正的 BD/数据读取错误以及 TxBD 编程错误,例如 Ready = 1 长度为 0 。还要检查是否看到 IEVENT_BSY ;NXP 的资料将 BSY 描述为由于缓冲区不足/软件无法足够快地服务于 BD 环而导致的 RX 帧丢失,这是一种软件/BD 环的症状,而不是纯粹的 SGMII 电气症状。 推荐的分离步骤: 1.强制外部PHY为 100FD ,如果需要,不进行铜缆自动协商。2.强制LS1021A MAC / eTSEC 为SGMII 100 Mbps : TBIM = 1 , SGMIIM = 1 , R100M = 1 , MACCFG2 I / F模式= 10 / 100。3. 设置 SGMII 模式后 RESET / 重新初始化 TBI 。4.设置TBI SGMII_AN = 1。 5.确认TBI链路/ AN状态、 eTSEC ECNTRL / MACCFG2和PHY SGMII侧状态。6.超时时,转储IEVENT 、 TX停止寄存器、 DMA状态和TXBD环内容。 此致敬礼 Re: ls1021a eTSEC tx timeout 忘了说了,我的端口设置为SGMII模式。 Re: ls1021a eTSEC tx timeout 在发送函数中添加消息或 1 毫秒延迟,可以确保数据正确传输而不丢失。 我在发送函数中为 TX 描述符添加了 DMA 刷新,这很有帮助。不过,考虑到描述符是在非缓存内存中分配的,这应该不是必要的。这可能是我添加了 LPAE 支持的 MMU 库的缺陷。 现在我想起来了,很久以前我删除了 enet 设备节点中的 dma-coherent 属性,这足以让 LS1021A-IOT 工作。这样会在为描述符分配未缓存内存时强制执行 DMA 刷新。但是发送函数中没有缓存刷新,无法更新每个数据包的 TX 描述符。不确定为什么在我的原型机上不起作用(频率不同,DDR3L 与 DDR4 的区别……) Re: ls1021a eTSEC tx timeout 您好, 感谢您提供的详细调查结果——您发现的解决方法组合(1 毫秒延迟、手动 DMA 刷新和删除 dma-coherent )是缓存别名问题的典型特征。以下是根本原因分析和推荐的修复方案。 根本原因:TX描述符区域中缓存的虚拟别名 LS1021A ENET DMA 是一个非缓存一致性总线主控器——它直接读取 DDR,无法访问 CPU 缓存。LS1021A 上 gianfar 的正确操作模型是非一致性软件管理模型:描述符分配在非缓存内存中,每当 CPU 更新描述符字段时,都会显式调用 dma_sync_* 。 您的 LPAE 更改最有可能引入的是描述符物理地址范围的页表项,该条目携带错误的缓存属性——普通写回而不是设备或普通不可缓存。这为同一物理内存创建了两个具有不同缓存性的虚拟别名:分配路径(通过 dma_alloc_noncoherent )将其映射为未缓存,但发送函数中每个数据包的 TX 描述符更新路径通过缓存别名访问它。CPU 将更新后的描述符字段写入缓存行,这些字段永远不会到达 DDR,导致 ENET DMA 读取到过时的数据并出现欠载。 为什么你的三种变通方案都掩盖了同一个缺陷 1 毫秒延迟/消息插入:在低负载下,增加足够的延迟,使 CPU 回写缓冲区自然耗尽——与时间相关,在流量或频率变化时会失效。 发送函数中的手动 dma_flush :强制在 DMA 读取描述符之前执行缓存清理到 PoC 的操作——这是正确的行为,但如果该区域确实没有缓存,则无需执行此操作。 从 enet 设备节点中移除 dma-coherent :导致内核在提交之前对每个 TX 描述符调用 dma_map_single() / dma_sync_single_for_device() ,从而显式地清除缓存——这也是正确的,并解释了为什么 LS1021A-IOT 无需发送路径刷新即可可靠地工作。 缺少发送路径刷新是关键所在。LS1021A-IOT 在移除 dma-coherent 后可以正常工作,因为内核的 DMA 映射层会自动插入同步信号;你的原型没有这条路径,因为 LPAE 的更改改变了描述符区域的缓存属性,而没有重新引入同步信号。 DDR3L 与 DDR4 的频率差异 这不是根本原因。不同的动态随机存取存储器(DRAM)类型和频率会改变写入延迟和缓冲区漏电时间,这就是为什么故障在您的原型上更明显的原因——但根本缺陷是架构上的,在足够的负载下,两个板上都会出现这种缺陷。 推荐修复方案 正确且自洽的解决方案是将以下两种方法结合起来: 将 dma-coherent 从 enet 设备节点中移除(非相干模型)。这导致内核 DMA 层在通过 dma_alloc_noncoherent 分配的描述符的 DMA 所有权转移之前自动发出 dma_sync_single_for_device() 。 在 TX 发送路径中,于每个数据包上写入 TX 描述符字段( status 、 data_length 、 data_pointer )的位置,添加显式的 dma_sync_single_for_device() 调用。这是你手动添加的冲洗——但在编写 TDAR 之前,应该正式地将其放置为 dma_sync_single_for_device(dev, desc_dma_addr, sizeof(txbd), DMA_TO_DEVICE) 。无论 MMU 如何对描述符区域进行归属,该模型都明确且正确。 另外,审核分配给 ENET 描述符使用的物理地址范围的 AttrIndx / TEX+C+B 字段的 LPAE MMU 库更改。描述符池应映射为 Device-nGnRnE(强有序)或 Normal Non-cacheable — 而不是 Normal Writeback。您可以通过在分配后检查描述符池的虚拟地址,使用内核的 ptdump 调试接口来验证实际使用的属性。 你添加的 DMA 刷新不是一种权宜之计,而是正确的机制。真正的缺陷在于它一开始就不在发送路径中,而 LPAE 的更改暴露了这一点,因为它们改变了该区域的有效缓存性。   此致
View full article
MPC5746C FXOSC output frequency Part: MPC5746C (Power Architecture Z4, SDK: NXP MPC57xx platform SDK). In the manual of MPC5746C, it is stated that FXOSC provides 8 -40 MHz output frequency. Please help me in finding the output frequency provided by FXOSC for the following configurations? 1. FXOSC_CTL: OSCBYP = 0 and OSCM = LCP 2. FXOSC_CTL: OSCBYP = 0 and OSCM = FSP 3. FXOSC_CTL: OSCBYP = 1 and OSCM = LCP 4. FXOSC_CTL: OSCBYP = 1 and OSCM = FSP Please consider default values for the other register fields. Thanks. Re: MPC5746C FXOSC output frequency Thanks for your response @petervlna.  How can we find the frequency provided by the crystal/resonator(OSCBYP = 0) and external clock(OSCBYP = 1)? Re: MPC5746C FXOSC output frequency Hello, The FXOSC module does not generate a specific frequency based on the OSCBYP and OSCM settings. The FXOSC output frequency is always equal to the frequency of the external source connected to FXOSC (crystal/resonator when OSCBYP=0, or external clock when OSCBYP=1), within the supported range of 8–40 MHz. Therefore, for all four configurations listed, the FXOSC output frequency is simply the external input frequency. The OSCM setting (LCP/FSP) affects the oscillator operating mode, but does not change the clock frequency. Best regards, Peter Re: MPC5746C FXOSC output frequency @petervlna please provide your support for my FXOSC query mentioned above.  Re: MPC5746C FXOSC output frequency How can we find the frequency provided by the crystal/resonator(OSCBYP = 0) and external clock(OSCBYP = 1)? Please let me know on the above question @petervlna. I want to use FXOSC as clock source for a timer. Based on the frequency it provides i can load a count value into the timer register Re: MPC5746C FXOSC output frequency Hello, The MPC5746C does not provide a way to measure or determine the FXOSC frequency from the FXOSC registers. The frequency must be known from the hardware design: OSCBYP = 0: FXOSC frequency equals the frequency of the external crystal/resonator fitted on the board. OSCBYP = 1: FXOSC frequency equals the frequency of the external clock signal applied to the FXOSC input pin. To use FXOSC as a timer clock source, the application must use the frequency specified in the board schematic or clock design (for example, 8 MHz, 16 MHz, 40 MHz, etc.) when calculating the timer count value. The OSCBYP and OSCM settings do not affect the frequency itself. Best regards, Peter
View full article
MD8LC925NR1アンプのバイアス調整方法を教えてください。 こんにちは、 現在、 MD8LC925NR1パワーアンプを使用したシステムを設計中です。適切な バイアス回路や専用の電源管理部品 をおすすめしていただけるとありがたいです。 この目的のために推奨されるリファレンス・デザイン、アプリケーションノート、または具体的な部品番号を教えていただけますか? ご協力ありがとうございました。 Re: How to bias the amp MD8LC925NR1? こんにちは、 NXPセミコンダクターズの製品にご関心をお寄せいただき、またサポートの機会をいただきありがとうございます。 記載されている部品番号に誤植があるようです。MDL8LC925NR1は、NXPの有効な注文可能部品番号ではありません。最も近い類似デバイスはMD8IC925Nです。このデバイスは現在、販売終了(EOL)となっており、サポートが終了しているため、新規購入はできませんのでご注意ください。 以下のNXP文書は、回路回路図、部品リスト、特性評価データを含む詳細な設計情報を提供しています。 MD8IC925N データシート AN1977 – RF集積回路ファミリにおける静止電流熱追尾回路 AN1987 – RF集積回路デバイスファミリ向けクイセント電流制御(両方のバイアス回路トポロジーと完全な部品リストを含む) AN1955 – RFパワーアンプの熱測定手法 残念ながら、MD8IC925Nの直接的な代替品は存在しません。さらに、 100MHzから1000MHz 帯をカバーする多くのRF製品はEOLに近づいており、現時点では新しい代替機器の発表はありません。 お客様の周波数、電力、供給電圧に関する具体的な要件に基づき、代替ソリューションの特定についてサポートが必要な場合は、お知らせください。 よろしくお願いいたします。
View full article
支持请求:使用 i.MX8M Plus LVDS 输出的 HD-SDI 接口 尊敬的先生, 我们正在设计一个基于NXP i.MX8M Plus处理器的系统,希望您能指导我们实现HD-SDI 接口。 我们的需求是支持三个 HD-SDI 输出。我们计划使用i.MX8M Plus 的LVDS 接口,并使用以下设备将其转换为 HD-SDI: LMH0340SQE/NOPB – LVDS 转 HD-SDI 串行器 2 × LMH0324RTWT – 1 对 3 HD-SDI 分配放大器 请问i.MX8M Plus的LVDS接口是否与该架构兼容,能够生成三个HD-SDI输出? 如果此方案不被推荐或支持,能否请您提供一个替代方案,以便在继续使用i.MX8M Plus处理器的情况下实现三个 HD-SDI 接口?我们希望在设计中保留 i.MX8M Plus,因为它满足我们所有其他系统要求。 我们非常感谢您能提供任何建议以及任何可能有助于我们成功实现此接口的参考设计或应用说明。 感谢您的支持。我们期待您的指导。 顺祝商祺! 萨穆德拉兰凯亚·詹帕尼 模拟(ADC|CMP|DAC|运算放大器) 电路板设计 MCXA MCXC Re: Support Request: HD-SDI Interface Using i.MX8M Plus LVDS Output 你好, 很遗憾,我对这种使用场景不太熟悉。我研究了您分享的那部分内容,发现它似乎是用于 FPGA 而不是 LVDS 通道,所以我不太确定您是否可以使用此接口。 或许使用不同的桥接器或 i.MX8MP 中的其他接口,甚至在中间添加另一层(FPGA)会是一个解决方案。 此致敬礼/Saludos, 阿尔多。
View full article
.mexファイル内の警告ファイル (自動生成された).mexファイル内プロジェクト用のファイルでは、各ペリフェラルは次のような内容です: 1.0.0 「説明」属性の文言に注目してください。他のペリフェラルについては状況が異なりますが、ほとんどの場合、警告やエラーメッセージのようなものです。プロジェクトは正常にコンパイルされ、実行されます。 関連して、『ペリフェラルビュー』から新しいソフトウェアコンポーネントを追加しようとすると、現在選択されていないペリフェラルが黄色い感嘆符でマークされています。添付のスクリーンショットをご覧ください。マウスカーソルをそれらの上に重ねると、「description」属性に表示されているのと同じメッセージが表示されます。しかし、私は問題なくそれらを追加できます。 これらの警告は何に関するものですか?
View full article