How to read fuses from linux on imx93?

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

How to read fuses from linux on imx93?

1,438 次查看
michael_glembot
Contributor IV

I am able to write fuses on the imx93 from linux using the imx-ocotp-fsb-s400 driver. Now, I want to sense / read the fused values back without rebooting. Unfortunately, only the shadow register with the old values are read back. Checking the code and the imx93 reference manual(76.6.1.5), I came across the register FSB_ACC_DIS. Disabling the shadow register in code solved my issue, but a few questions are still open:

  • What stands OSCCA in OSCCA_FUSE_READ_DIS for?
  • How to set the Bit0/OSCCA_FUSE_READ_DIS in the FSB_ACC_DIS register?
    • michael_glembot_0-1733482405285.png
  • What is the benefit of reading the fuses from shadow registers instead of reading it directly from the fuses, except the fact it is easier without the ELE messaging unit?
  • Any concerns making fuse->fsb_read_dis configuarble via device tree?

Please note: I know the recommended way for burning fuses is via uboot's fuse prog. Unfortunately, we are looking for a solution from linux.

标记 (1)
0 项奖励
回复
3 回复数

1,341 次查看
michael_glembot
Contributor IV

>> How to set the Bit0/OSCCA_FUSE_READ_DIS in the FSB_ACC_DIS register?
> OSCCA_FUSE_READ_DIS is used to check if fuse read is disabled in the device, it cannot be configured since it is a only read register.

What hw/sw part is setting the register? What is the purpose, if the customer can not change it's value? I understand that there are lock bits to control (read/write) individual parts of the fuse map., but the register seems to be independent of the lock bits. Is there a fuse to change OSCCA_FUSE_READ_DIS value?

 

>> What is the benefit of reading the fuses from shadow registers instead of reading it directly from the fuses, except the fact it is easier without the ELE messaging unit?
The main objective of shadow register use is response since the value is saved in RAM.

Is it possible to refresh the shadow register after writing to them?

 

0 项奖励
回复

1,297 次查看
JorgeCas
NXP TechSupport
NXP TechSupport

Hello,

The read/write access to fuses is controlled by Lock bits. In the case of our devices, to load fuse into shadow registers it is needed a power-on reset.

Best regards.

0 项奖励
回复

1,392 次查看
JorgeCas
NXP TechSupport
NXP TechSupport

Hello,

OSCCA_FUSE_READ_DIS is used to check if fuse read is disabled in the device, it cannot be configured since it is a only read register.

The main objective of shadow register use is response since the value is saved in RAM.

The control fuse read enable/disable is in lock bits, please check chapter 7.1.2 of i.MX93 reference manual.

Best regards,

0 项奖励
回复