
Dear Timur Tabi,
In message 50009349.9000609@freescale.com you wrote:
In case you have an EEPROM with correct layout (CRC at 0xFC) but incorrect CRC, you will access random data and interpret this as CRC. This is provoking undefined behaviour.
True, but it doesn't matter. The EEPROM is not that important, and the odds of screwing this up is one in four billion.
If you want, then rather provide an update tool that theuser can use (manually!) to update, but this should be done once, and with explicit confirmation from the user, never automagically.
Considering how unimportant the EEPROM really is, I don't see the point in making it so complicated. We already automagically upgrade the board from NXID v0 to NXID v1. Now we automagically fix boards that have the CRC in the wrong place.
Anyway, I don't see why it's so controversial. This code is only used on a small number of Freescale reference boards.
Well, if it's really so unimportant and used in only a small number of boards, then just omit this broken code that provokes the undefined behaviour.
Best regards,
Wolfgang Denk