购买的原装BBB的板子,EEPROM中写入了板子的ID号。自己新焊接的板子,写入BBB官网下载的镜像,会提示不能通过,或者不能启动系统。可以通过修改uboot源码,去掉校验ID的逻辑,或者通过下面的方式,在新的板子上复制原装板子EEPROM的内容的方法。基本流程如下:
1. 在BBB原装板子上,从SD卡启动,进入Uboot,然后读取EEPROM里面的内容。暂时保存。读取EEPROM内容的方法如下:
a. 首先找一块空白的内存。
然后清空内容
然后使用eeprom read 命令读取 eeprom的内容到内存0x87000000中。
=> md 0x87000000
87000000: ee3355aa 35333341 544c4e42 36413030 .U3.A335BNLT00A6
87000010: 33313534 4b424242 36393930 ffffffff 4513BBBK0996....
2. 然后在用SD卡启动新的板子,在uboot下面,把上面获得的ID写入新的eeprom里面。
写入的时候流程和上面类似,先在一个空闲内存写好上面暂存的数据。然后再从内存搬运到eeprom里面。
在向内存写数据的时候用到了一个新的命令。上面用到了md和mw,读内存和写内存。这次用到一个mm,
自动增加地址的内存修改。这样就可以每次修改一个内存单元。比如这样
整理好一块内存数据后,再通过eeprom write写入eeprom中。
在写入的时候,一开始总是写入失败,发现和eeprom的写保护有关,去掉了硬件写保护的电阻。尝试还是不可以。后来发现,向eeprom里面写入数据的时候,一次要写入32字节。多了少了,总是写入失败。不知为何。先记录一下,再找原因。