Hello,
we are using an MIMX8MQ6DVAJZAA / ...AB. Currently we are switching from the 0N14W mask to 2N14W. During the U-Boot adaption for the new mask one of the developers working on the project noted that there are some problems:
At the moment we tried to use the following check:
rom_version = readl((void __iomem *)ROM_VERSION_B0);
if (rom_version == CHIP_REV_2_0)
reg = CHIP_REV_2_0;
But it seems that the content for rom_version isn't always CHIP_REV_2_0 (0x20) but on some boards it is 0x1020. Would it be correct to check for the following instead:
((rom_version & 0xFF) == CHIP_REV_2_0)
Is there some official documentation how to correctly detect the different chip masks? How to make sure that a future mask (for example 3N14W) would be detected as the newest one?
Best regards
Christian
Solved! Go to Solution.
Thanks for your answer. I forwarded the answer to the developer responsible for that part. According to him this code doesn't work reliable on a chip revision 2.1. But he managed to fix it in upstream U-Boot end of last year: imx8m: fix rom version check to unbreak some B0 chips (6a4b07e0) · Commits · U-Boot / U-Boot · GitLa...
Best regards
Christian
Hello Christian,
My apologies for the delay. I asked internally and you may the following code for checking RevB,
if (reg == CHIP_REV_1_0) {
/*
* For B0 chip, the DIGPROG is not updated, still TO1.0.
* we have to check ROM version further
*/
rom_version = readl((void __iomem *)ROM_VERSION_A0);
if (rom_version != CHIP_REV_1_0) {
rom_version = readl((void __iomem *)ROM_VERSION_B0);
if (rom_version >= CHIP_REV_2_0)
reg = CHIP_REV_2_0;
}
}
I hope this helps!
Regards,
Thanks for your answer. I forwarded the answer to the developer responsible for that part. According to him this code doesn't work reliable on a chip revision 2.1. But he managed to fix it in upstream U-Boot end of last year: imx8m: fix rom version check to unbreak some B0 chips (6a4b07e0) · Commits · U-Boot / U-Boot · GitLa...
Best regards
Christian