<?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_Ip_Example_S32K344 wrong behavior in S32K</title>
    <link>https://community.nxp.com/t5/S32K/C40-Ip-Example-S32K344-wrong-behavior/m-p/1609997#M21152</link>
    <description>&lt;P&gt;Hello Andrea,&lt;/P&gt;
&lt;P&gt;This is expected, up to four pages (maximum 128 bytes) can be programmed at once on a quad-page boundary (128-byte aligned).&lt;BR /&gt;This means the data to be written must fall within a quad-page.&lt;/P&gt;
&lt;P&gt;And we must split the write operation based on that boundary.&lt;BR /&gt;This is done in the MCAL FLS driver.&lt;BR /&gt;Unfortunately, the C40_IP driver can't handle it, it must be done manually.&lt;/P&gt;
&lt;P&gt;In RTD 2.0.0 &amp;amp; 2.0.1, there is a bug, because the driver does not report any API_ERROR if you pass these parameters.&lt;BR /&gt;In RTD 3.0.0, this condition has been added&lt;BR /&gt;Address Offset + Length &amp;lt;= C40_DATA_SIZE_BYTES_U32 (128 Bytes)&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>Mon, 06 Mar 2023 12:06:26 GMT</pubDate>
    <dc:creator>danielmartynek</dc:creator>
    <dc:date>2023-03-06T12:06:26Z</dc:date>
    <item>
      <title>C40_Ip_Example_S32K344 wrong behavior</title>
      <link>https://community.nxp.com/t5/S32K/C40-Ip-Example-S32K344-wrong-behavior/m-p/1609293#M21119</link>
      <description>&lt;P&gt;Hi All,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am testing the sample project in the subject noticing different behaviors during flash programming with C40 IP (RTD ver.2.0.0, S32DS ver.3.4), both in case of Code Flash and in case of Data Flash, depending on the FLS_SECTOR_ADDR value.&lt;/P&gt;&lt;P&gt;Code flash programming "good":&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;#define FLS_SECTOR_ADDR 0x601FB0U
#define FLS_SECTOR_TEST C40_CODE_ARRAY_0_BLOCK_2_S256&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ziomocci_0-1677854525805.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/213150i434726FA16803322/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ziomocci_0-1677854525805.png" alt="ziomocci_0-1677854525805.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Code flash programming "wrong":&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;#define FLS_SECTOR_ADDR 0x601FD0U
#define FLS_SECTOR_TEST C40_CODE_ARRAY_0_BLOCK_2_S256&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ziomocci_1-1677854719808.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/213151i7FB3E916EF9449D2/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ziomocci_1-1677854719808.png" alt="ziomocci_1-1677854719808.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;It happens always when address passed to the Main_interfaces implies flash operations across the C40 Sectors 8KBs boundaries&amp;nbsp;of Code Flash (that is, 602000/604000/606000/...).&lt;/P&gt;&lt;P&gt;Same situation in case of Data Flash.&lt;/P&gt;&lt;P&gt;Data flash programming "good":&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;#define FLS_SECTOR_ADDR 0x10001FB0U
#define FLS_SECTOR_TEST C40_DATA_ARRAY_0_BLOCK_4_S000&lt;/LI-CODE&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ziomocci_2-1677855273056.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/213152iBAD9501C36C20144/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ziomocci_2-1677855273056.png" alt="ziomocci_2-1677855273056.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Data flash programming "wrong":&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;#define FLS_SECTOR_ADDR              0x10001FD0U
#define FLS_SECTOR_TEST              C40_DATA_ARRAY_0_BLOCK_4_S000&lt;/LI-CODE&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ziomocci_3-1677855485132.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/213153i29E4971BA40E1D9C/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ziomocci_3-1677855485132.png" alt="ziomocci_3-1677855485132.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;It happens always when address passed to the Main_interfaces implies flash operations across the C40 Sectors 8KBs boundaries of Data Flash(that is, 10002000/10004000/10006000/...).&lt;/P&gt;&lt;P&gt;Those uses case are usually managed during flash reprogramming with external development/diagnostic tool of ECU configuration/errors storing in NVM.&lt;/P&gt;&lt;P&gt;How could be implemented a continuous programming flow?&lt;/P&gt;&lt;P&gt;Of course, to split in multiple Main_interfaces function calls is not acceptable.&lt;/P&gt;&lt;P&gt;Thanks in adv,&lt;/P&gt;&lt;P&gt;K.R.&lt;/P&gt;&lt;P&gt;Andrea&lt;/P&gt;</description>
      <pubDate>Fri, 03 Mar 2023 15:08:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/C40-Ip-Example-S32K344-wrong-behavior/m-p/1609293#M21119</guid>
      <dc:creator>ziomocci</dc:creator>
      <dc:date>2023-03-03T15:08:48Z</dc:date>
    </item>
    <item>
      <title>Re: C40_Ip_Example_S32K344 wrong behavior</title>
      <link>https://community.nxp.com/t5/S32K/C40-Ip-Example-S32K344-wrong-behavior/m-p/1609997#M21152</link>
      <description>&lt;P&gt;Hello Andrea,&lt;/P&gt;
&lt;P&gt;This is expected, up to four pages (maximum 128 bytes) can be programmed at once on a quad-page boundary (128-byte aligned).&lt;BR /&gt;This means the data to be written must fall within a quad-page.&lt;/P&gt;
&lt;P&gt;And we must split the write operation based on that boundary.&lt;BR /&gt;This is done in the MCAL FLS driver.&lt;BR /&gt;Unfortunately, the C40_IP driver can't handle it, it must be done manually.&lt;/P&gt;
&lt;P&gt;In RTD 2.0.0 &amp;amp; 2.0.1, there is a bug, because the driver does not report any API_ERROR if you pass these parameters.&lt;BR /&gt;In RTD 3.0.0, this condition has been added&lt;BR /&gt;Address Offset + Length &amp;lt;= C40_DATA_SIZE_BYTES_U32 (128 Bytes)&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>Mon, 06 Mar 2023 12:06:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/C40-Ip-Example-S32K344-wrong-behavior/m-p/1609997#M21152</guid>
      <dc:creator>danielmartynek</dc:creator>
      <dc:date>2023-03-06T12:06:26Z</dc:date>
    </item>
  </channel>
</rss>

