<?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>topic Re: C40 Flash Erase/Write from Bootloader in S32K311 (Same Flash Block Execution) in S32K</title>
    <link>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2355175#M58135</link>
    <description>&lt;P&gt;Hello&amp;nbsp;Yusup,&lt;/P&gt;
&lt;P&gt;Sorry for the delay—I was out of the office for a few days.&lt;BR /&gt;I will need to reproduce the issue on my side tomorrow once I’m back.&lt;BR /&gt;I see that you have already shared an S32K344 test project, which I can use for validation.&lt;BR /&gt;If you also have a minimal S32K311 project that reproduces the same behavior, please share it as well, if you don't want to share it here, please create a support ticket.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Daniel&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 23 Apr 2026 10:57:37 GMT</pubDate>
    <dc:creator>danielmartynek</dc:creator>
    <dc:date>2026-04-23T10:57:37Z</dc:date>
    <item>
      <title>C40 Flash Erase/Write from Bootloader in S32K311 (Same Flash Block Execution)</title>
      <link>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2349201#M57855</link>
      <description>&lt;P&gt;Hi NXP Support Team,&lt;/P&gt;&lt;P&gt;I am currently working on a bootloader implementation for the S32K311 device and need clarification regarding C40 flash erase/program behavior when operating within the same flash array.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Context:&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;MCU: S32K311&lt;/LI&gt;&lt;LI&gt;Flash Size: 1 MB&lt;/LI&gt;&lt;LI&gt;Bootloader region: ~128 KB (starting at 0x00400000)&lt;/LI&gt;&lt;LI&gt;Application region: remaining flash (~896 KB)&lt;/LI&gt;&lt;LI&gt;Both bootloader and application reside within the same flash array/block&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;Observed Behavior:&lt;/STRONG&gt;&lt;BR /&gt;While attempting to erase/program the application region from the bootloader, the C40 driver returns an error and execution goes into the error handler. This appears consistent with the known limitation of not being able to perform flash operations while executing from the same flash array.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Concern / Confusion:&lt;/STRONG&gt;&lt;BR /&gt;I reviewed the “Unified Bootloader” example provided by NXP. From initial analysis, it appears that the flash driver (C40_Ip) functions are linked and executed from flash memory itself.&lt;/P&gt;&lt;P&gt;This raises the following questions:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;How does the Unified Bootloader example successfully perform flash erase/program operations if the code is executing from flash?&lt;/LI&gt;&lt;LI&gt;Are the flash driver routines internally relocated to RAM (e.g., via linker sections or runtime copying), even if not explicitly visible?&lt;/LI&gt;&lt;LI&gt;Is there any implicit mechanism (e.g., SDK/RTD configuration, compiler/linker behavior) that ensures flash operations are executed from RAM?&lt;/LI&gt;&lt;LI&gt;For single-block devices like S32K311, is executing flash erase/program strictly required to be done from RAM?&lt;/LI&gt;&lt;LI&gt;Could you confirm the recommended approach for:&lt;/LI&gt;&lt;UL&gt;&lt;LI&gt;Erasing/programming application flash from bootloader&lt;/LI&gt;&lt;LI&gt;Handling this in production-grade implementations&lt;/LI&gt;&lt;/UL&gt;&lt;/OL&gt;&lt;P&gt;&lt;STRONG&gt;Additional Notes:&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;I ensured that erase operations are sector-aligned.&lt;/LI&gt;&lt;LI&gt;Write operations follow alignment constraints.&lt;/LI&gt;&lt;LI&gt;The issue persists unless execution is moved to RAM.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;It would be helpful if you could clarify how the reference example handles this internally and provide guidance on the correct implementation approach.&lt;/P&gt;&lt;P&gt;Thank you for your support.&lt;/P&gt;&lt;P&gt;Best regards,&lt;BR /&gt;Yusup Khan&amp;nbsp; &lt;LI-PRODUCT title="S32DS-ARM" id="S32DS-ARM"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;#&lt;LI-PRODUCT title="S32K344-WB" id="S32K344-WB"&gt;&lt;/LI-PRODUCT&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Apr 2026 10:16:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2349201#M57855</guid>
      <dc:creator>yusupkhan241</dc:creator>
      <dc:date>2026-04-10T10:16:15Z</dc:date>
    </item>
    <item>
      <title>Re: C40 Flash Erase/Write from Bootloader in S32K311 (Same Flash Block Execution)</title>
      <link>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2349294#M57858</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/252570"&gt;@yusupkhan241&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;1 &amp;amp; 2.&lt;BR /&gt;The Unified Bootloader is an unofficial NXP demo that has only been published on the community forum, and therefore it is not supported by NXP technical support.&lt;BR /&gt;However, I can see that this demo has been ported to the S32K312, S32K314, S32K324, and S32K344 devices, all of which contain two or more PFlash blocks.&lt;/P&gt;
&lt;P&gt;3 &amp;amp; 5.&lt;/P&gt;
&lt;P&gt;3 &amp;amp; 5.&lt;BR /&gt;If you are using the C40_Ip driver, you must relocate the flash APIs to SRAM. Please refer to the following example that demonstrates the required setup:&lt;BR /&gt;&lt;A href="https://community.nxp.com/t5/S32K-Knowledge-Base/S32K312-C40-Ip-SRAM-RTD-500-DS35/ta-p/2074245" target="_blank"&gt;https://community.nxp.com/t5/S32K-Knowledge-Base/S32K312-C40-Ip-SRAM-RTD-500-DS35/ta-p/2074245&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Or you can use the INFLS MCAL driver instaed, which automatically relocates the flash routines to SRAM when this option is enabled. This is the recommended approach.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 758px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/381987iB6FD0CD9C6C6D245/image-dimensions/758x571?v=v2" width="758" height="571" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;4.&lt;/P&gt;
&lt;P&gt;There are two PFlash blocks and one DFlash on S32K311. So it is not a must.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 873px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/381991iB67EA382D99D567A/image-dimensions/873x264?v=v2" width="873" height="264" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Daniel&lt;/P&gt;</description>
      <pubDate>Fri, 10 Apr 2026 11:26:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2349294#M57858</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2026-04-10T11:26:35Z</dc:date>
    </item>
    <item>
      <title>Re: C40 Flash Erase/Write from Bootloader in S32K311 (Same Flash Block Execution)</title>
      <link>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2351524#M57976</link>
      <description>&lt;P&gt;Hi Daniel (&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/160001"&gt;@danielmartynek&lt;/a&gt;) ,&lt;/P&gt;&lt;P&gt;Thank you for the response. I have enabled the INFLS MCAL driver with SRAM relocation (Mem Load Access Code On Job Start enabled). However, I still observe the following:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Flash operations succeed in Block 2 but fail with E_NOT_OK in Block 0 when the application is executing from Block 0.&lt;/LI&gt;&lt;LI&gt;It appears that even though INFLS relocates flash routines to SRAM, the application code (and possibly vector table/interrupts) still executes from Block 0, causing failure during erase.&lt;/LI&gt;&lt;LI&gt;Could you confirm whether it is mandatory that no code (including interrupts/vector table) executes from the target flash block during erase/program, even when using INFLS?&lt;/LI&gt;&lt;LI&gt;What is the recommended approach to erase/program Block 0 in such cases—should the entire application be executed from RAM or relocated to another flash block?&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;STRONG&gt;Test Cases:&lt;/STRONG&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;Using Block 2 (0x00600000 – C40_CODE_ARRAY_0_BLOCK_2_S256):&lt;/STRONG&gt;&lt;UL&gt;&lt;LI&gt;Erase &amp;amp; program operations → SUCCESS&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Using Block 0 (0x00480000 – C40_CODE_ARRAY_0_BLOCK_0_S064):&lt;/STRONG&gt;&lt;UL&gt;&lt;LI&gt;Erase operation → Returns E_NOT_OK&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;BR /&gt;Yusup&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="yusupkhan241_0-1776251108071.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/382449i3883F2E8ACD11C5C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="yusupkhan241_0-1776251108071.png" alt="yusupkhan241_0-1776251108071.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 15 Apr 2026 11:12:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2351524#M57976</guid>
      <dc:creator>yusupkhan241</dc:creator>
      <dc:date>2026-04-15T11:12:02Z</dc:date>
    </item>
    <item>
      <title>Re: C40 Flash Erase/Write from Bootloader in S32K311 (Same Flash Block Execution)</title>
      <link>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2351600#M57980</link>
      <description>&lt;P&gt;Hello&amp;nbsp;Yusup,&lt;/P&gt;
&lt;P&gt;Your observation is correct.&lt;BR /&gt;The flash block being programmed or erased must not be accessed during the operation. This limitation applies not only to the vector table and the interrupt service routines (ISRs), but also to any constants or data located in flash that the ISRs may read.&lt;BR /&gt;To isolate the root cause, try globally masking interrupts before launching the flash operation. This will help verify whether the issue originates from an interrupt activity rather than from INFLS itself.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Daniel&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 15 Apr 2026 12:34:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2351600#M57980</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2026-04-15T12:34:02Z</dc:date>
    </item>
    <item>
      <title>Re: C40 Flash Erase/Write from Bootloader in S32K311 (Same Flash Block Execution)</title>
      <link>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2354069#M58093</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/160001"&gt;@danielmartynek&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;Thank you for the clarification.&lt;/P&gt;&lt;P&gt;I tried masking global interrupts before initiating the flash operation, but the issue still persists. The erase operation in Block 0 continues to return &lt;STRONG&gt;E_NOT_OK&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;Please let me know if you need any additional details, logs, or specific test scenarios from my side. I can share further information or perform any checks required to help isolate the issue.&lt;/P&gt;&lt;P&gt;Thanks,&lt;BR /&gt;Yusup&lt;/P&gt;</description>
      <pubDate>Tue, 21 Apr 2026 06:48:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2354069#M58093</guid>
      <dc:creator>yusupkhan241</dc:creator>
      <dc:date>2026-04-21T06:48:09Z</dc:date>
    </item>
    <item>
      <title>Re: C40 Flash Erase/Write from Bootloader in S32K311 (Same Flash Block Execution)</title>
      <link>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2354071#M58094</link>
      <description>&lt;P&gt;&lt;LI-PRODUCT title="S32K3" id="S32K3"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;&lt;LI-PRODUCT title="S32K31XEVB-Q100" id="S32K31XEVB-Q100"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;&lt;LI-PRODUCT title="S32DS-ARM" id="S32DS-ARM"&gt;&lt;/LI-PRODUCT&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Apr 2026 06:49:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2354071#M58094</guid>
      <dc:creator>yusupkhan241</dc:creator>
      <dc:date>2026-04-21T06:49:52Z</dc:date>
    </item>
    <item>
      <title>Re: C40 Flash Erase/Write from Bootloader in S32K311 (Same Flash Block Execution)</title>
      <link>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2354678#M58119</link>
      <description>&lt;P&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/160001"&gt;@danielmartynek&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This issue is currently blocking further progress on our side. Could you please help with the next steps or suggest additional areas we should investigate? Also, let me know if you need any logs, traces, or specific test scenarios—I can share them promptly.&lt;/P&gt;&lt;P&gt;Appreciate your support on this.&lt;/P&gt;&lt;P&gt;Thanks,&lt;BR /&gt;Yusup&lt;/P&gt;</description>
      <pubDate>Wed, 22 Apr 2026 10:45:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2354678#M58119</guid>
      <dc:creator>yusupkhan241</dc:creator>
      <dc:date>2026-04-22T10:45:12Z</dc:date>
    </item>
    <item>
      <title>Re: C40 Flash Erase/Write from Bootloader in S32K311 (Same Flash Block Execution)</title>
      <link>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2355175#M58135</link>
      <description>&lt;P&gt;Hello&amp;nbsp;Yusup,&lt;/P&gt;
&lt;P&gt;Sorry for the delay—I was out of the office for a few days.&lt;BR /&gt;I will need to reproduce the issue on my side tomorrow once I’m back.&lt;BR /&gt;I see that you have already shared an S32K344 test project, which I can use for validation.&lt;BR /&gt;If you also have a minimal S32K311 project that reproduces the same behavior, please share it as well, if you don't want to share it here, please create a support ticket.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Daniel&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Apr 2026 10:57:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2355175#M58135</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2026-04-23T10:57:37Z</dc:date>
    </item>
    <item>
      <title>Re: C40 Flash Erase/Write from Bootloader in S32K311 (Same Flash Block Execution)</title>
      <link>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2355746#M58166</link>
      <description>&lt;P&gt;Hello&amp;nbsp;Yusup,&lt;/P&gt;
&lt;P&gt;I tested the S32K344 project today.&lt;/P&gt;
&lt;P&gt;It did not pass the&amp;nbsp;Mem_43_INFLS_Erase() function because of this error:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="danielmartynek_0-1777021412535.png" style="width: 525px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/383466i00A28EA5B21DE841/image-dimensions/525x99?v=v2" width="525" height="99" role="button" title="danielmartynek_0-1777021412535.png" alt="danielmartynek_0-1777021412535.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;This was resolved by adding this batch:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="danielmartynek_1-1777021513961.png" style="width: 552px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/383467i998394AE10AC1142/image-dimensions/552x290?v=v2" width="552" height="290" role="button" title="danielmartynek_1-1777021513961.png" alt="danielmartynek_1-1777021513961.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;After that it ended up in a fault exception that was resolved by enabling this option:&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="danielmartynek_2-1777021586556.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/383468iD5B2899D369B4240/image-size/medium?v=v2&amp;amp;px=400" role="button" title="danielmartynek_2-1777021586556.png" alt="danielmartynek_2-1777021586556.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please test it on your side.&lt;/P&gt;
&lt;P&gt;Thank you,&lt;/P&gt;
&lt;P&gt;BR, Daniel&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Apr 2026 09:08:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2355746#M58166</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2026-04-24T09:08:36Z</dc:date>
    </item>
    <item>
      <title>Re: C40 Flash Erase/Write from Bootloader in S32K311 (Same Flash Block Execution)</title>
      <link>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2358556#M58270</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/160001"&gt;@danielmartynek&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for the support. The issue is resolved now and the erase operation is working as expected.&lt;/P&gt;&lt;P&gt;I have a few follow-up questions regarding cache usage on S32K3:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Is there any way to perform flash erase and write operations without using the cache module? Or is cache handling mandatory for reliable operation on this platform?&lt;/LI&gt;&lt;LI&gt;If cache must be used, what precautions should be taken while performing flash operations (erase/write)?&lt;/LI&gt;&lt;UL&gt;&lt;LI&gt;Are there specific steps required before and after flash operations (e.g., cache clean/invalidate)?&lt;/LI&gt;&lt;LI&gt;Any recommended sequence from NXP?&lt;/LI&gt;&lt;/UL&gt;&lt;LI&gt;Also, could you please share the pros and cons of enabling cache in such use cases?&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Additionally, I have a bootloader and application setup, and I am using the following API to jump from bootloader to application. If cache cannot be excluded, I would like to confirm whether my jump implementation is correct or if any cache-related handling needs to be added.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void JumpToApplication(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32 appStack = *(uint32 *)(APP_STARTADDR);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32 func = *(uint32 volatile *)(APP_STARTADDR + 0xC);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; func = *(uint32 volatile *)(((uint32)func) + 0x4);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Disable all interrupts */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DisableAllInterrupts();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set application's vector table using SCB register */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; S32_SCB-&amp;gt;VTOR = APP_STARTADDR;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set MSP &amp;amp; PSP */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm volatile ("msr msp, %0" :: "r"(appStack));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm volatile ("msr psp, %0" :: "r"(appStack));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; func = ((((uint32)func) &amp;amp; 0xFFFFFFFEU) | 1U);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (*(void (*)(void))func)();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (1);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;static void DisableAllInterrupts(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = DMATCD0_IRQn; i &amp;lt;= SoC_IRQn; i++)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IntCtrl_Ip_DisableIrq((IRQn_Type)i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IntCtrl_Ip_ClearPending((IRQn_Type)i);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; S32_SysTick-&amp;gt;CSRr = 0U;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;Please let me know if any additional steps (especially related to cache, MPU, or barriers) are required before jumping to the application.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Yusup&lt;/P&gt;</description>
      <pubDate>Wed, 29 Apr 2026 10:52:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2358556#M58270</guid>
      <dc:creator>yusupkhan241</dc:creator>
      <dc:date>2026-04-29T10:52:51Z</dc:date>
    </item>
    <item>
      <title>Re: C40 Flash Erase/Write from Bootloader in S32K311 (Same Flash Block Execution)</title>
      <link>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2358563#M58272</link>
      <description>&lt;P&gt;HI&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/252570"&gt;@yusupkhan241&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;Great to hear the issue has been resolved.&lt;/P&gt;
&lt;P&gt;Can you please place the cache questions into a new thread?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you&lt;/P&gt;</description>
      <pubDate>Wed, 29 Apr 2026 11:09:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2358563#M58272</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2026-04-29T11:09:04Z</dc:date>
    </item>
    <item>
      <title>Re: C40 Flash Erase/Write from Bootloader in S32K311 (Same Flash Block Execution)</title>
      <link>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2358581#M58275</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/160001"&gt;@danielmartynek&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yes, I have created a new thread for the cache-related questions.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/t5/S32K/S32K3-Cortex-M7-Cache-Handling-Requirements-for-Flash-Operations/m-p/2358567#M58273" target="_blank"&gt;https://community.nxp.com/t5/S32K/S32K3-Cortex-M7-Cache-Handling-Requirements-for-Flash-Operations/m-p/2358567#M58273&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Thank you for the support. &lt;LI-PRODUCT title="S32K3" id="S32K3"&gt;&lt;/LI-PRODUCT&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;BR /&gt;Yusup&lt;/P&gt;</description>
      <pubDate>Wed, 29 Apr 2026 11:43:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/C40-Flash-Erase-Write-from-Bootloader-in-S32K311-Same-Flash/m-p/2358581#M58275</guid>
      <dc:creator>yusupkhan241</dc:creator>
      <dc:date>2026-04-29T11:43:06Z</dc:date>
    </item>
  </channel>
</rss>

