<?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: MCF54416 UBOOT Debugging in ColdFire/68K Microcontrollers and Processors</title>
    <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54416-UBOOT-Debugging/m-p/146453#M3265</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;gt; And it showes that only DDR_CR41 is different. uboot.bin is using 0x00C80064﻿,&lt;/P&gt;&lt;P&gt;&amp;gt; and working project is using 0x00000064.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The obvious thing to do is to change U-Boot to match the "working project". Have you tried that? Did it start working?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt; What this meaning?﻿&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Reference Manual has a chapter on the SDR/DDR controller. It has a section listing all the registers and describing all the fields in all the registers.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That one is described as being for:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 21.4.42 DDR Control Register 41 (DDR_CR41)﻿&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31–16: TDLL: DLL lock time in cycles.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There's a &lt;FONT color="#ff0000"&gt;&lt;STRONG&gt;BIG CLUE&lt;/STRONG&gt;&lt;/FONT&gt; to your U-Boot problem where it then says:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&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; Note: &lt;FONT color="#ff0000"&gt;&lt;STRONG&gt;This field must be cleared.﻿&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;=============&lt;/P&gt;&lt;P&gt;There are 49 control registers. I've never seen a controller with so many registers! All the other manuals I've seen have a big section detailing how to set up the controller. Not this one, here's all it says:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="1"&gt;21.6 Initialization/Application Information&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;The memory controller requires a sequence for correct operation after power to the microcontroller and&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;memory devices is stable. When initialized, the memory controller automatically initializes the memory&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;devices.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;The procedure to initialize the memory controller is as follows:&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;1. Issue write register commands to configure the DRAM protocols and the settings for the DCC.﻿&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp; Keep DDR_CR09[START] cleared during this initialization step.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;2. Set DDR_CR09[START]. This triggers the memory controller to execute the initialization&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sequence using the parameters written into the registers. The memory controller waits for the PHY&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; to indicate that the PHY and memory devices are ready to accept commands.﻿&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;﻿&lt;/P&gt;&lt;P&gt;That's ALL it says. Are there any Application Notes to help set up the other 48 registers for this part?&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;&lt;P&gt;Tom&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;﻿&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 06 Jul 2011 10:26:36 GMT</pubDate>
    <dc:creator>TomE</dc:creator>
    <dc:date>2011-07-06T10:26:36Z</dc:date>
    <item>
      <title>MCF54416 UBOOT Debugging</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54416-UBOOT-Debugging/m-p/146452#M3264</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;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I have been debugging the problem for a while. So the description here will be a little bit long.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; download u-boot to spi flash and system can't boot.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1. using CodeWarrior's "load memory" to load uboot's first 1K to internal ram. we can single step while pc is still pointing to the internal SRAM. one it jump to the DDR RAM. system died.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. using CodeWarriros's "load memory" to load the uboot's first 1k and before uboot's Jump to external ram (0x47e00400), using CodeWarrio's "loading memory " to load uboot to external ram, starting from 0x47e00000. still failed . so using CW's "saving memory", found the content of the DDR RAM is different to uboot.bin.&amp;nbsp; I tried to stored three times, but three results are different and none of them is correct. FAE from freescale told me that DDR RAM reading from BDM is not trustable, but I am suspicious about this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3. we got a working project from freescale and this working project is using DDR RAM to excute. So after this project is running, we stop the system, and download the uboot.bin by "load memory" to DDR RAM.&amp;nbsp; using "storing memory" again and found that the content of the DDR RAM is matching uboot.bin. and "change program counter" to 0x47e00400, at least we saw the following from the com port.&lt;/P&gt;&lt;P&gt;U-Boot 2009.08 (Jul 01 2011 - 14:49:16)&lt;BR /&gt;&lt;BR /&gt;CPU:&amp;nbsp;&amp;nbsp; Freescale MCF54416 (Mask:a1 Version:1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CPU CLK 250 MHz BUS CLK 125 MHz FLB CLK 62.500 MHz&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INP CLK 50 MHz VCO CLK 500 MHz&lt;BR /&gt;Board: Freescale M54418 Tower System&lt;BR /&gt;SPI:&amp;nbsp;&amp;nbsp; ready&lt;BR /&gt;DRAM:&amp;nbsp; 128 MB&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;so I would conclude that DDR RAM is causing the problem. and once DDR RAM is right configured, uboot will starts to work.(may have other bugs....) I have tried to compared the DDR_CRs between uboot and working project. And it showes that only DDR_CR41 is different. uboot.bin is using 0x00C80064, and working project is using 0x00000064. What this meaning? any register will also affects DDR setting?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any suggestion to this ?&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;&lt;P&gt;Br, Chen Gang&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Jul 2011 15:25:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54416-UBOOT-Debugging/m-p/146452#M3264</guid>
      <dc:creator>gachen</dc:creator>
      <dc:date>2011-07-05T15:25:50Z</dc:date>
    </item>
    <item>
      <title>Re: MCF54416 UBOOT Debugging</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54416-UBOOT-Debugging/m-p/146453#M3265</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;gt; And it showes that only DDR_CR41 is different. uboot.bin is using 0x00C80064﻿,&lt;/P&gt;&lt;P&gt;&amp;gt; and working project is using 0x00000064.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The obvious thing to do is to change U-Boot to match the "working project". Have you tried that? Did it start working?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt; What this meaning?﻿&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Reference Manual has a chapter on the SDR/DDR controller. It has a section listing all the registers and describing all the fields in all the registers.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That one is described as being for:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 21.4.42 DDR Control Register 41 (DDR_CR41)﻿&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 31–16: TDLL: DLL lock time in cycles.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There's a &lt;FONT color="#ff0000"&gt;&lt;STRONG&gt;BIG CLUE&lt;/STRONG&gt;&lt;/FONT&gt; to your U-Boot problem where it then says:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&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; Note: &lt;FONT color="#ff0000"&gt;&lt;STRONG&gt;This field must be cleared.﻿&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;=============&lt;/P&gt;&lt;P&gt;There are 49 control registers. I've never seen a controller with so many registers! All the other manuals I've seen have a big section detailing how to set up the controller. Not this one, here's all it says:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="1"&gt;21.6 Initialization/Application Information&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;The memory controller requires a sequence for correct operation after power to the microcontroller and&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;memory devices is stable. When initialized, the memory controller automatically initializes the memory&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;devices.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;The procedure to initialize the memory controller is as follows:&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;1. Issue write register commands to configure the DRAM protocols and the settings for the DCC.﻿&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp; Keep DDR_CR09[START] cleared during this initialization step.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;2. Set DDR_CR09[START]. This triggers the memory controller to execute the initialization&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sequence using the parameters written into the registers. The memory controller waits for the PHY&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; to indicate that the PHY and memory devices are ready to accept commands.﻿&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;﻿&lt;/P&gt;&lt;P&gt;That's ALL it says. Are there any Application Notes to help set up the other 48 registers for this part?&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;&lt;P&gt;Tom&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;﻿&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Jul 2011 10:26:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54416-UBOOT-Debugging/m-p/146453#M3265</guid>
      <dc:creator>TomE</dc:creator>
      <dc:date>2011-07-06T10:26:36Z</dc:date>
    </item>
    <item>
      <title>Re: MCF54416 UBOOT Debugging</title>
      <link>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54416-UBOOT-Debugging/m-p/146454#M3266</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It turned out be the clock source matters, after changing the clock source from VCO to CORE, u-boot starts to work. DDR_CR41 doesn't matter.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Jul 2011 13:37:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/ColdFire-68K-Microcontrollers/MCF54416-UBOOT-Debugging/m-p/146454#M3266</guid>
      <dc:creator>gachen</dc:creator>
      <dc:date>2011-07-07T13:37:17Z</dc:date>
    </item>
  </channel>
</rss>

