eFUSE Question

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

eFUSE Question

Jump to solution
5,721 Views
atillametetured
Contributor V


Greetings,

I have a simple question regarding the eFUSES? When serial downloader is used to get uBoot to RAM where I set the eFUSES to my desired settings, If something goes wrong with the setting of the eFUSES, can I use the serial downloader to get uBoot in again so I can change the eFUSE settings? To put it another way, are eFUSES set only once or can they later be adjusted?

Regards,

Mete

Labels (2)
0 Kudos
1 Solution
3,797 Views
art
NXP Employee
NXP Employee

Generally, the answer to your point 14 is: no, it is not possible to randomly program eFuses more than one time.

In more details, eFuses are the One Time Programmable (OTP) bits, their value of 0 corresponds to default (intact) state, 1 corresponds to blown state. So, you can blow the OTP bit from 0 to 1 only once, but never can revert it back from 1 to 0. So, if a fuse that shall be blown was not for some reason, you can go back and try to blow it once again at any time, but if a fuse was blown just by mistake, you can never revert it back.


Have a great day,
Artur

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

6 Replies
3,798 Views
art
NXP Employee
NXP Employee

Generally, the answer to your point 14 is: no, it is not possible to randomly program eFuses more than one time.

In more details, eFuses are the One Time Programmable (OTP) bits, their value of 0 corresponds to default (intact) state, 1 corresponds to blown state. So, you can blow the OTP bit from 0 to 1 only once, but never can revert it back from 1 to 0. So, if a fuse that shall be blown was not for some reason, you can go back and try to blow it once again at any time, but if a fuse was blown just by mistake, you can never revert it back.


Have a great day,
Artur

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

3,798 Views
atillametetured
Contributor V

Hello Artur

Thanks for the clear answer. So I get that fuses are otp and can never be reverted when blown. So I assume in such a case the only correct thing to do is to use the GPIO pins to override the fuses. Is this correct?

Also is this also relevant for boot_mode pins? Are they otp as well? Or simply, can I go through steps 1 to 13 without bumping to any limitations by the boot mode pins? In the steps above I changed the state of the boot mode from its shipped value to 01 and to 00 and 01 back again. Is this a possible sequence?

Best Regards,

Mete

0 Kudos
3,798 Views
art
NXP Employee
NXP Employee

Q. So I assume in such a case the only correct thing to do is to use the GPIO pins to override the fuses. Is this correct?

A. Yes, this is correct.

Artur

3,798 Views
atillametetured
Contributor V

Thanks Artur.

Regards,

Mete

0 Kudos
3,798 Views
art
NXP Employee
NXP Employee

No, the BOOT_MODE[1:0] pins do not have any related OTP bits and they are always configured externally. You can change their configuration anytime you want.

Best Regards,

Artur

3,798 Views
atillametetured
Contributor V

I believe I did not give sufficient information. The eFUSES I wish to set are the ones that affect the boot process of the device when BOOT_MODE[1:0] is set to 00. Step by step what I wish to learn is described below;

1. BOOT_MODE[1:0] pins are set to Low/High (01).

2. PMIC (PF0100) resets the device using POR.

3. iMX6 sets it boot mode to serial downloader.

4. It checks the USB_OTG port and sees uBoot.

5. uBoot is downloaded to RAM, I have serial connection with the device.

6. I try to set the eFUSES such that the device can boot from eMMC next time it resets, BOOT_CFG[7:3] = 011XXX. Something goes wrong and fuses are not set correctly.

7. I set the BOOT_MODE[1:0] pins to Low/Low (00) so it can boot from fuses.

8. Chip is reset by the PMIC through POR port. Now iMX sets boot mode to boot from fuses.

9. Because step 6 was messed up, the chip wont boot from eMMC.

Now after step 9 can I do the following;

10. Set the BOOT_MODE[1:0] pins to Low/High (01) again.

11. PMIC resets the chip.

12. Boot mode is set to serial downloader.

13. Chip finds uBoot at USB OTG port.

14. Get uBoot to RAM, establish communication and use it to change the eFUSE settings correctly for eMMC boot.

I need a clear explanation on the subject please.

Regards,

Mete

0 Kudos