Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
Behaviour discrepancy of FS6500 IO2_3/FCCU fault between Debug mode and Normal mode Hi!   The IO2_3 pin of FS6500 is connected to the MCU FCCU.   In DEBUG mode, one single FCCU fault trigger leads to an immediate reset.   In Normal operating mode, one single FCCU fault trigger causes the SBC to enter Deep Fail-Safe (DFS) mode. Could you help confirm whether this behavior is expected? My understanding: The IO2_3 fault will increment the Fault Error Counter. The safety responses (RSTB pulse, FS0B assertion or DFS transition) should only take place once the Fault Error Counter exceeds the configured threshold (3 or 6). FS6500 DEVKIT-MPC5744P  Re: Behaviour discrepancy of FS6500 IO2_3/FCCU fault between Debug mode and Normal mode Hi Peter, Thanks a lot for your clarification.   I have a further question.   I searched the FS6500 datasheet and RM thoroughly, yet there is little documentation introducing the safety mechanism strategy triggered by IO2_3 FCCU fault, as well as the corresponding IMPACT register configuration. Previously I thought IO2_3 fault will increment the Fault Error Counter, and safety actions take effect after the counter hits the threshold. According to your reply, IO2/IO3 fault triggers safety response directly.   Could you tell me which chapter of the manual covers the configuration of direct safety reaction for IO2/IO3? Best regards Re: Behaviour discrepancy of FS6500 IO2_3/FCCU fault between Debug mode and Normal mode Hello, This behavior can be expected if the SBC is not in the same operating condition in both tests. Please distinguish between: MCU debug mode, for example debugger attached to the MPC device, and FS6500 debug mode, which is entered through the FS6500 DEBUG pin. When the FS6500 is in debug mode, the watchdog still runs internally, but it does not affect device operation by asserting reset or fail-safe pins. Therefore, the behavior observed during debug can differ from standalone/normal operation. This mode is intended to allow software debugging without the SBC continuously resetting the system. In normal operation, the FS6500 fail-safe state machine monitors the configured safety inputs/reactions. If IO_2/IO_3 are used for the MCU FCCU error output monitoring, then an FCCU fault can be detected by the SBC and the configured reaction can be executed, for example assertion of FS0B/RSTB depending on the configuration. So the different behavior between debug and standalone mode is not necessarily an MCU FCCU issue. It is most likely caused by the FS6500 being in debug mode, or by a difference in the SBC initialization/configuration between the two cases. The Fault Error Counter is typically associated with mechanisms such as watchdog supervision and fail-safe state machine handling. A safety-critical fault reported by the FCCU should trigger its configured reaction directly rather than being accumulated until the counter reaches its threshold. Therefore, the observed behavior of an immediate safety response is consistent with the intended safety concept. Best regards, Peter Re: Behaviour discrepancy of FS6500 IO2_3/FCCU fault between Debug mode and Normal mode Hello, The key point is that the FS6500 treats IO2/IO3 FCCU monitoring differently from most other fault sources. The description is not located in the FCCU fault-reaction (IMPACT) tables, but rather in the FS6500 fail-safe fault management documentation. According to the FS6500 documentation, IO_23 error detection (FCCU) is listed among the fault sources that always increment the Fault Error Counter and cannot be configured out. The documentation explicitly separates it from the configurable fault sources. Therefore, the behavior observed with an IO2/IO3 fault is not governed solely by the IMPACT register settings that are used for configurable fail-safe reactions. The IO2/IO3 FCCU monitor is part of the dedicated FCCU supervision path of the SBC and is handled by the fail-safe state machine. The relevant section to review is the FS6500 documentation chapter "Fault error counter", which states: IO_23 error detection (FCCU) increments the Fault Error Counter. This behavior is not configurable. https://docs.nxp.com/bundle/FS6500-FS4500-ASILD/page/topics/fault_error_counter.html Best regards, Peter
View full article
MX8-DSI-OLED1 ディスプレイの部品番号とシーケンス。 こんにちは、チームのみなさん。 カスタムボードにはMX8-DSI-OLED1アクセサリーも使用する予定です。 ディスプレイの部品番号と、維持すべき電源順序があれば教えていただけますか? Re: MX8-DSI-OLED1 Display part No and sequence. こんにちは、 どのような情報をお探しですか? MX8-DSI-OLED1A(raydium rm67199)のディスプレイは、タッチ対応のMIPI-DSI OLEDディスプレイです。以下は主な特徴です: • 5.49インチFHD(1080p@60fps)AMOLEDディスプレイ • 16.7 M(RGB*8ビット)表示色 ・タッチスクリーン • 表示用の4レーンMIPI-DSIインターフェース ・タッチおよび制御のためのI2Cインターフェース また、この部分については共有できる情報があまり多くないことにご注意ください。 よろしくお願いいたします。 アルド。 Re: MX8-DSI-OLED1 Display part No and sequence. チームの皆さん、こんにちは。 この件について何か進展はありますか? Re: MX8-DSI-OLED1 Display part No and sequence. こんにちは、 @AldoGさん これらのレールに電源を入れる際の順序があるかどうかを知りたいです。 VDD_1V8 VEXT_3V3 VDD_5V
View full article
i.MX 93のEdgeLock® Secure Enclave(ELE)の使用方法 : PKCS#11経由での暗号鍵の保存と使用 (日本語ブログ) 本記事では、i.MX 93内蔵のEdgeLock® Secure Enclave(ELE)の暗号アクセラレータおよび鍵管理の機能をPKCS#11経由で使用する方法について解説いたします。 PKCS#11は暗号処理において広く使用されているAPIであり、同じく広く使用されているライブラリであるOpenSSLとの統合も可能です。そのためPKCS#11やOpenSSLを使用した認証処理を行うアプリケーション全て(例: Eclipse Mosquitto™ etc.)に対して、アプリケーション側の改造無しで保護機能の適用も可能です。 暗号アクセラレータおよび鍵管理の機能を提供するという点は別記事で紹介しているSE050などのセキュアエレメントとも共通します。 暗号アクセラレータおよび鍵管理の概要、セキュアエレメントとの大まかな比較や使い分けは以下の記事も参照ください。 半導体ハードウェア・セキュリティでよく耳にする機能について解説 (セキュアエレメント、セキュアエンクレーブ、TPM、HSM、TEE、TrustZoneなど) (日本語ブログ) 作業時間: 約55分 (yoctoのビルド除く) pkcs11-tool経由でのELEの使用 : 10分 openssl経由でのELEの使用 : 10分 PKCS#11 URI PEMファイルの作成 : 5分 Azure IoT Hubへのクラウド接続 : 30分   動作確認に使用した環境 ハードウェア: FRDM i.MX 93開発ボード (FRDM-IMX93) MicroSDカード32GB (SDカードにイメージを書き込んで使用する場合。16GBでも動作すると思われます) ソフトウェア: Linux BSP Version L6.18.2-1.0.0 ※FRDM-IMX93のwebページにあるビルド済みイメージでは正常に動作しないため、以下を参考にビルドください。 [入門] Yocto Linux BSPのビルド方法 - i.MX FRDMボード編 (日本語ブログ)   私がビルドした際はrepo initおよびimx-setup-release.sh実行時のコマンドに以下を使用しました。 repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-whinlatter -m imx-6.18.2-1.0.0.xml DISTRO=fsl-imx-wayland MACHINE=imx93-11x11-lpddr4x-frdm source imx-setup-release.sh -b ./build     EdgeLock® Secure Enclave(ELE)の概要   i.MX 93における「EdgeLock® Secure Enclave(ELE)」は、NXPが提供する暗号アクセラレータ、鍵管理、SoC全体の監視やアクセス権限管理など多数の高度なセキュリティ機能を統合したセキュリティブロックです。   SoC全体の監視やアクセス権限管理という点では代表的な機能としてセキュアブートがあります。i.MX 93のセキュアブートおよびその使用方法に関しては以下の記事を参照ください。 i.MX 93プロセッサ: セキュアブートの署名と認証の仕組みを解説 (日本語ブログ) i.MX 93プロセッサ: セキュアブートの実装方法 - 実践編   本記事では暗号アクセラレータおよび鍵管理の機能をPKCS#11経由で使用する方法について解説いたします。     i.MX Security Middleware(SMW)の概要   NXPはi.MXプロセッサ内蔵のセキュリティハードウェアを制御するためのソフトウェアとしてi.MX SMW(Security Middleware)を提供しています。 GitHub - nxp-imx/imx-smw: i.MX Security Middleware Library · GitHub   SMWはハードウェアに依存しないAPIを提供します。これには後述するPKCS#11のAPIも含みます。 i.MX 93ではELEが内蔵されているため、実際にELEを制御する部分はimx-secure-enclaveが使用されます。 GitHub - nxp-imx/imx-secure-enclave: Secure Enclave Userspace Library · GitHub     PKCS#11の概要 PKCS#11(Public-Key Cryptography Standards #11)は、暗号処理を行うハードウェアやソフトウェア(例:HSM、スマートカード、USBトークンなど)をアプリケーションから統一的に利用するためのAPI仕様です。別名「Cryptoki(クリプトキー)」とも呼ばれます。 PKCS#11を使用するアプリケーションとして、今回はpkcs11-toolを使用します。 imx-smwを含めた関係を図示すると以下のようになります。 PKCS#11を使用するアプリケーション(pkcs11-tool etc.) ↓ (PKCS#11 API経由での使用) imx-smw ↓ imx-secure-enclave ↓ EdgeLock Secure Enclave Hardware     また、以前のOpenSSL経由でのSE050の使用方法の記事では、Plug and Trust Middlewareに含まれるopenssl providerを使用してopenssl経由での使用方法を解説しました。 SMWはopenssl providerを提供しませんが、pkcs11-providerを使用することでopensslからPKCS#11のインターフェースを使用可能なため、openssl経由でのELEの使用も可能です。 GitHub - openssl-projects/pkcs11-provider: A pkcs#11 provider for OpenSSL 3.0+ · GitHub OpenSSL provider非使用時と、imx-smw + PKCSを使用する場合の関係を図示すると以下のようになります。 Provider非使用時はkeyがファイルとしてファイルシステム上に存在し、暗号処理もソフトウェアにより行われます。 imx-smwおよびpkcs11-provider使用時はkeyおよび暗号処理はELEハードウェアにより保護されます。使用するkeyはコード上またはファイルシステム上にあるPKCS#11 URIにより指定します。 ※URI(uri)とは?:   ハードウェア・セキュリティ・モジュール(HSM)などに安全に保管された秘密鍵や証明書を、ローカルファイルのパスの代わりに指定するための標準化された識別子(URI)です。   note : Plug and Trust MiddlewareもPKCS#11のAPIを提供しています。   pkcs11-tool経由でのELEの使用   使用方法はSMW内のPKCS11-Tool User Guideに記載がありますが、ECDSA署名および検証に絞って一連の流れを説明します。   まず以下コマンドを実行してnvm_daemonを起動します。 nvm_daemonはELEを使用するためにファイルシステム領域を管理するサービスです。 systemctl start nvm_daemon systemctl status nvm_daemon   以下コマンドを実行することで次回起動時に自動で起動するようにもできます。 systemctl enable nvm_daemon   以降のコマンドを簡略化するため、以下コマンドでlibsmw_pkcs11の場所を指定します。 末尾の番号はsmwのバージョンによって変わる可能性があるためインストール済みのものに合わせてください。 export MODULE_PKCS11=/usr/lib/libsmw_pkcs11.so.5   以下コマンドでlibsmw_pkcs11経由で確認可能なトークンを確認します。 pkcs11-tool --module $MODULE_PKCS11 -L   以下の例のような表示がされれば問題なく動作しています。 Available slots: Slot 0 (0x0): Security Middleware Abstraction token label : smw token manufacturer : NXP Semiconductor token model : token flags : login required, PIN pad present, token initialized hardware version : 0.0 firmware version : 0.0 serial num : pin min/max : 0/0 uri : pkcs11:model=;manufacturer=NXP%20Semiconductor;serial=;token=smw   以下コマンドで利用可能なオブジェクトの一覧を表示します。 最初は何も表示されないはずです。 pkcs11-tool --module $MODULE_PKCS11 --login -O   以下コマンドでECC key pairを生成します。 pkcs11-tool --module $MODULE_PKCS11 \ --login \ --keypairgen \ --key-type EC:prime256v1 \ --id 02 \ --label "MyECCKey" \ --usage-sign \ --allowed-mechanisms "ECDSA-SHA256"   再度オブジェクト一覧を表示すると以下のようにECC key pairが見えるはずです。 Using slot 0 with a present token (0x0) Profile object 250360144 profile_id: CKP_BASELINE_PROVIDER (1) Public Key Object; EC EC_POINT 256 bits EC_POINT: 044104fe4c97a7a4f54702f9fc5740f62c0864e851098dc43cb4c9ba8633421e5bc362cdc559523118bb4fe4281851c051e24a88846a2d774eb3f928595761cf719e90 EC_PARAMS: 06082a8648ce3d030107 (OID 1.2.840.10045.3.1.7) label: MyECCKey ID: 02 Usage: verify Access: none Unique ID: uri: pkcs11:model=;manufacturer=NXP%20Semiconductor;serial=;token=smw;id=%02;object=MyECCKey;type=public Private Key Object; EC label: MyECCKey ID: 02 Usage: sign Access: sensitive, always sensitive Unique ID: uri: pkcs11:model=;manufacturer=NXP%20Semiconductor;serial=;token=smw;id=%02;object=MyECCKey;type=private   以下コマンドで適当なmessage.txtファイルを生成、それに対して署名の生成及び検証を行うことができます。 echo hello > message.txt pkcs11-tool --module $MODULE_PKCS11 \ --login \ --sign \ --id 02 \ --mechanism ECDSA-SHA256 \ --input-file message.txt \ --output-file signature.bin pkcs11-tool --module $MODULE_PKCS11 \ --login \ --verify \ --id 02 \ --mechanism ECDSA-SHA256 \ --input-file message.txt \ --signature-file signature.bin     openssl経由でのELEの使用   同様にECDSA署名および検証に絞って一連の流れを説明します。 前章のpkcs11-tool用の手順によってnvm_daemonの起動及びECC key pairの生成が完了している前提です。   以下の内容のopenssl.cnfを作成します。 末尾のmoduleおよびpkcs11-module-pathの行は、実際のシステムに合わせて変更が必要な可能性があります。 openssl_conf = openssl_init [openssl_init] providers = provider_sect [provider_sect] default = default_sect pkcs11 = pkcs11_sect [default_sect] activate = 1 [pkcs11_sect] module = /usr/lib/ossl-modules/pkcs11.so pkcs11-module-path = /usr/lib/libsmw_pkcs11.so.5 activate = 1   以下コマンドで上記設定ファイルをopensslで使用するよう設定します。 export OPENSSL_CONF=<作成したopenssl.cnfの絶対path>   以下コマンドで署名生成及び検証が可能です。 openssl pkeyutl -sign -inkey "pkcs11:object=MyECCKey;type=private" -in message.txt -out sig.bin -digest sha256 openssl pkeyutl -verify -pubin -inkey "pkcs11:object=MyECCKey;type=public" -in message.txt -sigfile sig.bin -digest sha256     PKCS#11 URI PEMファイルの作成   openssl providerの使用方法では、keyに直接オブジェクト一覧で確認可能なURIを使用しました。   しかしpkcs11-providerのドキュメントの "USE IN OLDER APPLICATIONS (URIs in PEM files)" には、これは新しい方法であり、従来のアプリケーションを使用する場合はこの方法が使用できない場合がある旨記載があります。   実際後述のMosquitto clientでは、openssl 3.0以降を使用する場合、URIを直接指定できないコードとなっていました。   このような場合、CLI tool uri2pem.pyを使用することでURIを含むファイルを生成し、通常の鍵ファイルを指定するのと同じ方法で使用することが可能です。   上記ページからダウンロードしたuri2pem.pyを使用し、以下コマンドでPKCS#11 URIを含むファイルを生成します。 python3 uri2pem.py --out MyECCKey.pem "pkcs11:object=MyECCKey;type=private" 詳細は確認できておりませんが、uri2pem.pyの内容を確認する限りprivate key以外のURIのpemファイルは作成できないようです。 生成された「MyECCKey.pem」を署名時のkeyとして指定することで先ほどと同様の動作が可能です。 openssl pkeyutl -sign -inkey MyECCKey.pem -in message.txt -out sig.bin -digest sha256 openssl pkeyutl -verify -pubin -inkey "pkcs11:object=MyECCKey;type=public" -in message.txt -sigfile sig.bin -digest sha256     ELE内の鍵を使用したEclipse Mosquitto™ client経由でのAzure IoT Hubへのクラウド接続   生成した鍵を使用してMosquitto clientを使用したAzure IoT Hubへのクラウド接続を試みます。   注: この手順で作成するRootCA証明書はあくまでテスト用です。テスト完了後はAzure IoT Hub上から証明書を削除することを推奨します。   事前に セキュアエレメントSE05xの使用方法 : FRDM-IMX93開発ボード上でのPlug and Trust Middlewareのセットアップ(日本語ブログ) の「Mosquitto clientのビルドとインストール」の章   セキュアエレメントSE05xの使用方法 : Eclipse Mosquitto clientを使用したAzure IoT Hubへの接続(日本語ブログ) の「Azure IoT Hubの作成」の章、   それぞれの手順を行い、Mosquitto clientのインストールおよびAzure IoT Hubの作成を完了させてください。     まずFRDM-IMX93側で以下コマンドを実行しMyECCKeyのpublic keyに対する証明書リクエストを作成、内容を確認します。 openssl req -new -key "pkcs11:object=MyECCKey" -outform PEM -subj /CN=frdmimx93_test -out frdmimx93_test.csr -sha256 openssl req -text -noout -in frdmimx93_test.csr   その後ホストPC側に「frdmimx93_test.csr」を移動し、以下を実行します。 openssl ecparam -genkey -name prime256v1 -out rootCA_key_pair.pem openssl req -new -x509 -subj /CN=rootCA -key rootCA_key_pair.pem > rootCA_cert.cer openssl x509 -req -in frdmimx93_test.csr -days 365 -CA rootCA_cert.cer -CAkey rootCA_key_pair.pem -out frdmimx93_test_cert.cer 作成した「frdmimx93_test_cert.cer」をFRDM-IMX93に戻します。後ほど「MyECCKey.pem」とセットで使用するため、そちらを作成したディレクトリに置きます。 また、Azure IoT Hubにて、作成した「rootCA_cert.cer」の登録、「frdmimx93_test」という名前のデバイスの作成を行います。 手順は以下記事の「Azure IoT Hubへの中間CA証明書の追加」の章を参照ください。 セキュアエレメントSE05xの使用方法 : Eclipse Mosquitto clientを使用したAzure IoT Hubへの接続(日本語ブログ) 注 : 前述のとおりここで登録した証明書はテスト用のため、動作確認後は削除を推奨します。   ここまでの手順を終えるとMosquitto clientを使用してAzure IoT Hubへの接続が可能になります。   以下コマンドを実行します。IOT_HUB_NAMEは適宜変更ください。 export IOT_HUB_NAME=ShinjiIotHubTest export DEVICE_NAME=frdmimx93_test mosquitto_pub -h "${IOT_HUB_NAME}.azure-devices.net" -p 8883 -u "${IOT_HUB_NAME}.azure-devices.net/${DEVICE_NAME}/api-version=2016-11-14" -t "devices/${DEVICE_NAME}/messages/events/" -m '{"mes":"Hello Azure with i.MX93!"}' --capath /etc/ssl/certs/ --cert frdmimx93_test_cert.cer --key MyECCKey.pem -i ${DEVICE_NAME} -d -q 1 以下のような出力が出れば成功です。 Client frdmimx93_test sending CONNECT Client frdmimx93_test received CONNACK (0) Client frdmimx93_test sending PUBLISH (d0, q1, r0, m1, 'devices/frdmimx93_test/messages/events/', ... (34 bytes)) Client frdmimx93_test received PUBACK (Mid: 1, RC:0) Client frdmimx93_test sending DISCONNECT 以下記事の「IoT Hubへ送信されたメッセージの確認とデバイスへのメッセージ送信」の手順を使用するとAzure IoT Hub側のCloud Shellでも受信メッセージを確認できます。 セキュアエレメントSE05xの使用方法 : Eclipse Mosquitto clientを使用したAzure IoT Hubへの接続(日本語ブログ)  ========================= 本投稿の「Comment」欄にコメントをいただいても、現在返信に対応しておりません。​ お手数をおかけしますが、お問い合わせの際には「NXPへの技術質問 - 問い合わせ方法 (日本語ブログ)」をご参照ください。​ (既に弊社NXP代理店、もしくはNXPとお付き合いのある方は、直接担当者へご質問いただいてもかまいません。) 本記事では、i.MX 93内蔵のEdgeLock® Secure Enclave(ELE)の暗号アクセラレータおよび鍵管理の機能をPKCS#11経由で使用する方法について解説いたします。 PKCS#11は暗号処理において広く使用されているAPIであり、同じく広く使用されているライブラリであるOpenSSLとの統合も可能です。そのためPKCS#11やOpenSSLを使用した認証処理を行うアプリケーション全て(例: Eclipse Mosquitto™ etc.)に対して、アプリケーション側の改造無しで保護機能の適用も可能です。 暗号アクセラレータおよび鍵管理の機能を提供するという点は別記事で紹介しているSE050などのセキュアエレメントとも共通します。 暗号アクセラレータおよび鍵管理の概要、セキュアエレメントとの大まかな比較や使い分けは以下の記事も参照ください。 半導体ハードウェア・セキュリティでよく耳にする機能について解説 (セキュアエレメント、セキュアエンクレーブ、TPM、HSM、TEE、TrustZoneなど) (日本語ブログ) 作業時間: 約55分 (yoctoのビルド除く) pkcs11-tool経由でのELEの使用 : 10分 openssl経由でのELEの使用 : 10分 PKCS#11 URI PEMファイルの作成 : 5分 Azure IoT Hubへのクラウド接続 : 30分   i.MX Processors Security 日本語ブログ
View full article
如何在 i.MX 93 上使用 EdgeLock® 安全隔离区 (ELE):通过 PKCS#11 存储和使用加密密钥(日语博客) 本文解释了如何通过 PKCS#11 使用i.MX 93 内置的EdgeLock ®安全隔离区 (ELE) 的加密加速器和密钥管理功能。 PKCS#11 是密码学中广泛使用的 API,并且可以与另一个广泛使用的库 OpenSSL 集成。因此,所有使用 PKCS#11 或 OpenSSL 进行身份验证的应用程序(例如 Eclipse Mosquitto ™等)都可以应用保护,而无需对应用程序本身进行任何修改。 它提供加密加速和密钥管理功能,这一点与SE050等安全元件相同,SE050 将在另一篇文章中介绍。 有关加密加速器和密钥管理的概述,以及与安全元件的一般比较和使用指南,请参阅以下文章。 本文解释了半导体硬件安全中常见的特性(安全元件、安全隔离区、TPM、HSM、TEE、TrustZone 等)(日语博客)。 预计时间:约 55 分钟(不包括 Yocto 构建时间) 使用 pkcs11 工具通过 ELE 进行操作:10 分钟 使用 OpenSSL 通过 ELE 运行:10 分钟 创建 PKCS#11 URI PEM 文件:5 分钟 与 Azure IoT 中心的云连接:30 分钟   测试环境 硬件: FRDM i.MX 93 开发板 ( FRDM-IMX93 ) 32GB microSD 卡(如果您要将镜像写入 SD 卡并使用它。据说 16GB 的卡也可以。) 软件: Linux BSP 版本 L6.18.2-1.0.0 *FRDM-IMX93 网页上的预构建镜像无法正常工作,请按照以下说明进行构建。 【新手指南】如何构建 Yocto Linux BSP - i.MX FRDM 开发板版(日语博客)   构建时,我在运行 repo init 和 imx-setup-release.sh 时使用了以下命令: repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-whinlatter -m imx-6.18.2-1.0.0.xml DISTRO=fsl-imx-wayland MACHINE=imx93-11x11-lpddr4x-frdm source imx-setup-release.sh -b ./build     EdgeLock® 安全隔离区 (ELE) 概述   在 i.MX 93 中,“EdgeLock® 安全隔离区 (ELE)”是一个安全模块,它集成了 NXP 提供的众多高级安全功能,包括加密加速器、密钥管理、整体 SoC 监控和访问权限管理。   安全启动是监控整个SoC并管理访问权限的一项代表性功能。有关i.MX 93中的安全启动及其使用方法,请参阅以下文章。 i.MX 93 处理器:安全启动签名和认证机制详解(日语博客) i.MX 93 处理器:如何实现安全启动 - 实用指南   本文解释了如何通过 PKCS#11 使用加密加速器和密钥管理功能。     i.MX 安全中间件 (SMW) 概述   NXP 提供 i.MX SMW(安全中间件)软件,用于控制 i.MX 处理器内置的安全硬件。 GitHub - nxp-imx/imx-smw:i.MX 安全中间件库 · GitHub   SMW 提供与硬件无关的 API,包括 PKCS#11 API,稍后将对此进行讨论。 由于 i.MX 93 内置了 ELE,因此实际控制 ELE 的部分是 imx-secure-enclave。 GitHub - nxp-imx/imx-secure-enclave:安全隔离区用户空间库 · GitHub     PKCS#11概述 PKCS#11(公钥密码学标准#11)是一个API规范,用于在应用程序中统一使用加密硬件和软件(例如,HSM、智能卡、USB令牌等)。它也被称为“Cryptoki”。 在这个例子中,我们将使用 pkcs11-tool 作为使用 PKCS#11 的应用程序。 imx-smw之间的关系可以表示如下: PKCS#11を使用するアプリケーション(pkcs11-tool etc.) ↓ (PKCS#11 API経由での使用) imx-smw ↓ imx-secure-enclave ↓ EdgeLock Secure Enclave Hardware     此外,在之前一篇关于通过 OpenSSL 使用 SE050 的文章中,我们解释了如何使用 Plug and Trust Middleware 中包含的 openssl 提供程序通过 openssl 来使用它。 SMW 不提供 openssl 提供程序,但可以通过 openssl 使用 ELE,因为可以通过使用 pkcs11-provider 从 openssl 使用 PKCS#11 接口。 GitHub - openssl-projects/pkcs11-provider:适用于 OpenSSL 3.0+ 的 pkcs#11 提供程序 · GitHub 下面图示了不使用 OpenSSL 提供程序与使用 imx-smw + PKCS 之间的关系。 当不使用密钥提供商时,密钥以文件的形式存在于文件系统中,加密由软件执行。 使用 imx-smw 和 pkcs11-provider 时,密钥和加密过程由 ELE 硬件保护。要使用的密钥由代码或文件系统中的 PKCS#11 URI 指定。 什么是URI? 这是一个标准化的标识符(URI),用于指定安全地存储在硬件安全模块(HSM)或类似设备中的私钥和证书,而不是本地文件路径。   注意:Plug and Trust Middleware 还提供 PKCS#11 API。   通过 pkcs11-tool 使用 ELE   使用说明在 SMW 中的PKCS11 工具用户指南中有描述,但本说明将特别关注 ECDSA 签名和验证过程。   首先,运行以下命令启动 nvm_daemon。 nvm_daemon 是一项管理文件系统空间以供 ELE 使用的服务。 systemctl start nvm_daemon systemctl status nvm_daemon   您还可以通过执行以下命令,将其配置为在下次启动时自动启动。 systemctl enable nvm_daemon   为了简化后续命令,请使用以下命令指定 libsmw_pkcs11 的位置。 末尾的数字可能因 SMW 版本而异,请根据您安装的版本进行调整。 export MODULE_PKCS11=/usr/lib/libsmw_pkcs11.so.5   以下命令将检查可通过 libsmw_pkcs11 验证的令牌。 pkcs11-tool --module $MODULE_PKCS11 -L   如果您看到与以下示例类似的显示,则说明它运行正常。 Available slots: Slot 0 (0x0): Security Middleware Abstraction token label : smw token manufacturer : NXP Semiconductor token model : token flags : login required, PIN pad present, token initialized hardware version : 0.0 firmware version : 0.0 serial num : pin min/max : 0/0 uri : pkcs11:model=;manufacturer=NXP%20Semiconductor;serial=;token=smw   以下命令将显示可用对象列表。 一开始不应该显示任何内容。 pkcs11-tool --module $MODULE_PKCS11 --login -O   以下命令将生成 ECC 密钥对。 pkcs11-tool --module $MODULE_PKCS11 \ --login \ --keypairgen \ --key-type EC:prime256v1 \ --id 02 \ --label "MyECCKey" \ --usage-sign \ --allowed-mechanisms "ECDSA-SHA256"   如果再次显示对象列表,您应该会看到如下所示的 ECC 密钥对。 Using slot 0 with a present token (0x0) Profile object 250360144 profile_id: CKP_BASELINE_PROVIDER (1) Public Key Object; EC EC_POINT 256 bits EC_POINT: 044104fe4c97a7a4f54702f9fc5740f62c0864e851098dc43cb4c9ba8633421e5bc362cdc559523118bb4fe4281851c051e24a88846a2d774eb3f928595761cf719e90 EC_PARAMS: 06082a8648ce3d030107 (OID 1.2.840.10045.3.1.7) label: MyECCKey ID: 02 Usage: verify Access: none Unique ID: uri: pkcs11:model=;manufacturer=NXP%20Semiconductor;serial=;token=smw;id=%02;object=MyECCKey;type=public Private Key Object; EC label: MyECCKey ID: 02 Usage: sign Access: sensitive, always sensitive Unique ID: uri: pkcs11:model=;manufacturer=NXP%20Semiconductor;serial=;token=smw;id=%02;object=MyECCKey;type=private   以下命令将生成一个合适的 message.txt 文件,然后您可以生成并验证该文件的签名。 echo hello > message.txt pkcs11-tool --module $MODULE_PKCS11 \ --login \ --sign \ --id 02 \ --mechanism ECDSA-SHA256 \ --input-file message.txt \ --output-file signature.bin pkcs11-tool --module $MODULE_PKCS11 \ --login \ --verify \ --id 02 \ --mechanism ECDSA-SHA256 \ --input-file message.txt \ --signature-file signature.bin     通过 openssl 使用 ELE   同样,我们将解释整个过程,重点关注 ECDSA 的签署和验证。 这假设您已经启动了 nvm_daemon 并使用上一章中描述的 pkcs11-tool 程序生成了 ECC 密钥对。   创建一个名为 openssl.cnf 的文件,内容如下: 末尾的 `module` 和 `pkcs11-module-path` 行可能需要根据您的实际系统进行更改。 openssl_conf = openssl_init [openssl_init] providers = provider_sect [provider_sect] default = default_sect pkcs11 = pkcs11_sect [default_sect] activate = 1 [pkcs11_sect] module = /usr/lib/ossl-modules/pkcs11.so pkcs11-module-path = /usr/lib/libsmw_pkcs11.so.5 activate = 1   使用以下命令配置 openssl 以使用上述配置文件。 export OPENSSL_CONF=<作成したopenssl.cnfの絶対path>   可以使用以下命令生成和验证签名。 openssl pkeyutl -sign -inkey "pkcs11:object=MyECCKey;type=private" -in message.txt -out sig.bin -digest sha256 openssl pkeyutl -verify -pubin -inkey "pkcs11:object=MyECCKey;type=public" -in message.txt -sigfile sig.bin -digest sha256     创建 PKCS#11 URI PEM 文件   在使用 openssl 提供程序时,我使用了一个可以直接在对象列表中验证的 URI 作为键。   然而, pkcs11-provider 文档在“在旧应用程序中使用(PEM 文件中的 URI)”部分指出,这是一种新方法,在使用旧应用程序时可能无法使用。   事实上,稍后将讨论的 Mosquitto 客户端的代码会阻止您在使用 openssl 3.0 或更高版本时直接指定 URI。   在这种情况下,您可以使用CLI 工具 uri2pem.py生成包含 URI 的文件,并以与指定常规密钥文件相同的方式使用它。   使用从上述页面下载的 uri2pem.py,通过以下命令生成包含 PKCS#11 URI 的文件。 python3 uri2pem.py --out MyECCKey.pem "pkcs11:object=MyECCKey;type=private" 虽然我还没有能够确认细节,但根据 uri2pem.py 的内容来看,似乎无法为私钥以外的 URI 创建 pem 文件。 通过指定生成的“MyECCKey.pem”作为签名密钥,您可以执行与以前相同的操作。 openssl pkeyutl -sign -inkey MyECCKey.pem -in message.txt -out sig.bin -digest sha256 openssl pkeyutl -verify -pubin -inkey "pkcs11:object=MyECCKey;type=public" -in message.txt -sigfile sig.bin -digest sha256     使用 ELE 中的密钥,通过 Eclipse Mosquitto ™客户端连接到 Azure IoT 中心云。   我们将尝试使用生成的密钥通过 Mosquitto 客户端建立与 Azure IoT 中心的云连接。   注意:使用此过程创建的根 CA 证书仅用于测试目的。建议在测试完成后从 Azure IoT 中心删除该证书。   提前 如何使用安全元件 SE05x:在 FRDM-IMX93 开发板上设置即插即用中间件(日文博客) “构建和安装 Mosquitto 客户端”这一章节   如何使用安全元件 SE05x:使用 Eclipse Mosquitto 客户端连接到 Azure IoT 中心(日语博客) 在“创建 Azure IoT 中心”这一章中,   按照每个步骤完成 Mosquitto 客户端的安装和 Azure IoT 中心的创建。     首先,在 FRDM-IMX93 端,执行以下命令为 MyECCKey 的公钥创建证书请求并验证其内容。 openssl req -new -key "pkcs11:object=MyECCKey" -outform PEM -subj /CN=frdmimx93_test -out frdmimx93_test.csr -sha256 openssl req -text -noout -in frdmimx93_test.csr   接下来,将“frdmimx93_test.csr”移动到主机,并执行以下操作: openssl ecparam -genkey -name prime256v1 -out rootCA_key_pair.pem openssl req -new -x509 -subj /CN=rootCA -key rootCA_key_pair.pem > rootCA_cert.cer openssl x509 -req -in frdmimx93_test.csr -days 365 -CA rootCA_cert.cer -CAkey rootCA_key_pair.pem -out frdmimx93_test_cert.cer 将创建的“frdmimx93_test_cert.cer”放回FRDM-IMX93上。由于稍后将与“ MyECCKey.pem ”一起使用,请将其放在创建它的同一目录中。 此外,您还需要在 Azure IoT 中心注册创建的“rootCA_cert.cer”文件,并创建一个名为“frdmimx93_test”的设备。 有关说明,请参阅以下文章中的“向 Azure IoT 中心添加中间 CA 证书”部分。 如何使用安全元件 SE05x:使用 Eclipse Mosquitto 客户端连接到 Azure IoT 中心(日语博客) 注意:如上所述,此处注册的证书仅用于测试目的,因此建议在确认其功能后将其删除。   完成这些步骤后,您就可以使用 Mosquitto 客户端连接到 Azure IoT 中心了。   执行以下命令。请根据实际情况更改 IOT_HUB_NAME。 export IOT_HUB_NAME=ShinjiIotHubTest export DEVICE_NAME=frdmimx93_test mosquitto_pub -h "${IOT_HUB_NAME}.azure-devices.net" -p 8883 -u "${IOT_HUB_NAME}.azure-devices.net/${DEVICE_NAME}/api-version=2016-11-14" -t "devices/${DEVICE_NAME}/messages/events/" -m '{"mes":"Hello Azure with i.MX93!"}' --capath /etc/ssl/certs/ --cert frdmimx93_test_cert.cer --key MyECCKey.pem -i ${DEVICE_NAME} -d -q 1 如果看到类似以下的输出,则表示成功。 Client frdmimx93_test sending CONNECT Client frdmimx93_test received CONNACK (0) Client frdmimx93_test sending PUBLISH (d0, q1, r0, m1, 'devices/frdmimx93_test/messages/events/', ... (34 bytes)) Client frdmimx93_test received PUBACK (Mid: 1, RC:0) Client frdmimx93_test sending DISCONNECT 按照以下文章“检查发送到 IoT 中心的消息和向设备发送消息”中的步骤,您还可以在 Azure IoT 中心端的 Cloud Shell 中检查接收到的消息。 如何使用安全元件 SE05x:使用 Eclipse Mosquitto 客户端连接到 Azure IoT 中心(日语博客) ========================= 我们目前无法 回复 此帖子“ 评论”部分留下的评论。 对于由此造成的不便,我们深表歉意,但 在进行咨询时, 请 参考“ NXP 技术问题 - 如何联系我们 ( 日语博客 ) ” 。 (如果您已经是 恩智浦的 分销商或 与 恩智浦 有合作关系 ,您可以直接咨询您的代表。) 本文解释了如何通过 PKCS#11 使用 i.MX 93 内置 EdgeLock® 安全隔离区 (ELE) 的加密加速器和密钥管理功能。 PKCS#11 是密码学中广泛使用的 API,并且可以与另一个广泛使用的库 OpenSSL 集成。因此,所有使用 PKCS#11 或 OpenSSL 进行身份验证的应用程序(例如 Eclipse Mosquitto ™等)都可以应用保护,而无需对应用程序本身进行任何修改。 它提供加密加速和密钥管理功能,这一点与 SE050 等安全元件相同,SE050 将在另一篇文章中介绍。 有关加密加速器和密钥管理的概述,以及与安全元件的一般比较和使用指南,请参阅以下文章。 本文解释了半导体硬件安全中常见的特性(安全元件、安全隔离区、TPM、HSM、TEE、TrustZone 等)(日语博客)。 预计时间:约 55 分钟(不包括 Yocto 构建时间) 使用 pkcs11 工具通过 ELE 进行操作:10 分钟 使用 OpenSSL 通过 ELE 运行:10 分钟 创建 PKCS#11 URI PEM 文件:5 分钟 与 Azure IoT 中心的云连接:30 分钟   i.MX 处理器 安全 日本博客
View full article
How to use the EdgeLock® Secure Enclave (ELE) on i.MX 93: Storing and using encryption keys via PKCS#11 (Japanese blog) This article explains how to use the cryptographic accelerator and key management functions of the i.MX 93's built-in EdgeLock ® Secure Enclave (ELE) via PKCS#11. PKCS#11 is a widely used API in cryptography and can be integrated with OpenSSL, another widely used library. Therefore, protection can be applied to all applications that perform authentication using PKCS#11 or OpenSSL (e.g., Eclipse Mosquitto ™ etc.) without any modifications to the application itself . The fact that it provides cryptographic acceleration and key management functions is something it shares with secure elements such as the SE050 , which are introduced in another article. For an overview of cryptographic accelerators and key management, as well as a general comparison and usage guidelines with secure elements, please refer to the following article. This article explains commonly heard features in semiconductor hardware security (Secure Element, Secure Enclave, TPM, HSM, TEE, TrustZone, etc.) (Japanese blog). Estimated time: Approximately 55 minutes (excluding Yocto build) Using ELE via pkcs11-tool: 10 minutes Using ELE via openssl: 10 minutes Creating a PKCS#11 URI PEM file: 5 minutes Cloud connectivity to Azure IoT Hub: 30 minutes   Environment used for testing Hardware: FRDM i.MX 93 Development Board ( FRDM-IMX93 ) 32GB microSD card (If you are writing an image to an SD card and using it. It is also thought that 16GB will work.) software: Linux BSP Version L6.18.2-1.0.0 *The pre-built image on the FRDM-IMX93 webpage does not work correctly, so please build it using the following instructions. [Beginner's Guide] How to Build Yocto Linux BSP - i.MX FRDM Board Edition (Japanese Blog)   When I built it, I used the following commands when running repo init and imx-setup-release.sh: repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-whinlatter -m imx-6.18.2-1.0.0.xml DISTRO=fsl-imx-wayland MACHINE=imx93-11x11-lpddr4x-frdm source imx-setup-release.sh -b ./build     Overview of EdgeLock® Secure Enclave (ELE)   In i.MX 93, "EdgeLock® Secure Enclave (ELE)" is a security block that integrates numerous advanced security features provided by NXP, including cryptographic accelerators, key management, overall SoC monitoring, and access rights management.   Secure Boot is a representative feature for monitoring the entire SoC and managing access rights. For information on Secure Boot in i.MX 93 and how to use it, please refer to the following article. i.MX 93 Processor: Explaining the Secure Boot Signature and Authentication Mechanism (Japanese Blog) i.MX 93 Processor: How to Implement Secure Boot - Practical Guide   This article explains how to use cryptographic accelerator and key management functions via PKCS#11.     i.MX Security Middleware (SMW) Overview   NXP provides i.MX SMW (Security Middleware) as software for controlling the security hardware built into the i.MX processor. GitHub - nxp-imx/imx-smw: i.MX Security Middleware Library · GitHub   SMW provides hardware-independent APIs, including the PKCS#11 API, which will be discussed later. Since i.MX 93 has a built-in ELE, the part that actually controls the ELE is imx-secure-enclave. GitHub - nxp-imx/imx-secure-enclave: Secure Enclave Userspace Library · GitHub     Overview of PKCS#11 PKCS#11 (Public-Key Cryptography Standards #11) is an API specification for unified use of cryptographic hardware and software (e.g., HSMs, smart cards, USB tokens, etc.) from applications. It is also known as "Cryptoki". For this example, we will use pkcs11-tool as the application that uses PKCS#11. The relationship including imx-smw can be illustrated as follows: PKCS#11を使用するアプリケーション(pkcs11-tool etc.) ↓ (PKCS#11 API経由での使用) imx-smw ↓ imx-secure-enclave ↓ EdgeLock Secure Enclave Hardware     Furthermore, in a previous article on using SE050 via OpenSSL , we explained how to use it via openssl using the openssl provider included in Plug and Trust Middleware. SMW does not provide an openssl provider, but it is possible to use ELE via openssl because the PKCS#11 interface can be used from openssl by using the pkcs11-provider. GitHub - openssl-projects/pkcs11-provider: A pkcs#11 provider for OpenSSL 3.0+ · GitHub The relationship between not using an OpenSSL provider and using imx-smw + PKCS is illustrated below. When a provider is not used, the key exists as a file on the file system, and encryption is performed by software. When using imx-smw and pkcs11-provider, the key and encryption process are protected by ELE hardware. The key to be used is specified by a PKCS#11 URI located in the code or on the file system. *What is a URI? This is a standardized identifier (URI) used to specify private keys and certificates securely stored in hardware security modules (HSMs) or similar devices, instead of local file paths.   Note: Plug and Trust Middleware also provides a PKCS#11 API.   Using ELE via pkcs11-tool   The usage instructions are described in the PKCS11-Tool User Guide within SMW, but this explanation will focus specifically on the ECDSA signing and verification process.   First, run the following command to start nvm_daemon. nvm_daemon is a service that manages filesystem space for use with ELE. systemctl start nvm_daemon systemctl status nvm_daemon   You can also configure it to start automatically the next time you boot by executing the following command. systemctl enable nvm_daemon   To simplify subsequent commands, specify the location of libsmw_pkcs11 with the following command. The number at the end may vary depending on the SMW version, so please adjust it to match your installed version. export MODULE_PKCS11=/usr/lib/libsmw_pkcs11.so.5   The following command will check the tokens that can be verified via libsmw_pkcs11. pkcs11-tool --module $MODULE_PKCS11 -L   If you see a display similar to the example below, it is working correctly. Available slots: Slot 0 (0x0): Security Middleware Abstraction token label : smw token manufacturer : NXP Semiconductor token model : token flags : login required, PIN pad present, token initialized hardware version : 0.0 firmware version : 0.0 serial num : pin min/max : 0/0 uri : pkcs11:model=;manufacturer=NXP%20Semiconductor;serial=;token=smw   The following command will display a list of available objects. Nothing should be displayed at first. pkcs11-tool --module $MODULE_PKCS11 --login -O   The following command will generate an ECC key pair. pkcs11-tool --module $MODULE_PKCS11 \ --login \ --keypairgen \ --key-type EC:prime256v1 \ --id 02 \ --label "MyECCKey" \ --usage-sign \ --allowed-mechanisms "ECDSA-SHA256"   If you display the object list again, you should see the ECC key pair as shown below. Using slot 0 with a present token (0x0) Profile object 250360144 profile_id: CKP_BASELINE_PROVIDER (1) Public Key Object; EC EC_POINT 256 bits EC_POINT: 044104fe4c97a7a4f54702f9fc5740f62c0864e851098dc43cb4c9ba8633421e5bc362cdc559523118bb4fe4281851c051e24a88846a2d774eb3f928595761cf719e90 EC_PARAMS: 06082a8648ce3d030107 (OID 1.2.840.10045.3.1.7) label: MyECCKey ID: 02 Usage: verify Access: none Unique ID: uri: pkcs11:model=;manufacturer=NXP%20Semiconductor;serial=;token=smw;id=%02;object=MyECCKey;type=public Private Key Object; EC label: MyECCKey ID: 02 Usage: sign Access: sensitive, always sensitive Unique ID: uri: pkcs11:model=;manufacturer=NXP%20Semiconductor;serial=;token=smw;id=%02;object=MyECCKey;type=private   The following command will generate a suitable message.txt file, and then you can generate and verify a signature on it. echo hello > message.txt pkcs11-tool --module $MODULE_PKCS11 \ --login \ --sign \ --id 02 \ --mechanism ECDSA-SHA256 \ --input-file message.txt \ --output-file signature.bin pkcs11-tool --module $MODULE_PKCS11 \ --login \ --verify \ --id 02 \ --mechanism ECDSA-SHA256 \ --input-file message.txt \ --signature-file signature.bin     Using ELE via openssl   Similarly, we will explain the entire process, focusing specifically on ECDSA signing and verification. This assumes that you have already started nvm_daemon and generated the ECC key pair using the procedure for pkcs11-tool described in the previous chapter.   Create an openssl.cnf file with the following content: The lines for `module` and `pkcs11-module-path` at the end may need to be changed to match your actual system. openssl_conf = openssl_init [openssl_init] providers = provider_sect [provider_sect] default = default_sect pkcs11 = pkcs11_sect [default_sect] activate = 1 [pkcs11_sect] module = /usr/lib/ossl-modules/pkcs11.so pkcs11-module-path = /usr/lib/libsmw_pkcs11.so.5 activate = 1   Use the following command to configure openssl to use the above configuration file. export OPENSSL_CONF=<作成したopenssl.cnfの絶対path>   Signature generation and verification can be done using the following commands. openssl pkeyutl -sign -inkey "pkcs11:object=MyECCKey;type=private" -in message.txt -out sig.bin -digest sha256 openssl pkeyutl -verify -pubin -inkey "pkcs11:object=MyECCKey;type=public" -in message.txt -sigfile sig.bin -digest sha256     Creating a PKCS#11 URI PEM file   In using the openssl provider, I used a URI that could be directly verified in the object list as the key.   However, the pkcs11-provider documentation , under "USE IN OLDER APPLICATIONS (URIs in PEM files)," states that this is a new method and may not be usable when using older applications.   In fact, the Mosquitto client, which will be discussed later, has code that prevents you from directly specifying a URI when using openssl 3.0 or later.   In such cases, you can use the CLI tool uri2pem.py to generate a file containing the URI and use it in the same way as specifying a regular key file.   Using uri2pem.py downloaded from the above page, generate a file containing the PKCS#11 URI with the following command. python3 uri2pem.py --out MyECCKey.pem "pkcs11:object=MyECCKey;type=private" Although I haven't been able to confirm the details, based on the contents of uri2pem.py, it seems that it's not possible to create pem files for URIs other than private keys. By specifying the generated "MyECCKey.pem" as the signing key, you can perform the same actions as before. openssl pkeyutl -sign -inkey MyECCKey.pem -in message.txt -out sig.bin -digest sha256 openssl pkeyutl -verify -pubin -inkey "pkcs11:object=MyECCKey;type=public" -in message.txt -sigfile sig.bin -digest sha256     Cloud connectivity to Azure IoT Hub via Eclipse Mosquitto ™ client using keys within ELE   We will attempt to establish a cloud connection to Azure IoT Hub using the Mosquitto client with the generated key.   Note: The RootCA certificate created using this procedure is for testing purposes only. It is recommended to delete the certificate from Azure IoT Hub after testing is complete.   In advance How to use Secure Element SE05x: Setting up Plug and Trust Middleware on the FRDM-IMX93 development board (Japanese blog) The chapter "Building and Installing the Mosquitto Client"   How to use Secure Element SE05x: Connecting to Azure IoT Hub using Eclipse Mosquitto client (Japanese blog) In the chapter "Creating an Azure IoT Hub",   Follow each step to complete the installation of the Mosquitto client and the creation of the Azure IoT Hub.     First, on the FRDM-IMX93 side, execute the following command to create a certificate request for the public key of MyECCKey and verify its contents. openssl req -new -key "pkcs11:object=MyECCKey" -outform PEM -subj /CN=frdmimx93_test -out frdmimx93_test.csr -sha256 openssl req -text -noout -in frdmimx93_test.csr   Next, move "frdmimx93_test.csr" to the host PC and execute the following: openssl ecparam -genkey -name prime256v1 -out rootCA_key_pair.pem openssl req -new -x509 -subj /CN=rootCA -key rootCA_key_pair.pem > rootCA_cert.cer openssl x509 -req -in frdmimx93_test.csr -days 365 -CA rootCA_cert.cer -CAkey rootCA_key_pair.pem -out frdmimx93_test_cert.cer Place the created "frdmimx93_test_cert.cer" back onto the FRDM-IMX93. Since it will be used later in conjunction with " MyECCKey.pem ", place it in the same directory where you created it. Additionally, you will register the created "rootCA_cert.cer" file in Azure IoT Hub and create a device named "frdmimx93_test". For instructions, please refer to the "Adding an Intermediate CA Certificate to Azure IoT Hub" section in the following article. How to use Secure Element SE05x: Connecting to Azure IoT Hub using Eclipse Mosquitto client (Japanese blog) Note: As mentioned above, the certificate registered here is for testing purposes only, so it is recommended to delete it after confirming its functionality.   Once you have completed these steps, you will be able to connect to Azure IoT Hub using the Mosquitto client.   Execute the following command. Please change IOT_HUB_NAME as appropriate. export IOT_HUB_NAME=ShinjiIotHubTest export DEVICE_NAME=frdmimx93_test mosquitto_pub -h "${IOT_HUB_NAME}.azure-devices.net" -p 8883 -u "${IOT_HUB_NAME}.azure-devices.net/${DEVICE_NAME}/api-version=2016-11-14" -t "devices/${DEVICE_NAME}/messages/events/" -m '{"mes":"Hello Azure with i.MX93!"}' --capath /etc/ssl/certs/ --cert frdmimx93_test_cert.cer --key MyECCKey.pem -i ${DEVICE_NAME} -d -q 1 If you see output similar to the following, it's a success. Client frdmimx93_test sending CONNECT Client frdmimx93_test received CONNACK (0) Client frdmimx93_test sending PUBLISH (d0, q1, r0, m1, 'devices/frdmimx93_test/messages/events/', ... (34 bytes)) Client frdmimx93_test received PUBACK (Mid: 1, RC:0) Client frdmimx93_test sending DISCONNECT By following the steps in the article below, "Checking messages sent to IoT Hub and sending messages to devices," you can also check received messages in Cloud Shell on the Azure IoT Hub side. How to use Secure Element SE05x: Connecting to Azure IoT Hub using Eclipse Mosquitto client (Japanese blog) ========================= 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 inquiries.(If you are already an NXP distributor or have a relationship with NXP, you may ask your representative directly.) This article explains how to use the cryptographic accelerator and key management functions of the i.MX 93's built-in EdgeLock® Secure Enclave (ELE) via PKCS#11. PKCS#11 is a widely used API in cryptography and can be integrated with OpenSSL, another widely used library. Therefore, protection can be applied to all applications that perform authentication using PKCS#11 or OpenSSL (e.g., Eclipse Mosquitto ™ etc.) without any modifications to the application itself . The fact that it provides cryptographic acceleration and key management functions is something it shares with secure elements such as the SE050, which are introduced in another article. For an overview of cryptographic accelerators and key management, as well as a general comparison and usage guidelines with secure elements, please refer to the following article. This article explains commonly heard features in semiconductor hardware security (Secure Element, Secure Enclave, TPM, HSM, TEE, TrustZone, etc.) (Japanese blog). Estimated time: Approximately 55 minutes (excluding Yocto build) Using ELE via pkcs11-tool: 10 minutes Using ELE via openssl: 10 minutes Creating a PKCS#11 URI PEM file: 5 minutes Cloud connectivity to Azure IoT Hub: 30 minutes   i.MX Processors Security Japanese Blog
View full article
i.MX8MM eMMC sd3 クロック DSE スルーレート設定 上記のパッド操作設定はリファレンスマニュアルには記載されていません。なぜ、そしてどのようにしてこれらの設定をテスト・トリミングすればよいのでしょうか? Re: i.MX8MM eMMC sd3 clk dse en slew rate setting こんにちは@NLFOHE お元気でお過ごしのことと思います。 実際には、そのパッドはレジスタ名 IOMUXC_SW_PAD_CTL_PAD_NAND_WE_B の下にあります。 MuxモードレジスタはuSDHC3(IOMUXC_SW_MUX_CTL_PAD_NAND_WE_B)として設定する必要があります。 よろしくお願いいたします。 サラス。
View full article
S32K OTA Rollback 各位好,我想咨询一下,关于S32K3系列的HSE ABSwap OTA回滚机制。我了解到的是如果A区为稳定区,将A区切换到B区,B区如果出现Hardfault或看门狗超时等错误问题,OTA的错误计数器会累减,当错误计数器为0时,程序会认定B区为不稳定区从而切换片区回到A区。请问这个机制是正确的吗?如果不是,那么OTA的回滚机制是怎样的呢? Re: S32K OTA Rollback 嗨@RootOf3 对于 S32K3 HSE AB Swap,回滚机制不基于 HSE 监控运行时故障,例如 HardFaults 或看门狗 RESET。 HSE 本身并不会根据应用程序运行时行为来判断新激活的应用程序是否稳定。AB 交换执行完毕后,新映像将变为活动状态,通常由用户引导加载程序/应用程序决定更新是否成功或是否应请求回滚。 安全启动也可以用作恢复策略的一部分。如果活动映像的身份验证失败,则可以根据配置的启动流程和客户的软件设计,将启动流程设计为执行备用映像或专用的恢复映像。一旦有效的恢复映像或备用映像正在运行,软件可以在需要时请求另一个 AB 交换。 综上所述,HSE 提供了安全启动、映像认证和 AB 交换的机制,但实际的回滚策略(包括如何检测运行时故障以及系统何时切换回之前的映像)是由用户引导加载程序/应用程序实现的。 此致, Lukas
View full article
S32K OTA Rollback Hello everyone, I'd like to inquire about the HSE ABSwap OTA rollback mechanism for the S32K3 series. My understanding is that if partition A is a stable partition, switching from partition A to partition B will cause errors such as Hardfault or watchdog timeout to occur in partition B. The OTA error counter will decrease, and when the error counter reaches 0, the program will consider partition B an unstable partition and switch back to partition A. Is this mechanism correct? If not, what is the OTA rollback mechanism? Re: S32K OTA Rollback Hi @RootOf3  For S32K3 HSE AB Swap, the rollback mechanism is not based on HSE monitoring runtime failures such as HardFaults or watchdog resets. HSE itself does not determine whether the newly activated application is stable based on the application runtime behavior. After the AB Swap is performed, the new image becomes active, and it is typically the responsibility of the user bootloader/application to decide whether the update was successful or whether a rollback should be requested. Secure Boot can also be used as part of the recovery strategy. If authentication of the active image fails, the boot flow can be designed to execute an alternate image or a dedicated recovery image, depending on the configured boot flow and the customer’s software design. Once a valid recovery or alternate image is running, the software can request another AB Swap if needed. So, in summary, HSE provides the mechanisms for Secure Boot, image authentication, and AB Swap, but the actual rollback policy, including how runtime failures are detected and when the system switches back to the previous image, is implemented by the user bootloader/application. Regards, Lukas
View full article
私はS32K312を使用しており、HSEファームウェアを使用して新しいNVMキーカタログを作成したいと考えています。 HSEのNVMキーCatlogに64バイトの公開鍵を1つ保存したいのですが、Catlogに書き込みしようとすると、HSE_SRV_RSP_NOT_ALLOWED問題に直面しています(簡単なこと:属性、ライフサイクル依存操作、キーマネジメントなどの制限により、この操作は許可されていません)。  CAN、このCASEの場合、どうすればよいか教えていただけますか? Re: I am Using S32K312 and I want to Create New NVM key Catlog with my HSE Firmware こんにちは、 @Amolniwateさん キーカタログはどのように設定していますか? また、NVM公開鍵は認証済みのみインポート可能であり、鍵カタログは鍵をプロビジョニングする前にフォーマットしなければなりません。 BR、VaneB
View full article
我正在使用S32K312,我想使用我的HSE固件创建新的NVM密钥目录。 我想将 1 个 64 字节的公钥存储在 HSE 的 NVM 密钥目录里,但是当我尝试写入目录时,遇到了HSE_SRV_RSP_NOT_ALLOWED 问题(简而言之,由于某些限制(属性、生命周期相关操作、密钥管理等),该操作不被允许)。 请问在这种情况下我应该怎么做? Re: I am Using S32K312 and I want to Create New NVM key Catlog with my HSE Firmware 嗨@Amolniwate 你们是如何配置密钥目录的? 此外,NVM 公钥只能通过身份验证导入,并且在配置任何密钥之前必须格式化密钥目录。 BR,VaneB
View full article
S32K344EVB-T172: オンボードのOpenSDAデバッガーに接続できません こんにちは、 私はS32K344EVB-T172を使用していますが、オンボードのOpenSDA/PEmicroデバッガに接続できません。 デバッグ用USBケーブルを接続しても、デバッグLEDが点灯せず、オンボードデバッガーがPCに認識されないため、デバッグセッションを開始できない場合があります。 私は既に以下のことを試しました: 複数のUSBデータケーブル 異なるUSBポート ボードをリセットして電源を入れ直す 外部ハードウェアがコネクテッドされていない状態でテストしています 以前にこの問題に遭遇した方はいますか?オンボードのOpenSDAデバッガに関して、推奨される復旧手順、ファームウェアのアップデート、またはハードウェア/ジャンパーのチェック方法はありますか? よろしくお願いします。 Re: S32K344EVB-T172: Unable to Connect to the Onboard OpenSDA Debugger ご返信ありがとうございます。 はい、PEmicroドライバを最新バージョンに更新しました。以前はEVBのフラッシュとデバッグを正常に行えていましたが、最近、デバッグ用USBを接続してもデバッグLEDが点灯しないため、オンボードのOpenSDAデバッガーが検出されないことがあります。 S32K3X4EVB-T172クイックスタートガイドに従って、ジャンパーが正しく設定されていることも確認しました。追加のチェックやOpenSDAファームウェアの復旧手順が推奨されるか、あるいはハードウェアの問題を示している可能性はありますか? Re: S32K344EVB-T172: Unable to Connect to the Onboard OpenSDA Debugger こんにちは、 @SourabhJ さん PEmicroのドライバは最新バージョンに更新しましたか?以前、EVBの書き換えに成功しましたか? また、 MCU自動車ボードのクイックスタートの「S32K3X4EVB-T172評価ボードのジャンパー設置」セクションで説明されている通りにジャンパーが設定されているかも確認していただけますか? BR、VaneB Re: S32K344EVB-T172: Unable to Connect to the Onboard OpenSDA Debugger こんにちは、 @SourabhJ さん LEDのD14とD15だけが点灯していないのか、それとも電圧レギュレーターの隣にある3つのLEDもオフなのか確認していただけますか? もしPEMicro MultilinkやSEGGER J-Linkのような外部デバッガにアクセスできるなら、基板のJ12(20ピンCortex Debug)コネクタで接続してみてはどうでしょうか?これにより、S32K344 MCUがオンボードデバッガに依存して正しく応答しているかどうかを確認できます。 また、この問題が起きる前に最後にボードにプログラムされたアプリケーションやファームウェアは何ですか?
View full article
导出 S32CT .mex配置到 EB Tresos 您好,NXP技术支持, 是否有办法导出/转换 S32CT 配置 .mex 文件?将文件转换成EB TRESOS可以读取/导入/使用的格式?我需要切换到 EB Tresos,但不想手动转移每个配置项。 我附上了一个示例 .mex 文件。我从我的项目中选取文件作为参考,引用。 Re: Exporting S32CT .mex configuration to EB Tresos 你好@DirkEtzler 遗憾的是,目前还没有自动转换工具或插件可以将 S32DS (.mex) 配置迁移到 EB tresos (.arxml) 格式。 S32 配置工具使用 .mex 文件格式,而 EB Tresos 遵循 .arxml 格式。AUTOSAR 标准在架构和约束方面有很大不同。   建议的方法是使用 .mex 文件在 EB Tresos 中手动重新创建配置。配置和生成的驱动程序代码作为参考,引用。您可以参考Tresos Training 提供的 RTD MCAL 指南来获取一些指导。   如果您在迁移过程中遇到任何问题,请提交您的查询,我们将很乐意为您提供帮助。   此致, 朱利安 Re: Exporting S32CT .mex configuration to EB Tresos 你好@Julián_AragónM , 感谢您的快速回复。我会遵守规则,遇到问题时再发帖提问。
View full article
S32CT .mex をエクスポートしていますEB Tresosへの設定 こんにちは、NXPサポートの皆さん、 S32CT構成ファイル(.mex)をエクスポート/変換する方法はありますか?ファイルを作成して、EB TRESOSで読み込み・取り込み可能なものにできますか?すべての設定アイテムを手動で移さずにEBのトレソに切り替える必要があります。 サンプル.mexファイルを添付しました。私のプロジェクトからのファイルを参考資料として使用します。 Re: Exporting S32CT .mex configuration to EB Tresos こんにちは、 @DirkEtzler さん 残念ながら、 S32DS (.mex) 構成を EB tresos (.arxml) 形式に移行するための自動変換ツールやプラグインは存在しません。 S32構成ツールは.mexファイルを使用しますEB Tresosは.arxml形式に従うが、EB Tresosは.arxml形式に従う。AUTOSAR標準であり、スキーマや制約において大きく異なります。   推奨される方法は、.mex ファイルを使用して EB tresos で構成を手動で再作成することです。設定および生成されたドライバーコードを参照しています。RTD MCAL Based in Tresos トレーニングのガイドラインを参考にすると、いくつかの指針が得られます。   移行中に問題があるCASE、ご質問いただければ、喜んでお手伝いいたします。   よろしくお願いします、 ジュリアン Re: Exporting S32CT .mex configuration to EB Tresos こんにちは、 @Julián_AragónM さん、 迅速なご返信ありがとうございます。ガイドラインに従って進め、行き詰まった場合は質問を投稿します。
View full article
S32K344EVB-T172: Unable to Connect to the Onboard OpenSDA Debugger Hello, I am using the S32K344EVB-T172 and am unable to connect to the onboard OpenSDA/PEmicro debugger. Sometimes, when I connect the Debug USB cable, the Debug LED does not turn ON, and the onboard debugger is not detected by the PC, preventing me from starting a debug session. I have already tried: Multiple USB data cables Different USB ports Resetting and power cycling the board Testing with no external hardware connected Has anyone encountered this issue before? Is there a recommended recovery procedure, firmware update, or hardware/jumper check for the onboard OpenSDA debugger? Thank you. Re: S32K344EVB-T172: Unable to Connect to the Onboard OpenSDA Debugger Thank you for your response. Yes, I have updated the PEmicro drivers to the latest version. I was previously able to flash and debug the EVB successfully, but recently the onboard OpenSDA debugger is not detected at times because the Debug LED does not turn ON after connecting the Debug USB. I have also verified that the jumpers are correctly set as per the S32K3X4EVB-T172 Quick Start guide. Could you please advise if any additional checks or OpenSDA firmware recovery steps are recommended, or if this could indicate a hardware issue? Re: S32K344EVB-T172: Unable to Connect to the Onboard OpenSDA Debugger Hi @SourabhJ  Have you updated the PEmicro drivers to the latest version? Were you previously able to flash the EVB successfully? Could you also verify that the jumpers are configured as described in the "Set Up Jumpers in the S32K3X4EVB-T172 Evaluation Board" section of the MCU Automotive Board Quick Starts? BR, VaneB Re: S32K344EVB-T172: Unable to Connect to the Onboard OpenSDA Debugger Hi @SourabhJ  Could you please confirm whether only LEDs D14 and D15 are not turning on, or if the three LEDs located next to the voltage regulators are also OFF? If you have access to an external debugger, such as a PEMicro Multilink or SEGGER J-Link, could you try connecting through the J12 (20-pin Cortex Debug) connector on the board? This would help us verify whether the S32K344 MCU is still responding properly, independent of the onboard debugger. Also, what was the last application or firmware that was programmed onto the board before this issue started to occur?
View full article
S32K344EVB-T172:无法连接到板载 OpenSDA 调试器 你好, 我正在使用S32K344EVB-T172 ,但无法连接到板载OpenSDA/PEmicro调试器。 有时,当我连接调试 USB电缆时,调试 LED 灯不会亮起,PC 也检测不到板载调试器,导致我无法启动调试会话。 我已经尝试过了: 多根USB数据线 不同的 USB 端口 重置并重启电路板 测试时未连接任何外部硬件 之前有人遇到过这个问题吗?对于板载 OpenSDA 调试器,是否有推荐的恢复程序、固件更新或硬件/跳线检查方法? 谢谢! Re: S32K344EVB-T172: Unable to Connect to the Onboard OpenSDA Debugger 感谢您的反馈, 是的,我已经将PEmicro驱动程序更新到最新版本。我之前能够成功地对 EVB 进行烧录和调试,但最近板载 OpenSDA 调试器有时无法被检测到,因为连接调试 USB 后调试 LED 灯不会亮起。 我还确认跳线已按照 S32K3X4EVB-T172 快速入门指南正确设置。请问是否建议进行其他检查或采取 OpenSDA 固件恢复步骤,或者这是否可能表明存在硬件问题? Re: S32K344EVB-T172: Unable to Connect to the Onboard OpenSDA Debugger 嗨@SourabhJ 您是否已将 PEmicro 驱动程序更新到最新版本?您之前是否成功刷写过EVB? 您能否也确认一下跳线是否按照MCU 汽车板快速入门指南中的“在 S32K3X4EVB-T172 评估板上设置跳线”部分所述进行配置? BR,VaneB Re: S32K344EVB-T172: Unable to Connect to the Onboard OpenSDA Debugger 嗨@SourabhJ 请问是否只有 LED D14 和 D15 不亮,还是电压调节器旁边的三个 LED 也都不亮? 如果您可以使用外部调试器,例如 PEMicro Multilink 或 SEGGER J-Link,能否尝试通过板上的 J12(20 针 Cortex 调试)连接器进行连接?这将有助于我们验证 S32K344 MCU 是否仍然能够正常响应,而无需依赖板载调试器。 另外,在出现此问题之前,最后写入板的应用程序或固件是什么?
View full article
I am Using S32K312 and I want to Create New NVM key Catlog with my HSE Firmware I want to store 1 public key of 64 bytes in NVM key Catlog of HSE, but when I am trying to write into the Catlog I am facing issue as HSE_SRV_RSP_NOT_ALLOWED   (brief The operation is not allowed because of some restrictions (in attributes, life-cycle dependent operations, key-management, etc.).   Can you please guide me what should be done in this case ? Re: I am Using S32K312 and I want to Create New NVM key Catlog with my HSE Firmware Hi @Amolniwate  How you are configuring the key catalog? Also, if you have User rights, plain keys can only be imported authenticated. If you have SuperUser rights, the behavior depends on whether the slot is empty or already programmed: Empty slots: Plain key can be imported , with or without authentication. Non-empty slots: Plain/Encrypted key can only be imported (overwritten) authenticated. You can refer to Tables 47 and 48 in the HSE_B Firmware Reference Manual, Rev. 2.7 for more details. BR, VaneB
View full article
S32K144 SRTCチャネルでGPT通知コールバックがトリガーされない - MCAL RTM 1.0.6(AUTOSAR 4.2)+ EB NXPチームの皆様、こんにちは。 私は以下のツールを使ってS32K144プロジェクトに取り組んでいます。 MCALパッケージ:S32K1XX_MCAL4_2_RTM_1_0_6 AUTOSARバージョン:4.2.2 EB Tresos バージョン: 29.0 デバイス: S32K144 タイマー自体は正しく動作しているように見えるのですが、GPT通知コールバックがトリガーされないという問題が発生しています。 GPT設定 GPTチャネルはEB Tresosで次のように設定されています: ハードウェアモジュール:SRTC チャネル:SRTC_0_CH_0 モード:連続 通知:有効化済み 外部空虚Gpt_Notification(空虚); 静的 CONST(Gpt_ChannelConfigType, GPT_CONST) Gpt_InitChannelPB[1] = { { (ブール値)誤り、 &Gpt_Notification、 ... (Gpt_ChannelModeType)(GPT_CH_MODE_CONTINUOUS)、 { (uint8)(SRTC_0_CH_0) (uint8)(GPT_SRTC_MODULE)、 ... } } }; Gpt_GetTimeElapsed()(アプリケーションコードで使用)によって返される値は、実行中に継続的に増加し、以下を示します: GPTの初期化に成功しました。 GPTタイマーが正常に起動しました。 SRTCタイマーは正しくカウントしています。 しかし: Gpt_Notification() は呼び出されません。 Gpt_Notification() 関数内のブレークポイントは一度もヒットしません。 もう少し詳しく教えていただけますか: S32K1XX_MCAL4_2_RTM_1_0_6の SRTC_0_CH_0 で GPT 通知に既知の問題はありますか? SRTCベースのGPTは、GPTモジュール構成以外に追加のNVICや割り込み設定が必要ですか? あるいは見落としているかもしれない他の点。 よろしくお願いいたします。 アイシュワリヤー Re: S32K144 GPT Notification Callback Not Triggering on SRTC Channel - MCAL RTM 1.0.6 (AUTOSAR 4.2) こんにちは、 @Aishwr チェックしてください: EB Tresos の GptIsrEnable - Gpt に移動 -> GptHwConfiguration -> GptHw割り込みチャネル。SRTC_0_CH_0 のエントリを探してください。GptIsrEnableとGptChannelIsUsedの両方が有効になっていることを確認してください。これら両方のデフォルト値はfalseなので、明示的に有効にしないとSRTCチャネルのISRはアクティブになりません。 Gpt_EnableNotification()をアプリケーションコード入力 - EB Tresosの通知機能の設定だけでは十分ではありません。API Gpt_EnableNotification(GptConf_GptChannelConfiguration_ )は、Gpt_StartTimer()の後にアプリケーション内で明示的に呼び出される必要があります。この電話がなければ、タイマーが正しく作動してもドライバは通知を届けません。 割り込みコントローラの初期化 – ドライバーの偏差SWS_Gpt_00355およびユーザーマニュアルで言及されているSWS_Gpt_00356、統合コードはGPTドライバを使用する前にNVICでRTC/SRTC割り込みラインを有効にする必要があります。これはGpt_Init()では行われません。これが起動コードまたは統合コードで行われているかどうか、また、Gpt_StartTimer() が呼び出される前に行われているかどうかを確認してください。 よろしくお願いいたします。 ルーカス
View full article
S32K OTAロールバック 皆さんこんにちは。S32K3シリーズのHSE ABSwap OTAロールバック機構について質問させてください。私の理解では、パーティションAが安定したパーティションである場合、パーティションAからパーティションBに切り替えると、パーティションBでハードフォールトやウォッチドッグタイムアウトなどのエラーが発生します。OTAエラーカウンタが減少し、エラーカウンタが0になると、プログラムはパーティションBを不安定なパーティションと判断し、パーティションAに戻ります。このメカニズムは正しいでしょうか?もし正しくない場合、OTAロールバック機構とはどのようなものですか? Re: S32K OTA Rollback こんにちは、@RootOf3 S32K3 HSE AB Swapの場合、ロールバックメカニズムは、HardFaultやウォッチドッグリセットなどのHSE監視ランタイム障害に基づいていません。 HSE自体は、新たに起動されたアプリケーションの安定性をアプリケーションの実行時の挙動に基づいて判断しません。ABスワップが実行されると新しいイメージが有効になり、通常はユーザーのブートローダーやアプリケーションが更新が成功したかロールバックを要求すべきかを判断します。 Secure Bootも復旧戦略の一部として利用できます。アクティブなイメージの認証に失敗した場合、ブートフローは設定されたブートフローやお客様のソフトウェアデザインに応じて、代替イメージまたは専用のリカバリーイメージを実行するよう設計できます。有効なリカバリーや代替イメージが実行されると、必要に応じてソフトウェアは別のABスワップを要求できます。 まとめると、HSEはSecure Boot、イメージ認証、ABスワップの仕組みを提供しますが、実際のロールバックポリシー、例えばランタイムの失敗検出方法やシステムが前のイメージに戻るタイミングは、ユーザーのブートローダー/アプリケーションによって実装されます。 よろしくお願いいたします。 ルーカス
View full article
Exporting S32CT .mex configuration to EB Tresos Hello NXP support, is there a way to export/transform an S32CT configuration .mex file into something that can be read/imported/consumed by EB TRESOS?  I need to switch to EB tresos without manually transferring every configuration item. I have attached an example .mex file from my projects as references. Re: Exporting S32CT .mex configuration to EB Tresos Hello @DirkEtzler Unfortunately, there is no automatic conversion tool or plugin to migrate S32DS (.mex) configurations into EB tresos (.arxml) format. S32 Configuration Tools use the .mex format, while EB Tresos follows the .arxml AUTOSAR standard and differs significantly in schema and constraints.   The recommended approach is to recreate the configuration in EB tresos manually, using the .mex configuration and generated driver code as a reference. You can follow the RTD MCAL Based in Tresos Training for some guidance.   In case you come up with any issues during migration, you submit your query and we will be happy to assist.   Best regards, Julián Re: Exporting S32CT .mex configuration to EB Tresos Hello @Julián_AragónM , thanks for the quick reply.  I will follow the guidelines, and when I hit a roadblock post my question(s).
View full article
i.MX8MM eMMC sd3 时钟 dse en 转换速率设置 上述打击垫控制设置并未在参考手册中描述。我们为什么要测试/调整这些设置?以及如何测试/调整这些设置? Re: i.MX8MM eMMC sd3 clk dse en slew rate setting 你好@NLFOHE 希望你一切都好。 实际上,该焊盘位于寄存器名称下方:IOMUXC_SW_PAD_CTL_PAD_NAND_WE_B。 多路复用模式寄存器应配置为 uSDHC3 (IOMUXC_SW_MUX_CTL_PAD_NAND_WE_B): 顺祝商祺! 萨拉斯。
View full article