Burn OTP bits on i.MX28 with Linux PC

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Burn OTP bits on i.MX28 with Linux PC

2,054 Views
christopherpres
Contributor III

Hi,

I want to burn the OTP bits of my i.MX28. What is the easiest way to do that under Linux?

My setup:

The board is connected via USB to a  Linux computer. I use bitburner.py to generate the "otpinit.sb" file. The "otpinit.sb" file is generated properly, because it works to set the OTP bits when using this file with the Windows BitInit.exe program.

What I tried:

1) I downloaded the MFG Tool for Linux. Should that actually work? It is an .exe file which I have to emulate with WINE to make it work. Did anybody manage to get MFG Tool work under Linux?

2) I used the libusb-Program and the rockbox program suggested in Re: MFG Tools for Linux

    - when loading the otpinit.sb file on the board, I get the following output:

pitc_loader(8003)

loading pitc id 8003

pitc installed

initialize pitc 2280: id:8003

    - however, the fuses are not set. When I set the fuses with my Windows PC, I get the following output:

pitc_loader(8003)

loading pitc id 8003

pitc installed

initialize pitc 2280: id:8003

pitc 8003: process_cdb(cdb:14)

k_pitc_cmd_write_otp_register_set

    - thus I think that I load the otpinit.sb file successfully to the board, but I don't actually burn the fuses (I had the first of the two outputs when using MFG-Tools to burn the bits. After I added a "burn" command in the ucl.xml file for MFG Tools I got the sencond output which also says that the otp registers were set - therefore I think that I simply don't call the "burn" function when using my Linux program to load the otpinit.sb file). What do I have to do to actually burn the fuses?

Best regards,

Christopher

0 Kudos
3 Replies

888 Views
dwc
Contributor II

Are you planning on running linux on the embedded target?  If so, check out i.MX28 - driver for OTP eFuses for a driver.  It ported from 3.7 to 3.2 very nicely and works well.

Doing it on-target is a host os agnostic approach that worked well for me.

888 Views
Yuri
NXP Employee
NXP Employee

The problem takes place because the clock and VDDIO is not set properly in Linux BSP :

during OCOTP write, the HCLK must be <= 24MHz and VDDIO must be 2.8V

0 Kudos

888 Views
christopherpres
Contributor III

Thanks for the answer. I'll have a look at that.

Actually I run an RTOS on the i.MX28. However, still I could consider to load a Linux which just does the OTP burning and afterwards flash the RTOS to the i.MX28. Alternatively I could port the OTP driver to RTOS - I'll have a look how much effort that would be.

0 Kudos