Hello yensid,
For P1010RDB-PB board there are 3 kinds of EEPROMs
- SPD EEPROM(I2C2 ADDRESS:"1010,A2,A1,X" = 52H & 53H)
This EEPROM is I2C Board 128x8 bit memory, this EEPROM can be used for board identification, and different values.
2. BOOT I2C1 EEPROM (I2C1 ADDRESS:"1010,A2,A1,A0" = 50H)
This is boot sequencer EEPROM.
3.System Config EEPROM(I2C1 ADDRESS:"1010,A2,A1,A0" = 57H)
Please note There is no "System Config EEPROM" on P1010RDB-PA.
Please refer to the following definition in include/configs/P1010RDB.h, there is no similar definition for P1010RDB-PA.
/* I2C EEPROM */
#if defined(CONFIG_P1010RDB_PB)
#define CONFIG_ID_EEPROM
#ifdef CONFIG_ID_EEPROM
#define CONFIG_SYS_I2C_EEPROM_NXID
#endif
#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1
#define CONFIG_SYS_I2C_EEPROM_ADDR 0x57
#define CONFIG_SYS_EEPROM_BUS_NUM 0
#define MAX_NUM_PORTS 9 /* for 128Bytes EEPROM */
#endif
Please also refer to the source file board/freescale/common/sys_eeprom.c.
In the function read_eeprom,
ret = i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, 0, CONFIG_SYS_I2C_EEPROM_ADDR_LEN,
(void *)&e, sizeof(e));
The above is the reason why the error "EEPROM: Read failed" is got in u-boot.
So please modify U-BOOT source code to use the appropriate part of I2C EEPROM.
If further discussion is needed, please feel free to let me know.
Have a great day,
Yiping
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------