<?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>i.MX ProcessorsのトピックRe: how to change DDR clock of i.mx6</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260472#M25939</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Yongcai,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I also hadDDR clk issue that reducing 528MHZ to 400MHZ caused u-boot halted. therefore I still use 528MHZ.&amp;nbsp; Also I am trying to figure out how to reduce 1 Gigabyte DDR3 RAM to 512Mega Bytes (half of 1 Gigabyte) in mx6 sabresd code of '/u-boot- fslc/v2016.07+gitAUTOINC+e6b42411ab-r0 ' and hardware design. Please see my 'Question X'.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;The original reference design of i.MX6 had a total of 1 Gigabyte DDR3 RAM. The implementation was using four Micron MT41K128M16 parts. Each part is a 256 Mega Bytes ( 256 M * 4 = 1Gbytes).&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;Question 1: Is there any hardware change for reducing 1 Gigabyte DDR3 RAM to 512MegaByte?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;My hardware design follows the original reference design for 1 Gigabyte DDR3 RAM, but there are only two MT41K128M16 parts soldered on a board. That means that there are only 512 Mega bytes (256M * 2 = 512 M) physical ram parts.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;To extend RAM size, there should be hardware changes. But in my case, I am trying to reduce RAM. Therefore, 1 Gigabyte RAM hardware should accommodate 512Mbyte RAM without any modification. Correct?&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;Question 2: Let's assume that there is no change in hardware which is same to 1Gbyte RAM original reference design, what should be changed in u-boot software?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Here are what MDCTL and MDMISC are shown in "MX6DL_SabreSD_DDR3_register_programming_aid_v2.1.xlsx "&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Reg name Reg address Reg value&lt;/P&gt;&lt;P&gt;MDCTL 0x021B0000 0x831A0000&lt;/P&gt;&lt;P&gt;MDMISC 0x021B0018 0x00001740&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Here is what MDCTL and MDMISC are shown in&lt;/P&gt;&lt;P&gt;"/home/sw/fsl-community-bsp/build/tmp/work/imx6dlsabresd-poky-linux-gnueabi/u-boot- fslc/v2016.07+gitAUTOINC+e6b42411ab-r0/git/board/freescale/mx6sabresd/mx6q_4x_mt41j128.cfg".&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;DATA 4 0x021b0000 0x831A0000&lt;/P&gt;&lt;P&gt;DATA 4 0x021b0018 0x00081740 (&lt;STRONG&gt;Question 3, why this value is not 0x00001740?&lt;/STRONG&gt; )&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Here is what MDCTL and MDMISC are shown in&lt;/P&gt;&lt;P&gt;"/home/sw/fsl-community-bsp/build/tmp/work/imx6dlsabresd-poky-linux-gnueabi/u-boot-fslc/v2016.07+gitAUTOINC+e6b42411ab-r0/git/board/freescale/mx6sabresd/mx6sabresd.cfg".&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;DATA 4 0x021b0000 0x831A0000&lt;/P&gt;&lt;P&gt;DATA 4 0x021b0018 0x00001740&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Here is how 1 Gbytes Ram has been calculated in&lt;/P&gt;&lt;P&gt;"/home/sw/fsl-community-bsp/build/tmp/work/imx6dlsabresd-poky-linux-gnueabi/u-boot-fslc/v2016.07+gitAUTOINC+e6b42411ab-r0/git/arch/arm/imx-common/cpu.c"&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;---------------------------code in cpu.c ---------------------------------------------------------&lt;/P&gt;&lt;P&gt;#if defined(CONFIG_MX53) || defined(CONFIG_MX6)&lt;BR /&gt;#if defined(CONFIG_MX53)&lt;BR /&gt;#define MEMCTL_BASE ESDCTL_BASE_ADDR&lt;BR /&gt;#else&lt;BR /&gt;#define MEMCTL_BASE MMDC_P0_BASE_ADDR /* &lt;STRONG&gt;Question 4: MMDC_P0_BASE_ADDR must be 0x021b0000, correct?&lt;/STRONG&gt; */ &lt;BR /&gt;#endif&lt;BR /&gt;static const unsigned char col_lookup[] = {9, 10, 11, 8, 12, 9, 9, 9}; /*&lt;STRONG&gt;Question 5: how do I know these values are correct?&lt;/STRONG&gt; */&lt;BR /&gt;static const unsigned char bank_lookup[] = {3, 2}; /*&lt;STRONG&gt;Question 6: how are these values associated with ram bank?&lt;/STRONG&gt; */&lt;/P&gt;&lt;P&gt;/* these MMDC registers are common to the IMX53 and IMX6 */&lt;BR /&gt;struct esd_mmdc_regs {&lt;BR /&gt; uint32_t ctl;&lt;BR /&gt; uint32_t pdc;&lt;BR /&gt; uint32_t otc;&lt;BR /&gt; uint32_t cfg0;&lt;BR /&gt; uint32_t cfg1;&lt;BR /&gt; uint32_t cfg2;&lt;BR /&gt; uint32_t misc;&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;#define ESD_MMDC_CTL_GET_ROW(mdctl) ((ctl &amp;gt;&amp;gt; 24) &amp;amp; 7)&lt;BR /&gt;#define ESD_MMDC_CTL_GET_COLUMN(mdctl) ((ctl &amp;gt;&amp;gt; 20) &amp;amp; 7)&lt;BR /&gt;#define ESD_MMDC_CTL_GET_WIDTH(mdctl) ((ctl &amp;gt;&amp;gt; 16) &amp;amp; 3)&lt;BR /&gt;#define ESD_MMDC_CTL_GET_CS1(mdctl) ((ctl &amp;gt;&amp;gt; 30) &amp;amp; 1)&lt;BR /&gt;#define ESD_MMDC_MISC_GET_BANK(mdmisc) ((misc &amp;gt;&amp;gt; 5) &amp;amp; 1) /*&lt;STRONG&gt; Question 7: it seems that MDMISC register needs a new value to reduce Ram from 1 Gbytes to 512 bytes. What is the exact value ? For 1Gytes value, it is 0x00001740&lt;/STRONG&gt; */&lt;/P&gt;&lt;P&gt;/*&lt;BR /&gt; * imx_ddr_size - return size in bytes of DRAM according MMDC config&lt;BR /&gt; * The MMDC MDCTL register holds the number of bits for row, col, and data&lt;BR /&gt; * width and the MMDC MDMISC register holds the number of banks. Combine&lt;BR /&gt; * all these bits to determine the meme size the MMDC has been configured for&lt;BR /&gt; */&lt;BR /&gt;unsigned imx_ddr_size(void)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;struct esd_mmdc_regs *mem = (struct esd_mmdc_regs *)MEMCTL_BASE;&lt;BR /&gt; unsigned ctl = readl(&amp;amp;mem-&amp;gt;ctl);&lt;BR /&gt; unsigned misc = readl(&amp;amp;mem-&amp;gt;misc);&lt;BR /&gt; int bits = 11 + 0 + 0 + 1; /* row + col + bank + width */ /* Question 8: where do 11, 0, 0, 1 values come ? */&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; bits += ESD_MMDC_CTL_GET_ROW(ctl);&lt;BR /&gt; bits += col_lookup[ESD_MMDC_CTL_GET_COLUMN(ctl)];&lt;BR /&gt; bits += bank_lookup[ESD_MMDC_MISC_GET_BANK(misc)];&lt;BR /&gt; bits += ESD_MMDC_CTL_GET_WIDTH(ctl);&lt;BR /&gt; bits += ESD_MMDC_CTL_GET_CS1(ctl);&lt;/P&gt;&lt;P&gt;/* The MX6 can do only 3840 MiB of DRAM */&lt;BR /&gt; if (bits == 32)&lt;BR /&gt; return 0xf0000000;&lt;/P&gt;&lt;P&gt;return 1 &amp;lt;&amp;lt; bits;&lt;BR /&gt;}&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;-----------------------end of code in cpu.c -----------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 05 Jul 2017 18:54:11 GMT</pubDate>
    <dc:creator>wei_li</dc:creator>
    <dc:date>2017-07-05T18:54:11Z</dc:date>
    <item>
      <title>how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260448#M25915</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all, the DDR clock of i.mx6 is 528MHz on boot time, but I want to change it to lower(may be 400MHz).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I read the Datasheet and found the below introduction:&lt;/P&gt;&lt;P&gt;"&lt;/P&gt;&lt;P&gt;18.2.1.5.3 PLL clock change&lt;/P&gt;&lt;P&gt;If software wants to change pll clock output of a specific pll, or if software wants to stop&lt;/P&gt;&lt;P&gt;a specific pll, then software needs first to move all the clocks generated from this pll to&lt;/P&gt;&lt;P&gt;another pll which is not changed.&lt;/P&gt;&lt;P&gt;This should be done via the glitch less mux's for the clocks which cant be stopped (core&lt;/P&gt;&lt;P&gt;and bus clocks). &lt;SPAN style="color: #0000ff;"&gt;Procedure of PLL clock change is described in anatop module spec&lt;/SPAN&gt;.&lt;/P&gt;&lt;P&gt;"&lt;/P&gt;&lt;P&gt;But I can't found the "&lt;SPAN style="color: #0000ff;"&gt;anatop module spec&lt;/SPAN&gt;".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By the way, in i.mx5,the clock is configure int the file of "&lt;SPAN style="color: #0000ff;"&gt;lowlevel_init.S&lt;/SPAN&gt;" by the macro of "&lt;SPAN style="color: #0000ff;"&gt;init_clock&lt;/SPAN&gt;" &amp;amp; "&lt;SPAN style="color: #0000ff;"&gt;setup_pll pll, freq&lt;/SPAN&gt;", &lt;/P&gt;&lt;P&gt;But in i.mx6,the macro of "setup_pll pll, freq" is empty and "&lt;SPAN style="color: #0000ff;"&gt;PLL1, PLL2, and PLL3 are configured by ROM&lt;/SPAN&gt;", so I have no idea of how to change DDR clock of i.mx6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If anyone can help me please?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 Apr 2013 08:37:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260448#M25915</guid>
      <dc:creator>Tony_Luo</dc:creator>
      <dc:date>2013-04-10T08:37:54Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260449#M25916</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Tony&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; See below code for reference, it makes the DDR's clock root from 396M PFD.&amp;nbsp; if you want to make DDR running at 400M, you need to switch periph_clk to 400M, which is MMDC clock's parent, and periph_clk is from pre_periph_clk, so you need to switch it from 528M PLL2 to 396M PFD. Normally, 528M DDR script should work for 400M, but if you find it can NOT work, then maybe DDR script need improvement. BTW, you can set CCM_CCOSR to output mmdc_axi_ch0's clock root to CLKO pin, then you can monitor whether it is the frequency you need.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* Init the DDR according the init script */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r0, =CCM_BASE_ADDR&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* select 400MHz for pre_periph_clk_sel */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00060324&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x18]&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Apr 2013 09:30:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260449#M25916</guid>
      <dc:creator>AnsonHuang</dc:creator>
      <dc:date>2013-04-11T09:30:46Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260450#M25917</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;BTW, this code should be done before DDR init, normally it should be in flash_header.S, if you use DCD mode, then you should add these config into DCD items.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Apr 2013 09:32:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260450#M25917</guid>
      <dc:creator>AnsonHuang</dc:creator>
      <dc:date>2013-04-11T09:32:09Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260451#M25918</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Yongcai,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks so much for pointing me to the DCD table feature. But I add the CCM config into DCD items between IOMUXC items and MMDC items like below:&lt;/P&gt;&lt;P&gt;"&lt;/P&gt;&lt;P&gt;MXC_DCD_ITEM(37, IOMUXC_BASE_ADDR + 0x758, 0x00000000)&lt;/P&gt;&lt;P&gt;MXC_DCD_ITEM(38, IOMUXC_BASE_ADDR + 0x774, 0x00020000)&lt;/P&gt;&lt;P&gt;MXC_DCD_ITEM(39, IOMUXC_BASE_ADDR + 0x78c, 0x00000030)&lt;/P&gt;&lt;P&gt;MXC_DCD_ITEM(40, IOMUXC_BASE_ADDR + 0x798, 0x000C0000)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MXC_DCD_ITEM(41, CCM_BASE_ADDR + 0x18, 0x00060324)&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; //add here&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MXC_DCD_ITEM(42, MMDC_P0_BASE_ADDR + 0x81c, 0x33333333)&lt;/P&gt;&lt;P&gt;MXC_DCD_ITEM(43, MMDC_P0_BASE_ADDR + 0x820, 0x33333333)&lt;/P&gt;&lt;P&gt;MXC_DCD_ITEM(44, MMDC_P0_BASE_ADDR + 0x824, 0x33333333)&lt;/P&gt;&lt;P&gt;MXC_DCD_ITEM(45, MMDC_P0_BASE_ADDR + 0x828, 0x33333333)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;and the MfgTool load u-boot fail and info "Reason is unknown,failed to run comman".&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Apr 2013 06:55:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260451#M25918</guid>
      <dc:creator>Tony_Luo</dc:creator>
      <dc:date>2013-04-12T06:55:19Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260452#M25919</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Tony&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If you add one item to DCD table, some parameters need to be changed, please search the below two lines code, the DCD length must be changed, such as below, if there is 59 items, then Len = 59*8+4+4=0x1E0, so there is E001 in the dcd_hdr, and same as write_dcd_cmd, it is DC01. You can try it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; 66 dcd_hdr:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .word 0x40E001D2 /* Tag=0xD2, Len=59*8 + 4 + 4, Ver=0x40 */&lt;/P&gt;&lt;P&gt; 67 write_dcd_cmd:&amp;nbsp;&amp;nbsp;&amp;nbsp; .word 0x04DC01CC /* Tag=0xCC, Len=59*8 + 4, Param=0x04 */&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Apr 2013 07:03:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260452#M25919</guid>
      <dc:creator>AnsonHuang</dc:creator>
      <dc:date>2013-04-12T07:03:22Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260453#M25920</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Yongcai,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks for your quick replying, I have changed the "dcd_hdr" and "write_dcd_cmd" to the right value,but get the same error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; By the way, what I use is Sabrelite, and please see the attach file for my modify.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Apr 2013 07:37:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260453#M25920</guid>
      <dc:creator>Tony_Luo</dc:creator>
      <dc:date>2013-04-12T07:37:57Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260454#M25921</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Tony&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If so, then I guess you need to adjust DDR script to make it work at 400M. The DDR script means those DCD items of MMDC configure.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 12 Apr 2013 08:22:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260454#M25921</guid>
      <dc:creator>AnsonHuang</dc:creator>
      <dc:date>2013-04-12T08:22:58Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260455#M25922</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; we also have a custom board based on mx6sabrelite and we need to reduce the DDR speed to 500Mhz instead of the 528Mhz as the final solution. Maybe for now the 400Mhz should be enough, but I cannot get it to work with the indication found in this post. I was hoping someone could give me some pointers....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using the latest u-boot release 2013.04 and it seems that the DDR initialisation structure changed a little bit. It seems there is no more flash_header.S and the way the DCD structure is declared as changed... &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I modify the following line in board\freescale\imx\ddr\mx6q_4x_mt41j128.cfg, but for now the boot hang...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA 4 0x020e0774 0x00020000&lt;/P&gt;&lt;P&gt;DATA 4 0x020e078c 0x00000030&lt;/P&gt;&lt;P&gt;DATA 4 0x020e0798 0x000C0000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*************MY ADDITION**************&lt;/P&gt;&lt;P&gt;DATA 4 0x020C4018 0x00060324&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/********************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA 4 0x021b081c 0x33333333&lt;/P&gt;&lt;P&gt;DATA 4 0x021b0820 0x33333333&lt;/P&gt;&lt;P&gt;DATA 4 0x021b0824 0x33333333&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any ideas will be welcome&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;best regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Patrice&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Jun 2013 19:42:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260455#M25922</guid>
      <dc:creator>patricesarrasin</dc:creator>
      <dc:date>2013-06-19T19:42:46Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260456#M25923</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Patrice,&lt;/P&gt;&lt;P&gt;i am working on a similar issue but on a sabre SD board. Have you tried the u-boot command &lt;EM&gt;clk&lt;/EM&gt;? just stop the booting process on U-boot and type &lt;EM&gt;clk ddr 400.&lt;/EM&gt; This is not a permanent change but at least in the testing phase it can help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Leo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 19 Jun 2013 20:10:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260456#M25923</guid>
      <dc:creator>LeonardoSandova</dc:creator>
      <dc:date>2013-06-19T20:10:58Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260457#M25924</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;There was some code to modify the DDR clock and do the calibration ( see attached files). It worked in baremetal and I was trying to integrate inside u-boot... For now, I didn't find the correct place to put it inside u-boot. I have to find the place where I can implement this logic before we the jump into RAM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any ideas for the correct place?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pat&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Jun 2013 11:49:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260457#M25924</guid>
      <dc:creator>patricesarrasin</dc:creator>
      <dc:date>2013-06-20T11:49:30Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260458#M25925</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;Hi,&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; which u-boot are you using? In my version this command doesn't exist... I am trying to do the integration of it from the source code I found here:&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;A class="jive-link-external-small" href="https://github.com/bandwidthcrunch/u-boot-gazelle/blob/master/common/cmd_clk.c" style="font-style: inherit; font-family: inherit; color: #3778c7;"&gt;u-boot-gazelle/common/cmd_clk.c at master · bandwidthcrunch/u-boot-gazelle · GitHub&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;Thanks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;Pat&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Jun 2013 11:50:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260458#M25925</guid>
      <dc:creator>patricesarrasin</dc:creator>
      <dc:date>2013-06-20T11:50:21Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260459#M25926</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, all&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If I remembered right, we didn't support changing DDR clk in runtime under uboot. Which means if you want a dedicated DDR freq, you need to change the DCD table as you mentioned upper, which is in charge of DDR controller's initialization. Different DDR freq may need different DDR script(DCD setting) to make it work stably.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Jun 2013 10:52:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260459#M25926</guid>
      <dc:creator>AnsonHuang</dc:creator>
      <dc:date>2013-06-21T10:52:28Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260460#M25927</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ok thanks for info! I will stop trying to change it in runtime under u-boot... Do you already have a working script for 500Mhz or 400Mhz so I can based myself on it?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pat&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Jun 2013 11:24:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260460#M25927</guid>
      <dc:creator>patricesarrasin</dc:creator>
      <dc:date>2013-06-21T11:24:42Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260461#M25928</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Pat&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sorry, I don't have a 500M script, I only have a flash_header when I was trying 400M on iMX6Q sabresd board, this is a debug version, the script is not the latest one, you can try it to see whether it works on your board first, and you should contact the DDR owner to get the latest script for 400M.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Init the DDR according the init script */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r0, =CCM_BASE_ADDR&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* select 400MHz for pre_periph_clk_sel */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00060324&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x18]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /* 64-bit DDR3 */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* IOMUX setting */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r0, =IOMUXC_BASE_ADDR&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov r1, #0x30&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x5a8]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x5b0]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x524]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x51c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x518]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x50c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x5b8]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x5c0]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00020030&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x5ac]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x5b4]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x528]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x520]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x514]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x510]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x5bc]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x5c4]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x56c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x578]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x588]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x594]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x57c]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00003000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x590]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x598]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov r1, #0x00&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x58c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00003030&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x59c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x5a0]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00000030&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x784]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x788]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x794]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x79c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x7a0]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x7a4]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x7a8]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x748]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x74c]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov r1, #0x00020000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x750]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov r1, #0x00000000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x758]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov r1, #0x00020000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x774]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov r1, #0x30&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x78c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov r1, #0x000c0000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x798]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize 2GB DDR3 - Micron MT41J128M */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r0, =MMDC_P0_BASE_ADDR&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r2, =MMDC_P1_BASE_ADDR&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x02020207&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x83c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x02020201&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x840]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x02020207&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r2,#0x83c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x02150203&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r2,#0x840]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x3E35353B&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x848]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x3A393541&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r2,#0x848]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x41424744&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x850]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x4937483B&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r2,#0x850]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x33333333&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x81c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x820]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x824]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x828]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r2,#0x81c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r2,#0x820]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r2,#0x824]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r2,#0x828]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00081740&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x18]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00008000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x1c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x555b99a4&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x0c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0xfe730e64&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x10]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x01ff00db&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x14]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x000026d2&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x2c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x005b0e21&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x30]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x1b334000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x08]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x0003002d&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x04]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00000027&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x40]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0xc31a0000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x00]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00000800&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x8b8]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x04088032&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x1c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x0408803a&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x1c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00008033&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x1c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x0000803b&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x1c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00428031&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x1c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00428039&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x1c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x09308030&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x1c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x09308038&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x1c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x04008040&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x1c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x04008048&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x1c]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0xa5380003&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x800]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00005800&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x20]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00022221&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x818]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00022221&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r2,#0x818]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1, =0x00000000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str r1, [r0,#0x1c]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Jun 2013 07:12:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260461#M25928</guid>
      <dc:creator>AnsonHuang</dc:creator>
      <dc:date>2013-06-26T07:12:30Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260462#M25929</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not to go off-topic, but on another board my company made (based on a Samsung chipset) there was an issue with DDR initialization. Simply put, when writing values to the DDR, we weren't able to read the same values. Due to limited documentation, the team fixed that issue with 'trial-and-error'. Basically testing out different combinations for the DDR settings until they found something that worked; obviously it took them a long time to fix things.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm worried about facing the same problem with an upcoming iMX6 dual core board we are designing. From what I've understood with this discussion, the DDR gets initialized in the boot ROM and neither uboot nor linux touch that initialization afterwards. Is this correct? The reference board we have is the iMX6 sabresd (quad core). From the schematics, I understand that its databus is 64bits with 1GB worth of DDR3. Our target board is designed with a databus of 32-bits of 1GB DDR3, using chipsets from a different manufacturer. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is the DCD table as defined in the uboot source file "board/freescale/mx6q_sabresd/flash_header.S" my only point for DDR configuration? (I'm using the uboot obtained from git://git.freescale.com/imx/uboot-imx.git as suggested by the 'Android_User_Guide.pdf' document) Or am I missing something obvious?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Jul 2013 14:46:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260462#M25929</guid>
      <dc:creator>abraham_v</dc:creator>
      <dc:date>2013-07-25T14:46:47Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260463#M25930</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Abraham,&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; I have the same understanding as you, the DDR is initialize in the first couple of call to the CPU before U-Boot is copied into RAM. After that nobody touch it... You will probably have to adjust the DDR configuration file depending on your memory chipset. The DDR configuration file (&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;board/freescale/mx6q_sabresd/flash_header.S&lt;/SPAN&gt; or board\freescale\imx\ddr\mx6q_4x_mt41j128.cfg) depend on which version of u-boot you are using. The latest u-boot version use the .cfg file. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me know if you have more quesitons, I will try my best to help you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Patrice&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Jul 2013 14:58:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260463#M25930</guid>
      <dc:creator>patricesarrasin</dc:creator>
      <dc:date>2013-07-25T14:58:55Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260464#M25931</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for your reply Patrice.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Its good to know that I'm not the only developer who came to the conclusion that the DDR cannot be configured AFTER uboot starts. But that puzzles me too. The iMX6 reference manual has a chapter called "Multi Mode DDR Controller" (chapter 44) which speaks of configuring the MMDC with information like DDR type ... etc. If, as a developer I can't access (or do anything meaningful) with the registers it mentions, why bother with having such a chapter at all?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Off to decypher the DCD table,&lt;/P&gt;&lt;P&gt;Abraham V.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 25 Jul 2013 15:38:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260464#M25931</guid>
      <dc:creator>abraham_v</dc:creator>
      <dc:date>2013-07-25T15:38:12Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260465#M25932</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN class="j-post-author"&gt;&lt;STRONG&gt;&lt;A href="https://community.nxp.com/people/AnsonHuang"&gt;AnsonHuang&lt;/A&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Slowing the DDR3 clock rate down to 396MHz&amp;nbsp; it's not as easy as it seems.&lt;/P&gt;&lt;P&gt;1 ERR006282&lt;/P&gt;&lt;P&gt;ROM code uses nonreset PFDs to generate clocks, which may&lt;/P&gt;&lt;P&gt;lead to random boot failures&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2 i.mx6q Linux kernel is hardcoded to ddr3 528M &lt;/P&gt;&lt;P&gt;&lt;A href="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/tree/arch/arm/mach-mx6/bus_freq.c?h=imx_3.0.35_4.1.0#n52" title="http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/tree/arch/arm/mach-mx6/bus_freq.c?h=imx_3.0.35_4.1.0#n52"&gt;linux-2.6-imx.git - Freescale i.MX Linux Tree&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Mar 2014 09:23:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260465#M25932</guid>
      <dc:creator>Sasamy</dc:creator>
      <dc:date>2014-03-06T09:23:43Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260466#M25933</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Alex&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ERR006282 is not impacting slowing down DDR3 clock rate to 396MHz, as long as uboot can boot up from SD, there is no PFD issue. For the hardcode of ddr3 to 528M, it is only for busfreq, you can disable busfreq if it is not useful for you. If you still want to use busfreq, then it needs some modification to make the highest setpoint as 396MHz, we ever support that, you can refer to i.MX6DL's code path in busfreq, it is 396MHz.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Mar 2014 02:10:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260466#M25933</guid>
      <dc:creator>AnsonHuang</dc:creator>
      <dc:date>2014-03-07T02:10:01Z</dc:date>
    </item>
    <item>
      <title>Re: how to change DDR clock of i.mx6</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260467#M25934</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Yongcai Huang, Thanks for your answer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1 You are right,but it is necessary to disable gate/ungate 528_PFD2 for i.mx6q in u-booot&lt;/P&gt;&lt;P&gt;&lt;A href="http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/tree/cpu/arm_cortexa8/mx6/generic.c?h=imx_v2009.08_3.0.35_4.1.0#n1054" title="http://git.freescale.com/git/cgit.cgi/imx/uboot-imx.git/tree/cpu/arm_cortexa8/mx6/generic.c?h=imx_v2009.08_3.0.35_4.1.0#n1054"&gt;uboot-imx.git - Freescale i.MX u-boot Tree&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2 I will be grateful for your advice - how to disable bus_freq correctly, enough to simply disable it in Makefile ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Mar 2014 08:49:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/how-to-change-DDR-clock-of-i-mx6/m-p/260467#M25934</guid>
      <dc:creator>Sasamy</dc:creator>
      <dc:date>2014-03-07T08:49:19Z</dc:date>
    </item>
  </channel>
</rss>

