<?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 Can anyone provide the LPDDR init code for K70? in MQX Software Solutions</title>
    <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-anyone-provide-the-LPDDR-init-code-for-K70/m-p/318581#M10150</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Everyone, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; We are interfacing K70 with LPDDR (MT46H32M16LF – 8 Meg x 16 x 4 banks) and facing issues with our current configuration. Please let us know if there is any error in our configuration. Also it would be helpful if some one could provide us the correct LPDDR configuration.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Our configuration is as follows,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int ddr_init_script(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((SIM_SCGC3 &amp;amp; SIM_SCGC3_DDR_MASK) != SIM_SCGC3_DDR_MASK)&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; // Enable DDR clock gate&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC3 |= SIM_SCGC3_DDR_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&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; // Check to if the DRAMC is already initialized&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((DDR_CR00 &amp;amp; 1) == 1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setup drive strength &amp;amp; enable IO pad&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_MCR &amp;amp;= 0xFFFFFF00;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_MCR |= 0x00000004;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setup IO pad ODT, 700mV seperation &amp;amp; spare dly ctrl&lt;/P&gt;&lt;P&gt;#define DDR_PAD_CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp; *((volatile unsigned long*)0x400AE1AC)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_PAD_CTRL = 0x00030203;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_MCR |= 0x100;&amp;nbsp;&amp;nbsp;&amp;nbsp; // DDR RCR reset&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_MCR &amp;amp;= ~0x100;&amp;nbsp;&amp;nbsp;&amp;nbsp; // DDR RCR out of reset&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR00 = 0x00000100;&amp;nbsp;&amp;nbsp;&amp;nbsp; // DDRCLS, start&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR02 = 0x00007530;&amp;nbsp;&amp;nbsp;&amp;nbsp; // initaref, tinit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR03 = 0x01010707;&amp;nbsp;&amp;nbsp;&amp;nbsp; // tccd, wrlat, latgate, latlin&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR04 = 0x07090201;&amp;nbsp;&amp;nbsp;&amp;nbsp; // trasmin, trc, trrd, tbint&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR05 = 0x02000302;&amp;nbsp;&amp;nbsp;&amp;nbsp; // tmrd, trtp, trp, twtr&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR06 = 0x01290404;&amp;nbsp;&amp;nbsp;&amp;nbsp; // intwbr, trasmax, tmod&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR07 = 0x01010202;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ccapen, ap, tckesr, clkpw&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR08 = 0x06030300;&amp;nbsp;&amp;nbsp;&amp;nbsp; // tdal, twr, trasdi, tras &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR09 = 0x020000c8;&amp;nbsp;&amp;nbsp;&amp;nbsp; // bstlen, nocmd, tdll &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR10 = 0x03000002;&amp;nbsp;&amp;nbsp;&amp;nbsp; // trpab, tcpd, tfaw&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR11 = 0x01000000;&amp;nbsp;&amp;nbsp;&amp;nbsp; // trefen, arefmode, aref, regdimm&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR12 = 0x048a000b;&amp;nbsp;&amp;nbsp;&amp;nbsp; // tref, trfc&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR13 = 0x00000005;&amp;nbsp;&amp;nbsp;&amp;nbsp; // pd, trefint&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR14 = 0x00110002;&amp;nbsp;&amp;nbsp;&amp;nbsp; // txsr, tpdex&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR15 = 0x0000000b;&amp;nbsp;&amp;nbsp;&amp;nbsp; // puref, sref, txsnr&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR16 = 0x00000001;&amp;nbsp;&amp;nbsp;&amp;nbsp; // lpctrl, clkdly, qkref&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR20 = 0x00030300;&amp;nbsp;&amp;nbsp;&amp;nbsp; // cksrx, cksre, lpre&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR21 = 0x00000032;&amp;nbsp;&amp;nbsp;&amp;nbsp; // mr1dat0, mr0dat0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR25 = 0x0a010300;&amp;nbsp;&amp;nbsp;&amp;nbsp; // aprebit, colsiz, addpins, bnk8&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR26 = 0x0101ffff;&amp;nbsp;&amp;nbsp;&amp;nbsp; // bnkspt, addcol, cmdage, agecnt&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR27 = 0x00010101;&amp;nbsp;&amp;nbsp;&amp;nbsp; // swpen, rwen, prien, plen&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR28 = 0x00000001;&amp;nbsp;&amp;nbsp;&amp;nbsp; // cmdlatr, bigend, reduc, csmap&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR30 = 0x00000001;&amp;nbsp;&amp;nbsp;&amp;nbsp; // intack, rsyncrf&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR34 = 0x00000101;&amp;nbsp;&amp;nbsp;&amp;nbsp; // odtwrcs, odtrdcs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR37 = 0x00000200;&amp;nbsp;&amp;nbsp;&amp;nbsp; // w2wsame, w2rsame, r2wsame, r2rsame&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR38 = 0x00200000;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p0wrcnt, pupcs, pdncs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR39 = 0x00000020;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wp0, rp0, p0rdcnt&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR40 = 0x00002000;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p1wrcnt, p0typ&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR41 = 0x01010020;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wp1, rp1, p1rdcnt&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR42 = 0x00002000;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p2wrcnt, p1typ&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR43 = 0x02020020;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wp2, rp2, p2rdcnt&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR45 = 0x00070b0f;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p0pri3, p0pri2, p0pri1, p0pri0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR46 = 0x0f004000;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p1pri0, p0prirlx, p0ord&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR47 = 0x0100070b;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p1ord, p1pri3, p1pri2, p1pri1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR48 = 0x0b0f0040;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p2pri1, p2pri0, p1prirlx&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR49 = 0x00020007;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p2ord, p2pri3, p2pri2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR50 = 0x00000040;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p2prirlx&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR52 = 0x02000602;&amp;nbsp;&amp;nbsp;&amp;nbsp; // rddtenbas, phyrdlat, phywrltbs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR56 = 0x01030000;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wrlatadj, rdlatadj&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR57 = 0x01000000;&amp;nbsp;&amp;nbsp;&amp;nbsp; // odtalten&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR00 |= 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; // DDRCLS, start&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((DDR_CR30 &amp;amp; 0x400) != 0x400);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setup memory address translation&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCM_CR |= MCM_CR_DDRSIZE(0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt; We created this configuration using this &lt;A href="https://www.freescale.com/webapp/Download?colCode=KINETIS_K70_DDR_INIT&amp;amp;location=null&amp;amp;Parent_nodeId=&amp;amp;Parent_pageType=" target="_blank" title="https://www.freescale.com/webapp/Download?colCode=KINETIS_K70_DDR_INIT&amp;amp;location=null&amp;amp;Parent_nodeId=&amp;amp;Parent_pageType="&gt;https://www.freescale.com/webapp/Download?colCode=KINETIS_K70_DDR_INIT&amp;amp;location=null&amp;amp;Parent_nodeId=&amp;amp;Parent_pageType=&lt;/A&gt; tool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Pramod&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 10 Jul 2014 16:27:01 GMT</pubDate>
    <dc:creator>pramodk_g_</dc:creator>
    <dc:date>2014-07-10T16:27:01Z</dc:date>
    <item>
      <title>Can anyone provide the LPDDR init code for K70?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-anyone-provide-the-LPDDR-init-code-for-K70/m-p/318581#M10150</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Everyone, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; We are interfacing K70 with LPDDR (MT46H32M16LF – 8 Meg x 16 x 4 banks) and facing issues with our current configuration. Please let us know if there is any error in our configuration. Also it would be helpful if some one could provide us the correct LPDDR configuration.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Our configuration is as follows,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int ddr_init_script(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((SIM_SCGC3 &amp;amp; SIM_SCGC3_DDR_MASK) != SIM_SCGC3_DDR_MASK)&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; // Enable DDR clock gate&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_SCGC3 |= SIM_SCGC3_DDR_MASK;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&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; // Check to if the DRAMC is already initialized&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((DDR_CR00 &amp;amp; 1) == 1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setup drive strength &amp;amp; enable IO pad&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_MCR &amp;amp;= 0xFFFFFF00;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_MCR |= 0x00000004;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setup IO pad ODT, 700mV seperation &amp;amp; spare dly ctrl&lt;/P&gt;&lt;P&gt;#define DDR_PAD_CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp; *((volatile unsigned long*)0x400AE1AC)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_PAD_CTRL = 0x00030203;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_MCR |= 0x100;&amp;nbsp;&amp;nbsp;&amp;nbsp; // DDR RCR reset&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIM_MCR &amp;amp;= ~0x100;&amp;nbsp;&amp;nbsp;&amp;nbsp; // DDR RCR out of reset&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR00 = 0x00000100;&amp;nbsp;&amp;nbsp;&amp;nbsp; // DDRCLS, start&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR02 = 0x00007530;&amp;nbsp;&amp;nbsp;&amp;nbsp; // initaref, tinit&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR03 = 0x01010707;&amp;nbsp;&amp;nbsp;&amp;nbsp; // tccd, wrlat, latgate, latlin&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR04 = 0x07090201;&amp;nbsp;&amp;nbsp;&amp;nbsp; // trasmin, trc, trrd, tbint&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR05 = 0x02000302;&amp;nbsp;&amp;nbsp;&amp;nbsp; // tmrd, trtp, trp, twtr&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR06 = 0x01290404;&amp;nbsp;&amp;nbsp;&amp;nbsp; // intwbr, trasmax, tmod&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR07 = 0x01010202;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ccapen, ap, tckesr, clkpw&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR08 = 0x06030300;&amp;nbsp;&amp;nbsp;&amp;nbsp; // tdal, twr, trasdi, tras &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR09 = 0x020000c8;&amp;nbsp;&amp;nbsp;&amp;nbsp; // bstlen, nocmd, tdll &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR10 = 0x03000002;&amp;nbsp;&amp;nbsp;&amp;nbsp; // trpab, tcpd, tfaw&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR11 = 0x01000000;&amp;nbsp;&amp;nbsp;&amp;nbsp; // trefen, arefmode, aref, regdimm&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR12 = 0x048a000b;&amp;nbsp;&amp;nbsp;&amp;nbsp; // tref, trfc&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR13 = 0x00000005;&amp;nbsp;&amp;nbsp;&amp;nbsp; // pd, trefint&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR14 = 0x00110002;&amp;nbsp;&amp;nbsp;&amp;nbsp; // txsr, tpdex&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR15 = 0x0000000b;&amp;nbsp;&amp;nbsp;&amp;nbsp; // puref, sref, txsnr&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR16 = 0x00000001;&amp;nbsp;&amp;nbsp;&amp;nbsp; // lpctrl, clkdly, qkref&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR20 = 0x00030300;&amp;nbsp;&amp;nbsp;&amp;nbsp; // cksrx, cksre, lpre&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR21 = 0x00000032;&amp;nbsp;&amp;nbsp;&amp;nbsp; // mr1dat0, mr0dat0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR25 = 0x0a010300;&amp;nbsp;&amp;nbsp;&amp;nbsp; // aprebit, colsiz, addpins, bnk8&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR26 = 0x0101ffff;&amp;nbsp;&amp;nbsp;&amp;nbsp; // bnkspt, addcol, cmdage, agecnt&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR27 = 0x00010101;&amp;nbsp;&amp;nbsp;&amp;nbsp; // swpen, rwen, prien, plen&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR28 = 0x00000001;&amp;nbsp;&amp;nbsp;&amp;nbsp; // cmdlatr, bigend, reduc, csmap&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR30 = 0x00000001;&amp;nbsp;&amp;nbsp;&amp;nbsp; // intack, rsyncrf&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR34 = 0x00000101;&amp;nbsp;&amp;nbsp;&amp;nbsp; // odtwrcs, odtrdcs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR37 = 0x00000200;&amp;nbsp;&amp;nbsp;&amp;nbsp; // w2wsame, w2rsame, r2wsame, r2rsame&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR38 = 0x00200000;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p0wrcnt, pupcs, pdncs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR39 = 0x00000020;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wp0, rp0, p0rdcnt&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR40 = 0x00002000;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p1wrcnt, p0typ&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR41 = 0x01010020;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wp1, rp1, p1rdcnt&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR42 = 0x00002000;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p2wrcnt, p1typ&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR43 = 0x02020020;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wp2, rp2, p2rdcnt&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR45 = 0x00070b0f;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p0pri3, p0pri2, p0pri1, p0pri0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR46 = 0x0f004000;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p1pri0, p0prirlx, p0ord&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR47 = 0x0100070b;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p1ord, p1pri3, p1pri2, p1pri1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR48 = 0x0b0f0040;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p2pri1, p2pri0, p1prirlx&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR49 = 0x00020007;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p2ord, p2pri3, p2pri2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR50 = 0x00000040;&amp;nbsp;&amp;nbsp;&amp;nbsp; // p2prirlx&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR52 = 0x02000602;&amp;nbsp;&amp;nbsp;&amp;nbsp; // rddtenbas, phyrdlat, phywrltbs&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR56 = 0x01030000;&amp;nbsp;&amp;nbsp;&amp;nbsp; // wrlatadj, rdlatadj&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR57 = 0x01000000;&amp;nbsp;&amp;nbsp;&amp;nbsp; // odtalten&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR_CR00 |= 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; // DDRCLS, start&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((DDR_CR30 &amp;amp; 0x400) != 0x400);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Setup memory address translation&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MCM_CR |= MCM_CR_DDRSIZE(0);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 1;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt; We created this configuration using this &lt;A href="https://www.freescale.com/webapp/Download?colCode=KINETIS_K70_DDR_INIT&amp;amp;location=null&amp;amp;Parent_nodeId=&amp;amp;Parent_pageType=" target="_blank" title="https://www.freescale.com/webapp/Download?colCode=KINETIS_K70_DDR_INIT&amp;amp;location=null&amp;amp;Parent_nodeId=&amp;amp;Parent_pageType="&gt;https://www.freescale.com/webapp/Download?colCode=KINETIS_K70_DDR_INIT&amp;amp;location=null&amp;amp;Parent_nodeId=&amp;amp;Parent_pageType=&lt;/A&gt; tool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Pramod&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Jul 2014 16:27:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-anyone-provide-the-LPDDR-init-code-for-K70/m-p/318581#M10150</guid>
      <dc:creator>pramodk_g_</dc:creator>
      <dc:date>2014-07-10T16:27:01Z</dc:date>
    </item>
    <item>
      <title>Re: Can anyone provide the LPDDR init code for K70?</title>
      <link>https://community.nxp.com/t5/MQX-Software-Solutions/Can-anyone-provide-the-LPDDR-init-code-for-K70/m-p/318582#M10151</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 style="margin-bottom: .0001pt;"&gt;The MQX BSP function that initializes SDRAM controller can be found in the source file&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;c:\Freescale\Freescale_MQX_4_x\mqx\source\bsp\twrk70f120m\init_hw.c.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;_bsp_ddr2_setup&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;called by init_hardware() in the same file.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;I attached the init for the mt46h32m16lf part. I hope this helps!!!!&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;Freescale also provides below application note about DDR2 SDRAM hardware design and initialization:&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;AN2910 (Hardware and Layout Design Considerations for DDR2 SDRAM Memory Interfaces) :&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;A class="jive-link-external-small" href="http://cache.freescale.com/files/32bit/doc/app_note/AN2910.pdf"&gt;http://cache.freescale.com/files/32bit/doc/app_note/AN2910.pdf&lt;/A&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN&gt;AN3522 (DDR2 SDRAM on the ColdFire MCF5545x Microprocessor) : &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="http://cache.freescale.com/files/32bit/doc/app_note/AN3522.pdf"&gt;http://cache.freescale.com/files/32bit/doc/app_note/AN3522.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Sol&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Jul 2014 15:03:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MQX-Software-Solutions/Can-anyone-provide-the-LPDDR-init-code-for-K70/m-p/318582#M10151</guid>
      <dc:creator>soledad</dc:creator>
      <dc:date>2014-07-11T15:03:00Z</dc:date>
    </item>
  </channel>
</rss>

