将编译好的u-boot.bin烧写到SD卡中(请确保SD卡中没有资料,这步操作会使得SD卡或U盘里的数据全部丢失!),终端进入u-boot目录,使用命令:
sudo dd if=u-boot.bin of=/dev/sdc
这里,我使用的SD卡,通过读卡器,在电脑上是/dev/sdc,具体这个是什么因不同的电脑上的存储设备不同而不同。
将qt210开发板设置为SD卡启动,插入SD卡,结果……当然启动失败了……
在正确的串口会打印出如下信息:(串口速率115200,8N1,这是210里面的引导程序输出的)
SD checksum Error SD Init Error �������������������������������������������������������������������������������� Uart negotiation Error Insert an OTG cable into the connector! Enumeration TimeOut Error
在s5pv210_irom_applicationnote_preliminary手册中找到,需要将BL1烧写到Block1起始的地方,<1Block=512>
将随开发板附带的SD-bl1-8k.bin烧写到Block1,使用如下命令:(其中默认值是1Block=512)
sudo dd seek=1 if=SD-bl1-8k.bin of=/dev/sdc
在从SD卡启动,串口会输出“OK”,说明BL1烧写位置正确,且烧写成功。
在http://www.arm9home.net/read.php?tid=18230中找到,应该将开发板提供的u-boot烧写到seek=49处,对于我的开发板是使用下面的命令:
sudo dd seek=49 if=u-boot.nand_restore.sdboot of=/dev/sdc
将开发版自带的BL1和u-boot烧写到SD卡中后,再通过SD卡启动,已经可以正常启动u-boot了。
再结合刚那帖子里面的回帖提到的“看board/samsung/tiny210/mmc_boot.c的copy_uboot_to_ram函数”,回头看我上篇移植文章里面选择的型号,错的太远了……
为什么烧写到SD卡的seek=49这个位置,我觉得http://blog.csdn.net/xiaoxizi198807/article/details/7599859,这篇文章做了很好的说明,再结合s5pv210_irom_applicationnote_preliminary手册一起看。