<?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 Setting IIM fuses for Hardware Revision in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Setting-IIM-fuses-for-Hardware-Revision/m-p/174054#M6226</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm running linux 2.6.35 on a iMX53 QSB and on my own hardware&lt;/P&gt;&lt;P&gt;It seems that u-boot uses iim fuses to determine the board hardware revision level. &amp;nbsp;When I boot the QSB, it indicates hardware Rev. B.&amp;nbsp;&amp;nbsp;&amp;nbsp; When I boot my board, in indicates hardware Rev. A&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;After digging through the u-boot source code (talk about fun!!), I located mx53_loco.c which has a function called get_board_rev_from_fuse.&amp;nbsp;&amp;nbsp; This function is called to read IIM_BASE_ADDR + 0x878 to determine the revision level.&amp;nbsp; If this returns 0x3, then it means board Rev B.&amp;nbsp;&amp;nbsp; If it returns 0x1 or nothing, the Rev A is returned.&amp;nbsp;&amp;nbsp; Since I have not programmed the IIM fuses, it seems to make sense that my board is showing Rev A.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have tried to issue IIM read 0 0x878 but I get back&lt;/P&gt;&lt;P&gt;"Read fuse at bank:0 row:120."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can't seam to read past location 120 in iim read. &amp;nbsp;&amp;nbsp;This has prevented me from reading the iim fuses in the qsb to confirm what value I should burn into the fuses for my own hardware.&amp;nbsp; I have not tried to burn any fuse values because it must be right as they are one-time fuses.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can you ask John : What is the correct command to program the iim fuses to indicate that the hardware should be Freescale QSB rev. B&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 11 Jul 2012 17:45:02 GMT</pubDate>
    <dc:creator>rb_ontario</dc:creator>
    <dc:date>2012-07-11T17:45:02Z</dc:date>
    <item>
      <title>Setting IIM fuses for Hardware Revision</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Setting-IIM-fuses-for-Hardware-Revision/m-p/174054#M6226</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm running linux 2.6.35 on a iMX53 QSB and on my own hardware&lt;/P&gt;&lt;P&gt;It seems that u-boot uses iim fuses to determine the board hardware revision level. &amp;nbsp;When I boot the QSB, it indicates hardware Rev. B.&amp;nbsp;&amp;nbsp;&amp;nbsp; When I boot my board, in indicates hardware Rev. A&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;After digging through the u-boot source code (talk about fun!!), I located mx53_loco.c which has a function called get_board_rev_from_fuse.&amp;nbsp;&amp;nbsp; This function is called to read IIM_BASE_ADDR + 0x878 to determine the revision level.&amp;nbsp; If this returns 0x3, then it means board Rev B.&amp;nbsp;&amp;nbsp; If it returns 0x1 or nothing, the Rev A is returned.&amp;nbsp;&amp;nbsp; Since I have not programmed the IIM fuses, it seems to make sense that my board is showing Rev A.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have tried to issue IIM read 0 0x878 but I get back&lt;/P&gt;&lt;P&gt;"Read fuse at bank:0 row:120."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can't seam to read past location 120 in iim read. &amp;nbsp;&amp;nbsp;This has prevented me from reading the iim fuses in the qsb to confirm what value I should burn into the fuses for my own hardware.&amp;nbsp; I have not tried to burn any fuse values because it must be right as they are one-time fuses.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can you ask John : What is the correct command to program the iim fuses to indicate that the hardware should be Freescale QSB rev. B&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 11 Jul 2012 17:45:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Setting-IIM-fuses-for-Hardware-Revision/m-p/174054#M6226</guid>
      <dc:creator>rb_ontario</dc:creator>
      <dc:date>2012-07-11T17:45:02Z</dc:date>
    </item>
    <item>
      <title>Re: Setting IIM fuses for Hardware Revision</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Setting-IIM-fuses-for-Hardware-Revision/m-p/174055#M6227</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I know, there's a long time.&lt;/P&gt;&lt;P&gt;I encounter the same revision problem. I guess the the correct command is "iim blow 0 30 3" (without cotes). It seems to correctly execute the command but when i read the value, it's still 0x0. Is there's something else to do ? Do you manage to change the revision ?&lt;/P&gt;&lt;P&gt;Rgds,&lt;/P&gt;&lt;P&gt;C.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 07 Jan 2013 17:51:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Setting-IIM-fuses-for-Hardware-Revision/m-p/174055#M6227</guid>
      <dc:creator>christophe</dc:creator>
      <dc:date>2013-01-07T17:51:28Z</dc:date>
    </item>
    <item>
      <title>Re: Setting IIM fuses for Hardware Revision</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Setting-IIM-fuses-for-Hardware-Revision/m-p/174056#M6228</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Looks like the problem relates to the fact, that U-boot command&lt;/P&gt;&lt;P&gt;"iim" uses hexadecimal notation. So, please try using the next &lt;/P&gt;&lt;P&gt;commands to access the board rev. configuration byte.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;iim blow 0 0x1E 3&lt;/P&gt;&lt;P&gt;iim read 0 0x1E&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;From uboot mx53_loco.c :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;u32 get_board_rev_from_fuse(void)&lt;/P&gt;&lt;P&gt;{ u32 board_rev = readl(IIM_BASE_ADDR + 0x878);&lt;/P&gt;&lt;P&gt;&amp;nbsp; return board_rev;}&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;0x878 = 0x800 + 0x78 &lt;/P&gt;&lt;P&gt;0x1E = 0x78 / 4 = 30&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Jan 2013 08:45:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Setting-IIM-fuses-for-Hardware-Revision/m-p/174056#M6228</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2013-01-25T08:45:42Z</dc:date>
    </item>
    <item>
      <title>Re: Setting IIM fuses for Hardware Revision</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Setting-IIM-fuses-for-Hardware-Revision/m-p/174057#M6229</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Indeed, it works.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 May 2013 12:20:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Setting-IIM-fuses-for-Hardware-Revision/m-p/174057#M6229</guid>
      <dc:creator>christophe</dc:creator>
      <dc:date>2013-05-23T12:20:56Z</dc:date>
    </item>
  </channel>
</rss>

