<?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: AP Core TLB not ready on boot (P2020) in PowerQUICC Processors</title>
    <link>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994002#M3085</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;gt;&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;2. Set the BPTR at 0x00800000 (and enable page translation)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Please consider that in the&amp;nbsp;P2020 QorIQ Integrated Processor Reference Manual,&amp;nbsp;4.4.4 Boot page translation register (Reset_BPTR) it is written:&lt;/P&gt;&lt;P&gt;"8–31&lt;BR /&gt;BOOT_PAGE&lt;BR /&gt;Translation for boot page. If enabled, the high order &lt;STRONG&gt;24 bits&lt;/STRONG&gt; of accesses to 0x&lt;STRONG&gt;0_FFFF_F&lt;/STRONG&gt;nnn are replaced&amp;nbsp;with this value."&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="BPTR.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/102445iFC5974FBB3DC6849/image-size/large?v=v2&amp;amp;px=999" role="button" title="BPTR.jpg" alt="BPTR.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For the address 0x0_00800000 it is needed to set BPTR=0x80000800&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 21 Feb 2020 04:08:17 GMT</pubDate>
    <dc:creator>ufedor</dc:creator>
    <dc:date>2020-02-21T04:08:17Z</dc:date>
    <item>
      <title>AP Core TLB not ready on boot (P2020)</title>
      <link>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994001#M3084</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am writing a bootloader (I cannot use U-Boot in my project) that starts the Core 1 of the P2020 as follows:&lt;/P&gt;&lt;P&gt;1. Copy the Core 1 boot core to 0x00800000 (with branch at 0x00800FFC).&lt;/P&gt;&lt;P&gt;2. Set the BPTR at 0x00800000 (and enable page translation)&lt;/P&gt;&lt;P&gt;3. Release the Core1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, I see while debuging that the Core1 boots correctly to 0x00800FFC, but the TLB is not correct. Indeed it still&amp;nbsp;translates to 0xFFFFF000 -&amp;gt;&amp;nbsp;&lt;SPAN&gt;0xFFFFF000 for the entry 0.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;So Core 1 crashes.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;When I update the TLB by hand thanks to the debuger and set the entry 0 to translate: &lt;SPAN&gt;0x00800000&lt;/SPAN&gt;&amp;nbsp;-&amp;gt; &lt;SPAN&gt;0x00800000 it works and the Core 1 is able to boot and works perfectly!&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;I am sure I am missing something during the initialization but cannot find it. Do you have any idea on how to debug this?&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Feb 2020 21:57:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994001#M3084</guid>
      <dc:creator>alexy_torres-au</dc:creator>
      <dc:date>2020-02-20T21:57:13Z</dc:date>
    </item>
    <item>
      <title>Re: AP Core TLB not ready on boot (P2020)</title>
      <link>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994002#M3085</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;gt;&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;2. Set the BPTR at 0x00800000 (and enable page translation)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Please consider that in the&amp;nbsp;P2020 QorIQ Integrated Processor Reference Manual,&amp;nbsp;4.4.4 Boot page translation register (Reset_BPTR) it is written:&lt;/P&gt;&lt;P&gt;"8–31&lt;BR /&gt;BOOT_PAGE&lt;BR /&gt;Translation for boot page. If enabled, the high order &lt;STRONG&gt;24 bits&lt;/STRONG&gt; of accesses to 0x&lt;STRONG&gt;0_FFFF_F&lt;/STRONG&gt;nnn are replaced&amp;nbsp;with this value."&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="BPTR.jpg"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/102445iFC5974FBB3DC6849/image-size/large?v=v2&amp;amp;px=999" role="button" title="BPTR.jpg" alt="BPTR.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For the address 0x0_00800000 it is needed to set BPTR=0x80000800&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Feb 2020 04:08:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994002#M3085</guid>
      <dc:creator>ufedor</dc:creator>
      <dc:date>2020-02-21T04:08:17Z</dc:date>
    </item>
    <item>
      <title>Re: AP Core TLB not ready on boot (P2020)</title>
      <link>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994003#M3086</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes sorry I should have been more precise. I set the BPTR to point to 0x00800000 so I set it to&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;BPTR=0x80000800.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffff; color: #51626f; "&gt;According to what you wrote this is already how I set it. Sorry for the confusion and thank you for the precision.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Feb 2020 04:19:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994003#M3086</guid>
      <dc:creator>alexy_torres-au</dc:creator>
      <dc:date>2020-02-21T04:19:58Z</dc:date>
    </item>
    <item>
      <title>Re: AP Core TLB not ready on boot (P2020)</title>
      <link>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994004#M3087</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please confirm that you have configured LAW for the address 0x00800000.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Feb 2020 07:44:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994004#M3087</guid>
      <dc:creator>ufedor</dc:creator>
      <dc:date>2020-02-21T07:44:55Z</dc:date>
    </item>
    <item>
      <title>Re: AP Core TLB not ready on boot (P2020)</title>
      <link>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994005#M3088</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I configured a LAW of 1gb starting at 0x0000_0000. Core 0 correctly runs with this configuration and core 1 too if I set the tlb manually before the first fetch.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Feb 2020 11:24:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994005#M3088</guid>
      <dc:creator>alexy_torres-au</dc:creator>
      <dc:date>2020-02-21T11:24:06Z</dc:date>
    </item>
    <item>
      <title>Re: AP Core TLB not ready on boot (P2020)</title>
      <link>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994006#M3089</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You wrote:&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;Indeed it still&amp;nbsp;translates to 0xFFFFF000 -&amp;gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;0xFFFFF000 for the entry 0.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;And this is correct - refer to the&amp;nbsp;P2020 QorIQ Integrated Processor Reference Manual,&amp;nbsp;4.3.3 Boot page translation.&lt;/P&gt;&lt;P&gt;BPTR (if enabled) works with real/physical address after MMU translation is performed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please provide screenshot of a debugger window showing assembler code&amp;nbsp;starting from&amp;nbsp;address 0x00800FE0.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 21 Feb 2020 12:50:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994006#M3089</guid>
      <dc:creator>ufedor</dc:creator>
      <dc:date>2020-02-21T12:50:09Z</dc:date>
    </item>
    <item>
      <title>Re: AP Core TLB not ready on boot (P2020)</title>
      <link>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994007#M3090</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here is the screenshot, you can also find information about the LAW in the upper right corner.&lt;span class="lia-inline-image-display-wrapper" image-alt="Screenshot from 2020-02-21 20-57-03.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/102579iDDFCC5513A0E336C/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot from 2020-02-21 20-57-03.png" alt="Screenshot from 2020-02-21 20-57-03.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 22 Feb 2020 01:59:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994007#M3090</guid>
      <dc:creator>alexy_torres-au</dc:creator>
      <dc:date>2020-02-22T01:59:12Z</dc:date>
    </item>
    <item>
      <title>Re: AP Core TLB not ready on boot (P2020)</title>
      <link>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994008#M3091</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please provide screenshot for the code at &lt;EM&gt;physical&lt;/EM&gt; address&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;0x00800FFC.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 22 Feb 2020 04:50:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994008#M3091</guid>
      <dc:creator>ufedor</dc:creator>
      <dc:date>2020-02-22T04:50:31Z</dc:date>
    </item>
    <item>
      <title>Re: AP Core TLB not ready on boot (P2020)</title>
      <link>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994009#M3092</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry I didnt see the address on the screenshot was 0xFFFFFFFC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is a screenshot at 0x00800FFC (physical):&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Screenshot from 2020-02-24 12-14-19.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/48644iE65719E088BBE4C0/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot from 2020-02-24 12-14-19.png" alt="Screenshot from 2020-02-24 12-14-19.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the code used to enable core 1:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;volatile unsigned int* bptr_reg;&lt;BR /&gt; &lt;BR /&gt; printf("Booting CPU1 \n\r");&lt;BR /&gt; &lt;BR /&gt; /* Change the BPTR value to point to 0x800000 (boot page) */&lt;BR /&gt; bptr_reg = (unsigned int*)(CCSBAR_BPTR_OFFSET + CCSBAR_BASE_ADDR);&lt;BR /&gt; *bptr_reg = 0x80000800;&lt;BR /&gt; &lt;BR /&gt; copy_boot();&lt;BR /&gt;&lt;BR /&gt; /* Kickstart the CPU 1 */&lt;BR /&gt; asm volatile (&lt;BR /&gt; "isync\n\t"&lt;BR /&gt; "msync\n\t"&lt;BR /&gt; "isync\n\t"&lt;BR /&gt; "lis 4, 0xE000\n\t"&lt;BR /&gt; "lis 3, 0x0200\n\t"&lt;BR /&gt; "lwz 5, 0x1010(4)\n\t"&lt;BR /&gt; "or 3, 3, 5\n\t"&lt;BR /&gt; "stw 3, 0x1010(4)\n\t"&lt;BR /&gt; :&lt;BR /&gt; :&lt;BR /&gt; :&lt;BR /&gt; );&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;copy_boot just copies the boot code to the boot page.&lt;/P&gt;&lt;P&gt;Here is the boot code for Core 1:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;__ap_start:&lt;/P&gt;&lt;P&gt;# Enable MCHK and debug &lt;BR /&gt; lis r3, 0x0200&lt;BR /&gt; ori r3, r3, 0x1200&lt;BR /&gt; mtmsr r3&lt;/P&gt;&lt;P&gt;# Manage L1 Caches &lt;BR /&gt; li r3, 0x2&lt;BR /&gt; mtspr 0x3F2,r3 /* invalidate d-cache */&lt;BR /&gt; mtspr 0x3F3,r3 /* invalidate i-cache */&lt;BR /&gt; &lt;BR /&gt;# Map Kernel &lt;BR /&gt; create_tlb1_entry 1, 9, 1, 0, 0, BOOKE_PAGESZ_16M, 0, \&lt;BR /&gt; MAS2_G, 0, MAS3_SW | MAS3_SR | MAS3_SX | MAS3_UW | MAS3_UX | MAS3_UR);&lt;BR /&gt; &lt;BR /&gt;# Set stack&lt;BR /&gt; lis r3, 0xFF&lt;BR /&gt; mr r1, r3&lt;BR /&gt; &lt;BR /&gt;# Jump to init AP C function.&lt;BR /&gt;loop_inf:&lt;BR /&gt; b loop_inf&lt;/P&gt;&lt;P&gt;__ap_start_end:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;# Rest of the boot page until 0xFFC is padded with 0&lt;/P&gt;&lt;P&gt;__ap_reset:&lt;BR /&gt; ba 0x800000&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;But the code seems to crash when fetching the first instruction.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Feb 2020 18:22:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994009#M3092</guid>
      <dc:creator>alexy_torres-au</dc:creator>
      <dc:date>2020-02-24T18:22:00Z</dc:date>
    </item>
    <item>
      <title>Re: AP Core TLB not ready on boot (P2020)</title>
      <link>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994010#M3093</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #f6f6f6;"&gt;ba 0x800000&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is your problem.&lt;/P&gt;&lt;P&gt;You have to use relative addressing - not absolute.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Feb 2020 03:35:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994010#M3093</guid>
      <dc:creator>ufedor</dc:creator>
      <dc:date>2020-02-25T03:35:39Z</dc:date>
    </item>
    <item>
      <title>Re: AP Core TLB not ready on boot (P2020)</title>
      <link>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994011#M3094</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Definitely my problem. It works with a relative branch.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I didn't understand correctly the role of the BPTR and did not understand that the translation was done after the CPU, I thought it was a register the CPU was loading at reset and setting its TLB accordingly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the clarification!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Feb 2020 23:33:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/PowerQUICC-Processors/AP-Core-TLB-not-ready-on-boot-P2020/m-p/994011#M3094</guid>
      <dc:creator>alexy_torres-au</dc:creator>
      <dc:date>2020-02-25T23:33:11Z</dc:date>
    </item>
  </channel>
</rss>

