fuse prog

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
15,456件の閲覧回数
lifusong
Contributor IV

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.

ラベル(1)
1 解決策
9,255件の閲覧回数
BiyongSUN
NXP Employee
NXP Employee

We have put here lots of times.

It is OTP.

only can progrem once.

Can not return back.

Please check the following webpage

OTP - Wikipedia, the free encyclopedia

元の投稿で解決策を見る

0 件の賞賛
返信
27 返答(返信)
8,655件の閲覧回数
jith
Contributor II

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.

0 件の賞賛
返信
8,655件の閲覧回数
igorpadykov
NXP Employee
NXP Employee

yes it is possible to fuse only the required bit.

Best regards
igor

0 件の賞賛
返信
8,655件の閲覧回数
jith
Contributor II

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?

0 件の賞賛
返信
8,655件の閲覧回数
igorpadykov
NXP Employee
NXP Employee

procedure is the same, just provide value for fusing which

differs by one bit compared with existing.

Best regards
igor

0 件の賞賛
返信
8,656件の閲覧回数
davidpatton
Contributor III

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?

0 件の賞賛
返信
8,656件の閲覧回数
igorpadykov
NXP Employee
NXP Employee

> I need to set the lock bits to remove the possibility of setting these to all 1's?

right

8,655件の閲覧回数
davidpatton
Contributor III

How does one set the OCOTP_LOCK register? The reference manual, 44.5.9, shows this register as read-only.

0 件の賞賛
返信
8,712件の閲覧回数
igorpadykov
NXP Employee
NXP Employee

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!

-----------------------------------------------------------------------------------------------------------------------

0 件の賞賛
返信
8,713件の閲覧回数
lifusong
Contributor IV

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.

0 件の賞賛
返信
8,715件の閲覧回数
lifusong
Contributor IV

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

0 件の賞賛
返信
8,715件の閲覧回数
BiyongSUN
NXP Employee
NXP Employee

fusong,

Some fuse may burned already. the fuse is OTP cannot burn again.

0 件の賞賛
返信
8,715件の閲覧回数
lifusong
Contributor IV

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.

0 件の賞賛
返信
8,715件の閲覧回数
BiyongSUN
NXP Employee
NXP Employee

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.

0 件の賞賛
返信
8,715件の閲覧回数
lifusong
Contributor IV

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.

0 件の賞賛
返信
8,715件の閲覧回数
lifusong
Contributor IV

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.

0 件の賞賛
返信
8,715件の閲覧回数
BiyongSUN
NXP Employee
NXP Employee

to burn the fuse, you need to do bitwise.

the 0s could not become 1s.

0 件の賞賛
返信
8,715件の閲覧回数
lifusong
Contributor IV

Dear Biyong.

  so,how to reset the board to factory. (reset to not burn status)

0 件の賞賛
返信
9,256件の閲覧回数
BiyongSUN
NXP Employee
NXP Employee

We have put here lots of times.

It is OTP.

only can progrem once.

Can not return back.

Please check the following webpage

OTP - Wikipedia, the free encyclopedia

0 件の賞賛
返信
8,715件の閲覧回数
BiyongSUN
NXP Employee
NXP Employee

FInd one board has not been burned fuse to try mac address

OTP - Wikipedia, the free encyclopedia

0 件の賞賛
返信
8,715件の閲覧回数
lifusong
Contributor IV

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:/ #

0 件の賞賛
返信