How to read i.MX6DQ unique ID.

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

How to read i.MX6DQ unique ID.

ソリューションへジャンプ
8,116件の閲覧回数
satoshishimoda
Senior Contributor I

Hi all,

We have some questions about i.MX6DQ unique ID.

Our partner want to read i.MX6DQ unique ID.

Then, we tried the procedure written in chapter 46.3.1.2 in IMX6DQRM (Rev.2) with memtool in Linux BSP to read unique ID.

However, we cannot read it.

On the other hands, we tried read 0x021B_C410 and 0x021B_C420 by memtool directly.

In this case, we got the values it looked like a unique ID.

The values in 0x021B_C410 and 0x021B_C420 are different for each SABRE-SD board, and this value is not changed by re-boot.

So believe these are the unique ID.

Then, please see our questions as following.

[Q1]

This procedure (reading 0x021B_C4x0 directly by memtool) is no problem?

[Q2]

If the answer to "yes" to Q1, our partner want to know why there is the read procedure written in chapter 46.3.1.2.

I guess, some OCOTP registers can be read by memtool directly, and some registers cannot be read directly.

Maybe banks 0, 1, 2, 4 can be read by memtool, and other banks cannot be read.

And the procedure in chapter 46.3.1.2 is required to read bank 3, 5.

Is my understanding correct?

Best Regards,

Satoshi Shimoda

ラベル(4)
タグ(1)
1 解決策
2,679件の閲覧回数
Yuri
NXP Employee
NXP Employee

You may use Linux sysfs options of Linux :

root@linaro-ubuntu-desktop:~# cat /sys/fsl_otp/HW_OCOTP_CFG0

0xd72d7394

root@linaro-ubuntu-desktop:~# cat /sys/fsl_otp/HW_OCOTP_CFG1

0xf1361d4

OTP Bank0 Word1 - contains the first word of the UID.
OTP Bank0 Word2 - contains the second word of the UID.

  Please look at sections 46.5.10 [Value of OTP Bank0 Word1 (Configuration and

Manufacturing Info.) (OCOTP_CFG0)] and 46.5.11 Value of OTP Bank0 Word2
(Configuration and Manufacturing Info.) (OCOTP_CFG1) of the i.MX6 DQ Reference
Manual (IMX6DQRM, Rev 2, 06/2014).


Have a great day,
Yuri

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

元の投稿で解決策を見る

3 返答(返信)
2,680件の閲覧回数
Yuri
NXP Employee
NXP Employee

You may use Linux sysfs options of Linux :

root@linaro-ubuntu-desktop:~# cat /sys/fsl_otp/HW_OCOTP_CFG0

0xd72d7394

root@linaro-ubuntu-desktop:~# cat /sys/fsl_otp/HW_OCOTP_CFG1

0xf1361d4

OTP Bank0 Word1 - contains the first word of the UID.
OTP Bank0 Word2 - contains the second word of the UID.

  Please look at sections 46.5.10 [Value of OTP Bank0 Word1 (Configuration and

Manufacturing Info.) (OCOTP_CFG0)] and 46.5.11 Value of OTP Bank0 Word2
(Configuration and Manufacturing Info.) (OCOTP_CFG1) of the i.MX6 DQ Reference
Manual (IMX6DQRM, Rev 2, 06/2014).


Have a great day,
Yuri

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

2,679件の閲覧回数
satoshishimoda
Senior Contributor I

Hi Yuri,

Thank you for your reply.

I understood we can use "cat /sys/fsl_otp/xxx" to check OCOTP value.

Then, could you reply me about Q2 also?

I tried read OCOTP with the above cat command, but bank 3 & 5 seem always return 0x0.

So I guess the read procedure written in chapter 46.3.1.2 is required to read bank 3 or 5.

Is this correct?

Best Regards,

Satoshi Shimoda

0 件の賞賛
返信
2,679件の閲覧回数
Yuri
NXP Employee
NXP Employee

  You are right : the section 46.3.1.2 (Fuse and Shadow register read) of the i.MX6 RM

(IMX6DQRM, Rev 2, 06/2014 ) provides general procedure to read fuses. Another way,

if Linux in itself does not allow access to all fuses.

~Yuri.