Dear .
the uboot(imx6q-2014.04) Provided a command fuse
like as fuse read 4 2 2 will show MAC
and fuse prog 4 2 0x11223344
the question. I can read mac info through command fuse read 4 2 2.
but can't set through command fuse prog 4 2 0x11223344
anybody can help me.
Solved! Go to Solution.
We have put here lots of times.
It is OTP.
only can progrem once.
Can not return back.
Please check the following webpage
Hi,
Is it possible fuse only the required bit. Example is like I need to fuse the 2nd bit only for a specific configuration and remaining bits are not required for my requirement. Is there any option/procedure to program fuse to meet mentioned requirement.
yes it is possible to fuse only the required bit.
Best regards
igor
Hi Igor,
Could you please provide the procedure to fuse one bit?
I am not sure on the procedure.Do we need to keep default value of the another non-required bit?
procedure is the same, just provide value for fusing which
differs by one bit compared with existing.
Best regards
igor
So if I understand correctly, this is like programming flash, on a bit-wise basis; a 0 can be changed to a 1, but a 1 cannot be changed to a 0, without an erase cycle, however in the case of OTP, there is no erase cycle. In either case, writing a 0 to a 0 does nothing.
Is this where the OCOTP_LOCK register comes into play? Once I set the appropriate BOOT_CFG and MAC address eFuses, I need to set the lock bits to remove the possibility of setting these to all 1's?
> I need to set the lock bits to remove the possibility of setting these to all 1's?
right
How does one set the OCOTP_LOCK register? The reference manual, 44.5.9, shows this register as read-only.
Hi li
fuses are one time programmable registers, they can not be reprogrammed to another
values. For fuse blow procedure one can refer to below link
Q&A: How to program i.MX6 eFUSE?
https://community.freescale.com/docs/DOC-95458
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Dear igorpadkov.
you said fuses are one time programmable registers, they can not be reprogrammed to another
but this link Re: MAC fuses lock can re-set the mac .
can you tell me the reason?
by the way,my board is imx6q.
thanks.
i had check OCOTP_LOCK[9:8] == 00b means writing shadow and OTP fuse is enabled.
i try to modify this register with command fuse prog 0 0 20220302 ,don't have any effect.
fuse read 0 0 get the value is 0x20220002
fusong,
Some fuse may burned already. the fuse is OTP cannot burn again.
Dear BiyongSUN .
thanks for your help. if i write error value into OCOTP_MAC0 and OCOTP_MAC1 how to modify to right value.
and I try to fuse prog 4 2 0x11eeddff on other board.and still can't wirte value to OCOCP_MAC0.
the other board OCOTP_MAC0 OCOTP_MAC1 is zero.
you can try it in the linux using echo command.
/sys/fsl_otp
Use echo command to burn the fuse.
Ex:
echo 0x00006200 > /sys/fsl_otp/HW_OCOTP_GP1
Still need to reminder you the fuse is OTP.
is the /sys/fsl_otp/HW_OCOTP_xxxx driver ok?
the HW_OCOTP_LOCK = 0x20220302 (I don't know reason this value chang to 0x20220302 form 0x20220002, I only at uboot command try fuse prog command).
I try to run "echo 0x20220002 > /sys/fsl_otp/HW_OCOTP_LOCK" many times.
and the HW_OCOTP_LOCK still is 0x20220302.
so i try to run "echo 1 > /sys/fsl_otp/HW_OCOTP_LOCK" and found this value had been changed to eaba7f02
what is the reason? how can fill right value to HW_OCOTP_XXXX.
and before run fuse prog 4 2 xxxx.
the HW_OCOTP_MAC0 and MAC1 is zero.
I try to change this value and use command "echo 0x11223344 >/sys/fsl_otp/HW_OCOTP_MAC0",and can't change this value.
but echo 1 > /sys/fsl_otp/HW_OCOTP_MAC0 will change this value to 0xd3ee7bf5.I don't know the reson ,why this value will change to 0xd3ee7bf5,command means write one to HW_OCOTP_MAC0.
to burn the fuse, you need to do bitwise.
the 0s could not become 1s.
Dear Biyong.
so,how to reset the board to factory. (reset to not burn status)
We have put here lots of times.
It is OTP.
only can progrem once.
Can not return back.
Please check the following webpage
FInd one board has not been burned fuse to try mac address
please see below info.
root@sabresd_6dq:/ # cat /sys/fsl_otp/HW_OCOTP_MAC0
0xd3ee7bf5
root@sabresd_6dq:/ # cat /sys/fsl_otp/HW_OCOTP_LOCK
0xeaba7f02
root@sabresd_6dq:/ # echo 1 0x20220002 > /sys/fsl_otp/HW_OCOTP_LOCK
root@sabresd_6dq:/ # cat /sys/fsl_otp/HW_OCOTP_LOCK
0xeaba7f03
root@sabresd_6dq:/ # echo 1 > /sys/fsl_otp/HW_OCOTP_LOCK
root@sabresd_6dq:/ # cat /sys/fsl_otp/HW_OCOTP_LOCK
0xeaba7f03
root@sabresd_6dq:/ # echo 2 0x20220002 > /sys/fsl_otp/HW_OCOTP_LOCK
root@sabresd_6dq:/ # cat /sys/fsl_otp/HW_OCOTP_LOCK
0xeaba7f03
root@sabresd_6dq:/ # echo 1 0x20220002 > /sys/fsl_otp/HW_OCOTP_LOCK
root@sabresd_6dq:/ # cat /sys/fsl_otp/HW_OCOTP_LOCK
0xeaba7f03
root@sabresd_6dq:/ # echo 0x20220002 > /sys/fsl_otp/HW_OCOTP_LOCK
root@sabresd_6dq:/ # cat /sys/fsl_otp/HW_OCOTP_LOCK
0xeaba7f03
root@sabresd_6dq:/ #