Reading the ROM code is probably the most reliable way to get the correctDon't you think we should use the documented register which (if we believe the documentation) should be 100% reliable for production CPU instead of this undocumented method which from what you say is 95% reliable and here to handle the case of pre production CPU ?
silicon revision. Because the ROM that is on the chip is "most likely"
up-to-date with the silicon. "Most likely" means that 95% of the time, when
you get a new silicon, the ROM code will get updated. There is still a
chance that a new silicon will not require a ROM update.
Also the other reason is that sometimes the fuses that identify the silicon
revision that are used by the IIM are sometimes not blown to reflect the
correct revision in pre-production parts. MX51 is a post production part,
so in theory, the fuses are blown correctly. But since we made MX51 boards
available prior to going into production, reading from the IIM is not as
reliable as reading the ROM.