板子启动的时候暂停在U-boot提示符下,用u-boot的 i2c命令 i2c probe得到i2c总线上的设备地址 ,其中 有 eeprom的 0x50,再用i2c md 0x50 0 10命令读出前16个字节全是0xff,请问各位前辈,按照board.c里的验证eeprom内容,头4个字节不是应该是0xee3355aa么?在uboot里面读eeprom内容的正确方法是什么?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
板子启动的时候暂停在U-boot提示符下,用u-boot的 i2c命令 i2c probe得到i2c总线上的设备地址 ,其中 有 eeprom的 0x50,再用i2c md 0x50 0 10命令读出前16个字节全是0xff,请问各位前辈,按照board.c里的验证eeprom内容,头4个字节不是应该是0xee3355aa么?在uboot里面读eeprom内容的正确方法是什么?
问题解决了。由于BBB板子的eeprom是双字节地址,所以在board.c里面读eeprom时
i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, 0, 2, (uchar *)&header, sizeof(header))函数的alen为2,
对应在uboot命令行中相应的应该使用两字节地址去读取eeprom,命令用i2c md 0x50 .2 100,
.2前面还有个空格。。。。这样能读出正确的eeprom数据。
问题起因是我们自己的板子用的eeprom是单字节地址,在调试的时候没有注意alen的变化,出现了上面的问题。