<?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: C90 SSD Driver in MPC5xxx</title>
    <link>https://community.nxp.com/t5/MPC5xxx/C90-SSD-Driver/m-p/660359#M7243</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;OK, but please notice that we do not support customers who use the source files directly...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Lukas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 15 Nov 2016 09:16:45 GMT</pubDate>
    <dc:creator>lukaszadrapa</dc:creator>
    <dc:date>2016-11-15T09:16:45Z</dc:date>
    <item>
      <title>C90 SSD Driver</title>
      <link>https://community.nxp.com/t5/MPC5xxx/C90-SSD-Driver/m-p/660356#M7240</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;I am using&amp;nbsp;MPC5634 MCU &amp;nbsp;Flash module for bootloader, but &amp;nbsp;there are two versions:&lt;/P&gt;&lt;P&gt;for example :&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1. BlankCheck.c&amp;nbsp; &amp;nbsp;&lt;/STRONG&gt; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;vertion 1:&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;/*****************************************************************&lt;BR /&gt;* PROJECT : Standard Software Driver (SSD) for M10ST based devices&lt;BR /&gt;* FILE : blankcheck.c&lt;BR /&gt;*&lt;BR /&gt;* DESCRIPTION : This file contains BlankCheck function implementation &lt;BR /&gt;*&lt;BR /&gt;* COPYRIGHT :(c) 2008, Freescale &amp;amp; STMicroelectronics&lt;BR /&gt;*&lt;BR /&gt;* VERSION : EAR 0.2&lt;BR /&gt;* DATE : 04.18.2008&lt;BR /&gt;* AUTHOR : ...&lt;BR /&gt;*&lt;BR /&gt;* HISTORY :&lt;BR /&gt;* 2007.12.11 Arvind Awasthi Initial Version&lt;BR /&gt;* 2008.04.18 Leonardo Colombo Changed header in agreement with JDP SW&lt;BR /&gt;* template&lt;BR /&gt;******************************************************************/&lt;/P&gt;&lt;P&gt;#include "ssd_c90fl.h"&lt;BR /&gt;#include "ssd_c90fl_internal.h"&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/*******************************************************************&lt;BR /&gt;| external declarations&lt;BR /&gt;|------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;/*******************************************************************&lt;BR /&gt;| defines and macros (scope: module-local)&lt;BR /&gt;|------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;/*******************************************************************&lt;BR /&gt;| typedefs and structures (scope: module-local)&lt;BR /&gt;|------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;/*******************************************************************&lt;BR /&gt;| global variable definitions (scope: module-exported)&lt;BR /&gt;|------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;/*******************************************************************&lt;BR /&gt;| global variable definitions (scope: module-local)&lt;BR /&gt;|------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;/*******************************************************************&lt;BR /&gt;| function prototypes (scope: module-local)&lt;BR /&gt;|------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;/*******************************************************************&lt;BR /&gt;| function implementations (scope: module-local)&lt;BR /&gt;|------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;/*******************************************************************&lt;BR /&gt;| function implementations (scope: module-exported)&lt;BR /&gt;|------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;/************************************************************************&lt;BR /&gt;* *&lt;BR /&gt;* FUNCTION : BlankCheck *&lt;BR /&gt;* DESCRIPTION : This function will verify a specified flash range *&lt;BR /&gt;* to be erased. *&lt;BR /&gt;* PARAMETERS : *&lt;BR /&gt;* pSSDConfig - Flash driver configuration structure *&lt;BR /&gt;* dest - start flash addr to be programmed *&lt;BR /&gt;* size - number of bytes to be programmed *&lt;BR /&gt;* (need to be dword-aligned) *&lt;BR /&gt;* pFailAddress - pointer to first failing address *&lt;BR /&gt;* pFailData - pointer to first failing actual data *&lt;BR /&gt;* CallBack - Callback function pointer for timeout *&lt;BR /&gt;* checking. *&lt;BR /&gt;* RETURN : C90FL_OK - passes *&lt;BR /&gt;* C90FL_ERROR_VERIFY - failed verify *&lt;BR /&gt;* C90FL_ERROR_RANGE - Invalid addr range *&lt;BR /&gt;* C90FL_ERROR_ALIGNMENT - Invalid alignment *&lt;BR /&gt;* *&lt;BR /&gt;*************************************************************************/&lt;BR /&gt;UINT32 BlankCheck ( PSSD_CONFIG pSSDConfig,&lt;BR /&gt; UINT32 dest,&lt;BR /&gt; UINT32 size,&lt;BR /&gt; UINT32 *pFailAddress,&lt;BR /&gt; UINT64 *pFailData,&lt;BR /&gt; void (*CallBack)(void))&lt;BR /&gt;{&lt;BR /&gt; register UINT32 returnCode; /* return code */&lt;BR /&gt; UINT32 destIndex; /* destination address index */&lt;BR /&gt; UINT32 shadowRowEnd; /* shadow row base + shadow size */&lt;BR /&gt; UINT32 mainArrayEnd; /* main array base + main array size */&lt;BR /&gt; UINT32 temp; /* dest + size, or CallBack step */&lt;/P&gt;&lt;P&gt;returnCode = C90FL_OK;&lt;/P&gt;&lt;P&gt;/* Check alignments */&lt;BR /&gt; if ( ((dest | size) % C90FL_DWORD_SIZE) != 0 )&lt;BR /&gt; {&lt;BR /&gt; returnCode = C90FL_ERROR_ALIGNMENT;&lt;BR /&gt; goto EXIT;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;/* The flash range should fall within either shadow row or main array */&lt;BR /&gt; shadowRowEnd = pSSDConfig-&amp;gt;shadowRowBase + pSSDConfig-&amp;gt;shadowRowSize;&lt;BR /&gt; mainArrayEnd = pSSDConfig-&amp;gt;mainArrayBase + pSSDConfig-&amp;gt;mainArraySize;&lt;BR /&gt; temp = dest + size;&lt;/P&gt;&lt;P&gt;if ( !((dest &amp;gt;= pSSDConfig-&amp;gt;shadowRowBase) &amp;amp;&amp;amp; (dest &amp;lt; shadowRowEnd) &amp;amp;&amp;amp;&lt;BR /&gt; (size &amp;lt;= pSSDConfig-&amp;gt;shadowRowSize) &amp;amp;&amp;amp; (temp &amp;lt;= shadowRowEnd))&lt;BR /&gt; &amp;amp;&amp;amp;&lt;BR /&gt; !((dest &amp;gt;= pSSDConfig-&amp;gt;mainArrayBase) &amp;amp;&amp;amp; (dest &amp;lt; mainArrayEnd) &amp;amp;&amp;amp;&lt;BR /&gt; (size &amp;lt;= pSSDConfig-&amp;gt;mainArraySize) &amp;amp;&amp;amp; (temp &amp;lt;= mainArrayEnd)) )&lt;BR /&gt; {&lt;BR /&gt; returnCode = C90FL_ERROR_RANGE;&lt;BR /&gt; goto EXIT;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;temp = 0;&lt;/P&gt;&lt;P&gt;/* Blank check by double word */&lt;BR /&gt; for (destIndex = 0; destIndex &amp;lt; (size / C90FL_DWORD_SIZE); destIndex++)&lt;BR /&gt; {&lt;BR /&gt; if ( (*(UINT64 *)dest) != 0xFFFFFFFFFFFFFFFF )&lt;BR /&gt; {&lt;BR /&gt; returnCode = C90FL_ERROR_NOT_BLANK;&lt;BR /&gt; *pFailAddress = dest;&lt;BR /&gt; *pFailData = *(UINT64 *)dest;&lt;BR /&gt; break;&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;dest += C90FL_DWORD_SIZE;&lt;/P&gt;&lt;P&gt;/* CallBack */&lt;BR /&gt; if ( (CallBack != NULL_CALLBACK) &amp;amp;&amp;amp; (destIndex == temp) )&lt;BR /&gt; {&lt;BR /&gt; CallBack();&lt;BR /&gt; temp += CALLBACK_BC;&lt;BR /&gt; }&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;EXIT:&lt;BR /&gt; if (pSSDConfig-&amp;gt;BDMEnable)&lt;BR /&gt; {&lt;BR /&gt; //asm ( "mr r3,returnCode" ); /* save the return code to R3 */&lt;BR /&gt; #ifdef VLE_ASM&lt;BR /&gt; asm ( "se_sc " ); /* generate system call interrupt */&lt;BR /&gt; #else&lt;BR /&gt; asm ( "sc " );&lt;BR /&gt; #endif&lt;BR /&gt; }&lt;/P&gt;&lt;P&gt;return returnCode;&lt;BR /&gt;}&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Vertion 2:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;const unsigned long BlankCheck_C[] = &lt;BR /&gt;{&lt;BR /&gt; &lt;BR /&gt; 0x9421FFA0, 0x7C0802A6, 0xBEA10034, 0x90010064, 0x7C7F1B78, &lt;BR /&gt; 0x7C9E2378, 0x7CBD2B78, 0x7CDC3378, 0x7CFB3B78, 0x7D1A4378, &lt;BR /&gt; 0x57CC077E, 0x2B0C0000, 0x57AB07BE, 0x280B0000, 0x4C5A1202, &lt;BR /&gt; 0x4182000C, 0x3B200100, 0x48000130, 0x819F000C, 0x817F0010, &lt;BR /&gt; 0x7F0C5A14, 0x815F0004, 0x813F0008, 0x7EEA4A14, 0x7EDEEA14, &lt;BR /&gt; 0x817F0004, 0x7C0BF040, 0x41810020, 0x7C1EB840, 0x40800018, &lt;BR /&gt; 0x819F0008, 0x7C0CE840, 0x4180000C, 0x7C16B840, 0x4081002C, &lt;BR /&gt; 0x819F000C, 0x7C0CF040, 0x418100DC, 0x7C1EC040, 0x408000D4, &lt;BR /&gt; 0x819F0010, 0x7C0CE840, 0x418000C8, 0x7C16C040, 0x418100C0, &lt;BR /&gt; 0x3B200000, 0x3AC00050, 0x57B5E8FE, 0x3AE00000, 0x7C17A840, &lt;BR /&gt; 0x40800068, 0x817E0000, 0x819E0004, 0x3920FFFF, 0x3940FFFF, &lt;BR /&gt; 0x7C0B4840, 0x40820008, 0x7C0C5040, 0x41820020, 0x3B200600, &lt;BR /&gt; 0x93DC0000, 0x813E0000, 0x815E0004, 0x913B0000, 0x915B0004, &lt;BR /&gt; 0x4800002C, 0x3BDE0008, 0x2C1AFFFF, 0x41820018, 0x7C17B040, &lt;BR /&gt; 0x40820010, 0x7F4903A6, 0x4E800421, 0x3AD60050, 0x3AF70001, &lt;BR /&gt; 0x4BFFFF98, 0x57B6077E, 0x2C160000, 0x4182003C, 0x2C190000, &lt;BR /&gt; 0x40820034, 0x819E0000, 0x2C0CFFFF, 0x41820028, 0x3B200600, &lt;BR /&gt; 0x93DC0000, 0x817E0000, 0x7D6A5B78, 0x39200000, 0x913B0000, &lt;BR /&gt; 0x915B0004, 0x48000008, 0x3B200200, 0x819F0024, 0x2C0C0000, &lt;BR /&gt; 0x41820014, 0x7F23CB78, 0x60000000, 0x00000000, 0x60000000, &lt;BR /&gt; 0x7F23CB78, 0xBAA10034, 0x80010064, 0x7C0803A6, 0x38210060, &lt;BR /&gt; 0x4E800020, 0x4D504339, 0x30424331, 0x3130FFFF&lt;BR /&gt;};&lt;BR /&gt; /* Total Data Size = 436 bytes */&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;One vertion is function,the other is array.Is there any different between them?&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Also you can see &amp;nbsp;attachment files.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-338351"&gt;Flash.rar&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Nov 2016 02:02:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/C90-SSD-Driver/m-p/660356#M7240</guid>
      <dc:creator>chenxiubo</dc:creator>
      <dc:date>2016-11-15T02:02:07Z</dc:date>
    </item>
    <item>
      <title>Re: C90 SSD Driver</title>
      <link>https://community.nxp.com/t5/MPC5xxx/C90-SSD-Driver/m-p/660357#M7241</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;use the C-array drivers. The source codes are provided only for reference. The SSD drivers are provided in pre-compiled form to avoid possible issues caused by different compilers.&lt;/P&gt;&lt;P&gt;The latest driver for MPC5634M is this one:&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.nxp.com/files/soft_dev_tools/software/device_drivers/MPC56XX_C90LC_JDP_SSD_100_DEVD.exe"&gt;http://www.nxp.com/files/soft_dev_tools/software/device_drivers/MPC56XX_C90LC_JDP_SSD_100_DEVD.exe&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Examples are included in the package.&lt;/P&gt;&lt;P&gt;You can also take a look at this bootloader for MPC5634M - SDD flash drivers are used there:&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/servlet/JiveServlet/download/427962-1-279359/bootloader.zip"&gt;https://community.nxp.com/servlet/JiveServlet/download/427962-1-279359/bootloader.zip&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Lukas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Nov 2016 08:49:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/C90-SSD-Driver/m-p/660357#M7241</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2016-11-15T08:49:40Z</dc:date>
    </item>
    <item>
      <title>Re: C90 SSD Driver</title>
      <link>https://community.nxp.com/t5/MPC5xxx/C90-SSD-Driver/m-p/660358#M7242</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;@&lt;A _jive_internal="true" data-userid="206568" data-username="lukaszadrapa" href="https://community.nxp.com/people/lukaszadrapa"&gt;Lukas Zadrapa&lt;/A&gt;&lt;SPAN style="background-color: #ffffff; color: #5e89c1; font-size: 12px; line-height: 20.76px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;SPAN&gt;T&lt;/SPAN&gt;&lt;SPAN&gt;hank you very much.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I want to use&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;first vertion--&lt;/SPAN&gt; f&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #5e89c1; font-size: 12px; line-height: 20.76px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Nov 2016 09:13:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/C90-SSD-Driver/m-p/660358#M7242</guid>
      <dc:creator>chenxiubo</dc:creator>
      <dc:date>2016-11-15T09:13:13Z</dc:date>
    </item>
    <item>
      <title>Re: C90 SSD Driver</title>
      <link>https://community.nxp.com/t5/MPC5xxx/C90-SSD-Driver/m-p/660359#M7243</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;OK, but please notice that we do not support customers who use the source files directly...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Lukas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Nov 2016 09:16:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/C90-SSD-Driver/m-p/660359#M7243</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2016-11-15T09:16:45Z</dc:date>
    </item>
  </channel>
</rss>

