Hi,
We are trying to burn the GP3 and GP4 (General purpose fuse register 3 and 4, ranging from 0x880 to 0x8f0) by using the available sysfs entries. We are using NXP official BSP release 4.1.15_2.0.0_ga.
We are doing something like this:
echo 0xdeadbeef > /sys/fsl_otp/HW_OCOTP_GP30
echo 0xdeadbeef > /sys/fsl_otp/HW_OCOTP_GP31
echo 0xdeadbeef > /sys/fsl_otp/HW_OCOTP_GP32
echo 0xdeadbeef > /sys/fsl_otp/HW_OCOTP_GP33
Unfortunately, this doesn't work. Fuses are not burnt, the behavior is the same when we are trying to burn a locked fuse.
Nevertheless, based on the lock fusemap available on page 212 of the imx6ull reference manual, I can confirm GP3 and GP4 are not locked.
# cat /sys/fsl_otp/HW_OCOTP_LOCK
0x333f03// 0x333f03 & (1 << 15) = 0
// 0x333f03 & (1 << 23) = 0
How can this behavior be explained ? I can confirm other fuses like HW_OCOTP_SW_GPn, HW_OCOTP_MACn, HW_OCOTP_GP1 or HW_OCOTP_GP2 seem to work as expected.
Thanks !
Solved! Go to Solution.
Hello,
It is a known design issue. GP3 and GP4 fuses can't be programmed on i.MX6ULL platform,
there is no SW workaround. This will be reflected in Errata.
Regards,
Yuri.
Hi Yuri,
You said GP3 and GP4 can't be programmed. I am having this issue with GP1, GP2, Misc_Conf and Mac address. We have the EVK board and we try to burn the fuses as described in the section 37.3.1.3 of the imx 6ULL reference manual.
When we first received the boards, the lock register had this value 0x00320003 which shows that mac addresses was not burned although they were. Then we tested the burning logic on Misc_Conf and GP2 but the lock register bits didn't change?
Could you tell me what lock groups work and what not?
Thanks,
Cagdas
Hello,
As I know, customer can use GP1 and GP2 fuses for own purposes;
these fuse are not programmed in production.
Regards,
Yuri.
Hello,
It is a known design issue. GP3 and GP4 fuses can't be programmed on i.MX6ULL platform,
there is no SW workaround. This will be reflected in Errata.
Regards,
Yuri.
After more than two years, this issue is still not reflected in Errata.
Dear Yuri,
I just stumbled on this thread. With a current kernel I tried to write a key to the GP3 fuses on i.MX6ULL:
# cd /sys/bus/nvmem/devices/imx-ocotp0
# dd if=/key of=nvmem bs=4 seek=56
dd: writing 'nvmem': Operation not permitted
imx_ocotp 21bc000.ocotp-ctrl: failed write to locked region
The same for GP4 (seek=60) AND SW_GP (seek=40).
Being able to write a key to the fuses is mission critical for my project. Where can I get concrete information about this "design issue"?
regards
Christian
Hi courk
what part used in the case, as GP3 is available only on G3 part version and GP4 on G2&G3.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi,
Thanks for the answer !
I'm not sure about part numbers G2 or G3. Aren't these part numbers for imx6ul instead of imx6ull ? imx6ull shouldn't be Y0, Y1, Y2 or Y7 ?
We do use a Y1 part (MCIMX6Y1DVK05AA). I searched but cannot find any information about some fuses not being avaible for some part numbers of the imx6ull.
Thanks for your help !
right, reason may be that these GP registers are not present in
parts with reduced capabilities.
Best regards
igor