<?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のトピックi.MX53/compact 7 MMU problem</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/i-MX53-compact-7-MMU-problem/m-p/207524#M12087</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;I have a custom i.MX53 board running compact 7. The BSP is cloned from IMX53 ARD Mobility. I am booting from SDIO, boots until it enables the MMU and starts to execute at the virtual address. At that point it is in the weeds. The IMX53 ARD mobility bsp had 1GB of DDR3 RAM my board has 512MB of DDR3 RAM. In the project I have environment variable "imgram512" set. Any suggestions on why it gets lost when switching to virtual world?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Area in startup.s that program gets lost:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ACTIVATEMMU&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; The 1st Level Section Descriptors are setup. Initialize the MMU and turn it on.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, #1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p15, 0, r1, c3, c0, 0&amp;nbsp;&amp;nbsp; ; Set up access to domain 0.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, #0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p15, 0, r0, c8, c7, 0&amp;nbsp;&amp;nbsp; ; Flush the instruction and data TLBs.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p15, 0, r1, c7, c10, 4&amp;nbsp; ; Drain the write and fill buffers.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mrc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p15, 0, r1, c1, c0, 0&amp;nbsp;&amp;nbsp; ; Read control register&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; orr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, r1, #0x1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Enable MMU.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; orr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, r1, #0x1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Enable IC.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; orr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, r1, #0x4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Enable DC.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r4, =VirtualStart&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Get virtual address of 'VirtualStart' label.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r4, #0&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; ; Make sure no stall on "mov pc,r4" below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p15, 0, r1, c1, c0, 0&amp;nbsp;&amp;nbsp; ; Enable MMU and caches&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pc, r4&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; ; Jump to virtual address&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&lt;/P&gt;&lt;P&gt;ALIGN&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; We are now running virtual address space.&lt;/P&gt;&lt;P&gt;VirtualStart&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;additional information&amp;nbsp; address of mov pc, r4&amp;nbsp; 0x7000_1608 , address of VitualStart 0x8004_2608&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 03 Oct 2012 18:14:03 GMT</pubDate>
    <dc:creator>c393</dc:creator>
    <dc:date>2012-10-03T18:14:03Z</dc:date>
    <item>
      <title>i.MX53/compact 7 MMU problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX53-compact-7-MMU-problem/m-p/207524#M12087</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;I have a custom i.MX53 board running compact 7. The BSP is cloned from IMX53 ARD Mobility. I am booting from SDIO, boots until it enables the MMU and starts to execute at the virtual address. At that point it is in the weeds. The IMX53 ARD mobility bsp had 1GB of DDR3 RAM my board has 512MB of DDR3 RAM. In the project I have environment variable "imgram512" set. Any suggestions on why it gets lost when switching to virtual world?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Area in startup.s that program gets lost:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ACTIVATEMMU&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; The 1st Level Section Descriptors are setup. Initialize the MMU and turn it on.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, #1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p15, 0, r1, c3, c0, 0&amp;nbsp;&amp;nbsp; ; Set up access to domain 0.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, #0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p15, 0, r0, c8, c7, 0&amp;nbsp;&amp;nbsp; ; Flush the instruction and data TLBs.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p15, 0, r1, c7, c10, 4&amp;nbsp; ; Drain the write and fill buffers.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mrc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p15, 0, r1, c1, c0, 0&amp;nbsp;&amp;nbsp; ; Read control register&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; orr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, r1, #0x1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Enable MMU.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; orr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, r1, #0x1000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Enable IC.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; orr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, r1, #0x4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Enable DC.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r4, =VirtualStart&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Get virtual address of 'VirtualStart' label.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r4, #0&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; ; Make sure no stall on "mov pc,r4" below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p15, 0, r1, c1, c0, 0&amp;nbsp;&amp;nbsp; ; Enable MMU and caches&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pc, r4&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; ; Jump to virtual address&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop&lt;/P&gt;&lt;P&gt;ALIGN&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; We are now running virtual address space.&lt;/P&gt;&lt;P&gt;VirtualStart&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;additional information&amp;nbsp; address of mov pc, r4&amp;nbsp; 0x7000_1608 , address of VitualStart 0x8004_2608&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Oct 2012 18:14:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX53-compact-7-MMU-problem/m-p/207524#M12087</guid>
      <dc:creator>c393</dc:creator>
      <dc:date>2012-10-03T18:14:03Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX53/compact 7 MMU problem</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX53-compact-7-MMU-problem/m-p/207525#M12088</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Your issue has nothing to do with 512M/1G memory. If your DDR init script is correct, such different DDR configuration will only impact NK not eboot. And since you have already set IMGRAM512, even in NK there should be no problem with 512M DDR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This issue is also not a MMU problem. MMU is a standard unit in the ARM core, as long as you reuse all the ARM init code from original MX53 ARD BSP, MMU should work without any problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your issue should be configuration issue. I don't remember the exact virtual address, but I feel your virtual address has a 4k offset (0x70001608 vs 0x80042608). Did you change anything in bib files (eboot.bib/config.bib) or other files which may impact the virtual address configuration in your BSP?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Since you have the debug tool to trace the code, another suggestion is that you can try Freescale's default BSP on MX53 SMD or ARD board (if you have these boards :smileyhappy:) and check the physical address / virtual address to quick confirm if this is the cause of your issue.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 Oct 2012 03:39:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX53-compact-7-MMU-problem/m-p/207525#M12088</guid>
      <dc:creator>JerryZeng</dc:creator>
      <dc:date>2012-10-09T03:39:46Z</dc:date>
    </item>
  </channel>
</rss>

