<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>S32K中的主题 Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention</title>
    <link>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2412161#M60939</link>
    <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/265997"&gt;@Sharif417&lt;/a&gt;,&lt;/P&gt;
&lt;H3 id="toc-hId-2055902839"&gt;1. SWT0 functional reset escalation&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;1. Why am I not observing&amp;nbsp;DES[MC_RGM_FRE] = 1&amp;nbsp;after the 15th SWT0 functional reset?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;As I've mentioned, Power_Ip_Init() API clears DES register, meaning you should read reset reason through&amp;nbsp;&lt;SPAN&gt;Power_Ip_GetResetReason() instead.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2. After&amp;nbsp;FREC&amp;nbsp;reaches&amp;nbsp;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?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;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.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;3. Is there any additional MC_RGM/SBAF configuration that I am missing?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;No. For Functional Reset Escalation, simply setting FRET should suffice.&amp;nbsp;&lt;/P&gt;
&lt;H3 id="toc-hId-248448376"&gt;2. SRAM retention after functional and destructive reset&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;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?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This should not be the case. All SRAM content is lost after a destructive reset event.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Can you share how exactly are you testing the direct software destructive reset?&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;From your project, if you are using&amp;nbsp;Power_Ip_PerformReset() API, it is configured as&amp;nbsp;&lt;STRONG&gt;functional&lt;/STRONG&gt; reset, &lt;STRONG&gt;not destructive&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Julin_AragnM_0-1788891886849.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/396111i468FA57C5B574443/image-size/large?v=v2&amp;amp;px=999" role="button" title="Julin_AragnM_0-1788891886849.png" alt="Julin_AragnM_0-1788891886849.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;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: &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;[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&lt;/LI-CODE&gt;
&lt;P&gt;In RTD 7.0.1, I can see the same behavior you mention (from FRE not asserting destructive reset, to debugger disconnecting):&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;[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&lt;/LI-CODE&gt;
&lt;P&gt;This leads me to believe that there are some differences in Power driver between RTD 6.0.0 &amp;amp; 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.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;Julián&lt;/P&gt;</description>
    <pubDate>Tue, 08 Sep 2026 21:41:51 GMT</pubDate>
    <dc:creator>Julián_AragónM</dc:creator>
    <dc:date>2026-09-08T21:41:51Z</dc:date>
    <item>
      <title>S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention</title>
      <link>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2411730#M60912</link>
      <description>&lt;P&gt;Hello NXP Team,&lt;/P&gt;&lt;P&gt;I am working with an S32K312 Cortex-M7 using S32 Design Studio and AUTOSAR RTD 7.0.1 / AUTOSAR 4.9.&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;1.&lt;STRONG&gt; SWT0 functional reset escalation&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I am using SWT0 timeout to generate functional resets.&lt;/P&gt;&lt;P&gt;My MC_RGM configuration is:&lt;/P&gt;&lt;P&gt;MC_RGM_FRET_FRET((uint32)15U),&lt;BR /&gt;MC_RGM_DRET_DRET((uint32)0U)&lt;/P&gt;&lt;P&gt;I observe the functional reset counter increasing:&lt;/P&gt;&lt;P&gt;SWT0 functional reset #1 -&amp;gt; FREC = 1&lt;BR /&gt;SWT0 functional reset #2 -&amp;gt; FREC = 2&lt;BR /&gt;...&lt;BR /&gt;SWT0 functional reset #14 -&amp;gt; FREC = 14&lt;/P&gt;&lt;P&gt;After the next SWT0 reset, FREC is cleared/reset, but I do not observe the expected:&lt;/P&gt;&lt;P&gt;DES[MC_RGM_FRE] = 1&lt;/P&gt;&lt;P&gt;My questions are:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Does SWT0_RST participate in the MC_RGM functional reset escalation counter (FREC) on S32K312?&lt;/LI&gt;&lt;LI&gt;When FREC reaches FRET = 15, should MC_RGM_FRE be generated and should DES[MC_RGM_FRE] be set?&lt;/LI&gt;&lt;LI&gt;What exact values should I expect for FES, DES, FREC, FRET, Power_Ip_GetResetReason() immediately after the escalation?&lt;/LI&gt;&lt;LI&gt;Is any additional configuration required for SWT0 to participate in FRET escalation?&lt;/LI&gt;&lt;LI&gt;Can SBAF/recovery handling interfere with FRET escalation?&lt;/LI&gt;&lt;LI&gt;Is there any known erratum or known S32K312 behavior related to SWT0/FRET escalation?&lt;/LI&gt;&lt;LI&gt;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.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;2.&lt;STRONG&gt; I want every SWT0 functional reset to become destructive&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;For testing purposes, I would also like to achieve:&lt;/P&gt;&lt;P&gt;SWT0 timeout&lt;BR /&gt;↓&lt;BR /&gt;Functional reset&lt;BR /&gt;↓&lt;BR /&gt;Immediate destructive reset&lt;/P&gt;&lt;P&gt;instead of waiting for 15 functional resets.&lt;/P&gt;&lt;P&gt;Can this be achieved by configuring:&lt;/P&gt;&lt;P&gt;FRET = 1U;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Specifically:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Does FRET = 1 cause the first qualifying SWT0 functional reset to escalate to a destructive reset?&lt;/LI&gt;&lt;LI&gt;Is any additional MC_RGM configuration required?&lt;/LI&gt;&lt;LI&gt;Is SWT0 guaranteed to be a qualifying source for this escalation?&lt;/LI&gt;&lt;LI&gt;Can SBAF/recovery behavior affect this?&lt;/LI&gt;&lt;LI&gt;Is this supported directly through RTD 7.0.1 configuration?&lt;BR /&gt;3. &lt;STRONG&gt;SRAM data is cleared after every functional reset&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;According to my understanding of the S32K3xx Reference Manual, SRAM/system memory should be preserved across a functional reset.&lt;/P&gt;&lt;P&gt;I created an SRAM test variable:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#define SRAM_TEST_ADDR ((volatile uint32_t *)0x204007d4U)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;and use it to verify retention across functional resets.&lt;/P&gt;&lt;P&gt;However, I observe that the SRAM data is being cleared/re-written to zero after a functional reset.&lt;/P&gt;&lt;P&gt;My questions are:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Is SRAM preserved by the hardware during functional reset but overwritten afterward by software?&lt;/LI&gt;&lt;LI&gt;Which SRAM regions are guaranteed to retain their contents across functional reset on S32K312?&lt;/LI&gt;&lt;LI&gt;What is the recommended way to place a variable in SRAM so that its contents are retained across functional reset?&lt;/LI&gt;&lt;LI&gt;Should I use a dedicated .noinit or retained SRAM section?&lt;/LI&gt;&lt;LI&gt;Is there any specific MC_RGM/SRAM configuration required for retention?&lt;/LI&gt;&lt;LI&gt;What is the recommended RTD 7.0.1 method for retaining application data across functional reset?&lt;BR /&gt;&lt;STRONG&gt;4. Direct software destructive reset&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I am also testing a direct software destructive reset using the Power IP:&lt;/P&gt;&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;Power_Ip_Init(&amp;amp;Power_Ip_HwIPsConfigPB);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;gVar= Power_Ip_GetResetReason();&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;for (count = 0; count &amp;lt; 10125000; count++);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;Power_Ip_PerformReset(&amp;amp;Power_Ip_HwIPsConfigPB);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;My current MC_RGM configuration contains:&lt;/P&gt;&lt;P&gt;static const Power_Ip_MC_RGM_ConfigType Power_Ip_MC_RGM_ConfigPB =&lt;BR /&gt;{&lt;BR /&gt;(MCU_DEST_RESET),&lt;BR /&gt;...&lt;BR /&gt;MC_RGM_FRET_FRET((uint32)15U),&lt;BR /&gt;MC_RGM_DRET_DRET((uint32)0U)&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;The destructive reset occurs, but the debugger repeatedly loses and re-establishes communication.&lt;/P&gt;&lt;P&gt;I see messages such as:&lt;/P&gt;&lt;P&gt;INFO: DAP IDCODE = 0x6BA02477&lt;BR /&gt;INFO: DAP successfully powered up. DP CTRL/STAT = 0xF0000000&lt;/P&gt;&lt;P&gt;repeated multiple times, followed by:&lt;/P&gt;&lt;P&gt;Interrupt command received. Halting execution.&lt;/P&gt;&lt;P&gt;I would like to understand:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Is repeated DAP reconnection expected during a destructive reset?&lt;/LI&gt;&lt;LI&gt;What exactly happens to the Cortex-M7 during the destructive-reset sequence?&lt;/LI&gt;&lt;LI&gt;When does the CPU become available again after the destructive reset?&lt;/LI&gt;&lt;LI&gt;What is the recommended way to debug a single software destructive reset?&lt;BR /&gt;5. &lt;STRONG&gt;Breakpoint behavior before Power_Ip_PerformReset()&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I cannot reliably hit a breakpoint immediately before:&lt;/P&gt;&lt;P&gt;Power_Ip_PerformReset(&amp;amp;Power_Ip_HwIPsConfigPB);&lt;/P&gt;&lt;P&gt;I added a delay before the API, expecting the debugger to have enough time to gain access.&lt;/P&gt;&lt;P&gt;Sometimes the breakpoint is only reached after I manually pause the target and then resume execution.&lt;/P&gt;&lt;P&gt;I would like to understand:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Why can the debugger miss the breakpoint even though there is a delay before the reset API?&lt;/LI&gt;&lt;LI&gt;Is this related to the target repeatedly resetting and the debugger reconnecting through DAP?&lt;/LI&gt;&lt;LI&gt;Is there a recommended method for catching the CPU immediately before or immediately after a destructive reset?&lt;/LI&gt;&lt;LI&gt;Is the RTD DISABLE_DEBUGGER_TRAP option relevant to this behavior?&lt;BR /&gt;6.&lt;STRONG&gt; Power IP initialization and Power_Ip_SetMode()&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;My RTD provides:&lt;/P&gt;&lt;P&gt;void Power_Ip_Init(&lt;BR /&gt;const Power_Ip_HwIPsConfigType *HwIPsConfigPtr);&lt;/P&gt;&lt;P&gt;void Power_Ip_SetMode(const Power_Ip_ModeConfigType *ModeConfigPtr);&lt;/P&gt;&lt;P&gt;void Power_Ip_PerformReset(&lt;BR /&gt;const Power_Ip_HwIPsConfigType *HwIPsConfigPtr&lt;BR /&gt;);&lt;/P&gt;&lt;P&gt;Power_Ip_ResetType Power_Ip_GetResetReason(void);&lt;/P&gt;&lt;P&gt;Power_Ip_RawResetType Power_Ip_GetResetRawValue(void);&lt;/P&gt;&lt;P&gt;I currently use:&lt;/P&gt;&lt;P&gt;Power_Ip_Init(&amp;amp;Power_Ip_HwIPsConfigPB);&lt;/P&gt;&lt;P&gt;and:&lt;/P&gt;&lt;P&gt;gVar = Power_Ip_GetResetReason();&lt;/P&gt;&lt;P&gt;My mode configuration is POWER_IP_RUN_MODE.&lt;/P&gt;&lt;P&gt;I would like clarification on:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Is Power_Ip_Init(&amp;amp;Power_Ip_HwIPsConfigPB) the correct initialization before using the Power IP reset APIs?&lt;/LI&gt;&lt;LI&gt;Is Power_Ip_SetMode() required for software functional/destructive reset testing?&lt;/LI&gt;&lt;LI&gt;Since my selected mode is POWER_IP_RUN_MODE, can Power_Ip_SetMode() be omitted for this reset test?&lt;/LI&gt;&lt;LI&gt;How should I configure separate software functional-reset and software destructive-reset configurations using RTD 7.0.1?&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Environment&lt;BR /&gt;MCU: S32K312&lt;BR /&gt;Core: Cortex-M7&lt;BR /&gt;S32DS: S32 Design Studio&lt;BR /&gt;AUTOSAR: 4.9&lt;BR /&gt;RTD: 7.0.1&lt;BR /&gt;Reset source: SWT0&lt;BR /&gt;FRET: 15&lt;BR /&gt;DRET: 0&lt;/P&gt;&lt;P&gt;I can provide the complete test application, Power_Ip_PBcfg.c, linker configuration, MC_RGM register captures, and debugger logs if required.&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 07 Sep 2026 13:16:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2411730#M60912</guid>
      <dc:creator>Sharif417</dc:creator>
      <dc:date>2026-09-07T13:16:32Z</dc:date>
    </item>
    <item>
      <title>Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention</title>
      <link>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2411777#M60916</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/265997"&gt;@Sharif417&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;1. SWT0 functional reset escalation&lt;/STRONG&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;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".&lt;BR /&gt;&lt;BR /&gt;All functional reset sources that are not demoted (through MCRGM.FERD) qualify for incrementing FREC.&lt;BR /&gt;&lt;BR /&gt;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.&lt;BR /&gt;&lt;BR /&gt;Recovery Mode may affect this, if the threshold is &amp;gt;8, as Recovery Mode is set to '8' by default. sBAF also may interfere with &lt;/SPAN&gt;&lt;SPAN&gt;DRET, not FRET&lt;/SPAN&gt;&lt;SPAN&gt;. You can see it is changed to 0xF if it is '0':&lt;BR /&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Julin_AragnM_0-1788816978772.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/396035i1231F862A8CEEE02/image-size/large?v=v2&amp;amp;px=999" role="button" title="Julin_AragnM_0-1788816978772.png" alt="Julin_AragnM_0-1788816978772.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG style="font-family: inherit; font-size: 16px;"&gt;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.&lt;BR /&gt;&lt;/STRONG&gt;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?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2. I want every SWT0 functional reset to become destructive&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN&gt;Yes, FRET=1 is enough for &lt;/SPAN&gt;&lt;SPAN&gt;every functional reset&lt;/SPAN&gt;&lt;SPAN&gt; to issue a destructive reset.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;No additional MC_RGM necessary.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;sBAF/Recovery Mode should not affect this.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Yes, you can configure it directly in POWER module &lt;/SPAN&gt;&lt;SPAN&gt;-&amp;gt; "Module Configuration" -&amp;gt; "McuResetConfig" -&amp;gt; "Functional Reset Escalation Threshold"&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;3. SRAM data is cleared after every functional reset&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN&gt;Correct, SRAM is preserved after functional reset.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Depending on the derivative, S32K3 may provide 16KB, 32KB or up to 64KB for Standby RAM.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;You can find some examples on how to place and use a variable through Standby RAM:&lt;/SPAN&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;A href="https://community.nxp.com/t5/S32K-Knowledge-Base/RTD600-MCAL-amp-IP-S32K3-Low-Power-Management-AN-and-demos/ta-p/1993152" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;[RTD600 MCAL &amp;amp; IP] S32K3 Low Power Management AN and demos&lt;/SPAN&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://community.nxp.com/t5/S32K-Knowledge-Base/S32K3-Low-Power-Management-AN-and-demos/ta-p/1527724" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;S32K3 Low Power Management AN and demos&lt;/SPAN&gt;&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K312-Standby-mode-amp-Standby-RAM-and-PAD-keeping-DS3/ta-p/1797713" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;Example S32K312 Standby mode &amp;amp; Standby RAM and PAD keeping DS3.5 RTD300&lt;/SPAN&gt;&lt;/A&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;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: &lt;A style="font-family: inherit; font-size: 16px; background-color: #ffffff;" href="https://community.nxp.com/t5/S32K/S32K311-standby-ram-retention/td-p/2254888" target="_blank" rel="noopener"&gt;S32K311 standby ram retention&lt;/A&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;4. Direct software destructive reset&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN&gt;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. &lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;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.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Instead of trying to keep the connection, you can use the 'Attach to Target' option for the debugger:&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Julin_AragnM_1-1788817136992.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/396036iA7B17DB807934067/image-size/large?v=v2&amp;amp;px=999" role="button" title="Julin_AragnM_1-1788817136992.png" alt="Julin_AragnM_1-1788817136992.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;5. Breakpoint behavior before Power_Ip_PerformReset()&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN&gt;Most likely you are simply missing the window to reconnect. Instead of using a for() loop, you can simply use while(flag), where &lt;/SPAN&gt;&lt;SPAN&gt;flag&lt;/SPAN&gt;&lt;SPAN&gt; is a variable you will change manually after reconnecting with the debugger, through the 'Expressions' tab.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;6. Power IP initialization and Power_Ip_SetMode()&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN&gt;Yes, Power_Ip_Init() must be called before using the Power APIs.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;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).&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;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.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Please se A6.2.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN&gt;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:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Julin_AragnM_2-1788817284857.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/396037iE27A6B4585211CB5/image-size/large?v=v2&amp;amp;px=999" role="button" title="Julin_AragnM_2-1788817284857.png" alt="Julin_AragnM_2-1788817284857.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Best regards,&lt;BR /&gt;Julián&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 07 Sep 2026 21:41:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2411777#M60916</guid>
      <dc:creator>Julián_AragónM</dc:creator>
      <dc:date>2026-09-07T21:41:37Z</dc:date>
    </item>
    <item>
      <title>Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention</title>
      <link>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2411965#M60924</link>
      <description>&lt;P class=""&gt;Hello Julián,&lt;/P&gt;&lt;P&gt;Thank you for the clarification.&lt;/P&gt;&lt;P&gt;I have now repeated the tests on my S32K312 and would like to clarify two observations. I am attaching the &lt;STRONG&gt;complete project folder&lt;/STRONG&gt; so that you can review the configuration and reproduce the behavior.&lt;/P&gt;&lt;H3&gt;1. SWT0 functional reset escalation&lt;/H3&gt;&lt;P&gt;I configured:&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN class=""&gt;FRET&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;15U&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN class=""&gt;DRET&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;0U&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;and use &lt;STRONG&gt;SWT0 with a 125 ms timeout&lt;/STRONG&gt; to generate functional resets.&lt;/P&gt;&lt;P&gt;I can observe &lt;STRONG&gt;FREC&lt;/STRONG&gt; increasing after each functional reset:&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN&gt;SWT0 reset #1  -&amp;gt; FREC = 1
SWT0 reset #2  -&amp;gt; FREC = 2
...
SWT0 reset #14 -&amp;gt; FREC = 14&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;However, when the next SWT0 functional reset occurs and the &lt;STRONG&gt;FRET = 15&lt;/STRONG&gt; threshold is reached, I am &lt;STRONG&gt;not able to observe the expected destructive-reset status&lt;/STRONG&gt;:&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN&gt;DES[MC_RGM_FRE] = 1&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;I have disabled the recovery behavior using:&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN class=""&gt;IP_DCM_GPR&lt;/SPAN&gt;&lt;SPAN class=""&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;DCMRWP1&lt;/SPAN&gt; &lt;SPAN class=""&gt;|=&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN class=""&gt;3&lt;/SPAN&gt; &lt;SPAN class=""&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;22&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;Could you please review my attached project and clarify:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Why am I not observing &lt;STRONG&gt;DES[MC_RGM_FRE] = 1&lt;/STRONG&gt; after the 15th SWT0 functional reset?&lt;/LI&gt;&lt;LI&gt;After &lt;STRONG&gt;FREC&lt;/STRONG&gt; reaches &lt;STRONG&gt;FRET = 15&lt;/STRONG&gt;, should the MCU definitely enter a destructive reset? If a destructive reset occurs, why my SRAM contents is retained in my test partition ?&lt;/LI&gt;&lt;LI&gt;Is there any additional MC_RGM/SBAF configuration that I am missing?&lt;/LI&gt;&lt;/UL&gt;&lt;H3&gt;2. SRAM retention after functional and destructive reset&lt;/H3&gt;&lt;P&gt;I created a dedicated SRAM partition/section and stored test data in that region.&lt;/P&gt;&lt;P&gt;I have confirmed that the SRAM value is retained across the repeated &lt;STRONG&gt;SWT0 functional resets&lt;/STRONG&gt;, which is expected.&lt;/P&gt;&lt;P&gt;However, even after the &lt;STRONG&gt;15th functional reset&lt;/STRONG&gt;, where I expect FRET escalation to generate a destructive reset, the SRAM value still remains.&lt;/P&gt;&lt;P&gt;I also tested a &lt;STRONG&gt;direct software destructive reset&lt;/STRONG&gt;, and the SRAM value was still retained after that reset as well.&lt;/P&gt;&lt;P&gt;My observation is therefore:&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN&gt;SWT0 functional reset
        ↓
SRAM value retained

15th functional reset / expected FRET escalation
        ↓
SRAM value still retained

Direct software destructive reset
        ↓
SRAM value also retained&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;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?&lt;/P&gt;&lt;P&gt;I am attaching the &lt;STRONG&gt;complete S32K312 project folder&lt;/STRONG&gt;, 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.&lt;/P&gt;&lt;P&gt;Thank you for your support.&lt;/P&gt;</description>
      <pubDate>Tue, 08 Sep 2026 10:21:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2411965#M60924</guid>
      <dc:creator>Sharif417</dc:creator>
      <dc:date>2026-09-08T10:21:39Z</dc:date>
    </item>
    <item>
      <title>Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention</title>
      <link>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2412161#M60939</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/265997"&gt;@Sharif417&lt;/a&gt;,&lt;/P&gt;
&lt;H3 id="toc-hId-2055902839"&gt;1. SWT0 functional reset escalation&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;1. Why am I not observing&amp;nbsp;DES[MC_RGM_FRE] = 1&amp;nbsp;after the 15th SWT0 functional reset?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;As I've mentioned, Power_Ip_Init() API clears DES register, meaning you should read reset reason through&amp;nbsp;&lt;SPAN&gt;Power_Ip_GetResetReason() instead.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2. After&amp;nbsp;FREC&amp;nbsp;reaches&amp;nbsp;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?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;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.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;3. Is there any additional MC_RGM/SBAF configuration that I am missing?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;No. For Functional Reset Escalation, simply setting FRET should suffice.&amp;nbsp;&lt;/P&gt;
&lt;H3 id="toc-hId-248448376"&gt;2. SRAM retention after functional and destructive reset&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;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?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This should not be the case. All SRAM content is lost after a destructive reset event.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Can you share how exactly are you testing the direct software destructive reset?&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;From your project, if you are using&amp;nbsp;Power_Ip_PerformReset() API, it is configured as&amp;nbsp;&lt;STRONG&gt;functional&lt;/STRONG&gt; reset, &lt;STRONG&gt;not destructive&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Julin_AragnM_0-1788891886849.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/396111i468FA57C5B574443/image-size/large?v=v2&amp;amp;px=999" role="button" title="Julin_AragnM_0-1788891886849.png" alt="Julin_AragnM_0-1788891886849.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;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: &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;[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&lt;/LI-CODE&gt;
&lt;P&gt;In RTD 7.0.1, I can see the same behavior you mention (from FRE not asserting destructive reset, to debugger disconnecting):&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;[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&lt;/LI-CODE&gt;
&lt;P&gt;This leads me to believe that there are some differences in Power driver between RTD 6.0.0 &amp;amp; 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.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;Julián&lt;/P&gt;</description>
      <pubDate>Tue, 08 Sep 2026 21:41:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2412161#M60939</guid>
      <dc:creator>Julián_AragónM</dc:creator>
      <dc:date>2026-09-08T21:41:51Z</dc:date>
    </item>
    <item>
      <title>Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention</title>
      <link>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2412245#M60947</link>
      <description>&lt;P class=""&gt;Hello Julián,&lt;/P&gt;&lt;P&gt;Thank you for the clarification.&lt;/P&gt;&lt;P&gt;As requested, I have attached the ZIP file containing the &lt;STRONG&gt;software destructive-reset test code/project&lt;/STRONG&gt; that I am currently using.&lt;/P&gt;&lt;P&gt;Since you mentioned that the FRET escalation works correctly with &lt;STRONG&gt;RTD 6.0.0&lt;/STRONG&gt;, could you please share the &lt;STRONG&gt;working RTD 6.0.0 code/project&lt;/STRONG&gt; that you used for your test?&lt;/P&gt;&lt;P&gt;I would like to use your RTD 6.0.0 working code as a reference and compare it with my RTD 7.0.1 project to understand the difference in behavior.&lt;/P&gt;&lt;P&gt;Also, as you mentioned that you suspect there may be a &lt;STRONG&gt;difference or issue in the Power driver between RTD 6.0.0 and RTD 7.0.1&lt;/STRONG&gt;, could you please let me know your findings regarding the &lt;STRONG&gt;RTD 7.0.1 issue&lt;/STRONG&gt; once you have completed the analysis?&lt;/P&gt;&lt;P&gt;Thank you for your support.&lt;/P&gt;&lt;P&gt;Best regards,&lt;BR /&gt;Sharif&lt;/P&gt;</description>
      <pubDate>Wed, 09 Sep 2026 06:46:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2412245#M60947</guid>
      <dc:creator>Sharif417</dc:creator>
      <dc:date>2026-09-09T06:46:57Z</dc:date>
    </item>
    <item>
      <title>Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention</title>
      <link>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2412445#M60956</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/265997"&gt;@Sharif417&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;After going through the source code for Power_Ip driver, I can see a fix for Functional Reset Escalation Counter was applied in&amp;nbsp;Power_Ip_MC_RGM_GetResetReason() API, where a third clause was added, it also&amp;nbsp;enter FES if DES has bits set AND the FRET register currently reads non-zero.&lt;/P&gt;
&lt;P&gt;RTD 6.0.0:&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;/* If the fields of Destructive Event Status Register (DES) are set then the status of FES register must be ignored */
if (((uint32)0U == ActiveValue) || (MCU_POWER_ON_RESET == ResetReason))
{
...
}&lt;/LI-CODE&gt;
&lt;P&gt;RTD 7.0.1:&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;/* If the fields of Destructive Event Status Register (DES) are set then the status of FES register must be ignored */
/* If functional reset escalation to destructive reset is disabled, then the status of FES register must be ignored if the fields of Destructive Event Status Register (DES) other than DES[F_POR] are set. */
/* If functional reset escalation to destructive reset is enabled and if the fields of Destructive Event Status Register (DES), other than DES[F_POR], are set, then based on these fields user should check if the cause of the destructive reset was due to functional reset escalation or if it was triggered directly by a destructive reset source, in which case FES needs to be ignored */
if (((uint32)0U == ActiveValue) || (MCU_POWER_ON_RESET == ResetReason) || (((uint32)0U != DesResetStatus) &amp;amp;&amp;amp; ((uint32)0U != Power_Ip_pxMC_RGM-&amp;gt;FRET)))
{
...
}&lt;/LI-CODE&gt;
&lt;P&gt;This is why FES flag is overwritten. If I am correct, destructive reset is issued correctly by hardware, however, Reset module reports a functional reset instead. You can confirm this by reading the IP_MC_RGM-&amp;gt;DES register directly after the 15th functional reset:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Julin_AragnM_0-1788976448272.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/396177iF7028EFA336E92AD/image-size/large?v=v2&amp;amp;px=999" role="button" title="Julin_AragnM_0-1788976448272.png" alt="Julin_AragnM_0-1788976448272.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;I guess a valid approach could be to change the third clause to check if&amp;nbsp;MCU_MC_RGM_FRE_RESET event has already happened:&lt;/P&gt;
&lt;LI-CODE lang="c"&gt;/* -----------------------------------------------------------------------
 * Enter the FES block if:
 *   a) DES is empty (no destructive reset logged), OR
 *   b) DES has only the Power-On Reset bit, OR
 *   c) DES has bits set  AND  FRE escalation is configured (FRET != 0)
 *      AND the DES reason is NOT already MCU_MC_RGM_FRE_RESET
 * ----------------------------------------------------------------------- */
if (((uint32)0U == ActiveValue) ||
    (MCU_POWER_ON_RESET == ResetReason) ||
    (((uint32)0U != DesResetStatus) &amp;amp;&amp;amp;
     ((uint32)0U != Power_Ip_pxMC_RGM-&amp;gt;FRET) &amp;amp;&amp;amp;
     (MCU_MC_RGM_FRE_RESET != ResetReason)))&lt;/LI-CODE&gt;
&lt;P&gt;Keep in mind that modifying the RTD drivers is not supported, and the correct approach is to wait for an official fix from the SW team. I will flag this behavior with the internal team, and provide their feedback, if any. Thank you for pointing this issue out.&lt;/P&gt;
&lt;P&gt;Lastly, regarding your project, I can see you are issuing a reset through&amp;nbsp;&lt;SPAN&gt;Power_Ip_PerformReset(). As I've mentioned, you have 'Functional Reset' configured inside the Reset configuration, you must change it to 'Destructive Reset' in order to issue a Software Destructive Reset:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Julin_AragnM_2-1788976691375.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/396179iAC098B42BA4AC6E7/image-size/large?v=v2&amp;amp;px=999" role="button" title="Julin_AragnM_2-1788976691375.png" alt="Julin_AragnM_2-1788976691375.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;or add a ModeSettingConf structure, select DEST_RESET, and call Power_Ip_SetMode() instead:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Julin_AragnM_3-1788976695121.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/396180i6C986421079421FC/image-size/large?v=v2&amp;amp;px=999" role="button" title="Julin_AragnM_3-1788976695121.png" alt="Julin_AragnM_3-1788976695121.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;Julián&lt;/P&gt;</description>
      <pubDate>Wed, 09 Sep 2026 18:07:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2412445#M60956</guid>
      <dc:creator>Julián_AragónM</dc:creator>
      <dc:date>2026-09-09T18:07:33Z</dc:date>
    </item>
    <item>
      <title>Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention</title>
      <link>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2412587#M60961</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;SPAN&gt;Hello Julián,&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=""&gt;Based on your recommendation, I performed an additional test by directly reading the MC_RGM DES and FES registers, rather than relying only on Power_Ip_GetResetReason().&lt;/P&gt;&lt;P&gt;In this test, I configured the reset type as software functional reset with FRET = 15. After each software functional reset, the FREC counter increments. After the 15th software functional reset, I placed a breakpoint in main() before Clock_Ip_Init() and directly read the MC_RGM registers:&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN class=""&gt;volatile&lt;/SPAN&gt; &lt;SPAN class=""&gt;uint32_t&lt;/SPAN&gt; &lt;SPAN class=""&gt;regValueDes&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;0U&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN class=""&gt;volatile&lt;/SPAN&gt; &lt;SPAN class=""&gt;uint32_t&lt;/SPAN&gt; &lt;SPAN class=""&gt;regValueFes&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;0U&lt;/SPAN&gt;&lt;SPAN&gt;;

&lt;/SPAN&gt;&lt;SPAN class=""&gt;regValueDes&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;IP_MC_RGM&lt;/SPAN&gt;&lt;SPAN class=""&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;DES&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN class=""&gt;regValueFes&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;IP_MC_RGM&lt;/SPAN&gt;&lt;SPAN class=""&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;FES&lt;/SPAN&gt;&lt;SPAN&gt;;

&lt;/SPAN&gt;&lt;SPAN class=""&gt;gVar&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;Power_Ip_GetResetReason&lt;/SPAN&gt;&lt;SPAN&gt;();&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;The complete test code is as follows:&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;PRE&gt;&lt;SPAN class=""&gt;int&lt;/SPAN&gt; &lt;SPAN class=""&gt;main&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)
{
    &lt;/SPAN&gt;&lt;SPAN class=""&gt;volatile&lt;/SPAN&gt; &lt;SPAN class=""&gt;uint32_t&lt;/SPAN&gt; &lt;SPAN class=""&gt;regValueDes&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;0U&lt;/SPAN&gt;&lt;SPAN&gt;;
    &lt;/SPAN&gt;&lt;SPAN class=""&gt;volatile&lt;/SPAN&gt; &lt;SPAN class=""&gt;uint32_t&lt;/SPAN&gt; &lt;SPAN class=""&gt;regValueFes&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;0U&lt;/SPAN&gt;&lt;SPAN&gt;;

    &lt;/SPAN&gt;&lt;SPAN class=""&gt;regValueDes&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;IP_MC_RGM&lt;/SPAN&gt;&lt;SPAN class=""&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;DES&lt;/SPAN&gt;&lt;SPAN&gt;;
    &lt;/SPAN&gt;&lt;SPAN class=""&gt;regValueFes&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;IP_MC_RGM&lt;/SPAN&gt;&lt;SPAN class=""&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;FES&lt;/SPAN&gt;&lt;SPAN&gt;;

    &lt;/SPAN&gt;&lt;SPAN class=""&gt;gVar&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;Power_Ip_GetResetReason&lt;/SPAN&gt;&lt;SPAN&gt;();

    &lt;/SPAN&gt;&lt;SPAN class=""&gt;Clock_Ip_Init&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class=""&gt;Clock_Ip_aClockConfig&lt;/SPAN&gt;&lt;SPAN&gt;[&lt;/SPAN&gt;&lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;]);

    &lt;/SPAN&gt;&lt;SPAN class=""&gt;Siul2_Port_Ip_Init&lt;/SPAN&gt;&lt;SPAN&gt;(
        &lt;/SPAN&gt;&lt;SPAN class=""&gt;NUM_OF_CONFIGURED_PINS_PortContainer_0_BOARD_InitPeripherals&lt;/SPAN&gt;&lt;SPAN&gt;,
        &lt;/SPAN&gt;&lt;SPAN class=""&gt;g_pin_mux_000InitConfigArr_PortContainer_0_BOARD_InitPeripherals&lt;/SPAN&gt;&lt;SPAN&gt;);

    &lt;/SPAN&gt;&lt;SPAN class=""&gt;Power_Ip_Init&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class=""&gt;Power_Ip_HwIPsConfigPB&lt;/SPAN&gt;&lt;SPAN&gt;);
    &lt;/SPAN&gt;&lt;SPAN class=""&gt;gVar&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;Power_Ip_GetResetReason&lt;/SPAN&gt;&lt;SPAN&gt;();

    &lt;/SPAN&gt;&lt;SPAN class=""&gt;/* Disable recovery mode */&lt;/SPAN&gt;
    &lt;SPAN class=""&gt;IP_DCM_GPR&lt;/SPAN&gt;&lt;SPAN class=""&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN class=""&gt;DCMRWP1&lt;/SPAN&gt; &lt;SPAN class=""&gt;|=&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN class=""&gt;3&lt;/SPAN&gt; &lt;SPAN class=""&gt;&amp;lt;&amp;lt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;22&lt;/SPAN&gt;&lt;SPAN&gt;);

    &lt;/SPAN&gt;&lt;SPAN class=""&gt;for&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN class=""&gt;count&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN class=""&gt;count&lt;/SPAN&gt; &lt;SPAN class=""&gt;&amp;lt;&lt;/SPAN&gt; &lt;SPAN class=""&gt;10125000&lt;/SPAN&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN class=""&gt;count&lt;/SPAN&gt;&lt;SPAN class=""&gt;++&lt;/SPAN&gt;&lt;SPAN&gt;);

    &lt;/SPAN&gt;&lt;SPAN class=""&gt;Power_Ip_PerformReset&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN class=""&gt;&amp;amp;&lt;/SPAN&gt;&lt;SPAN class=""&gt;Power_Ip_HwIPsConfigPB&lt;/SPAN&gt;&lt;SPAN&gt;);
}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P class=""&gt;After the 15th functional reset, I directly read IP_MC_RGM-&amp;gt;DES before Clock_Ip_Init(). However, I did not observe DES[MC_RGM_FRE] = 1. The DES value remains 0, while FES contains the reset status (0x20000001 in my test).&lt;/P&gt;&lt;P&gt;Based on this observation, I believe the issue may not be limited to Power_Ip_MC_RGM_GetResetReason() or reset-reason reporting. Since I am directly reading the MC_RGM DES register before the clock and Power initialization, I expected DES[MC_RGM_FRE] to indicate the FRET escalation if the destructive escalation had occurred.&lt;/P&gt;&lt;P&gt;Therefore, could you please confirm whether the FRET escalation itself is occurring at the MC_RGM hardware level after the 15th functional reset? If the destructive escalation is expected at this point, could you please advise why IP_MC_RGM-&amp;gt;DES remains 0?&lt;/P&gt;&lt;P&gt;Also, could you please confirm whether there is any additional RTD 7.0.1 issue or configuration related to the FREC/FRET escalation mechanism itself, in addition to the Power_Ip_MC_RGM_GetResetReason() issue you identified?&lt;/P&gt;&lt;P&gt;Thank you for your support in helping us investigate this issue.&lt;/P&gt;</description>
      <pubDate>Thu, 10 Sep 2026 08:01:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2412587#M60961</guid>
      <dc:creator>Sharif417</dc:creator>
      <dc:date>2026-09-10T08:01:57Z</dc:date>
    </item>
    <item>
      <title>Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention</title>
      <link>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2412853#M60972</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/265997"&gt;@Sharif417&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;I believe the destructive reset is indeed happening; you can follow my test procedure below:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Set FRET=1, so each functional reset triggers a Functional Reset Escalation.&lt;/LI&gt;
&lt;LI&gt;Declare two variables (one for DES, and one for FES registers), as well as a while() loop for stopping the core before reading the variables.&lt;BR /&gt;&lt;BR /&gt;
&lt;PRE class="language-c"&gt;&lt;CODE&gt;int main(void)
{
	volatile uint8_t debug = 1;
	while(debug);
	
	volatile uint32_t regValueDes = 0;
	volatile uint32_t regValueFes = 0;
	regValueDes = IP_MC_RGM -&amp;gt; DES;
	regValueFes = IP_MC_RGM -&amp;gt; FES;
        ...
}​&lt;/CODE&gt;&lt;/PRE&gt;
&lt;/LI&gt;
&lt;LI&gt;After flashing the MCU with the code, change debug variable to 0 to enable the program to run and disconnect the debugger.&lt;/LI&gt;
&lt;LI&gt;&amp;nbsp;Perform the functional reset (you can use your program, or the example I've provided).&lt;/LI&gt;
&lt;LI&gt;Attach to the MCU by selecting "Attach to Running Target".&lt;/LI&gt;
&lt;LI&gt;Pause the execution, set debug variable to 0, and read DES &amp;amp; FES variables:&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Julin_AragnM_0-1789079229563.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/396251i03DF9428CB0C9CBB/image-size/large?v=v2&amp;amp;px=999" role="button" title="Julin_AragnM_0-1789079229563.png" alt="Julin_AragnM_0-1789079229563.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;With this method, after generating the functional reset, and attaching, I can see DES[MC_RGM_FRE] bit related to the Functional Reset Escalation procedure.&lt;/P&gt;
&lt;P&gt;I'm not sure why you are reading DES-&amp;gt;0, if debugger was kept connected, I imagine this meddles with the reset sequence, and generated resets. I suggest testing it with the steps I shared and confirm if DES is really being set or not.&lt;/P&gt;
&lt;P&gt;Please keep me informed.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;Julián&lt;/P&gt;</description>
      <pubDate>Thu, 10 Sep 2026 22:27:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2412853#M60972</guid>
      <dc:creator>Julián_AragónM</dc:creator>
      <dc:date>2026-09-10T22:27:19Z</dc:date>
    </item>
    <item>
      <title>Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention</title>
      <link>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2413606#M61018</link>
      <description>&lt;P class=""&gt;Hi Julián,&lt;/P&gt;&lt;P&gt;Thank you for the support.&lt;/P&gt;&lt;P&gt;I followed your procedure with FRET = 1 and added the while(debug) loop before reading DES and FES.&lt;/P&gt;&lt;P&gt;I found that the destructive reset after functional reset escalation works correctly with the while(debug) loop. Without the while(debug) loop, I was not able to observe the destructive reset.&lt;/P&gt;&lt;P&gt;I also confirmed that it works even without using “Attach to Running Target”.&lt;/P&gt;&lt;P&gt;Thank you for helping me to identify this.&lt;/P&gt;&lt;P&gt;Best Regards,&lt;BR /&gt;Sharif&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2026 07:31:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2413606#M61018</guid>
      <dc:creator>Sharif417</dc:creator>
      <dc:date>2026-09-15T07:31:46Z</dc:date>
    </item>
    <item>
      <title>Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention</title>
      <link>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2413761#M61026</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/265997"&gt;@Sharif417&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;I'm glad you were able to correctly observe this behavior.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've already reported the Power_Ip_GetResetReason() issue, I am waiting for feedback on this. I can provide more information once the internal team shares it, or you can create a new case or community post to request follow-up information.&lt;/P&gt;
&lt;P&gt;Best regards,&lt;BR /&gt;Julián&lt;/P&gt;</description>
      <pubDate>Tue, 15 Sep 2026 15:50:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2413761#M61026</guid>
      <dc:creator>Julián_AragónM</dc:creator>
      <dc:date>2026-09-15T15:50:01Z</dc:date>
    </item>
    <item>
      <title>Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention</title>
      <link>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2413845#M61039</link>
      <description>&lt;P class=""&gt;Hi Julián,&lt;/P&gt;&lt;P&gt;Thank you for the update and for reporting the&amp;nbsp;&lt;SPAN&gt;Power_Ip_GetResetReason()&lt;/SPAN&gt;&amp;nbsp;issue to the internal team. I will wait for further feedback.&lt;/P&gt;&lt;P&gt;Best regards,&lt;BR /&gt;Sharif&lt;/P&gt;</description>
      <pubDate>Wed, 16 Sep 2026 04:04:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/S32K312-SWT0-Functional-Reset-Escalation-Destructive-Reset/m-p/2413845#M61039</guid>
      <dc:creator>Sharif417</dc:creator>
      <dc:date>2026-09-16T04:04:25Z</dc:date>
    </item>
  </channel>
</rss>

