Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
Is the S32K312 a drop-in replacement for the S32K311 (both in 100-pin package)? And if it isn't, what would the difference be? Re: Is the S32K312 a drop-in replacement for the S32K311 (both in 100-pin package)? Hi @klv222, Yes, the pinout is identical. Refer to the excel files attached to the reference manual. S32K312_IOMUX.xlsx S32K311_S32K310_IOMUX.xlsx BR, Daniel Re: Is the S32K312 a drop-in replacement for the S32K311 (both in 100-pin package)? Hello, Yes, the S32K312 and S32K311 in the 100-pin package have the same pinout, so they are physically drop-in compatible from a PCB perspective. However, they are not a complete software drop-in replacement because there are differences in memory size and device features. Make sure the linker file, startup code, clock configuration, and peripheral usage match the target MCU before migrating. Always verify the exact part numbers and datasheet details for your application. Best Regards
查看全文
「スマートエネルギー」太陽光発電に関する意見 追記:皆さん、ありがとうございます。ご意見ありがとうございます!彼らには「とっとと失せろ」と言ってやるよ。どうせ私は何も約束する準備ができていないんだから。 今日はスマートエナジーという会社の訪問販売員が何人か来て、太陽光パネルについて話したがっていました。太陽光発電に興味はあるのですが、初期投資をする資金がありません。そこで、初期費用ゼロで利用できる政府資金による制度があると聞きました。 もちろん、私は非常に懐疑的です。彼らと取引したことのある方からのご意見をぜひお聞かせください。
查看全文
Top Generative AI Development Company in 2026 Apptunix  is a trusted generative AI development company delivering advanced generative AI solutions that help businesses automate processes and build intelligent digital products. The company develops AI-powered applications such as smart chatbots, AI assistants, recommendation engines, and content generation tools. With strong expertise in AI, mobile app development, and enterprise software, Apptunix helps startups and large organizations integrate generative AI into their digital strategies. Re: Top Generative AI Development Company in 2026 In 2026, finding the right team for your AI project is less about big promises and more about real capability. Many companies position themselves as leaders, but only a few truly stand out when it comes to delivering practical, business-focused solutions. When evaluating a Generative AI Development Company, the first thing to notice is how well they understand your use case. The best teams don’t just talk about models or tools—they focus on outcomes, efficiency, and how AI fits into your workflow. Strong portfolios, clear communication, and a problem-solving mindset are what separate top companies from the rest. Instead of chasing trends, they build solutions that actually work in real environments and continue improving over time. It’s also important to choose a company that thinks beyond development. The real value comes from long-term support, updates, and the ability to adapt as your needs grow. In the end, the “top” company isn’t the most popular one—it’s the one that understands your goals and helps you achieve them without unnecessary complexity. Re: Top Generative AI Development Company in 2026 Businesses adopting generative AI chatbot development gain a competitive edge through automation, personalization, and 24/7 engagement. Our AI development services focus on building intelligent, context-aware chatbots tailored for web and React Native app development environments. We leverage cutting-edge machine learning, prompt engineering, and conversational AI frameworks to create bots that understand user intent, improve customer journeys, and increase lead generation. Re: Top Generative AI Development Company in 2026 There’s no single “top” generative AI company in 2026-it depends on your use case. Large firms like Accenture or IBM are strong for enterprise-scale projects but can be costly and slower. Mid-sized AI specialists are better for custom LLM apps, RAG pipelines, and integrations. Agile teams often focus on faster execution and real deployments. I’ve seen companies like Tabdelta Solutions mentioned for building practical AI products and automation systems. Ultimately, choose based on expertise, speed, and ability to deliver production-ready solutions. Re: Top Generative AI Development Company in 2026 Great addition. Apptunix has built a solid track record, especially in mobile AI. For anyone evaluating vendors beyond this one, it helps to separate companies by their core orientation: some are mobile-first shops that have added Gen AI to their stack, while others have built their entire practice around AI from the ground up. One company worth adding to this thread is Maruti Techlabs. They've been in AI for 15+ years, with 100+ projects delivered. Their Gen AI work spans custom LLM development, RAG pipelines, AI agents, and enterprise automation. Clients include names like Red Bull and Harvard Business Review. Clutch and GoodFirms both recognize them as a top AI firm. Depending on what you're building, whether it's an AI-powered product or an enterprise workflow layer, the right fit can vary quite a bit between these vendors. Re: Top Generative AI Development Company in 2026 Choosing the right AI partner depends on expertise, innovation, and the ability to deliver business-focused solutions. Nimble AppGenie is a trusted Generative AI development company that helps startups and enterprises build intelligent applications powered by Generative AI, LLMs, AI agents, and automation technologies. Our team develops custom AI solutions that enhance productivity, streamline business operations, improve customer experiences, and support digital transformation. With a focus on scalability, security, and real-world business outcomes, Nimble AppGenie enables organizations to leverage the full potential of AI across industries, including fintech, healthcare, eCommerce, logistics, and education. Re: Top Generative AI Development Company in 2026 TechQware is a reliable AI App Development Company helping businesses build generative AI solutions such as AI chatbots, virtual assistants, recommendation engines, and custom AI-powered applications. They also specialize in mobile and enterprise software, making them a good option for businesses looking to integrate AI into their digital products. Re: Top Generative AI Development Company in 2026 Generative AI is making a noticeable impact on how companies build and improve digital solutions. I especially liked the focus on practical AI development and how these tools can support different business needs. For anyone researching property information resources like Lee Property History can also be useful for finding relevant public data. It’s interesting to see how AI can connect with data-driven services in useful ways. Overall, this was an informative read with some helpful points about the future of AI development.
查看全文
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分 Keita_Nagashima_0-1785473891452.png   動作確認に使用した環境 ハードウェア: 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を提供しています。 画像1.png   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 日本語ブログ
查看全文
如何在 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 分钟 Keita_Nagashima_0-1785473891452.png   测试环境 硬件: 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。 画像1.png   通过 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 处理器 安全 日本博客
查看全文
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 Keita_Nagashima_0-1785473891452.png   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. 画像1.png   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
查看全文
「お住まいの地域では利用できません」と表示された場合に、海外でCCTVを視聴する方法 海外からCCTVやCCTV-5を視聴しようとしているのに、「このコンテンツはお住まいの地域では利用できません」というメッセージが表示される?あなたは一人ではありません。多くの海外華人、留学生、旅行者は、CCTVアプリや中国プレスリリース、製品ニュースグループ(CMG)のストリーミングプラットフォームを利用する際に地域制限に直面しています。 良いニュースは、アクセスを改善し、お気に入りの番組を視聴し続けるためのいくつかの方法があることです。 防犯カメラの映像が「お住まいの地域ではご利用いただけません」と表示されるのはなぜですか? CCTVは多くのテレビチャネル、ライブイベント情報、スポーツ大会、ニュース番組、ドキュメンタリー、バラエティ番組を放送しています。しかし、著作権契約や放送ライセンスの関係上、一部のコンテンツは中国本土から接続している視聴者のみが視聴可能です。 他国からCCTVにアクセスしている場合、以下のような現象が見られるかもしれません。 「このコンテンツはお住まいの地域ではご利用いただけません。」 ライブチャネルが読み込まれない。 画面が真っ暗になる、または再生エラーが発生する。 ストリーミングできないスポーツイベント情報。 バッファリングや不安定な映像品質。 これらの問題は特にCCTV-5、主要なスポーツイベント、独占ライブ中継の視聴時によく見られます。 海外から監視カメラを見る方法 海外にいる場合、以下の方法が視聴体験を向上させるのに役立ちます。 1. 中国向けに最適化されたネットワークを使用する 中国本土経由でトラフィックをルーティングする接続は、CANにより、プラットフォームがあなたのネットワークを国内接続として認識し、より地域限定のコンテンツへのアクセスを可能にします。 多くの海外ユーザーがSpeedX China アクセラレータを選んでいるのは、ライブテレビ、スポーツ、オンデマンド番組のストリーミングに安定した速度で最適化された中国ルートを提供するからです。 2. CCTVまたはCMGアカウントにサインインする アカウントにログインすることで、異なるデバイス間で視聴履歴や設定を同期できます。 3. アプリを定期的にアップデートする CCTVや関連するストリーミングアプリを最新の状態に保つことで、互換性が向上し、古いソフトウェアによる再生問題を減らせます。 一般的に制限されるコンテンツとは? ライセンスポリシーによっては、海外の視聴者は以下へのアクセスが制限される場合があります: CCTV-5 ライブスポーツ 主要なフットボールおよびバスケットボールイベント情報 テレビドラマ バラエティ番組 ドキュメンタリー 特別生放送 ニュースコンテンツは多くの場合世界中で視聴可能である一方、エンターテインメントやスポーツ番組は地域限定であることが多い。 おわりに 地域ごとの制限により、海外に住んでいる際や旅行中にCCTVの視聴が困難になることがあります。幸いなことに、信頼できる中国最適化接続を使用することで、ライブチャネルやオンデマンドコンテンツへのアクセス能力が大幅に向上します。 速報を追う方、CCTV-5のスポーツ視聴、中国のテレビ番組を楽しむ方、SpeedX(回国VPN工具)は、よりスムーズな視聴体験を求める多くの海外ユーザーに安定したソリューションを提供します。 学生プロジェクト
查看全文
DMA Error with imx93 and eqos in RMII I'm trying to make ethernet working with a LAN8742A PHY, connected to eqos, in RMII mode. I've taken the imx93-11x11-frdm.dts as base reference, and made the following changes : &iomuxc { pinctrl_eqos: eqosgrp { fsl,pins = < MX93_PAD_ENET1_MDC__ENET_QOS_MDC 0x57e /* OK */ MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO 0x57e /* OK */ MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0 0x57e /* OK */ MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1 0x57e /* OK */ /* MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2 0x57e MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3 0x57e */ MX93_PAD_ENET1_RXC__ENET_QOS_RX_ER 0x51e /* OK */ /* MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x51e */ MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x57e /* OK */ MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0 0x57e /* OK */ MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1 0x57e /* OK */ /* refclock for Eth phy */ MX93_PAD_ENET1_TD2__CCM_ENET_QOS_CLOCK_GENERATE_REF_CLK 0x57e /* OK */ /* MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2 0x57e MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3 0x57e */ /* MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x5fe */ MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x0000051e /* OK */ /* MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x57e */ >; }; &eqos { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_eqos>; phy-mode = "rmii"; phy-handle = <&ethphy1>; status = "okay"; /delete-property/ assigned-clocks; /delete-property/ assigned-clock-rates; assigned-clocks = <&clk IMX93_CLK_ENET_TIMER2>, <&clk IMX93_CLK_ENET>; assigned-clock-rates = <100000000>, <50000000>; mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; clock-frequency = <5000000>; ethphy1: ethernet-phy@0 { reg = <0>; eee-broken-1000tx; post-power-on-delay-ms = <100>; reset-gpios = <&pcal6524 19 GPIO_ACTIVE_LOW>; reset-assert-us = <15000>; reset-deassert-us = <100000>; }; }; }; Result in uboot is : u-boot=> bootp EQOS_DMA_MODE_SWR stuckFAILED: -110 u-boot=>  Result in linux is : [ 11.484536] imx-dwmac 428a0000.ethernet: Failed to reset the dma [ 11.490536] imx-dwmac 428a0000.ethernet eth0: stmmac_hw_setup: DMA engine initialization failed [ 11.499228] imx-dwmac 428a0000.ethernet eth0: __stmmac_open: Hw setup failed I don't understand what i am doing wrong, what i misconifgured, or why the dma does not initialize properly. It's pretty obvious that i'm missing something (a dma error looks like an internal error from the chip, so even if there was an error with the pinmux i don't thihnk i would get this, and i double checked the pinmux). Things i have checked : - clock is correctly sent to the PHY - communication with the PHY on mdio works Any hints on this would be greatly appreciated, Best regards, Julien Re: DMA Error with imx93 and eqos in RMII Reset is set correctly in uboot. I can see the PHY live (the leds work), and communicate with it, but i still get the DMA error. I tried manually disabling and reenabling the PHY via the reset pin in u-boot, but this didn't change anything. Here is the complete log from dmesg : [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x412fd050] [ 0.000000] Linux version 6.6.36 ([email protected]@UC155-BE2) (aarch64-sprinte450sp-linux-gnu-gcc.br_real (Buildroot 2026.05-2-gf0cfb0f3cf-dirty) 14.3.0, GNU ld (GNU Binutils) 2.45.1) #4 SMP PREEMPT Thu Jul 23 17:04:50 CEST 2026 [ 0.000000] KASLR disabled due to lack of seed [ 0.000000] Machine model: Sprinte 450SP board [ 0.000000] efi: UEFI not found. [ 0.000000] Reserved memory: created CMA memory pool at 0x00000000b0000000, size 256 MiB [ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x00000000b0000000..0x00000000bfffffff (262144 KiB) map reusable linux,cma [ 0.000000] earlycon: lpuart32 at MMIO32 0x0000000044380000 (options '') [ 0.000000] printk: bootconsole [lpuart32] enabled [ 0.000000] NUMA: No NUMA configuration found [ 0.000000] NUMA: Faking a node at [mem 0x0000000080000000-0x00000000bfffffff] [ 0.000000] NUMA: NODE_DATA [mem 0xafdcf6c0-0xafdd1fff] [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000080000000-0x00000000bfffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal empty [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000080000000-0x00000000bfffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000bfffffff] [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. [ 0.000000] psci: SMC Calling Convention v1.4 [ 0.000000] percpu: Embedded 22 pages/cpu s50600 r8192 d31320 u90112 [ 0.000000] pcpu-alloc: s50600 r8192 d31320 u90112 alloc=22*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: detected: GIC system register CPU interface [ 0.000000] CPU features: detected: Virtualization Host Extensions [ 0.000000] CPU features: detected: Qualcomm erratum 1009, or ARM erratum 1286807, 2441009 [ 0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923 [ 0.000000] alternatives: applying boot alternatives [ 0.000000] Kernel command line: console=ttyLP0,115200 earlycon root=/dev/mmcblk1p2 rootwait rw [ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear) [ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear) [ 0.000000] Fallback order for Node 0: 0 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 258048 [ 0.000000] Policy zone: DMA [ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off [ 0.000000] software IO TLB: area num 2. [ 0.000000] software IO TLB: mapped [mem 0x00000000aac00000-0x00000000aec00000] (64MB) [ 0.000000] Memory: 666980K/1048576K available (20608K kernel code, 1638K rwdata, 7744K rodata, 1984K init, 643K bss, 119452K reserved, 262144K cma-reserved) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2. [ 0.000000] Trampoline variant of Tasks RCU enabled. [ 0.000000] Tracing variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode [ 0.000000] GICv3: 960 SPIs implemented [ 0.000000] GICv3: 0 Extended SPIs implemented [ 0.000000] Root IRQ handler: gic_handle_irq [ 0.000000] GICv3: GICv3 features: 16 PPIs [ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000048040000 [ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention. [ 0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns [ 0.000000] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns [ 0.008305] Console: colour dummy device 80x25 [ 0.012529] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000) [ 0.022711] pid_max: default: 32768 minimum: 301 [ 0.027347] LSM: initializing lsm=capability,integrity [ 0.032485] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.039785] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.048237] cacheinfo: Unable to detect cache hierarchy for CPU 0 [ 0.054656] RCU Tasks: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1. [ 0.061512] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1. [ 0.069127] rcu: Hierarchical SRCU implementation. [ 0.073752] rcu: Max phase no-delay instances is 1000. [ 0.079653] EFI services will not be available. [ 0.084098] smp: Bringing up secondary CPUs ... [ 0.088812] Detected VIPT I-cache on CPU1 [ 0.088870] GICv3: CPU1: found redistributor 100 region 0:0x0000000048060000 [ 0.088904] CPU1: Booted secondary processor 0x0000000100 [0x412fd050] [ 0.089007] smp: Brought up 1 node, 2 CPUs [ 0.110357] SMP: Total of 2 processors activated. [ 0.115028] CPU features: detected: 32-bit EL0 Support [ 0.120154] CPU features: detected: 32-bit EL1 Support [ 0.125257] CPU features: detected: Data cache clean to the PoU not required for I/D coherence [ 0.133840] CPU features: detected: Common not Private translations [ 0.140073] CPU features: detected: CRC32 instructions [ 0.145196] CPU features: detected: RCpc load-acquire (LDAPR) [ 0.150906] CPU features: detected: LSE atomic instructions [ 0.156453] CPU features: detected: Privileged Access Never [ 0.161998] CPU features: detected: RAS Extension Support [ 0.167374] CPU features: detected: Speculative Store Bypassing Safe (SSBS) [ 0.174355] CPU: All CPU(s) started at EL2 [ 0.178380] alternatives: applying system-wide alternatives [ 0.187922] devtmpfs: initialized [ 0.194925] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns [ 0.204430] futex hash table entries: 512 (order: 3, 32768 bytes, linear) [ 0.216607] pinctrl core: initialized pinctrl subsystem [ 0.223019] DMI not present or invalid. [ 0.227066] NET: Registered PF_NETLINK/PF_ROUTE protocol family [ 0.233367] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations [ 0.240250] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations [ 0.247941] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations [ 0.255804] audit: initializing netlink subsys (disabled) [ 0.261291] audit: type=2000 audit(0.172:1): state=initialized audit_enabled=0 res=1 [ 0.261671] thermal_sys: Registered thermal governor 'step_wise' [ 0.268851] thermal_sys: Registered thermal governor 'power_allocator' [ 0.274855] cpuidle: using governor menu [ 0.285411] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. [ 0.292025] ASID allocator initialised with 65536 entries [ 0.297950] Serial: AMBA PL011 UART driver [ 0.301832] imx mu driver is registered. [ 0.305685] imx rpmsg driver is registered. [ 0.314130] imx93-pinctrl 443c0000.pinctrl: initialized IMX pinctrl driver [ 0.326962] Modules: 24576 pages in range for non-PLT usage [ 0.326973] Modules: 516096 pages in range for PLT usage [ 0.333009] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages [ 0.344824] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page [ 0.351063] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages [ 0.357821] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page [ 0.364062] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages [ 0.370821] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page [ 0.377062] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages [ 0.383821] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page [ 0.391518] ACPI: Interpreter disabled. [ 0.395792] iommu: Default domain type: Translated [ 0.400360] iommu: DMA domain TLB invalidation policy: strict mode [ 0.406743] SCSI subsystem initialized [ 0.410355] libata version 3.00 loaded. [ 0.410523] usbcore: registered new interface driver usbfs [ 0.415761] usbcore: registered new interface driver hub [ 0.421054] usbcore: registered new device driver usb [ 0.426646] mc: Linux media interface: v0.10 [ 0.430689] videodev: Linux video capture interface: v2.00 [ 0.436154] pps_core: LinuxPPS API ver. 1 registered [ 0.441049] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti [ 0.450155] PTP clock support registered [ 0.454144] EDAC MC: Ver: 3.0.0 [ 0.457601] scmi_core: SCMI protocol bus registered [ 0.462617] FPGA manager framework [ 0.465811] Advanced Linux Sound Architecture Driver Initialized. [ 0.472369] Bluetooth: Core ver 2.22 [ 0.475701] NET: Registered PF_BLUETOOTH protocol family [ 0.480981] Bluetooth: HCI device and connection manager initialized [ 0.487298] Bluetooth: HCI socket layer initialized [ 0.492148] Bluetooth: L2CAP socket layer initialized [ 0.497182] Bluetooth: SCO socket layer initialized [ 0.502337] vgaarb: loaded [ 0.505250] clocksource: Switched to clocksource arch_sys_counter [ 0.511308] VFS: Disk quotas dquot_6.6.0 [ 0.515015] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) [ 0.521961] pnp: PnP ACPI: disabled [ 0.530265] NET: Registered PF_INET protocol family [ 0.535027] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear) [ 0.542962] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear) [ 0.551110] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) [ 0.558774] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear) [ 0.566509] TCP bind hash table entries: 8192 (order: 6, 262144 bytes, linear) [ 0.573930] TCP: Hash tables configured (established 8192 bind 8192) [ 0.580120] UDP hash table entries: 512 (order: 2, 16384 bytes, linear) [ 0.586625] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear) [ 0.593729] NET: Registered PF_UNIX/PF_LOCAL protocol family [ 0.599609] RPC: Registered named UNIX socket transport module. [ 0.605277] RPC: Registered udp transport module. [ 0.609945] RPC: Registered tcp transport module. [ 0.614624] RPC: Registered tcp-with-tls transport module. [ 0.620084] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.627260] PCI: CLS 0 bytes, default 64 [ 0.631165] kvm [1]: IPA Size Limit: 40 bits [ 0.635194] kvm [1]: GICv3: no GICV resource entry [ 0.639942] kvm [1]: disabling GICv2 emulation [ 0.644371] kvm [1]: GIC system register CPU interface enabled [ 0.650191] kvm [1]: vgic interrupt IRQ9 [ 0.654088] kvm [1]: VHE mode initialized successfully [ 0.660051] Initialise system trusted keyrings [ 0.664421] workingset: timestamp_bits=42 max_order=18 bucket_order=0 [ 0.670898] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.676710] NFS: Registering the id_resolver key type [ 0.681531] Key type id_resolver registered [ 0.685658] Key type id_legacy registered [ 0.689659] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [ 0.696326] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... [ 0.703831] 9p: Installing v9fs 9p2000 file system support [ 0.734526] Key type asymmetric registered [ 0.738370] Asymmetric key parser 'x509' registered [ 0.743258] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243) [ 0.750590] io scheduler mq-deadline registered [ 0.755095] io scheduler kyber registered [ 0.759113] io scheduler bfq registered [ 0.766447] EINJ: ACPI disabled. [ 0.773498] Bus freq driver module loaded [ 0.782271] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled [ 0.790543] 44380000.serial: ttyLP0 at MMIO 0x44380010 (irq = 17, base_baud = 1500000) is a FSL_LPUART [ 0.799853] printk: console [ttyLP0] enabled [ 0.808289] printk: bootconsole [lpuart32] disabled [ 0.827377] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops) [ 0.835386] imx93-ldb ldb-display-controller: No data-mapping in DT, will use negotiated bus format. [ 0.844862] imx93-ldb ldb-display-controller: Failed to create device link (0x180) with 4ae30000.lcd-controller [ 0.858799] loop: module loaded [ 0.863014] megasas: 07.725.01.00-rc1 [ 0.870948] tun: Universal TUN/TAP device driver, 1.6 [ 0.876567] thunder_xcv, ver 1.0 [ 0.879836] thunder_bgx, ver 1.0 [ 0.883080] nicpf, ver 1.0 [ 0.886825] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version [ 0.894055] hns3: Copyright (c) 2017 Huawei Corporation. [ 0.899390] hclge is initializing [ 0.902728] e1000: Intel(R) PRO/1000 Network Driver [ 0.907598] e1000: Copyright (c) 1999-2006 Intel Corporation. [ 0.913354] e1000e: Intel(R) PRO/1000 Network Driver [ 0.918310] e1000e: Copyright(c) 1999 - 2015 Intel Corporation. [ 0.924238] igb: Intel(R) Gigabit Ethernet Network Driver [ 0.929635] igb: Copyright (c) 2007-2014 Intel Corporation. [ 0.935216] igbvf: Intel(R) Gigabit Virtual Function Network Driver [ 0.941476] igbvf: Copyright (c) 2009 - 2012 Intel Corporation. [ 0.947488] sky2: driver version 1.30 [ 0.951466] usbcore: registered new device driver r8152-cfgselector [ 0.957746] usbcore: registered new interface driver r8152 [ 0.963616] VFIO - User Level meta-driver version: 0.3 [ 0.970278] usbcore: registered new interface driver uas [ 0.975636] usbcore: registered new interface driver usb-storage [ 0.981731] usbcore: registered new interface driver usbserial_generic [ 0.988270] usbserial: USB Serial support registered for generic [ 0.994286] usbcore: registered new interface driver ftdi_sio [ 1.000031] usbserial: USB Serial support registered for FTDI USB Serial Device [ 1.007339] usbcore: registered new interface driver usb_serial_simple [ 1.013862] usbserial: USB Serial support registered for carelink [ 1.019959] usbserial: USB Serial support registered for flashloader [ 1.026317] usbserial: USB Serial support registered for funsoft [ 1.032327] usbserial: USB Serial support registered for google [ 1.038251] usbserial: USB Serial support registered for hp4x [ 1.043996] usbserial: USB Serial support registered for kaufmann [ 1.050089] usbserial: USB Serial support registered for libtransistor [ 1.056614] usbserial: USB Serial support registered for moto_modem [ 1.062880] usbserial: USB Serial support registered for motorola_tetra [ 1.069494] usbserial: USB Serial support registered for nokia [ 1.075326] usbserial: USB Serial support registered for novatel_gps [ 1.081686] usbserial: USB Serial support registered for siemens_mpi [ 1.088040] usbserial: USB Serial support registered for suunto [ 1.093963] usbserial: USB Serial support registered for vivopay [ 1.099966] usbserial: USB Serial support registered for zio [ 1.105629] usbcore: registered new interface driver usb_ehset_test [ 1.114691] input: 44440000.bbnsm:pwrkey as /devices/platform/soc@0/44000000.bus/44440000.bbnsm/44440000.bbnsm:pwrkey/input/input0 [ 1.126836] i2c_dev: i2c /dev entries driver [ 1.133908] imx7ulp-wdt 42490000.watchdog: imx93 wdt probe [ 1.165969] Bluetooth: HCI UART driver ver 2.3 [ 1.170432] Bluetooth: HCI UART protocol H4 registered [ 1.175564] Bluetooth: HCI UART protocol BCSP registered [ 1.180885] Bluetooth: HCI UART protocol LL registered [ 1.186018] Bluetooth: HCI UART protocol ATH3K registered [ 1.191417] Bluetooth: HCI UART protocol Three-wire (H5) registered [ 1.197782] Bluetooth: HCI UART protocol Broadcom registered [ 1.203454] Bluetooth: HCI UART protocol QCA registered [ 1.209726] sdhci: Secure Digital Host Controller Interface driver [ 1.215922] sdhci: Copyright(c) Pierre Ossman [ 1.220572] Synopsys Designware Multimedia Card Interface Driver [ 1.226885] sdhci-pltfm: SDHCI platform and OF driver helper [ 1.233614] ledtrig-cpu: registered to indicate activity on CPUs [ 1.240850] fsl-se-fw se-fw2: failed to init reserved memory region -19 [ 1.247608] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping .... [ 1.254330] usbcore: registered new interface driver usbhid [ 1.259901] usbhid: USB HID core driver [ 1.270337] mmc0: SDHCI controller on 42850000.mmc [42850000.mmc] using ADMA [ 1.302222] hw perfevents: enabled with armv8_cortex_a55 PMU driver, 7 counters available [ 1.312041] cs_system_cfg: CoreSight Configuration manager initialised [ 1.319751] optee: probing for conduit method. [ 1.324215] optee: api uid mismatch [ 1.325699] mmc0: new HS400 Enhanced strobe MMC card at address 0001 [ 1.327700] optee: probe of firmware:optee failed with error -22 [ 1.334598] mmcblk0: mmc0:0001 eMMC 58.2 GiB [ 1.342512] NET: Registered PF_LLC protocol family [ 1.345923] mmcblk0: p1 [ 1.349519] u32 classifier [ 1.352252] mmcblk0boot0: mmc0:0001 eMMC 4.00 MiB [ 1.354567] input device check on [ 1.360666] mmcblk0boot1: mmc0:0001 eMMC 4.00 MiB [ 1.363094] Actions configured [ 1.363485] NET: Registered PF_INET6 protocol family [ 1.368956] mmcblk0rpmb: mmc0:0001 eMMC 4.00 MiB, chardev (234:0) [ 1.372113] Segment Routing with IPv6 [ 1.386309] In-situ OAM (IOAM) with IPv6 [ 1.390278] NET: Registered PF_PACKET protocol family [ 1.395349] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this. [ 1.408425] Bluetooth: RFCOMM TTY layer initialized [ 1.413310] Bluetooth: RFCOMM socket layer initialized [ 1.418455] Bluetooth: RFCOMM ver 1.11 [ 1.422203] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 1.427502] Bluetooth: BNEP filters: protocol multicast [ 1.432721] Bluetooth: BNEP socket layer initialized [ 1.437676] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 [ 1.443589] Bluetooth: HIDP socket layer initialized [ 1.448783] 8021q: 802.1Q VLAN Support v1.8 [ 1.452998] lib80211: common routines for IEEE802.11 drivers [ 1.458652] lib80211_crypt: registered algorithm 'NULL' [ 1.458656] lib80211_crypt: registered algorithm 'WEP' [ 1.458659] lib80211_crypt: registered algorithm 'CCMP' [ 1.458663] lib80211_crypt: registered algorithm 'TKIP' [ 1.458693] 9pnet: Installing 9P2000 support [ 1.463084] Key type dns_resolver registered [ 1.467497] NET: Registered PF_VSOCK protocol family [ 1.486367] registered taskstats version 1 [ 1.490717] Loading compiled-in X.509 certificates [ 1.512663] usb_phy_generic usbphynop1: dummy supplies not allowed for exclusive requests [ 1.521013] usb_phy_generic usbphynop2: dummy supplies not allowed for exclusive requests [ 1.539006] imx93-ldb ldb-display-controller: Failed to create device link (0x180) with ldb-phy [ 1.550623] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops) [ 1.558672] imx93-ldb ldb-display-controller: No data-mapping in DT, will use negotiated bus format. [ 1.569462] imx-dwmac 428a0000.ethernet: IRQ eth_lpi not found [ 1.575451] imx-dwmac 428a0000.ethernet: tx clock enable start [ 1.581464] imx-dwmac 428a0000.ethernet: User ID: 0x10, Synopsys ID: 0x52 [ 1.588255] imx-dwmac 428a0000.ethernet: DWMAC4/5 [ 1.593038] imx-dwmac 428a0000.ethernet: DMA HW capability register supported [ 1.600159] imx-dwmac 428a0000.ethernet: RX Checksum Offload Engine supported [ 1.607283] imx-dwmac 428a0000.ethernet: TX Checksum insertion supported [ 1.613973] imx-dwmac 428a0000.ethernet: Wake-Up On Lan supported [ 1.620110] imx-dwmac 428a0000.ethernet: Enable RX Mitigation via HW Watchdog Timer [ 1.627757] imx-dwmac 428a0000.ethernet: Enabled L3L4 Flow TC (entries=8) [ 1.634536] imx-dwmac 428a0000.ethernet: Enabled RFS Flow TC (entries=10) [ 1.641316] imx-dwmac 428a0000.ethernet: Enabling HW TC (entries=256, max_off=256) [ 1.648876] imx-dwmac 428a0000.ethernet: Using 32/32 bits DMA host/device width [ 1.657380] imx-dwmac 428a0000.ethernet: tx clock disable start [ 1.663414] imx-dwmac 428a0000.ethernet: err_drv_probe [ 1.668557] imx-dwmac 428a0000.ethernet: err_dwmac_init [ 1.677361] ci_hdrc ci_hdrc.0: EHCI Host Controller [ 1.682306] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 [ 1.709253] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00 [ 1.715211] hub 1-0:1.0: USB hub found [ 1.718981] hub 1-0:1.0: 1 port detected [ 1.726882] ci_hdrc ci_hdrc.1: EHCI Host Controller [ 1.731789] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 2 [ 1.753257] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00 [ 1.759191] hub 2-0:1.0: USB hub found [ 1.762965] hub 2-0:1.0: 1 port detected [ 1.770674] rtc rtc0: Power loss detected, invalid time [ 1.776048] rtc-pcf85063 0-0051: registered as rtc0 [ 1.781185] rtc rtc0: Power loss detected, invalid time [ 1.786407] rtc-pcf85063 0-0051: hctosys: unable to read the hardware clock [ 1.793553] pca953x 0-0020: supply vcc not found, using dummy regulator [ 1.800254] pca953x 0-0020: using no AI [ 1.804716] i2c i2c-0: LPI2C adapter registered [ 1.810507] pca953x 1-0022: supply vcc not found, using dummy regulator [ 1.817269] pca953x 1-0022: using AI [ 1.822077] at24 1-0050: supply vcc not found, using dummy regulator [ 1.828917] at24 1-0050: 1024 byte 24c08 EEPROM, writable, 16 bytes/write [ 1.835795] i2c i2c-1: LPI2C adapter registered [ 1.841329] i2c i2c-2: LPI2C adapter registered [ 1.846907] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops) [ 1.854932] imx93-ldb ldb-display-controller: No data-mapping in DT, will use negotiated bus format. [ 1.865632] imx-dwmac 428a0000.ethernet: IRQ eth_lpi not found [ 1.871579] imx-dwmac 428a0000.ethernet: tx clock enable start [ 1.877611] imx-dwmac 428a0000.ethernet: User ID: 0x10, Synopsys ID: 0x52 [ 1.884419] imx-dwmac 428a0000.ethernet: DWMAC4/5 [ 1.889206] imx-dwmac 428a0000.ethernet: DMA HW capability register supported [ 1.896327] imx-dwmac 428a0000.ethernet: RX Checksum Offload Engine supported [ 1.903449] imx-dwmac 428a0000.ethernet: TX Checksum insertion supported [ 1.910153] imx-dwmac 428a0000.ethernet: Wake-Up On Lan supported [ 1.916235] imx-dwmac 428a0000.ethernet: Enable RX Mitigation via HW Watchdog Timer [ 1.923878] imx-dwmac 428a0000.ethernet: Enabled L3L4 Flow TC (entries=8) [ 1.930655] imx-dwmac 428a0000.ethernet: Enabled RFS Flow TC (entries=10) [ 1.937446] imx-dwmac 428a0000.ethernet: Enabling HW TC (entries=256, max_off=256) [ 1.945009] imx-dwmac 428a0000.ethernet: Using 32/32 bits DMA host/device width [ 2.091986] imx-dwmac 428a0000.ethernet: tx clock disable start [ 2.092418] sdhci-esdhc-imx 42860000.mmc: Got CD GPIO [ 2.099328] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops) [ 2.111052] imx93-ldb ldb-display-controller: No data-mapping in DT, will use negotiated bus format. [ 2.122102] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops) [ 2.130156] imx93-ldb ldb-display-controller: No data-mapping in DT, will use negotiated bus format. [ 2.134093] mmc1: SDHCI controller on 42860000.mmc [42860000.mmc] using ADMA [ 2.139573] nxp-pca9450 1-0025: pca9451a probed. [ 2.152583] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops) [ 2.160637] imx93-ldb ldb-display-controller: No data-mapping in DT, will use negotiated bus format. [ 2.171559] cfg80211: Loading compiled-in X.509 certificates for regulatory database [ 2.180575] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 2.186741] Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600' [ 2.194068] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 [ 2.197312] clk: Disabling unused clocks [ 2.202716] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db [ 2.214819] ALSA device list: [ 2.217793] No soundcards found. [ 2.221596] Waiting for root device /dev/mmcblk1p2... [ 2.287788] mmc1: host does not support reading read-only switch, assuming write-enable [ 2.298005] mmc1: new high speed SD card at address 0001 [ 2.303890] mmcblk1: mmc1:0001 00000 1.81 GiB [ 2.311020] mmcblk1: p1 p2 [ 2.315100] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops) [ 2.323111] imx93-ldb ldb-display-controller: No data-mapping in DT, will use negotiated bus format. [ 2.339143] exFAT-fs (mmcblk1p2): invalid boot record signature [ 2.345082] exFAT-fs (mmcblk1p2): failed to read boot sector [ 2.350777] exFAT-fs (mmcblk1p2): failed to recognize exfat type [ 2.358002] erofs: (device mmcblk1p2): mounted with root inode @ nid 36. [ 2.364768] VFS: Mounted root (erofs filesystem) readonly on device 179:98. [ 2.371789] devtmpfs: mounted [ 2.375967] Freeing unused kernel memory: 1984K [ 2.380690] Run /sbin/init as init process [ 2.384782] with arguments: [ 2.384785] /sbin/init [ 2.384787] with environment: [ 2.384790] HOME=/ [ 2.384792] TERM=linux [ 4.633259] random: crng init done [ 12.406378] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops) [ 12.414399] imx93-ldb ldb-display-controller: No data-mapping in DT, will use negotiated bus format. [ 12.424617] platform imx-lcdifv3-crtc.0: deferred probe pending And when ip link set eth0 up (there are a few non-standard traces that i added to the driver to try to debug this dma issue)  : # ip link set eth0 up [ 236.851517] imx-dwmac 428a0000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0 [ 236.859339] imx-dwmac 428a0000.ethernet: tx clock enable start [ 236.974901] imx-drm display-subsystem: bound imx-lcdifv3-crtc.0 (ops lcdifv3_crtc_ops) [ 236.982933] imx93-ldb ldb-display-controller: No data-mapping in DT, will use negotiated bus format. [ 237.081392] imx-dwmac 428a0000.ethernet eth0: PHY [stmmac-1:00] driver [Generic PHY] (irq=POLL) [ 237.090112] Checking DMA clocks before reset... [ 237.094643] DMA_HW_CAPABILITY = 0x0 [ 237.098124] RESET START: DMA_BUS_MODE = 0x1 [ 237.102301] AFTER WRITE: DMA_BUS_MODE = 0x1 [ 238.107432] POLL RESULT: ret=-110, DMA_BUS_MODE = 0x1 [ 238.112492] imx-dwmac 428a0000.ethernet: Failed to reset the dma [ 238.118519] imx-dwmac 428a0000.ethernet eth0: stmmac_hw_setup: DMA engine initialization failed [ 238.127210] imx-dwmac 428a0000.ethernet eth0: __stmmac_open: Hw setup failed [ 238.194819] imx-dwmac 428a0000.ethernet: tx clock disable start ip: SIOCSIFFLAGS: Connection timed out Thanks for your help, Best regards, Julien Re: DMA Error with imx93 and eqos in RMII Hello, Please confirm that reset is asserted correctly in the PHY. When the PHY is not provided with the clock for a brief period and the clock is enabled back, a reset must be provided to the PHY to latch all the configuration straps, recover into the normal working mode. Please share your entire dmesg. Best regards. Re: DMA Error with imx93 and eqos in RMII Hello, Thank you for the information. Since registers can be accessed, the MAC is not completely held in reset. Could you please share the schematic connections to confirm how REF_CLK is provided? Also, please share your clock summary in cat /sys/kernel/debug/clk/clk_summary Best regards. Re: DMA Error with imx93 and eqos in RMII I don't want to share the full schematics on a public forum. Can i send them privately ? REF_CLK is provided via ENET1_TD2 (pin U12 of imx93). In device tree, this is this line : MX93_PAD_ENET1_TD2__CCM_ENET_QOS_CLOCK_GENERATE_REF_CLK 0x57e We have checked with an oscilloscope that the clock is correct under u-boot, but we encounter a similar dma error (with less details). Under linux, something is stopping the clock (my guess is that the dma error triggers a release of the clock, which is then stopped by linux kernel as unused). Here's the content of clk_summary : enable prepare protect duty hardware connection clock count count count rate accuracy phase cycle enable consumer id --------------------------------------------------------------------------------------------------------------------------------------------- pcf85063-clkout 0 0 0 0 0 0 50000 Y deviceless no_connection_id sys_pll_pfd2 1 1 0 625000000 0 0 50000 Y deviceless no_connection_id wakeup_axi_root 2 2 0 312500000 0 0 50000 Y 42860000.mmc ahb 42850000.mmc ahb deviceless no_connection_id enet_qos 0 0 0 312500000 0 0 50000 N 428a0000.ethernet mem 428a0000.ethernet pclk 428a0000.ethernet stmmaceth deviceless no_connection_id enet1 0 0 0 312500000 0 0 50000 N 42890000.ethernet ahb 42890000.ethernet ipg deviceless no_connection_id edma2 1 1 0 312500000 0 0 50000 Y 42000000.dma-controller edma deviceless no_connection_id sys_pll_pfd2_div2 0 0 0 312500000 0 0 50000 Y deviceless no_connection_id sys_pll_pfd1 3 3 0 800000000 0 0 50000 Y deviceless no_connection_id media_axi_root 1 1 0 400000000 0 0 50000 Y 4ae30000.lcd-controller disp-axi 4ac10000.system-controller axi deviceless no_connection_id nic_media 1 1 0 400000000 0 0 50000 Y 4ac10000.system-controller nic power-domain@44462400 no_connection_id deviceless no_connection_id nic_axi_root 1 1 0 400000000 0 0 50000 Y deviceless no_connection_id ccm_cko4_root 0 0 0 266666667 0 0 50000 N deviceless no_connection_id ccm_cko3_root 0 0 0 266666667 0 0 50000 N deviceless no_connection_id ccm_cko2_root 0 0 0 266666667 0 0 50000 N deviceless no_connection_id ccm_cko1_root 0 0 0 266666667 0 0 50000 N deviceless no_connection_id usdhc3_root 0 0 0 200000000 0 0 50000 N deviceless no_connection_id usdhc3 0 0 0 200000000 0 0 50000 N deviceless no_connection_id usdhc2_root 0 0 0 400000000 0 0 50000 N deviceless no_connection_id usdhc2 0 0 0 400000000 0 0 50000 N 42860000.mmc per deviceless no_connection_id usdhc1_root 0 0 0 400000000 0 0 50000 N deviceless no_connection_id usdhc1 0 0 0 400000000 0 0 50000 N 42850000.mmc per deviceless no_connection_id flexspi1_root 0 0 0 200000000 0 0 50000 N deviceless no_connection_id flexspi1 0 0 0 200000000 0 0 50000 N deviceless no_connection_id sys_pll_pfd1_div2 6 6 0 400000000 0 0 50000 Y deviceless no_connection_id enet_ref_phy_root 0 0 0 50000000 0 0 50000 N 42890000.ethernet enet_out deviceless no_connection_id enet_timer1_root 0 0 0 100000000 0 0 50000 N 42890000.ethernet ptp deviceless no_connection_id enet_timer2_root 0 0 0 100000000 0 0 50000 N 428a0000.ethernet ptp_ref deviceless no_connection_id media_apb_root 1 2 0 133333334 0 0 50000 Y ldb-phy apb system-controller@4ac10000 no_connection_id 4ac10000.system-controller apb power-domain@44462400 no_connection_id deviceless no_connection_id isi 0 0 0 133333334 0 0 50000 N 4ac10000.system-controller isi deviceless no_connection_id pxp 0 0 0 133333334 0 0 50000 N 4ac10000.system-controller pxp deviceless no_connection_id lcdif 0 0 0 133333334 0 0 50000 N 4ae30000.lcd-controller disp-apb 4ac10000.system-controller lcdif deviceless no_connection_id mipi_dsi 0 0 0 133333334 0 0 50000 N 4ac10000.system-controller dsi deviceless no_connection_id mipi_csi 0 0 0 133333334 0 0 50000 N 4ac10000.system-controller csi deviceless no_connection_id hsio_root 1 1 0 133333334 0 0 50000 Y deviceless no_connection_id usb_controller 0 0 0 133333334 0 0 50000 N 4c200000.usb no_connection_id 4c100000.usb no_connection_id deviceless no_connection_id lpspi4_root 0 0 0 50000000 0 0 50000 N deviceless no_connection_id lpspi4 0 0 0 50000000 0 0 50000 N deviceless no_connection_id lpspi3_root 0 0 0 50000000 0 0 50000 N deviceless no_connection_id lpspi3 0 0 0 50000000 0 0 50000 N deviceless no_connection_id lpspi2_root 0 0 0 50000000 0 0 50000 N deviceless no_connection_id lpspi2 0 0 0 50000000 0 0 50000 N deviceless no_connection_id lpspi1_root 0 0 0 50000000 0 0 50000 N deviceless no_connection_id lpspi1 0 0 0 50000000 0 0 50000 N deviceless no_connection_id swo_trace_root 0 0 0 133333334 0 0 50000 N deviceless no_connection_id bus_aon_root 1 1 0 133333334 0 0 50000 Y i2c@44350000 no_connection_id i2c@44340000 no_connection_id deviceless no_connection_id tstmr1 0 0 0 133333334 0 0 50000 N deviceless no_connection_id pdm_ipg_clk 0 0 0 133333334 0 0 50000 N deviceless no_connection_id sai1_ipg_clk 0 0 0 133333334 0 0 50000 N deviceless no_connection_id tpm1 0 0 0 133333334 0 0 50000 N deviceless no_connection_id lpit1 0 0 0 133333334 0 0 50000 N deviceless no_connection_id mu1_b 0 0 0 133333334 0 0 50000 N 44230000.mailbox no_connection_id deviceless no_connection_id mu1_a 0 0 0 133333334 0 0 50000 Y deviceless no_connection_id sema1 0 0 0 133333334 0 0 50000 N deviceless no_connection_id bus_wakeup_root 4 4 0 133333334 0 0 50000 Y 42860000.mmc ipg i2c@42530000 no_connection_id 42850000.mmc ipg deviceless no_connection_id tstmr2 0 0 0 133333334 0 0 50000 N deviceless no_connection_id sai3_ipg_clk 0 0 0 133333334 0 0 50000 N deviceless no_connection_id sai2_ipg_clk 0 0 0 133333334 0 0 50000 N deviceless no_connection_id tpm3 0 0 0 133333334 0 0 50000 N deviceless no_connection_id lpit2 0 0 0 133333334 0 0 50000 N deviceless no_connection_id gpio4 2 2 0 133333334 0 0 50000 Y 43830000.gpio gpio 43830000.gpio port deviceless no_connection_id gpio3 2 2 0 133333334 0 0 50000 Y 43820000.gpio gpio 43820000.gpio port deviceless no_connection_id gpio2 2 2 0 133333334 0 0 50000 Y 43810000.gpio gpio 43810000.gpio port deviceless no_connection_id mu2_b 0 0 0 133333334 0 0 50000 N 42440000.mailbox no_connection_id deviceless no_connection_id mu2_a 0 0 0 133333334 0 0 50000 Y deviceless no_connection_id sema2 0 0 0 133333334 0 0 50000 N deviceless no_connection_id m33_root 4 4 0 200000000 0 0 50000 Y deviceless no_connection_id gpio1 2 2 0 200000000 0 0 50000 Y 47400000.gpio gpio 47400000.gpio port deviceless no_connection_id edma1 1 1 0 200000000 0 0 50000 Y 44000000.dma-controller edma deviceless no_connection_id cm33 1 1 0 200000000 0 0 50000 Y deviceless no_connection_id a55_mtr_bus_root 1 1 0 133333334 0 0 50000 Y deviceless no_connection_id sys_pll_pfd0 2 2 0 1000000000 0 0 50000 Y deviceless no_connection_id a55_alt_root 1 1 0 500000000 0 0 50000 Y deviceless no_connection_id a55_alt 0 0 0 500000000 0 0 50000 N deviceless no_connection_id a55_periph_root 1 1 0 333333334 0 0 50000 Y deviceless no_connection_id sys_pll_pfd0_div2 0 0 0 500000000 0 0 50000 Y deviceless no_connection_id usb_phy_root 0 0 0 50000000 0 0 50000 N usbphynop2 main_clk usbphynop1 main_clk deviceless no_connection_id enet_ref_root 0 0 0 250000000 0 0 50000 N 42890000.ethernet enet_clk_ref deviceless no_connection_id enet_root 0 0 0 50000000 0 0 50000 N 428a0000.ethernet tx deviceless no_connection_id dummy 0 0 0 0 0 0 50000 Y deviceless no_connection_id clk_ext1 0 0 0 133000000 0 0 50000 Y clock-controller@44450000 clk_ext1 deviceless no_connection_id osc_24m 6 6 3 24000000 0 0 50000 Y clock-controller@44450000 osc_24m timer@44290000 per deviceless no_connection_id pmro 0 0 0 24000000 0 0 50000 N deviceless no_connection_id tmc 1 1 0 24000000 0 0 50000 Y 44482000.tmu no_connection_id deviceless no_connection_id sys_cnt 1 1 0 24000000 0 0 50000 Y deviceless no_connection_id hsio_trout_24m 0 0 0 24000000 0 0 50000 N deviceless no_connection_id wdog5 0 0 0 24000000 0 0 50000 N deviceless no_connection_id wdog4 0 0 0 24000000 0 0 50000 N deviceless no_connection_id wdog3 1 1 0 24000000 0 0 50000 Y 42490000.watchdog no_connection_id deviceless no_connection_id wdog2 0 0 0 24000000 0 0 50000 N deviceless no_connection_id wdog1 0 0 0 24000000 0 0 50000 N deviceless no_connection_id pal_came_scan_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id i3c2_slow_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id i3c1_slow_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id spdif_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id spdif 0 0 0 24000000 0 0 50000 N deviceless no_connection_id audio_xcvr_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id aud_xcvr 0 0 0 24000000 0 0 50000 N deviceless no_connection_id mqs2_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id mqs1_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id tstmr2_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id tstmr1_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id pdm_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id pdm 0 0 0 24000000 0 0 50000 N deviceless no_connection_id adc_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id adc1 0 0 0 24000000 0 0 50000 N 44530000.adc ipg deviceless no_connection_id mipi_phy_cfg_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id mipi_test_byte_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id cam_pix_root 0 0 0 24000000 0 0 50000 N 4ac10000.system-controller cam deviceless no_connection_id ml_root 0 0 0 24000000 0 0 50000 N power-domain@44461800 no_connection_id deviceless no_connection_id ml_apb_root 0 0 0 24000000 0 0 50000 N power-domain@44461800 no_connection_id deviceless no_connection_id hsio_acscan_480m_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id hsio_acscan_80m_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id hsio_usb_test_60m_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id usb_test_60m 0 0 0 24000000 0 0 50000 N deviceless no_connection_id sai3_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id mqs2 0 0 0 24000000 0 0 50000 N deviceless no_connection_id sai3 0 0 0 24000000 0 0 50000 N deviceless no_connection_id sai2_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id sai2 0 0 0 24000000 0 0 50000 N deviceless no_connection_id sai1_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id mqs1 0 0 0 24000000 0 0 50000 N deviceless no_connection_id sai1 0 0 0 24000000 0 0 50000 N deviceless no_connection_id i3c2_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id i3c2 0 0 0 24000000 0 0 50000 N deviceless no_connection_id i3c1_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id i3c1 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpspi8_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpspi8 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpspi7_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpspi7 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpspi6_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpspi6 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpspi5_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpspi5 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpi2c8_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpi2c8 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpi2c7_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpi2c7 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpi2c6_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpi2c6 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpi2c5_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpi2c5 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpi2c4_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpi2c4 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpi2c3_root 0 0 1 24000000 0 0 50000 N deviceless no_connection_id lpi2c3 0 0 1 24000000 0 0 50000 N i2c@42530000 no_connection_id deviceless no_connection_id lpi2c2_root 0 0 1 24000000 0 0 50000 N deviceless no_connection_id lpi2c2 0 0 1 24000000 0 0 50000 N i2c@44350000 no_connection_id deviceless no_connection_id lpi2c1_root 0 0 1 24000000 0 0 50000 N deviceless no_connection_id lpi2c1 0 0 1 24000000 0 0 50000 N i2c@44340000 no_connection_id deviceless no_connection_id lpuart8_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpuart8 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpuart7_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpuart7 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpuart6_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpuart6 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpuart5_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpuart5 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpuart4_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpuart4 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpuart3_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpuart3 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpuart2_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpuart2 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lpuart1_root 1 1 0 24000000 0 0 50000 Y deviceless no_connection_id lpuart1 1 1 0 24000000 0 0 50000 Y 44380000.serial ipg deviceless no_connection_id can2_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id can2 0 0 0 24000000 0 0 50000 N deviceless no_connection_id can1_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id can1 0 0 0 24000000 0 0 50000 N deviceless no_connection_id tpm6_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id tpm6 0 0 0 24000000 0 0 50000 N deviceless no_connection_id tpm5_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id tpm5 0 0 0 24000000 0 0 50000 N deviceless no_connection_id tpm4_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id tpm4 0 0 0 24000000 0 0 50000 N deviceless no_connection_id tpm2_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id tpm2 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lptmr2_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lptmr2 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lptmr1_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id lptmr1 0 0 0 24000000 0 0 50000 N deviceless no_connection_id flexio2_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id flexio2 0 0 0 24000000 0 0 50000 N deviceless no_connection_id flexio1_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id flexio1 0 0 0 24000000 0 0 50000 N deviceless no_connection_id m33_systick_root 0 0 0 24000000 0 0 50000 N deviceless no_connection_id video_pll 0 0 0 1039500000 0 0 50000 Y deviceless no_connection_id media_disp_pix_root 0 0 0 148500000 0 0 50000 N 4ae30000.lcd-controller pix 4ac10000.system-controller disp deviceless no_connection_id media_ldb_root 0 0 0 1039500000 0 0 50000 N deviceless no_connection_id lvds 0 0 0 1039500000 0 0 50000 N deviceless no_connection_id audio_pll 0 0 0 393216000 0 0 50000 Y deviceless no_connection_id arm_pll 1 1 0 1700000000 0 0 50000 Y deviceless no_connection_id a55_sel 1 1 0 1700000000 0 0 50000 Y deviceless no_connection_id a55_core 1 1 0 1700000000 0 0 50000 Y deviceless no_connection_id osc_32k 1 1 0 32768 0 0 50000 Y clock-controller@44450000 osc_32k deviceless no_connection_id hsio_32k 2 2 0 32768 0 0 50000 Y 4c200000.usb usb_wakeup_clk 4c100000.usb usb_wakeup_clk deviceless no_connection_id # Re: DMA Error with imx93 and eqos in RMII Please see the other message for my answer about the ref_clk and the schematics, it looks like i mistakenly used the wrong reply button.  I also tried the following : https://community.nxp.com/t5/i-MX-Processors/i-MX93-EQoS-RMII-mode-with-internal-50MHz-reference-clock/m-p/1947843 which looks a lot like the same issue, but could not get it to work as well. Thanks for your support, Re: DMA Error with imx93 and eqos in RMII I could finally get it to work, using the patch in the link, and the following settings : &eqos { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_eqos>; phy-mode = "rmii"; phy-handle = <&ethphy1>; status = "okay"; assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>, <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>; assigned-clock-rates = <100000000>, <50000000>; enet_clk_sel = <&wakeupmix_gpr 0x2C>; clk_csr = <5>; // snps,rmii_refclk_ext; mdio { compatible = "snps,dwmac-mdio"; #address-cells = <1>; #size-cells = <0>; clock-frequency = <5000000>; ethphy1: ethernet-phy@0 { reg = <0>; eee-broken-1000tx; reset-gpios = <&pcal6524 19 GPIO_ACTIVE_LOW>; reset-assert-us = <15000>; reset-deassert-us = <100000>; smsc,disable-energy-detect; }; }; }; Could you explain me what the patch in  https://community.nxp.com/t5/i-MX-Processors/i-MX93-EQoS-RMII-mode-with-internal-50MHz-reference-clock/m-p/1947843 does, why it is needed? Also, shouldn't these changes be upstreamed, as they look like a regular use case for the soc, nothing exceptional? Re: DMA Error with imx93 and eqos in RMII Hello, Is good to know that is now working. The patch modifies the driver dwmac-imx/EQoS to configure ENET_QOS when RMII is using an external clock. This change is needed because EQoS needs a constant clock during DMA reset. Best regards.
查看全文
S32K344 SVD File Bugs I pulled the S32K344 svd file ( S32K344.svd ) from the S32DS and I'm attempting to use it, but there appear to be hundreds of bugs in how the file is constructed. For example, in the MUXSEL registers (from section 62.8.10 in the Reference Manual) are defined in the SVD file like so: lu_in LU_IN0 to LU_IN11 0x1 But the name field for all the enumerated values (LU_IN0 to LU_IN11) are all "lu_in" which causes errors when storing them as enumerations (multiple definitions of the symbol "lu_in"). Additionally - the enumeration doesn't even correctly cover the space. LU_IN should have values between 1 and 12 (0x1 to 0xC) and instead the enumeration only goes up to 0x9. As another example, register MDACFG0 field NMDAR has an enumeration which essentially serves no purpose except to be broken. NUMBER Number of registers 0x1 Similar to the lu_in example, the enumerations all list "NUMBER" as the name of every enumeration. Register RRCR0 has field RR_INITMOD which has essentially the same issue with an enumeration MOD_1_63 which also only covers a portion of the possible enumerated values. Is there anyone I can reach out to in order to get this corrected? These issues are a pretty major impediment to our ability to use S32K3XX chips. Re: S32K344 SVD File Bugs Hello @kscz , Unfortunately, at this time, there is no official NXP Rust support for S32K3. You can create a small script to remove/rename duplicities before feeding the SVD to svd2rust. Best regards, Pavel Re: S32K344 SVD File Bugs I'm a little confused - you are correct that I would like to use Rust with this chip, but the issues I've laid out here are fundamental to how anyone would use this SVD file - whether for CMSIS or Rust. The enumerations for things like MUXSEL and RR_INITMOD only covering some of the possible values seems like a bug. The name field being the same for all the enumerations of any field seems like a bug. I'm not trying to ask for explicit support from NXP for Rust, I'm asking for the SVD file to be fixed! Re: S32K344 SVD File Bugs Hello @kscz , I see your point. I reported your query to the software team. Thank you for reporting that. Best regards, Pavel Re: S32K344 SVD File Bugs Any word on how long I should wait for an update? Re: S32K344 SVD File Bugs Hello @kscz , I haven't received an update from development team yet. I increased the priority. Since the svd file is a part of RTD, I would expect the fix in the next RTD release. Best regards, Pavel Re: S32K344 SVD File Bugs The S32K388 SVD file has many, many more bugs - do I need to document these as well? Are there plans to update this one like the S32K344 as well? Re: S32K344 SVD File Bugs Hello @kscz , Thank you for reporting the issue. I forwarded it to the SW team and increased the priority.  Best regards, Pavel
查看全文
i.MX8MQ: Boot ROMはFlexSPI/QSPI NOR FLASHからの起動をサポートしていますか? こんにちは、 ハードウェア: - i.MX8MQ(REV A0)、EVKデザインに基づくカスタムボード - QSPI NOR:マイクロンMT25QL256A(32MB、3.3V、クアッドコネクテッド) - BSP: Yocto Scarthgap、NXP BSP、U-BOOT 2024.04(u-BOOT-IMX) 目標:FlexSPI NORフラッシュからブートローダー(SPL + ATF + U-Boot)を起動する。 カーネルとルートファイルシステムはeMMC上に残ります。 効果的な点: - U-Boot(uuu SDP/SDPV経由でRAMにロード)は問題なく動作します - 「SFプローブ」がフラッシュを正しく検出します:MT25QL256A、32 MiB - U-Bootはフラッシュの読み書きが安定してできる(検証 「SF Protect Unlock」後の読み返しテスト) - 画像はIMXBOOT_TARGETS = 「flash_evk_flexspi」で構築されます フラッシュメモリのレイアウト(チップからの読み出しで検証済み): 0x000000: FCFB ヘッダー - 「qspihdr check」レポート 「Q(F)SPIにブート構成ヘッダーが見つかりました」 タグ = 42464346、バージョン = 56010000 0x001000: IVT - d1 00 20 41、エントリ = 0x007E1000、 boot_data = 0x007E0FE0、self = 0x007E0FC0 0x060000: U-Boot の適切な FIT (d00dfeed) が一致します CONFIG_SYS_SPI_U_BOOT_OFFS=0x60000 問題点: ブートスイッチをQSPI/FlexSPIに設定し、USBケーブルで起動した場合 物理的に切断されたため、ボードは起動しません。何もない シリアルコンソールに印刷され(SPLバナーは表示されません)、 ROMはシリアルダウンロードモードに切り替わります。 uuu -lsusb 2:1 MX8MQ SDP: 0x1FC9 0x012B NXP FLASH BT_FUSE_SELは焼損していません。ブート設定はGPIO経由で行われます。 ブートピン。 私が既に試したこと: - 両方のヘッダー形式: scripts/qspi_header (c0ffee01 タグ) および scripts/fspi_header (FCFBタグ)。soc.mak をSO修正した flash_evk_flexspiオフセット0のfspi_headerを使用します。 - 変動するFCFBパラメータ:sflashA1Size、serialClkFreq(50MHz -> 20MHz)、 dataSetupTime/dataHoldTime, sflashPadType - 「Uuu -B QSPI」(公式組み込みスクリプト) - 「Qspihdr Update Safe」および「Qspihdr init safe」 - フラッシュを完全に消去するのと、完全な画像を書き込むこと: 起動動作は基本的に同一です(SDPはその後に現れます) ~1.6秒対~1.8秒)を比較し、ROMが読み取っていない可能性を示唆しています フラッシュ自体が。 質問: 1.i.MX8MQブートROMはシリアルNORからの起動をサポートしていますか? FlexSPIでフラッシュを使うべきでしょうか?リファレンス・マニュアルのセクションは持っています NANDフラッシュとSD/MMCをブートデバイスとしてリストアップしていますが、できませんでした FlexSPI/QSPI NORのリストは見つかりません。i.MX8MM/8MNのドキュメントのようです 説明は難しいですが、8MQについてはよくわかりません。 2. もし対応しているなら、フラッシュの正確な予想レイアウトはどうなりますか? FCFB の場合、IVT はオフセット 0x400 または 0x1000 にあるべきでしょうか 0x0に存在しますか? 3. 選択すべき正しいBOOT_MODE / BOOT_CFGの組み合わせは何ですか? i.MX8MQでFlexSPI NORブートは可能ですか? 4. REV A0シリコンに関して既知の正誤表はありますか? FlexSPIブート? よろしくお願いします。
查看全文
S32K3 spi clk abnormal low I use S32K344 EVB to do spi test. I use LPSPI1 unit as master with pin from PTB14 to PTB17, and RTD 4.0.0 P19. The spi is mode 3: CPOL=1, CPHA=1 After call for Spi_SyncTransmit, I measure the scope like below, The clk pin get to low before the frame really tramsmit, what might be the reason for that? How to fix it? zyt_0-1785493991563.png Re: S32K3 spi clk abnormal low Hi @zyt  This behavior is typically caused by the first workaround for ERR050456, which performs a reset of the LPSPI module. This situation has already been discussed in other threads, such as Extra SPI Clock Pulse Appears Before CS Line Goes Low on [MCU S32K312]. As explained in that thread, an alternative workaround can be applied that is expected to eliminate the low pulse. To enable this workaround define the following macro in your project: ERR_IPV_LPSPIV2_E050456_2ND_SOLUTION BR, VaneB
查看全文
Kinetis(KW3x/4x、MCX W7xおよびMCX W23)オートモーティブ用パワープロファイルツール、IIoT、CGM、ローカライゼーション用 このページはKinetis(KW35/KW38/KW45/KW47)およびMCX Wx(MCX W71/72)に関する実験的なコネクティビティ電力プロファイリングツールに捧げられています。 これにより、あなたのアプリケーション(オートモーティブやIIoT)での消費電力を推定し、ソリューションのバッテリー寿命を評価するのに役立ちます。 このページには'One コネクティビティ Power Profiling Tool'専用の電源プロファイルツールが掲載されており、以下が含まれます: 新:KW43(オートモーティブ)およびMCX W70(IIoT)製品をシミュレーションに基づくスタンドアロンで提供。 KW3x/KW4x(オートモーティブ)およびMCX W7x(IIoT)製品として単独で販売されています。 単体でMCX W23(IIoT)製品。 MCX W71およびW72製品はスタンドアロン(IIoT)で提供されています。 新:シミュレーションに基づく単体(IIoT)のMCX W70製品。 Bluetooth LE 802.15.4 マター & ZED id:NXPナレッジベース [開始日: 2026年7月31日]
查看全文
RD33771CNTREVM + FreeMASTER project Hi, I am currently evaluating the RD33771CNTREVM (HV Battery Management System) reference design board. According to the User Manual (UM11310), the board outputs raw register data via the CAN0 interface (connector J12). While I can read the raw hexadecimal messages using a standard CAN-USB interface, I am looking for a more efficient way to visualize the cell voltages and temperatures in real-time. I noticed that for a similar silicon combination (S32K144 + MC33771C), NXP provides the BCC_S32K144_FreeMASTER example project within the BCC SW Driver Package. Before I start modifying the pin routing and porting this generic example to match the specific hardware layout of the RD33771CNTREVM, I would like to ask: Does NXP have a dedicated FreeMASTER project (.pmp / .pmpx) and the corresponding .elf firmware specifically tailored for the RD33771CNTREVM board? Thank you for the support. Re: RD33771CNTREVM + FreeMASTER project Hi Marvin, I have found an answer from an application team to another customer who requested FreeMASTER example for the RD33771CNTREVM. Unfortunately we do not have any. We have only the EvalGUI. See the answer below. You can download the EvalGUI from the MC33771C product page. It is publicly available.  JozefKozon_0-1785486988566.png I apologize for inconvenience.  DESCRIPTION Unfortunately that is correct, the FreeMaster interface going with the example code has been developed for one node only. As is, it would not work with 4 nodes, only the first one would be initialized and monitored. For this distributed platform, the only GUI available for more than one node would be the EvalGUI 5.15.. With Best Regards, Jozef Re: RD33771CNTREVM + FreeMASTER project Hi Marvin, currently there isn't any other software, apart from the software which you can find in the MC33771C and in the RD33771CNTREVM product pages. And since the MC33771C is an old product, although still in production, there probably will not be a new software. We have newer BCCs. For a new design I would rather recommend you one from the 24 or 26 Channels BCCs. BMA7x2x family. This are the latest BCC components. https://www.nxp.com/products/product-selector:PRODUCT-SELECTOR?category=c40_c328&page=1&nrnd=false JozefKozon_0-1785495573469.png With Best Regards, Jozef Re: RD33771CNTREVM + FreeMASTER project Hi Jozef, Thank your the answer. I tried the EvalGUI 5.15, but it lags on Windows 11 and it works only with COM port. RD33771CNTREVM has CAN output...  I'll see if I can get the RX and TX signals out of the PCB. Then I could modify the original FW for the development kit to have the same input / output messages that EvalGUI 5.15 expects. But I would still expect either PC SW or a FreeMASTER project for the development kit. That would be very helpful.
查看全文
RD33771CNTREVM + FreeMASTERプロジェクト こんにちは、 現在、RD33771CNTREVM(HVバッテリー・マネジメントシステム)のリファレンス・デザインボードを評価しています。 ユーザーマニュアル(UM11310年)によると、ボードはCAN0インターフェース(コネクタJ12)を通じて生のレジスタデータを出力します。標準的なCAN-USBインターフェースで生の16進数メッセージを読み取れますが、セルの電圧や温度をリアルタイムでより効率的に可視化する方法を探しています。 似たようなシリコンの組み合わせ(S32K144 + MC33771C)の場合、NXPはBCC SWドライバーパッケージ内でBCC_S32K144_FreeMASTER例プロジェクトを提供していることに気づきました。 RD33771CNTREVMの特定のハードウェアレイアウトに合わせて、この汎用サンプルのピン配線を変更したり移植したりする前に、いくつか質問させてください。 NXPはFreeMASTER専用のプロジェクトファイル(.pmp / .pmpx)を提供していますか?対応する.elfファイルRD33771CNTREVMボード専用に調整されたファームウェアですか? サポートありがとうございます。 Re: RD33771CNTREVM + FreeMASTER project こんにちは、マービンさん。 別のお客様がRD33771CNTREVMにFreeMASTERの例を求めた際、アプリケーションチームから回答を見つけました。残念ながら、そのようなものはありません。私たちはEvalGUIしか持っていません。以下の回答をご覧ください。 MC33771C製品ページからEvalGUIをダウンロードできます。公開されています。 JozefKozon_0-1785486988566.png ご迷惑をおかけして申し訳ございません。 説明 残念ながらその通りで、例コードに伴うFreeMasterインターフェースは1つのノードのみ向けに開発されています。現状では、4つのノードでは動作せず、最初のノードのみが初期化され、監視されることになる。 この分散プラットフォームにおいて、複数ノードで利用可能な唯一のGUIはEvalGUI 5.15のみとなります。 敬具、 ヨゼフ Re: RD33771CNTREVM + FreeMASTER project こんにちは、ヨゼフさん。 ご回答ありがとうございます。EvalGUI 5.15を試してみましたが、Windows 11では動作が遅く、COMポート経由でしか動作しません。RD33771CNTREVM CAN出力がある... PCBからRX信号とTX信号を取り出せるか試してみます。そうすれば、開発キット用の元のFWをEvalGUI 5.15が期待する同じ入出力メッセージを持たせるように変更できます。 しかし、開発キットにはPC用ソフトウェアかFreeMASTERプロジェクトのいずれかが付属することを期待しています。それは大変助かります。 Re: RD33771CNTREVM + FreeMASTER project こんにちは、マービンさん。 現在、 MC33771C やRD33771CNTREVM 製品ページで見つかるソフトウェア以外に、他にソフトウェアはありません。また、MC33771Cは古い製品ですが、まだ生産中なので、新しいソフトウェアはおそらく登場しないでしょう。弊社にはより新しいBCC(ビジネスコミュニケーションセンター)があります。新しいデザインなら、24チャネルか26チャネルのBCCのものをおすすめします。BMA7x2xファミリです。これらは最新のBCCコンポーネントです。 https://www.nxp.com/products/product-selector:PRODUCT-SELECTOR?category=c40_c328&page=1&nrnd=false JozefKozon_0-1785495573469.png 敬具、 ヨゼフ
查看全文
SE051C2: all Secure Object operations return 0x6985 while GetRandom works over the same authenticate ## The problem in one line On an **SE051C2**, every command that touches the applet's object store returns **0x6985 (CONDITIONS NOT SATISFIED)** — while `GetRandom` succeeds on the *same* session, including over the armed Platform SCP03 channel. ## Our questions **Q1. Is this part in a "mandate platform SCP" / RESTRICTED / transport state?** Both of our samples are as-delivered, and one is factory-fresh. If SE051C2 ships with the object store locked until the Platform SCP03 keys are rotated off the NXP defaults, that would explain every observation below exactly. If so, what is the documented procedure to leave that state? **Q2. Do object operations require customer-key (rotated) Platform SCP03, rather than the default platform keys?** Our channel authenticates with the defaults and demonstrably carries traffic — but every object command over it is refused. **Q3. If Q1/Q2 are yes: how do we read UNIQUE_ID first?** This is a chicken-and-egg that blocks us completely. Our platform-key derivation takes the chip UID as its input, but `ReadObject(UNIQUE_ID)` is itself one of the refused commands. What is the intended order of operations on a fresh part? **Q4. Is there a GET DATA / GET STATUS we can issue that reports the applet's lifecycle / VC state?** Stateless commands *do* work for us, so if such a query exists we can confirm the part's state ourselves instead of guessing. **Q5. What makes THIS part refuse ordinary object creation, when it evidently works for others?** In the DeleteAll/0x6985 thread (m-p/1648349), step 1 was `Se05x_API_WriteUserID(... FACTORY_RESET ...)` returning **0x9000** — a WriteSecureObject succeeding on the default session with only platform SCP03. That is precisely the class of command that fails for us. So object writes are *not* inherently session-gated. Is the difference the variant/configuration (SE051C2 vs SE050), or the platform keys still being NXP defaults? **Q6. Is m-p/1716555 the same root cause?** There, another user reports `Se05x_API_WriteUserID` returning `SM_ERR_CONDITIONS_OF_USE_NOT_SATISFIED` — our exact symptom — and that question appears to have gone unanswered. **Q7. Does `kSE05x_ECCurve_NIST_P256` require an explicit `Se05x_API_CreateECCurve` on SE051C2, or is it built in?** (Minor — but we tried it, and even the CreateECCurve is refused.) ## What we measured | Check | Result | Meaning | |---|---|---| | `Se05x_API_SELECT` applet | **0x9000** | IoT applet selected | | `Se05x_API_GetRandom` (plain) | real entropy | session + transport work | | Platform SCP03 authenticate | **succeeds** | default key set matched | | **GetRandom OVER the SCP03 channel** | **succeeds, real entropy** | encrypt + C-MAC + decrypt verified | | Second wrapped command back-to-back | **succeeds** | command counter stays in sync | | `WriteECKey` NIST P-256 (generate) | **0x6985** | | | `WriteECKey` secp256k1 (import) | **0x6985** | `CreateCurve_secp256k1` IS called first | | `WriteECKey` Ed25519 (import) | **0x6985** | built-in curve, no CreateCurve needed | | `ReadObject(UNIQUE_ID)` | **0x6985** | no policy argument involved | | `WriteBinary_Ver` (with file policy) | **0x6985** | file objects fail too | | `CreateECCurve(NIST_P256)` | **0x6985** | even creating a curve is refused | | `CheckObjectExists` | **0x6985** | cannot even test for an object | **`GetRandom` is the only command that works.** Every object-store operation returns 0x6985 — on both samples, plain or SCP03-wrapped. ## Already ruled out by experiment 1. **Not the part.** A second, factory-fresh SE051C2 behaves identically. 2. **Not the transport or session.** SELECT returns 0x9000; GetRandom returns real entropy on the same session. 3. **Not a broken or missing Platform SCP03 channel.** Authenticate succeeds against the default key set and — decisively — a `GetRandom` issued **over the armed channel** returns real entropy, as does a second back-to-back (command counter in sync). Encrypt + C-MAC + response decrypt all verified. The failing object commands are carried by a channel we have proven functional. 4. **Not a missing key policy.** We passed a real `Se05xPolicy_t` (`ALLOW_SIGN|VERIFY|KA|READ|WRITE|GEN`, authID 0) to every `WriteECKey`. No change. (It could not explain the UNIQUE_ID read anyway — `ReadObject` takes no policy.) 5. **Not a missing curve.** `CreateCurve_secp256k1` is called before the secp256k1 import, Ed25519 is built in, and `Se05x_API_CreateECCurve(NIST_P256)` **also** returns 0x6985. 6. **Not command ordering.** Same 0x6985 whether issued on the plain session or on the authenticated SCP03 channel. 7. **Not the middleware auth build configuration.** Rebuilt with `SSS_HAVE_SE05X_AUTH_PLATFSCP03=1`, `SSS_HAVE_SE05X_AUTH_NONE=0` and `SSSFTR_SE05X_AuthSession=1` (they had been NONE / 0). No change. ## Environment * Part: **SE051C2** — two samples, one factory-fresh, identical behaviour * Host: STM32L562, bare-metal, TrustZone secure world, I2C1 @ 100 kHz, T=1 * Middleware: vendored NXP Plug & Trust `Se05x_API_*` over a custom `smCom_TransceiveRaw` transport (our own T=1 framing — SELECT and GetRandom prove it works). Full middleware, **not** nano-package. * Platform SCP03: NXP default keys; authenticate succeeds and carries traffic SE050 Re: SE051C2: all Secure Object operations return 0x6985 while GetRandom works over the same authenti Hi Kan, thanks for the quick reply. Yes — tested without platform SCP, and that's actually our normal case. Our object operations run before se051_scp03_open() is called, so they're already on a plain session, and they fail there. Arming platform SCP03 afterwards makes no difference — same 0x6985 either way. Here is the APDU log. Plain session, no SCP03 (CLA=0x80, no 0x04 secure-messaging bit; the response is a bare status word, not wrapped):     TX (11): 80 04 00 27 06 41 04 20 00 F0 30 RX ( 2): 69 85   That is CheckObjectExists (INS 04 MGMT, P2 27, TAG_1 objectID 0x2000F030) — a read-only existence test — refused with CONDITIONS NOT SATISFIED. The same 0x6985 comes back for every object-store command we try, any object ID: CheckObjectExists, WriteBinary_Ver (with file policy), WriteECKey (generate and import; P-256, secp256k1 with CreateCurve_secp256k1 first, and Ed25519), CreateECCurve(NIST_P256), and ReadObject(UNIQUE_ID). On that same plain session, these work fine: SELECT of the IoT applet → 0x9000 GetRandom → real entropy So the transport and applet selection are good; only object-store commands are refused. Question: what would make a factory-fresh SE051C2 refuse even CheckObjectExists on a plain session? We see identical behaviour on two samples, one brand new and never written to. Is there a GET DATA (or similar) query that reports the applet's lifecycle / configuration state? Stateless commands work for us, so we can run it right away and report back. Setup: SE051C2, STM32L562 bare-metal host, I2C 100 kHz, our own T=1 framing (SELECT and GetRandom prove it), full Plug & Trust middleware Se05x_API_*, not nano-package. Re: SE051C2: all Secure Object operations return 0x6985 while GetRandom works over the same authenti Hi @winetime , Did you try the same process without platformSCP enabled? SE051C doesn't require a mandate platform SCP by default. If you may share the APDU command log for this issue, we may check it further. Have a great day, Kan ------------------------------------------------------------------------------- Note: - If this post answers your question, please click the "Mark Correct" button. Thank you! - We are following threads for 7 weeks after the last post, later replies are ignored Please open a new thread and refer to the closed one, if you have a related question at a later point in time. ------------------------------------------------------------------------------- Re: SE051C2: all Secure Object operations return 0x6985 while GetRandom works over the same authenti Hi @Kan_Li  — closing this out. **It was our side, and the diagnosis was wrong from the start.** Posting the resolution in case it helps someone else.   The part is fine. Once I instrumented a whole-boot APDU trace instead of reading individual results, a clean power-up gave 83 APDUs with 80 of them 0x9000 — object creation, secp256k1 key generation, `ReadObject` and ECDSA signing all working. The only non-0x9000 responses were benign and already handled by our own code:   80 01 0B 04 CreateECCurve(secp256k1) -> 6985 curve already exists 80 01 61 00 WriteECKey -> 6A80 object exists, wrong type 80 04 00 27 CheckObjectExists -> 9000 80 04 00 28 DeleteSecureObject -> 9000 80 01 61 00 WriteECKey -> 9000 succeeds after the delete   **What I was actually looking at.** The SE was already in a wedged state when each of my test boots started, left there by an earlier session. Once wedged, *every* APDU returns 0x6985 — `GetRandom`, `GetVersion`, `GetFreeMemory` included — and the state survives an MCU reset, a T=1 interface reset, and a re-`SELECT` that itself returns 0x9000. Only removing power clears it. So every measurement I reported was of the wedge, not of a blocked feature, and my "GetRandom is the only command that works" and "GetVersion is refused" claims were both artifacts of that. Apologies for the noise.   For the record, on a healthy boot this part reports:   * `GetVersion` → `07 02 00 3F FF FF FF` — applet **7.2.0**, AppletConfig `0x3FFF` * `GetFreeMemory(PERSISTENT)` → `0x3E0C` = **15,884 bytes** free * Platform SCP03 authenticates on the default key set for **OEF 0005A8FA (SE051C)**   **One thing that may still be worth your comment**, since it is the part I do not understand and it has shipping implications for us:   While wedged, GP security-domain commands keep working — `80 50 00 00` INITIALIZE UPDATE and `84 82 33 00` EXTERNAL AUTHENTICATE both return 0x9000 — while the IoT applet refuses everything. Is there a documented applet error state with that shape, and is there any way to detect or clear it **without cutting power**? A deployed device cannot power-cycle its secure element independently, so if a host can drive the applet into this state we need to know how to get back out.   Thanks for the quick response earlier.
查看全文
IW611 RU セットアップ RUの設定方法についてアドバイスをいただきたいです。 RF試験については、技術スタッフがRUセットアップマニュアル「UM11749」の第12章を参照して試験を実施しています。しかし、設定ファイル「TF_Config_20MHz.txt」を編集すると第12.6章の例に基づいてロードしたところ、出力波形は変調されていない信号に似ており、期待される波形を確認することができませんでした。 波形が出力されていることから、ファイルは正しく読み込まれたと考えられます。 設定ファイルの内容は以下のとおりです。 =================================================================== FRAME_CTRL_TYPE=1 \\IEEE_TYPE_CONTROL FRAME_CTRL_SUBTYPE=2 \\TRIGGER 期間フィールドを設定します 最大継続時間 フレーム期間=5484 \\0x156C トリガーフレームのcommoninfoフィールドを設定します \\ HE_trigger_frame.TrigCommonField.TriggerType = BASIC_TRIGGER; \\ HE_trigger_frame.TrigCommonField.UlLen = 1000; \\ 最大 \\ HE_trigger_frame.TrigCommonField.MoreTF = FALSE; \\ HE_trigger_frame.TrigCommonField.CSRequired = FALSE; \\ HE_trigger_frame.TrigCommonField.UlBw = TB_BW_20MHZ; \\ HE_trigger_frame.TrigCommonField.LTFType = LTF_1_GI_1_6uS; \\ HE_trigger_frame.TrigCommonField.LTFMode = MU_MIMO_SINGLE_STREAM; \\ HE_trigger_frame.TrigCommonField.LTFSymbol = 0; \\ HE_trigger_frame.TrigCommonField.UlSTBC = FALSE; \\ HE_trigger_frame.TrigCommonField.LdpcESS = TRUE; HE_trigger_frame.TrigCommonField.ApTxPwr = 0 \\ HE_trigger_frame.TrigCommonField.PreFecPadFct = 1; \\ HE_trigger_frame.TrigCommonField.PeDisambig = 0; \\ HE_trigger_frame.TrigCommonField.SpatialReuse = 65535; \\ HE_trigger_frame.TrigCommonField.Doppler = FALSE; \\ HE_trigger_frame.TrigCommonField.HeSig2 = 0x1FF; \\ 予約済み TrigCommonField=0;1000;0;0;0;1;0;0;0;1;0;1;0;65535;0;511 トリガーフレームのユーザー情報フィールドを設定します \\ HE_trigger_frame.TrigUserInfoField.AID12 = (5 & 0xFFF); \\ HE_trigger_frame.TrigUserInfoField.RUAllocReg = 0; \\ HE_trigger_frame.TrigUserInfoField.RUAlloc = 61; \\ 53 (106トーン) \\ HE_trigger_frame.TrigUserInfoField.UlCodingType = CODING_TYPE_LDPC; \\ HE_trigger_frame.TrigUserInfoField.UlMCS = 0; \\ HE_trigger_frame.TrigUserInfoField.UlDCM = FALSE; \\ HE_trigger_frame.TrigUserInfoField.SSAlloc = 0; \\ HE_trigger_frame.TrigUserInfoField.UlTargetRSSI = 80; TrigUserInfoField=5;0;61;1;0;0;0;80 \\configure trigger dependent ユーザー info field \\ HE_trigger_frame.BasicTrigUserInfo.MPDU_MU_SF = MPDU_SPACING_MULT_1; \\ HE_trigger_frame.BasicTrigUserInfo.TID_AL = 0; \\ HE_trigger_frame.BasicTrigUserInfo.AC_PL = FALSE; \\ HE_trigger_frame.BasicTrigUserInfo.Pref_AC = TB_AC_VO; BasicTrigUserInfo=0;0;0;0 =================================================================== この説明に誤りがあれば、お知らせください。 また、ファイルを使用しない他の方法があれば教えてください。 Re: IW611 RU setup こんにちは@SA2 テストログやキャプチャしたスペクトラムを共有してもらえますか? よろしくお願いいたします。 ショーン Re: IW611 RU setup こんにちは、ショーン。 お返事ありがとうございます。 スペクトルのスクリーンショットを共有します。 captured spectrum.png Re: IW611 RU setup こんにちは@SA2 Golden UnitとDUTの両方で発行したCMDを教えてもらえますか?labtoolの戻り値を含む よろしくお願いいたします。 ショーン Re: IW611 RU setup こんにちは、ショーン。 コマンドを実行する前に、確認しておきたい点があります。 第12章は確認しましたが、すべてのRF検査は実施された測定を用いて行われなければなりません。 (このテストは、SMAケーブルを介してスペクトラムアナライザーにコネクテッドされたDUTサンプルを用いて進行中の測定を行います。) したがって、1組の被測定デバイス(DUT)のみを使用して伝導測定を行う場合、第12.2章を参照すべきでしょうか? Re: IW611 RU setup こんにちは@SA2 測定には標準的な試験方法を用いることが推奨されます。SOすれば、検査結果と比較して問題がないか調べることができます。 よろしくお願いいたします。 ショーン
查看全文
i.MX8MP散热器解决方案 我们正在考虑为基于 i.MX 8M Plus 的信息娱乐应用采用以下被动散热解决方案: 铝制散热片:20 × 20 × 1.5 毫米(最大可达 30 × 30 × 2 毫米) TIM:汉高贝格奎斯特间隙填充剂 TGF 2000 铝板将用作 i.MX 8M Plus 顶部的散热片。 对于典型的车载信息娱乐系统工作负载而言,这种解决方案是否足够?如果没有,您能否推荐合适的散热器尺寸或任何其他散热要求? Re: i.MX8MP Heat Spreader Solution 嗨@Wobaffet , 感谢您联系恩智浦技术支持! 为此,我建议查阅i.MX8MP 硬件设计指南,特别是第 7.8 章“散热器注意事项”,其中提供了有关 i.MX8MP 热管理和散热器实施的详细信息和设计建议。 本章涵盖了确保设备具有良好的热性能和可靠运行所需的关键要求和注意事项。 此致, 查维拉
查看全文
S32K3 SPIクロック異常低 私はSPIテストを行うためにS32K344 EVBを使用しています。私はPTB14からPTB17までのピンを持つLPSPI1ユニットをマスターとして使用し、RTD 4.0.0を使用しています。P19.SPIはモード3:CPOL=1、CPHA=1です。 Spi_SyncTransmit を呼び出した後、以下のようにオシロスコープで測定したところ、フレームが実際に送信される前にクロックピンが低くなりました。その原因は何でしょうか?どうすれば直せますか? zyt_0-1785493991563.png Re: S32K3 spi clk abnormal low こんにちは、 @zyt この動作は通常、EPSPIモジュールのリセットを実行するERR050456の最初の回避策によって引き起こされます。この状況はすでに他のThreadで議論されており、例えば [MCU S32K312]でCSラインが低くなる前に追加のSPIクロックパルスが現れる。 そのThreadで説明されているように、低パルスを解消できると予想される代替の回避策を適用できます。この回避策を有効にするには、プロジェクトに次のマクロを定義してください。 ERR_IPV_LPSPIV2_E050456_2ND_SOLUTION BR、VaneB
查看全文
i.MX8MQ: Does the Boot ROM support booting from FlexSPI/QSPI NOR flash? Hello, Hardware: - i.MX8MQ (REV A0), custom board based on EVK design - QSPI NOR: Micron MT25QL256A (32MB, 3.3V, Quad connected) - BSP: Yocto Scarthgap, NXP BSP, U-Boot 2024.04 (u-boot-imx) Goal: Boot the bootloader (SPL + ATF + U-Boot) from FlexSPI NOR flash. Kernel and rootfs remain on eMMC. What works: - U-Boot (loaded to RAM via uuu SDP/SDPV) runs fine - "sf probe" detects the flash correctly: mt25ql256a, 32 MiB - U-Boot can read and write the flash reliably (verified with read-back tests after "sf protect unlock") - Image is built with IMXBOOT_TARGETS = "flash_evk_flexspi" Flash layout (verified by reading back from the chip): 0x000000: FCFB header - "qspihdr check" reports "Found boot config header in Q(F)SPI" tag = 42464346, version = 56010000 0x001000: IVT - d1 00 20 41, entry = 0x007E1000, boot_data = 0x007E0FE0, self = 0x007E0FC0 0x060000: U-Boot proper FIT (d00dfeed), matches CONFIG_SYS_SPI_U_BOOT_OFFS=0x60000 Problem: With boot switches set to QSPI/FlexSPI boot and the USB cable physically disconnected, the board does not boot. Nothing is printed on the serial console (SPL banner never appears), and the ROM falls back to serial download mode: uuu -lsusb 2:1 MX8MQ SDP: 0x1FC9 0x012B NXP FLASH BT_FUSE_SEL is not blown; boot configuration is done via GPIO boot pins. What I have already tried: - Both header formats: scripts/qspi_header (c0ffee01 tag) and scripts/fspi_header (FCFB tag). Fixed soc.mak so that flash_evk_flexspi uses fspi_header with offset 0. - Varying FCFB parameters: sflashA1Size, serialClkFreq (50MHz -> 20MHz), dataSetupTime/dataHoldTime, sflashPadType - "uuu -b qspi" (the official built-in script) - "qspihdr update safe" and "qspihdr init safe" - Erasing the flash completely vs. writing the full image: boot behaviour is essentially identical (SDP appears after ~1.6s vs ~1.8s), which suggests the ROM may not be reading the flash at all. Questions: 1. Does the i.MX8MQ Boot ROM support booting from serial NOR flash over FlexSPI at all? The Reference Manual section I have lists NAND flash and SD/MMC as boot devices, but I could not find FlexSPI/QSPI NOR listed. i.MX8MM/8MN documentation seems to describe it, but I am unsure about 8MQ. 2. If it is supported, what is the exact expected flash layout? Should the IVT be at offset 0x400 or 0x1000 when an FCFB is present at 0x0? 3. What is the correct BOOT_MODE / BOOT_CFG combination to select FlexSPI NOR boot on i.MX8MQ? 4. Are there any known errata for REV A0 silicon regarding FlexSPI boot? Thank you.
查看全文
RD33771CNTREVM + FreeMASTER 项目 您好, 我目前正在评估 RD33771CNTREVM(高压电池管理系统)参考设计板。 根据用户手册(UM11310),该板通过 CAN0 接口(连接器 J12)输出原始寄存器数据。虽然我可以使用标准的 CAN-USB 接口读取原始十六进制消息,但我正在寻找一种更有效的实时可视化电池电压和温度的方法。 我注意到,对于类似的硅组合(S32K144 + MC33771C),NXP 在 BCC 软件驱动程序代码包,软件包中提供了 BCC_S32K144_FreeMASTER 示例项目。 在开始修改引脚布线并将这个通用示例移植到 RD33771CNTREVM 的特定硬件布局之前,我想问一下: NXP是否有专用的FreeMASTER项目(.pmp / .pmpx)?以及相应的 .elf 文件专为RD33771CNTREVM板定制的固件? 感谢您的支持。 Re: RD33771CNTREVM + FreeMASTER project 嗨,马文, 我找到了应用团队对另一位客户的回复,该客户曾询问RD33771CNTREVM 的 FreeMASTER 示例。很遗憾,我们目前没有 FreeMASTER 示例,只有 EvalGUI。请查看以下回复。您可以从MC33771C 产品页面下载 EvalGUI,它是公开提供的。 JozefKozon_0-1785486988566.png 给您带来的不便,敬请谅解。 说明 很遗憾,情况确实如此,示例代码附带的 FreeMaster 接口仅适用于单个节点。目前来看,它不支持 4 个节点,只有第一个节点会被初始化和监测。 对于这个分布式平台,唯一可用于多个节点的 GUI 是 EvalGUI 5.15。 最诚挚的问候, 约瑟夫 Re: RD33771CNTREVM + FreeMASTER project 嗨,约瑟夫, 谢谢你的回答。我试用了 EvalGUI 5.15,但它在 Windows 11 上运行缓慢,而且只能通过 COM 端口工作。RD33771CNTREVM 具有 CAN 输出…… 我看看能不能从PCB板上获取RX和TX信号。然后我可以修改开发套件的原始固件,使其具有 EvalGUI 5.15 所期望的相同输入/输出消息。 但我仍然希望开发套件能采用 PC SW 或 FreeMASTER 项目。那将非常有帮助。 Re: RD33771CNTREVM + FreeMASTER project 嗨,马文, 目前除了MC33771C和RD33771CNTREVM产品页面中提供的软件外,没有其他软件。由于 MC33771C 是一款老产品,虽然仍在生产,但可能不会有新的软件。我们有更新的BCC。对于新设计,我更推荐您选择 24 通道或 26 通道的 BCC。BMA7x2x系列。这些是BCC的最新元器件。 https://www.nxp.com/products/product-selector:PRODUCT-SELECTOR?category=c40_c328&page=1&nrnd=false JozefKozon_0-1785495573469.png 最诚挚的问候, 约瑟夫
查看全文