Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) Hello, I am reading the KW47 Reference Manual and I am confused about the relationship between the WDOG low-power modes and the system power modes. In the WDOG chapter, the Control and Status register contains the following bits: - WAIT: "Enables WDOG to operate when the chip is in Wait mode." - STOP: "Enables WDOG to operate when the chip is in Stop mode." The WDOG chapter also states that: - The selected WDOG clock source must remain active in Stop mode. - For Debug and Stop modes, a clock source other than the bus clock must be used. On the other hand, the Power Modes chapter describes: Sleep mode: - CPU execution halted - Core clock gated off - System clock and bus clock may continue running Deep Sleep mode: - Core clock gated off - System clock gated off - Bus clock gated off Based on these descriptions, it seems reasonable to interpret: - Wait mode ≈ Sleep mode - Stop mode ≈ Deep Sleep mode However, I have not been able to find any explicit statement in the Reference Manual confirming this mapping. My questions are: 1. Does WDOG Wait mode correspond to the Power Mode Sleep mode on KW47? 2. Does WDOG Stop mode correspond to the Power Mode Deep Sleep mode on KW47? 3. Or are Wait/Stop WDOG-specific CPU states that are different from the SoC power modes? 4. Is there any Reference Manual section or Application Note that explicitly describes this relationship? Thank you for your help. Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) Hello, hope you are doing well.   The terminology used in the KW47 Reference Manual is consistent with interpreting the WAIT and STOP fields in the WDOG control register as references to chip/core low-power states, rather than as WDOG-specific CPU states. I would describe the relationship as functional correspondence rather than a strict equivalence. In that sense, WDOG WAIT corresponds to the Wait/Sleep class condition, where CPU execution is halted but the system and bus clocks may remain available. WDOG STOP corresponds to the Stop/Deep-Sleep class condition, where the core, system, and bus clocks are gated and the watchdog can continue only if it is configured to use a clock source that remains active in that mode.   Best regards, Sofia. Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) Hello Sofia, Thank you for your previous explanation. Based on your reply, my understanding is: - WDOG WAIT corresponds to a Wait/Sleep-class low-power condition. - WDOG STOP corresponds to a Stop/Deep-Sleep-class low-power condition. - The relationship is a functional correspondence rather than a strict one-to-one mapping. After reviewing the KW47 Reference Manual again, I found the following section: 28.4 Module operation in low power modes Table 225: Cortex M33 core module operation in low power modes For WDOGx, the table shows: - Sleep : ON - Deep Sleep : Optional - Power Down : Optional - Deep Power Down : OFF From this table, I interpreted that WDOG operation can be configured in at least Deep Sleep and Power Down modes. To better understand the behavior, I performed a test using a KW47-Loc evaluation board. Test conditions: - WDOG enabled - WDOG refresh is performed from vApplicationIdleHook() - PWR_EnterLowPower() is executed from FreeRTOS vPortSuppressTicksAndSleep() - Observe whether a watchdog reset occurs after entering the low-power state Test results: Case 1 WAIT=0, STOP=0 → No watchdog reset occurred Case 2 WAIT=1, STOP=0 → Watchdog reset occurred Case 3 WAIT=0, STOP=1 → No watchdog reset occurred My interpretation is that when a watchdog reset occurred, the device entered a low-power state where vApplicationIdleHook() was no longer executed while the watchdog continued running and eventually timed out. However, a watchdog reset occurred only when WAIT=1 and STOP=0, while no watchdog reset occurred when STOP=1. Because of this result, I am having difficulty understanding how the WAIT and STOP bits are actually applied to watchdog operation during low-power modes. Could you please clarify the following points? 1. When the device enters a low-power mode through PWR_EnterLowPower(), is WDOG operation controlled by the WAIT bit or the STOP bit? 2. Does the observed result indicate that the device is actually entering Sleep mode rather than Deep Sleep mode, or should it be interpreted as entering Deep Sleep mode? 3. Does the STOP bit correspond to the Deep Sleep mode described in the Power Modes chapter, or does it refer to a different low-power state? 4. How should the following entries in Table 225 be interpreted with respect to the WDOG WAIT and STOP control bits? - WDOGx : Optional (Deep Sleep) - WDOGx : Optional (Power Down) Thank you for your support. Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) @sofiaurueta  I performed some additional testing and updated the post with my findings above. Could you please let me know if my interpretation is correct? Thank you. Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) Hi @hyama , I apologize for the late reply.   Are you testing with any example from the SDK? How are you confirming that the device is entering Deep Sleep mode? From the behavior you described, it is possible that the device is only entering Sleep mode. If the device were entering Deep Sleep, the results would be the opposite: STOP=1 (Case 3) should have caused the timeout, and WAIT=1 (Case 2) should have had no effect. The fact that it is WAIT=1 that triggers the reset is consistent with the device entering Sleep mode, not Deep Sleep.   Answering your questions: 1. When the device enters a low-power mode through PWR_EnterLowPower(), is WDOG operation controlled by the WAIT bit or the STOP bit? CS[WAIT] and CS[STOP] are independent controls for independent modes where CS[WAIT] controls WDOG operation in Sleep mode, and CS[STOP] controls WDOG operation in Deep Sleep mode. In the case that the device enters Sleep mode, CS[WAIT] is the active control. CS[STOP] has no effect here because Deep Sleep is not entered. If the device were instead configured to enter Deep Sleep, CS[STOP] would be the active control.   2. Does the observed result indicate that the device is actually entering Sleep mode rather than Deep Sleep mode, or should it be interpreted as entering Deep Sleep mode? The results are consistent with Sleep mode entry and are inconsistent with Deep Sleep. Based on the three test cases, Sleep mode is being entered.   3. Does the STOP bit correspond to the Deep Sleep mode described in the Power Modes chapter, or does it refer to a different low-power state? Based on the documentation, CS[STOP] corresponds to Deep Sleep, and the behavior observed in the tests is consistent with this (assuming that Deep Sleep was not entered).   4. How should the following entries in Table 225 be interpreted with respect to the WDOG WAIT and STOP control bits? The "Optional" for Deep Sleep means the WDOG can operate in Deep Sleep if CS[STOP]=1 and a clock source other than the bus clock is configured. For Debug and Stop modes, a clock source other than the bus clock must be used. Using the bus clock the watchdog can be "enabled" architecturally but its clock is gone, unless a different clock source is selected, for example, 32K_CLK. Best regards, Sofia.
View full article
Guider 1.10.1 が動作中にクラッシュします。 Windows 11搭載のパソコンなのですが、画像貼り付け処理中にアプリがランダムにクラッシュしてしまいます。すぐにクラッシュすることもあれば、少し時間がかかることもあり、特に規則性はありません。 回复: guider1.10.1闪退,在操作过程中会闪退 こんにちは@shier 情報ありがとうございます。 GUI Guider v1.10.1は古いバージョンであり、Windows 11では互換性や安定性に問題が生じる可能性があります。 最新のGUI Guider v2.0.1へのアップグレードと、新しいバージョンでも問題が再現可能かどうかを確認することをお勧めします。 GUI Guider v2.0.1でもクラッシュが続く場合は、ご連絡ください。クラッシュログやスクリーンショット、問題再現手順などをご提供いただければ、さらなる調査が可能となります。 BR ハリー
View full article
AN15075 Patch can't be applied The relativly new user manual AN15075 metions the file 0001-add-AHAB-check-for-imx remote-proc-process.patch  Which i found in the  AN15075SW.zip. This patch files applies the following 3 lines:  +#ifdef CONFIG_IMX_REMOTEPROC_AHAB +#include +#include +#endif to  drivers/remoteproc/imx_rproc.c from linux-imx but tthe file linux/firmware/imx/se_fw_inc.h doesn't exist (anywhere on the internet) And the file ele_base_msg is not placed at that location. I am working on the linux-imx lf-6.18.y branch https://github.com/nxp-imx/linux-imx/tree/lf-6.18.y I couldn't find it on the 6.6 or 6.12 either. To what version of linux-imx should this patch be applied?  P.S. If you add the patch and disable  CONFIG_IMX_REMOTEPROC_AHAB The linux-imx won't build either because some properties stopped existing because some of the code is guarded under a #ifdef but not all. Re: AN15075 Patch can't be applied The patch we implemented at that time was merely a proof of concept, and the software team did not agree to merge it into the upstream repository. So it's just a reference implementation. The subsequent porting was not continued. Re: AN15075 Patch can't be applied Is there any change NXP will update the patch for Yocto Wrynose (with linux 6.18)? Re: AN15075 Patch can't be applied Apply AN15075SW’s kernel patch to lf-6.6.36-2.1.0 / BSP lf-6.6.36 .      $ git clone https://github.com/nxp-imx/linux-imx.git      $ git checkout -b lf-6.6.36-2.1.0 lf-6.6.36-2.1.0 Do not expect it to apply cleanly to lf-6.18.y ; it must be forward-ported. If forward-porting, fix both the include paths and the Kconfig guards. Your PS is consistent with a partial guard bug: disabling CONFIG_IMX_REMOTEPROC_AHAB should leave the existing remoteproc path buildable, but the AN patch appears to leave some non-AHAB code dependent on definitions or fields introduced only inside #ifdef CONFIG_IMX_REMOTEPROC_AHAB . Re: AN15075 Patch can't be applied Did some more digging:  This patch seems to add these files: [PATCH v4 6/7] firmware: imx: add driver for NXP EdgeLock Enclave But it was reapplied differently in this commit: LF-13910: firmware: imx: add driver for NXP EdgeLock Enclave · nxp-imx/linux-imx@0eff402 Re: AN15075 Patch can't be applied Is modifying the remoteproc code to use the ELE firmware still the recommended approach to enable AHAB on the second core?
View full article
Request for PTP/IEEE 1588 Support and Configuration Guidance for S32G274A PFE on QNX 7.1 Hi Expert, We are planning to implement IEEE 1588/PTP time synchronization on the PFE Ethernet interfaces of our custom S32G274A board. Our current software configuration is: - SoC: NXP S32G274A - Board: Customer board based on S32G274A - Operating system: QNX 7.1 - PFE driver: PFE-DRV_S32G_A53_QNX 1.9.0, io-pkt version - PFE firmware: PFE-FW_S32G 1.12.0 - PFE interfaces under test: PFE EMAC0 and PFE EMAC2 - PFE EMAC1 is not included in the current test because the firmware of its external AQR113C PHY has not yet been programmed. We checked the PFE driver source code and found that it contains IEEE 1588 support and implements the following QNX driver-specific PTP commands: - PTP_GET_TIME - PTP_SET_TIME - PTP_GET_TX_TIMESTAMP - PTP_GET_RX_TIMESTAMP - PTP_SET_COMPENSATION - PTP_GET_COMPENSATION The current default build configuration disables this feature: PFE_CFG_IEEE1588_SUPPORT=0 PFE_CFG_IEEE1588_I_CLK_HZ=0 PFE_CFG_IEEE1588_EMAC0_O_CLK_HZ=0 PFE_CFG_IEEE1588_EMAC1_O_CLK_HZ=0 PFE_CFG_IEEE1588_EMAC2_O_CLK_HZ=0 Our startup code already enables the PFE_TS clock through SCMI, but we have not yet configured the IEEE 1588 input and output clock frequencies in the PFE driver. Could you please provide guidance on the following questions? 1. Does PFE EMAC0/EMAC1/EMAC2 on S32G274A officially support IEEE 1588 hardware TX and RX timestamping with PFE-DRV 1.9.0 and PFE-FW 1.12.0 on QNX 7.1? 2. What is the expected SCMI PFE_TS clock frequency on S32G274A? 3. What values are recommended for the following build parameters? PFE_CFG_IEEE1588_I_CLK_HZ PFE_CFG_IEEE1588_EMAC0_O_CLK_HZ PFE_CFG_IEEE1588_EMAC1_O_CLK_HZ PFE_CFG_IEEE1588_EMAC2_O_CLK_HZ 4. Do all three PFE EMACs share the same PTP hardware clock, or does each EMAC have an independent PTP system-time counter? 5. Which PTP transport modes are supported by this driver? - Layer-2 PTP, EtherType 0x88F7 - UDP/IPv4 - UDP/IPv6 - One-step timestamping - Two-step timestamping - End-to-End delay mechanism - Peer-to-Peer delay mechanism 6. Does enabling PTP require any additional PFE firmware configuration, firmware feature, FCI configuration, or startup initialization? 7. Is there an NXP- or QNX-recommended user-space PTP daemon or sample application for this PFE driver? The current driver exposes PTP functions through netdrvr/ptp.h and SIOCGDRVSPEC/SIOCSDRVSPEC, rather than a Linux-style /dev/ptpX PHC device. 8. Are there any known errata, limitations, or required initialization sequences related to: - PFE timestamp clock initialization; - TX/RX timestamp delivery through HIF; - timestamp compensation; - simultaneous PTP operation on multiple PFE EMACs? If available, could you also provide a reference configuration, sample application, or validation procedure for IEEE 1588 on S32G274A PFE under QNX? Thank you for your support. BR, Waitewang Re: Request for PTP/IEEE 1588 Support and Configuration Guidance for S32G274A PFE on QNX 7.1 Hello Expert Thank you for the detailed information. We have verified that the PTP time and compensation interfaces work correctly on PFE0 and PFE2 with PFE-DRV 1.9.0 and PFE-FW 1.12.0. Before closing this NXP PFE support case, could you please clarify three S32G274A-specific points? 1. We are currently using PFE_CFG_IEEE1588_I_CLK_HZ = 200 MHz and 50 MHz output clocks for the enabled EMACs. Is this configuration officially supported and recommended? 2. Does each PFE EMAC have an independent IEEE 1588 timer, or can an EMAC be configured to share the time base from another EMAC? 3. Where is the required 400 MHz XBAR clock configured, and which register or runtime indication can be used to verify it? Re: Request for PTP/IEEE 1588 Support and Configuration Guidance for S32G274A PFE on QNX 7.1 Hi,waitewang Thank you for contacting us. The following information is hoped to be helpful to you! 1. The IEEE 1588 timestamping feature (AAVB-2500) was first introduced in BETA_0.9.0. Note that the original record is [PFE_QNX_DRIVER] Add IEEE1588 timestamping support. (Refer to PFE-FW_S32G_1.12.0_ReleaseNotes.pdf.) Your software version compatibility meets the requirements. Joey_z_1-1788772191193.pngJoey_z_1-1788772191193.pngJoey_z_1-1788772191193.png Joey_z_0-1788772167682.pngJoey_z_0-1788772167682.pngJoey_z_0-1788772167682.png 2. The clock of PFE_TS is provided by GMAC_TS_CLK, with a range of 5-200 MHz. The minimum value needs to be determined based on the set mode. Joey_z_2-1788772339124.pngJoey_z_2-1788772339124.pngJoey_z_2-1788772339124.png Joey_z_3-1788772351660.pngJoey_z_3-1788772351660.pngJoey_z_3-1788772351660.png 3. It needs to be set according to the value of GMAC0_TS_CLK. Refer to the following content. Joey_z_4-1788772395380.pngJoey_z_4-1788772395380.pngJoey_z_4-1788772395380.png 4. Yes, you can refer to the following figure. Joey_z_5-1788772417926.pngJoey_z_5-1788772417926.pngJoey_z_5-1788772417926.png 5. From the code and documentation infromation, technically PTP uniformly identifies the transport layer, supporting (UDP/IPv4, UDP/IPv6, Layer-2 PTP), support theTwo-step and E2E/P2P. 6.Please note the following:The XBAR clock set to 400 MHz for timestamping feature to work reliably, refer to S32G Reference Manual.The PFE_CFG_IEEE1588_EMACn_O_CLK_HZ value must be less than PFE_CFG_IEEE1588_I_CLK_HZ. Before driving the loading process, it is necessary to confirm the following: All relevant clocks, power/reset, and pins of PFE have been configured according to the S32G RM, and the firmware binary s32g_pfe_class.fw has been deployed to the target board. 7. We apologize that NXP does not provide a ready-made PTP daemon or sample application for the QNX PFE driver.  8. Please refer to the following contents in the attached documents: PFE-DRV_S32G_QNX_1.9.0_ReleaseNotes.pdf/4 Known Issues PFE-DRV_S32G_QNX_1.9.0_UserManual.pdf/5.2 Limitations PFE-DRV_S32G_QNX_1.9.0_UserManual.pdf/5 Usage We do not currently provide dedicated application examples. It is recommended to refer to the relevant information in the following documents.(PFE-DRV_S32G_A53_QNX_1.9.0\doc) BR Joey Re: Request for PTP/IEEE 1588 Support and Configuration Guidance for S32G274A PFE on QNX 7.1 Hi,waitewang Thank you for your reply. 1.For the input clock, the 100Mhz was suggested according to the S32G RM.The PFE_CFG_IEEE1588_EMACn_O_CLK_HZ value must be less than PFE_CFG_IEEE1588_I_CLK_HZ. Joey_z_0-1788848856306.pngJoey_z_0-1788848856306.png 2.PFE EMACs support two timestamping modes, Internal Timestamp Mode and the External Timestamp Mode. The detail information you can refer to the PFE-DRV_S32G_QNX_1.9.0_UserManual.pdf of chapter 6.4.1 Configuring and enabling the IEEE1588 timers. 3.The XBAR clock will be configured in the ATF; you can try to use the commend of "clk dump" in uboot to check it. Hope this information can help you. BR Joey
View full article
LINスタックのダウンロード - どこですか? S32K116マイクロコントローラ用のLINスタックはどこでダウンロードすればいいですか? いくつかの投稿では、NXPのFlexnet(?)ページ「S32K1 Reference Software - オートモーティブ ソフトウェア - LIN-Stacks」を指していますが、私が得ているのは「LINSTACK-K1 『既知欠陥リスト』週間報告」だけです。 S32DSの拡張機能とアップデートのページにもLINソフトウェアは掲載されていません。 何か見落としていることがあるのだろうか? Re: LIN-stack download - where? こんにちは、 @daniel_meier さん。 『S32K1 Reference ソフトウェア - オートモーティブ SW - LIN-Stacks』の代わりに、『オートモーティブ SW - S32K1 Reference ソフトウェア > オートモーティブ SW - S32K1_S32M24X - LIN Stacks』を試してみてはどうでしょうか? こちらのリンクからアクセスできるはずです:Automotive SW - S32K1_S32M24X - LIN Stacks。 問題が続く場合は、代わりにオートモーティブ ソフトウェア Package マネージャを試してください。 よろしくお願いします、 ジュリアン
View full article
S32K312用RTDの取り付け 私はS32K312のために、S32 Design Studio v 3.6.6 で以下の開発環境を設定しようとしています。 1. SW32K3_S32M27x_RTD_R23-11_7.0.1_D2603_DesignStudio_updatesite.zip をダウンロードしました。 2. S32 Design Studio 3.6.6で「S32拡張とアップデート」を開いたWindows 11で動作し、S32K3のリアルタイム・ドライバをインストールしました(示す通り): durga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.png 3. IDEを再起動するよう促されたら(PCの再起動も試しました) これではK3ファミリのサポートが見当たりません。「新規プロジェクト」ダイアログには、このオプションは表示されません。 durga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.png 下記のように「S32K3XX」ドライバーをインストールしようとすると: durga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.png 以下のようなエラーが表示されます。 durga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.png この一連のプロセスをS32DS v.6.2で繰り返すと少し改善されました。「新しいプロジェクト」ダイアログにK312のオプションが表示されていますが、SDKは表示されていません。 durga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.png 私は何が間違っているのでしょうか? Re: Installing RTD for S32K312 こんにちは、 @VaneBさん 残念ながら、S32DS 3.6.6 には同等の機能がありません。また、RTDのバージョンを7.0.1から6.0.0にダウングレードしてみました。 3.6.6で動作する特定のバージョンはありますか? Re: Installing RTD for S32K312 こんにちは、 @durga_choudhuryさん このスクリーンショットは私のS32DS 3.6.10のものです。インストール;しかし、あなたのIDEでも同様のセットアップが見られるはずです。 VaneB_0-1788893776567.pngVaneB_0-1788893776567.png また、あなたが共有してくれたスクリーンショットを見る限り、RTD 7.0.1をインストールできているのがわかります。RTD 7.0.1はS32K3開発パッケージに依存しているため、すでにそのパッケージがインストールされている可能性が高いです。 Re: Installing RTD for S32K312 こんにちは、 @VaneBさん あなたのコメントについて、もう少し詳しく説明してください。 S32K1xx用の「開発パッケージ」がインストールされているのを確認しました(これも私が使っているMCUファミリです): durga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.png しかし、K3には同様のものは見当たらない。 では、どうやってインストールすればいいのでしょうか?繰り返しますが、これまでに私がやったことは以下の通りです: 1. SW32K3_S32M27x_RTD_R23-11_7.0.1_D2603_DesignStudio_updatesite.zip をダウンロードしました 2. S32 DS v 3.6.6にアップデートサイトとして追加しました。 3. 以下のものをインストールしました。 durga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.png Re: Installing RTD for S32K312 こんにちは、 @durga_choudhuryさん S32DS 3.6.6からインストール時には、S32K3開発パッケージがインストールされていないようです。 S32DS 3.6.2に関して、RTD 7.0.1はS32DS 3.6.4を使用して開発および検証されたことにご注意ください。したがって、S32DS 3.6.4 の使用をお勧めします。または、互換性を確保し、潜在的な問題を回避するために、より新しいリリースを使用してください。 他に確認すべき点として、ツールチェーンが挙げられます。プロジェクトを作成する際は、NXP GCC 10.2.0がインストールされ、プロジェクトツールチェーンとして選択されていることを確認してください。 BR、VaneB
View full article
コロラド州ラブランドの配管工が語る、よくある配管トラブルとその対処法 最終更新日:2026年9月9日(公式サイトはコメント欄に記載) Plumber Loveland Coとは、コロラド州ラブランドで利用できるプロの配管サービスを指し、住宅所有者や企業が一般的な配管に関するニーズに対応できるよう支援することを目的としています。蛇口の漏れや詰まった排水口から給湯器の問題、より複雑な配管修理まで、経験豊富な配管工は配管システムを正常に機能させるための実用的な解決策を提供します。これは、コロラド州ラブランドで信頼できる配管工を選ぶことが、迅速かつ確実なサービスが必要な場合に重要となる理由の一つです。 Plumber Loveland Coの主なアイデアはシンプルです。日常の修理、メンテナンス、設置、そして予期せぬ配管トラブルに対して、お客様に専門的な配管サポートを提供することです。資格のある地元の配管工は、問題の原因を特定し、適切な解決策を提案し、必要な作業を安全かつ効率的に完了させる手助けをしてくれます。小さな修理が必要な場合でも、大規模な配管工事が必要な場合でも、信頼できる配管の専門家に相談することで、物件を守り、ご自宅の配管システムを円滑に機能させることができます。
View full article
LSDK 21.08 OP-TEE でブートが壊れる LS1043AEを使用したカスタム基板では、OP-TEEなしでもセキュアブートが問題なく動作します。OP-TEEをシステムに導入しようとしてコンソールに出力され、そこでハングアップします。 注意:2GB DDR4、32ビット、CL=11、ECCオフ お知らせ:BL2:v2.4(リリース):LSDK-21.08-1-ga08bfddba-dirty お知らせ:BL2:ビルド日時:2026年8月31日 22:39:20 通知:SECブロックの初期化と設定を行っています。 注意:Secは既に初期化および設定済みです。 通知: RSA の検証 通知: ハッシュを検証しています 通知: RSA の検証 通知: ハッシュを検証しています 通知: RSA の検証 通知: ハッシュを検証しています 通知: BL2: BL31を起動しています お知らせ:BL31:v2.4(リリース):LSDK-21.08-1-ga08bfddba-dirty お知らせ:BL31:製造日時:2026年8月31日 22:39:48 お知らせ:ls1043aerb BL31フェーズへようこそ Google/Geminiによると、GICには問題があると考えているとのことです。ATFとOP-TEEは64kページアラインを使用しているようですが、ubootのdtsファイルでは4kページアラインになっています。この問題ではないと思う、少なくとも今のところは。OP-TEEを全く初期化していないように見えるからです。 ご意見は? QorIQ LS1デバイス Re: LSDK 21.08 OP-TEE breaks boot どうやらU-Bootに問題があるようです。 OPTEEを有効にした状態で通常のU-boot(セキュアなし)を起動できるかどうか試していただけますか? Re: LSDK 21.08 OP-TEE breaks boot 試してみるのは構わないが、それは何のためのテストなのか?現在、u-bootにどのような問題があると考えていますか?Opteeなしで動作するので、何が問題なのか、何を注意すべきか気になります。 Re: LSDK 21.08 OP-TEE breaks boot まず最初に確認すべきこと: TF-Aをデバッグモードで再構築し、正確な停止箇所を確認してください。 実用的であればDEBUG=1 LOG_LEVEL=50を使うか、初期BL31プラットフォームコードにNOTICE()のパンくずを加えることもできます: プラットフォーム設置エントリー GIC初期化 TZC/TZASC/TZPC 設定 セキュアペイロードディスパッチャー/OP-TEEセットアップ BL32エントリーポイント準備 NXPのサポートでは、同様のLS1043Aハングに対するガイダンスとして、ATF/U-Bootのデバッグプリントを追加するか、CodeWarrior/JTAGを使って実行が詰まっている箇所を点検することが挙げられます。 FIPに実際にBL32が含まれていること、そしてBL31がOP-TEEサポートで構築されているかを確認してください。 TF-A の OP-TEE の場合、ビルドには SPD=opteed と BL32= を含める必要があります。セキュア ブート/NXP CoT の場合、セキュア TF-A ビルド フローには、TRUSTED_BOARD_BOOT=1、CST_DIR=...、BL32=$TEE_BIN、SPD=opteed、および BL33=$UBOOT_SECURE_BIN も含まれます。 次のようなコマンドを実行してください。 fiptool info fip.bin BL31、BL32/OP-TEE、およびBL33がすべて存在することを確認してください。BL32が欠落している場合、またはBL31がSPD=opteedで構築されていない場合、OP-TEEは入力されません。 LS1043Aのセキュアブートにおける予約メモリの処理を確認してください。 LS1043Aのセキュアブートに関する問題が報告されていますが、plat/nxp/soc-ls1043a/soc.def NXP_ROM_RSVD の値を0x5900から0x8000に変更することで修正されます。既にセキュアブートを実施していて、さらに署名付きのFIPコンポーネントを追加するのであれば、早めに確認しておく価値があります。これは、後期のU-Boot DTS GICのアライメント問題よりも可能性が高い。 「RSA/ハッシュ検証済み」と表示されているからといって、画像レイアウトが良好であるとは限りません。 BL2ログは検証したコンポーネントの認証が成功したことを証明しますが、ランタイムアドレス、予約メモリの重複、BL32ロードアドレス、またはBL31のセキュアペイロード構成が正しいことは証明できません。BL2は、検証後にBL31/BL32/BL33をDDRにロードしてから、制御をBL31に渡すように文書化されている。 ハングがBL31: Initializing BL32に移動した場合は、OP-TEE本体にフォーカスを移します。 その後の段階では、OP-TEEのロードアドレス、セキュアDDRの切り出し、ページャー/非ページャーのレイアウト、CAAM/SECの設定、およびOP-TEEコンソールを確認します。OP-TEE/暗号化関連のコンテキストにおいて、OP-TEEの暗号化初期化が早期に行われている疑いがある場合、CFG_NXP_CAAM=nおよびCFG_CRYPTO_DRIVER=nを設定してOP-TEEの暗号化/CAAMを無効にすることを推奨するNXPのガイダンスがあります。しかし、現在のログでは、OP-TEEが入力されていることはまだ証明されていません。 私の最も強い仮説は、BL31はOP-TEEを有効にすると異なるビルドや構成がされており、OP-TEEバナーやBL32エントリーの前の初期BL31プラットフォーム/SPDセットアップで止まっているということです。 まずはBL31をGIC/プラットフォーム設定に合わせて計測し、FIP/SPD=opteed / BL32=tee.bin/secure-boot CSF レイアウトを実行してから、LS1043A NXP_ROM_RSVD=0x8000 の問題を確認してください。 Re: LSDK 21.08 OP-TEE breaks boot そこでATFをデバッグでビルドし、サイレントハングの直前に出る最後のメッセージは次の通りです: 情報:BL31:BL32の初期化中 もしあなたの指示を正しく理解していれば、今は特にOP-TEEに集中すべきですよね? Re: LSDK 21.08 OP-TEE breaks boot はい、まずOP-TEEを通常の起動(セキュアなし)で確認し、OP-TEEでのビルディングや展開手順に問題がないか確認してください。 Re: LSDK 21.08 OP-TEE breaks boot おそらく間違ったtee.binファイルを使っていたのだと思います。 私は、OP-TEEを手動でビルドした際に生成されたtee.binを使用しており、生成する必要があったobjcopyバージョンを使用していませんでした。これによりシステムは初期化してLinuxで起動できるようです。 opteeに関するカーネルログのメッセージが他にも残っていますが、この特定の問題は解決したのでこのスレッドは閉じます。
View full article
AN15075补丁无法应用 较新的用户手册 AN15075 提到了文件 0001-add-AHAB-check-for-imx 远程进程处理补丁 我在 AN15075SW.zip 文件中找到了它。 此补丁文件应用了以下 3 行代码: +#ifdef CONFIG_IMX_REMOTEPROC_AHAB +#include +#include +#endif 到 来自 linux-imx 的 drivers/remoteproc/imx_rproc.c 但是文件 linux/firmware/imx/se_fw_inc.h不存在(在互联网上的任何地方)。 文件 ele_base_msg 并未放置在该位置。 我正在使用 linux-imx lf-6.18.y 分支进行开发:https://github.com/nxp-imx/linux-imx/tree/lf-6.18.y 我在 6.6 和 6.12 版本上也没找到。 这个补丁应该应用到哪个版本的linux-imx? PS如果你添加了补丁并禁用 CONFIG_IMX_REMOTEPROC_AHAB linux-imx 也无法构建,因为某些属性不再存在,这是因为部分代码受到 #ifdef 保护,但并非所有代码都受到保护。 Re: AN15075 Patch can't be applied 我们当时实现的补丁只是一个概念验证,软件团队不同意将其合并到上游存储库中。 所以这只是一个参考实现。 后续的移植工作没有继续进行。 Re: AN15075 Patch can't be applied NXP 是否有可能更新 Yocto Wrynose(Linux 6.18)的补丁? Re: AN15075 Patch can't be applied 将 AN15075SW 的内核补丁应用到 lf-6.6.36-2.1.0/ BSP lf-6.6.36。 $ git clone https://github.com/nxp-imx/linux-imx.git $ git checkout -b lf-6.6.36-2.1.0lf-6.6.36-2.1.0 不要指望它能直接应用于 lf-6.18.y;它必须向前移植。 如果需要向前移植,请同时修复包含路径和 Kconfig 保护。您的 PS 与部分保护错误一致:禁用 CONFIG_IMX_REMOTEPROC_AHAB 应该使现有的 remoteproc 路径可构建,但 AN 补丁似乎使一些非 AHAB 代码依赖于仅在 #ifdef CONFIG_IMX_REMOTEPROC_AHAB 中引入的定义或字段。 Re: AN15075 Patch can't be applied 我又深入调查了一下: 此补丁似乎添加了以下文件: [PATCH v4 6/7] 固件:imx:添加 NXP EdgeLock Enclave 驱动程序 但在这次提交中,它以不同的方式重新应用: LF-13910:固件:imx:添加 NXP EdgeLock Enclave 的驱动程序 · nxp-imx/linux-imx@0eff402 Re: AN15075 Patch can't be applied 修改 remoteproc 代码以使用 ELE 固件仍然是在第二个核心上启用 AHAB 的推荐方法吗?
View full article
NXP i.MX93およびi.MX8MPLUS EVKにおける実行時の消費電力 私はNXP i.MX93とi.MX8MPLUS EVKを使っていて、実行時の消費電力を監視したいのですが、このデータをどうやって取得できますか? 目的はAIモデルの推論中のパワーを監視することです。電力指標はどうやって監視できますか? 外部ハードウェアを使わずにソフトウェアだけで電力指標を監視するにはどうすればいいですか? Re: POWER consumption at runtime on NXP i.MX93 & i.MX8MPLUS EVK 詳細な情報とANI3054への参照をありがとうございます。これは非常に役立ちます。 i.MX93 EVKも同様の電力測定設定を採用しているのでしょうか、それともi.MX93には別の測定方法が推奨されているのでしょうか? Re: POWER consumption at runtime on NXP i.MX93 & i.MX8MPLUS EVK AN13054 i.MX 8M Plusの消費電力測定に関するドキュメントを参照してください。 消費電力を測定するために、PWR CPUボードには適切な値の電流検出抵抗が挿入されています。 各キー電源レールごとに、PMICとCPUの間に接続します。電力データは、平均電圧降下をサンプリングすることによって取得されます。 電力モニタチップPAC1934を使用したセンス抵抗器。各電源の電圧降下は、そのセンス抵抗で割られます BCU PCソフトウェアツール内の値で電流を計算します。
View full article
i.MX8M Plus: Intermittent Downward Frame Shift and Green Top-Band Flicker During Concurrent VIP8000 1. System and Environment Parameter Configuration SoC NXP i.MX 8M Plus Quad Silicon Revision A1 / B0 Kernel 6.12.20-lts-next-g604d4ef7a1e4 BSP NXP linux-imx / LTS-Next Vivante / Galcore Driver 6.4.11.p3.1049711 Galcore Location drivers/mxc/gpu-viv/galcore (built-in) 2D Engine Vivante GC520L (imxvideoconvert_g2d / libg2d.so) NPU VeriSilicon/Vivante VIP8000 NPU Performance 2.3 TOPS Video Encoder Hantro VC8000E (v4l2h264enc) RAM ~5.7 GB LPDDR4 CMA Total ~960 MB 2. Problem Description We are observing an intermittent video corruption issue when VIP8000 NPU inference runs concurrently with hardware scaling/color conversion using the GC520L G2D engine. The affected H.264 stream does not become completely green. Instead, an individual frame occasionally shows the following behavior: The active image appears to shift downward by a small number of pixels/scanlines. A horizontal green band appears at the top of the frame. The following frame immediately returns to the correct position. The result is an intermittent downward frame jump / green top-edge flicker. The issue is reproducible during concurrent accelerator workloads but cannot be reproduced reliably when the NPU or G2D workloads are tested independently. 3. Key Observations 3.1 G2D-only workload is stable We can run up to three concurrent G2D video branches: Main: 1080p Sub: 360p MJPEG: 480p with the NPU disabled. The video remains stable for extended periods with no observed green frames or frame shifts. 3.2 NPU-only workload is stable Heavy VIP8000 NPU inference at approximately 15–30 FPS runs continuously without observed inference errors or video corruption when G2D processing is not active. 3.3 Replacing G2D with CPU processing eliminates the issue When hardware G2D processing is replaced with: videoscale ! videoconvert the system remains stable while the NPU continues running at full workload. The green-band/frame-shift issue is no longer observed. 3.4 Concurrent NPU + G2D triggers the issue When the NPU is active and G2D is simultaneously used for video/AI processing, the corruption appears. The frequency increases when additional G2D workloads are introduced. This suggests that the issue is related to concurrent accelerator activity rather than the individual NPU or G2D workload alone. 4. Test Matrix We performed the following tests to isolate the failure condition. Test NPU AI Processing Video G2D Result 1 OFF None Main + Sub + MJPEG (3 G2D branches) PASS — No flicker 2 OFF SHM attached Main + Sub + MJPEG PASS — No flicker 3 ON G2D enabled Main G2D FAIL — Intermittent green-band/frame-shift observed 4 ON CPU (videoscale ! videoconvert) Main G2D PASS — Main stream clean 5 ON CPU Main + Sub G2D FAIL — Issue appears when additional G2D workload is introduced 6 ON CPU All video branches converted to CPU scaling PASS — All streams remain clean Note: We are currently preparing a smaller standalone reproducer to determine the exact minimum number of concurrent G2D clients required to trigger the issue. 5. Current Investigation Based on the above results, we would like to understand whether this behavior could be related to one of the following areas. A. Galcore / Accelerator Concurrency In our device tree, the GPU/NPU components are part of the same GPU/ML subsystem: mix_gpu_ml@40000000 { compatible = "fsl,imx8mp-gpu", "fsl,imx8-gpu-ss"; cores = <&gpu_3d &ml_vipsi &gpu_2d>; reg-names = "phys_baseaddr", "contiguous_mem"; memory-region = <&gpu_reserved>; }; The interrupts are also handled by galcore: 34: 520 0 0 0 GICv3 35 Level galcore:0 35: 13583 0 0 0 GICv3 45 Level galcore:3d-1 36: 1737916 0 0 0 GICv3 57 Level galcore:2d We would like to understand: Does galcore share synchronization primitives or locks between the GC520L, GC7000 and VIP8000? Are G2D and NPU command queues completely independent? Are there any known limitations when multiple G2D clients/processes submit work while VIP8000 inference is active? Could command submission, context management, interrupt handling, or resource locking introduce delays under concurrent workloads? B. NoC / DDR Bandwidth or QoS Both the GC520L G2D and VIP8000 NPU are active bus masters accessing external LPDDR4 memory. We would like to determine whether heavy NPU inference could: Increase NoC/DDR traffic significantly. Increase memory access latency for G2D. Cause G2D transactions to be delayed. Expose a timing/synchronization issue between G2D and downstream consumers. Be affected by NoC/DDR QoS priorities. Could NXP provide guidance on the recommended NoC/AXI/DDR performance monitoring and QoS facilities available on i.MX8MP for investigating this type of workload? C. G2D Buffer Synchronization / Fence / Stride Issue The visual artifact is particularly interesting because the entire frame is not corrupted. The affected frame appears approximately as follows: +----------------------------------+ | GREEN HORIZONTAL BAND | +----------------------------------+ | | | | | IMAGE SHIFTED DOWN | | | | | +----------------------------------+ This makes us question whether the issue could involve: G2D destination buffer synchronization. DMA-BUF ownership/reuse. Fence signaling/completion. Temporary G2D destination offset/stride state. Delayed G2D memory writes. Downstream VPU access occurring before the G2D operation has completely finished. In particular, could a delayed G2D completion or synchronization event cause v4l2h264enc / VC8000E to consume a destination DMA-BUF before all G2D writes have completed? Is there a documented synchronization mechanism in the NXP G2D/V4L2 pipeline that guarantees G2D completion before the destination DMA-BUF is consumed by the VPU? D. Memory / CMA We monitored memory usage while reproducing the problem: Total RAM : ~5.7 GB CmaTotal : ~960 MB CmaFree : ~677 MB CMA is therefore not close to exhaustion during the failure. However, we would like to know whether there are other memory-related considerations that could affect concurrent NPU/G2D/VPU workloads, such as: DMA-BUF synchronization. Cache coherency. Memory-domain mapping. Physical buffer alignment. Buffer reuse. IOMMU/MMU mappings. Reserved-memory interactions. 6. Additional Diagnostic Experiments We are currently preparing a minimal standalone reproducer to remove application-level complexity. The planned reproducer will contain: Thread 1 → VIP8000 NPU inference Thread 2 → GC520L G2D processing Thread 3 → Additional GC520L G2D processing We also plan to test the following configurations: NPU OFF + G2D NPU ON + G2D NPU ON + 2 × G2D NPU ON + G2D → buffer inspection NPU ON + G2D → VPU encoder This should help determine whether the corruption occurs in the G2D output buffer itself or only after the buffer is consumed by the VPU. 7. Questions for NXP We would appreciate NXP's guidance on the following. 1. Known hardware/software limitations Is concurrent operation of: VIP8000 NPU + GC520L G2D + VC8000E VPU fully supported on i.MX8M Plus, including multiple simultaneous G2D clients? Are there any known hardware limitations, errata, or software restrictions related to this combination? 2. Galcore Are there known galcore issues involving concurrent VIP8000 and GC520L operation? In particular, are there known issues involving: shared locks, command queues, context switching, interrupt handling, synchronization, or resource management? 3. DMA-BUF / synchronization What mechanism is used to guarantee G2D completion before a destination DMA-BUF is consumed by downstream V4L2/VPU components? Are there known fence or buffer-ownership issues in imxvideoconvert_g2d / libg2d under concurrent accelerator workloads? 4. NoC / QoS What debug registers, debugfs nodes, performance counters, or tools does NXP recommend for measuring: GC520L AXI traffic, VIP8000 AXI traffic, VPU traffic, DDR bandwidth, NoC contention, and QoS/arbitration behavior? 5. Driver version We are currently using: Kernel: 6.12.20-lts-next-g604d4ef7a1e4 Galcore: 6.4.11.p3.1049711 Is this combination a validated/recommended configuration for i.MX8MP? Is there a newer galcore / G2D driver or patchset that addresses concurrent NPU/G2D workloads? 6. Silicon errata Could you please confirm whether the applicable i.MX8M Plus silicon errata for our A1/B0 revisions contain any issues related to: G2D, VIP8000, VPU, AXI/NoC arbitration, DDR, cache coherency, or concurrent accelerator operation? 7. Recommended configuration For an application requiring: VIP8000 NPU inference + multiple G2D scaling/color-conversion pipelines + VC8000E H.264 encoding what configuration does NXP recommend? Are there specific: driver parameters, QoS settings, memory/buffer-pool configurations, synchronization mechanisms, or GStreamer pipeline practices that should be followed? 8. Information We Can Provide We can provide the following if required: Complete GStreamer pipelines. Device-tree configuration. Kernel configuration. dmesg output during reproduction. /proc/interrupts. G2D/NPU workload details. v4l2-ctl information. Minimal NPU + G2D reproducer. Video samples containing the corrupted frames. Driver versions and build information. We would appreciate any guidance on the recommended debug procedure or additional traces/registers that would help determine whether the root cause is related to G2D/NPU synchronization, DMA-BUF/fence handling, NoC/DDR contention, galcore, or a silicon limitation. Thank you. Vishnu S i.MX 8M | i.MX 8M Mini | i.MX 8M Nano
View full article
S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention Hello NXP Team, I am working with an S32K312 Cortex-M7 using S32 Design Studio and AUTOSAR RTD 7.0.1 / AUTOSAR 4.9. I am currently testing the MC_RGM reset behavior, particularly SWT0 functional reset, functional reset escalation, destructive reset, SRAM retention, SBAF/recovery behavior, and the Power IP reset APIs. 1. SWT0 functional reset escalation I am using SWT0 timeout to generate functional resets. My MC_RGM configuration is: MC_RGM_FRET_FRET((uint32)15U), MC_RGM_DRET_DRET((uint32)0U) I observe the functional reset counter increasing: SWT0 functional reset #1 -> FREC = 1 SWT0 functional reset #2 -> FREC = 2 ... SWT0 functional reset #14 -> FREC = 14 After the next SWT0 reset, FREC is cleared/reset, but I do not observe the expected: DES[MC_RGM_FRE] = 1 My questions are: Does SWT0_RST participate in the MC_RGM functional reset escalation counter (FREC) on S32K312? When FREC reaches FRET = 15, should MC_RGM_FRE be generated and should DES[MC_RGM_FRE] be set? What exact values should I expect for FES, DES, FREC, FRET, Power_Ip_GetResetReason() immediately after the escalation? Is any additional configuration required for SWT0 to participate in FRET escalation? Can SBAF/recovery handling interfere with FRET escalation? Is there any known erratum or known S32K312 behavior related to SWT0/FRET escalation? When I run the application continuously, after the 15th functional reset the application/debugger stops instead of allowing me to observe the expected destructive reset. I would like to know whether this is related to the reset sequence, SBAF recovery, or the debugger. 2. I want every SWT0 functional reset to become destructive For testing purposes, I would also like to achieve: SWT0 timeout ↓ Functional reset ↓ Immediate destructive reset instead of waiting for 15 functional resets. Can this be achieved by configuring: FRET = 1U;  Specifically: Does FRET = 1 cause the first qualifying SWT0 functional reset to escalate to a destructive reset? Is any additional MC_RGM configuration required? Is SWT0 guaranteed to be a qualifying source for this escalation? Can SBAF/recovery behavior affect this? Is this supported directly through RTD 7.0.1 configuration? 3. SRAM data is cleared after every functional reset According to my understanding of the S32K3xx Reference Manual, SRAM/system memory should be preserved across a functional reset. I created an SRAM test variable: #define SRAM_TEST_ADDR ((volatile uint32_t *)0x204007d4U) and use it to verify retention across functional resets. However, I observe that the SRAM data is being cleared/re-written to zero after a functional reset. My questions are: Is SRAM preserved by the hardware during functional reset but overwritten afterward by software? Which SRAM regions are guaranteed to retain their contents across functional reset on S32K312? What is the recommended way to place a variable in SRAM so that its contents are retained across functional reset? Should I use a dedicated .noinit or retained SRAM section? Is there any specific MC_RGM/SRAM configuration required for retention? What is the recommended RTD 7.0.1 method for retaining application data across functional reset? 4. Direct software destructive reset I am also testing a direct software destructive reset using the Power IP: Power_Ip_Init(&Power_Ip_HwIPsConfigPB); gVar= Power_Ip_GetResetReason(); for (count = 0; count < 10125000; count++); Power_Ip_PerformReset(&Power_Ip_HwIPsConfigPB); My current MC_RGM configuration contains: static const Power_Ip_MC_RGM_ConfigType Power_Ip_MC_RGM_ConfigPB = { (MCU_DEST_RESET), ... MC_RGM_FRET_FRET((uint32)15U), MC_RGM_DRET_DRET((uint32)0U) }; The destructive reset occurs, but the debugger repeatedly loses and re-establishes communication. I see messages such as: INFO: DAP IDCODE = 0x6BA02477 INFO: DAP successfully powered up. DP CTRL/STAT = 0xF0000000 repeated multiple times, followed by: Interrupt command received. Halting execution. I would like to understand: Is repeated DAP reconnection expected during a destructive reset? What exactly happens to the Cortex-M7 during the destructive-reset sequence? When does the CPU become available again after the destructive reset? What is the recommended way to debug a single software destructive reset? 5. Breakpoint behavior before Power_Ip_PerformReset() I cannot reliably hit a breakpoint immediately before: Power_Ip_PerformReset(&Power_Ip_HwIPsConfigPB); I added a delay before the API, expecting the debugger to have enough time to gain access. Sometimes the breakpoint is only reached after I manually pause the target and then resume execution. I would like to understand: Why can the debugger miss the breakpoint even though there is a delay before the reset API? Is this related to the target repeatedly resetting and the debugger reconnecting through DAP? Is there a recommended method for catching the CPU immediately before or immediately after a destructive reset? Is the RTD DISABLE_DEBUGGER_TRAP option relevant to this behavior? 6. Power IP initialization and Power_Ip_SetMode() My RTD provides: void Power_Ip_Init( const Power_Ip_HwIPsConfigType *HwIPsConfigPtr); void Power_Ip_SetMode(const Power_Ip_ModeConfigType *ModeConfigPtr); void Power_Ip_PerformReset( const Power_Ip_HwIPsConfigType *HwIPsConfigPtr ); Power_Ip_ResetType Power_Ip_GetResetReason(void); Power_Ip_RawResetType Power_Ip_GetResetRawValue(void); I currently use: Power_Ip_Init(&Power_Ip_HwIPsConfigPB); and: gVar = Power_Ip_GetResetReason(); My mode configuration is POWER_IP_RUN_MODE. I would like clarification on: Is Power_Ip_Init(&Power_Ip_HwIPsConfigPB) the correct initialization before using the Power IP reset APIs? Is Power_Ip_SetMode() required for software functional/destructive reset testing? Since my selected mode is POWER_IP_RUN_MODE, can Power_Ip_SetMode() be omitted for this reset test? How should I configure separate software functional-reset and software destructive-reset configurations using RTD 7.0.1? Environment MCU: S32K312 Core: Cortex-M7 S32DS: S32 Design Studio AUTOSAR: 4.9 RTD: 7.0.1 Reset source: SWT0 FRET: 15 DRET: 0 I can provide the complete test application, Power_Ip_PBcfg.c, linker configuration, MC_RGM register captures, and debugger logs if required. Thank you. Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention Hello @Sharif417, 1. SWT0 functional reset escalation SWT0_RSTdoes participate in FREC for S32K312, and when FREC reaches 15, DES[MC_RGM_FRE] is set, which you should be able to read by calling Power_Ip_GetResetReason(), and returning "MCU_MC_RGM_FRE_RESET". All functional reset sources that are not demoted (through MCRGM.FERD) qualify for incrementing FREC. Keep in mind that Power_Ip_Init() clears MC_RGM.DES (after saving its value), so try to get the register values before initializing Power module or simply read reset reason. Recovery Mode may affect this, if the threshold is >8, as Recovery Mode is set to '8' by default. sBAF also may interfere with DRET, not FRET. You can see it is changed to 0xF if it is '0':   Julin_AragnM_0-1788816978772.pngJulin_AragnM_0-1788816978772.pngJulin_AragnM_0-1788816978772.pngJulin_AragnM_0-1788816978772.png When I run the application continuously, after the 15th functional reset the application/debugger stops instead of allowing me to observe the expected destructive reset. I would like to know whether this is related to the reset sequence, SBAF recovery, or the debugger. Instead of trying to keep the debugger connected, can you try attaching after a 15th functional reset, or try printing the reset reason through UART or similar? 2. I want every SWT0 functional reset to become destructive Yes, FRET=1 is enough for every functional reset to issue a destructive reset. No additional MC_RGM necessary. sBAF/Recovery Mode should not affect this. Yes, you can configure it directly in POWER module -> "Module Configuration" -> "McuResetConfig" -> "Functional Reset Escalation Threshold" 3. SRAM data is cleared after every functional reset Correct, SRAM is preserved after functional reset. Depending on the derivative, S32K3 may provide 16KB, 32KB or up to 64KB for Standby RAM. You can find some examples on how to place and use a variable through Standby RAM: [RTD600 MCAL & IP] S32K3 Low Power Management AN and demos S32K3 Low Power Management AN and demos Example S32K312 Standby mode & Standby RAM and PAD keeping DS3.5 RTD300 The reason that Standby RAM is being cleared/re-written, is because the default startup_cm7.s provided by S32DS initializes all of SRAM, regardless of reset reason (POR, Destructive, Functional). You must modify it so that if a functional reset is issued, SRAM initialization skips the allocated Standby RAM. Please refer to the following community post: S32K311 standby ram retention. 4. Direct software destructive reset Yes, when MCU is issued a functional/destructive reset, the debug subsystem and clocks are all re-initialized, meaning the debugger must re-negotiate DAP access again. A destructive reset leads most parts of the chip, except a few modules, to reset. While a functional reset leads all the communication peripherals and cores to reset. The communication protocols' sanity is not guaranteed and they are assumed to be reinitialized after reset. Instead of trying to keep the connection, you can use the 'Attach to Target' option for the debugger: Julin_AragnM_1-1788817136992.pngJulin_AragnM_1-1788817136992.pngJulin_AragnM_1-1788817136992.pngJulin_AragnM_1-1788817136992.png 5. Breakpoint behavior before Power_Ip_PerformReset() Most likely you are simply missing the window to reconnect. Instead of using a for() loop, you can simply use while(flag), where flag is a variable you will change manually after reconnecting with the debugger, through the 'Expressions' tab. 6. Power IP initialization and Power_Ip_SetMode() Yes, Power_Ip_Init() must be called before using the Power APIs. I suggest doing so. You can perform resets through Power_Ip_PerformReset(), however, you can only configure either destructive or functional reset in McuResetConfig container. You can instead declare two power modes: one for functional reset, and one for destructive reset. Then simply call Power_Ip_SetMode(Functional_Reset) or Power_Ip_SetMode(Destructive_Reset). It can be omitted, however, you should call Power_Ip_SetMode(RUN_MODE) just to make sure every module is correctly gated and configured. If this is not needed in your project, you can omit it. Please se A6.2. I've made a simple test, and I can see FRE_RESET reported after setting FRET=1, and performing a functional reset through Power_Ip_SetMode() API: Julin_AragnM_2-1788817284857.pngJulin_AragnM_2-1788817284857.pngJulin_AragnM_2-1788817284857.pngJulin_AragnM_2-1788817284857.png Best regards, Julián Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention Hello Julián, Thank you for the clarification. I have now repeated the tests on my S32K312 and would like to clarify two observations. I am attaching the complete project folder so that you can review the configuration and reproduce the behavior. 1. SWT0 functional reset escalation I configured: FRET = 15U;DRET = 0U; and use SWT0 with a 125 ms timeout to generate functional resets. I can observe FREC increasing after each functional reset: SWT0 reset #1 -> FREC = 1 SWT0 reset #2 -> FREC = 2 ... SWT0 reset #14 -> FREC = 14 However, when the next SWT0 functional reset occurs and the FRET = 15 threshold is reached, I am not able to observe the expected destructive-reset status: DES[MC_RGM_FRE] = 1 Also, after the 15th functional reset, the MCU continues running and I do not observe the expected destructive-reset behavior. The SRAM data stored in my SRAM test partition also remains intact. I have disabled the recovery behavior using: IP_DCM_GPR->DCMRWP1 |= (3 << 22); Could you please review my attached project and clarify: Why am I not observing DES[MC_RGM_FRE] = 1 after the 15th SWT0 functional reset? After FREC reaches FRET = 15, should the MCU definitely enter a destructive reset? If a destructive reset occurs, why my SRAM contents is retained in my test partition ? Is there any additional MC_RGM/SBAF configuration that I am missing? 2. SRAM retention after functional and destructive reset I created a dedicated SRAM partition/section and stored test data in that region. I have confirmed that the SRAM value is retained across the repeated SWT0 functional resets, which is expected. However, even after the 15th functional reset, where I expect FRET escalation to generate a destructive reset, the SRAM value still remains. I also tested a direct software destructive reset, and the SRAM value was still retained after that reset as well. My observation is therefore: SWT0 functional reset ↓ SRAM value retained 15th functional reset / expected FRET escalation ↓ SRAM value still retained Direct software destructive reset ↓ SRAM value also retained Could you please clarify whether this SRAM behavior is expected on the S32K312, and whether my SRAM test region may be located in a memory area that is retained even across a destructive reset? I am attaching the complete S32K312 project folder, including the linker configuration, RTD configuration, MC_RGM configuration, SWT0 configuration, and test application, so you can review the actual memory placement and reset configuration. Thank you for your support. Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention Hello @Sharif417, 1. SWT0 functional reset escalation 1. Why am I not observing DES[MC_RGM_FRE] = 1 after the 15th SWT0 functional reset? As I've mentioned, Power_Ip_Init() API clears DES register, meaning you should read reset reason through Power_Ip_GetResetReason() instead.  2. After FREC reaches FRET = 15, should the MCU definitely enter a destructive reset? If a destructive reset occurs, why my SRAM contents is retained in my test partition? Yes. As long as FREC reaches the threshold configured in FRET, MCU should issue a destructive reset. Either a destructive reset is not occurring, or variable is wrongly placed.  3. Is there any additional MC_RGM/SBAF configuration that I am missing? No. For Functional Reset Escalation, simply setting FRET should suffice.  2. SRAM retention after functional and destructive reset 1. Could you please clarify whether this SRAM behavior is expected on the S32K312, and whether my SRAM test region may be located in a memory area that is retained even across a destructive reset? This should not be the case. All SRAM content is lost after a destructive reset event. Can you share how exactly are you testing the direct software destructive reset? From your project, if you are using Power_Ip_PerformReset() API, it is configured as functional reset, not destructive. Julin_AragnM_0-1788891886849.pngJulin_AragnM_0-1788891886849.png Actually, I tested this by saving the values and share them through UART, where FRDM-A-S32K312, issues a functional reset through SW2, FRET is set to 15, and after 15 SW functional resets, I can see MCU_MC_RGM_FRE_RESET being generated. This is in RTD 6.0.0, please see my log below: [RESET] Reason : MCU_F_EXR_RESET (RGM_FES F_FR0) [RESET] FRE Counter: 0 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 1 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 2 [RESET] Reason : MCU_SW_DEST_RESET (RGM_DES F_DR29) [RESET] FRE Counter: 0 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 1 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 2 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 3 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 4 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 5 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 6 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 7 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 8 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 9 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 10 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 11 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 12 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 13 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 14 [RESET] Reason : MCU_MC_RGM_FRE_RESET (RGM_DES F_DR6) [RESET] FRE Counter: 0 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 1 In RTD 7.0.1, I can see the same behavior you mention (from FRE not asserting destructive reset, to debugger disconnecting): [RESET] Reason : MCU_SW_DEST_RESET (RGM_DES F_DR29) [RESET] FRE Counter: 0 [RESET] Reason : MCU_SW_DEST_RESET (RGM_DES F_DR29) [RESET] FRE Counter: 0 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 1 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 2 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 3 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 4 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 5 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 6 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 7 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 8 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 9 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 10 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 11 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 12 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 13 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 14 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 0 This leads me to believe that there are some differences in Power driver between RTD 6.0.0 & RTD 7.0.1 which leads to these symptoms. I have not been able to pinpoint if this is an issue with configuration, or a bug, please give me some time to analyze and contact the internal team if needed. Best regards, Julián
View full article
KW47:WDOG 等待/停止模式与电源模式(睡眠/深度睡眠)之间的关系 你好, 我正在阅读 KW47 参考手册,但我对 WDOG 低功耗模式和系统电源模式之间的关系感到困惑。 在 WDOG 章节中,控制和状态寄存器包含以下位: - 等待: “使 WDOG 在芯片处于等待模式时也能运行。” - 停止: “使 WDOG 在芯片处于停止模式时也能运行。” WDOG章节还指出: - 在停止模式下,选定的 WDOG 时钟源必须保持活动状态。 - 对于调试模式和停止模式,必须使用总线时钟以外的时钟源。 另一方面,“电源模式”章节描述了: 睡眠模式: CPU执行已停止。 - 核心时钟已关闭 系统时钟和总线时钟可能会继续运行 深度睡眠模式: - 核心时钟已关闭 系统时钟已关闭 总线时钟已关闭 基于以上描述,可以合理地解释如下: - 等待模式 ≈ 睡眠模式 - 停止模式 ≈ 深度睡眠模式 然而,我尚未在参考手册中找到任何明确说明来证实这种映射关系。 我的问题是: 1. WDOG 等待模式是否对应于 KW47 的电源模式睡眠模式? 2. WDOG 停止模式是否对应于 KW47 的电源模式深度睡眠模式? 3. 或者说,Wait/Stop WDOG 是 CPU 特有的状态,与 SoC 电源模式不同? 4. 是否有参考手册章节或应用笔记明确描述了这种关系? 感谢您的帮助。 Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) 你好,希望你一切都好。   KW47 参考手册中使用的术语与将 WDOG 控制寄存器中的 WAIT 和 STOP 字段解释为对芯片/内核低功耗状态的引用,而不是对 WDOG 特定 CPU 状态的引用是一致的。我会将这种关系描述为功能对应,而不是严格的等价关系。 从这个意义上讲,WDOG WAIT 对应于等待/睡眠类条件,其中 CPU 执行停止,但系统和总线时钟可能仍然可用。WDOG STOP 对应于停止/深度睡眠类条件,其中内核、系统和总线时钟被门控,看门狗只有在配置为使用在该模式下保持活动的时钟源时才能继续工作。   此致, 索菲亚。 Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) 你好,索菲亚, 感谢您之前的解释。 根据您的回复,我的理解是: - WDOG WAIT 对应于等待/睡眠类低功耗状态。 - WDOG STOP 对应于停止/深度睡眠级别的低功耗状态。 - 这种关系是一种功能对应关系,而不是严格的一对一映射关系。 再次查阅KW47参考手册后,我发现了以下章节: 28.4 模块在低电源模式下的运行 表 225:Cortex M33 核心模块在低电源模式下的运行情况 对于 WDOGx,表格显示: - 睡眠:开启 - 深度睡眠:可选 - 关机:可选 深度关机:关闭 从这张表中,我了解到 WDOG 操作至少可以在深度睡眠和关机模式下配置。 为了更好地了解其行为,我使用 KW47-Loc 评估板进行了测试。 测试条件: - 已启用 WDOG - WDOG 刷新由 vApplicationIdleHook() 执行 - PWR_EnterLowPower() 由 FreeRTOS vPortSuppressTicksAndSleep() 执行 - 观察进入低功耗状态后是否发生看门狗复位 测试结果: 案例 1 等待=0,停止=0 → 未发生看门狗RESET 案例 2 等待=1,停止=0 → 看门狗复位发生 案例3 等待=0,停止=1 → 未发生看门狗复位 我的理解是,当看门狗复位时,设备进入低功耗状态,vApplicationIdleHook() 不再执行,而看门狗继续运行,最终超时。 但是,只有当 WAIT=1 且 STOP=0 时才会发生看门狗 RESET,而当 STOP=1 时则不会发生看门狗 RESET。 由于这个结果,我很难理解在低功耗电源模式下,WAIT 和 STOP 位是如何实际应用于看门狗操作的。 请您澄清以下几点? 1.当设备通过 PWR_EnterLowPower() 进入低功耗模式时,WDOG 操作是由 WAIT 位控制还是由 STOP 位控制? 2. 观察到的结果表明设备实际上进入了睡眠模式而不是深度睡眠模式,还是应该解释为进入了深度睡眠模式? 3. STOP 位是否对应于电源模式章节中描述的深度睡眠模式,还是指不同的低功耗状态? 4. 表 225 中的下列条目应该如何解释与 WDOG WAIT 和 STOP 控制位相关的内容? - WDOGx:可选的(深度睡眠) - WDOGx:可选的(掉电) 感谢您的支持。 Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) @sofiaurueta 我进行了一些额外的测试,并将我的发现更新到了上面的帖子中。 请问我的理解是否正确? 谢谢! Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) @hyama你好,很抱歉回复晚了。   您是否使用 SDK 中的示例进行测试?您如何确认设备已进入深度睡眠模式? 根据你描述的情况,设备可能只是进入了睡眠模式。如果设备进入深度睡眠状态,结果则相反:STOP=1(情况 3)应该会导致超时,而 WAIT=1(情况 2)应该不会产生任何影响。WAIT=1 触发 RESET 这一事实表明设备进入了睡眠模式,而不是深度睡眠模式。   回答您的问题: 1.当设备通过 PWR_EnterLowPower() 进入低功耗模式时,WDOG 操作是由 WAIT 位控制还是由 STOP 位控制? CS[WAIT] 和 CS[STOP] 是独立模式的独立控制,其中 CS[WAIT] 控制睡眠模式下的 WDOG 操作,CS[STOP] 控制深度睡眠模式下的 WDOG 操作。 如果设备进入睡眠模式,则 CS[WAIT] 为活动控制。CS[STOP] 在这里不起作用,因为没有进入深度睡眠状态。如果设备配置为进入深度睡眠状态,则 CS[STOP] 将是活动控制。   2. 观察到的结果表明设备实际上进入了睡眠模式而不是深度睡眠模式,还是应该解释为进入了深度睡眠模式? 结果与进入睡眠模式相符,与深度睡眠不符。根据三个测试用例,系统进入睡眠模式。   3. STOP 位是否对应于电源模式章节中描述的深度睡眠模式,还是指不同的低功耗状态? 根据文档,CS[STOP] 对应于深度睡眠,测试中观察到的行为与此一致(假设没有进入深度睡眠)。   4. 表 225 中的下列条目应该如何解释与 WDOG WAIT 和 STOP 控制位相关的内容? 对于深度睡眠,“可选”意味着如果 CS[STOP]=1 并且配置了总线时钟以外的时钟源,则 WDOG 可以在深度睡眠中运行。对于调试模式和停止模式,必须使用总线时钟以外的时钟源。使用总线时钟,看门狗在架构上可以“启用”,但它的时钟就消失了,除非选择不同的时钟源,例如 32K_CLK。 此致, 索菲亚。
View full article
88W8887 射频合规性测试 亲爱的, 我们使用的是基于 88W8887 芯片组的 wifi/蓝牙模块。为了确保产品符合规范,我们需要进行多项射频测试(tx 连续数据包、rx 模式等)。对于另一个模块 88W8997,我们遵循了以下应用节点:AN14114。然而,该应用笔记并未提及支持88W8887。 该应用笔记使用了mwifiex驱动程序。查看代码可知,驱动程序应该支持 88W8887。遗憾的是,该驱动程序需要固件文件sd8887_wlan_a2.bin,但我们未能找到该文件。 在 88W8887 上运行 RF 测试(类似于 AN 中描述的方法)的推荐方法是什么?NXP 是否仍然支持这种使用场景? 此致敬礼, 吉
View full article
IMXRT1176 Application Crashed , Later IMXRT doesnot boot Hi, I am using IMXRT1176 custom board, during application and secondary bootloader development , my application crashed and later im unable to flash my application. I tried entering serial downloader mode and then erasing the FLEXSPI NOR Flash, even then it displays  "Flash Driver V.2 startup failed - rc Ef(55): Dynamic flash driver startup failed to provide flash parameters. Terminate (0x0, 0x0, 0x0) status 0x40 - driver reports init failure - EXTSPIJ driver rc 20107 (0x4E8B) chip initialization failed - Ef(55): Dynamic flash driver startup failed to provide flash parameters. failed to initialize flash driver MIMXRT1170_SFDP_QSPI.cfx##" I tried connecting NXP boot Utility to MCU through USB and go this log. "--------MCU Device ROM Info-------- Unique ID[31:00] = 0x8295ad77 Unique ID[63:32] = 0x242cc80e Current Version = K3.0.1 Target Version = T3.0.0 Life Cycle status = HAB Open --------MCU Flashloader Info------- Current Version = K2.8.0 Target Version = T1.0.1 --------MCU device eFusemap-------- (0x940) SYSBT_CFG0 = 0x0 (0x950) SYSBT_CFG1 = 0x0 (0x960) SYSBT_CFG2 = 0x8 BT_FUSE_SEL = 1'b0 When BMOD[1:0] = 2'b00 (Boot From Fuses), no app in boot device, MCU enters serial downloader mode directly When BMOD[1:0] = 2'b10 (Internal Boot), MCU boots app according to both BOOT_CFGx pins and Fuse BOOT_CFGx ----------FlexRAM memory----------- IOMUXC_GPR->GPR16 = -------- --------MCU Device ROM Info-------- Unique ID[31:00] = 0x8295ad77 Unique ID[63:32] = 0x242cc80e Current Version = K3.0.1 Target Version = T3.0.0 Life Cycle status = HAB Open --------MCU Flashloader Info------- Current Version = K2.8.0 Target Version = T1.0.1 --------MCU device eFusemap-------- (0x940) SYSBT_CFG0 = 0x0 (0x950) SYSBT_CFG1 = 0x0 (0x960) SYSBT_CFG2 = 0x8 BT_FUSE_SEL = 1'b0 When BMOD[1:0] = 2'b00 (Boot From Fuses), no app in boot device, MCU enters serial downloader mode directly When BMOD[1:0] = 2'b10 (Internal Boot), MCU boots app according to both BOOT_CFGx pins and Fuse BOOT_CFGx ----------FlexRAM memory----------- IOMUXC_GPR->GPR16 = -------- --------MCU Device ROM Info-------- Unique ID[31:00] = 0x8295ad77 Unique ID[63:32] = 0x242cc80e Current Version = K3.0.1 Target Version = T3.0.0 Life Cycle status = HAB Open --------MCU Flashloader Info------- Current Version = K2.8.0 Target Version = T1.0.1 --------MCU device eFusemap-------- (0x940) SYSBT_CFG0 = 0x0 (0x950) SYSBT_CFG1 = 0x0 (0x960) SYSBT_CFG2 = 0x8 BT_FUSE_SEL = 1'b0 When BMOD[1:0] = 2'b00 (Boot From Fuses), no app in boot device, MCU enters serial downloader mode directly When BMOD[1:0] = 2'b10 (Internal Boot), MCU boots app according to both BOOT_CFGx pins and Fuse BOOT_CFGx ----------FlexRAM memory----------- IOMUXC_GPR->GPR16 = -------- --------MCU Device ROM Info-------- Unique ID[31:00] = 0x8295ad77 Unique ID[63:32] = 0x242cc80e Current Version = K3.0.1 Target Version = T3.0.0 Life Cycle status = HAB Open --------MCU Flashloader Info------- Current Version = K2.8.0 Target Version = T1.0.1 --------MCU device eFusemap-------- (0x940) SYSBT_CFG0 = 0x0 (0x950) SYSBT_CFG1 = 0x0 (0x960) SYSBT_CFG2 = 0x8 BT_FUSE_SEL = 1'b0 When BMOD[1:0] = 2'b00 (Boot From Fuses), no app in boot device, MCU enters serial downloader mode directly When BMOD[1:0] = 2'b10 (Internal Boot), MCU boots app according to both BOOT_CFGx pins and Fuse BOOT_CFGx ----------FlexRAM memory----------- IOMUXC_GPR->GPR16 = --------" It says "MCU has entered Flash loader but failed to configure external memory, Please reset board and set proper boot device and try again" My NOR Flash is W25Q32JV Quad SPI. Kindly help me in this regard. Thank you, Nagendra Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot Hi @Gavin_Jia , Thanks for your response. 1. I ran the example from RAM and i am getting the ID as 0. 2. Flash is connected to FlexSPI A  FlexSPI1 signal RT1176 ball/pad name FLEXSPI1_A_SCLK GPIO_SD_B2_07 FLEXSPI1_A_DATA0 GPIO_SD_B2_08 FLEXSPI1_A_DATA1 GPIO_SD_B2_09 FLEXSPI1_A_DATA2 GPIO_SD_B2_10 FLEXSPI1_A_DATA3 GPIO_SD_B2_11 FLEXSPI1_A_SS0_B GPIO_SD_B1_06 This board used to work with our application and i used it for implementing secondary bootloader for our application by using the flexspi example by erasing and programming the flash and during that time application hung and from then im unable to flash it.  Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot Hi @Nagendra_Kumar , The log shows the MCU, ROM and Flashloader are all fine (HAB Open, serial downloader connects). The failure is at FlexSPI–to–W25Q32JV initialization: the tools can't even read the SFDP parameters, so this is a board/config issue, not the flashing tool. Since a new flash also fails, please check in this order: First run the flexspi_nor_polling_transfer_cm7 example from internal RAM and read the JEDEC ID of the W25Q32JV. If the ID can't be read, it confirms a hardware/pin issue — don't focus on the flashing tool yet. Confirm which FlexSPI instance / pin group the flash is on. The default .cfx and MCUBootUtility assume FlexSPI1 Port A (EVK wiring). If yours is on FlexSPI2 or FlexSPI1 secondary, modify the pin-group field in option0 and burn the FLEXSPI_PIN_GROUP_SEL fuse (address 0x9A0[10]); in MCUBootUtility select the matching instance explicitly. Consider using the Secure Provisioning Tool (SPT), which has built-in FCB templates for the W25Q family and a Boot Memory Configuration feature to validate the setup first. Also, please confirm: has this board ever been successfully programmed and booted from the W25Q32JV before?  Best regards, Gavin Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot Hi, I forgot to mention, i even changed the NOR flash with a new part. Still the error remains.
View full article
Guider 1.10.1 crashes during operation. It's a Windows 11 computer, and the app keeps crashing randomly during the image pasting process. Sometimes it crashes very quickly, and sometimes it takes a little longer; there's no pattern to it. 回复: guider1.10.1闪退,在操作过程中会闪退 Hi @shier  Thank you for the information. GUI Guider v1.10.1 is an older release and may have compatibility or stability issues on Windows 11. We recommend upgrading to the latest GUI Guider v2.0.1 and checking whether the issue can be reproduced in the newer version.  If the crash still occurs with GUI Guider v2.0.1, please let us know and provide any crash logs, screenshots, or steps to reproduce the issue so that we can investigate further. BR Harry
View full article
88W8887 RF compliance testing Dear,  We are using a wifi/bluetooth module based on the 88W8887 chipset. For product compliance, we need to do a number of RF testing (tx continious packets, rx mode etc.). For another module 88W8997, we have followed the following application node: AN14114. However, the application note does not mention the 88W8887 as supported.  The application notes uses mwifiex driver. Looking at the code, the 88W8887 should be supported by the driver. Unfortunately, the driver requires a firmware file sd8887_wlan_a2.bin which we were not able to find.  What is the recommended way to run RF tests (similar as described in the AN) on the 88W8887? Does NXP still support this usecase? Kind regards, Yoshi 
View full article
guider1.10.1闪退,在操作过程中会闪退 是win11的电脑,贴图操作过程中随机闪退,有的时候很快闪退有的时候时间长一点再闪退,没有规律 回复: guider1.10.1闪退,在操作过程中会闪退 嗨@shier 谢谢你提供的信息。 GUI Guider v1.10.1 是一个较旧的版本,在 Windows 11 上可能存在兼容性或稳定性问题。 我们建议您升级到最新的 GUI Guider v2.0.1 版本,并检查该问题是否在新版本中仍然存在。 如果使用 GUI Guider v2.0.1 时仍然出现崩溃,请与我们联系并提供任何崩溃日志、屏幕截图或重现问题的步骤,以便我们进一步调查。 BR 哈里
View full article
AN15075 パッチは適用できません 比較的新しいユーザーマニュアルAN15075ファイル0001-add-AHAB-check-for-imxに言及しています remote-proc-process.patch AN15075SW.zipで見つけました。 このパッチファイルは以下の3行を適用します。 +#ifdef CONFIG_IMX_REMOTEPROC_AHAB +#include +#include +#endif に Linux-IMXからのdrivers/remoteproc/imx_rproc.c しかし、ファイル linux/firmware/imx/se_fw_inc.h存在しない(インターネット上のどこにも) そして、ファイル ele_base_msg はその場所には配置されていません。 Linux-imx lf-6.18.yのブランチ https://github.com/nxp-imx/linux-imx/tree/lf-6.18.y を担当しています 6.6や6.12でも見つけることができませんでした。 このパッチはどのバージョンのlinux-imxに適用すべきでしょうか? PSパッチを追加して無効にすると CONFIG_IMX_REMOTEPROC_AHAB Linux-imxもビルドしません。なぜなら、一部のコードが #ifdef で保護されているため、いくつかのプロパティが存在しなくなったからです。すべてではありません。 Re: AN15075 Patch can't be applied 当時実装したパッチは単なる概念実証に過ぎず、ソフトウェアチームはそれを上流リポジトリに統合することに同意しませんでした。 つまり、これは単なるリファレンス実装です。 その後の移植作業は継続されなかった。 Re: AN15075 Patch can't be applied Yocto Wrynose(Linux 6.18対応)のパッチはNXPで何か変更されますか? Re: AN15075 Patch can't be applied AN15075SWのカーネルパッチをlf-6.6.36-2.1.0に適用する/ BSP lf-6.6.36 。 $ git clone https://github.com/nxp-imx/linux-imx.git      $ git checkout -b lf-6.6.36-2.1.0lf-6.6.36-2.1.0 lf-6.18.y にそのまま適用できるとは期待しないでください。前方移植が必要です。 前方移植を行う場合は、インクルードパスとKconfigガードの両方を修正してください。あなたのPSは部分的なガードバグと一致しています。CONFIG_IMX_REMOTEPROC_AHABを無効にすると、既存のリモートプロシージャパスが構築可能になるはずですが、ANパッチでは、#ifdef CONFIG_IMX_REMOTEPROC_AHAB内でのみ導入された定義またはフィールドに依存する非AHABコードが残っているようです。 Re: AN15075 Patch can't be applied さらに調べてみました: このパッチでは以下のファイルが追加されるようです:[PATCH v4 6/7] firmware: imx: add ドライバ for NXP EdgeLock Enclave しかし、このコミットでは異なる方法で再適用されました:LF-13910: firmware: imx: add ドライバ for NXP EdgeLock Enclave · nxp-imx/Linux@0eff402 Re: AN15075 Patch can't be applied リモートプロシージャコードを修正してELEファームウェアを使用するようにすることは、セカンドコアでAHABを有効にするための推奨される方法でしょうか?
View full article
LSDK 21.08 OP-TEE 导致启动失败 使用 LS1043AE 的定制板无需 OP-TEE 即可正常安全启动。尝试将 OP-TEE 引入系统和控制台输出时,卡在以下位置: 注意:2 GB DDR4,32 位,CL=11,ECC 关闭 注意:BL2:v2.4(版本):LSDK-21.08-1-ga08bfddba-dirty 通知:BL2:构建时间:2026年8月31日 22:39:20 注意:正在初始化和配置 高效密码学标准(SEC) 模块。 注意:高效密码学标准\(SEC\) 已初始化并配置完成。 注意:正在验证 RSA 注意:正在验证哈希值 注意:正在验证 RSA 注意:正在验证哈希值 注意:正在验证 RSA 注意:正在验证哈希值 注意:BL2:正在启动 BL31 注意:BL31:v2.4(发布版):LSDK-21.08-1-ga08bfddba-dirty 通知:BL31:版本:2026年8月31日 22:39:48 通知:欢迎来到 ls1043aerb BL31 阶段 根据谷歌/Gemini的说法,他们认为GIC存在问题。ATF 和 OP-TEE 似乎使用的是 64k 页对齐,但在 uboot dts 中却是 4k 页对齐。我不认为这是个问题,或者至少目前还不是。因为它似乎根本没有初始化 OP-TEE。 有什么想法? QorIQ LS1设备 Re: LSDK 21.08 OP-TEE breaks boot 你的 u-boot 似乎有问题。 请问您能否尝试在启用 OPTEE 的情况下,启动普通的 u-boot(非安全模式)? Re: LSDK 21.08 OP-TEE breaks boot 我不介意尝试一下,但是这个测试的目的是什么呢?你目前认为uboot可能存在什么问题?既然不用 optee 也能正常工作,我很好奇可能出了什么问题,或者我应该检查哪些方面? Re: LSDK 21.08 OP-TEE breaks boot 我首先会检查以下内容: 以调试模式重建 TF-A,并确认确切的停止点。 如果可行,请使用 DEBUG=1 LOG_LEVEL=50,或者在早期 BL31 平台代码中添加 NOTICE() 面包屑: 平台设置条目 GIC 初始化 TZC/TZASC/TZPC 设置 安全有效载荷调度器/OP-TEE 设置 BL32入口点准备 NXP 对类似 LS1043A 挂起问题的指导是添加 ATF/U-Boot 调试打印或使用 CodeWarrior/JTAG 检查执行卡在哪里。 确认 FIP 确实包含 BL32,并且 BL31 是使用 OP-TEE 支持构建的。 对于 TF-A 中的 OP-TEE,构建必须包含 SPD=opteed 和 BL32= ;对于安全启动/NXP CoT,安全 TF-A 构建流程还包括 TRUSTED_BOARD_BOOT=1、CST_DIR=...、BL32=$TEE_BIN、SPD=opteed 和 BL33=$UBOOT_SECURE_BIN。 运行类似这样的命令: fiptool info fip.bin 并确认 BL31、BL32/OP-TEE 和 BL33 都存在。如果 BL32 缺失或 BL31 没有使用 SPD=opteed 构建,则永远不会输入 OP-TEE。 检查 LS1043A 安全启动保留内存处理。 据报道,LS1043A 的安全启动问题已通过将 plat/nxp/soc-ls1043a/soc.def NXP_ROM_RSVD 的值从 0x5900 改为 0x8000 得到修复。既然您已经启用了安全启动,现在又添加了另一个已签名的 FIP 组件,那么就值得尽早检查一下。这比后来的 U-Boot DTS GIC 对齐问题更合理。 不要以为“RSA/哈希已验证”就意味着图像布局良好。 您的 BL2 日志证明其验证的组件的身份验证已成功,但并未证明运行时地址、保留内存重叠、BL32 加载地址或 BL31 安全有效载荷配置是否正确。BL2 的文档记录显示,在将控制权交给 BL31 之前,它会在验证后将 BL31/BL32/BL33 加载到 DDR。 如果挂起转移到 BL31:正在初始化 BL32,则将焦点转移到 OP-TEE 本身。 在后期阶段,我会查看 OP-TEE 加载地址、安全 DDR 分区、寻呼机/非寻呼机布局、CAAM/高效密码学标准(SEC) 配置和 OP-TEE 控制台。NXP 在相关的 OP-TEE/加密上下文中提供了指导,当怀疑 OP-TEE 加密初始化过早时,可以尝试使用 CFG_NXP_CAAM=n 和 CFG_CRYPTO_DRIVER=n 禁用 OP-TEE 中的加密/CAAM 功能。但您当前的日志尚不能证明 OP-TEE 正在被输入。 我最强烈的假设是:启用 OP-TEE 时,BL31 的构建/配置有所不同,并且在 OP-TEE 横幅或 BL32 条目之前,BL31 平台/SPD 设置早期阶段会卡住。我首先会在 GIC/平台设置周围对 BL31 进行插桩,并验证 FIP/SPD=opteed/BL32=tee.bin/secure-boot CSF 布局,然后检查 LS1043A NXP_ROM_RSVD=0x8000 问题。 Re: LSDK 21.08 OP-TEE breaks boot 所以我用调试模式编译了 atf,在程序静默挂起之前看到的最后一条信息是: 信息:BL31:正在初始化 BL32 所以如果我理解你的建议没错的话,我现在应该重点关注 OP-TEE,对吗? Re: LSDK 21.08 OP-TEE breaks boot 是的,请先使用正常启动(非安全启动)验证 OP-TEE,以确保您的 OP-TEE 构建和部署过程没有问题。 Re: LSDK 21.08 OP-TEE breaks boot 我相信我之前用错了 tee.bin 文件。 我之前使用的是手动构建 OP-TEE 时生成的 tee.bin 文件,而不是我需要生成的 objcopy 版本。这样似乎可以启动系统并进入 Linux 系统。 我还有一些关于 optee 的内核日志消息需要查看,但由于这个问题已经解决,我将关闭此帖。
View full article