<?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 initialization for MPC5777C in MPC5xxx</title>
    <link>https://community.nxp.com/t5/MPC5xxx/MMU-initialization-for-MPC5777C/m-p/671024#M7744</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;Nice spam. Why do you not used attach file?&lt;/P&gt;&lt;P&gt;In general you can use whatever you want. If you will use MMU init from startup file of S32DS I see no issue here.&lt;/P&gt;&lt;P&gt;If you need to initialize MMU in some "not general" way, then it is up to you to do modifications.&lt;/P&gt;&lt;P&gt;Peter&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 09 May 2017 13:44:30 GMT</pubDate>
    <dc:creator>petervlna</dc:creator>
    <dc:date>2017-05-09T13:44:30Z</dc:date>
    <item>
      <title>MMU initialization for MPC5777C</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MMU-initialization-for-MPC5777C/m-p/671021#M7741</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am looking for MMU initilization for MPC5777C MCU. Can someone help with example or reference document for MMU programming in S32 IDE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Vrushali&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 May 2017 06:49:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MMU-initialization-for-MPC5777C/m-p/671021#M7741</guid>
      <dc:creator>vrushalitaklika</dc:creator>
      <dc:date>2017-05-08T06:49:04Z</dc:date>
    </item>
    <item>
      <title>Re: MMU initialization for MPC5777C</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MMU-initialization-for-MPC5777C/m-p/671022#M7742</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;There MMU is described in core reference manual:&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="http://cache.nxp.com/assets/documents/data/en/reference-manuals/e200z760RM.pdf?fsrch=1&amp;amp;sr=1&amp;amp;pageNum=1" title="http://cache.nxp.com/assets/documents/data/en/reference-manuals/e200z760RM.pdf?fsrch=1&amp;amp;sr=1&amp;amp;pageNum=1"&gt;http://cache.nxp.com/assets/documents/data/en/reference-manuals/e200z760RM.pdf?fsrch=1&amp;amp;sr=1&amp;amp;pageNum=1&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And here is the example of TLB configuration:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #808080;"&gt;#*****************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;# configure the MMU&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;#*****************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e_lis&amp;nbsp;&amp;nbsp; r3,0x1001&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mtspr&amp;nbsp;&amp;nbsp; mas0,r3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e_lis&amp;nbsp;&amp;nbsp; r3,0xC000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e_or2i&amp;nbsp; r3,0x0700&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mtspr&amp;nbsp;&amp;nbsp; mas1,r3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e_lis&amp;nbsp;&amp;nbsp; r3,0x0000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e_or2i&amp;nbsp; r3,0x0020&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mtspr&amp;nbsp;&amp;nbsp; mas2,r3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e_lis&amp;nbsp;&amp;nbsp; r3,0x0000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; e_or2i&amp;nbsp; r3,0x003F&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mtspr&amp;nbsp;&amp;nbsp; mas3,r3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; msync&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Synchronize in case running from flash&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tlbwe&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #808080;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; se_isync&amp;nbsp; # Synchronize in case running from flash&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;You could also check our example codes here:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;&lt;A href="https://community.nxp.com/docs/DOC-329623"&gt;https://community.nxp.com/docs/DOC-329623&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;Peter&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 May 2017 07:05:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MMU-initialization-for-MPC5777C/m-p/671022#M7742</guid>
      <dc:creator>petervlna</dc:creator>
      <dc:date>2017-05-08T07:05:01Z</dc:date>
    </item>
    <item>
      <title>Re: MMU initialization for MPC5777C</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MMU-initialization-for-MPC5777C/m-p/671023#M7743</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can we use the MMU initialisation given in startup.s file which is created when new project is created in studio s32&lt;/P&gt;&lt;P&gt;Here iscode from statup.s file&lt;/P&gt;&lt;P&gt;#ifdef __ghs__ /* GreenHills */&lt;BR /&gt; .section .startup, axv&lt;BR /&gt; .vle&lt;/P&gt;&lt;P&gt;.align 3 ;# 8 bytes&lt;/P&gt;&lt;P&gt;.extern main&lt;BR /&gt; .extern __SRAM_SIZE&lt;BR /&gt; .extern __SRAM_BASE_ADDR&lt;BR /&gt; .extern __DATA_SIZE&lt;BR /&gt; .extern __DATA_ROM_ADDR&lt;BR /&gt; .extern __DATA_SRAM_ADDR&lt;BR /&gt; .extern __SDATA_SIZE&lt;BR /&gt; .extern __SDATA_ROM_ADDR&lt;BR /&gt; .extern __SDATA_SRAM_ADDR&lt;BR /&gt; .extern __BSS_START&lt;BR /&gt; .extern __BSS_END&lt;BR /&gt; .extern __BSS_SIZE&lt;BR /&gt; .extern __SP_INIT&lt;BR /&gt; .extern _SDA_BASE_&lt;BR /&gt; .extern _SDA2_BASE_&lt;BR /&gt;#endif&lt;BR /&gt;#ifdef __GNUC__ /* GCC */&lt;BR /&gt; .section .startup, "ax"&lt;BR /&gt;#endif&lt;BR /&gt;#ifdef __DCC__ /* Diab */&lt;BR /&gt; .section ".startup",4,rx&lt;BR /&gt;#endif&lt;BR /&gt; .globl _start&lt;BR /&gt; &lt;BR /&gt;_start:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;;#****************************** Turn off SWTs ********************************&lt;BR /&gt;#if defined(DISABLE_SWTA)&lt;BR /&gt;;#SWT_A&lt;BR /&gt; e_lis r4, 0xFFF3&lt;BR /&gt; e_or2i r4, 0x8000&lt;/P&gt;&lt;P&gt;e_li r3, 0xC520&lt;BR /&gt; e_stw r3, 0x10(r4)&lt;/P&gt;&lt;P&gt;e_li r3, 0xD928&lt;BR /&gt; e_stw r3, 0x10(r4)&lt;/P&gt;&lt;P&gt;e_lis r3, 0xFF00&lt;BR /&gt; e_or2i r3, 0x010A&lt;BR /&gt; e_stw r3, 0(r4)&lt;BR /&gt;#endif&lt;BR /&gt;#if defined(MMU_CONFIG)&lt;BR /&gt;;&lt;STRONG&gt;#****************************** MMU configuration ********************************&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_lis r3, 0x1001&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 624, r3&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r4, 0xC000&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r4, 0x0480&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 625, r4&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r5, 0x4000&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r5, 0x0028&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 626, r5&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r6, 0x4000&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r6, 0x003f&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 627, r6&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;tlbwe&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r3, 0x1000&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 624, r3&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r4, 0xC000&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r4, 0x0700&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 625, r4&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r5, 0x0000&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r5, 0x0020&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 626, r5&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r6,0x0000&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r6, 0x003f&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 627, r6&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;tlbwe&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r3, 0x1002&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 624, r3&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r4, 0xC000&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r4, 0x0580&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 625, r4&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r5, 0xFFE0&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r5, 0x002A&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 626, r5&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r6, 0xFFE0&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r6, 0x003f&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 627, r6&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;tlbwe&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r3, 0x1003&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 624, r3&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r4, 0xC000&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r4, 0x0700&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 625, r4&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r5, 0x2000&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r5, 0x0020&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 626, r5&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r6,0x0000&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r6, 0x003f&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 627, r6&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;tlbwe&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r3, 0x1004&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 624, r3&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r4, 0xC000&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r4, 0x0580&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 625, r4&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r5, 0xC3E0&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r5, 0x002A&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 626, r5&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;e_lis r6, 0xC3E0&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; e_or2i r6, 0x003f&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt; mtspr 627, r6&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;tlbwe&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;#endif&lt;/STRONG&gt;&lt;BR /&gt;;#*********************** Turn off Core Watchdog Timer*************************&lt;BR /&gt; e_li r3, 0x0000&lt;BR /&gt; mtspr 340, r3&lt;/P&gt;&lt;P&gt;;#********************************* Enable BTB ********************************&lt;BR /&gt;;# Flush &amp;amp; Enable BTB - Set BBFI bit in BUCSR&lt;BR /&gt; e_li r3, 0x201&lt;BR /&gt; mtspr 1013, r3&lt;BR /&gt; se_isync&lt;/P&gt;&lt;P&gt;;#**************************** Init Core Registers ****************************&lt;BR /&gt;;# The E200Z4 core needs its registers initialising before they are used&lt;BR /&gt;;# otherwise in Lock Step mode the two cores will contain different random data.&lt;BR /&gt;;# If this is stored to memory (e.g. stacked) it will cause a Lock Step error.&lt;/P&gt;&lt;P&gt;;# GPRs 0-31&lt;BR /&gt; e_li r0, 0&lt;BR /&gt; e_li r1, 0&lt;BR /&gt; e_li r2, 0&lt;BR /&gt; e_li r3, 0&lt;BR /&gt; e_li r4, 0&lt;BR /&gt; e_li r5, 0&lt;BR /&gt; e_li r6, 0&lt;BR /&gt; e_li r7, 0&lt;BR /&gt; e_li r8, 0&lt;BR /&gt; e_li r9, 0&lt;BR /&gt; e_li r10, 0&lt;BR /&gt; e_li r11, 0&lt;BR /&gt; e_li r12, 0&lt;BR /&gt; e_li r13, 0&lt;BR /&gt; e_li r14, 0&lt;BR /&gt; e_li r15, 0&lt;BR /&gt; e_li r16, 0&lt;BR /&gt; e_li r17, 0&lt;BR /&gt; e_li r18, 0&lt;BR /&gt; e_li r19, 0&lt;BR /&gt; e_li r20, 0&lt;BR /&gt; e_li r21, 0&lt;BR /&gt; e_li r22, 0&lt;BR /&gt; e_li r23, 0&lt;BR /&gt; e_li r24, 0&lt;BR /&gt; e_li r25, 0&lt;BR /&gt; e_li r26, 0&lt;BR /&gt; e_li r27, 0&lt;BR /&gt; e_li r28, 0&lt;BR /&gt; e_li r29, 0&lt;BR /&gt; e_li r30, 0&lt;BR /&gt; e_li r31, 0&lt;/P&gt;&lt;P&gt;;# Init any other CPU register which might be stacked (before being used).&lt;/P&gt;&lt;P&gt;mtspr 1, r1 ;#XER&lt;BR /&gt; mtcrf 0xFF, r1&lt;BR /&gt; mtspr CTR, r1&lt;BR /&gt; mtspr 272, r1 ;#SPRG0&lt;BR /&gt; mtspr 273, r1 ;#SPRG1&lt;BR /&gt; mtspr 274, r1 ;#SPRG2&lt;BR /&gt; mtspr 275, r1 ;#SPRG3&lt;BR /&gt; mtspr 58, r1 ;#CSRR0&lt;BR /&gt; mtspr 59, r1 ;#CSRR1&lt;BR /&gt; mtspr 570, r1 ;#MCSRR0&lt;BR /&gt; mtspr 571, r1 ;#MCSRR1&lt;BR /&gt; mtspr 61, r1 ;#DEAR&lt;BR /&gt; mtspr 63, r1 ;#IVPR&lt;BR /&gt; mtspr 256, r1 ;#USPRG0&lt;BR /&gt; mtspr 62, r1 ;#ESR&lt;BR /&gt; mtspr 8,r31 ;#LR&lt;/P&gt;&lt;P&gt;#ifdef START_FROM_FLASH&lt;BR /&gt;;#***************************** Initialise SRAM ECC ***************************/&lt;BR /&gt;;# Store number of 128Byte (32GPRs) segments in Counter&lt;BR /&gt; e_lis r5, __SRAM_SIZE@h # Initialize r5 to size of SRAM (Bytes)&lt;BR /&gt; e_or2i r5, __SRAM_SIZE@l&lt;BR /&gt; e_srwi r5, r5, 0x7 # Divide SRAM size by 128&lt;BR /&gt; mtctr r5 # Move to counter for use with "bdnz"&lt;/P&gt;&lt;P&gt;;# Base Address of the internal SRAM&lt;BR /&gt; e_lis r5, __SRAM_BASE_ADDR@h&lt;BR /&gt; e_or2i r5, __SRAM_BASE_ADDR@l&lt;/P&gt;&lt;P&gt;;# Fill SRAM with writes of 32GPRs&lt;BR /&gt;sram_loop:&lt;BR /&gt; e_stmw r0,0(r5) # Write all 32 registers to SRAM&lt;BR /&gt; e_addi r5,r5,128 # Increment the RAM pointer to next 128bytes&lt;BR /&gt; e_bdnz sram_loop # Loop for all of SRAM&lt;BR /&gt;#endif&lt;BR /&gt; &lt;BR /&gt;;#*************** Load Initialised Data Values from Flash into RAM ************/&lt;BR /&gt;;# Initialised Data - ".data"&lt;BR /&gt;DATACOPY:&lt;BR /&gt; e_lis r9, __DATA_SIZE@ha # Load upper SRAM load size (# of bytes) into R9&lt;BR /&gt; e_or2i r9, __DATA_SIZE@l # Load lower SRAM load size into R9 &lt;BR /&gt; e_cmp16i r9,0 # Compare to see if equal to 0 &lt;BR /&gt; e_beq SDATACOPY # Exit cfg_ROMCPY if size is zero (no data to initialise)&lt;BR /&gt; &lt;BR /&gt; mtctr r9 # Store no. of bytes to be moved in counter&lt;BR /&gt; &lt;BR /&gt; e_lis r10, __DATA_ROM_ADDR@h # Load address of first SRAM load into R10&lt;BR /&gt; e_or2i r10, __DATA_ROM_ADDR@l # Load lower address of SRAM load into R10&lt;BR /&gt; e_subi r10,r10, 1 # Decrement address to prepare for ROMCPYLOOP&lt;/P&gt;&lt;P&gt;e_lis r5, __DATA_SRAM_ADDR@h # Load upper SRAM address into R5 (from linker file)&lt;BR /&gt; e_or2i r5, __DATA_SRAM_ADDR@l # Load lower SRAM address into R5 (from linker file)&lt;BR /&gt; e_subi r5, r5, 1 # Decrement address to prepare for ROMCPYLOOP&lt;/P&gt;&lt;P&gt;DATACPYLOOP:&lt;BR /&gt; e_lbzu r4, 1(r10) # Load data byte at R10 into R4,incrementing (update) ROM address&lt;BR /&gt; e_stbu r4, 1(r5) # Store R4 data byte into SRAM at R5 and update SRAM address &lt;BR /&gt; e_bdnz DATACPYLOOP # Branch if more bytes to load from ROM&lt;/P&gt;&lt;P&gt;;# Small Initialised Data - ".sdata"&lt;BR /&gt;SDATACOPY: &lt;BR /&gt; e_lis r9, __SDATA_SIZE@ha # Load upper SRAM load size (# of bytes) into R9&lt;BR /&gt; e_or2i r9, __SDATA_SIZE@l # Load lower SRAM load size into R9 &lt;BR /&gt; e_cmp16i r9,0 # Compare to see if equal to 0 &lt;BR /&gt; e_beq ROMCPYEND # Exit cfg_ROMCPY if size is zero (no data to initialise)&lt;BR /&gt; &lt;BR /&gt; mtctr r9 # Store no. of bytes to be moved in counter&lt;BR /&gt; &lt;BR /&gt; e_lis r10, __SDATA_ROM_ADDR@h # Load address of first SRAM load into R10&lt;BR /&gt; e_or2i r10, __SDATA_ROM_ADDR@l # Load lower address of SRAM load into R10&lt;BR /&gt; e_subi r10,r10, 1 # Decrement address to prepare for ROMCPYLOOP&lt;/P&gt;&lt;P&gt;e_lis r5, __SDATA_SRAM_ADDR@h # Load upper SRAM address into R5 (from linker file)&lt;BR /&gt; e_or2i r5, __SDATA_SRAM_ADDR@l # Load lower SRAM address into R5 (from linker file)&lt;BR /&gt; e_subi r5, r5, 1 # Decrement address to prepare for ROMCPYLOOP&lt;/P&gt;&lt;P&gt;SDATACPYLOOP:&lt;BR /&gt; e_lbzu r4, 1(r10) # Load data byte at R10 into R4,incrementing (update) ROM address&lt;BR /&gt; e_stbu r4, 1(r5) # Store R4 data byte into SRAM at R5 and update SRAM address &lt;BR /&gt; e_bdnz SDATACPYLOOP # Branch if more bytes to load from ROM&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt;ROMCPYEND:&lt;/P&gt;&lt;P&gt;;#*************************** Enable ME Bit in MSR *****************************&lt;BR /&gt; mfmsr r6&lt;BR /&gt; e_or2i r6,0x1000&lt;BR /&gt; mtmsr r6&lt;/P&gt;&lt;P&gt;;#*************************** Enable SPE Bit in MSR *****************************&lt;BR /&gt; mfmsr r3&lt;BR /&gt; e_or2is r3,0x0200&lt;BR /&gt; mtmsr r3&lt;/P&gt;&lt;P&gt;;#****************** Invalidate and Enable the Instruction cache **************&lt;BR /&gt;__icache_cfg:&lt;BR /&gt; e_li r5, 0x2&lt;BR /&gt; mtspr 1011,r5&lt;/P&gt;&lt;P&gt;e_li r7, 0x4&lt;BR /&gt; e_li r8, 0x2&lt;BR /&gt; ;#e_lwi r11, 0xFFFFFFFB&lt;BR /&gt; e_lis r11,0xFFFF&lt;BR /&gt; e_or2i r11,0xFFFB&lt;/P&gt;&lt;P&gt;__icache_inv:&lt;BR /&gt; mfspr r9, 1011&lt;BR /&gt; and. r10, r7, r9&lt;BR /&gt; e_beq __icache_no_abort&lt;BR /&gt; and. r10, r11, r9&lt;BR /&gt; mtspr 1011, r10&lt;BR /&gt; e_b __icache_cfg&lt;/P&gt;&lt;P&gt;__icache_no_abort:&lt;BR /&gt; and. r10, r8, r9&lt;BR /&gt; e_bne __icache_inv&lt;/P&gt;&lt;P&gt;mfspr r5, 1011&lt;BR /&gt; e_ori r5, r5, 0x0001&lt;BR /&gt; se_isync&lt;BR /&gt; ;#msync&lt;BR /&gt; mtspr 1011, r5&lt;/P&gt;&lt;P&gt;;#****************** Invalidate and Enable the Data cache **************&lt;BR /&gt;__dcache_cfg:&lt;BR /&gt; e_li r5, 0x2&lt;BR /&gt; mtspr 1010,r5&lt;/P&gt;&lt;P&gt;e_li r7, 0x4&lt;BR /&gt; e_li r8, 0x2&lt;BR /&gt; e_lis r11,0xFFFF&lt;BR /&gt; e_or2i r11,0xFFFB&lt;/P&gt;&lt;P&gt;__dcache_inv:&lt;BR /&gt; mfspr r9, 1010&lt;BR /&gt; and. r10, r7, r9&lt;BR /&gt; e_beq __dcache_no_abort&lt;BR /&gt; and. r10, r11, r9&lt;BR /&gt; mtspr 1010, r10&lt;BR /&gt; e_b __dcache_cfg&lt;/P&gt;&lt;P&gt;__dcache_no_abort:&lt;BR /&gt; and. r10, r8, r9&lt;BR /&gt; e_bne __dcache_inv&lt;/P&gt;&lt;P&gt;mfspr r5, 1010&lt;BR /&gt; e_ori r5, r5, 0x0001&lt;BR /&gt; se_isync&lt;BR /&gt; msync&lt;BR /&gt; mtspr 1010, r5&lt;/P&gt;&lt;P&gt;;#****************************** Initialize BSS section ******************************/&lt;BR /&gt;bss_Init:&lt;BR /&gt; e_lis r9, __BSS_SIZE@h # Load upper BSS load size (# of bytes) into R9&lt;BR /&gt; e_or2i r9, __BSS_SIZE@l # Load lower BSS load size into R9 and compare to zero&lt;BR /&gt; e_cmp16i r9,0&lt;BR /&gt; e_beq bss_Init_end # Exit if size is zero (no data to initialise)&lt;/P&gt;&lt;P&gt;mtctr r9 # Store no. of bytes to be moved in counter&lt;/P&gt;&lt;P&gt;e_lis r5, __BSS_START@h # Load upper BSS address into R5 (from linker file)&lt;BR /&gt; e_or2i r5, __BSS_START@l # Load lower BSS address into R5 (from linker file)&lt;BR /&gt; e_subi r5, r5, 1 # Decrement address to prepare for bss_Init_loop&lt;/P&gt;&lt;P&gt;e_lis r4, 0x0&lt;/P&gt;&lt;P&gt;bss_Init_loop:&lt;BR /&gt; e_stbu r4, 1(r5) # Store zero byte into BSS at R5 and update BSS address&lt;BR /&gt; e_bdnz bss_Init_loop # Branch if more bytes to load&lt;/P&gt;&lt;P&gt;bss_Init_end:&lt;/P&gt;&lt;P&gt;;#****************************** Configure Stack ******************************/&lt;BR /&gt; e_lis r1, __SP_INIT@h ;# Initialize stack pointer r1 to&lt;BR /&gt; e_or2i r1, __SP_INIT@l ;# value in linker command file.&lt;/P&gt;&lt;P&gt;e_lis r13, _SDA_BASE_@h ;# Initialize r13 to sdata base&lt;BR /&gt; e_or2i r13, _SDA_BASE_@l ;# (provided by linker).&lt;/P&gt;&lt;P&gt;e_lis r2, _SDA2_BASE_@h ;# Initialize r2 to sdata2 base&lt;BR /&gt; e_or2i r2, _SDA2_BASE_@l ;# (provided by linker).&lt;/P&gt;&lt;P&gt;e_stwu r0,-64(r1) ;# Terminate stack.&lt;BR /&gt; &lt;BR /&gt;#if defined(HW_INIT)&lt;BR /&gt;;# perform hardware init prior to main&lt;BR /&gt; e_bl hw_init&lt;BR /&gt;#endif&lt;BR /&gt;;# Jump to Main&lt;BR /&gt; e_bl main&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 May 2017 07:21:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MMU-initialization-for-MPC5777C/m-p/671023#M7743</guid>
      <dc:creator>vrushalitaklika</dc:creator>
      <dc:date>2017-05-09T07:21:56Z</dc:date>
    </item>
    <item>
      <title>Re: MMU initialization for MPC5777C</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MMU-initialization-for-MPC5777C/m-p/671024#M7744</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;Nice spam. Why do you not used attach file?&lt;/P&gt;&lt;P&gt;In general you can use whatever you want. If you will use MMU init from startup file of S32DS I see no issue here.&lt;/P&gt;&lt;P&gt;If you need to initialize MMU in some "not general" way, then it is up to you to do modifications.&lt;/P&gt;&lt;P&gt;Peter&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 May 2017 13:44:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MMU-initialization-for-MPC5777C/m-p/671024#M7744</guid>
      <dc:creator>petervlna</dc:creator>
      <dc:date>2017-05-09T13:44:30Z</dc:date>
    </item>
    <item>
      <title>Re: MMU initialization for MPC5777C</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MMU-initialization-for-MPC5777C/m-p/671025#M7745</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Petere. Sorry attachement option was not available and hence I had to copy paste everything here.&lt;/P&gt;&lt;P&gt;your reply helps..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 10 May 2017 05:18:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MMU-initialization-for-MPC5777C/m-p/671025#M7745</guid>
      <dc:creator>vrushalitaklika</dc:creator>
      <dc:date>2017-05-10T05:18:49Z</dc:date>
    </item>
  </channel>
</rss>

