Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
ACIM对MCX A系列的支持 你好, NXP 是否计划在 MCUXpresso 电机控制 SDK 中添加对 MCX A 系列的 ACIM(感应电机)控制支持? 目前,ACIM 支持似乎仅适用于较旧的 Kinetis KV/KE 系列,这些系列不太适合新设计。是否有计划或路线图来支持新型 MCX A 设备上的 ACIM 功能? MCXA 电机控制 Re: ACIM Support for MCX A Series 你好, 目前已发布的有关 MCXA 中电机控制的资料主要针对 PMSM/BLDC(正弦波), MCUXpresso SDK for Motor Control和Application Code Hub [Motor Control]中包含各种示例和指南。 接下来的几个月或一年,如果他们添加了关于此主题的新信息,或者在应用程序代码中心添加了关于此主题的新示例,您仍然可以定期查看更新。 顺祝商祺!
記事全体を表示
i.MX95 的 CAN FD 接口分布 您好,NXP, 有一个问题希望您能帮我们确认一下。 问:共有五个 CAN FD 接口。我们只确保一个 CAN FD 接口仅由 M33 功能域(AON)控制,但其他四个CAN FD 接口位于唤醒功能域,不确定这四个 CAN FD 接口是否可以由 M7 或 A55 内核控制? 非常感谢。         Re: Distribution of CAN FD interfaces for i.MX95 嗨志明, 知道了。 非常感谢。 Re: Distribution of CAN FD interfaces for i.MX95 嗨@jimmyli CAN2-5 可由 M7/A55 控制;时钟由 SM 统一控制,中断在 M33、M7 和 A55 之间是统一的。 以下是 M7 SDK 中的 IRQn。 CAN2_IRQn = 38, /**< CAN2 interrupt */ CAN2_ERROR_IRQn = 39, /**< CAN2 error interrupt */ CAN3_IRQn = 40, /**< CAN3 interrupt */ CAN3_ERROR_IRQn = 41, /**< CAN3 error interrupt */ CAN4_IRQn = 42, /**< CAN4 interrupt */ CAN4_ERROR_IRQn = 43, /**< CAN4 error interrupt */ CAN5_IRQn = 44, /**< CAN5 interrupt */ CAN5_ERROR_IRQn = 45, /**< CAN5 error interrupt */ 此致, 志明
記事全体を表示
S32K312 eDMA:了解 CITER 自动重载行为 大家好, 我正在使用 NXP S32K312 MCU 进行 eDMA 开发,想了解TCDn_CITER寄存器的行为。 我观察到,当主循环结束时 CITER 达到零时,它会自动从TCDn_BITER重新加载其值。 我想澄清以下几点: S32K312 的这种自动重新加载是预期的硬件行为吗? 在什么情况下,CITER 会在主循环完成后从 BITER 重新加载? 是否有任何配置可以让 CITER 保持为零而不是从 BITER 重新加载? 我特别想了解 CITER 寄存器的行为。 谢谢! Re: S32K312 eDMA: Understanding CITER Auto-Reload Behavior 你好@Prateeksha_Jain 问题 1 和 2 在 S32K3xx 参考手册第 12 版中得到解答。手册中指出,当主迭代计数耗尽时,eDMA 会执行几个主循环结束操作,包括最终的源地址和目标地址调整以及将 BITER 值重新加载到 CITER 中。 关于问题 3,没有专用的配置位允许 CITER 在主循环完成后保持为零。CITER 从 BITER 重新加载是 eDMA 硬件状态机的一部分,并且是自动执行的。 但是,如果您的目标是在主循环完成后阻止通道处理额外的 DMA 请求,您可能需要考虑使用 DREQ 位。之前在“如何防止 eDMA TCDn_CITER 自动重新加载 TCDn_BITER”这个帖子中讨论过这种情况。 BR,VaneB
記事全体を表示
Distribution of CAN FD interfaces for i.MX95 Hi NXP,       There is a question that hope you can check for us.       Question: There are five CAN FD interfaces. We only make sure that one CAN FD is only controlled by M33 domain (AON), but other four CAN FD are in Wake up domain, not sure about whether these four CAN FD interfaces can be controlled by M7 or A55 core ?       Thanks very much.         Re: Distribution of CAN FD interfaces for i.MX95 Hi Zhiming,       Got it.       Thanks very much. Re: Distribution of CAN FD interfaces for i.MX95 Hi @jimmyli  CAN2-5 can be controlled by M7/A55; the clock is uniformly controlled by SM, and interrupts are uniform across M33, M7, and A55. Here are IRQn in M7 SDK. CAN2_IRQn = 38, /**< CAN2 interrupt */ CAN2_ERROR_IRQn = 39, /**< CAN2 error interrupt */ CAN3_IRQn = 40, /**< CAN3 interrupt */ CAN3_ERROR_IRQn = 41, /**< CAN3 error interrupt */ CAN4_IRQn = 42, /**< CAN4 interrupt */ CAN4_ERROR_IRQn = 43, /**< CAN4 error interrupt */ CAN5_IRQn = 44, /**< CAN5 interrupt */ CAN5_ERROR_IRQn = 45, /**< CAN5 error interrupt */ Best Regards, Zhiming
記事全体を表示
S32K312 eDMA:CITER車載リロード挙動の理解 こんにちは、皆さん 私はNXP S32K312 MCUでeDMAを扱っており、TCDn_CITERレジスタの挙動を理解したい と思っています。 CITERがメインループの最後にゼロになると、 TCDn_BITERから自動的に値を再読み込みすることがわかりました。 以下の点について明確にしておきたいと思います。 この自動リロードは、S32K312における想定されるハードウェア動作なのでしょうか? 主要ループ完了後、CITERはどのような条件下でBITERからデータを再読み込みしますか? BITERから再読み込みするのではなく、CITERをゼロのまま維持できるような設定はありますか? 私は特にCITERレジスタの動作を理解することに興味があります。 ご回答をお待ちしています。 Re: S32K312 eDMA: Understanding CITER Auto-Reload Behavior こんにちは、 @Prateeksha_Jainさん 質問1と2はS32K3xxリファレンスマニュアル、Rev. 12で解説されています。マニュアルには、メジャー反復回数が上限に達すると、eDMAは最終的な送信元アドレスと宛先アドレスの調整、BITER値をCITERに再ロードするなど、メジャーループ終了時のいくつかの操作を実行すると記載されています。 質問3に関してですが、主要ループが完了した後にCITERをゼロのままにするための専用の設定ビットはありません。BITERからCITERへの再ロードは、eDMAハードウェアステートマシンの一部であり、自動的に実行されます。 ただし、メジャーループ完了後にチャネルが追加のDMA要求を処理しないようにするのが目的であれば、DREQビットの使用を検討したほうがいいかもしれません。このシナリオは以前、 Thread「eDMA TCDn_CITERの自動リロードを防ぐ方法」でTCDn_BITER議論されています。 BR、VaneB
記事全体を表示
i.MX95のCAN FDインターフェースの配布 こんにちは、NXPさん。 質問があるので、ぜひ確認していただけると嬉しいです。       質問: CAN FDインターフェースは5つあります。1つのCAN FDがM33ドメイン(AON)のみで制御されていることを確認し、 他の4 つのCAN FDはウェイクアップドメインに属しています。これら4つのCAN FDインターフェースがM7コアかA55コアで制御できるかは不明です。 ありがとうございました。         Re: Distribution of CAN FD interfaces for i.MX95 こんにちは、志明さん わかった。 ありがとうございました。 Re: Distribution of CAN FD interfaces for i.MX95 こんにちは、 @jimmyliさん CAN2-5はM7/A55で制御可能です。クロックはSMによって一様に制御され、割り込みはM33、M7、A55で均一です。 こちらはM7 SDKのIRQnです。 CAN2_IRQn = 38, /**< CAN2 interrupt */ CAN2_ERROR_IRQn = 39, /**< CAN2 error interrupt */ CAN3_IRQn = 40, /**< CAN3 interrupt */ CAN3_ERROR_IRQn = 41, /**< CAN3 error interrupt */ CAN4_IRQn = 42, /**< CAN4 interrupt */ CAN4_ERROR_IRQn = 43, /**< CAN4 error interrupt */ CAN5_IRQn = 44, /**< CAN5 interrupt */ CAN5_ERROR_IRQn = 45, /**< CAN5 error interrupt */ よろしくお願いします、 志明
記事全体を表示
PQC合规性在发货后才发现为时已晚!从安全启动和固件更新的角度考虑量子攻击防护措施(日文博客) 继i.MX 94和i.MX 95之后,恩智浦半导体 (NXP) 发布了 MCX A5 系列,该系列产品在 ROM 中内置了安全引导加载程序,支持PQC(后量子加密)混合安全引导和安全固件更新。恩智浦半导体计划继续扩展其 PQC 兼容产品线。 恩智浦发布全新MCX A5 MCU,简化安全工业连接 | 恩智浦半导体 尽管量子计算机仍在开发中,而且使用量子计算机的具体攻击尚未开始,但现在采用内置 PQC 兼容安全引导加载程序的产品极其重要,特别是对于打算长期使用的设备,例如工业设备。 如果您打算稍后通过固件更新来解决该问题,那么您需要了解其中涉及的重大限制,以及在产品制造时需要采取哪些措施来确保符合 PQC 标准。 需要符合PQC规定的主要原因 以下是产品设计阶段就需要符合 PQC 标准的主要原因。 产品生命周期可能与量子计算机实际攻击的出现时间重叠 。工业设备、汽车设备、医疗设备等产品的使用寿命有时超过10年。如果这些产品在量子计算机真正普及之前就已经上市,那么市场届时就需要相应的应对措施。 “先获取后解密”意味着 现在获取的加密通信数据未来可以利用量子计算技术进行解密 。尤其对于需要长期保密的产品而言,攻击发生后再做出反应就为时已晚了。 资源需求可能非常庞大,而且以后很难解决。 根据具体算法的不同,PQC 算法可能比传统的 ECC/RSA 算法需要更高的资源(ROM、RAM、闪存、处理时间、功耗),这会增加后续实现的难度。如果您计划在未来支持 PQC,除了满足当前产品规格外,还需要从一开始就确保 PQC 所需的充足资源。 以上是一些常见的理由,但仅从以上内容来看,你可能会想:“如果处理的数据即使以后被解密也不会造成太大问题,那么现在就投入充足的资源进行设计,然后再通过固件更新添加 PQC 支持,岂不是更好吗?” 然而,实际上存在诸多限制。 由于固件更新,PQC 支持出现问题 后续PQC合规性的最大制约因素是: “第一条SBL(稍后详述)必须不可重写。” “固件更新镜像包含知识产权(IP)。” 这就是关键所在。 第一个 SBL(First SBL)与安全启动有关。 安全启动是一种重要的安全机制,它在启动固件之前通过签名验证来验证固件的完整性(固件未被损坏或篡改) 。 为此,需要一个安全引导加载程序 (SBL),它独立于被验证的固件而存在,在被验证的固件启动之前运行,并执行签名验证。 具体来说,系统启动后最先执行的SBL在此被称为第一SBL,并且该第一SBL必须是不可变的。至于原因,请参阅下文“第一SBL不得被覆盖”一节。 MCU 中的安全启动和安全(OTA)更新基础知识(日文博客) 换句话说,第一级系统认证机构(1st SBL)在产品出货时,如果固件验证算法仍采用ECC/RSA,而没有采用与PQC兼容的算法,那么之后再添加对PQC兼容算法的支持是不可能的。如果第一级系统认证机构的固件验证算法仍然是ECC/RSA,那么在量子计算机普及应用后,其签名存在被伪造的风险,恶意固件可能会被植入。 第二点是,即使产品本身处理的数据在之后被解密时不会造成重大问题,但产品的固件通常包含大量的知识产权(IP)。 如果固件更新镜像的加密算法不支持 PQC,则将来可能会因为固件更新镜像内容被解密而导致 IP 泄露的风险。 此外,如果固件更新映像的签名算法不支持 PQC,则存在固件更新映像的签名可能被伪造,从而加载恶意固件的风险。 基于以上所述,如果我们考虑未来对 PQC 的支持,那么可以合理地得出结论:至少在产品制造时,使用第一 SBL 的固件验证算法以及固件更新映像的签名和加密算法必须与 PQC 兼容。 NXP产品可以解决PQC合规性方面的挑战。 MCX A5 的启动 ROM 集成了 PQC 兼容的安全启动功能,使其可用作首个安全启动模块 (SBL)。此外,该启动 ROM 还支持 PQC 兼容的安全更新。与将 SBL 置于闪存相比,它还能减少所需的闪存容量。 将符合 PQC 标准的功能产品化需要验证密钥管理、签名基础设施、制造配置、OTA 更新、身份验证、性能评估和标准合规性,因此需要较长的准备时间。对于第一版 SBL 而言尤其如此,如前所述,第一版 SBL 无法更新,因此需要更加严格的验证。 截至撰稿时,MCX A5 尚未量产,目前正在进行认证,但其设计目标是获得 PSA 3 级和 SESIP 3 级第三方安全认证(NXP 已有多款产品获得 PSA/SESIP 认证)。认证完成后,我们将提供包括安全目标(一份定义评估目标、安全声明、要求、范围等的文件)在内的相关文档。 通过利用 MCX A5 的 PQC 兼容安全启动集成启动 ROM,以及 NXP 的工具集(例如MCUXpresso 安全配置工具和MCUXpresso SDK) ,我们可以减少 PQC 兼容安全启动和固件更新所需的实施和验证工作量。 选择SESIP 3级认证产品的关键要点 关于SESIP认证,需要注意的一点是,即使是获得SESIP 3级认证的产品,其认证所涵盖的功能范围也可能存在显著差异。因此,不仅要检查SESIP认证级别,还要仔细查看安全目标文档的内容,这一点至关重要。 认证产品的文档可从以下链接下载。 SESIP证书 - TrustCB 例如,在 NXP 的 SESIP Level 3 产品“MCX N94x / 54x / 23x SESIP 安全目标 Rev 1.1”中,图 3 显示认证范围不仅包括 SoC ROM(包括安全启动),还包括许多安全功能,例如EdgeLock ® 安全隔离区 (ELS S50) 。 虽然其他一些公司通过 SESIP 3 级认证的产品缺乏许多此类安全功能,但一些逻辑范围产品仅凭生命周期管理和内存保护功能就获得了 SESIP 3 级认证。   此外,NXP 的 SESIP 安全目标包括与 IEC 62443-4-2 等安全标准/法规的映射,可用于满足这些标准以及未来安全标准/法规中的类似要求。 截至撰写本文时,最新认证产品“i.MX RT700 SESIP 安全目标 Rev. 1.0”还包括与 CRA 的 EU 2024/2847 附件 I 基本网络安全要求的映射。 注:上述安全目标文档版本名称截至撰写本文时有效,但可能会有所更改。此外,SESIP 认证及其与安全标准/法规的映射并不能保证使用 NXP 产品的最终产品完全符合相关标准/法规。最终产品层面的集成以及必要的其他措施可能必不可少。 ========================= 我们目前无法回复此帖子“评论”部分留下的评论。 对于由此造成的不便,我们深表歉意,但在进行咨询时,请参考“ NXP 技术问题 - 如何联系我们(日语博客) ”。 (如果您已经是恩智浦的分销商或与恩智浦有合作关系,您可以直接咨询您的代表。) 继i.MX 94和i.MX 95之后,恩智浦半导体 (NXP) 发布了 MCX A5 系列,该系列产品在 ROM 中内置了安全引导加载程序,支持PQC(后量子加密)混合安全引导和安全固件更新。恩智浦半导体计划继续扩展其 PQC 兼容产品线。 恩智浦发布全新MCX A5 MCU,简化安全工业连接 | 恩智浦半导体 尽管量子计算机仍在开发中,而且使用量子计算机的具体攻击尚未开始,但现在采用内置 PQC 兼容安全引导加载程序的产品极其重要,特别是对于打算长期使用的设备,例如工业设备。 如果您打算稍后通过固件更新来解决该问题,那么您需要了解其中涉及的重大限制,以及在产品制造时需要采取哪些措施来确保符合 PQC 标准。 (阅读时间:10分钟) i.MX RT 处理器 i.MX 处理器 MCX 安全 日本博客
記事全体を表示
PQC対応は出荷後では遅い!セキュアブートとファームウェア・アップデートから考える耐量子対策 (日本語ブログ) i.MX 94およびi.MX 95に続き、MCXシリーズでも、PQC(Post-Quantum Cryptography:耐量子暗号)ハイブリッド対応のSecure BootとSecure Firmware UpdateをサポートするセキュアブートローダーをROMに内蔵したMCX A5ファミリが発表されました。NXPでは今後もPQC対応製品を拡充予定です。 NXP、セキュアな産業向けコネクティビティを簡素化する 新しいMCX A5 MCUを発表 | NXP Semiconductors 現時点では量子コンピューターは発展途上であり量子コンピューターによる具体的な攻撃がまだ始まっていなくても、PQC対応セキュアブートローダー内蔵製品を今から採用することは、特に産業機器など長期利用が想定される機器においては非常に重要です。 特にファームウェアアップデートによる後日の対応を検討されている場合、そこに存在する大きな制約と、製品製造時点でPQC対応のために行っておくべき内容を理解する必要があります。 PQC対応が必要とされる主な理由 製品設計時からPQC対応が必要とされる主な理由を3つ挙げます。 製品寿命が量子計算機による実用的攻撃の到来時期をまたぐ可能性がある 産業機器、車載機器、医療機器などは10年以上使われることがあります。量子コンピューターが実用化される時点で既に出荷済みだと、後から市場での対策が必要となります。 現在取得された暗号文を将来復号される可能性がある 「Harvest Now, Decrypt Later」により、現在取得された暗号化通信データが、将来の量子計算能力によって解析される可能性があります。特に長期機密性が必要な製品では、攻撃開始後に対応するのでは遅すぎます。 リソース要求が大きく後から対応困難な場合がある PQCアルゴリズムは方式によっては従来のECC/RSAよりもリソース要求(ROM、RAM、Flash、処理時間、電力)が大きいため、後からの対応が困難となる場合があります。将来のPQC対応を考えるなら、現在の製品仕様に合わせるだけでなく、PQC用のリソースの余裕を最初から確保する必要があります。 以上がよく語られる理由ですが、上記だけでは「取り扱うデータ自体は後で解読されてもさほど問題ない場合、現時点ではリソースに余裕を持たせた設計を行い、後でファームウェアアップデートでPQC対応をすればよいのでは?」と思われるかもしれません。 しかし現実には重要な制約があります。 ファームウェア・アップデートによるPQC対応の問題 後でPQC対応するための最大の制約は、 「1st SBL(後述)は書換不可とする必要がある」 「ファームウェアアップデートイメージは知的財産(IP)を含む」 という点です。 1つ目の1st SBLについてはセキュアブートと関連します。 セキュアブートはファームウェアを起動する前に署名検証によりファームウェアの完全性(破壊、改ざんがないこと)を検証したうえで起動する、セキュリティにおいて欠かせない仕組みです。 これを行うためには検証されるファームウェアとは独立して存在、検証対象ファームウェアの実行開始前に実行され、署名検証を行うセキュアブートローダー(Secure Bootloader : SBL)が必要です。 特にシステム起動後に最初に実行されるSBLのことをここでは1st SBLと呼びますが、この1st SBLは書換不可とする必要があります。その理由は以下記事の「1st SBLは書き換えられてはならない」の章を参照ください。 MCUにおけるセキュアブート、セキュア(OTA)アップデートの基本 (日本語ブログ) つまり製品出荷時の1st SBLによるファームウェア検証アルゴリズムをECC/RSAとしてPQC対応アルゴリズムは無し、後でPQC対応アルゴリズムの対応を追加する、という対応は不可能ということになります。1st SBLによるファームウェア検証アルゴリズムがECC/RSAのままだと、量子コンピューター実用化後はその署名を偽造され、不正ファームウェアを起動されるリスクがあります。 2つ目の点は、製品で取り扱うデータ自体は後で解読されてもさほど問題ない場合でも、一般には製品のファームウェアには一般に多くの知的財産(IP)が含まれるという点です。 ファームウェアアップデートイメージの暗号化アルゴリズムがPQC対応していない場合、将来ファームウェア更新イメージの内容を復号されることによるIP漏洩のリスクがあります。 またファームウェアアップデートイメージの署名アルゴリズムにPQC対応していない場合、ファームウェア更新イメージの署名を偽造されて不正なファームウェアをロードされるリスクもあります。 以上より、将来のPQC対応を考えるのであれば、最低でも1st SBLによるファームウェア検証アルゴリズム、ファームウェアアップデートイメージの署名・暗号化アルゴリズムは製品製造時点でPQCに対応する必要があると考えられます。 PQC対応の課題に対するNXP製品による解決 MCX A5のBoot ROMには、PQC対応セキュアブートの機能が統合されており、これを1st SBLとして使用できます。さらにこのBoot ROMにはPQC対応セキュア・アップデートをサポートする機能も含まれています。SBLをFlash上に配置する場合と比べ、必要なFlash容量も削減できます。 PQC対応機能の製品化には鍵管理、署名基盤、製造時プロビジョニング、OTA更新、認証、性能評価、規格対応などを検証する必要があり、長い準備期間が必要です。特に前述のとおり更新が不可能な1st SBLについてはより厳しい検証が必要となります。 MCX A5は本記事執筆時点では量産開始前であり、認証取得に向けた準備中ですが、PSA Level 3およびSESIP Level 3第三者セキュリティ認証取得を目標に設計されています(NXPではすでに多数の製品でPSA/SESIP認証取得の実績があります)。認証取得後は、Security Target(評価対象、セキュリティ主張、要求事項、スコープなどを定義する文書)を含む文書が提供されます。 MCX A5のPQC対応セキュアブート機能統合Boot ROMと、それと組み合わせて使用するMCUXpressoセキュア・プロビジョニング・ツールやMCUXpresso SDKといったNXPのツール群を活用することでPQC対応セキュアブートとファームウェア・アップデートの実装・検証工数の削減に寄与します。 SESIP Level 3認証製品選定のポイント SESIP認証について注意すべき点として、同じSESIP Level 3認証取得製品であっても製品によって認証のスコープに含まれる機能の範囲が大きく異なる場合があります。そのためSESIP認証のレベルだけでなくSecurity Target文書の内容を確認することが重要です。 認証取得済み製品の文書は以下からダウンロード可能です。 SESIP Certificates - TrustCB 例えばNXPのSESIP Level 3製品のうち「MCX N94x / 54x / 23x SESIP Security Target Rev 1.1」には以下「Fig 3. Logical Architecture and Certification Scope」に、Secure Boot含むSoC ROMだけでなく、EdgeLock ® セキュア・エンクレーブ(ELS S50)含む多数のセキュリティ機能がCertification Scopeに含まれていることが記載されています。 他社のSESIP Level 3認証製品の中にはこういったセキュリティ機能の多くが搭載されていない製品に対し、logical scopeはライフサイクル管理とメモリ保護機能のみとしてSESIP Level 3認証を取得している製品もあります。   また、NXPのSESIP Security TargetにはIEC 62443-4-2といったセキュリティ規格/規制に対するマッピングが含まれており、それらへの対応や将来のセキュリティ規格/規制内の類似した要求への対応にも活用可能です。 本記事執筆時点で最新の認証取得製品である「i.MX RT700 SESIP Security Target Rev. 1.0」にはCRAのEU 2024/2847 Annex I Essential Cybersecurity Requirementsに対するマッピングも含まれています。 注意 : 上記のSecurity Targetの文書バージョン名は本記事執筆時点のものであり、改定される可能性があります。また、SESIP認証およびセキュリティ規格/規制へのマッピングはNXP製品を使用した最終製品全体の規格/規制への適合を保証するものではありません。最終製品側での統合と、要求に応じて追加対策が必要となります。 ========================= 本投稿の「Comment」欄にコメントをいただいても、現在返信に対応しておりません。 お手数をおかけしますが、お問い合わせの際には「NXPへの技術質問 - 問い合わせ方法 (日本語ブログ)」をご参照ください。 (既に弊社NXP代理店、もしくはNXPとお付き合いのある方は、直接担当者へご質問いただいてもかまいません。) i.MX 94およびi.MX 95に続き、MCXシリーズでも、PQC(Post-Quantum Cryptography:耐量子暗号)ハイブリッド対応のSecure BootとSecure Firmware UpdateをサポートするセキュアブートローダーをROMに内蔵したMCX A5ファミリが発表されました。NXPでは今後もPQC対応製品を拡充予定です。 NXP、セキュアな産業向けコネクティビティを簡素化する 新しいMCX A5 MCUを発表 | NXP Semiconductors 現時点では量子コンピューターは発展途上であり量子コンピューターによる具体的な攻撃がまだ始まっていなくても、PQC対応セキュアブートローダー内蔵製品を今から採用することは、特に産業機器など長期利用が想定される機器においては非常に重要です。 特にファームウェアアップデートによる後日の対応を検討されている場合、そこに存在する大きな制約と、製品製造時点でPQC対応のために行っておくべき内容を理解する必要があります。 (読了:10分) i.MX RT Processors i.MX Processors MCX Security 日本語ブログ
記事全体を表示
PQC compliance is too late after shipment! Quantum-proofing measures considered from the perspective of secure boot and firmware updates (Japanese blog) Following the i.MX 94 and i.MX 95 , NXP has announced the MCX A5 family, which features a secure boot loader built into ROM that supports PQC ( Post-Quantum Cryptography) hybrid Secure Boot and Secure Firmware Update. NXP plans to continue expanding its range of PQC-compatible products. NXP Announces New MCX A5 MCU to Simplify Secure Industrial Connectivity | NXP Semiconductors Even though quantum computers are still under development and concrete attacks using quantum computers have not yet begun, adopting products with built-in PQC-compatible secure bootloaders now is extremely important, especially for equipment intended for long-term use, such as industrial equipment. If you are considering addressing the issue later through a firmware update, in particular, you need to understand the significant limitations involved and what needs to be done at the time of product manufacturing to ensure PQC compliance. Main reasons why PQC compliance is required Here are three main reasons why PQC compliance is required from the product design stage. Product lifecycles may overlap with the arrival of practical attacks by quantum computers . Industrial equipment, automotive equipment, medical equipment, etc., are sometimes used for more than 10 years. If these products have already been shipped by the time quantum computers become practical, countermeasures will be needed in the market afterward. "Harvest Now, Decrypt Later" means that encrypted communication data obtained now could be decrypted in the future using future quantum computing capabilities. Especially for products requiring long-term confidentiality, responding after an attack has begun is too late. Resource requirements can be very large and difficult to address later. Depending on the specific algorithm, PQC algorithms may have higher resource requirements (ROM, RAM, Flash, processing time, power) than conventional ECC/RSA algorithms, making later implementation difficult. If you plan to support PQC in the future, you need to ensure sufficient resources for PQC from the outset, in addition to meeting current product specifications. The above are the commonly cited reasons, but based on the above alone, you might think, "If the data being handled doesn't pose much of a problem even if it's deciphered later, wouldn't it be better to design it with ample resources at the moment and then add PQC support later with a firmware update?" However, in reality, there are significant constraints. Issues with PQC support due to firmware update The biggest constraint for later PQC compliance is, "The 1st SBL (described later) must be made unrewritable." "Firmware update images contain intellectual property (IP)." That's the point. The first SBL (First SBL) is related to Secure Boot. Secure Boot is an essential security mechanism that verifies the integrity of the firmware (that it has not been damaged or tampered with) through signature verification before starting the firmware. To do this, a Secure Bootloader (SBL) is required, which exists independently of the firmware being verified, runs before the firmware being verified starts, and performs signature verification. In particular, the SBL that is executed first after system startup is referred to here as the 1st SBL, and this 1st SBL must be immutable. For the reason why, please refer to the section "The 1st SBL must not be overwritten" in the following article. The basics of secure boot and secure (OTA) updates in MCUs (Japanese blog) In other words, it is impossible to use ECC/RSA as the firmware verification algorithm by the 1st SBL at the time of product shipment, without a PQC-compatible algorithm, and then add support for a PQC-compatible algorithm later. If the firmware verification algorithm by the 1st SBL remains ECC/RSA, there is a risk that its signature will be forged and malicious firmware will be launched after quantum computers become practical. The second point is that even if the data handled by the product itself is not a major problem when it is later deciphered, the product's firmware generally contains a lot of intellectual property (IP). If the encryption algorithm of the firmware update image does not support PQC, there is a risk of IP leakage in the future due to the decryption of the contents of the firmware update image. Furthermore, if the firmware update image's signature algorithm does not support PQC, there is a risk that the firmware update image's signature could be forged and malicious firmware could be loaded. Based on the above, if we are considering future PQC support, it is reasonable to conclude that at a minimum, the firmware verification algorithm using the 1st SBL and the signing and encryption algorithms for the firmware update image must be PQC-compatible at the time of product manufacturing. NXP products can solve the challenges of PQC compliance. The MCX A5's Boot ROM integrates PQC-compatible secure boot functionality, allowing it to be used as the 1st SBL. Furthermore, this Boot ROM also includes support for PQC-compatible secure updates. Compared to placing the SBL on Flash, it also reduces the required Flash capacity. Productizing PQC-compliant functionality requires verification of key management, signature infrastructure, manufacturing provisioning, OTA updates, authentication, performance evaluation, and standards compliance, necessitating a long preparation period. This is especially true for the 1st SBL, which, as mentioned earlier, cannot be updated, requiring even more rigorous verification. As of the time of writing, the MCX A5 is not yet in mass production and is in the process of obtaining certification, but it is designed with the goal of obtaining PSA Level 3 and SESIP Level 3 third-party security certifications (NXP already has a track record of obtaining PSA/SESIP certifications for many products). After certification is obtained, documentation including the Security Target (a document that defines the evaluation target, security claims, requirements, scope, etc.) will be provided. By utilizing the MCX A5's PQC-compatible secure boot integrated Boot ROM, along with NXP's toolset such as the MCUXpresso secure provisioning tool and MCUXpresso SDK , we can reduce the implementation and verification effort required for PQC-compatible secure boot and firmware updates. Key points for selecting SESIP Level 3 certified products One important point to note regarding SESIP certification is that even among products with the same SESIP Level 3 certification, the scope of functionality included in the certification can vary significantly from product to product. Therefore, it is crucial to check not only the SESIP certification level but also the contents of the Security Target document. Documentation for certified products can be downloaded from the link below. SESIP Certificates - TrustCB For example, in NXP's SESIP Level 3 product, "MCX N94x / 54x / 23x SESIP Security Target Rev 1.1," Fig. 3 shows that the Certification Scope includes not only the SoC ROM, including Secure Boot, but also numerous security features, including the EdgeLock ® Secure Enclave (ELS S50) . While some other companies' SESIP Level 3 certified products lack many of these security features , some logical scope products have obtained SESIP Level 3 certification with only lifecycle management and memory protection features.   Furthermore, NXP's SESIP Security Target includes mappings to security standards/regulations such as IEC 62443-4-2, which can be used to address these standards and similar requirements in future security standards/regulations. As of the time of writing this article, the latest certified product, "i.MX RT700 SESIP Security Target Rev. 1.0," also includes mapping to the CRA's EU 2024/2847 Annex I Essential Cybersecurity Requirements. Note: The document version names for Security Target mentioned above are current as of the time of writing and are subject to change. Furthermore, SESIP certification and mapping to security standards/regulations do not guarantee compliance with standards/regulations for the entire final product using NXP products. Integration at the final product level and additional measures as required may be necessary. ========================= We are currently unable to respond to comments left in the "Comment" section of this post. We apologize for the inconvenience, but please refer to " Technical Questions to NXP - How to Contact Us (Japanese Blog) " when making an inquiry. (If you are already an NXP distributor or have a relationship with NXP, you may ask your representative directly.) Following the i.MX 94 and i.MX 95 , NXP has announced the MCX A5 family, which features a secure boot loader built into ROM that supports PQC ( Post-Quantum Cryptography) hybrid Secure Boot and Secure Firmware Update. NXP plans to continue expanding its range of PQC-compatible products. NXP Announces New MCX A5 MCU to Simplify Secure Industrial Connectivity | NXP Semiconductors Even though quantum computers are still under development and concrete attacks using quantum computers have not yet begun, adopting products with built-in PQC-compatible secure bootloaders now is extremely important, especially for equipment intended for long-term use, such as industrial equipment. If you are considering addressing the issue later through a firmware update, in particular, you need to understand the significant limitations involved and what needs to be done at the time of product manufacturing to ensure PQC compliance. (Reading time: 10 minutes) i.MX RT Processors i.MX Processors MCX Security Japanese Blog
記事全体を表示
VLM Edge Studio - video analysis fails with PyAV 19.0.0 Symptoms On a clean install of Linux 6.18.37_2.1.0 i.MX Linux image, the VLM Edge Studio demo fails on Video analysis with: "Error: Connection closed" /tmp/connector.log shows: "TypeError: open() got an unexpected keyword argument 'metadata_errors'" Diagnosis torchvision/io/video.py calls: av.open(filename, metadata_errors="ignore") PyAV 19.0.0 no longer supports metadata_errors. Solution Workaround: Remove metadata_errors="ignore" from both av.open() calls in: /usr/share/eiq/aaf-connector/venv/lib/python3.14/site-packages/torchvision/io/video.py Fix: sed -i 's/av.open(filename, metadata_errors="ignore")/av.open(filename)/g' /usr/share/eiq/aaf-connector/venv/lib/python3.14/site-packages/torchvision/io/video.py After restarting VLM Edge Studio, video analysis works. Source: https://github.com/nxp-imx-support/vlm-edge-studio/issues/3 ARA240 DNPU i.MX Application Processors
記事全体を表示
ペイメント用のカード みなさん、こんにちは! 私は自分の街で路上駐車用のNFCとRFIDカードを使った決済システムを開発したいと考えています。利用者はNFC対応の駐車場係員のスマートフォンに自分のカードをかざすだけで手続きが完了する。そして、残高が差し引かれます。モバイルアプリもKotlinで開発する予定です(内蔵機能でNFCスキャンできるように)。このプロジェクトで使うのに最適なカードはどれかおすすめできますか?理由を教えてください! よろしくお願い申し上げます。 Re: Card for Payment NXPはMIFARE DESFire EV3を、クローズドループeペイメント、公共交通機関、アクセス、ロイヤルティ、その他のマルチアプリケーションサービスを含む安全なスマートシティアプリケーション向けに配置しています。 MIFARE DESFire EV3 |セキュア非接触IC |NXP Semiconductors   DESFire EV3はAES-128、相互認証、暗号化RF通信、CMAC、アプリケーションごとの鍵、トランザクションMACおよびその他のセキュリティメカニズムをサポートしています。また、ハードウェアおよびソフトウェアに関して共通基準EAL5+認証も取得しています。 Re: Card for Payment こんにちは、ご回答ありがとうございます! Desfire EV3や他の(クラシック、EV2など)を使う場合の異なるアーキテクトシステムやフローについて教えてもらえますか?例えば、実装面などでしょうか?ありがとう
記事全体を表示
PNEV7642A Rev B 板 你好, 我正在考虑购买PNEV7642A B版评估板。但我找不到这款产品的任何链接或页面,请问您能否提供购买这款滑板的链接? 另外,在为该板查找 NFC 库时,我发现了一个适用于 PN7462 的 NFC 读取器库,而不是适用于 PN7642 的。这个库是否同时支持这两个目标平台? 谢谢。 开发板 Re: PNEV7642A Rev B board 板是: OM27642:PN7642 安全紧凑型 NFC 控制器开发套件,带可编程存储器和加密加速功能 | 恩智浦半导体 您可以从这里下载PN7642 SDK: 集成MCU的顶级NFC前端 | 恩智浦半导体 Re: PNEV7642A Rev B board @jimmychan 谢谢回复。 请问我可以使用哪种调试器来调试这个开发套件(OM27642EVK)? 我可以使用MCU-Link调试探针或PEmicro的Multilink Universal作为编程器/调试器吗? 请注意,MCU-Link 在此链接中并未将 pn7642 列为支持的 IC。 MCU链接 谢谢。
記事全体を表示
用于支付的银行卡 大家好! 我想开发一个使用NFC和RFID卡的支付系统,用于我所在城市的路边停车。流程是:骑手使用NFC功能将停车卡TAP官方停车管理员的手机。然后,扣除余额。我还会使用 Kotlin 开发移动应用程序(这样我就可以使用内置的 NFC 功能进行扫描)。请问您能否推荐一下哪种卡片最适合这个项目?给我一个理由! 谢谢 Re: Card for Payment 恩智浦半导体将MIFARE DESFire EV3定位为面向安全智慧城市应用的方案,包括闭环电子支付、公共交通、门禁、会员积分以及其他多应用服务。 MIFARE DESFire EV3 | 安全免接触式集成电路 | 恩智浦半导体   DESFire EV3 支持 AES-128、相互认证、加密射频通信、CMAC、每个应用程序的密钥、事务 MAC 和其他安全机制。它还获得了硬件和软件的通用准则 EAL5+ 认证。 Re: Card for Payment 您好,先生,谢谢您的解答! 能否告诉我,如果我们使用 Desfire ev3 和其他版本(经典版、ev2 等),架构系统或流程会有哪些不同?例如在实施或其他方面?谢谢
記事全体を表示
Card for Payment Hello, guys! I want to develop payment system using NFC and RFID card for on-street parking di my city. The flow is rider tap his card to official parking attendant's handphone with NFC. Then, balance is deducted. I will develop mobile app also using Kotlin (so I can scan NFC with built-in function). Can you recommend which one is the best card to use in this project? Give me a reason! Thank you Re: Card for Payment NXP positions MIFARE DESFire EV3 for secure Smart City applications, including closed-loop e-payment, public transportation, access, loyalty, and other multi-application services.  MIFARE DESFire EV3 | Secure Contactless IC | NXP Semiconductors   DESFire EV3 supports AES-128, mutual authentication, encrypted RF communication, CMAC, per-application keys, Transaction MAC, and other security mechanisms. It also carries Common Criteria EAL5+ certification for hardware and software. Re: Card for Payment Hi sir, thanks for your answer! Can you tell me about the different architect system or flow if we use desfire ev3 and other (classic, ev2, etc)? Such as in implementation or other? Thank you
記事全体を表示
RW612 出力クロックをピンへ こんにちは、 オシロスコープで測定できるように、ピンにクロック信号を出力する方法のソフトウェア例を探しています。 CLKOUT信号(下の画像参照)で実現できると思いますが、正しく設定できませんでした。 ユーザーマニュアルのこのセクションには、CLKOUTはIOMUX経由でピンにルーティングしなければならないと書かれていますが、MCI_IO_MUX->FSELレジスタでその関数のフィールドを見つけることができませんでした。 製品: WiFi RW6XX Re: RW612 output clock to pin MCUXpressoはクロック生成に役立つかもしれません Re: RW612 output clock to pin こんにちは、 @Niwo さん。 CLKOUTの設定を追加するには、 MCuxpresso Config Toolsを使用することをお勧めします。このツールはMCUのクロックツリーとピンを設定し、対応するAPIを自動的にclock_config.cで生成することを可能にします。pinmux.c、および pinmux.hファイル。 このツールに慣れていない場合は、まずMCUXpresso設定ツールのクイックスタートガイドを確認することをお勧めします。また、ピンやクロックの設定には、MCUXpresso設定ツール26.09のドキュメントの 「Starting with pin/internal signal select 」ガイドや 「Clocks Tool 」セクションも役立つかもしれません。 他に質問がありましたら、お気軽にお知らせください。 BR ハビブ
記事全体を表示
PNEV7642A Rev B board hello, i am thinking of buying PNEV7642A Revision B evaluation board. but do not find any link or page for this product, please can you provide me with a link for buying this board  also when searching the NFC library for this board i did found a NFC Reader Library for PN7462 not for PN7642. does this library support both targets ?? thanks.    Development Board Re: PNEV7642A Rev B board The board is : OM27642: Development Kit for PN7642 Secure Compact NFC Controller with Programmable Memory and Crypto Accelerationemory and crypto Acceleration | NXP Semiconductors You could download the PN7642 SDK from here: Best-in-Class NFC Frontend with Integrated MCU | NXP Semiconductors Re: PNEV7642A Rev B board @jimmychan  thanks for reply, can you tell me what debugger i can use with this development kit (OM27642EVK )?? can i use MCU-Link Debug Probe or PEmicro’s Multilink Universal as programmer/debugger?? please note that MCU-Link does not mention pn7642 as a supported IC here in this link  MCU Link thanks.
記事全体を表示
RW612 输出时钟到引脚 你好, 我正在寻找一个软件示例,说明如何通过引脚输出时钟信号,以便可以用示波器进行测量。 我认为可以用CLKOUT信号实现这一点(参见下图),但我没能正确设置。 用户手册的这一部分提到,CLKOUT 必须通过 IOMUX 路由到引脚,但我无法在MCI_IO_MUX->FSEL 寄存器中找到该功能的字段。 产品:WiFi RW6XX Re: RW612 output clock to pin MCUXpresso 可能有助于生成时钟信号 Re: RW612 output clock to pin 你好@Niwo , 要添加 CLKOUT 配置,我建议使用MCuxpresso 配置工具。该工具允许您配置MCU的时钟树和引脚,并自动在clock_config.c中生成相应的API。pinmux.c,和 pinmux.h文件。 如果您不熟悉此工具,我建议您查看MCUXpresso 配置工具快速入门指南以开始使用。您可能还会发现 MCUXpresso 配置工具 26.09 文档中的“引脚/内部信号选择入门指南”和“时钟工具”部分对配置引脚和时钟很有帮助。 如果您还有其他问题,请告诉我。 BR 哈比卜
記事全体を表示
RW612 output clock to pin Hello, I'm looking for a software example on how to output a clock signal on a pin so it can be meassured with an oscilloscope. I think this could be achieved with the CLKOUT signal (refer to image below), but I wasn't able to set this up correctly.  In this section of the user manual it says that CLKOUT must be routed to a pin via IOMUX, but I wasn't able to find a field for that function in the MCI_IO_MUX->FSEL register. Product: WiFi RW6XX Re: RW612 output clock to pin MCUXpresso could be helpful to generate clock Re: RW612 output clock to pin Hello @Niwo, To add the CLKOUT configuration, I suggest using MCuxpresso Config Tools. This tool allows you to configure the MCU’s clock tree and pins and automatically generates the corresponding APIs in the clock_config.c, pinmux.c, and pinmux.h files. If you are not familiar with this tool, I recommend reviewing the Quick Start Guide for MCUXpresso Config Tools to get started. You may also find the Beginning with pin/internal signal selection guide and the Clocks Tool section of the MCUXpresso Configuration Tools 26.09 documentation helpful for configuring the pins and clocks. Please let me know if you have any further questions. BR Habib
記事全体を表示
PNEV7642A Rev B ボード こんにちは、 リビジョンB評価ボードPNEV7642A購入を検討しています。しかし、この製品のリンクやページは見つからないので、このボードを購入するためのリンクを教えていただけませんか また、このボードのNFCライブラリを検索したところ、PN7462用のNFCリーダライブラリが見つかりましたが、PN7642用ではありませんでした。このライブラリは両方のターゲットをサポートしていますか? ありがとう。 開発ボード Re: PNEV7642A Rev B board ボードは: OM27642:PN7642 セキュアコンパクトNFCコントローラ(プログラム可能メモリ付き)および暗号加速エモリーおよび暗号加速の開発キット |NXP Semiconductors PN7642 SDKはこちらからダウンロードできます: 統合MCUを備えたクラス最高のNFCフロントエンド |NXP Semiconductors Re: PNEV7642A Rev B board @jimmychan ご返信ありがとうございます。 この開発キット(OM27642EVK)で使えるデバッガを教えてもらえますか? MCU-Link Debug ProbeやPEmicroのMultilink Universalをプログラマー/デバッガーとして使えますか? MCU-Linkはこのリンクでpn7642をサポートされているICとして記載していませんのでご注意ください MCUリンク ありがとうございます。
記事全体を表示
如何为 i.MX 95 Neutron NPU 编译和运行 AI 模型(日文博客) 介绍 i.MX 95集成的 eIQ Neutron NPU 可以将 AI 模型推理处理卸载到专用加速器上。但是,并非总是可以直接运行模型;需要进行多项准备工作,包括量化、运算符兼容性以及编译器和目标运行时之间的版本兼容性。 本文概述了将使用 ONNX 或 TensorFlow 创建的模型转换为 TFLite 的完整流程,包括执行 INT8 量化、编译以适配 Neutron NPU、部署到 i.MX 95 以及使用 benchmark_model 评估性能。我们将主要介绍标准且灵活的流程 A ,同时也会介绍利用现有 ONNX 量化环境的流程 B。 *本文并未具体限制人工智能模型的使用;它只是描述了该过程中涉及的步骤。 命令示例适用于 Neutron-S。实际使用时,请务必查看目标系统上已安装的Neutron SDK 、 Yocto BSP和运行时附带的文档和发行说明。 目录 概述 主机端工具安装 转换流程(流程 A 详情) 备选流程:流程 B(ONNX 级量化) i.MX 95 目标的部署和性能评估。 (可选)位精确验证:neutron-runner 支持的算符和量化约束 故障排除/常见陷阱 综上所述   1. 概述 本文概述了在 i.MX 95 中安装的 eIQ Neutron NPU 上运行使用 ONNX 或 TensorFlow 训练的 AI 模型的转换过程。它基于安装 Neutron SDK 后 docs 文件夹中包含的官方文档:“Neutron SDK 用户指南”、“Neutron 编译器用户指南”、“TFLite 分析器/量化器用户指南”、“Neutron Runner 用户指南”、“支持的运算符 (Neutron-S / Neutron-C)”以及i.MX 机器学习用户指南 (UG10166) 。 ℹ️ 注:i.MX 95 中的 Neutron NPU 属于“Neutron-S”架构(子系统类型)。它与 i.MX RT700 等 MCU 中使用的“Neutron-C”架构在转换流程和一些工具选项方面有所不同。本文重点介绍 i.MX 95(Neutron-S)。   1.1 总流量(流量 A:推荐) Neutron SDK 提供的标准流程包括将模型转换为 TFLite 格式,在代表性数据集上对其进行分析,然后使用 INT8 对其进行量化,最后使用 neutron-compiler 将其编译为 NPU。 ℹ️首次用户补充信息 i.MX 95 的 Neutron NPU 实际上运行在为 Neutron NPU 编译的 INT8 量化 TFLite 模型上。此过程最终会将您的 ONNX/TensorFlow 模型转换为这种格式。 根据您准备的预训练模型的格式,起始步骤会有所不同。请参考以下步骤,并从适用于您的步骤开始。 INT8 量化 TFLite 模型:跳过步骤 1-3,从步骤 4 开始。 FP32 TFLite 模型:跳过步骤 1,直接从步骤 2 开始。 ONNX/TensorFlow FP32 模型:执行步骤 1 到 1。 有关每个步骤的详细信息,请参阅以下章节。 程序 工作详情 章节号 ① 将 ONNX 转换为 TFLite FP32 步骤 1:将 ONNX 模型转换为 TFLite FP32 格式。 ② 利用代表性数据集进行分析 步骤 2:FP32 模型分析 ③ 基于配置文件的 INT8 量化 步骤 3:基于配置文件信息的 INT8 量化 ④ 为 Neutron NPU 编译 步骤 4:为 Neutron NPU 编译 ⑤ 根据需要进行位精确验证 6.(可选)位精确验证:neutron-runner ⑥ 将转换后的模型部署到目标平台。 5.2 模型部署 ⑦ 推理执行和性能评估 5.3 性能评估(基准模型)   1.2 两种量化流(流 A / 流 B) Neutron SDK 用户指南定义了获取量化 TFLite 模型的两种流程。 流动 管道 量化工具 特点 流程 A(推荐) ONNX FP32 → TFLite FP32 → TFLite INT8 → 中子转换 tflite-profiler + tflite-quantizer(包含在 Neutron SDK 中) 它提供了高度的量化灵活性。特定的算子可以被排除在量化之外,从而允许映射到中子插值器,同时保持FP精度。 流程 B ONNX FP32 → ONNX INT8 → TFLite INT8 → 中子转换 onnx2quant (eIQ ONNX2TFLite) 当已有基于 ONNX 的量化流水线时,此功能非常有用。但其对运算符排除的细粒度控制有限。 💡 提示:如果您不确定,我们推荐流程 A(tflite-profiler + tflite-quantizer)。如果您希望将某些算符(例如非线性激活函数)映射到中子插值器而不对其进行量化,则流程 A 至关重要。   2. 设置主机端工具 模型转换将在开发主机(Linux/Windows PC)上进行。请从NXP eIQ软件仓库安装以下工具。 # ONNX → TFLite 转换工具 pip安装 eiq-onnx2tflite --index-url https://eiq.nxp.com/repository/# eIQ Neutron SDK(包括 tflite-profiler、tflite-quantizer、neutron-compiler、neutron-runner 等) pip安装 eiq-neutron-sdk --index-url https://eiq.nxp.com/repository/ ℹ️ 注意:开发主机(neutron-compiler)的推荐最低配置:CPU 2GHz 或更高,8 核或更高;内存 4GB 或更高。Neutron-S(例如 i.MX 95)使用约束编程求解器,因此转换时间可能需要几分钟到几十分钟不等,具体取决于模型。 ℹ️如果 pip 安装失败 如果 pip install 在您的内部代理环境中无法完成,请考虑以下选项。 使用 eIQ Toolkit 的 zip 版本— 从eIQ Toolkit 产品页面获取并解压 zip 文件后,您可以在 bin/ 下运行 Neutron 工具。zip 版本使用连字符,例如 tflite-profiler 、 tflite-quantizer 、 neutron-compiler 和 neutron-runner 。而 pip/uv 版本可能使用下划线,例如 tflite_profiler 、 tflite_quantizer 和 neutron_compiler 。但是,zip 版本不包含 onnx2tflite 和 onnx2quant ,必须使用 pip 或 uv 安装。以下命令示例使用与 zip 版本等效的表示法。 使用 uv 进行安装——根据您的环境,这可能比使用 pip install 更成功。 pip install uv uv pip install eiq-onnx2tflite \ --index-url https://eiq.nxp.com/repository/ \ --extra-index-url https://pypi.org/simple/ 如果需要代理,您可能需要配置 http_proxy / https_proxy (包括大写的环境变量)。配置方法取决于贵公司的具体环境。   2.1 Neutron SDK 版本和 Yocto BSP 兼容性 Neutron 驱动程序、固件和编译器必须与 Neutron SDK 版本一致。如果它们不兼容,运行时将输出以下警告。 Microcode version mismatch! Neutron Driver is 3.1.0-0X359f358d but model converted with 3.0.1-0Xd5d7918e. Runtime (driver, firmware) should be aligned with compiler Yocto BSP 版本与 Neutron SDK 版本之间的兼容性(摘录,基于截至 2026 年第三季度的最新 BSP): Yocto BSP 支持的发布周期 默认 Neutron SDK LF_6.12.3_1.0.0 2025年第一季度 1.2.0 LF_6.12.20_2.0.0 2025年第二季度 2.0.2 LF_6.12.34_2.1.0 2025年第三季度 2.1.3 LF_6.12.49_2.2.0 2025年第四季度 2.2.2 LF_6.18.2_1.0.0 2026年第一季度 2.2.3 LF_6.18.20_2.0.0 2026年第二季度 3.1.2 LF_6.18.37_2.1.0 2026年第三季度 3.2.1 其他 Neutron SDK 版本也可以作为“可升级版本”使用,但这种情况下,您需要将目标运行时(驱动程序/固件/委托)更新到相应的版本,并使用相同版本的 neutron-compiler 重新编译模型。详情请参阅《Neutron SDK 用户指南》中的版本兼容性表格。 3. 转换流程(流程 A 详情)   步骤 1:将 ONNX 模型转换为 TFLite FP32 格式。 如果您的模型已经是 TFLite FP32 格式,则无需执行此步骤。请使用 onnx2tflite 工具将您的 ONNX 模型转换为 TFLite 格式。 onnx2tflite -o .tflite .onnx ℹ️ 关于 SDK 版本的说明 -i (输入规范)和 -target (FP32/INT8 切换)在某些 SDK 版本中已弃用。输入 ONNX 文件使用位置参数指定,并在执行前使用 onnx2tflite --help 检查最新选项。如果您更改了输入/输出布局,还请检查您使用的 SDK 中是否存在 --keep-io-format / --no-keep-io-format 以及它们的默认值。   步骤 2:FP32 模型分析 我们使用 tflite-profiler,利用代表性的输入数据集(校准数据)测量每个张量的动态范围(最小值/最大值/直方图)。 ./tflite-profiler \ --input < my_model_fp32 > .tflite \ --dataset <输入数据目录> \ --output < my_model_fp32_profile > .csv ℹ️关于输入数据的说明 这包含一个 float32 格式的 .bin 文件,其尺寸与模型的输入尺寸相匹配。对于图像模型,您可以使用 SDK 中包含的 scripts/serialize_image.py 进行调整大小、归一化并转换为 float32 格式 .bin 。当没有代表性数据集时,可以使用 --use_random_data 进行形状验证和通信验证,但不适用于精度验证。 ./tflite-profiler \ --input < my_model_fp32 > .tflite \ --use_random_data \ --random-data-samples 10 \ --output < my_model_fp32_profile > .csv 通常认为,200 到 1000 个样本的样本量足以构建具有代表性的数据集。为了验证量化结果的准确性,建议使用一个未用于校准的独立验证数据集。   步骤 3:基于配置文件信息的 INT8 量化 我们将使用 tflite-quantizer 根据步骤 2 中生成的配置文件 (CSV) 执行 INT8 量化。 ./tflite-quantizer \ --input < my_model_fp32 > .tflite \ --profile < my_model_fp32_profile > .csv \ --output < my_model_quantized > .tflite 主要量化参数(默认值)如下: 选项 说明 默认值 --quantization-constant-type 权重量化数据类型 INT8 --quantization-constant-type-bias 具有偏差的量化数据类型(Conv2D/FC 等) INT32 --quantization-variable-type 激活的量化数据类型 INT8 --quantization-constant-granularity 权重量化粒度(PTQ/PCQ) PCQ(每通道) --quantization-constant-schema 权重量化方案 对称 --quantization-variable-schema 激活量化方案 不对称 --quantization-calibration-method 校准方法(最小值/最大值/百分位数) 最小最大值 要将特定算子排除在量化之外,请使用 --quantize-operator-types-except (例如, ADD,AVERAGE_POOL_2D )。像 LayerNorm 这样对量化敏感的复合算子也可以使用 layernorm 排除。 💡 提示:量化后,您可以使用 --run-after-quantize 选项通过虚拟输入验证操作(仅对标准 INT8 量化配置有效)。 ℹ️关于 SDK 版本的补充信息 量化选项可能因 SDK 而异。在我们的验证环境中,SDK 3.2.3 已确认可与表格中所示的选项以及 --quantization-constant-granularity PCQ 配合使用,但请务必在使用前使用目标 SDK 的 tflite-quantizer --help 进行验证。   步骤 4:为 Neutron NPU 编译 使用 neutron-compiler 为 i.MX 95 Neutron NPU 编译量化的 TFLite 模型。 ./neutron-compiler \ --input < my_model_quantized > .tflite \ --output < my_model_converted > .tflite \ --target imx95 中子编译器分以下三个阶段执行转换: 步 内容 ① 优化 将图转换为符合 Neutron 硬件约束的数学等价形式(图路径)。 ② 提取物 将 NeutronOperator 中的对应运算符按层次结构映射到 NeutronGraph 中的自定义运算符。 ③ 生成 微代码/权重/内核的分块、调度、内存分配和二进制生成。 您可以使用以下命令查看支持的目标和运算符类型列表。 neutron-compiler --show-targets neutron-compiler --show-operator-types neutron-compiler --target imx95 --show-kernel-kinds   3.1 主要编译器选项 选项 说明 --target 要转换的目标 Neutron 对象(例如 imx95)。如果省略,则默认为 mcxn94x。 --output 输出文件路径。如果省略,则会在输入文件名后附加 _compiled 。 --dump-statistics / --dump-statistics-file 将周期估算统计信息(根据 NeutronGraph)输出到控制台/文件。 --optimization-level OFast :快速启发式算法(默认)/ OOpt :使用ILP/SAT求解器求解最优解(转换时间较长) --include-operator-types / --exclude-operator-types 指定要映射到/排除在 NPU 之外的运算符类型。 --min-num-ops-per-graph 要提取为 NeutronGraph 的最小算子数量。较小的图针对 CPU 执行进行了优化。 --use-profiling / --use-profiling-tick-trace 启用实际硬件上的运行时性能分析(内核级/时钟周期级) --keep-graphs 保留中间图(这是中子运行器中进行位精确验证所必需的)。 --force-determinism 这样可以抑制求解器中的多线程争用,并获得明确的转换结果(转换时间大约增加 2-3 倍)。 ℹ️ 注意:由于 Neutron-S(i.MX 95 等)编译器使用约束编程求解器,因此对同一模型进行多次转换时,生成的微代码(尤其是 TCM 地址)可能会略有不同。这是因为多线程竞争会导致选择多个最优解之一,而所有解都是正确的。如果需要确定性,请使用 --force-determinism 。   4. 备选流程:流程 B(ONNX 级别量化) 如果您的现有流程依赖于 ONNX 级别的量化( onnx2quant ),您也可以使用以下流程。与流程 A 相比,该流程对运算符排除的细粒度控制更为有限。 程序 实施细节 使用的工具/主要交付成果 1 将 ONNX FP32 模型量化为 INT8 onnx2quant , model_int8.onnx 2 将 ONNX INT8 转换为 TFLite INT8 onnx2tflite , model_int8.tflite 3 为 Neutron NPU 编译 neutron-compiler --target imx95   # ① ONNXレベルでINT8量子化 # -cには入力テンソル名と.npyキャリブレーションデータのディレクトリを指定 onnx2quant .onnx -o .onnx -c " ; " # ② ONNX INT8 → TFLite INT8変換(QDQ形式の場合) onnx2tflite --qdq-aware-conversion -o .tflite .onnx # ③ Neutron NPU用コンパイル neutron-compiler --input .tflite --output .tflite --target imx95 ℹ️流程 B 笔记 onnx2quant 然后,需要指定 -c (校准数据规范)或 -u (随机校准数据)。对于多个输入模型,请为每个输入指定 -c 。将 ONNX 转换为 QDQ 格式时,请使用 --qdq-aware-conversion 。执行前,请使用 onnx2quant --help / onnx2tflite --help 检查所用 SDK 的选项。   5. 部署到 i.MX 95 目标平台及性能评估   5.1 Neutron 运行时配置 i.MX 95 (Neutron-S) 的 Neutron 运行时由以下三个组件构成: 组件 文件 地点 中子固件 NeutronFirmware.elf /lib/firmware/ 中子驱动器 libNeutronDriver.so /lib/ TensorFlow Neutron Delegate libneutron_delegate.so /lib/ ⚠️ 注意:更新运行时环境前务必备份现有文件。如果驱动程序、固件和编译器版本不匹配,则会显示“微代码版本不匹配”警告,并且系统可能变得不稳定。   5.2 模型部署 将转换后的 TFLite 模型( .tflite )复制到 i.MX 95 目标板(使用 scp 等)。   5.3 性能评估(基准模型) 我们将使用 NXP Yocto BSP 中包含的 TensorFlow Lite benchmark_model 应用程序,并通过 Neutron Delegate 进行性能评估。 /usr/bin/tensorflow-lite-2.19.0/examples/benchmark_model \ --graph = .tflite \ --external_delegate_path = /usr/lib/libneutron_delegate.so \ --enable_op_profiling = true \ --num_threads = 5 示例输出(按节点类型汇总): Number of nodes executed: 26 ============================== Summary by node type ============================== [Node type] [count] [avg ms] [avg %] [cdf %] [mem KB] [times called] NeutronDelegate 1 2.882 87.919% 87.919% 0.000 1 Slice (ND, X8) 10 0.175 5.339% 93.258% 0.000 10 CONCATENATION 2 0.096 2.929% 96.187% 0.000 2 Unary Elementwise (NC) 2 0.078 2.379% 98.566% 0.000 2 Copy (NC, X8) 11 0.047 1.434% 100.000% 0.000 11 Timings (microseconds): count=270 first=3372 curr=3303 min=3015 max=3537 avg=3290.54 std=76 26 nodes observed 💡 提示: “NeutronDelegate”行中较高的平均百分比表示大部分计算已卸载到 NPU。其他节点(例如切片、连接等)则在 CPU 上执行。如果此比例较低,则可能是由于不支持的运算符导致性能瓶颈,因此请查看“支持的运算符”文档中每个运算符的限制。   6.(可选)位精确验证:neutron-runner neutron-runner 是一款用于验证由 neutron-compiler 转换的模型是否能产生与 Neutron Golden Kernel(参考实现)完全匹配的结果的工具。它不用于生产环境部署,但可用于在迁移过程中验证模型的正确性。 项目 中子模 原版模式 目标模型 使用中子编译器将模型转换为 --keep-graphs 标准 TFLite 型号(FP32/FP16/INT8) 目标 IMX95、IMXRT700 不适用 目的 使用黄金内核进行位精确验证 参考运行(用于比较的基准) 典型的验证工作流程: # ① 启用 --keep-graphs 进行编译 neutron-compiler --input model.tflite --output model_neutron.tflite --target imx95 --keep-graphs # ② 使用 Neutron 运行时(黄金内核)执行 neutron-runner --input model_neutron.tflite --dataset inputs/ --use-neutron-runtime = true --target imx95 # ③ 使用 Vanilla 运行时(参考)运行 neutron-runner --input model.tflite --dataset inputs/ --use-neutron-runtime = false # ④ 比较结果 diff model_neutron_results_0.bin model_results_0.bin ℹ️ 注意:Neutron Golden Kernel 不支持的操作符将自动回退到 TFLite Vanilla 实现。执行完成后,控制台将显示回退的操作符列表。 在 pip 安装环境中 neutron-runner 的执行路径 在 pip/uv 版本中,不会生成 neutron-runner Python 包装器,您可能需要直接在站点包中指定 ELF 二进制文件。 /eiq_neutron_sdk/bin/neutron-runner \ --input model_neutron.tflite \ --dataset inputs/ \ --use-neutron-runtime=true \ --target imx95 在 eIQ Toolkit 的 zip 版本中,像往常一样执行 bin/neutron-runner 。   7. 支持的算符和量化约束 中子编译器对可映射到NPU的运算符存在一些常见限制。不满足这些限制的运算符将回退到CPU执行。   7.1 通用约束(Neutron-S / Neutron-C 通用) 张量的形状必须是静态的(固定的)(批次大小 N 固定为 1;Neutron-C 部分支持可变批次)。 张量类型为 UINT8 / INT8 / INT16 / INT32 / INT64 之一。 张量布局为 NHWC(TFLite 标准)。 量化标度必须为正的 FLOAT32 值。 使用 PTQ 或 PCQ 对权重进行对称量化(偏移量 = 0)。 使用 PTQ 或 PCQ 对偏差进行对称量化,其尺度为 input_scale × weights_scale 不符合上述约束条件的图层将不会映射到 NPU。   7.2 i.MX 95 (Neutron-S) 支持的主要运算符 CONV_2D , DEPTHWISE_CONV_2D , FULLY_CONNECTED , ADD , SUB , MUL , AVERAGE_POOL_2D , MAX_POOL_2D , CONCATENATION , PAD , PADV2 , RESHAPE , RESIZE_BILINEAR , RESIZE_NEAREST_NEIGHBOR , MEAN , SUM , LOGISTIC , TANH , HARD_SWISH , PRELU , LEAKY_RELU ,RELU 系统, TRANSPOSE_CONV , UNIDIRECTIONAL_SEQUENCE_LSTM 等(有关详细约束,请参见 SupportedOperatorsS.md )。 ⚠️ 注意:支持的运算符列表会随着 Neutron Compiler 的每个版本而更新(例如,3.2.1 版本支持 Group Conv2D,3.1.1 版本添加了 CAST/SELECT/UNIDIRECTIONAL_SEQUENCE_LSTM)。请务必查看您正在使用的 SDK 版本的发行说明。   8. 故障排除/常见陷阱 症状 原因 处理 微代码版本不匹配警告 驱动程序/固件/编译器版本不匹配 所有组件均已重新转换和重新排列,以匹配相同的 Neutron SDK 版本。 NeutronDelegate 的平均百分比较低(NPU 利用率低)。 该模型包含许多不支持的操作符(例如 Resize/Reduce)。 检查支持的运算符中的约束,用替代运算符替换它们,或者在保持运算符为 FP 的同时,手动将运算符映射到插值器。 量化后准确度显著下降。 校准数据缺乏代表性,或者特定操作员对量化敏感。 增加校准样本数量(200-1000)。排除 LayerNorm 和类似值,使用 --quantize-operator-types-except 中子编译器转换速度极慢。 使用 OOpt 优化级别或大型模型 首先,使用 OFast(默认)进行检查。仅在需要最高性能时才使用 OOpt(最多使用 16 个核心,会增加转换时间)。 在中子跑者中,一些操作符会回退到原始状态。 黄金内核不支持某些运算符。 未发现问题(运行正常)。请检查备用方案列表,确保它不会影响性能。 未找到命令( command not found ) 命令名称和位置因安装方法而异。 对于 pip/uv 版本,请检查站点包中的下划线表示法和实际路径;对于 zip 版本,请检查连字符表示法和 bin/ onnx2tflite 选项错误,错误代码为 onnx2quant 随附文档与 SDK 版本之间的差异 执行前,请用 --help 检查当前选项名称。   综上所述 本文概述了在 i.MX 95 Neutron-S NPU 上运行 AI 模型的标准转换流程。对于实际应用而言,以下三点尤为重要: 请确保 Neutron SDK 和目标运行时版本匹配。驱动程序、固件、委托和编译器之间的不一致将导致 Microcode version mismatch 。 首先,使用流程 A 检查量化和算子之间的对应关系。使用代表性数据集进行性能分析,可以更轻松地调整精度和与 NPU 的映射关系。 逐个检查 benchmark_model 的结果。如果除了 NeutronDelegate 之外还有许多其他操作,则可能是由于使用了不支持的操作或数据转换导致性能瓶颈。 模型精度、NPU卸载率和推理延迟会因模型结构、量化设置、输入数据和SDK版本而异。建议先从小型模型入手,在真机上进行转换和评估,如果没有出现问题,再逐步应用到目标模型。 本文中的命令示例和相关信息可能因您使用的 Neutron SDK 版本而异。有关最新的官方规范,请参阅 SDK 随附的文档和发行说明。 ========================= 即使您在本文的“评论”栏留言,我们目前也无法回复。 给您带来不便,我们深感抱歉。请在询问时参阅“NXP技术问题-联系方式(日本博客)”。 (如果您已经是NXP的代理商或与其有合作关系,可以直接向负责人咨询。) 这是一份关于在i.MX 95的 eIQ Neutron NPU 上运行 AI 模型的实用指南。 本文档解释了将 ONNX/TensorFlow 模型转换为 TFLite、将其量化为 INT8、将其编译为 Neutron NPU、将其部署到目标以及使用 benchmark_model 评估其性能的过程。 (阅读时间:20分钟)*实际编译时间会因型号而异。 i.MX 处理器 技术聚焦 日本博客
記事全体を表示