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.

MLO无法加载u-boot.img

自己做的板子,想从nandflash启动,把MLO和u-boot.img烧进flash,改从flash启动,启动信息如下

U-Boot SPL 2011.09 (Dec 31 2012 - 15:52:36)
Texas Instruments Revision detection unimplemented
Could not read the EEPROM; something fundamentally wrong on the I2C bus.
read_eeprom() failure

payload image: U-Boot 2011.09 for am335x board load addr: 0x807fffc0 size: 363512

image entry point: 0x80800000

从启动信息来看,貌似已经把u-boot拷到了内存0x807fffc0处,跳过header之后的入口点是0x80800000,可是执行到这里就不动了,跟踪了一下发现程序执行到了spl.c的jump_to_image_no_args(),在这个函数里执行了image_entry();然后就不动了,请问这是什么原因?难道MLO没有把u-boot拷到内存么?

  • 我们的SPL和U-boot代码是依赖于我们的参考板的,你需要仔细研究代码做代码移植工作

  • 是参考哪个板子制作的呢?看这些信息像是使用EVM板的配置进行的初始化。EVM板上有一片EEPROM记录了板卡名称,板卡序列号,MAC地址,版本信息等相关资料。内核在启动时会到EEPROM中读取这些信息进行判断。你新做的板子上面没有EEPROM,所以读取错误,提示Could not read the EEPROM。去内核里面进行相关更改,把读取EEPROM的代码处理一下就可以成功。如果实在不好弄。我可以帮你一起调试。

x 出现错误。请重试或与管理员联系。