<?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: MMU Level 3 table configuration on s32g274a a53 core in Processor Expert Software</title>
    <link>https://community.nxp.com/t5/Processor-Expert-Software/MMU-Level-3-table-configuration-on-s32g274a-a53-core/m-p/1662799#M5607</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;This seems to be related directly to the A53 architecture, which might be supported from ARM support team, rather than the S32G team. Help us sending this inquiry to the ARM support team, for them to provide better support than the one we could provide. We do apologize.&lt;/P&gt;
&lt;P&gt;Please, let us know.&lt;/P&gt;</description>
    <pubDate>Fri, 02 Jun 2023 17:07:26 GMT</pubDate>
    <dc:creator>Daniel-Aguirre</dc:creator>
    <dc:date>2023-06-02T17:07:26Z</dc:date>
    <item>
      <title>MMU Level 3 table configuration on s32g274a a53 core</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/MMU-Level-3-table-configuration-on-s32g274a-a53-core/m-p/1661602#M5599</link>
      <description>&lt;P&gt;Hello Experts,&lt;/P&gt;&lt;P&gt;I have a problem with establishing the level 3 table in MMU for cortex-a53 in s32g274a processor. Level 1 and Level2 table works as expected but I need a 4KB memory block for my project. Below is the code that I wrote to configure the mmu. Could someone look at what is wrongly set so that the level 3 table is not configured correctly? &amp;nbsp;&lt;/P&gt;&lt;P&gt;MOV x0, #0x44 /* Inner/outer cacheable WB */&lt;BR /&gt;MSR mair_el3, x0&lt;BR /&gt;/* Invalidate TLBs at the current exception level */&lt;BR /&gt;TLBI alle3&lt;/P&gt;&lt;P&gt;/* RES1&lt;BR /&gt;RES1&lt;BR /&gt;PS 40-bit&lt;BR /&gt;ORGN0 outer WB no WA cacheable&lt;BR /&gt;IRGN0 inner WB no WA cacheable&lt;BR /&gt;T0SZ 39-bit region size */&lt;BR /&gt;LDR x0, =(1 &amp;lt;&amp;lt; 31) | (1 &amp;lt;&amp;lt; 23) | (2 &amp;lt;&amp;lt; 16) | (3 &amp;lt;&amp;lt; 10) | (3 &amp;lt;&amp;lt; &lt;LI-EMOJI id="lia_smiling-face-with-sunglasses" title=":smiling_face_with_sunglasses:"&gt;&lt;/LI-EMOJI&gt; | 25&lt;BR /&gt;MSR tcr_el3, x0&lt;/P&gt;&lt;P&gt;/* Page table setup */&lt;/P&gt;&lt;P&gt;LDR x1, =ttb // Address of L1 table&lt;/P&gt;&lt;P&gt;//0x0000,0000 - 0x3FFF,FFFF&lt;BR /&gt;LDR x2, =ttb1 // Get address of L2 table&lt;BR /&gt;MOV x0, #0x03 // Entry template for pointer to next level table&lt;BR /&gt;ORR x0, x0, x2 // Combine template with L2 table Base address&lt;BR /&gt;STR x0, [x1]&lt;/P&gt;&lt;P&gt;//0x4000,0000 - 0x7FFF,FFFF&lt;BR /&gt;MOV x0, #0x405 // Entry template&lt;BR /&gt;&lt;BR /&gt;ORR x0, x0, #0x40000000 // 'OR' template with base physical address&lt;BR /&gt;STR x0, [x1, #8]&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;LDR x1, =ttb1 // Address of L2 table&lt;/P&gt;&lt;P&gt;//0x0000,0000 - 0x2000,0000&lt;BR /&gt;MOV x0, #0x401&lt;BR /&gt;MOV x2, #0x100&lt;BR /&gt;1:&lt;BR /&gt;STR x0, [x1], #8&lt;BR /&gt;ADD x0, x0, #0x200000 // Increment the physical address field&lt;BR /&gt;SUB x2, x2, #1&lt;BR /&gt;CBNZ x2, 1b&lt;/P&gt;&lt;P&gt;//0x2000,0000 - 0x3400,0000 (Fault)&lt;BR /&gt;MOV x0, #0x0&lt;BR /&gt;ORR x0, x0, #0x20000000 // 'OR' template with base physical address&lt;BR /&gt;MOV x2, #0xA0&lt;BR /&gt;1:&lt;BR /&gt;STR x0, [x1], #8&lt;BR /&gt;ADD x0, x0, #0x200000 // Increment the physical address field&lt;BR /&gt;SUB x2, x2, #1&lt;BR /&gt;CBNZ x2, 1b&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//0x3400,0000 - 0x3480,0000 (SDRAM)&lt;/P&gt;&lt;P&gt;mov x0, #0x401&lt;BR /&gt;MOV x6, #0x34000000&lt;BR /&gt;ORR x0, x0, x6 // 'OR' template with base physical address&lt;BR /&gt;MOV x2, #2&lt;BR /&gt;1:&lt;BR /&gt;STR x0, [x1], #8&lt;BR /&gt;ADD x0, x0, #0x200000 // Increment the physical address field&lt;BR /&gt;SUB x2, x2, #1&lt;BR /&gt;CBNZ x2, 1b&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;LDR x2, =ttb2 // Get address of L3 table&lt;BR /&gt;MOV x0, #0x03 // Entry template for pointer to next level table&lt;BR /&gt;ORR x0, x0, x2 // Combine template with L3 table&lt;BR /&gt;STR x0, [x1]&lt;/P&gt;&lt;P&gt;MOV x0, #0x405 // Entry template&lt;/P&gt;&lt;P&gt;MOV x6, #0x34600000&lt;BR /&gt;ORR x0, x0, x6 // 'OR' template with base physical address&lt;BR /&gt;STR x0, [x1, #8]&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;LDR x1, =ttb2 // Address of L3 table&lt;/P&gt;&lt;P&gt;//0x3440,0000 - 0x3460,0000&lt;BR /&gt;MOV x0, #0x401&lt;BR /&gt;MOV x6, #0x34400000&lt;BR /&gt;ORR x0, x0, x6 // 'OR' template with base physical address&lt;BR /&gt;MOV x2, #0x200&lt;BR /&gt;1:&lt;BR /&gt;STR x0, [x1], #8&lt;BR /&gt;ADD x0, x0, #0x1000 // Increment the physical address field&lt;BR /&gt;SUB x2, x2, #1&lt;BR /&gt;CBNZ x2, 1b&lt;BR /&gt;DSB SY&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/* Ensure all translation table writes have drained into memory,&lt;BR /&gt;the TLB invalidation is complete,&lt;BR /&gt;and translation register writes are committed before enabling the MMU */&lt;BR /&gt;DSB ISH&lt;BR /&gt;ISB&lt;BR /&gt;LDR x0, =ttb // Address of L1 table&lt;BR /&gt;MSR ttbr0_el3, x0 // set TTBR&lt;/P&gt;&lt;P&gt;MRS x0, S3_1_c15_c2_1 // cpuectlr_el1&lt;BR /&gt;ORR x0, x0, #0x40&lt;BR /&gt;MSR S3_1_c15_c2_1, x0&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;MRS x0, sctlr_el3&lt;BR /&gt;bic x0, x0, #(1 &amp;lt;&amp;lt; 1) /* clear A, disable alignment fault check */&lt;BR /&gt;/* I enable instruction cache&lt;BR /&gt;C enable data and unified caches&lt;BR /&gt;M enable EL3 MMU */&lt;BR /&gt;LDR x1, =(1 &amp;lt;&amp;lt; 12) | (1 &amp;lt;&amp;lt; 2) | 1&lt;BR /&gt;ORR x0, x0, x1 /* set bits */&lt;BR /&gt;MSR sctlr_el3, x0&lt;BR /&gt;/* Ensure the MMU enable takes effect immediately */&lt;BR /&gt;ISB&lt;/P&gt;</description>
      <pubDate>Thu, 01 Jun 2023 07:53:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/MMU-Level-3-table-configuration-on-s32g274a-a53-core/m-p/1661602#M5599</guid>
      <dc:creator>Greenhal</dc:creator>
      <dc:date>2023-06-01T07:53:55Z</dc:date>
    </item>
    <item>
      <title>Re: MMU Level 3 table configuration on s32g274a a53 core</title>
      <link>https://community.nxp.com/t5/Processor-Expert-Software/MMU-Level-3-table-configuration-on-s32g274a-a53-core/m-p/1662799#M5607</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;This seems to be related directly to the A53 architecture, which might be supported from ARM support team, rather than the S32G team. Help us sending this inquiry to the ARM support team, for them to provide better support than the one we could provide. We do apologize.&lt;/P&gt;
&lt;P&gt;Please, let us know.&lt;/P&gt;</description>
      <pubDate>Fri, 02 Jun 2023 17:07:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Processor-Expert-Software/MMU-Level-3-table-configuration-on-s32g274a-a53-core/m-p/1662799#M5607</guid>
      <dc:creator>Daniel-Aguirre</dc:creator>
      <dc:date>2023-06-02T17:07:26Z</dc:date>
    </item>
  </channel>
</rss>

