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
Solved! Go to Solution.
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!
-----------------------------------------------------------------------------------------------------------------------
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!
-----------------------------------------------------------------------------------------------------------------------
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
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.