Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
コミュニティガイドライン NXPコミュニティへようこそ  NXPコミュニティ は 、NXPのお客様、パートナー、および従業員が、 組み込み設計のトピック や 技術的な質問 について 、アイデアや ヒントを共有したり、質問 したり、協力 したり、意見を受け取ったりする機会を提供します 。 当社の コミュニティ は 、コミュニケーション、コンテンツ作成、アイデアの共有、問題解決のためのこの包括的なコラボレーション環境を使用して 、お客様が 設計プロセスを迅速かつ効率的に革新 し、進める のを支援します 。 開発者コミュニティから専門家のアドバイスを受けることができます。 NXPサポート チームは 、 これらのフォーラムを監視して回答を提供し、 フィードバック に耳を傾け ます 。誰でもメッセージを読むことができますが、 質問 、体験 、回答 を 投稿できるのは、登録 されたメンバー nxp.com のみです 。   進行状況を追跡する バッジ:バッジは、さまざまな種類の個々の行動や活動についてメンバーを表彰します。多くのバッジは簡単に獲得でき、メンバーが参加を開始するとすぐに授与されます。バッジは、メンバーがコミュニティにもたらす特定のスキルセットを識別するのに役立ちます。  ランク: ランクは 、複数の異なる、しばしば無関係なアクションを完了したメンバーを表彰します。 メンバーは 複数のバッジを取得できますが、 メンバーは 一度に保持できるランクは1つだけです。メンバーのランクは、 コミュニティにおける メンバー の全体的なステータス を示す n 指標 です 。 カテゴリーエキスパート: 誰でもカテゴリーエキスパートになれる ので 、 メンバー は引き続き 参加して他の人を助ける こと を奨励し 。E xperts は、 特定のカテゴリまたはボードへの参加に基づいています 。 重複する投稿を作成する空白:   B 新しい質問やアイデアを投稿する前に 、メンバーにグローバル検索バーを使用して、その質問やアイデアがすでに他のユーザーによって投稿されているかどうかを確認することをお勧めします。 既存の質問やアイデアを見つけた場合は、この投稿にコメントを追加して、同じまたは類似の質問やアイデアがあることをコミュニティメンバーに知らせることをお勧めします。     新しい投稿の作成: 質問やアイデアを投稿するときは、できるだけ多くの情報を提供してください。 投稿の件名に問題を記載する場合は特に注意してください。「助けてください」や「これは機能しません」などの件名は曖昧すぎます。「USBが NXP製品 で動作しない」などの件名 は、問題に精通している人の注意を引き付ける可能性が高くなります。 投稿を追加すべき 適切なフォーラムを特定します 。彼は 、他のメンバーがこの投稿で協力するのを助け ます 。 スマートタグとラベルを 投稿に含めると、検索エンジンで簡単に見つけることができます 。 すべての コラボレーションは他の人を助けることができる ことを忘れないでください 。   投稿が解決した ことを確認する p ost s ha は 、それが解決された場合に表示する機能と 回答へのクイックリンク を持っています 、新しい投稿がある場合は、問題をトラックに追 って、 答えがあなたのものであっても 、 回答 で 返信 をマーク してください。 すべてのコラボレーションは 、バッジとランクに直接反映 されることを忘れないでください。 プロフィール で 進行状況を追跡します 。   Reportの不適切なコンテンツ  コミュニティのメンバーとして、コミュニティを有機的で清潔に保つために、あなたは私たちが協力することができます。  コミュニティに関係のないトピックを投稿または返信している他のユーザーを見つけた場合は、他のユーザーからこれらの不正行為を報告できます。 (報告された不正使用は、NXPサポートチームによって監視されます)。    他のメンバーを尊重し、問題を避けてください  「礼儀正しく、皆さん!」。  コミュニティや機能を悪用することを 禁止 されることを避け てください コミュニティのモデレーターは、コンテンツを継続的にレビューしています 。違反内容にもよりますが 、 当サイトからのストライキ や 永久 追放 は避け てください。 例: 2人のユーザー 間で kudo を 磨く 。   NXPコミュニティでは、このサイトの尊重と良好な使用を保証したいと考えています。  コミュニティ違反の例:  スタッフや他のコミュニティメンバーになりすまそうとする行為  暴力の脅威  ヘイトまたは人種差別的な発言  違法または有害と見なされるJavaScript、アクティブコード、データ、テキスト、ファイル、リンク、ソフトウェア、チャット、通信、またはその他の資料(以下「コンテンツ」)を送信すること  議論の流れを乱すことを目的とした反復的なスレッドやスパム    FAQサイトをご覧ください 
記事全体を表示
BAN-N1928 MIFARE Beyond Access - 智能校园一体化解决方案 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> MIFARE ®在门禁领域占有 50% 的市场份额,但它的功能远不止于此。除了向员工和学生授予物理和逻辑访问权限外,MIFARE 还可以成为您的小额支付和忠诚度解决方案 - 集所有功能于一身。通过 NFC 功能,您的应用程序甚至可以读取数据并将新数据存储到 MIFARE 卡中。整体用户体验——只需轻轻一点。 观看视频演示 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> MIFARE ®在门禁领域占有 50% 的市场份额,但它的功能远不止于此。除了向员工和学生授予物理和逻辑访问权限外,MIFARE 还可以成为您的小额支付和忠诚度解决方案 - 集所有功能于一身。通过 NFC 功能,您的应用程序甚至可以读取数据并将新数据存储到 MIFARE 卡中。整体用户体验——只需轻轻一点。 观看视频演示 智能银行和智能零售
記事全体を表示
INS-N1981 ワイヤレスMCUの概要 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> スマートホームが勢いを増し始めると、多くの競合する無線通信規格が覇権を争っています。ZigBee®が低電力ネットワーク市場で支配的になりつつある今、新しいMesh機能を備えた2つの新しい低電力技術であるThreadとBluetooth® Low Energyが、どちらもこの市場に参入しようとしていることは驚くことではありません。さらに、Thread Group(Google/Nest)、Allseen Alliance(Qualcomm)、AppleのHomekit、Open Interconnect Consortium(Intel)、その他多くの競合するIoTプラットフォームが、さらに混乱を招いています。では、この紛らわしい一連の無線通信規格とIoTプラットフォームでは、それぞれの主な機能は何であり、NXPにとって何を意味するのでしょうか。このセッションでは、これらのワイヤレス接続規格とIoTプラットフォームの概要、それらの機能、およびNXP IoTへの影響について説明します。 ビデオプレゼンテーションを見る <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> スマートホームが勢いを増し始めると、多くの競合する無線通信規格が覇権を争っています。ZigBee®が低電力ネットワーク市場で支配的になりつつある今、新しいMesh機能を備えた2つの新しい低電力技術であるThreadとBluetooth® Low Energyが、どちらもこの市場に参入しようとしていることは驚くことではありません。さらに、Thread Group(Google/Nest)、Allseen Alliance(Qualcomm)、AppleのHomekit、Open Interconnect Consortium(Intel)、その他多くの競合するIoTプラットフォームが、さらに混乱を招いています。では、この紛らわしい一連の無線通信規格とIoTプラットフォームでは、それぞれの主な機能は何であり、NXPにとって何を意味するのでしょうか。このセッションでは、これらのワイヤレス接続規格とIoTプラットフォームの概要、それらの機能、およびNXP IoTへの影響について説明します。 ビデオプレゼンテーションを見る インサイト&イノベーション
記事全体を表示
DES-N1849 多核 ARM ® v8 QorIQ 处理器中的异常处理 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 了解ARM®v8异常水平处理(ELO至EL3),以及基于最新的QorIQ LS系列处理器的通用中断控制器v3 (GICv3)逻辑在预封装的Linux SDK环境之外使用具有挑战性。 本次演示将介绍如何配置分发器(GICD)、再分发器(GICR)、CPU接口(ICC_*_EL*)和ARM内核,以处理专有外设中断(PPI)和软件触发的中断(SGI)。 它将用于嵌入式开发人员编写异常处理程序,以及被缩略词弄糊涂的任何人。 CodeWarrior将用于显示异常处理项目示例。 观看视频演示 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 了解ARM®v8异常水平处理(ELO至EL3),以及基于最新的QorIQ LS系列处理器的通用中断控制器v3 (GICv3)逻辑在预封装的Linux SDK环境之外使用具有挑战性。 本次演示将介绍如何配置分发器(GICD)、再分发器(GICR)、CPU接口(ICC_*_EL*)和ARM内核,以处理专有外设中断(PPI)和软件触发的中断(SGI)。 它将用于嵌入式开发人员编写异常处理程序,以及被缩略词弄糊涂的任何人。 CodeWarrior将用于显示异常处理项目示例。 观看视频演示 设计 | 软件与服务
記事全体を表示
FTF-ACC-F1276.pdf This session will explain how Freescale can enable customers to develop 76-81 GHz short and long range radar applications using the MPC577xK MCU, it will explain the concepts of the radar algorithms, including practical aspects such as SDADC or MIPI CSI sampling, Chirp Generation, Data Compression, R,V FFT, Detection and Tracking algorithms, and the benefits of the new Freescale IP that can allow them to improve their system resolution and accuracy. In this session customers will take away a detailed understanding of how to develop fast modulation radar systems using the MPC577xK MCU including the BOM cost advantages it also brings. This session will explain how Freescale can enable customers to develop 76-81 GHz short and long range radar applications using the MPC577xK MCU, it will explain the concepts of the radar algorithms, including practical aspects such as SDADC or MIPI CSI sampling, Chirp Generation, Data Compression, R,V FFT, Detection and Tracking algorithms, and the benefits of the new Freescale IP that can allow them to improve their system resolution and accuracy. In this session customers will take away a detailed understanding of how to develop fast modulation radar systems using the MPC577xK MCU including the BOM cost advantages it also brings.
記事全体を表示
i.MX6 上的高保证启动 (HAB) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 抽象的 安全是我们日常生活中不可避免的一个词。对于我们许多人来说,没有安全性的技术就是没有“信任”的技术。我们都知道,从工作场所到社交聊天,安全在我们的生活中扮演着重要的角色。即使是嵌入式系统也应该实施安全措施,以防止未经授权访问敏感数据。我们如何确保 i.MX6 平台只能使用授权图像启动?让我们来看看名为高保证启动 (HAB) 的酷东西,它使启动映像变得安全而简单。 介绍 数字安全自诞生以来就成为我们生活中不可避免的一部分。对于任何嵌入式系统来说,这种情况都没有什么不同,特别是在处理敏感数据时。许多用于银行交易、国防、医疗、工业和汽车领域的嵌入式设备都严格执行安全规定。 几乎所有嵌入式系统都是根据闪存图像给出的特定指令来工作的。想象一下,如果黑客可以将自己的指令刷入嵌入式设备,那么他就可以完全控制该设备需要执行的操作。如果该设备用于银行目的,那么黑客将获得包括密码在内的所有详细信息!如果该设备用于国防或医疗领域,这种情况会变得更加糟糕。我们如何才能防止这种情况发生?嗯,答案并不那么简单! 嵌入式系统操作系统映像可以从不同的介质(例如 MMC、SD 卡、SATA、以太网等)闪存。由于 SD 卡等介质可以轻松地从一个介质替换到另一个介质,因此在介质上实施安全检查将很困难。此外,人们可以在将操作系统映像刷入这些介质后对其进行更改。因此,仅在刷新图像之前实施安全检查不足以解决这个问题。那么我们如何实施安全检查以确保我们的操作系统映像是安全的?答案是 HAB(高保证靴)。 飞思卡尔在 i.MX6Q 处理器中提供了 HABv4(最新 HAB 版本 4)作为可选功能。HAB 是飞思卡尔安全模块的一部分,可以与 CAAM 和 TrustZone 等其他安全功能协同工作。 使用HAB的优点包括但不限于以下几点: HABv4 实现了启动 ROM 级别的安全性,一旦融合就无法改变。 高效的。 图像控制系统之前的安全检查。 允许多个根密钥。 利用数字签名——保护操作系统映像的最有效方法。 将安全性直接附加到操作系统映像,而不会影响操作系统映像的功能。 通过操作系统映像验证的处理器级别检查可以完全确保安全启动。 HAB 如何运作? HAB基于数字签名的原理。数字签名通过对内容上下文进行签名,使得内容变得安全。该签名过程应包含多种安全算法,以加强最终结果。 HAB 数字签名是 open-ssl 认证、MD5 哈希和 RSA-AES-DES 公钥和私钥检查的组合。 HAB 通过将引导加载程序(u-boot)和操作系统映像(uImage)制作成签名映像来确保安全性。这些签名的图像包含正常的图像内容和安全指令。这些图像也包含公钥和私钥。在HAB过程中,组合得到的公钥哈希码将融合到i.MX6处理器的启动ROM代码中。这种融合使得平台更加安全并且以后无法更改。 在启动过程中,首先启动过程的初始参数应从闪存介质(例如 SD 卡)中获取启动 ROM 代码。然后,HAB 指令将检查启动 ROM 和签名图像中的哈希值。当这两个哈希值匹配时,HAB 进程允许平台启动映像。否则系统将停止所有进程并等待授权图像。 这样,系统就可以防止未经授权的访问,即使有人在后期更改了签名的图像(这最终会改变图像的哈希值,因此在运行时检查期间失败)。 iWave 已成功在我们的i.MX6Q iW-RainboW-G15D-Q7 Linux 平台上实现 HAB,并验证了 HAB 如何保护平台安全。然而,HAB 并非开发平台或模块购买时提供的标准 BSP 的一部分。仅应特殊要求提供。 结论 HAB 是防止未经授权访问操作系统映像的最佳解决方案之一。处理敏感数据(银行、国防等)的嵌入式系统应集成 HAB,以防止外部来源控制整个系统。虽然 HAB 在 i.MX6 平台中是可选功能,但为了确保启动过程更安全,建议集成 HAB。 参考: AN4581_HAB_Application_Note.pdf - 使用 HABv4 在 i.MX50、i.MX53 和 i.MX 6 系列上进行安全启动的应用说明 i.MX_6_Linux_High_Assurance_Boot_(HAB)_User's_Guide.pdf - i.MX 6 Linux 高保证启动 (HAB) 用户指南 概述
記事全体を表示
KSDK发布的内容 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Kinetis SDK v2 现已推出! Kinetis SDK v2 简介 KSDK 的第一步 如何开始使用 KSDK * 已发布示例列表: KSDK示例列表* 已发布文件清单: KSDK 文件清单* *以上所有源代码仅供示例使用。恩智浦不对用户应用程序中使用这些代码承担任何责任。 概述
記事全体を表示
Solyball Cooling Ace Designed for Modern Living Solyball When temperatures begin to rise, maintaining a comfortable indoor environment becomes a priority for many people. Whether at home, in the office, or in a personal workspace, excessive warmth can affect concentration, relaxation, and overall comfort. This is where Solyball offers a convenient and practical solution. Designed with portability, simplicity, and modern living in mind, Solyball is a compact cooling device that helps users create a more pleasant atmosphere in a variety of indoor settings. One of the most notable features of Solyball is its lightweight and portable design. Unlike large cooling systems that can be difficult to move or require significant space, Solyball is compact enough to fit comfortably in almost any room. Its portable nature allows users to carry it from one location to another with ease, making it suitable for use throughout the day as needs change. Whether you are working in a home office, relaxing in the living room, or preparing for a restful night's sleep, Solyball can be positioned wherever additional comfort is desired. The versatility of Solyball makes it a valuable addition to many different indoor environments. In bedrooms, it can help create a more enjoyable atmosphere during warm evenings. Comfortable sleeping conditions are important for overall well-being, and a compact cooling device can contribute to a more pleasant bedtime experience. Solyball's convenient size allows it to fit neatly on a bedside table or nearby surface without creating clutter. For professionals and remote workers, Solyball maintaining a comfortable workspace can be essential for productivity. Warm indoor temperatures may sometimes make it difficult to stay focused on tasks and responsibilities. Solyball offers a practical way to improve comfort while working, helping users create a more pleasant environment throughout the day. Its compact footprint means it can sit conveniently on a desk or workstation without occupying excessive space. Solyball Living rooms and shared family spaces can also benefit from the convenience of Solyball. These areas often serve as central gathering points where people spend time watching television, reading, socializing, or simply relaxing. By incorporating Solyball into these spaces, users can enjoy a more comfortable atmosphere while going about their daily activities. Its modern appearance ensures that it blends naturally with contemporary home décor.
記事全体を表示
MC33774 无响应 MC33774 无响应 MC33665+MC33774 的当前 DEMO 例程实现了 665 初始化、774 初始化以及电压和温度采集功能。实验台的布置如图所示。1. 当 S32K314 主控单元使用 JLINK 连接到 SWD 调试端口进行调试和仿真时,33774 和 33665 都能正常响应,返回回复帧并获取正确的单元电压和 GPIO 端口数据。台式上电顺序为“采样从板上电 -> MC33665A 上电 -> MCU 主板上电”。通信初始化请求读取寄存器消息显示为 MC33774_FIRST(其中 CAN 类型消息为 MC33665 回复帧)。2. 当仿真器断开连接且整个平台断电一段时间后,按“采样从板上电 -> MC33665A 上电 -> MCU 主板上电”的顺序再次上电时,MC33774 没有响应,只有 MC33665A 可以返回响应帧。通过开关机重新初始化MCU主板没有效果;只有在使用J-Link进行调试时才能与MC33774正常通信。消息如 MC33774_SECOND 所示。我想知道在排查故障时可以采取哪些步骤。 当前MC33665+MC33774的DEMO例程实现665初始化、774初始化以及电压温度采集功能,台架构成如图: 1.当S32K314主控部分使用JLINK链接SWD调试口进行调试仿真时,33774和33665均能正常响应返回应答帧并采集正确的适配器电压和GPIO端口数据。台架上电顺序为“采样从主板上电->MC33665A上电->MCU模块上电”。通讯初始化至请求读取读取报文如MC33774_FIRST所示(其中CAN报文类型为MC33665回复帧) 2.当断开仿真器并且将台架全部下电后等待一段时间,重新按照“采样从主板上电->MC33665A上电->MCU主板上电”顺序上电后,MC33774无响应,则MC33665A能返回响应帧。重新将MCU主板上下电进行初始化也无效,只有用JLINK调试时才正常与MC33774通讯。报文如MC33774_SECOND所示。 我想知道排查的方向有哪些? Re: MC33774 is unresponsive MC33774无响应 亲爱的嵌入式新手: MC33665 包含内部通信管理功能,不具备透明桥接功能。 当 MC33665 RESET 而 MC33774 仍保持通电状态时,TPL 链路将失去同步,导致设备处于 SPI 通信工作但 TPL 转发未启用的状态。 执行两次初始化可以有效地清除内部状态并重新建立链路同步,这就是它解决问题的原因。 建议的解决方案是确保正确重新初始化 TPL 或同步 RESET 两个设备。 最诚挚的问候, 约瑟夫 Re: MC33774 is unresponsive MC33774无响应 通过实验,我发现问题是由 MC33665 断电引起的。当我的 MC33774 保持通电状态,而 MC33665 断电重启,MCU 也断电重启时,尽管软件逻辑重新初始化了 MC33665,但它似乎处于无法转发 TPL 数据的状态。这是因为我的消息表明 MC33665 可以发送回复帧。因此,MC33665 一定处于某种状态,导致它无法转换 TPL 信号并将其发送到 33774。目前,我可以通过在软件逻辑中执行两次相同的 MC33665 初始化来避免这种现象。但是,我不清楚为什么 MC33665 会出现这种行为。你有什么想法吗? 我通过实验发现是由于MC33665下电导致的,当我的MC33774保持上电,MC33665下电重启,因为MCU也下电重启后,虽然软件逻辑上到MC33665重新初始化,但是此时MC33665似乎无法转发TPL数据的状态,我的报文中可以看出MC33665能够发出状态回复帧,所以MC33665应该有某种原因导致无法转换TPL信号不断出现33774。我当前在软件逻辑中进行两次相同的MC33665初始化就能够避免这种现象。但是我并并MC33665为什么会这样。请问您有什么办法吗? Re: MC33774 is unresponsive MC33774无响应 亲爱的嵌入式新手: 这个问题很可能是由启动时序依赖性引起的。当使用 J-Link 调试系统时,MCU 执行会被延迟,从而给 MC33774 足够的时间完成其内部初始化。在正常上电情况下,MCU 会立即启动并在 MC33774 准备就绪之前发送通信请求,导致没有响应。 建议在第一次通信之前引入延迟(例如 50-200 毫秒),实施重试机制,并确保 MC33665 在寻址 MC33774 之前正确初始化并唤醒 TPL 通信链。此外,还应验证 MC33774 的 RESET 和电源斜坡条件。 最诚挚的问候, 约瑟夫
記事全体を表示
LX2160 定制板上模块的掉电 在我们基于 LX2160 的定制主板中,没有 SPDT 开关可用于通过软件控制电源轨。 不过,我们的目标是降低 USB、WiFi、BT、PoE 和蜂窝模块的功耗。 我方提出了当前的意见和做法: 1.WiFi、BT 和蜂窝模块通过 PCIe 连接。 我们观察到,这些功能可以通过 SerDes 配置禁用。 通过将 SerDes 协议配置为 S2 = 9,所有相应的通道都被配置为 SGMII,而不是 PCIe,从而有效禁用 PCIe 连接的模块。 2.USB 模块似乎没有类似的基于 SerDes 的禁用选项。 对于 USB,我们目前正在尝试使用以下方法基于 GPIO 禁用: USB1_MUX_EN USB2_MUX_EN RCW 配置已经过验证,相应引脚已确认配置为 GPIO。 然而,即使驱动这些 GPIO 进行禁用操作,也无法观察到预期的功耗降低。 3.PoE 模块(AQR113c 用于以太网) 请就可能需要修改的其他文件或配置提出意见/建议,以便完全禁用和降低功耗。 Re: Power down of modules on LX2160 custom board 闲置时是否可以对 USB、WiFi、BT、PoE 和蜂窝模块掉电?还是产品的配置不同,这些接口根本不会被使用?   请注意,即使接口未使用,仍需为其电源轨供电。LX2160A 不支持从其轨道上拔下电源。 如果断开接口设备的电源,则需要确保 LX2160A I/O 不会发生泄漏   你能做什么? 1) 内核消耗最大功率。SDK 支持在不使用 CPU 时降低其频率,以节省功耗。 Refer 电源管理单元 - [Layerscape Software Development Kit User Guide | NXP 半导体|https://docs.nxp.com/bundle/GUID-487B2E69-BB19-42CB-AC38-7EF18C0FE3AE/page/GUID-2E8E375E-7DCD-4671-B0CF-D4713D8BB9EB.html] 2) 未使用的 IP 可通过 DEVDISR 进行时钟门控。不过,一旦禁用,就无法再启用。 3) 如果 SerDes 通道未使用,可将其断电。参见第 26.10.2 节LX2160A 参考手册中未使用的车道 4) 当通过 RCW 设置选择 SerDes 协议时,它还会根据协议要求配置与该协议相关的寄存器。因此,重新配置车道并不是正确的方法。 5) 从原理图片段来看,您已将 SerDes#2 配置为 SRDS_PRTCL_S2 =3,但只使用了单通道。 你可以使用 SRDS_PRTCL_S2=11 并按照 (4) 对未使用的通道进行掉电。类似的机制也可应用于其他 SerDes。 6) 如果 PCIe 未使用 Gen3,则 PLLF 可以断电。同样,未使用的 PLL 也可以断电 谢谢! Re: Power down of modules on LX2160 custom board 如何测量耗电量? 请注意,对于 SerDes 通道,您需要检查为 SerDes I/O 供电的 0.9V 和 1.8V 电源通道。 对于 DFS,请检查 VDD(0.8V)电源的功耗。 既然这是你的定制电路板,你有电源轨的功率测量电路吗? 如果你在自定义主板的输入上进行衡量,我不确定你会看到多大的差异。这还取决于测量的最小计数。 为进行检查,可在较低配置下运行核心/平台。查看设计检查表,其中有 VDD 轨功耗图表。 Re: Power down of modules on LX2160 custom board 你好, 感谢您的及时回复。我附上了我对您分享的有关功率优化建议的观察和测试结果。请查看它们,并与我们联系是否建议进行其他检查或配置。 要点 说明 CPU 热插拔/频率缩放观测 我们使用以下方法测试了 CPU 热插拔、CPU 频率缩放和不同的 CPU 模式: lscpu | grep line 观察结果: On-line CPU(s): 9 Off-line CPU(s): 0-8,10-15 不过,在这些情况下都没有观察到明显的功耗降低。 通过 DEVDISR 进行未使用的 IP 时钟门控 我们知道未使用的 IP 可以通过 devDisr 进行时钟门控。但是,由于禁用这些区块如果不重置就不可逆转,我们认为这种方法风险很高,因此不建议在我们当前的测试中使用这种方法。 未使用的 SerDes 通道掉电 寄存器写入成功。 不过,迄今为止还没有观察到明显的功耗降低。 SerDes 协议配置优化 PLL 掉电未使用的 Gen3 PCIe 应用配置: SRDS_REFCLKF_DIS_S2 = 1 SRDS_PRTCL_S2 = 11 SRDS_INTRA_REF_CLK_S2 = 0 SRDS_PLL_PD_PLL3 = 1 Re: Power down of modules on LX2160 custom board 你好, 我们正在使用这些连接到 BMC 的电流传感器来测量功耗,其中 VCC_12V 感应定制板的输入,而 VCC_0V8 正在感应恩智浦 (LX2160A) 芯片组的输入。 同样 在闪存时(这些以 VCC_12V 即总功耗测量)-使用 CodeWarrior(可能会下降约 10W)和 -使用 (echo mem > /sys/power /state & echo freeze > /state sys/power/state)(可能会下降约 6W)(但在此之下,由于不存在用户交互,因此不建议将其用于我们的测试), Re: Power down of modules on LX2160 custom board 与内部团队讨论,我们我们已经回答了 您的与配置相关的问题。 在 12V 输入电压下,10 瓦的功耗在我们看来是相当合理的。 我们对于 LX2160A 而言,这是很合理的。 请 请分享您的目标,您的 示意图和配置、日志和应用。我们将检查还能实现哪些功能。
記事全体を表示
当 PN7160 设置为 LPCD 模式时,不能使用 2×2 厘米天线从 LPCD 模式激活它。 使用 “NFC 天线工具”,我们为 PN7160 设计了一个 2 cm × 2 cm 的板载天线,Q 系数为 20,目标阻抗为 11 Ω。由于这是一个小型天线,我们根据 "PN7160 常见问题 [AN13892]"启用了 PN7160 的 DPC。 在这种情况下,如果我们不启用 PN7160 的 LPCD 模式,两台 PN7160 设备可以通过 P2P 进行正常通信。但是,如果我们启用 PN7160 的 LPCD 模式,PN7160 将无法从 LPCD 模式唤醒。不过,使用相同的驱动器,我们可以用 2 厘米 × 4 厘米的天线从 LPCD 模式激活它。 来自 2 厘米 × 2 厘米天线的 LPCD TRACE 信息如下: D (6358097) PN7160_I2C:NCI<< 0x6f 0x13 0x04 0x80 0x83 0x80 0x03 D (6358597) PN7160_I2C:NCI<< 0x6f 0x13 0x04 0x80 0x83 0x80 0x03 D (6359107) PN7160_I2C:NCI<< 0x6f 0x13 0x04 0x80 0x83 0x80 0x03 D (6359617) PN7160_I2C:NCI<< 0x6f 0x13 0x04 0x80 0x83 0x80 0x03 有关天线设计参数,请参阅附件。 并将 CORE_SET_CONFIG_CMD 设置为 : uint8_t NxpNci_CORE_CONF_EXTN[]={0x20, 0x02, 0x6B, 0x05, /* CORE_SET_CONFIG_CMD */ 0xA0, 0x40, 0x01, 0x81、 /* TAG_DETECTOR_CFG */ 0xA0, 0x41, 0x01, 0x10, /* TAG_DETECTOR_THRESHOLD_CFG */ 0xA0, 0x42, 0x01, 0x0F、 /* TAG_DETECTOR_PERIOD_CFG */ 0xA0, 0x43, 0x01, 0x00, /* TAG_DETECTOR_FALLBACK_CNT_CFG */ 0xA0, 0x0B, 0x57, 0xE5, 0x05, 0x90, 0x6E, 0x0F, 0x4E, /* DPC_CONFIG*/ 0x00, 0x40, 0x95, 0xB7, 0xAA, 0x40, 0x9F, 0xA7, 0x99、 0x53, 0x9F, 0x97, 0x99, 0x5D, 0x9F, 0x97, 0x99, 0x5F, 0x9F, 0x97, 0x00, 0x68, 0x9F, 0x07, 0x00, 0x6A, 0x1F, 0x07, 0x00, 0x74, 0x1F, 0x07, 0x00, 0x78, 0x1F, 0x07, 0x00, 0x7F, 0x1F, 0x07, 0x00, 0x81, 0x1F, 0x07, 0x00、 0x8B, 0x1F, 0x04, 0x00, 0x8C, 0x1F, 0x04, 0x00, 0x96, 0x1F, 0x04, 0x00, 0x98, 0x1F, 0x04, 0x00, 0xA1, 0x1F、 0x02、0x00、0xA9、0x1F、0x00、0x00、0xAF、0x1F、0x00、 0x00、0xB8、0x1F、0x00、0x00、0xC2、0x1F、0x00、0x00 }; 这个问题是由天线匹配还是寄存器设置引起的? Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn 您好,感谢您对我们的产品感兴趣。 您的设置有一些局限性,我想谈谈。 尽管可以使用 2x2 厘米的天线,但建议尝试使用尺寸稍大的天线。 我还想澄清一点,NFC 论坛不推荐使用 P2P,我们强烈建议使用 HCE 和读/写模式。 启动器的天线尺寸很可能太小,不会导致目标失调。 您是否尝试过用普通的 PICC(如卡片)唤醒 LPCD 读取器?这样做的结果是什么? 请分享史密斯手推车和原型图,以便进一步审查。 Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn 您能测量天线的阻抗吗? 似乎相对较低。 Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn 非常感谢您的答复,但我现在没有 VNA。如果还是不能解决问题,我就去买一个。您还有其他建议吗? Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn 非常感谢您的回复。 目前,我们使用 P2P 是为了兼容性而做出的妥协。我们重新优化了天线形状和 PCB 布局,但问题依然存在。附件中的第一张图片是天线原理图,其中包含使用 "NFC 天线工具 "生成的参数;第二张图片是 PN7160 及其外围电路的原理图;第三和第四张图片显示了 PCB 布局的顶视图和底视图;第五张图片显示了我们输入 NFC 天线工具的参数。 根据 AN13219(PN7160 天线设计和匹配指南)第 23 页,我们将非对称和对称调谐方案的 Q 值、目标阻抗、fEMC 截止频率和 L0 分别设置为 20、13 Ω、22 MHz 和 20、11 Ω、14.6 MHz。但是,在这两种情况下,LPCD TRACE 的通知信息仍然是: D (564760) PN7160_I2C:NCI<< 0x6f 0x13 0x04 0x80 0x83 0x80 0x03。 无论我们用手指还是金属物体靠近天线,测量结果都不会改变。 Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn 我们还参考了 "PN7160 天线设计与匹配指南",并使用该程序读取了 AGC 值: 无效 Get_AGC(SemaphoreHandle_t Semaphore_PN7160_IRQ) { uint8_t 获取[] ={0x2F, 0x3D, 0x04, 0x02, 0xC8, 0x60, 0x03}; uint8_t 答案[255]; uint16_t 答案大小; 虽然(1)     { printf("\n");   NxpNci_HostTransceive(Semaphore_PN7160_IRQ, 获取, sizeof(获取), 答案, 大小(答案), &答案大小); 如果((答案[0] != 0x4F) ||(答案[1] != 0x3D) ||(答案[3] != 0x00)) { printf("错误,无法获取参数值\n");      } 不然 { printf("\n"); printf("测量的 AGC 值 (LSB)= %.2Xh", 答案[4]); printf("\n"); printf("测量的 AGC 值 (MSB)= %.2Xh", 答案[5]); printf("\n");      }    } }   不过,我们得到的结果很奇怪,它并没有列在 UM11495 号文件的 TEST_ANTENNA_RSP 返回值列表中。我们读取的值是 0x06: (7600) PN7160_I2C:NCI>> 0x2f 0x3d 0x04 0x02 0xc8 0x60 0x03 D (7600) PN7160_I2C:NCI<< 0x4f 0x3d 0x01 0x06 但 UM11495 只提到四种可能的结果: 0x00: STATUS_OK 0x01: 拒绝执行测试(PN7160 处于错误状态) 0x04: STATUS_TEST_EXEC_FAILED 0x09: STATUS_INVALID_PARAM 其他:RFU
記事全体を表示
iMX95:两路视频输入和两路视频输出。 下午好! 我们有一个想使用 iMX95 的项目,但需要两个视频输入和两个视频输出。在输入方面,我们希望使用两个 MIPI-CSI 输入。关于视频输出,我们希望使用两个 LVDS 输出,因为两个 MIPI-CSI 输入无法使用 MIPI-DSI 输出(由于 MIPI-DSI/CSI 组合)。 我们有几个关于 LVDS 输出的问题,因为我们希望一个输出连接到 LCD(480x272),另一个连接到 LVDS 转 HDMI 桥接器。以下是我们目前提出的问题: 1.输出端是否可以像我们描述的那样?也就是说,一个 LVDS 输出端连接 LCD,另一个 LVDS 输出端连接 LVDS 转 HDMI 桥接器。 2.您推荐哪种 LVDS 转 HDMI 桥接器?我们看到的是 IT6263 芯片,对吗?还有其他人吗? 3.我们需要"LVDS 转 HDMI" 桥接器后的 HDMI 输出支持以下格式:720p50/59/60、1080p50/59/60、PAL、NTSC 和 1080i50/59/60。有可能达到 1080p60 吗?通过 iMX95 的 LVDS 和"LVDS 到 HDMI" 桥接器,是否可以支持隔行扫描格式输出? 谢谢, Daniel。 Re: iMX95: Two video inputs and two video outputs. 感谢您的回复! 关于 HDMI 输出的隔行扫描格式支持...如果我们使用 MIPI-DSI 转 HDMI 桥接器,是否会支持隔行扫描格式,还是会出现与使用 LVDS 转 HDMI 桥接器相同的问题? 谢谢, Daniel。 Re: iMX95: Two video inputs and two video outputs. 你好 1.是的,这是可能的。 2。IT6263 是我们的参考设计中唯一经过测试的芯片,其他 LVDS 转 HDMI 芯片应该可以正常工作。 3. i.MX95 最多支持 2 个 1080p60 LVDS Tx(2x 4 通道或 1x 8 通道),电路板支持包不支持隔行格式,应由您自己实现。 顺祝商祺! Re: iMX95: Two video inputs and two video outputs. 你好 由于我们的 BSP 中未实现隔行格式,因此会出现与使用 LVDS 转 HDMI 桥接器一样的问题。 顺祝商祺! Re: iMX95: Two video inputs and two video outputs. 感谢您的回复! 关于 HDMI 输出的隔行扫描格式支持...如果我们使用 MIPI-DSI 转 HDMI 桥接器,是否会支持隔行扫描格式,还是会出现与使用 LVDS 转 HDMI 桥接器相同的问题? 谢谢, Daniel。 Re: iMX95: Two video inputs and two video outputs. 在澄清了有关产出的问题后(非常感谢),我们想澄清有关两项投入的一些要点。 首先,我会解释我们的想法,然后提出问题。我们要使用 iMX95 的两个 MIPI-CSI 输入:一个连接到 TC358743 芯片,另一个连接到 TC358748 芯片。对于这两种输入,我们希望支持以下格式:720p50/59/60、1080p50/59/60、PAL、NTSC 和 1080i50/59/60。 这一设置提出了以下问题: 1.是否可以像我们描述的那样进行输入?也就是说,一个 MIPI-CSI 输入来自 TC358743,另一个 MIPI-CSI 输入来自 TC358748,这两个输入可支持不同的视频格式。 2.有支持这两种芯片的驱动程序吗?TC358743 和 TC358748? 3.MIPI-CSI 输入是否也支持隔行扫描格式 PAL、NTSC 和 1080i50/59/60?如果是这样,如何使用所谓的"虚拟通道" ?文档似乎支持 MIPI-CSI 输入中的隔行扫描("CSI Pixel Formatter (CSI_PIXEL_FORMATTING)" => " 支持 YUV/RGB 数据类型的隔行扫描模式" ),但我们要求确认。 4.由于 TC358743 芯片的 MIPI-CSI 接口对隔行扫描数据的限制,我们无法使用 YUV422。我们正在考虑使用 YUV444 格式,但通过 MIPI-CSI 接口将其作为 RGB 格式发送,然后可能需要更改软件(驱动程序)。这可能吗?软件(驱动程序等)是否已经准备就绪,还是需要我们自己动手? 5.我们希望将两个 MIPI-CSI 接口之一的输入路由到 H264/HEVC 视频编码器,但该编码器需要 YUV420,而 MIPI-CSI 接口是 YUV422(或 YUV444)。根据文档,似乎可以使用"HW" 模块"CSC 从 YUV422/YUV444/RGB 8 位" 。这个 CSC 是 ISI 模块中的那个,还是另一个?是使用 CSC 进行转换,还是必须通过软件将 YUV422/YUV444 转换为 YUV420? 6.继续前面的问题,考虑将视频解码器输出发送到 LVDS,这需要将 YUV420(解码器)转换为 RGB(LVDS)...这种转换(YUV420 到 RGB)是使用硬件模块(也许可以使用显示控制器的"Blit 控制器" )还是必须在软件中完成? 7.说到色彩转换,我们还有一个关于支持和使用 BT601 和 BT709 的问题。它们是否在任何硬件转换中都受支持,还是取决于特定的系数配置或其他因素? 谢谢, Daniel。 Re: iMX95: Two video inputs and two video outputs. 还有一个新问题: 8.我们需要对 MIPI-CSI 接口的通道数进行动态配置。这可能吗? 谢谢你,丹尼尔。 Re: iMX95: Two video inputs and two video outputs. 谢谢! Re: iMX95: Two video inputs and two video outputs. 你好 关于这些有关输入的新问题,我建议创建一个新的社区主题或提交支持票据。 这将有助于使每个主题集中在一个话题上。 顺祝商祺! Re: iMX95: Two video inputs and two video outputs. 谁能帮我回答最后 8 个问题? 非常感谢, Daniel。 Re: iMX95: Two video inputs and two video outputs. 谢谢!你说得对,我会就这些问题开辟一个新的主题。
記事全体を表示
RT1170 USB CDC は、実行されていないコードにブレークポイントを設定しても kStatus_USB_Busy で停止します。 こんにちは、 私は i.MX RT1170 (M7 コア) で以下の作業を行っています: SDKバージョン25.09 FreeRTOS USB CDC (仮想COM) CAN-FDの並列実行 初期化は正常です。 USB 列挙が正常に完了しました。 通常実行中は、CAN-FD と USB 通信は両方とも正常に動作します。 通常の状態でのシステムの動作: CAN-FDはデータを正しく受信します USB CDCはPC(Tera Term)にデータを正常に送信します USB_DeviceCdcAcmSend() は期待通りに動作します USBコールバックが実行され、ビジーフラグが適切にクリアされます 問題: プロジェクトの任意の場所にブレークポイントを配置すると、現在実行されていないコード内であっても (たとえば、初期化後の main() 内や関連のない関数内)、システムは実行を継続しますが、USB CDC は最終的に停止してしまいます。 重要な観察事項: ブレークポイントはヒットしていません。 コードは正常に実行され続けます。 FreeRTOS タスクは実行を継続します。 CAN-FD は正常に動作し続けます。 USB CDC のみが機能を停止します。 この現象が発生すると、次のようになります。 USB_DeviceCdcAcmSend() は kStatus_USB_Busy を返します USB転送コールバックが呼び出されない ビジーフラグが消えない ボードをリセットするまでUSB通信は永久に停止します 実行時に printf() を使用した場合でも、同様の動作が引き起こされることがあります。 構成: #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 2 #USB_DEVICE_INTERRUPT_PRIORITY (6U) を定義します。 USBタスクスタックサイズ: #APP_TASK_STACK_SIZE を 8000L と定義します スタックオーバーフローは発生しません。 システムはクラッシュしません。 USB CDC 通信のみが停止します。 質問: 実行されていないコードにブレークポイントが設定されている場合でも、USB CDC が停止するのはなぜですか? デバッガーは、USB HS タイミングに影響を与えるような方法で M7 コアを一時的に停止しますか? USB 割り込みの遅延サービスにより、CDC ドライバが永続的に kStatus_USB_Busy 状態のままになる可能性はありますか? これは、CPU が停止したときの USB HS コントローラ (EHCI) の予想される動作ですか? 転送の破損を起こさずに RT1170 上の USB CDC をデバッグするための推奨方法は何ですか? どのようなご指導でもいただければ幸いです。 よろしくお願いします。 USB Re: RT1170 USB CDC stuck in kStatus_USB_Busy even when breakpoint is placed in non-executing code こんにちは@Harisha 弊社の製品にご興味をお持ちいただき、またコミュニティをご利用いただき誠にありがとうございます。 問題に関しては、次の調整を試すことをお勧めします。 1:USB がタイムリーな割り込みサービスを確実に受信できるように、USB 割り込み優先度を FreeRTOS が管理できる最高の優先度に設定します。 2:他のモジュール(アプリケーション内の CAN-FD など)の割り込み優先度を下げて、USB プロセッシングが停止しないようにします。 これらの変更を試して、もう一度テストしてください。   よろしくお願いいたします。 メイリュー  
記事全体を表示
How to do DPP test with two 88W8997 and one IW612 What's DPP? DPP:Device Provisioning Protocol It is also called: Wi-Fi Easy Connect. The DUT is a device that needs to join the network. It actively initiates DPP authentication (Initiator + Enrollee), which is configured by CTT1, and finally joins the Wi-Fi network provided by CTT2 (Responder + AP) as a STA. DPP Role introduction: CTT1 (Configurator) Reads DUT's bootstrap key Coordinates DPP Authentication/Configuration Sends Wi‑Fi credentials to the DUT DUT (Initiator + Enrollee + STA) Is the device being provisioned Initiates DPP Authentication toward CTT2 Receives Wi‑Fi credentials from CTT1 Connects as a STA to the AP on CTT2 CTT2 (Responder + AP + Enrollee) Responds to DUT’s DPP Authentication messages Operates as an AP using hostapd The DUT will join this AP after provisioning Below is the process flow: 1.Add a Configurator and generate QR code on CTT1 (configurator). 2.Authenticate the DUT on DUT(STA) 3.Generate the QR Code and get URI on CTT2 4.Enter the QR Code on CTT1 and authenticate 5.Update AP configuration on CTT2 6.The connection between the DUT (STA) and CTT2 (AP) is successful.   Reference: https://docs.nxp.com/bundle/RM00297/page/connectivity-features/topics/wi-fi_easy_connect_dpp.html Wi-Fi Easy Connect Specification   The red fonts in the pdf are commands. The green fonts in the pdf are comments. CTT1:Configurator Typically, it's a mobile phone or PC used to scan QR codes and issue Wi-Fi credentials. IMX93-EVK+IW612 module imx93evk login: root root@imx93evk:~# uname -a Linux imx93evk 6.12.34-lts-next-gbe78e49cb433 #1 SMP PREEMPT Wed Sep  3 05:59:19 UTC 2025 aarch64 GNU/Linux root@imx93evk:~# cat /lib/firmware/nxp/wifi_mod_para.conf SDIW612 = { cfg80211_wext=0xf max_vir_bss=1 cal_data_cfg=none ps_mode=2 auto_ds=2 host_mlme=1 drv_mode=0x17 fw_name=nxp/sduart_nw61x_v1.bin.se } root@imx93evk:~# vi wpa_supplicant.conf root@imx93evk:~# cat wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 update_config=1 dpp_config_processing=2 modprobe moal mod_para=nxp/wifi_mod_para.conf root@imx93evk:~# wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B & [1] 678 root@imx93evk:~# Successfully initialized wpa_supplicant rfkill: Cannot open RFKILL control device [1]+  Done                    wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B root@imx93evk:~# root@imx93evk:~# root@imx93evk:~# wpa_cli wpa_cli v2.11-M005 Copyright (c) 2004-2024, Jouni Malinen and contributors This software may be distributed under the terms of the BSD license. See README for more details. Selected interface 'mlan0' Interactive mode > DPP_CONFIGURATOR_ADD 1 > SET dpp_configurator_params " conf=sta-dpp configurator=1" OK > DPP_BOOTSTRAP_GEN type=qrcode chan=81/1 mac=fc:84:a7:51:87:fc //MAC address of CTT1 itself. 1 > DPP_BOOTSTRAP_GET_URI 1  //Attention here, after this command, will generate a QR code, which will be use on DUT with command:DPP_QR_CODE DPP:C:81/1;M:fc84a75187fc;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgAD/bYibd4JdGvnK1etdgX/z4P+aJE2ztv89Q8xwjmbZNc=;; > DPP_LISTEN 2412 role=configurator OK //Hold on here, and now go to DUT side to authenticate the DUT with above QR Code. After authenticate on DUT, will auto output below logs. <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=0 <3>DPP-TX dst=20:4e:f6:bb:08:d9 freq=2412 type=1 <3>DPP-TX-STATUS dst=20:4e:f6:bb:08:d9 freq=2412 result=SUCCESS <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=2 <3>DPP-AUTH-SUCCESS init=0 pkhash=74a40ec058ac8c7f7acb6589253e76f5d1a9582359353bcd5e6983ee97c3a382 own=1 peer=-1 <3>DPP-CONF-REQ-RX src=20:4e:f6:bb:08:d9 <3>DPP-BAND-SUPPORT 81,82,83,84,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130 <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=11 <3>DPP-CONF-SENT conf_status=0 //Now continue, after you generate the QR Code and get URI on CTT2. Enter the QR Code on CTT1 and authenticate: > DPP_QR_CODE DPP:C:81/1;M:02e93a0db8cd;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgACQOp5kWO1ex4L2U5rRXdS9yPYWA9NdRXTsuT+v5L/jvc=;; 2 //On successfully adding QR Code, a bootstrapping info id is returned as shown 2 in above command and should input in below command DPP_AUTH_INIT > DPP_AUTH_INIT peer=2 conf=ap-dpp configurator=1 OK //Now go to CTT2 to update AP configurations. <3>DPP-TX dst=02:e9:3a:0d:b8:cd freq=2412 type=0 <3>DPP-TX-STATUS dst=02:e9:3a:0d:b8:cd freq=2412 result=SUCCESS <3>DPP-RX src=02:e9:3a:0d:b8:cd freq=2412 type=1 <3>DPP-AUTH-DIRECTION mutual=0 <3>DPP-TX dst=02:e9:3a:0d:b8:cd freq=2412 type=2 <3>DPP-TX-STATUS dst=02:e9:3a:0d:b8:cd freq=2412 result=SUCCESS <3>DPP-AUTH-SUCCESS init=1 pkhash=22233c6d83a272944eeb9788870b0b564b46ba8d48fd80787f5cc22bcec95c87 own=-1 peer=2 <3>DPP-CONF-REQ-RX src=02:e9:3a:0d:b8:cd <3>DPP-RX src=02:e9:3a:0d:b8:cd freq=2412 type=11 <3>DPP-CONF-SENT conf_status=0 > list_networks network id / ssid / bssid / flags > quit root@imx93evk:~# cat /proc/mwlan/adapter0/mlan0/info driver_name = "wlan" driver_version = SDIW612---18.99.3.p26.7-MM6X18540.p7-(FP92) interface_name="mlan0" firmware_major_version=18.99.3 uuid = 1653948cf99e5b2bbe5ad9b851d6151a bss_mode ="Managed" media_state="Disconnected" mac_address="fc:84:a7:51:87:fc" multicast_count="2" essid="" bssid="00:00:00:00:00:00" channel="0" region_code = "00" multicast_address[0]="33:33:00:00:00:01" multicast_address[1]="01:00:5e:00:00:01" num_tx_bytes = 0 num_rx_bytes = 0 num_tx_pkts = 0 num_rx_pkts = 0 num_tx_pkts_dropped = 0 num_rx_pkts_dropped = 0 num_tx_pkts_err = 0 num_rx_pkts_err = 0 carrier off tx queue 0:  stopped tx queue 1:  stopped tx queue 2:  stopped tx queue 3:  stopped === tp_acnt.on:0 drop_point:0 === ====Tx accounting==== [0] Tx packets     : 0 [0] Tx packets last: 0 [0] Tx packets rate: 0 [0] Tx bytes       : 0 [0] Tx bytes last  : 0 [0] Tx bytes rate  : 0Mbps [1] Tx packets     : 0 [1] Tx packets last: 0 [1] Tx packets rate: 0 [1] Tx bytes       : 0 [1] Tx bytes last  : 0 [1] Tx bytes rate  : 0Mbps [2] Tx packets     : 0 [2] Tx packets last: 0 [2] Tx packets rate: 0 [2] Tx bytes       : 0 [2] Tx bytes last  : 0 [2] Tx bytes rate  : 0Mbps [3] Tx packets     : 0 [3] Tx packets last: 0 [3] Tx packets rate: 0 [3] Tx bytes       : 0 [3] Tx bytes last  : 0 [3] Tx bytes rate  : 0Mbps [4] Tx packets     : 0 [4] Tx packets last: 0 [4] Tx packets rate: 0 [4] Tx bytes       : 0 [4] Tx bytes last  : 0 [4] Tx bytes rate  : 0Mbps Tx amsdu cnt            : 0 Tx amsdu cnt last       : 0 Tx amsdu cnt rate       : 0 Tx amsdu pkt cnt        : 0 Tx amsdu pkt cnt last : 0 Tx amsdu pkt cnt rate : 0 Tx intr cnt             : 1 Tx intr last        : 0 Tx intr rate        : 0 Tx pending          : 0 Tx xmit skb realloc : 0 Tx stop queue cnt : 0 ====Rx accounting==== [0] Rx packets     : 0 [0] Rx packets last: 0 [0] Rx packets rate: 0 [0] Rx bytes       : 0 [0] Rx bytes last  : 0 [0] Rx bytes rate  : 0Mbps [1] Rx packets     : 0 [1] Rx packets last: 0 [1] Rx packets rate: 0 [1] Rx bytes       : 0 [1] Rx bytes last  : 0 [1] Rx bytes rate  : 0Mbps [2] Rx packets     : 0 [2] Rx packets last: 0 [2] Rx packets rate: 0 [2] Rx bytes       : 0 [2] Rx bytes last  : 0 [2] Rx bytes rate  : 0Mbps [3] Rx packets     : 0 [3] Rx packets last: 0 [3] Rx packets rate: 0 [3] Rx bytes       : 0 [3] Rx bytes last  : 0 [3] Rx bytes rate  : 0Mbps [4] Rx packets     : 0 [4] Rx packets last: 0 [4] Rx packets rate: 0 [4] Rx bytes       : 0 [4] Rx bytes last  : 0 [4] Rx bytes rate  : 0Mbps Rx amsdu cnt             : 0 Rx amsdu cnt last        : 0 Rx amsdu cnt rate        : 0 Rx amsdu pkt cnt         : 0 Rx amsdu pkt cnt last : 0 Rx amsdu pkt cnt rate : 0 Rx intr cnt      : 7 Rx intr last        : 0 Rx intr rate        : 0 Rx pending          : 0 Rx pause            : 0 Rx rdptr full cnt   : 0 root@imx93evk:~# DUT:Initiator + Enrollee + STA The device you want it to join the network. IMX8MQ-EVK+88W8997 module root@imx8mqevk:~# uname -a Linux imx8mqevk 6.12.49-lts-next-gdf24f9428e38 #1 SMP PREEMPT Fri Nov 21 03:24:46 UTC 2025 aarch64 GNU/Linux root@imx8mqevk:~# cat /lib/firmware/nxp/wifi_mod_para.conf PCIE8997 = {         cfg80211_wext=0xf         max_vir_bss=1         cal_data_cfg=none         ps_mode=1         auto_ds=1         host_mlme=1         fw_name=nxp/pcieuart8997_combo_v4.bin } root@imx8mqevk:~# cat wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 update_config=1 dpp_config_processing=2 root@imx8mqevk:~# modprobe moal mod_para=nxp/wifi_mod_para.conf root@imx8mqevk:~# wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B & [1] 799 root@imx8mqevk:~# Successfully initialized wpa_supplicant rfkill: Cannot open RFKILL control device [1]+  Done                    wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B root@imx8mqevk:~# wpa_cli wpa_cli v2.11-M005 Copyright (c) 2004-2024, Jouni Malinen and contributors This software may be distributed under the terms of the BSD license. See README for more details. Selected interface 'mlan0' Interactive mode > DPP_QR_CODE DPP:C:81/1;M:fc84a75187fc;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgAD/bYibd4JdGvnK1etdgX/z4P+aJE2ztv89Q8xwjmbZNc=;; 1 > DPP_AUTH_INIT peer=1 role=enrollee OK <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=0 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc freq=2412 result=SUCCESS <3>DPP-RX src=fc:84:a7:51:87:fc freq=2412 type=1 <3>DPP-AUTH-DIRECTION mutual=0 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=2 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc freq=2412 result=SUCCESS <3>DPP-AUTH-SUCCESS init=1 pkhash=6785abbd108e5ef6fe780819634ef620fc6eb71715b92b07f393e58af7afa0b6 own=-1 peer=1 <3>GAS-QUERY-START addr=fc:84:a7:51:87:fc dialog_token=199 freq=2412 <3>GAS-QUERY-DONE addr=fc:84:a7:51:87:fc dialog_token=199 freq=2412 status_code=0 result=SUCCESS <3>DPP-CONF-RECEIVED <3>DPP-CONFOBJ-AKM dpp <3>DPP-CONFOBJ-SSID test <3>DPP-CONNECTOR eyJ0eXAiOiJkcHBDb24iLCJraWQiOiJWV0hoQmp0enJVZ0xTSjhpTTJDRmRtNkxPQ0FFWHVCSWJEU3hzMEhaSDhnIiwiYWxnIjoiRVMyNTYifQ.eyJncm91cHMiOlt7Imdyb3VwSWQiOiIqIiwibmV0Um9sZSI6InN0YSJ9XSwibmV0QWNjZXNzS2V5Ijp7Imt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4IjoibjBQbXlSMVhUUE14WUNiM2tqYjF1Yjh3Q055bUUtREFTcE4tZ2I0ZDhDcyIsInkiOiJfbmlkd1V6NkFkM1AySy1RYVJuXzZTem9KYlJWRGt3d0VYeTdZU2JoMDU4In19.kfVVpSaFNaTfoLVE5Yu16bLMfpSlVXGlul07FNwQ7gLPlYOTGS5lbOLwCTkP246kSC1Wn-8MWSUXpxgpSpsX2A <3>DPP-C-SIGN-KEY 3039301306072a8648ce3d020106082a8648ce3d0301070322000226d58dd75a168da8b901b47e01694868af2158d57db2984784349e12768e668b <3>DPP-PP-KEY 3039301306072a8648ce3d020106082a8648ce3d03010703220002a0008bd0723f2723408ef53550f5cbc55785ea625ec5265d81e16c0cd45a5e3a <3>DPP-NET-ACCESS-KEY 30770201010420cedd6e85e66768b1a8e14e2e048fd54b7f09277195c3db3f6b1887e8b449e872a00a06082a8648ce3d030107a144034200049f43e6c91d574cf3316026f79236f5b9bf3008dca613e0c04a937e81be1df02bfe789dc14cfa01ddcfd8af906919ffe92ce825b4550e4c30117cbb6126e1d39f <3>CTRL-EVENT-NETWORK-ADDED 0 <3>DPP-NETWORK-ID 0 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=11 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc freq=2412 result=SUCCESS <3>CTRL-EVENT-SCAN-STARTED <3>CTRL-EVENT-SCAN-RESULTS <3>WPS-AP-AVAILABLE <3>CTRL-EVENT-NETWORK-NOT-FOUND <3>CTRL-EVENT-SCAN-STARTED <3>CTRL-EVENT-SCAN-RESULTS <3>WPS-AP-AVAILABLE <3>CTRL-EVENT-NETWORK-NOT-FOUND <3>CTRL-EVENT-SCAN-STARTED <3>CTRL-EVENT-SCAN-RESULTS <3>WPS-AP-AVAILABLE <3>CTRL-EVENT-NETWORK-NOT-FOUND > DPP_STOP_LISTEN OK //All commands on DUT side finished until here. Now go to CTT2 side to continue, generate the QR Code and get URI on CTT2. <3>CTRL-EVENT-SCAN-RESULTS <3>DPP-TX dst=02:e9:3a:0d:b8:cd freq=2412 type=5 <3>DPP-TX-STATUS dst=02:e9:3a:0d:b8:cd freq=2412 result=SUCCESS <3>DPP-RX src=02:e9:3a:0d:b8:cd freq=2412 type=6 <3>PMKSA-CACHE-ADDED 02:e9:3a:0d:b8:cd 0 <3>DPP-INTRO peer=02:e9:3a:0d:b8:cd status=0 version=2 <3>SME: Trying to authenticate with 02:e9:3a:0d:b8:cd (SSID='test' freq=2412 MHz) <3>Trying to associate with 02:e9:3a:0d:b8:cd (SSID='test' freq=2412 MHz) <3>Associated with 02:e9:3a:0d:b8:cd <3>CTRL-EVENT-SUBNET-STATUS-UPDATE status=0 <3>EAPOL-RX 02:e9:3a:0d:b8:cd 99 <3>EAPOL-RX 02:e9:3a:0d:b8:cd 195 <3>WPA: Key negotiation completed with 02:e9:3a:0d:b8:cd [PTK=CCMP GTK=CCMP] <3>CTRL-EVENT-CONNECTED - Connection to 02:e9:3a:0d:b8:cd completed [id=0 id_str=] > list_networks network id / ssid / bssid / flags 0       test    any     [CURRENT] > quit root@imx8mqevk:~# cat /proc/mwlan/adapter0/mlan0/info driver_name = "wlan" driver_version = PCIE8997--16.92.21.p153.7-MM6X16540.p33-GPL-(FP92) interface_name="mlan0" firmware_major_version=16.92.21 bss_mode ="Managed" media_state="Connected" mac_address="20:4e:f6:bb:08:d9" multicast_count="4" essid="test" bssid="02:e9:3a:0d:b8:cd" channel="1" region_code = "00" multicast_address[0]="33:33:00:00:00:01" multicast_address[1]="01:00:5e:00:00:01" multicast_address[2]="33:33:ff:bb:08:d9" multicast_address[3]="33:33:00:00:00:fb" num_tx_bytes = 2458 num_rx_bytes = 350 num_tx_pkts = 19 num_rx_pkts = 3 num_tx_pkts_dropped = 0 num_rx_pkts_dropped = 0 num_tx_pkts_err = 0 num_rx_pkts_err = 0 carrier on tx queue 0:  started tx queue 1:  started tx queue 2:  started tx queue 3:  started === tp_acnt.on:0 drop_point:0 === ====Tx accounting==== [0] Tx packets     : 0 [0] Tx packets last: 0 [0] Tx packets rate: 0 [0] Tx bytes       : 0 [0] Tx bytes last  : 0 [0] Tx bytes rate  : 0Mbps [1] Tx packets     : 0 [1] Tx packets last: 0 [1] Tx packets rate: 0 [1] Tx bytes       : 0 [1] Tx bytes last  : 0 [1] Tx bytes rate  : 0Mbps [2] Tx packets     : 0 [2] Tx packets last: 0 [2] Tx packets rate: 0 [2] Tx bytes       : 0 [2] Tx bytes last  : 0 [2] Tx bytes rate  : 0Mbps [3] Tx packets     : 0 [3] Tx packets last: 0 [3] Tx packets rate: 0 [3] Tx bytes       : 0 [3] Tx bytes last  : 0 [3] Tx bytes rate  : 0Mbps [4] Tx packets     : 0 [4] Tx packets last: 0 [4] Tx packets rate: 0 [4] Tx bytes       : 0 [4] Tx bytes last  : 0 [4] Tx bytes rate  : 0Mbps Tx amsdu cnt            : 0 Tx amsdu cnt last       : 0 Tx amsdu cnt rate       : 0 Tx amsdu pkt cnt        : 0 Tx amsdu pkt cnt last : 0 Tx amsdu pkt cnt rate : 0 Tx intr cnt             : 18 Tx intr last        : 0 Tx intr rate        : 0 Tx pending          : 0 Tx xmit skb realloc : 19 Tx stop queue cnt : 0 ====Rx accounting==== [0] Rx packets     : 0 [0] Rx packets last: 0 [0] Rx packets rate: 0 [0] Rx bytes       : 0 [0] Rx bytes last  : 0 [0] Rx bytes rate  : 0Mbps [1] Rx packets     : 0 [1] Rx packets last: 0 [1] Rx packets rate: 0 [1] Rx bytes       : 0 [1] Rx bytes last  : 0 [1] Rx bytes rate  : 0Mbps [2] Rx packets     : 0 [2] Rx packets last: 0 [2] Rx packets rate: 0 [2] Rx bytes       : 0 [2] Rx bytes last  : 0 [2] Rx bytes rate  : 0Mbps [3] Rx packets     : 0 [3] Rx packets last: 0 [3] Rx packets rate: 0 [3] Rx bytes       : 0 [3] Rx bytes last  : 0 [3] Rx bytes rate  : 0Mbps [4] Rx packets     : 0 [4] Rx packets last: 0 [4] Rx packets rate: 0 [4] Rx bytes       : 0 [4] Rx bytes last  : 0 [4] Rx bytes rate  : 0Mbps Rx amsdu cnt             : 0 Rx amsdu cnt last        : 0 Rx amsdu cnt rate        : 0 Rx amsdu pkt cnt         : 0 Rx amsdu pkt cnt last : 0 Rx amsdu pkt cnt rate : 0 Rx intr cnt      : 67 Rx intr last        : 0 Rx intr rate        : 0 Rx pending          : 0 Rx pause            : 0 Rx rdptr full cnt   : 0 root@imx8mqevk:~# CTT2 (AP):Responder + AP + Enrollee IMX8MPlus EVK + 88W8997 module root@imx8mpevk:~# uname -a Linux imx8mpevk 6.12.49-lts-next-gdf24f9428e38 #1 SMP PREEMPT Fri Nov 21 03:24:46 UTC 2025 aarch64 GNU/Linux root@imx8mpevk:~# cat /lib/firmware/nxp/wifi_mod_para.conf PCIE8997 = {         cfg80211_wext=0xf         max_vir_bss=1         cal_data_cfg=none         ps_mode=1         auto_ds=1         host_mlme=1         fw_name=nxp/pcieuart8997_combo_v4.bin } root@imx8mpevk:~# hostapd hostapd.conf -B & [1] 1731 root@imx8mpevk:~# HT (IEEE 802.11n) with WPA/WPA2 requires CCMP/GCMP to be enabled, disabling HT capabilities rfkill: Cannot open RFKILL control device uap0: interface state UNINITIALIZED->ENABLED uap0: AP-ENABLED [1]+  Done                    hostapd hostapd.conf -B root@imx8mpevk:~# hostapd_cli hostapd_cli v2.11-M005 Copyright (c) 2004-2024, Jouni Malinen and contributors This software may be distributed under the terms of the BSD license. See README for more details. Selected interface 'uap0' Interactive mode > DPP_BOOTSTRAP_GEN type=qrcode chan=81/1 mac=02:e9:3a:0d:b8:cd //MAC address of CTT2 itself and returned 1 is bootstrap info id which require to get QR code in below command. 1> DPP_BOOTSTRAP_GET_URI 1 //Attention here, after this command, will generate a QR code, which will be use on CTT1 with command:DPP_QR_CODE. Then directly go to CTT1 to enter the QR Code. DPP:C:81/1;M:02e93a0db8cd;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgACQOp5kWO1ex4L2U5rRXdS9yPYWA9NdRXTsuT+v5L/jvc=;;> //Hold on here, and now go to CTT1 to authenticate this AP with above QR Code. After authenticate on CTT1 with QR Code, will auto output below logs. Pay attention on the keys and connectors info, will use them later when you update the AP. > <3>DPP-RX src=fc:84:a7:51:87:fc freq=2412 type=0 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=1 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc result=SUCCESS <3>DPP-RX src=fc:84:a7:51:87:fc freq=2412 type=2 <3>DPP-AUTH-SUCCESS init=0 pkhash=8b3e0f88b70610446a84f53ea9d792f5631b2b87e30cd219a8059c6f7893c501 own=1 peer=-1 <3>GAS-QUERY-START addr=fc:84:a7:51:87:fc dialog_token=0 freq=2412 <3>GAS-QUERY-DONE addr=fc:84:a7:51:87:fc dialog_token=0 freq=2412 status_code=0 result=SUCCESS <3>DPP-CONF-RECEIVED <3>DPP-CONFOBJ-AKM dpp <3>DPP-CONFOBJ-SSID test <3>DPP-CONNECTOR eyJ0eXAiOiJkcHBDb24iLCJraWQiOiJWV0hoQmp0enJVZ0xTSjhpTTJDRmRtNkxPQ0FFWHVCSWJEU3hzMEhaSDhnIiwiYWxnIjoiRVMyNTYifQ.eyJncm91cHMiOlt7Imdyb3VwSWQiOiIqIiwibmV0Um9sZSI6ImFwIn1dLCJuZXRBY2Nlc3NLZXkiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJEbVRmSVFTRFNPVXVkVFBkN0pobEQtQ2xOa0U3U2lEWmctLWpYeGdNRXRJIiwieSI6Iml2NlVCc1J0YXhGSEpzcEtPbWFQSktqUmNDTFV5REh6WHFFeWtLbkhsOGcifX0.vEzfQywitO8AMvmcXenL_qidmkNl7t_jen2YW9OV8M5OID9jmTu-GqVUUkMEQE7R7Ja5vGnOMQ2-x-h7qyRKIQ <3>DPP-C-SIGN-KEY 3039301306072a8648ce3d020106082a8648ce3d0301070322000226d58dd75a168da8b901b47e01694868af2158d57db2984784349e12768e668b <3>DPP-NET-ACCESS-KEY 307702010104200be4b069c34a39d844fca856dd1e583a729e74f394370a4da8bc7d68d0dfadc2a00a06082a8648ce3d030107a144034200040e64df21048348e52e7533ddec98650fe0a536413b4a20d983efa35f180c12d28afe9406c46d6b114726ca4a3a668f24a8d17022d4c831f35ea13290a9c797c8 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=11 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc result=SUCCESS //Now update AP configurations on CTT2: //First disable AP: > disable <3>AP-DISABLED OK //Update AP parameters: > set ssid test OK > set wpa 2 OK > set wpa_key_mgmt DPP OK > set ieee80211w 2 OK > set rsn_pairwise CCMP OK > set dpp_connector eyJ0eXAiOiJkcHBDb24iLCJraWQiOiJWV0hoQmp0enJVZ0xTSjhpTTJDRmRtNkxPQ0FFWHVCSWJEU3hzMEhaSDhnIiwiYWxnIjoiRVMyNTYifQ.eyJncm91cHMiOlt7Imdyb3VwSWQiOiIqIiwibmV0Um9sZSI6ImFwIn1dLCJuZXRBY2Nlc3NLZXkiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJEbVRmSVFTRFNPVXVkVFBkN0pobEQtQ2xOa0U3U2lEWmctLWpYeGdNRXRJIiwieSI6Iml2NlVCc1J0YXhGSEpzcEtPbWFQSktqUmNDTFV5REh6WHFFeWtLbkhsOGcifX0.vEzfQywitO8AMvmcXenL_qidmkNl7t_jen2YW9OV8M5OID9jmTu-GqVUUkMEQE7R7Ja5vGnOMQ2-x-h7qyRKIQ OK > set dpp_csign 3039301306072a8648ce3d020106082a8648ce3d0301070322000226d58dd75a168da8b901b47e01694868af2158d57db2984784349e12768e668b OK > set dpp_netaccesskey 307702010104200be4b069c34a39d844fca856dd1e583a729e74f394370a4da8bc7d68d0dfadc2a00a06082a8648ce3d030107a144034200040e64df21048348e52e7533ddec98650fe0a536413b4a20d983efa35f180c12d28afe9406c46d6b114726ca4a3a668f24a8d17022d4c831f35ea13290a9c797c8 OK //Re-enable the AP after updates: > enable <3>AP-ENABLED OK //just wait here, it will output below logs after some seconds. > <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=5 <3>DPP-TX dst=20:4e:f6:bb:08:d9 freq=2412 type=6 status=0 <3>DPP-TX-STATUS dst=20:4e:f6:bb:08:d9 result=SUCCESS <3>AP-STA-CONNECTED 20:4e:f6:bb:08:d9 dpp_pkhash=74a40ec058ac8c7f7acb6589253e76f5d1a9582359353bcd5e6983ee97c3a382 <3>EAPOL-4WAY-HS-COMPLETED 20:4e:f6:bb:08:d9 > quit > root@imx8mpevk:~# cat /proc/mwlan/adapter0/uap0/info driver_name = "uap" driver_version = PCIE8997--w8997o-V4, RF878X, FP92, 16.92.21.p153.7-MM6X16540.p33-GPL-(FP92) interface_name="uap0" firmware_major_version=16.92.21 media_state="Connected" mac_address="02:e9:3a:0d:b8:cd" num_tx_bytes = 462 num_rx_bytes = 2248 num_tx_pkts = 4 num_rx_pkts = 20 num_tx_pkts_dropped = 0 num_rx_pkts_dropped = 0 num_tx_pkts_err = 60 num_rx_pkts_err = 0 carrier on tx queue 0:  started tx queue 1:  started tx queue 2:  started tx queue 3:  started tkip_mic_failures = 0 ccmp_decrypt_errors = 0 wep_undecryptable_count = 0 wep_icv_error_count = 0 decrypt_failure_count = 0 mcast_tx_count = 20 failed_count = 3 retry_count = 0 multiple_retry_count = 0 frame_duplicate_count = 0 rts_success_count = 0 rts_failure_count = 0 ack_failure_count = 30 rx_fragment_count = 55 mcast_rx_frame_count = 18 fcs_error_count = 401368 tx_frame_count = 22 rsna_tkip_cm_invoked = 0 rsna_4way_hshk_failures = 0 === tp_acnt.on:0 drop_point:0 === ====Tx accounting==== [0] Tx packets     : 0 [0] Tx packets last: 0 [0] Tx packets rate: 0 [0] Tx bytes       : 0 [0] Tx bytes last  : 0 [0] Tx bytes rate  : 0Mbps [1] Tx packets     : 0 [1] Tx packets last: 0 [1] Tx packets rate: 0 [1] Tx bytes       : 0 [1] Tx bytes last  : 0 [1] Tx bytes rate  : 0Mbps [2] Tx packets     : 0 [2] Tx packets last: 0 [2] Tx packets rate: 0 [2] Tx bytes       : 0 [2] Tx bytes last  : 0 [2] Tx bytes rate  : 0Mbps [3] Tx packets     : 0 [3] Tx packets last: 0 [3] Tx packets rate: 0 [3] Tx bytes       : 0 [3] Tx bytes last  : 0 [3] Tx bytes rate  : 0Mbps [4] Tx packets     : 0 [4] Tx packets last: 0 [4] Tx packets rate: 0 [4] Tx bytes       : 0 [4] Tx bytes last  : 0 [4] Tx bytes rate  : 0Mbps Tx amsdu cnt            : 0 Tx amsdu cnt last       : 0 Tx amsdu cnt rate       : 0 Tx amsdu pkt cnt        : 0 Tx amsdu pkt cnt last : 0 Tx amsdu pkt cnt rate : 0 Tx intr cnt             : 22 Tx intr last        : 0 Tx intr rate        : 0 Tx pending          : 0 Tx xmit skb realloc : 64 Tx stop queue cnt : 0 ====Rx accounting==== [0] Rx packets     : 0 [0] Rx packets last: 0 [0] Rx packets rate: 0 [0] Rx bytes       : 0 [0] Rx bytes last  : 0 [0] Rx bytes rate  : 0Mbps [1] Rx packets     : 0 [1] Rx packets last: 0 [1] Rx packets rate: 0 [1] Rx bytes       : 0 [1] Rx bytes last  : 0 [1] Rx bytes rate  : 0Mbps [2] Rx packets     : 0 [2] Rx packets last: 0 [2] Rx packets rate: 0 [2] Rx bytes       : 0 [2] Rx bytes last  : 0 [2] Rx bytes rate  : 0Mbps [3] Rx packets     : 0 [3] Rx packets last: 0 [3] Rx packets rate: 0 [3] Rx bytes       : 0 [3] Rx bytes last  : 0 [3] Rx bytes rate  : 0Mbps [4] Rx packets     : 0 [4] Rx packets last: 0 [4] Rx packets rate: 0 [4] Rx bytes       : 0 [4] Rx bytes last  : 0 [4] Rx bytes rate  : 0Mbps Rx amsdu cnt             : 0 Rx amsdu cnt last        : 0 Rx amsdu cnt rate        : 0 Rx amsdu pkt cnt         : 0 Rx amsdu pkt cnt last : 0 Rx amsdu pkt cnt rate : 0 Rx intr cnt      : 28229 Rx intr last        : 0 Rx intr rate        : 0 Rx pending          : 0 Rx pause            : 0 Rx rdptr full cnt   : 0 root@imx8mpevk:~#
記事全体を表示
PFE MCAL driver receiver processing may have reentrancy issue Hi Team From PFE MCAL driver 1.6.0, the receiver processing may have reentrancy issue. The call relationship of function pfe_hif_drv_process_rx_frames() is shown as the following figure.  The _Receive, TxConfirmation and MainFunction will call pfe_hif_drv_process_rx_frames when driver works in polling mode. If the callers are in different tasks, pfe_hif_drv_process_rx_frames has a risk of reentrancy. Should we add exclusive protection for pfe_hif_drv_process_rx_frames ? Regards, Ryder PFE PFE MCAL Re: PFE MCAL driver receiver processing may have reentrancy issue Hello @Ryder_Gong, The PFE team has picked up the case, also who is the customer that reported this? Best regards,  Radu Re: PFE MCAL driver receiver processing may have reentrancy issue Hi, The original issue is from Mobileye, actually software team has involved by a debug call. Re: PFE MCAL driver receiver processing may have reentrancy issue Hello Ryder.  Thank you for finding the race condition. It was confirmed as cause of the "Rx stops working" issue and bug ticket ANET-1032 was created to fix it. It will be fixed by adding an exclusive area protection as you have proposed. The bug affects all versions of the PFE MCAL driver, in polling mode, and it will be fixed in version 1.8.0.
記事全体を表示
Cortex-M33 上的 i.mx93 LPSPI + eDMA 问题 我使用的是 Tria i.MX9332(B1 硅)SMARC 模块,并尝试在 Cortex-M33 上使用带有 eDMA 的 LPSPI6,但无法正常工作。 开发环境 VS 代码 1.109.0 用于 VS 代码扩展的 MCUXpresso 26.1.56 SDK 25.09.00 硬件 在定制载板上试用 SM2S-IMX93 通过 SPI(LPSPI6)连接带有ILI9341控制器的 LCD 现状 使用不带 DMA 的 LPSPI6 时,显示正常。 我试图切换到LPSPI6 + eDMA以提高吞吐量,但无法收到完成通知。 问题 基于 DMA 的传输似乎开始了,但我从未在传输结束时收到 LPSPI DMA 完成回调。 详细信息和相关代码/配置见附件。 有人能指出我可能遗漏了什么,或者为什么没有触发信号吗? Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 感谢您提供的示例代码。回顾范例让我明白了这一点。 Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 你好@albi84 请参考附件中的补丁文件配置 LPDPI 与 EDMA B.R Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 你好 能否请您分享带有 eDMA 的 LPSPI 的骨架? 谢谢。 Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 这不是一个骨架,而是我使用的实际代码。这有帮助吗?
記事全体を表示
DDR4 calibration issues on LS1046 custom board Good day! We are trying to bring up our custom LS1046-based board up and stucked with DDR4 calibration procedure. SPD data of the modules is red successfully, calibration process starts successfully too, but after that it fails with this reason(log from CodeWarrior 😞  ############################### Run 1 Result for: wrlvl_searcher  ###################################### Test result: [ ============================================================ Updated: WRLVL_CNTL = 0x8655F605, WRLVL_CNTL_2 = 0x00000000, WRLVL_CNTL_3 = 0x00000000, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F60A, WRLVL_CNTL_2 = 0x0B0B0C0F, WRLVL_CNTL_3 = 0x0F10110D, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F60A, WRLVL_CNTL_2 = 0x0B0B0C0F, WRLVL_CNTL_3 = 0x0F101115, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F60A, WRLVL_CNTL_2 = 0x0B0B0C0F, WRLVL_CNTL_3 = 0x0F10111D, SDRAM_CLK_CNTL = 0x02800000 Write Leveling start values are correct and require no further modification, but the test failed due to other issues. Most common failure causes: -incorrect values configured in DDR4 DQn_MAP registers -incorrect ODT values -incorrect driver strength selected -incorrect timing values selected for Timing Configuration 0 properties (TIMING_CFG_0 register) < > {{Write Leveling start values are correct and require no further modification, but the test failed due to other issues.}} Err. capture registers: 0xE20, 0xDEADBEEF 0xE24, 0xDEADBEEF 0xE28, 0x00000000 0xE40, 0x00000000 0xE44, 0x00000000 0xE48, 0x0000001D 0xE4C, 0x60FF2001 0xE50, 0x00001FC0 0xE54, 0x00000000 0xE58, 0x00010000  ############################################ DQ mapping seems to be OK - we have 1:1 mapping from CPU to DDR slot, so we use DQ mappings from DDR module SPD without changing. What can be the problem?  Re: DDR4 calibration issues on LS1046 custom board Is there available RCW on the customer board? Has the ASLEEP led turned on and off? What's the frequency of the DDR clock? Thanks Re: DDR4 calibration issues on LS1046 custom board DDR calibration is performed using a hardcoded RCW. System clock - 100 MHz  DDR bus clock - 800 MHz, DDR data rate - 1600 mt/s Memory module - non-ECC. One interesting thing - from timer to time the 1 st stage of calibration (wrtlvl search) is successfully passed. For example: Test result: [ ================================================= Updated: WRLVL_CNTL = 0x8655F605, WRLVL_CNTL_2 = 0x00000000, WRLVL_CNTL_3 = 0x00000000, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F609, WRLVL_CNTL_2 = 0x0A0B0C0E, WRLVL_CNTL_3 = 0x0F10110D, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F609, WRLVL_CNTL_2 = 0x0A0B0C0E, WRLVL_CNTL_3 = 0x0F101115, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F609, WRLVL_CNTL_2 = 0x0A0B0C0F, WRLVL_CNTL_3 = 0x0F10111D, SDRAM_CLK_CNTL = 0x02800000 < > Err.capture registers: 0xE20, 0x00000000 0xE24, 0x00000000 0xE28,0x00000000 0xE40,0x00000000 0xE44,0x00000000 0xE48, 0x0000001D 0xE4C, 0x00000000 0xE50,0x00000000 0xE54,0x00000000 0xE58, 0x00010000 Dump: 0xF00,0x00000000 0xF04, 0x00000002 0xF08, 0x0000000F 0xF0C,0x14000C20 0xF10, 0x00000000 0xF14, 0x00000000 0xF18, 0x00000000 0xF1C, 0x00000000 0xF20, 0x00000000 0xF24, 0x2F003000 0xF28, 0x32003400 0xF2C, 0x39003B00 0xF30, 0x3C003E00 0xF34, 0x00005000 0xF38, 0x00000000 0xF3C, 0x00000000 0xF40, 0x00000000 0xF44, 0x00000000 0xF48, 0x00000001 0xF4C, 0xD4000000 0xF50, 0x13001500 0xF54, 0x17001900 0xF58, 0x1D001F00 0xF5C, 0x21002200 0xF60, 0x3A000000 0xF64, 0x00009000 0xF68, 0x00000020 0xF6C, 0x00000000 0xF70, 0x0070006F 0xF74, 0x00000000 0xF78, 0x00000000 0xF7C, 0x00000000 0xF80, 0x00000000 0xF84, 0x00000000 0xF88, 0x00000000 0xF8C, 0x00000000 0xF90, 0x00000000 0xF94, 0x80000000 0xF98, 0x00000000 0xF9C, 0x34043104 0xFA0, 0x35043304 0xFA4, 0x31043304 0xFA8, 0x2F043104 0xFAC, 0x04040000 0xFB0, 0x00000003 0xFB4, 0x1F1E1F21 0xFB8, 0x1E1C1F1D 0xFBC, 0x1F1B1D1E 0xFC0, 0x1C1B1C1C 0xFC4, 0x1F1E1F22 0xFC8, 0x1F1F2120 0xFCC, 0x1F1E1F20 0xFD0, 0x1C1D201F 0xFD4, 0x1F1B1B1E 0xFD8, 0x1F1D1E1C 0xFDC, 0x1F1F1D1F 0xFE0, 0x1F1D1E1C 0xFE4, 0x1F1C191A 0xFE8, 0x1C1D1C1A 0xFEC, 0x1F1E1C1E 0xFF0, 0x1E1F1E1A 0xFF4, 0x1F1F1F1F 0xFF8, 0x1F1F1F1F 0xFFC, 0x1F000000 Data: 0x00000009 0x0000000a 0x0000000b 0x0000000c 0x0000000f 0x0000000f 0x00000010 0x00000011 0x0000001d   Just after that I start calibration process again(without any changes in settings) and get a fail: ########## Result for: wrlvl_searcher ######  Test result: [ Updated: WRLVL_CNTL = 0x8655F605, WRLVL_CNTL_2 = 0x00000000, WRLVL_CNTL_3 = 0x00000000, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F609, WRLVL_CNTL_2 = 0x0A0B0C0E, WRLVL_CNTL_3 = 0x0F10110D, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F609, WRLVL_CNTL_2 = 0x0A0B0C0E, WRLVL_CNTL_3 = 0x0F101115, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F609, WRLVL_CNTL_2 = 0x0A0B0C0E, WRLVL_CNTL_3 = 0x0F10111D, SDRAM_CLK_CNTL = 0x02800000 Write Leveling start values are correct and require no further modification, but the test failed due to other issues. Most common failure causes:   - incorrect values configured in DDR4 DQn_MAP registers  - incorrect ODT values  - incorrect driver strength selected  - incorrect timing values selected for Timing Configuration 0 properties (TIMING_CFG_0 register) < > {{Write Leveling start values are correct and require no further modification, but the test failed due to other issues.}} Err. capture registers: 0xE20, 0xDEADBEEF     0xE24, 0xDEADBEEF     0xE28, 0x00000000     0xE40, 0x00000000      0xE44, 0x00000000     0xE48, 0x0000001D     0xE4C, 0x60FF2001     0xE50, 0x00001FC0      0xE54, 0x00000000     0xE58, 0x00010000      Dump: 0xF00, 0x00000000     0xF04, 0x00000002     0xF08, 0x0000000E     0xF0C, 0x14000C20      0xF10, 0x00000000     0xF14, 0x00000000     0xF18, 0x00000000     0xF1C, 0x00000000      0xF20, 0x00000000     0xF24, 0x2F003100     0xF28, 0x33003400     0xF2C, 0x3A003A00      0xF30, 0x3C003E00     0xF34, 0x00005000     0xF38, 0x00000000     0xF3C, 0x00000000      0xF40, 0x00000000     0xF44, 0x00000000     0xF48, 0x00000001     0xF4C, 0xD4000000      0xF50, 0x13001500     0xF54, 0x17001900     0xF58, 0x1D001F00     0xF5C, 0x21002200      0xF60, 0x3A000000     0xF64, 0x00009000     0xF68, 0x00000020     0xF6C, 0x00000000      0xF70, 0x0070006F     0xF74, 0x00000000     0xF78, 0x00000000     0xF7C, 0x00000000      0xF80, 0x00000000     0xF84, 0x00000000     0xF88, 0x00000000     0xF8C, 0x00000000      0xF90, 0x00000000     0xF94, 0x80000000     0xF98, 0x00000000     0xF9C, 0x31022F02      0xFA0, 0x33023102     0xFA4, 0x30023102     0xFA8, 0x2E022F02     0xFAC, 0x02020000      0xFB0, 0x10000003     0xFB4, 0x46444650     0xFB8, 0x45445142     0xFBC, 0x51445052      0xFC0, 0x46454544     0xFC4, 0x45434651     0xFC8, 0x44455045     0xFCC, 0x46455051      0xFD0, 0x45455146     0xFD4, 0x52505052     0xFD8, 0x52505246     0xFDC, 0x50464546      0xFE0, 0x51465042     0xFE4, 0x53464650     0xFE8, 0x52515145     0xFEC, 0x50454546      0xFF0, 0x45505142     0xFF4, 0x46464646     0xFF8, 0x52515350     0xFFC, 0x00000000        Data:  0x00000009 0x0000000a 0x0000000b 0x0000000c 0x0000000e 0x0000000f 0x00000010 0x00000011 0x00000025  ######################################################## Also I' ve noticed that Lane 8 is probed during calibration process, despite to that fact that ddr module is non-ecc and ecc is disabled in project settings.   Re: DDR4 calibration issues on LS1046 custom board 1.The QCVS does not support hardcoded RCW official, valid RCW has to be presented in the RCW source flash or SD card. Would you kindly program the RCW into the flash first, and then do the QCVS DDR validation. 2.Run the command below in the CCS: (bin) 42 % delete all (bin) 43 % config cc cwtap (bin) 44 % show cc (bin) 45 % ccs::config_chain {ls1043a dap sap2} (bin) 46 % display ::ccs::get_config_chain (bin) 47 % ccs::reset_to_debug Send the logs to me. 3.would you kindly share the schematics and confirm the layout follow the AN5097, Hardware and Layout Design Considerations for DDR4 SDRAM Memory Interfaces Thanks Re: DDR4 calibration issues on LS1046 custom board The problem was solved by updating to new version of QCVS(4.27.0)
記事全体を表示
RDB3 Linux 以太网配置 本文档为在恩智浦 S32G-VNP-RDB3 开发板上配置和测试网络连接提供了实用指南。它概述了准备硬件和软件环境、设置网络参数以及验证主板与主机系统之间通信的基本步骤。该指南还解释了板网络架构的关键方面,并提供了在 Linux 和 U-Boot 级别调整配置的说明。其目的是为从事汽车网络应用以太网支持和验证的工程师提供参考。 本文档是对之前的 S32G-VNP-RDB2 参考设计以太网支持指南的更新,其中纳入了特定于 RDB3 平台和更新 电路板支持包 版本的更改和注意事项。 S32G
記事全体を表示
在线纠错码:它的作用以及如何实现 在线纠错码 (Inline ECC) 是一种能够实时检测并纠正内存或存储设备中发生的位错误的机制。在i.MX 8M Plus等 DDR 控制器上启用在线纠错码功能会降低 DDR 访问性能,但由于 ECC 区域仅占用大约八分之一的 DDR 容量,因此无需额外添加专用内存来存储 ECC 码(从而降低了物料清单成本)。 本文解释了内联 ECC 的功能,并介绍了如何实现它。   1. i.MX 8M Plus 在线 ECC 功能   i.MX 8M Plus DDR 控制器支持在线 ECC,可保护系统免受软错误(例如由 α 射线、中子等引起的 DRAM 位翻转)的影响。它为每 64 位数据存储 8 位 ECC(纠错码),从而能够纠正单比特错误并检测双比特错误。 由于没有专门用于存储 ECC 的内存,因此大约 1/8 的 DDR 容量被用作 ECC 区域。 由于 32 位数据总线在数据和 ECC 之间共享,启用内联 ECC 功能会降低 DDR 访问性能。   1.1.单比特纠错 (SEC) SEC 是 DDR 控制器的一项功能,用于检测单比特错误并将其纠正为正确的值。 图1 SEC示意图   1.2.双比特错误检测 (DED) DED 是 DDR 控制器的一项功能,用于检测双比特错误。 图2 DED概念图 笔记: 实际上,SEC 和 DED 是在 64 字节对齐的数据区(加上 8 字节的 ECC)中检测的,而不是在 8 字节中检测的。   2.内联 ECC 内存映射(概要)   根据 DDR 容量的不同,设置内联 ECC 内存映射的方法也会有所不同。   2.1.DDR密度是2的幂(二进制对齐密度) 例如,对于 1、2、4、8、16GB 的情况, DDR的低地址7/8用作数据区,高地址1/8用作ECC区。ECC区通常不可访问。 数据区域最多分为八个区域:区域 0 至 6 和其他区域。每个区域都可以启用或禁用 ECC 功能。 区域 0 至 6 的容量相同,分别设置为 DDR 容量的 1/8、1/16、1/32 或 1/64。其余区域均为其他区域。 以下是当区域 0 到 6 的容量设置为 1/8 时的内存映射。在这种情况下,没有其他区域。 图 3内存映射示例 (1/8) 下面显示的是当区域 0 到 6 的容量设置为 1/16 时的内存映射。 图 4内存映射示例 (1/16) 2.2.非 2 的幂次方的 DDR 密度(非二进制对齐密度) 例如,对于 3、6 或 12 GB 的情况(i.MX 8M Plus LPDDR4 EVK 为 6 GB,因此这适用于这种情况)。 将整个 DDR 分成三份,每份的容量是 2 的幂。 3GB内存,1GB x 3 6GB内存,2GB x 3 12GB版本,4GB x 3 对于分为三部分的低地址区域,进行如下设置:2.1. 当 DDR 容量为 2 的幂时。 三段式地址划分中,上两个地址区域的设置与下地址区域的设置相同。 下面显示的是设置为 1/8 时的内存映射。 图 5 DDR 容量不是 2 的幂(1/8)时的内存映射示例 3.使用 DDR 寄存器编程辅助工具进行设置   使用DDR 寄存器编程辅助工具(DDR RPA) 配置内联 ECC。 笔记: 请准备一个 DDR RPA,该 RPA 可以运行禁用内联 ECC 的 DDR 压力测试(并且还可以验证其是否可以运行 u-boot)。 由于存在漏洞,i.MX8MP LPDDR4/DDR4 RPA v6 或更早版本无法正常工作内联 ECC。请使用 v7 或更高版本。除非有特殊情况,否则请使用最新版本的 DDR RPA。(截至 2024 年 9 月,最新版本为 v9。) Linux BSP 的 U-Boot 中包含的 i.MX 8M Plus EVK 的lpddr4_timing.c 文件。以及ddr4_timing.c虽然乍一看似乎可以正常工作,因为它包含了定义 CONFIG_IMX8M_DRAM_INLINE_ECC ,但内联 ECC 设置存在问题,无法正常工作。即使您使用的是 EVK 进行测试,也请使用 DDR RPA 和 DDR Tool 生成 lpddr4_timing.c/ddr4_timing.c 文件。 3.1.启用在线 ECC 在 DDR RPA 寄存器配置表中,将内联 ECC 项设置为启用。   3.2.内存映射   3.2.1.DDR密度是2的幂(二进制对齐密度) 如果 DDR 容量是 2 的幂,请使用 ECC_Config_BinaryAligned 表。 指定区域 0 至 6 的容量。(1/8、1/16、1/32 或 1/64) 启用或禁用 0 至 6 区及其他区域的 ECC(受保护或未受保护)。 这是区域 0 到 6 的容量设置为 1/8 时的示例。 图 6 DDR RPA 设置 (1/8) 这是一个将 0 到 6 区的容量设置为 1/16 的示例。 图 7 DDR RPA 设置 (1/16) 3.2.2.非 2 的幂次方的 DDR 密度(非二进制对齐密度) 如果 DDR 容量不是 2 的幂,请使用 ECC_Config_nonBinaryAligned 表(i.MX 8M Plus LPDDR4 EVK 就是这种情况,容量为 6GB)。 指定区域 0 至 6 的容量。(1/8、1/16、1/32 或 1/64) ECC 启用或禁用内存区域 0 中的区域 0 到 6 以及其他区域(受保护或未受保护)的 ECC。 ECC 内存区域 1/2 将自动设置为与 ECC 内存区域 0 相同的设置。 这是区域 0 到 6 的容量设置为 1/8 时的示例。 图 8 DDR RPA 设置 (1/8) 这是一个将 0 到 6 区的容量设置为 1/32 的示例。 图 9 DDR RPA 设置 (1/32) 4.使用 DDR 工具进行测试并生成 lpddr4_timing.c/ddr4_timing.c 文件   您可以使用 DDR 工具来检查 DDR RPA 中所做的设置的运行情况。 如果 DDR 压力测试通过,则生成 lpddr4_timing.c/ddr4_timing.c 以合并到 U-Boot 中。   5. U-Boot 中的内联 ECC 实现   5.1.替换 lpddr4_timing.c/ddr4_timing.c lpddr4_timing.c 或者将 ddr4_timing.c 替换为 DDR RPA 和 DDR Tool 生成的文件。 uboot-imx/board/freescale/imx8mp_evk/lpddr4_timing.c uboot-imx/board/freescale/imx8mp_evk/ddr4_timing.c   5.2.添加配置 将 CONFIG_IMX8M_DRAM_INLINE_ECC=y 添加到您的 U-Boot 配置文件中。 将清单 1添加到 uboot-imx/configs/imx8mp_evk_defconfig CONFIG_IMX8M_DRAM_INLINE_ECC=y 笔记: U-Boot 配置文件 imx8mp_evk_inline_ecc_defconfig 是在 Linux BSP 5.4 中添加的,但由于维护不当,已被弃用。使用 EVK 进行测试时,更安全的做法是将配置添加到 imx8mp_evk_defconfig 中并使用它。 5.3.更改Linux保留区域¶ 软件禁止访问 ECC 区域。因此,设备树会动态修改,以便 Linux 内核(以及其他系统软件)将 ECC 区域视为保留区域。默认值硬编码为与 EVK 的 DDR 容量相匹配(LPDDR4 为 6GB,DDR4 为 4GB),因此如果 DDR 容量与 EVK 的容量不同,则必须修改代码。 使用uboot-imx/board/freescale/imx8mp_evk/imx8mp_evk.c中的函数 ft_board_setup 来更改 ECC 区域,使其与实际 DDR 容量相匹配。例如,对于 DDR4,ECC 区域的起始地址和大小是硬编码的,假定 DDR 容量为 4GB。 列表 2: DDR4 容量硬编码为 4GB phys_addr_t ecc_start = 0x120000000; size_t ecc_size = 0x20000000; 如果实际 DDR 容量为 2GB,则从物理地址 0x40000000 到 0xc0000000 的 1/8 (256MB) 高地址保留为 ECC 区域。 示例 3 :将 DDR 内存容量更改为 2GB phys_addr_t ecc_start = 0xb0000000; size_t ecc_size = 0x10000000; imx8mp_evk.c 如果您不使用它,则需要添加与 ft_board_setup 函数等效的处理。   5.4.搬迁支持 如果 DDR 容量为 2GB 或更小,且未安装 OPTEE,U-Boot 会尝试重定位到 DDR 的最高地址,但由于该地址与 ECC 区域重叠,因此会在重定位过程中卡住。为避免这种情况,请添加 imx8mp_evk.h 文件。将 ECC 区域容量从 DDR 容量定义 PHYS_SDRAM_SIZE 中减少 (1/8)。 清单 4 uboot-imx/include/configs/imx8mp_evk.h -#define PHYS_SDRAM_SIZE 0x80000000 +#define PHYS_SDRAM_SIZE 0x70000000   5.5.排除对 ECC 区域的访问处理 如果 U-Boot 中还有其他代码访问了 ECC 区域,则需要排除对 ECC 区域的访问。例如,如果内存测试访问了整个 DDR 区域,则需要修改该测试,使其不再访问 ECC 区域。 参考: https ://github.com/nxp-imx/uboot-imx/blob/lf-6.1.55-2.2.0/configs/imx8mp_evk_defconfig#L10-L11   6. Linux 系统运行检查   6.1.查看启动日志 确保在 Linux 启动时已安装 EDAC 驱动程序。(EDAC = 错误检测和纠正)i.MX 8M Plus 的 EDAC 驱动程序位于linux-imx/drivers/edac/synopsys_edac.c 。 清单 5检查启动日志 root@imx8mp-lpddr4-evk:~# dmesg | grep EDAC [ 0.116733] EDAC MC: Ver: 3.0.0 [ 1.874689] EDAC MC0: Giving out device to module 1 controller synps_ddr_controller: DEV synps_edac (INTERRUPT)   6.2.检查内存映射 使用命令 cat /proc/iomem 确认 ECC 区域已按照5.3 节“更改 Linux 保留区域”中的配置设置为保留。以下是 i.MX 8M Plus LPDDR4 EVK(DDR 容量 6GB)的示例。 列表 6检查内存映射 root@imx8mp-lpddr4-evk:~# cat /proc/iomem | grep reserved ... b0000000-bfffffff : reserved ... 130000000-13fffffff : reserved ... 1b0000000-1bfffffff : reserved   6.3.检查何时发生 ECC 错误 根据应用说明AN13566 - i.MX 8 系列上的 ECC ,i.MX 8M Plus 中的 DDR 控制器没有故意生成 ECC 错误的功能。 3.2.9通过软件注入ECC错误 ECC 错误注入是系统级软件验证的一个有用的可选功能。与边带 ECC 不同,它没有专门的硬件支持。但是,可以通过软件注入错误,方法是通过“ECC_REGION_PARITY_LOCK”寄存器解锁 ECC 区域并覆盖 ECC 奇偶校验位。当从受保护的内存区域读取相应的地址时,根据引入的错误类型,会产生可纠正的或不可纠正的 ECC 错误。 注意:DDR 控制器不支持 ECC 数据中毒。参考手册将进行更新,移除此功能。 因此,我们解锁ECC区域,并从内核层面修改ECC区域以模拟ECC错误并进行测试。基本思路如下: 将 8 字节值 0xffffffff_ffffffff 写入 DataAddr。DDRC 向 DDR 写入数据的同时,还会写入 1 字节的 ECC 纠错码。 解锁 ECC 区域,允许核心访问 ECC 区域。 获取与 DataAddr 对应的 ECC 字节的地址,并读取 ECC 的一个字节。 将反转后的值 0xffffffff_fffffffe 写入 DataAddr。同时更新 ECC 1 字节。 ECC 1 字节,ECC 读取于 3。将字节值写回。 锁定 ECC 区域,禁止从核心访问 ECC 区域。 读取 DataAddr 的值。此时,由于 ECC 不一致,单比特纠错被激活,并读取纠错后的 8 字节值 0xffffffff_ffffffff。同时,内核也会收到一个可纠正错误中断通知。 笔记: 由于这涉及到访问 DDR,因此必须在非缓存区域执行测试。 图 10单比特纠错 (SEC) 测试方法¶   双比特错误检测 (DED) 调试也可以用同样的方法进行。   7.参考资料 应用说明: AN13566 - i.MX 8 系列的 ECC 应用说明:AN13616 - 验证 i.MX 8 直列式 ECC 引擎功能(请联系您的 NXP 代表以获取此文档) i.MX 8M 系列 DDR 工具发布 - NXP 社区 i.MX 8M Plus DDR寄存器编程辅助工具 (RPA) - NXP社区 8.注意 本文档是使用恩智浦产品的参考指南。 有关正式规格,请参阅产品手册和应用说明。 实际操作可能因各种条件(例如所使用的软件版本)的不同而与所述内容有所不同。 并非所有功能都已验证,因此请务必验证和测试产品,以确保其符合您的预期用途。 =========================​ 我们目前无法 回复 此帖子“ 评论”部分的评论。 对于由此造成的不便,我们深表歉意。如有任何疑问, 请 参考“ 如何就 技术问题 联系 NXP ( 日语 博客 ) ” 。 (如果您已经是 恩智浦的 分销商或 与 恩智浦 有业务往来 ,您可以直接联系负责人。 ) 在线纠错码 (Inline ECC) 是一种能够实时检测并纠正内存或存储设备中发生的位错误的机制。在i.MX 8M Plus等 DDR 控制器上启用在线纠错码功能会降低 DDR 访问性能,但由于 ECC 区域仅占用大约八分之一的 DDR 容量,因此无需额外添加专用内存来存储 ECC 码(从而降低了物料清单成本)。 本文解释了内联 ECC 的功能,并介绍了如何实现它。 i.MX 处理器 日本博客
記事全体を表示
Freed Buffer out of Range Issue in Ethernet for RT1170 Hi, I am trying to execute basic ethernet testing from custom project on custom board. As a part of this project (which integrates different modules like SD card, CAN ,GPIO,ADC, Ethernet and EEPROM) basic ethernet send and receive is to be verified. But I am facing "freed buffer out of range error" before ping send. I have done all the basic initializations and configurations related to ethernet. I see the error is observed because of line  LWIP_ASSERT("Freed buffer out of range", ((idx >= 0) && (idx < ENET_RXBUFF_NUM))); in function "ethernetif_rx_free" (enet_ethernetif_kinetis.c) where the idx value I am getting it in negative. This complete functionality is working on EVK kit. What could be missing? Kindly suggest. Re: Freed Buffer out of Range Issue in Ethernet for RT1170 Hi, All The issue happens to me too on my RT1024 customer board, it is likely to happen when i put a breakpoint somewhere and it stops here, and then resume to normal running is more likely  ends up this error. Regards! Ping Re: Freed Buffer out of Range Issue in Ethernet for RT1170 If the example project is working fine in your custom board, seems the problem is on SW side. You are not using FreeRTOS right? Seems there is something interfering with the behavior of the example, probably some configurations are missing or just the example flow is being affected due the rest of the application. I would recommend you to try to use the latest SDK release which is 2.15.000. If your issue still occurs with this release, then I’m afraid there is something wrong with the flow of your application. Regards, Daniel. Re: Freed Buffer out of Range Issue in Ethernet for RT1170 Hi, Yes, the issue appears when implementing the merged source code in custom board. But, the individual source of Ethernet_ping,which was not merged with remaining interfaces is working fine in Custom board. Problem arises when the individual source of Ethernet is merged with remaining interfaces. Re: Freed Buffer out of Range Issue in Ethernet for RT1170 If I am understanding correctly, when you run the SDK example it works. But when you add your custom application, the issue appears. Can you confirm? Regards, Daniel. Re: Freed Buffer out of Range Issue in Ethernet for RT1170 Hi, Actually the individual source code of Ethernet is working fine in Custom board. When I'm trying to integrate the code then Ethernet is not working. I observed that EIR register's 25th (RXF), 26th (TXB), and 27th (TXF) bits are set to 0, and the RDAR register's 24th bit is updated to 0. But in working code of Ethernet this registers are set to '1'.  I suspect that these register updates are handled by interrupts, but I am unable to locate the specific handler responsible for these updates in my custom project codebase. Kindly help me. Re: Freed Buffer out of Range Issue in Ethernet for RT1170 Could you please double check if there are any peripheral changes (i.e. peripheral instances) needed in your project in order to make the EVK example work in your custom hardware? In case you already verified this, seems the problem is on the HW side. By any chance have you already verified your design with the HDG? Regards, Daniel. Re: Freed Buffer out of Range Issue in Ethernet for RT1170 Hi, I am using SDK version 11.6.1. I'm trying to test lwip_ping_bm_cm7 example. It is working fine in EVK. But it is not working in custom board when tried to interface all the source codes with Ethernet. What might be the issue if we are facing "Freed Buffer out of range" occurs. Please help me with this. Re: Freed Buffer out of Range Issue in Ethernet for RT1170 Hi, What SDK version are you using? What is the SDK example you are using to test this? If I understood correctly, the application works fine in an EVK, am I right? Regards, Daniel.
記事全体を表示