<?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>i.MX ProcessorsのトピックRe: How does one program/blow/burn fuses on an mx53 programmatically in WEC7?</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/How-does-one-program-blow-burn-fuses-on-an-mx53-programmatically/m-p/265273#M27497</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;First, VDD_FUSE [3.0 – 3.3 V] must be applied for burning. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As for i.MX53 fuse burning two solutions may be recommended.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. MFG tool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following Community thread contains files for the MFG tool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="" href="https://community.freescale.com/message/254185#254185"&gt;https://community.freescale.com/message/254185#254185&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. U-boot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note, U-boot may be loaded by the MFG tool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You may use U-boot to work with the fuses, assuming VDD_FUSE is &lt;/P&gt;&lt;P&gt;proper for writing. Below is IIM command&amp;nbsp; help of U-boot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MX53-LOCO U-Boot &amp;gt; help iim&lt;/P&gt;&lt;P&gt;iim - IIM sub system&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Usage:&lt;/P&gt;&lt;P&gt;iim Warning: all numbers in parameter are in hex format!&lt;/P&gt;&lt;P&gt;iim read &amp;lt;bank&amp;gt; &amp;lt;row&amp;gt;&amp;nbsp;&amp;nbsp; - Read some fuses&lt;/P&gt;&lt;P&gt;iim read fecmac - Read FEC Mac address&lt;/P&gt;&lt;P&gt;iim blow &amp;lt;bank&amp;gt; &amp;lt;row&amp;gt; &amp;lt;value&amp;gt;&amp;nbsp;&amp;nbsp; - Blow some fuses&lt;/P&gt;&lt;P&gt;iim blow fecmac &amp;lt;0x##:0x##:0x##:0x##:0x##:0x##&amp;gt;- Blow FEC Mac address MX53-LOCO &lt;/P&gt;&lt;P&gt;U-Boot &amp;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, 19 Jul 2013 06:28:12 GMT</pubDate>
    <dc:creator>Yuri</dc:creator>
    <dc:date>2013-07-19T06:28:12Z</dc:date>
    <item>
      <title>How does one program/blow/burn fuses on an mx53 programmatically in WEC7?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-does-one-program-blow-burn-fuses-on-an-mx53-programmatically/m-p/265272#M27496</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; &lt;SPAN style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"&gt;We’re trying to finish up the last bits and pieces of our BSP.&amp;nbsp; And of course, we’ve run into another strange problem.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-top: auto; margin-bottom: auto;"&gt;&lt;SPAN style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"&gt;&lt;STRONG&gt;Background:&lt;/STRONG&gt;&amp;nbsp; We've got a custom board with an iMX53 on it.&amp;nbsp; We're started with a WEC7 BSP from Adeneo and have most everything&lt;BR /&gt;working. We are using the iim driver from the BSP from Freescale/Adeneo. We have written a program that takes the address and the value as command line parameters and then loads the driver and programs the fuses, and then displays all of the fuses in bank 0 and 1.&amp;nbsp; The Reference Manual (with addendum) talks about the fuse box, iim, and the in the addendum lists the fuse information.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P style="margin-top: auto; margin-bottom: auto;"&gt;&lt;SPAN style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"&gt;&lt;STRONG&gt;Problem: &lt;/STRONG&gt; We are trying to program some fuses, but they don't stay programmed after a re-boot.&amp;nbsp; We've verified that they do get programmed, and are programmed by reading the fuses.&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P style="margin-top: auto; margin-bottom: auto;"&gt;&lt;SPAN style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"&gt; What we've tried: &lt;/SPAN&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;DIV&gt;&amp;nbsp; &lt;SPAN style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"&gt;At first we tried programming the user space ones (0x0860 - 0x087C).&amp;nbsp; We would program them with something, and then power cycle the board, and display the fuses again, and the bits were all back to 0's.&amp;nbsp; &lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"&gt;We found the documentation on VDD_FUSE in the imx53iec.pdf that said that the VDD_FUSE needed to be connected, so we connected it through a 100K pull-up first, then a 1K pull-up to the 3.3V supply on the board.&amp;nbsp; Again we attempted to program both the user space and the mad address areas, and after a power cycle we were back to 0's, again.&amp;nbsp; &lt;/SPAN&gt;&lt;OL start="1"&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"&gt;We got the source code to uBoot since that seems to be what most people are using, and compared the programming functions in both eBoot and uBoot.&amp;nbsp; The only major difference that we found was that eBoot&amp;nbsp; programs the IIM_FCTL with 0x31, where uBoot just programs it with 0x01.&amp;nbsp; So eBoot tells it to use a program pulse of 3 rather than 0 that uBoot uses.&amp;nbsp; &lt;/SPAN&gt;&lt;OL start="1"&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"&gt;Connected the VDD_FUSE to 26 ohm power resistor then to a 3.2 V power supply. The power supply was reporting 120 mA current, and then something has stopped working.&amp;nbsp; (I was about to say blown up, but there was no magic smoke.&amp;nbsp; How disappointing. ;-) )&amp;nbsp; So this might have worked, if my board hand's stopped working.&amp;nbsp; &lt;/SPAN&gt;&lt;OL start="1"&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; font-size: 12pt; margin-bottom: auto; font-family: 'Times New Roman','serif'; margin-top: auto; mso-fareast-font-family: 'Times New Roman';"&gt; Questions:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;SPAN style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"&gt;Has anyone had success programming fuses through the iim WEC7 driver?&amp;nbsp; (I just need to know that, yes, it can be done.)&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"&gt;Is there something else that has to happen after programming?&amp;nbsp; Are there other bits that need to be set?&amp;nbsp; Do I need to program the lock the bits&lt;/SPAN&gt;&lt;SPAN style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"&gt;?(I was trying to avoid this).&amp;nbsp; &lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"&gt;What else should I try?&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"&gt;Thanks, &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"&gt;Peter&lt;/SPAN&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>Wed, 10 Jul 2013 21:09:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-does-one-program-blow-burn-fuses-on-an-mx53-programmatically/m-p/265272#M27496</guid>
      <dc:creator>petertaylor</dc:creator>
      <dc:date>2013-07-10T21:09:03Z</dc:date>
    </item>
    <item>
      <title>Re: How does one program/blow/burn fuses on an mx53 programmatically in WEC7?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-does-one-program-blow-burn-fuses-on-an-mx53-programmatically/m-p/265273#M27497</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;First, VDD_FUSE [3.0 – 3.3 V] must be applied for burning. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As for i.MX53 fuse burning two solutions may be recommended.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. MFG tool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following Community thread contains files for the MFG tool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="" href="https://community.freescale.com/message/254185#254185"&gt;https://community.freescale.com/message/254185#254185&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. U-boot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note, U-boot may be loaded by the MFG tool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You may use U-boot to work with the fuses, assuming VDD_FUSE is &lt;/P&gt;&lt;P&gt;proper for writing. Below is IIM command&amp;nbsp; help of U-boot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MX53-LOCO U-Boot &amp;gt; help iim&lt;/P&gt;&lt;P&gt;iim - IIM sub system&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Usage:&lt;/P&gt;&lt;P&gt;iim Warning: all numbers in parameter are in hex format!&lt;/P&gt;&lt;P&gt;iim read &amp;lt;bank&amp;gt; &amp;lt;row&amp;gt;&amp;nbsp;&amp;nbsp; - Read some fuses&lt;/P&gt;&lt;P&gt;iim read fecmac - Read FEC Mac address&lt;/P&gt;&lt;P&gt;iim blow &amp;lt;bank&amp;gt; &amp;lt;row&amp;gt; &amp;lt;value&amp;gt;&amp;nbsp;&amp;nbsp; - Blow some fuses&lt;/P&gt;&lt;P&gt;iim blow fecmac &amp;lt;0x##:0x##:0x##:0x##:0x##:0x##&amp;gt;- Blow FEC Mac address MX53-LOCO &lt;/P&gt;&lt;P&gt;U-Boot &amp;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, 19 Jul 2013 06:28:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-does-one-program-blow-burn-fuses-on-an-mx53-programmatically/m-p/265273#M27497</guid>
      <dc:creator>Yuri</dc:creator>
      <dc:date>2013-07-19T06:28:12Z</dc:date>
    </item>
    <item>
      <title>Re: How does one program/blow/burn fuses on an mx53 programmatically in WEC7?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-does-one-program-blow-burn-fuses-on-an-mx53-programmatically/m-p/265274#M27498</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It sounds like a lot of work to either get UBoot or the MFG test working on my custom board.&amp;nbsp; I would rather not start another development effort to do the simple job of programming the fuses.&amp;nbsp; What I would like to use is the driver provided in the ARD BSP&amp;nbsp; and referred to in the WCE700_MX53_ER_1105_ARD_ReferenceManual.pdf chapter 18&amp;nbsp; to blow the fuses.&amp;nbsp; [1]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've looked at both at the ARD code and the UBoot code and they are similar.&amp;nbsp; I just don't know&lt;BR /&gt;why the ARD IIM Driver is not working for me.&amp;nbsp; I know that I need to provide 3.3V to VDD_FUSE.&amp;nbsp; I also know that I need to make sure that the EFUSE_PROG_SUPPLY_GATE&amp;nbsp; bit of the CGPR register is set. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is a cryptic message in the MX53QSB schematic, p111 that says:&lt;/P&gt;&lt;P&gt;"Note: If the internal chip regulators for PLL circuits are not used, R12 should be 1K Ohm to limit current to VDD_FUSE. If the internal chip regulators are supplied by VDD_REG_2V5, R12 should be 0 Ohm."&lt;/P&gt;&lt;P&gt;Which leaves me wondering if I need a resistor or not.&amp;nbsp; Our board started with the QSB design and so has the two internal LDO's powered up, but I don't believe that we're using either one to power something else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is also a reference in the IIM chapter of the iMX53RM that alludes to "supervisor mode" (p 1843) it says:&lt;/P&gt;&lt;P&gt;"All IIM registers can be accessed in user mode except FCTL, which controls programming functions and can be accessed in supervisor mode only."&lt;/P&gt;&lt;P&gt;If I search the rest of the reference manual for "supervisor mode", I find a few references throughout the manual but nothing that says how to get into supervisor mode.&amp;nbsp; The only hint is on page 956 section 20.3.1 Peripheral Access Policy. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A. So how would I tell if I'm in supervisor mode? &lt;/P&gt;&lt;P&gt;B. How would I get into supervisor mode? &lt;/P&gt;&lt;P&gt;&amp;lt;edit&amp;gt;&lt;/P&gt;&lt;P&gt;Looking in the DDI0406C_armv7-AR-_architecture_reference_manual, and the documentation about the CSPR register, the last 5 bits are the mode bits.&amp;nbsp; Using a KITL connection, I've verified that in the driver code, the mode is system mode (0x1F) and that in my application it is user mode (0x10).&amp;nbsp; So it's not in supervisor mode (0x13), but does have the same privilege level.&amp;nbsp;&amp;nbsp; (Sorry, I sleep with the MX53RM under my pillow and sometimes forget that there is other documentation. &amp;lt;grin&amp;gt;)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So the answer to the above questions: &lt;/P&gt;&lt;P&gt;A. You know which mode you are in by looking at the CSPR register, bits 4:0. &lt;/P&gt;&lt;P&gt;B. WEC7 is taking you into and out of system mode, so it's probably somewhere in the private code. &lt;/P&gt;&lt;P&gt;&amp;lt;/edit&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I guess the real question is what are the steps that I need to take both on my board and with the iim driver to program/blow/set the fuses?&lt;/P&gt;&lt;P&gt;I think it would include:&lt;/P&gt;&lt;P&gt;1 - Make sure that VDD_FUSE is at 3-3.3V&lt;/P&gt;&lt;P&gt;2 - Enable fuse programming by setting the EFUSE_PROG_SUPPLY_GATE bit.&lt;/P&gt;&lt;P&gt;3 - Make sure that the clock to the IIM is enabled, CCM_CCGR0[31:30).&lt;/P&gt;&lt;P&gt;4 - For reading follow the reading instructions in the IIM chapter. &lt;/P&gt;&lt;P&gt;5 - For writing follow the writing instructions in the IIM chapter. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What else am I missing?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;[1] : &lt;BR /&gt;&lt;A class="jive-link-external-small" href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX535&amp;amp;nodeId=018rH3ZrDR988D&amp;amp;fpsp=1&amp;amp;tab=Documentation_Tab"&gt;http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX535&amp;amp;nodeId=018rH3ZrDR988D&amp;amp;fpsp=1&amp;amp;tab=Documentation_Tab&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Jul 2013 14:45:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-does-one-program-blow-burn-fuses-on-an-mx53-programmatically/m-p/265274#M27498</guid>
      <dc:creator>petertaylor</dc:creator>
      <dc:date>2013-07-19T14:45:52Z</dc:date>
    </item>
  </channel>
</rss>

