<?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: i.MX7D PU_IROM_MMU_EN_VAR address in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709509#M110294</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Bryan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tested this on u-boot&amp;nbsp;imx_v2016.03_4.1.15_2.0.0_ga branch which is a u-boot release from NXP BSP and this issue does not occur. Please test using this u-boot branch and let me know your results.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Utkarsh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 20 Oct 2017 20:02:28 GMT</pubDate>
    <dc:creator>utkarsh_gupta</dc:creator>
    <dc:date>2017-10-20T20:02:28Z</dc:date>
    <item>
      <title>i.MX7D PU_IROM_MMU_EN_VAR address</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709504#M110289</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;Looking at u-boot for the i.MX6 we see the following addresses&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;+#define MX6DQ_PU_IROM_MMU_EN_VAR 0x009024a8&lt;BR /&gt;+#define MX6DLS_PU_IROM_MMU_EN_VAR 0x00901dd0&lt;BR /&gt;+#define MX6SL_PU_IROM_MMU_EN_VAR 0x00900a18&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;associated with this code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&amp;nbsp;/*&lt;BR /&gt;&amp;nbsp;* If the MMU is enabled, we have to notify the ROM&lt;BR /&gt;&amp;nbsp;* code, or it won't flush the caches when needed.&lt;BR /&gt;&amp;nbsp;* This is done, by setting the "pu_irom_mmu_enabled"&lt;BR /&gt;&amp;nbsp;* word to 1. You can find its address by looking in&lt;BR /&gt;&amp;nbsp;* the ROM map. This is critical for&lt;BR /&gt;&amp;nbsp;* authenticate_image(). If MMU is enabled, without&lt;BR /&gt;&amp;nbsp;* setting this bit, authentication will fail and may&lt;BR /&gt;&amp;nbsp;* crash.&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;&amp;nbsp;/* Check MMU enabled */&lt;BR /&gt;&amp;nbsp;if (get_cr() &amp;amp; CR_M) {&lt;BR /&gt;&amp;nbsp;if (is_cpu_type(MXC_CPU_MX6Q) ||&lt;BR /&gt;&amp;nbsp;is_cpu_type(MXC_CPU_MX6D)) {&lt;BR /&gt;&amp;nbsp;/*&lt;BR /&gt;&amp;nbsp;* This won't work on Rev 1.0.0 of&lt;BR /&gt;&amp;nbsp;* i.MX6Q/D, since their ROM doesn't&lt;BR /&gt;&amp;nbsp;* do cache flushes. don't think any&lt;BR /&gt;&amp;nbsp;* exist, so we ignore them.&lt;BR /&gt;&amp;nbsp;*/&lt;BR /&gt;&amp;nbsp;writel(1, MX6DQ_PU_IROM_MMU_EN_VAR);&lt;BR /&gt;&amp;nbsp;} else if (is_cpu_type(MXC_CPU_MX6DL) ||&lt;BR /&gt;&amp;nbsp;is_cpu_type(MXC_CPU_MX6SOLO)) {&lt;BR /&gt;&amp;nbsp;writel(1, MX6DLS_PU_IROM_MMU_EN_VAR);&lt;BR /&gt;&amp;nbsp;} else if (is_cpu_type(MXC_CPU_MX6SL)) {&lt;BR /&gt;&amp;nbsp;writel(1, MX6SL_PU_IROM_MMU_EN_VAR);&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm getting a weird bug on i.MX7 where if I call authenticate_image() with dcache on for a particular image it never returns from ROM - however if I disable dcache before authenticate_image() and re-enable it directly after, the routine authenticates the image trouble free.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there a requirement to inform the IROM on i.MX7 in a similar fashion to i.MX6 in terms of writing a register to tell the IROM to perform a flush when MMU is on ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't see the i.MX6 requirement documented nor do I see the above hard-coded addresses document for i.MX6 (perhaps I'm not looking in the right place) - which is why I'm asking for i.MX7.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If the i.MX7 requires a similar write to a register to tell IROM what to-do could NXP share that information - i.e. address location and appropriate bits to write ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If not any insights as to why disabling dache before authenticate_image() should make a difference to the stability of the authenticate_image() callback would be highly appreciated.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Oct 2017 12:21:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709504#M110289</guid>
      <dc:creator>bryan_odonoghue</dc:creator>
      <dc:date>2017-10-18T12:21:49Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX7D PU_IROM_MMU_EN_VAR address</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709505#M110290</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For reference here is a fix that works for me&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;+ dcache_disable();&lt;BR /&gt; load_addr = (uint32_t)hab_rvt_authenticate_image(&lt;BR /&gt; HAB_CID_UBOOT,&lt;BR /&gt; ivt_offset, (void **)&amp;amp;start,&lt;BR /&gt; (size_t *)&amp;amp;bytes, NULL);&lt;BR /&gt;+ dcache_enable();&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Oct 2017 12:26:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709505#M110290</guid>
      <dc:creator>bryan_odonoghue</dc:creator>
      <dc:date>2017-10-18T12:26:11Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX7D PU_IROM_MMU_EN_VAR address</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709506#M110291</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Bryan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Which release branch of u-boot are you working with?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Utkarsh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Oct 2017 19:31:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709506#M110291</guid>
      <dc:creator>utkarsh_gupta</dc:creator>
      <dc:date>2017-10-19T19:31:21Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX7D PU_IROM_MMU_EN_VAR address</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709507#M110292</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Utkarsh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Relevant u-boot base is&lt;/P&gt;&lt;P&gt;* 1989374 - configs: Finish migration of PHY_GIGE (2 months ago).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;gcc:&lt;/P&gt;&lt;P&gt;arm-linux-gnueabihf-gcc -v&lt;BR /&gt;Using built-in specs.&lt;BR /&gt;COLLECT_GCC=arm-linux-gnueabihf-gcc&lt;BR /&gt;COLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/arm-linux-gnueabihf/5/lto-wrapper&lt;BR /&gt;Target: arm-linux-gnueabihf&lt;BR /&gt;Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-armhf-cross/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-armhf-cross --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-armhf-cross --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libgcj --enable-objc-gc --enable-multiarch --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --disable-werror --enable-multilib --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-linux-gnueabihf --program-prefix=arm-linux-gnueabihf- --includedir=/usr/arm-linux-gnueabihf/include&lt;BR /&gt;Thread model: posix&lt;BR /&gt;gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ld:&lt;/P&gt;&lt;P&gt;arm-linux-gnueabihf-ld -v&lt;BR /&gt;GNU ld (GNU Binutils for Ubuntu) 2.26.1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The interesting thing is if I run images B, A, C through authenticate_image() instead of image A, B, C there's no problem.&lt;/P&gt;&lt;P&gt;If I switch off the dcache - B, A, C or A, B, C or any other combination works.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There definitely seems to be some relationship between the dcache and the lockup.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I might be able to share an image with you guys offline that shows the lockup. Since I don't have a JTAG header on the board I can't do much deep inspection at the moment.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Oct 2017 19:57:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709507#M110292</guid>
      <dc:creator>bryan_odonoghue</dc:creator>
      <dc:date>2017-10-19T19:57:18Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX7D PU_IROM_MMU_EN_VAR address</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709508#M110293</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Bryan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am not sure what A B C are.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Which repository does this u-boot belong to? Also are you working on an open chip or closed chip?&lt;/P&gt;&lt;P&gt;Are you working on a MX7 NXP reference board? If yes then please provide which board and the boot images with it and I can test here.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Utkarsh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Oct 2017 23:19:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709508#M110293</guid>
      <dc:creator>utkarsh_gupta</dc:creator>
      <dc:date>2017-10-19T23:19:54Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX7D PU_IROM_MMU_EN_VAR address</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709509#M110294</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Bryan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tested this on u-boot&amp;nbsp;imx_v2016.03_4.1.15_2.0.0_ga branch which is a u-boot release from NXP BSP and this issue does not occur. Please test using this u-boot branch and let me know your results.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Utkarsh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Oct 2017 20:02:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709509#M110294</guid>
      <dc:creator>utkarsh_gupta</dc:creator>
      <dc:date>2017-10-20T20:02:28Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX7D PU_IROM_MMU_EN_VAR address</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709510#M110295</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Hi Utkarsh&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Let me see if I can find a way to share our binaries with you. I'm assuming you have an I.mx7 board with a jtag.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;I'd like to give you the same image twice one with and one without dcache enabled.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Oct 2017 23:00:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX7D-PU-IROM-MMU-EN-VAR-address/m-p/709510#M110295</guid>
      <dc:creator>bryan_odonoghue</dc:creator>
      <dc:date>2017-10-20T23:00:48Z</dc:date>
    </item>
  </channel>
</rss>

