board: ti: common: board_detect: Do 1byte address checks first.
authorNishanth Menon <nm@ti.com>
Fri, 17 Jun 2022 18:26:12 +0000 (13:26 -0500)
committerTom Rini <trini@konsulko.com>
Wed, 6 Jul 2022 18:30:08 +0000 (14:30 -0400)
commita58147c2dbbfbc436ba84463678e943146bcae7d
treeffab982cd8246555e1cdfc9447500a65a00c394c
parentbc1de483711c30e32dffdf71574aa878c1087ed0
board: ti: common: board_detect: Do 1byte address checks first.

Do 1 byte address checks first prior to doing 2 byte address checks.
When performing 2 byte addressing on 1 byte addressing eeprom, the
second byte is taken in as a write operation and ends up erasing the
eeprom region we want to preserve.

While we could have theoretically handled this by ensuring the write
protect of the eeproms are properly managed, this is not true in case
where board are updated with 1 byte eeproms to handle supply status.

Flipping the checks by checking for 1 byte addressing prior to 2 byte
addressing check prevents this problem at the minor cost of additional
overhead for boards with 2 byte addressing eeproms.

Signed-off-by: Nishanth Menon <nm@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
board/ti/common/board_detect.c