eeprom_init: EEPROM read failed

What is causing these error messages during boot:

[0002.566] Find /host1x/i2c@546c0000’s alias i2c6
[0002.571] get eeprom at 7-a8, size 256, type 0
[0002.575] pm_ids_update: Updating 1,a2, size 256, type 0

[0002.581] I2C slave not started
[0002.584] I2C write failed
[0002.586] Writing offset failed
[0002.589] eeprom_init: EEPROM read failed
[0002.593] pm_ids_update: eeprom init failed
[0002.597] pm_ids_update: Updating 1,ae, size 256, type 0
[0002.603] I2C slave not started
[0002.606] I2C write failed
[0002.608] Writing offset failed
[0002.611] eeprom_init: EEPROM read failed
[0002.615] pm_ids_update: eeprom init failed
[0002.619] pm_ids_update: Updating 2,a0, size 256, type 0
[0002.625] I2C slave not started
[0002.628] I2C write failed
[0002.630] Writing offset failed
[0002.633] eeprom_init: EEPROM read failed
[0002.637] pm_ids_update: eeprom init failed
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

[0002.641] pm_ids_update: Updating 3,a0, size 256, type 0
[0002.671] pm_ids_update: The pm board id is 2180-1000-100
[0002.681] Adding plugin-manager/ids/2180-1000-100=/i2c@7000c500:module@0x50

System flashed in cboot only mode (no u-boot).
TX1, r28.3, Devkit

DmitriK,

I think that is due to the late initialization of i2c and cause first attempt of reading eeprom gets failure. It would eventually succeed.

This is the EEPROM probe code in CBoot (actually nvdtshim, a part of CBoot), and it probes each I2C bus until it finds a board ID EEPROM. You can see it starting with bus 1, checking a couple of device addresses, then moving to bus 2, then it finally finds the TX1 board ID EEPROM on bus 3, dev address 0x50 (a0), and successfully reads back the info (board ID 2180-1000-100).

So this is by design, and provides some flexibility for board ID EEPROM bus placement. I’ll look into suppressing the ‘I2C slave not started/I2C write failed’ errors in the code in the next release, as that can be concerning.

Tom