i.MX8MQ ROM_VERSION

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX8MQ ROM_VERSION

Jump to solution
1,222 Views
christian_mauderer
Contributor III

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

Labels (1)
0 Kudos
1 Solution
1,075 Views
christian_mauderer
Contributor III

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

View solution in original post

0 Kudos
2 Replies
1,075 Views
gusarambula
NXP TechSupport
NXP TechSupport

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,

0 Kudos
1,076 Views
christian_mauderer
Contributor III

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

0 Kudos