Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
i.MX 93 Processor: Explaining Secure Boot Signing and Authentication Recently, legal regulations such as the Cyber Resilience Act (EU) and JC-STAR (Japan) are being established around the world. Secure boot is also included among these technical requirements, and you may have heard of it as an important function. However, many users actually use Secure Boot without understanding how it works. Therefore, I would like to explain how it works using i.MX 93 Secure Boot (AHAB) as an example. table of contents i.MX 93 AHAB Signature and Authentication Mechanism 1. Containerizing the image 2. Add the public key and signature to the container 3. Authenticating Signed Containers 4. Authenticating Signed Containers in U-Boot i.MX 93 AHAB Signature and Authentication Mechanism¶ This article explains how the i.MX 93 processor's Advanced High Assurance Boot (AHAB) signing and authentication works. The i.MX 93 boot file is in a unique container format. Secure boot using AHAB adds a public key and signature to the container, and when the device boots, it authenticates the public key included in the container and verifies that the contents of the container have not been altered, preventing the launch of unauthorized software. 1. Containerize the image¶ Keita_Nagashima_0-1765854081919.png Fig. 1 Containerizing an image¶ Images that i.MX 93's BOOTROM and U-Boot load into memory and use must be converted to container format beforehand. Note The image here refers to U-Boot-SPL, U-Boot, ATF, OPTEE, M-Core SW, Kernel, DTB, Ramdisk, and any other data you want to place in memory. Details of the container format can be found in the System Boot chapter of the i.MX 93 Applications Processor Reference Manual . To containerize the image, use imx-mkimage and the included tool called mkimage_imx8 . When a container is generated, a Container Header is added to the beginning of the container file. This includes an ImageArray that collects the offset, size, hash value, etc. of each image, and a Signature Block where the public key and signature for secure boot are written. The Signature Block is generated in a mostly empty state. Multiple images can be combined into one container, and the image data will be concatenated to the end of the container file. 2. Add public key and signature to container¶ Keita_Nagashima_1-1765854199747.png Fig. 2 Adding a public key and signature to a container¶ To prevent unintended use of containers on i.MX 93 devices and to detect any alteration of the container contents, a public key and signature are added to the container using the Code Signing Tool (hereafter referred to as CST). First, generate a Super Root Key (SRK). The script ahab_pki_tree.sh included in the CST generates the CA and SRK1 to SRK4. The SRK consists of a pair of public and private keys, and the private key must be kept secret. Using srktool included in the CST, an SRK Table is generated by concatenating the four public keys SRK1 to SRK4. At the same time, an SRK Hash, which is the SHA-256 of the SRK Table, is also generated. The SRK Hash is written to the SRK_HASH fuse of the i.MX 93 device. The SRK should be preserved for the long term until the end of the i.MX 93 device lifecycle. Next, cst in the CST will attach the public key and signature to the container. The SRK Table generated earlier is written to the SRK Table field of the Signature Block. The area from the beginning of the Container Header to the end of the SRK Table field is signed using one of the SRK private keys. The signature data is written to the Signature field of the Signature Block. 3. Authenticating Signed Containers¶ Keita_Nagashima_2-1765854309584.png Fig. 3. Signed container authentication¶ First, calculate the SHA-256 of the SRK Table on the container, and if it matches the contents of the SRK_HASH fuse on the i.MX 93 device, you can authenticate that the SRK Table is the same as the SRK used for signing. Once the SRK Table is authenticated, the SRK public key and signature data contained in the SRK Table can then be used to verify whether the area from the beginning of the Container Header to the end of the SRK Table field has been altered. Finally, if you can verify that the Container Header has not been altered, you can verify that the images have not been altered by comparing the hash value written in the ImageArray with the hash value of each Image. 4. Authenticating Signed Containers in U-Boot¶ The U-Boot command auth_cntr is used to authenticate signed containers in U-Boot. https://github.com/nxp-imx/uboot-imx/blob/lf-6.6.36-2.1.0/arch/arm/mach-imx/ele_ahab.c#L811-L815 auth_cntr When the command is executed, the do_authenticate function is called, which calls the authenticate_os_container function. https://github.com/nxp-imx/uboot-imx/blob/lf-6.6.36-2.1.0/arch/arm/mach-imx/ele_ahab.c#L400-L416 The authenticate_os_container function calls the ahab_auth_cntr_hdr and ahab_verify_cntr_image functions. https://github.com/nxp-imx/uboot-imx/blob/lf-6.6.36-2.1.0/arch/arm/mach-imx/ele_ahab.c#L330-L398 The ahab_auth_cntr_hdr function calls the ele_auth_oem_ctnr function. The ahab_verify_cntr_image function calls the ele_verify_image function. https://github.com/nxp-imx/uboot-imx/blob/lf-6.6.36-2.1.0/arch/arm/mach-imx/ele_ahab.c#L261-L278 https://github.com/nxp-imx/uboot-imx/blob/lf-6.6.36-2.1.0/arch/arm/mach-imx/ele_ahab.c#L297-L309 The ele_auth_oem_ctnr and ele_verify_image functions send commands to ELE and receive results from ELE. https://github.com/nxp-imx/uboot-imx/blob/lf-6.6.36-2.1.0/drivers/misc/imx_ele/ele_api.c#L76-L104 https://github.com/nxp-imx/uboot-imx/blob/lf-6.6.36-2.1.0/drivers/misc/imx_ele/ele_api.c#L134-L161 You can check the authentication result with the U-Boot ahab_status command. The main error codes are as follows: Table 1 Major error codes for the ahab_status command¶ Error Code What the error means Situations in which the error occurs ELE_NO_AUTHENTICATION_FAILURE_IND (0xEE) No authentication was performed. You tried to authenticate an unsigned container. ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) The fuse SRK_HASH does not match the HASH in the SRK Table of the signed container. - Attempting to authenticate a signed container on a device where nothing is written to the fuse SRK_HASH. - An attempt was made to authenticate a container signed with an SRK that is not included in the SRK Table used when generating the FUSE SRK_HASH. - The SRK table of the signed container has been rewritten. - The SRK table for the signed container could not be loaded correctly (it was not written correctly in memory). ELE_BAD_SIGNATURE_FAILURE_IND (0xF0) The signature is incorrect. - The signed region of a signed container has been rewritten. - The signature of a signed container has been rewritten. - One of the above could not be loaded correctly. (It was not written correctly in memory.) ELE_BAD_HASH_FAILURE_IND (0xF1) The image hash is different from the hash written in the image array. - The image of the signed container has been rewritten. - The signed container image could not be loaded correctly (it was not written correctly in memory).   Note These error codes can be observed in the OEM Open state. In the OEM Closed state, the device stops when an error occurs, so no error codes are displayed. This document is a reference for using NXP products. For official specifications, please refer to the product manual and application notes. Actual operation may differ from the contents described due to differences in various conditions, such as the version of the software used. Not all functions have been verified, so please be sure to verify and test the product to suit your intended use. Next time, I would like to explain how Secure Boot (AHAB) is implemented and works. Article: i.MX 93 Processor: How to Implement Secure Boot - Practical Guide (Japanese blog)   =========================​ We are currently unable to respond to comments in the " Comment " section of this post . We apologize for the inconvenience, but when making inquiries, please refer to " How to contact NXP with technical questions ( Japanese blog ) " . (If you are already an NXP distributor or have a relationship with NXP , you may contact the person in charge directly. ) Recently, legal regulations such as the Cyber Resilience Act (EU) and JC-STAR (Japan) are being established around the world. Secure boot is also included among these technical requirements, and you may have heard of it as an important function. However, many users actually use Secure Boot without understanding how it works. Therefore, I would like to explain how it works using i.MX 93 Secure Boot (AHAB) as an example. i.MX Processors Security Japanese Blog
View full article
在 imx8mp 上使用 rproc 希望你一切都好。这可能是一组零星的问题,但我是 Yocto 和异构芯片的新手。如有任何帮助,我们将不胜感激。 我使用的是使用 imx8mp 的Kontron 底板。我可以通过 SD 卡在 A 核上构建并运行 Yocto,同样,我也可以在 M 核上运行代码。但是后者是使用 U-启动 完成的,现在我想将其移到使用 rpmsg 功能进行 rproc 控制。 我用 menuconfig 启用了驱动程序,现在加载 Linux 时,我在 sys/class/ 中看到了 remoteproc 文件夹。然而,它是空的。我相信这意味着它没有在设备树中启用。如果我的理解有误,请纠正我,我想按以下步骤操作: 修改设备树以为 TCM 保留内存(并启用邮箱?)。 用叠加法来完成,而不是修改调入的 dtb 文件。 使用配方/层将其添加到内核版本中。 我找到了这份imx linux rproc 支持文档,但它没有告诉我如何像上面描述的那样加载覆盖层,也没有告诉我不同的加载方法。 我的模糊问题是 我朝着设备树的方向冲错树了吗?"的" 方式是什么? 我的最终目标是我用 Yocto 构建所有东西,将图像闪存到板上,无需进一步的板互动。这可能吗? 更尖锐的问题: 如何在 Yocto 版本时应用叠加层? imx linux rproc 支持文档提到了rproc DTS 节点和使用的内存节点。只需要做这些改动吗? 提前感谢! i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Yocto Project Re: Using rproc on the imx8mp 嗨,@waker、 我用设备树冲错树了吗?什么是 “完成” 的方式? 你说得对:完成的方法是在 DT 中启用 i.MX remoteproc 节点,保留固件和 RPMsg 使用的内存区域(ITCM/DTCM 或 DDR、vrings、vdev 缓冲区、可选资源表),然后连接 rpmsg‑virtio 使用的邮箱(MU)。i.MX 的内核 rproc 驱动程序(imx-rproc)需要这些 DT 节点;如果存在,你会在 /sys/class/remoteproc/ 下看到 remoteproc0。 如何在 Yocto 版本时应用叠加层? 您可以按照以下指南实现这一目标: https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/How-to-use-Devshell-to-compile-device-tree-files/ta-p/1727428 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/How-to-compile-Linux-Kernel-Image-and-device-tree-using-Yocto/ta-p/2022759 我的最终目标是我用 Yocto 版本所有东西,将图像闪存到板上,无需进一步的板互动。这可能吗? 是的,你可以根据需要生成合适的补丁并将补丁应用到Yocto Project。 imx linux rproc 支持文档是否提到了 rproc DTS 节点和使用的内存节点。只需要做这些改动吗? 是的。 你可以查看我们的 imx8MP-EVK 板的演示和设备树作为参考。 要启用虚拟通道,必须在系统中安装一个内核模块,如我们在示例中所述。 https://github.com/nxp-mcuxpresso/legacy-mcux-sdk-examples/tree/main/evkmimx8mp/multicore_examples/rpmsg_lite_str_echo_rtos https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/arch/arm64/boot/dts/freescale/imx8mp-evk-rpmsg.dts 敬上, Chavira Re: Using rproc on the imx8mp 感谢您的回复,我已经将设备树加载到系统上(附上了经过修改的 Kontron 提供的设备树)。我可以看到这是预留内存目录: root@kontron-mx8mp:~# ls /proc/device-tree/reserved-memory/ '#address-cells' m4@0x10000000 m4@0x800000 name '#size-cells' vdev0vring1@55008000 dsp@92400000 m4@0x7E0000 m4@80000000 ranges vdev0vring0@55000000 vdevbuffer@55400000 但是,远程程序目录(/sys/class/remoteproc/)是空的,我读过这是设备树中的内存问题。知道我哪里出错了吗? 可能还值得一提的是,我在启动时看到了以下内容: [ 13.286497] remoteproc remoteproc0: releasing imx-rproc 我还使用您提到的evk rpmsg dts 进行了校准,但没有成功。我也遇到了同样的问题。 Re: Using rproc on the imx8mp 我在启动时也看到了这个: `[13.289371] 平台 imx8mp-cm7:延迟探测等待中`
View full article
DMS on iMX93 FRDM Hi Team, Has anyone implemented or evaluated a Driver Monitoring System (DMS) demo on the i.MX93 FRDM platform? I am specifically looking for details or references related to the following features: Face detection Face landmark detection Iris / eye landmark detection Driver behavior detection such as smoking and phone usage If any demo, reference design, SDK example, or partner solution is available, please share the details or relevant documentation. Thanks in advance for your support. Best regards, Ajnas FRDM-Training Re: DMS on iMX93 FRDM Hi @ajnas-c, Thank you for contacting NXP Support! You can check a detailed information and source code about this demo in the link below: https://github.com/nxp-imx-support/nxp-demo-experience-demos-list/tree/lf-6.12.3_1.0.0/scripts/machine_learning/dms Best Regards, Chavira
View full article
リクエスト: CMS ECDH の SIMW Top PKCS#11 (SE05X) に C_UnwrapKey を実装する NXPチームの皆様、こんにちは。 SE05X で CMS ECDH ハンドルのみの復号化を有効にするには、SE05X SDK PKCS#11 に実装された C_UnwrapKey (AES-CBC/AES-CBC-PAD) が必要です。 現在、C_UnwrapKey は sss_pkcs11_pal_core.c で CKR_FUNCTION_NOT_SUPPORTED を返します。このフローでは、派生した AES ハンドルと CMS からの 16 バイトの IV を使用して、CMS CEK オントークンをアンラップする必要があります。 よろしく ヴィシュワ Re: Request: Implement C_UnwrapKey in SIMW Top PKCS#11 (SE05X) for CMS ECDH こんにちは、 全体的なアイデアとしては、EC キーを使用して OpenSSL CMS を使用してデータを暗号化および復号化することです。 参考までに、OpenSSL コマンドを以下に示します。 pkcs11-tool --module /usr/lib/libsss_pkcs11.so --slot 1 --keypairgen --key-type EC:prime256v1 --label "sss:20202022" OPENSSL_CONF=engine.conf openssl req -engine pkcs11 -new -key "pkcs11:object=sss:20202022;type=private" -keyform engine -out ec_req.pem -x509 -subj "/CN=Test EC" -days 365 OPENSSL_CONF=engine.conf openssl x509 -engine pkcs11 -signkey "pkcs11:object=sss:20202022;type=private" -keyform engine -in ec_req.pem -out ec_cert.pem openssl cms -encrypt -binary -outform DER -aes128 -in smcont.txt -recip ec_cert.pem -out test_ec.cms OPENSSL_CONF=engine.conf openssl cms -decrypt -binary -inform DER -engine pkcs11 -keyform engine -inkey "pkcs11:object=sss:20202022;type=private" -recip ec_cert.pem -in test_ec.cms -out smtst.txt Re: Request: Implement C_UnwrapKey in SIMW Top PKCS#11 (SE05X) for CMS ECDH こんにちは@vishwaec08 、 あなたの機能リクエストを専門チームに転送しましたので、そこからフィードバックが届き次第お知らせします。 ご辛抱いただきありがとうございます! すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - スレッドは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいスレッドを開いて、閉じたスレッドを参照してください。 ---------------------------------------------------------------------------------
View full article
FreeMaster 3.2 not working with S32k344 Hello NXP MBDT Team, I am working freemaster3.2 on S32k344 and MBDT1.5. I am facing a weird issue like, when I am configuring the single CAN0 with single Rx-Tx CAN object, the free master works. But on configuring more CAN instances with respective single Rx-Tx object the free master stopped working. i have attached the model for your reference where I am calling the free master APIs, because the same issue was face with free master block also.   Re: FreeMaster 3.2 not working with S32k344 Hello May I ask why do you custom code for the FreeMASTER? Why don't you use the included blocks for FreeMASTER? Moreover, if you don't have any hard limitation, I recommend you to install the latest version for S32K3 Toolbox (v1.8.0).  Best regards, Sorin Bancila Re: FreeMaster 3.2 not working with S32k344 I want to stick to MBDT 1.5. We have performed multiple tests using the FreeMASTER blocks provided with the toolbox, but the results show that FreeMASTER is not working properly. Could you please check the model shared in the previous post and make it work for me, or provide a similar model that is compatible with and works correctly with MBDT 1.5? Thanks Re: FreeMaster 3.2 not working with S32k344 Can anyone get the issue.
View full article
iMX RT700 EVK 访问 SDIO 卡 尝试访问 RT700 EVK 上的 1.8V SDIO 卡。使用带调试语句的增强型示例,将跳线 JP65 和 JP66 设置为 1-2。 SDCARD fatfs freertos 示例。 已插卡。 SDCARD fatfs freertos 示例。 已插卡。 --- SD 卡初始化 --- SD 卡初始化失败!状态:1834 可能的原因: - 卡不支持 1.8V 信号 - 电压开关故障 - 卡通信错误 正在尝试基本的卡片检测... 过流调节(OCR):0x 0 标志:0x 0 Re: iMX RT700 EVK accessing SDIO Card 嗨,@MikeAtPhantom、 非常感谢您关注我们的产品并使用我们的社区。 请仔细查看自述文件。 我为你做了一个测试,SDK 演示运行正常。 硬件:MIMXRT700-EVKJP65 1-2 已连接 SW: mimxrt700evk_sdcard_fatfs_freertos_cm33_core0 SD: 闪迪至尊高速 32G mayliu1_0-1768795490345.png 请使用推荐的 SD 卡,并尝试重新运行示例。 顺祝商祺! MayLiu
View full article
S32K396-BGA-DC1 イーサネット コネクティビティ S32K396 でイーサネットを使用することを検討し、コネクテッドのオプションを調査しています。 S32X-MB で利用可能な T1S PHY を使用できるという前提で、S32K396-BGA-DC1 を S32X-MB とともに購入しましたが、S32K396-BGA-DC1 はデフォルトで PHY 信号を MB コネクタではなく別の PHY 接続に配線するため、偶然にも SPI などの提供されている例の多くも破壊されてしまいます。 S32K396-BGA-DC1 ボード上のストラップ抵抗器が、代わりに MB 接続を使用するために再配線される場所にあるかどうかは完全には明らかではありません。デザインリソースではガーバーのみが提供されており、ネットとコンポーネントの情報が欠落しているため、ボード設計の操作が不必要に困難になっています。ボード用の、もっと簡単に理解できるデザインリソースはありますか? あるいは、S32K396-BGA-DC1 の PHY コネクタで動作する PHY ボードはどれですか? Re: S32K396-BGA-DC1 ethernet connectivity はい、100BASE-T1 を意味しました。 抵抗器を見つけることができました。検索可能なメタデータがない状態でボードを視覚的に検索する必要がある場合、非常に時間がかかります。 TJA1103-SDBR ボードの入手可能性は少し低いです。MACSEC を使用していない場合でも、TJA1104-SDBR は動作すると思われます。 Re: S32K396-BGA-DC1 ethernet connectivity こんにちは@Henrik-Wiresさん、 念のためお伝えしますが、 S32X-MBにはT1S PHYはありません。100BASE-T1のTJA1103が搭載されています。 はい、S32K396 の EMAC はデフォルトで SABRE コネクタにルーティングされます。PCBに関しては、利用できるファイルはもうありません。ただし、PCB 上の白いラベルのおかげで、ストラップ抵抗器の位置を特定することができます。 または、 https://www.nxp.com/part/TJA1103-SDBRS32K396-BGA-DC1 の SABRE コネクタに適合します。 PavelL_0-1768555252868.png TJA1103-SDBR は、TXC でクロックを生成するために rev-RMII モードにする必要があります -> ジャンパー 2-3 を CONFIG4 に追加します。 PavelL_1-1768555489363.png よろしくお願いいたします。 パベル Re: S32K396-BGA-DC1 ethernet connectivity こんにちは@Henrik-Wiresさん、 はい、 TJA1104-SDBR は TJA1103-SDBR と同様に動作するはずです。 よろしくお願いいたします。 パベル Re: S32K396-BGA-DC1 ethernet connectivity CONFIG を確認するようお知らせいただきありがとうございます。配信時のデフォルト構成は「異なります」。
View full article
HSEデータは複数回のソフトリセット後にのみメモリに反映されます 実行した手順: 1. HSE ELFファイル(HSEメモリ位置にプログラムされたHSEデータバイトを含む)をCycloneイメージ作成者に提供します。 2. Cyclone .sapを作成するHSE を有効にしてプログラムするためのファイル。 3. .sapをフラッシュするJTAG 経由で Cyclone デバッガーを使用して S32K312 ボード上のファイルを実行します。 4. 電源を入れ直します。 5. ワークスペースをロードし、メモリ内の HSE データを検証します。 6. デバッガーを介して複数のソフト リセットを実行します。 観察された動作: • 最初の電源サイクル後、HSE データはすぐにはメモリに反映されません。 • HSE データは、複数回のソフト リセット後にのみメモリに表示されます。(問題) • 遅延を許可しようとしましたが、それでも同じ動作でした 質問: • HSE データをメモリに反映するには、なぜ複数のソフト リセットが必要なのでしょうか? • 推奨される回避策はありますか (例: リセット シーケンス、構成の変更)? Re: HSE data reflected in memory only after multiple soft resets こんにちは@abdul_rahiman_csg まず、「HSE ELF ファイル (HSE メモリ位置にプログラムされた HSE データ バイトを含む) を提供する」とはどういう意味ですか? HSE ファームウェアがインストールされている場合、HSE セキュア メモリ (HSE ファームウェア、HSE データ) への排他的アクセス権は HSE のみに与えられます。セキュア メモリはメモリ マップから削除され、ユーザーはまったくアクセスできなくなります。 よろしくお願いいたします。 ルーカス Re: HSE data reflected in memory only after multiple soft resets abdul_rahiman_csg_2-1768208452453.png abdul_rahiman_csg_1-1768208292577.png このELFには、アドレス範囲にプログラムされたHSEデータが含まれています。 0x004D2000~0x004D2060および 0x1B000000~0x1B000360 Re: HSE data reflected in memory only after multiple soft resets こんにちは@abdul_rahiman_csg これはマイクロコントローラの観点からは意味がありません。ツールに関係しているようです。この件について、Pemicro と直接話し合ってみてはいかがでしょうか? https://www.pemicro.com/support/index.cfm よろしくお願いいたします。 ルーカス
View full article
eIQ Neutron NPU 实验室指南 这些实验室指南提供了详细的分步说明,介绍了如何制作量化的 TensorFlow Lite 模型,以及如何使用eIQ 工具包中的中子转换工具,将模型转换为可在 MCX N 设备上的 eIQ 中子核处理器上运行的格式。《eIQ Neutron NPU for MCUs 实验室指南——第 1 部分——Mobilenet》文档重点介绍了如何使用 eIQ Toolkit GUI 方法转换模型,随后将转换后的模型导入 eIQ MCUXpresso SDK 示例中。建议您首先完成这个实验。根据 MCUXpresso SDK 的下载方式,存在两个版本:一个版本可从MCUXpresso SDK Builder 网站下载为 zip 文件,另一个版本可从NXP GitHub 仓库下载。 《eIQ Neutron NPU for MCUs 实验室指南 - 第 2 部分 - 人脸检测.pdf》文档重点介绍了如何使用 eIQ 工具包的命令行工具将模型转换为 eIQ Neutron NPU 格式,并将转换后的模型集成到 Face Detect demo 中,该演示可在 Application Code Hub 中找到。这两个实验室均设计为在 FRDM-MCXN947 上运行,但相同的概念也适用于其他 MCX N 系列开发板,以及搭载 eIQ Neutron 神经处理单元的其他设备,如 i.MX RT700。另外,请务必查看入门社区帖子,以获取有关 eIQ Neutron 神经处理单元的更多详细信息。 ---更新于 2025 年 4 月,适用于 eIQ Toolkit 1.15 MCXN NPU|ML
View full article
MCXA153 读出保护 Ⅰ、Introduction MCXA153支持读出保护(ROP),以防止设备内部闪存中的代码被读取。此读出保护机制允许用户在系统中启用不同级别的保护。本文详细解释了四个ROP级别的配置,以及不同级别之间的关系和相应的生命周期。 Ⅱ、四级读出保护(ROP) ROP 由 ROP_STATE 位控制,它是一个存储在 IFR0 中的 32位字段。它可以由客户编程。 以下是对四个ROP级别的介绍: 1.ROP_LEVEL0 ROP_STATE = 0xFFFF_FFFF(已擦除的 FLASH 值), 无ROP。默认状态为空白。 2.ROP_LEVEL1 ROP_STATE = 0x0000_0003 调试被禁用和解锁,但客户可以对其进行修改,仅有有限的调试邮箱命令可供使用。 3 .ROP_LEVEL2 ROP_STATE = 0x0000_0001 调试被禁用和锁定,客户无法对其进行修改,仅有有限的调试邮箱命令可供使用。 4.ROP_LEVEL3 ROP_STATE = 0x0000_0000 调试被禁用和锁定,客户无法对其进行修改,也没有可用的调试邮箱命令。 注意:其他任何内容 = 类似 ROP3 的行为(调试已禁用/锁定,ISP 已禁用)。 当ROP级别为0时,我们可以通过修改IFR0中的ROP_STATE值,将ROP级别更改为1、2和3。当ROP级别为1或2时,我们可以通过ISP或DM-AP命令将ROP级别更改为0。ROP 3级操作不可逆,请谨慎执行。下图展示了四个层级之间的关系:   Ⅲ、生命周期和ROP 当芯片从NXP交付给客户时,其生命周期处于“NXP配置”阶段,我们也可以称之为“OEM Open”、“OEM Field Return”或“NXP Field Return”。因为此时芯片完全空白,并且允许ISP和调试功能。当然,此时的ROP级别为0。在此生命周期中,客户可以进行开发和调试。 在客户生产过程中,客户可根据自身需求通过ROP对ISP和调试设置特定限制。客户可选择ROP级别1或ROP级别2。此时的生命周期状态为“OEM Closed”。在此生命周期中,当出现质量问题时,客户可通过ISP或DM-AP命令擦除整个芯片,或使用DM-AP命令“set FA”将芯片生命周期恢复至初始状态,并将其送回NXP工厂进行分析,且不会存储任何知识产权资产。 在某些情况下,客户可能需要完全禁用ISP和调试功能。在这种情况下,客户可以将ROP级别设置为3,芯片生命周期为 “OEM No Return”。请注意,目前即使是恩智浦也无法恢复该芯片。因此,一旦出现CQC问题,我们的工厂无法进行进一步的分析。 此外,我们可以在任何生命周期内将芯片转移到“Bricked”状态。在“Bricked”生命周期中,该芯片将无法启动并彻底砖块化。下表显示了生命周期与ROP之间的关系: Ⅳ。不同 ROP 水平对 SWD 和 ISP 的影响 支持的SWD和ISP命令在不同的ROP级别是不同的。 从ROP0到ROP3,支持的命令越来越少。下图显示了SWD和ISP在不同ROP级别下支持的命令。 ROP0-ROP3支持的ISP命令:   ROP0-ROP3支持的SWD DM-AP命令:   五、使用 SEC 工具配置 ROP 我们可以通过MCUXpresso安全配置(SEC)工具配置ROP。MCUXpresso安全配置工具是一款基于GUI的应用程序,用于简化在恩智浦MCU上生成和配置可启动的可执行文件。 硬件需求:FRDM-MCXA153板、Type-C USB线 软件要求:MCUXpresso Secure Provisioning (MCUXpresso Secure Provisioning v8_b240110 或更高版本。) 配置步骤: 第1步.创建新工作区 打开软件后,点击File->New Workspace,选择“MCX A14x/A15x”->MCXA153->点击“create”。请参考下图: 步骤 2.目标处理器连接 进入ISP模式:按住SW3(ISP键)=> 按下并松开SW1(RESET键)=> 松开SW3 进入工作区后点击 "Target" -> Connection,打开目标处理器连接窗口。此处通过 UART 建立连接,需选择端口号与波特率。参考下图: 我们可以点击 “Test connection” 来检查连接是否成功。如果连接成功,结果将显示“OK”。我们还可以看到当前电路板的生命周期:OEM Open。请参考下图: 第3步:选择生命周期设置ROP 点击工具栏上的“OEM Open” 根据要求,选择合适的ROP,在本例中选择ROP 2。 注意:使用ROP 3时需谨慎。 请参考下图: 步骤 4.构建镜像 完成上述操作后,需将 MCUXpresso IDE 生成的 .s19或 .hex文件加载至 Source executable image。 文件加载完成后,系统会自动识别起始地址。如果起始地址不是0x00000000,则无法“built image”。然后点击“build image”。请参考下图: 镜像构建完成后将显示 "SUCCESS: built image",点击 "close"。参考下图: 步骤 5.写入镜像 我们可以看到所需的.bin文件已在“write image”中自动生成,也可以通过“import”导入我们编写的相应的.bin文件。镜像路径文件将自动加载。 点击“write image”会弹出确认窗口,然后点击“ok”以自动运行脚本。文件成功写入后,显示消息“SUCCESS: write image”。请参考下图: 第6步.检查 完成ROP 2配置后,可以通过“PFR configuration”来查看寄存器的状态。已使用的寄存器无法读出,显示未知,如下图所示: 最后,按下电路板上的 RESET 键以退出 ISP 模式。此时,电路板已进入 ROP 2,调试功能已禁用。进入其他 ROP 级别的方法是相同的。 那么,我们如何回到其他ROP级别呢? ROP 2状态调试已禁用,甚至IDE也无法运行,我们只能使用ISP命令和SWD命令进行操作。SEC工具集成了SWD批量擦除命令,可将系统恢复至ROP 0。不过,我们也可以使用blhost软件来使用ISP命令,进入ISP模式,输入“blhost -p comxx -- flash-erase-all”,返回ROP 0。 接下来,我们将研究如何使用SWD整体擦除命令。 点击工具栏“Dbg”: 此时将显示Select Debug Probe(选择调试探针) 窗口。请参考下图: 选择“Probe: ”并点击“erase”。擦除成功后,显示以下消息:Flash整体擦除成功!我们已成功返回ROP 0。 Ⅶ、总结 ROP功能可保护芯片的安全性,用户可根据自身应用需求设置不同级别的ROP。MCUXpresso Secure Provisionin简化了ROP配置过程。配置不同的ROP需要修改CMPA 中 ROP_STAT和ROP_STAT_DP的状态位。SEC工具帮助我们通过GUI接口自动执行这项工作。                                启动 ROM | 启动配置 | 闪存 MCXA
View full article
最新の SDK_25_12_00 ではデバッグ ツールがグレー表示され、古い SDK_25_03_00 では正常に動作します MCUXpresso IDE V25.6.136 を実行中+ SDK_25_12_00 を搭載した evkmimxrt685 ボード。デバッグが開始されると、すべてのデバッグ ツール (再開 ..) がグレー表示され、プロジェクトを実行できなくなります。古い SDK_25_03_00 では正常に動作しますが、SDK_25_06_00 および SDK_25_09_00 でも同じ問題が発生します。デバッグツールを復元するにはどうすればいいですか Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 こんにちは、カルロス。これは、Hello World を含むすべての例で発生します。常に「void ResetISR(void)関数の最初の行、つまりstartup_mimxrt685s.cの行__asm volatile ("cpsid i") (行番号381)で停止します。スタートアップディレクトリ内のファイル。evkmimxrt685_dsp_mu_polling_cm33 を実行しようとしています。この例は 25.03 バージョンでは正常に動作します。以降のすべてのバージョン (06、09、12) でこの問題が発生します。24.03 以降の SDK バージョンでは IDE に何か変更を加える必要がありますか?スクリーンショットはあるのですが、どうやって投稿すればいいですか。ありがとう@bobvr Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 こんにちは、カルロス。スクリーンショットを投稿します。 Hello Worldを含むすべてのサンプルで発生します。常に「void ResetISR(void)」関数の最初の行、つまりスタートアップディレクトリのstartup_mimxrt685s.cファイルの__asm volatile ("cpsid i")行(行番号381)で停止します。main()関数が実行されず、実行が開始されません。evkmimxrt685_dsp_mu_polling_ cm33を実行しようとしています。このサンプルはバージョン25.03では正常に動作します。それ以降のバージョン(06、09、12)ではこの問題が発生しています。24.03以降のSDKバージョンでは、IDEに何か変更を加える必要があるでしょうか?bobvrさん、ありがとうございます。 Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 こんにちは@bobvr お使いのコンピュータにインストールされている OS を教えていただけますか?Linux、Windows 10、Windows 11? EVK の BOOT_SEL が正しく選択されているか確認してください。 Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 こんにちは@bobvr セットアップの詳細を共有していただきありがとうございます。 フラッシュを一括消去して、デバッグを再試行してください。 これを行うには、クイックスタートパネルでリンクサーバーアクションを変更してください。 carlos_o_0-1767979142309.png その後、LinkServer プローブを使用してデバッグに戻します。 プロセス中にエラー メッセージが表示された場合は、スクリーンショットを共有してください。 Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 Dell Alder Lake デスクトップで Windows 11 を実行しています。ブート ジャンパー (JP1) は開いています。これは、マニュアル (MIMXRT685-AUD-EVKUM Rev 3 - 2023 年 7 月 21 日) によるとデフォルトです。これが「EVK の BOOT_SEL を確認する」という意味だと思います。ありがとうbobvr Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 カルロス、ありがとう。これを実行する前に、私は常に SEGGER J-Link プローブを使用しており、「SEGGER J-Link プローブを使用したフラッシュ アクションの消去」メニュー オプションがあることをお知らせしたいと思います。それを使用して消去する必要がありますか、それとも上記のようにリンク サーバー プローブを使用して消去する必要がありますか。 Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 カルロス、リンク サーバーで一括消去を試みましたが、エラー メッセージが表示されました - スクリーンショットを添付します。ありがとう Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 こんにちは、カルロス。Segger J-Link プローブを使用してフラッシュを削除しました (リンク サーバー プローブは Segger ファームウェアによって上書きされているため、リンク サーバー プローブではありません)。ARM コアと HiFi4 DSP の両方をデバッグするには、Segger プローブを使用する必要があることを理解しています。また、Segger ファームウェアを最新バージョン 8.98 にアップデートしました。デバッグ起動ファイルを削除し、起動時に新しいワークスペースを生成するためにワークスペースを削除し、ボードの電源を入れ直しました。まだ同じ問題です。デバッグセッションが実行中であると表示されますが、デバッグできません。前述したように、これは 03 以降のすべてのバージョン (06、09、12) で発生します。startup_mimxrt685s.c で停止します以前と同じようにファイルします。デバッガー コンソールに警告メッセージが表示されますが、これはおそらく無害です。「警告: 'main' をホスト エンコーディング (CP1252) から UTF-32 に変換できませんでした。 通常、このようなことは起きませんので、バグレポートを提出してください。 モニター実行 SetRestartOnClose=1 次のステップについてアドバイスをお願いします。ありがとう、bobvr。 Re: Debug tools greyed out with latest SDK_25_12_00, work fine with older SDK_25_03_00 こんにちは@bobvr ご利用いただいていることを共有いただきありがとうございます。 リンク サーバーでデバッグを試みても問題は解決しませんか?エラーメッセージが表示された場合は、それを共有してください。
View full article
MCUXpresso Config Tool for MCUXpresso IDE Clone an Example Project from MCUXpresso IDE The following steps will guide you through the manipulation of the general-purpose outputs. The example sets up a CTimer to generate a PWM signal and change between two LEDs. Find the Quickstart Panel in the lower left-hand corner and click on Import SDK example(s) Sabina_Bruce_14-1767120564749.png Click on the FRDM-MCXN947 board to select that you want to import an example that can run on that board, and then click on Next Sabina_Bruce_15-1767120575767.png Use the arrow button to expand the  driver_examples  category, then expand the ctimer examples, click on the check box next to  ctimer_match_interrupt_example  to select it. To use the UART for printing (instead of the default semihosting), Select UART as the SDK Debug Console checkbox under the project options. Then, click on Finish Sabina_Bruce_16-1767120587691.png Click on the  “frdmmcxn947_ctimer_match_interrupt_example”  project in the Project Explorer View and build, compile, and run the demo as described in the previous section Sabina_Bruce_17-1767120603466.png You should see the BLUE and RED LED changing back and forth Terminate the debug session Use MCUXpresso IDE Pins Tools to Modify Example Note: Previously, you had to clone an SDK project like in the previous step. Open the pins tool by selecting “ConfigTools” on the top right hand of the file explorer window and then select “ Open Pins” Sabina_Bruce_2-1767120490131.png The pins tool should now display the pin configuration for the ctimer project Sabina_Bruce_3-1767120490074.png In the Pins view deselect “Show dedicated pins” and “Show no routed pins” checkboxes to see only the routed pins. Routed pins have a check in a green box next to the pin name. The functions selected for each routed pin are highlighted in green Sabina_Bruce_4-1767120490861.png In the current configuration, PIO3_2 and PIO3_3 are routed as the outputs of the CTimer. Let’s add a third Ctimer Match output and enable the Green LED Select “Show no routed pins” to see the other options. To enable the third Ctimer Match Output, browse the column for Ctimer and select and output. In this example, we will select, Ctimer4 Match 2 on PIO3_6. Select the item in the Ctimer column to enable Sabina_Bruce_5-1767120490102.png Now, let’s route the Green LED. In the search box type “green” so that the routed pin for this LED is shown. Finally, click the box under the GPIO column. The box will highlight in green, and a check will appear next to the pin Sabina_Bruce_6-1767120489892.png Next configure the GPIO pin as an output in the “Routing Details” window Sabina_Bruce_7-1767120490064.png Now it’s time to implement these changes into the project by exporting the new updated pin_mux.c and pin_mux.h files that are generated by the Pins tool. Click on Update Project in the menu bar Sabina_Bruce_8-1767120490018.png The screen that pops up will show the files that are changing and you can click on “diff” to see the difference between the current file and the new file generated by the Pins tool. Click on “OK” to overwrite the new files into your project Sabina_Bruce_9-1767120490120.png Let’s add some additional code to the example. Open  simple_match_interrupt.c  file and add the following macros for the third ctimer output. Sabina_Bruce_10-1767120489936.png Add the Green LED functions as well. Sabina_Bruce_11-1767120491994.png Some additional code to be implemented will be the third ctimer’s callback, this can be copied from  ctimer_match1_callback  and modify the content to match2. To be able to visually identify the new ctimer, we will remove one of the previous ctimers as shown Sabina_Bruce_12-1767120492171.png The main function will need to include the initialization of both the Green LED and the Ctimer Sabina_Bruce_13-1767120490811.png Build and download the project as done in the previous section Run the application. You should now see the Green and Blue LED blinking back and forth Terminate the debug session
View full article
MCUXpresso IDE 25.6 書き込み MCXW716C 失敗:プロセッサはセキュアモードです、EraseSector タイムアウト (6000ms) PC=0xFFFF MCUXpresso IDE 25.6 MCXW716Cへの焼込みに失敗しました:プロセッサはセキュア モードです、EraseSector タイムアウト (6000ms) PC=0xFFFFFFFE、ChecksumSectors Ef(38) 各位、私は MCUXpresso IDE + LinkServer を使用してNXP MCXW716C (パネル: FRDM-MCXW71 / または自研パネル) をダウンロードした際に、次のようなエラー メッセージが発生しました。 软ハードウェア環境 IDE:MCUXpresso IDE 25.6.136 LinkServer: RedlinkMulti ドライバ v25.6 (2025年6月26日 ビルド1017) 调试器:パネルダウンロードMCU-LINK 搭載 (r0E3) CMSIS-DAP V3.117 接続方式:SWD コア片: MCXW716CxxxA システム:Windows [バージョン番号可选] 工程/例:[例 frdmmcxw71_lpi2c_read_fxls896x_accel_value_transfer] 复现步骤 打开工程并通常编译生成 AXF/ELF 点击デバッグ(またはダウンロード/烧录) LinkServer は正常に接続されていますが、消去/書き込み段階で障害が発生しています 关键日志(截取)   プロセッサはセキュアモードです...フラッシュドライバ「ChecksumSectors」のアドレス0x00000000に23936バイトを書き込み中 エラー 'Ef(38): フラッシュ操作でエラーが返されました (ログを参照)' ... ドライバ「EraseSector」タイムアウト (6000 ms) PC: FFFFFFFE 现象说明 チップとフラッシュを正常に認識可能:フラッシュ バリアント「FMU 1MB」が検出されました ただし、プロセッサはセキュアモードです 続いて、フラッシュ ドライバの操作段階でのチェック:ChecksumSectors Ef(38) 最终 EraseSector 擦除扇区超過時間 6000ms 、PC 表示0xFFFFFFFE 我想确认/请教的问题 プロセッサーはセキュア モードになっています。MCXW716C では通常、何を意味しますか? 安全寿命期間/安全構成に入ったことを示し、フラッシュの擦過と调试を制限しますか? このような状況に対して、正しい代替方法は何ですか?大量消去 / 回復 / 安全でないフローが必要かどうか? PC: 0xFFFFFFFE は、フラッシュ ドライバ跑飛/HardFault/调试访问安全ドメイン隔離による「無能 PC」であるかどうかを確認できますか? LinkServer v25.6 + MCXW716C で EraseSector タイムアウトのようなものに遭遇しましたか? 充電可能な情報(必要に応じて) [安全例/TrustZone/セキュア ブート構成を使用するかどうか:是/否/不确定] [コア片は否か曾经烧录过安全相关固片/配置区:是/否/不确定] [谝试过的操作:SWD 周波数の低下、回線/换口、断電重启、按住复位连接続、换 LinkServer バージョン等] 完全な LinkServer ログ / 工程 / 最小复现步骤を提供可能 感大家の指差す。 ボード設計 Re: MCUXpresso IDE 25.6 烧录 MCXW716C 失败:processor is in secure mode,EraseSector timeout(6000ms) PC=0x こんにちは@向明月 セキュアプロビジョニングツールをダウンロードできると思います。 MCUXpresso セキュアプロビジョニングツール | NXP Semiconductors そして、w71 ワークスペースを作成します。 Harry_Zhang_1-1766737112192.png そしてそれを消します。 Harry_Zhang_0-1766737059406.png これがお役に立てれば幸いです。 BR ハリー
View full article
S32K344 boot跳转APP出现hard fault wzy__1024_0-1766554505966.png 如图所示,使用S32K344产品进行boot跳转App入口地址出现hard fault故障,附件txt为boot和appflash分区的链接文件,压缩包内含有boot和app的map文件以及hex文件,请技术支持帮助看一下问题出在哪里 Re: S32K344 boot跳转APP出现hard fault 你好@wzy__1024 看来你正在跳转到RESET向量所在的地址。但不是指向RESET向量指向的地址: lukaszadrapa_0-1767369649781.png 因此,地址 0x443004 并不是入口点,而是指向入口点的指针。 此致, 卢卡斯
View full article
零件编号 MMG3014NTl 的标记 亲爱的支持者 MMG3014NTl 的实际标记与数据表不符,在标记中,第二行标记有 7 个字符,而数据表显示只有 6 个字符。请参考随附的照片以供参考。请告知这是否正常和有效。谢谢 Re: Marking for the part number MMG3014NTl 亲爱的支持者 我想跟进我对部件号MMG3014NTl 标记的询问。 数据表 中的 标记(第二行包含六个字符的标记)与实际产品标记(第二行包含七个字符的标记)不一致。因为数据表中没有具体说明第二行标记的确切格式或字符数。 请告知这是否正常和有效。谢谢 isagani_0-1766569064692.png
View full article
[S32K344] 版本失败:RTD 7.0.0 中缺少包含路径 (std_Types.h)(autosar r23-11) 大家好 我在为S32K344新建的"Greenfield" 项目中遇到了一个长期存在的问题,即代码生成后,标准包含路径没有自动添加到项目设置中。 我的环境 芯片:S32K344(BGA257) 集成开发环境:S32 Design Studio(最新版本) RTD 版本:Autosar R23-11 V7.0.0 开发软件包:S32K344 开发软件包 复制步骤 我为 S32K344 创建了一个全新的应用项目。 我打开了配置工具(.mex)。 在 “外围设备/元器件” 视图中,我添加了以下元器件: BaseNXP(必填) 平台(用于中断/IntCtrl) Eth_43_GMAC(以太网驱动程序) 我配置了元器件(启用基本设置)并保存了配置。 我点击"更新代码"生成源文件。生成成功。 我点击了版本(锤子)按钮。 问题:版本立即失败,出现多个 " 致命错误 ",这表明找不到基本的 AUTOSAR 和 RTD 标头。编译器似乎不知道恩智浦 RTD 库的位置。 错误日志(控制台输出): 明文文本(Plaintext)   fatal error: Std_Types.h: No such file or directory fatal error: Eth_GeneralTypes.h: No such file or directory fatal error: Mcal.h: No such file or directory fatal error: S32K344_SIUL2.h: No such file or directory ... make: *** [generate/src/subdir.mk:71: generate/src/OsIf_Cfg.o] Error 1 观察结果:我通过文件资源管理器手动验证了文件夹结构。丢失的文件(如 Std_Types.h在 BaseNXP 元器件文件夹中)确实存在于项目/ SDK 结构中的磁盘上。但是,这些路径不会自动添加到项目中。 我的问题是我是否缺少一个特定的步骤或复选框来强制 "配置工具 "更新 "项目包含路径"?还是 RTD 7.0.0 的已知问题?整合? 如果能帮助我自动修复包含路径,我将不胜感激。 顺祝商祺! Re: [S32K344] Build fail: Missing Include Paths (Std_Types.h) with RTD 7.0.0 (AUTOSAR R23-11) 嗨,@VaneB、 谢谢你的调查。 我又深入研究了一下项目属性,发现了一条特定的错误信息,这似乎是 include 路径无法自动注入的根本原因。 能否请您检查一下在您的工作项目中是否也出现了同样的行为? 1.SDK 错误请进入项目属性 -> SDK。确保选中"Show all SDKs"。然后,将鼠标光标悬停在选中的 PlatformSDK_S32K3... 项上。 在我这边,工具提示显示了以下错误: 错误:由于不支持项目所需的工具链,因此无法附加 SDK。 您是否也看到了这个错误工具提示,或者对您来说没有问题? 2。您的安装环境要验证我是否缺少特定的软件包或更新,您能否确认: 扩展:你已经安装了哪些扩展/软件包?(最好能提供"S32DS 扩展和更新" 的截图或列表)。 项目创建:你究竟是如何设置应用程序项目的?您是否更改了向导中的任何设置(例如有关工具链或库支持的设置),还是使用了默认设置? 3.文件检查为了 100% 确定:文件 Std_Types.h 是否已被删除?是否实际存在于磁盘上的 RTD include 文件夹中?(我想是的,因为你的版本可以正常运行,但我想排除我这边安装失败的可能性)。 感谢您的支持! 顺祝商祺! Re: [S32K344] Build fail: Missing Include Paths (Std_Types.h) with RTD 7.0.0 (AUTOSAR R23-11) 你好@nikovntv 我使用相同的设备和 RTD 版本从头开始创建了一个项目。在外围设备工具中,我添加了以下元器件:BaseNXP、平台、端口、Dem、EthTrcv 和 Eth_43_GMAC,我还解决了配置工具报告的所有配置问题。 在 main.c文件中,我只添加了以下内容: #include "Mcal.h" #include "Mcu.h" #include "Port.h" #include "Eth_43_GMAC.h" #include "OsIf.h" 建立项目后,没有报告任何错误。 能否请您确认一下配置工具中是否有任何错误,或者是否缺少任何需要添加依赖关系的驱动程序? BR、VaneB Re: [S32K344] Build fail: Missing Include Paths (Std_Types.h) with RTD 7.0.0 (AUTOSAR R23-11) 你好@nikovntv 此错误通常是由不兼容的软件包引起的。请确保选择适用于 Arm 的 32 位裸机工具链的恩智浦 GCC 10.2,并在创建项目时选择 RTD 7.0.0 作为 SDK。
View full article
使用 ISP 在 imx8mp 上使用 MIPI-CSI2 捕获偏差 最近,我们已经从基于 ISI 的管道捕获转向使用 ISP。这样做的目的是用软件而不是硬件来执行除渣器。 ISI 版本的驱动程序正常工作,可以在两个独立的 4 线 mipi-csi2 接口上支持两个传感器实例。分辨率和位深度也不吓人(1920x1200、8 或 10 位)。 除了开放 vvcam 服务所需的额外 ioctl 之外,ISP 版本的驱动程序与 ISI 版本的驱动程序相同。链接 vvcam 的传感器接口驱动程序/库似乎也成功启动并运行。调整后的 xml 和 json 配置文件似乎也是正确的。 isp_media_server 适用于我们传感器的一个或两个实例,安装了所有正确的系统驱动程序和传感器驱动程序(imx8_media_dev、我们的驱动程序、vvcam_video、vvcam_dwp 和 vvcam_isp)。它没有报告任何错误,并为每个传感器正确安装了一个 /dev/videoX 实例。 使用 gstreamer 或 video_test 工具也可以在正确的模式下启动正确的传感器。然而,我们所得到的却是错误的。 随附的是输出到监测的 video_test 捕获。当通过 isp_media_server 而不是使用 ISI/设备树方法间接完成时,mipi 设置似乎不正确。它似乎缺少 SOF 标头并且捕获不对齐。 以下是我们使用的版本: 基于 Varascite SOM 的 imx8mp Kirkstone yocto 版本 内核 v5.15.60 isp-imx-4.2.2.18.0 kernel-module-isp-vvcam-4.2.2.18.0 如果能找到这些设置的配置位置,那就太好了。 我的假设是设备树,但除了禁用ISI和启用ISP之外,这种情况没有改变。 非常感谢。 - 奥利弗 Re: Mipi-csi2 capture misalignment using ISP on imx8mp 请向我提供测试记录,您是否尝试过其他格式?有区别吗? Re: Mipi-csi2 capture misalignment using ISP on imx8mp 抱歉,主题发布时附件未被采纳.... Re: Mipi-csi2 capture misalignment using ISP on imx8mp @joanxie,谢谢你的回复。传感器是 ar0234,其中 isp0 上的第一个传感器是单色变体,而 isp1 上的传感器是彩色(拜耳)变体。在引擎盖下驱动传感器的方式没有区别。 日志有点没用,因为没有任何故障。但无论如何,随附的是 isp_media_server 的输出结果。不知道还有哪些日志会令人感兴趣。 两个传感器(彩色或单色)之间没有真正的变化,我也没想到会有这样的变化,因为两个传感器的捕获数据和配置会相同。如果我将捕获分辨率从 10 位更改为 8 位,则会有区别。损失较少(一个图像中只有 3 个重复图像,而不是 5 个左右),但 SOF 仍有偏差,同样存在错位。见附图。 很抱歉捕获的质量很差,我实际上是在用手机拍屏幕的照片。但我认为这已经清楚地说明了问题所在。 Re: Mipi-csi2 capture misalignment using ISP on imx8mp 谢谢你的提醒,我不知道 ISP 只能播放 1080p。这其实不是一个问题,因为我可以通过 ISI 运行单声道摄像机,而只需通过 ISP 运行彩色摄像机。 不过,我现在一次只运行一台相机。 我将查看 ar0144 驱动程序,看看是否有任何明显区别。您知道 ar0144 驱动程序需要哪个版本的内核/vvcam/isp 吗? Re: Mipi-csi2 capture misalignment using ISP on imx8mp 你是同时用双摄像头捕获的吗?双摄像头也有同样的问题吗?逐个测试如何?让我提醒一下,如果您需要同时使用双 ISP,只能支持到 1080p 分辨率,所以我建议您可以逐个测试,我们已经验证了 ar0144,也许您可以参考一下,检查您的设置是否正确,检查 vvcam 驱动程序是否设置正确。 https://github.com/nxp-imx-support/meta-imx8mp-isp-ar0144 您也可以参考 AN 了解如何设置单色 Re: Mipi-csi2 capture misalignment using ISP on imx8mp 参考你的描述,你需要仔细检查你的摄像头驱动程序,ar0144 软件包基于 6.1.22
View full article
s32k312 hse work abnormal when enable gcc -O1 Hi NXP expert,     1. i am using s32k312 hse to do a rsa verify function,  i store the rsa public key in NVM catalog  ``` { HSE_ALL_MU_MASK,  HSE_KEY_OWNER_CUST,   HSE_KEY_TYPE_RSA_PUB, 2,  HSE_KEY2048_BITS }, ```    2. it can verify in default project, which in settings, gcc optimization is  None (-O0)   3.  i want to shrink the binary size, and change gcc settings to -O1,  no else changed. then the function returns  failed (0x55a5a164) how to solve this problem    thanks. Re: s32k312 hse work abnormal when enable gcc -O1 Hi victory, Based on your description, it sounds very similar to the issue described in the S32K3常见问题检查列表(Check list)-V1.2-20251113.docx:  4.32 编译器优化设置不当导致HSE服务失败问题 4.32 编译器优化设置不当导致HSE服务失败问题.png Please note that during the Christmas holiday period, our support response times may be longer than usual. In some cases, your request might be addressed after the New Year. Thank you for your understanding. Best Regards, Robin
View full article
PoP ピンをサポートする i.MX6Q .BSDL ファイルですか? こんにちは。NXP には、PoP RAM に接続する部品の上部にあるピンを含む、i.MX6Q PoP バリアント用の .BSDL ファイルがあるでしょうか?最終目標は、部品上の RAM ピンをカバーする境界スキャン テストを開発し、ソフトウェア スイート内で RAM の機能テストを実行することです。高性能クアッドコア ARM プロセッサ | NXP Semiconductors のダウンロード ページで IMX6Q_PoP_BSDL.bsdl を見つけましたが、PoP ピンが含まれていません。使用中の部品番号はMCIMX6Q7CZK08ADです。 i.MX6Quad Re: i.MX6Q .BSDL file with PoP pin support? 弊社が提供できるのは以下のものだけです: 高性能クアッドコア ARM プロセッサ | NXP Semiconductors   image - 2025-12-22T172657.843.png
View full article
IMX8MP と sec-dsim.cサポート こんにちは、 MIPI DSI 経由で imx8MP にコネクテッドされたパネルを起動しようとしています。DSI ブリッジ ドライバのソースを調べていたところ、ドライバが fslc ブランチから「消えた」ことに気付きました。 これは私が確認した最後の発生です: https://github.com/Freescale/linux-fslc/commits/5.15-2.2.x-imx/drivers/gpu/drm/bridge/sec-dsim.c 現在このブランチを使用しています: linux-imx_5.10.72_2.2.0 ドライバは最近のブランチのどこに移動しましたか?Samsung バージョンとの統合に向けた動きが見られます。 ありがとうございます! Re: IMX8MP and sec-dsim.c support こんにちは、 私も同じことを思っていました。これを解決しましたか?なぜ pl_tx_done ではなく ph_tx_done を待つのでしょうか。 Re: IMX8MP and sec-dsim.c support これは問題ないようです。クロック有効化シーケンスにバグがあり、SOコマンドが送信されていないことが判明しました。 Re: IMX8MP and sec-dsim.c support ドライバはまだここに存在します、よかった!気になるSOは変わってないのでこちらで質問させていただきます。https://github.com/nxp-imx/linux-imx/blob/29549c7073bf72cfb2c4614d37de45ec36b60475/drivers/gpu/drm/bridge/sec-dsim.c#L695 「」 if (packet.payload_length) { /* Long Packet case */ reinit_completion(&dsim->pl_tx_done); /* write packet payload */ sec_mipi_dsim_write_pl_to_sfr_fifo(dsim, packet.payload, packet.payload_length); /* write packet header */ sec_mipi_dsim_write_ph_to_sfr_fifo(dsim, packet.header, use_lpm); ret = wait_for_completion_timeout(&dsim->ph_tx_done, MIPI_FIFO_TIMEOUT); if (!ret) { dev_err(dsim->dev, "wait payload tx done time out\n"); return -EBUSY; } } ``` リセット中です dsim->pl_tx_done ただし、次のものを待っています: wait_for_completion_timeout(&dsim->ph_tx_done, これは正しいですか?ハードウェアは長いパケットに対して pl_tx と ph_tx の両方に割り込みを生成しますか? Re: IMX8MP and sec-dsim.c support こんにちは、 新しい git からカーネルが利用可能かどうかを確認する必要があります。 https://github.com/nxp-imx よろしくお願いします。
View full article