I have iMx6ull based custom board.
When CONFIG_FSL_OTP is disabled, it works fine and kernel is loaded successfully.
When CONFIG_FSL_OTP is enabled, kernel gets hang in boot and I am not able to get when it is getting hanged.
Is there any hardware issue or is it configuration issue?
How can I take logs when kernel has not loaded properly to add more information here?
Any help will be appreciated!
Solved! Go to Solution.
Hello,
You may check the kernel documentation I have already shared for more information of NVMEM. The 4.14 and later kernel only supports reads through the NVMEM driver.
For blowing fuses one could use the U-Boot fuse command it is capable of reading and writing the efuses.
=> fuse
fuse - Fuse sub-system
Usage:
fuse read <bank> <word> [<cnt>] - read 1 or 'cnt' fuse words,
starting at 'word'
fuse sense <bank> <word> [<cnt>] - sense 1 or 'cnt' fuse words,
starting at 'word'
fuse prog [-y] <bank> <word> <hexval> [<hexval>...] - program 1 or
several fuse words, starting at 'word' (PERMANENT)
fuse override <bank> <word> <hexval> [<hexval>...] - override 1 or
several fuse words, starting at 'word'
Best regards,
Aldo.
Hello,
I don't know which kernel version you are working with, but please note that OTP driver is not supported anymore in latest releases, it was moved to NVMEM framework.
https://source.codeaurora.org/external/imx/linux-imx/tree/Documentation/driver-api/nvmem.rst?h=imx_5...
Best regards,
Aldo.
Thanks NXP TechSupport for your reply.
My kernel version is 4.19.35-1.1.0+g0f9917c56d59.
I am using FSL_OTP for mac address flashing of ethernet ports.
I have seen behaviour that when I enable them, temperature, cpufreq related files are not present in sysfs.
I will like to know more about NVMEM framework and how it can fullfil my requirements.
Please explain in detail or share document if available.
thank you
Hello,
You may check the kernel documentation I have already shared for more information of NVMEM. The 4.14 and later kernel only supports reads through the NVMEM driver.
For blowing fuses one could use the U-Boot fuse command it is capable of reading and writing the efuses.
=> fuse
fuse - Fuse sub-system
Usage:
fuse read <bank> <word> [<cnt>] - read 1 or 'cnt' fuse words,
starting at 'word'
fuse sense <bank> <word> [<cnt>] - sense 1 or 'cnt' fuse words,
starting at 'word'
fuse prog [-y] <bank> <word> <hexval> [<hexval>...] - program 1 or
several fuse words, starting at 'word' (PERMANENT)
fuse override <bank> <word> <hexval> [<hexval>...] - override 1 or
several fuse words, starting at 'word'
Best regards,
Aldo.