参考《OK6410-B开发板LINUX3.0.1-2013-01用户手册.pdf》的“Uboot设置TFTP启动内核”这个章节,
并下载了手册中提到的nfs-tftp.txt(日期为2013-08-12 09:52),
将OK6410开发板设置成tftp启动内核,过程中在uboot命令行输入过如下命令:
setenv bootcmd tftp 0x20008000 zImage\; bootm 0x20008000
结果启动开发板后,出现如下错误:
do not support this address : 20008000
然后就在如下信息停住:
Starting kernel ...
想想,“do not support this address”应该是uboot打印出来的,
正好手里有uboot的源码(uboot1.1.6-2012-09-25.tar.gz),解压并进入uboot源码目录,
执行如下命令搜索错误信息所在的文件:
grep --color -nr "do not support this address" *
在搜索出的文件中查看6410的那个文件,即打开board/samsung/smdk6410/smdk6410.c,
然后定位到146行,找到了打印错误信息的代码如下:
printf("do not support this address : %08lx\n", addr);
往上看,发现如下代码:
if ((0xc0000000 <= addr) && (addr < 0xD0000000)) //256M memory, modify by lxj 2011.08.22
说明启动地址有上述代码所示的限制,
这时想起设置nand flash启动的命令中有个地址是0xc0008000,正好在上述范围内,于是在uboot中输入的命令改为如下:
setenv bootcmd tftp 0xc0008000 zImage\; bootm 0xc0008000
这回开发板能够tftp启动内核了,yeah!
并下载了手册中提到的nfs-tftp.txt(日期为2013-08-12 09:52),
将OK6410开发板设置成tftp启动内核,过程中在uboot命令行输入过如下命令:
setenv bootcmd tftp 0x20008000 zImage\; bootm 0x20008000
结果启动开发板后,出现如下错误:
do not support this address : 20008000
然后就在如下信息停住:
Starting kernel ...
想想,“do not support this address”应该是uboot打印出来的,
正好手里有uboot的源码(uboot1.1.6-2012-09-25.tar.gz),解压并进入uboot源码目录,
执行如下命令搜索错误信息所在的文件:
grep --color -nr "do not support this address" *
在搜索出的文件中查看6410的那个文件,即打开board/samsung/smdk6410/smdk6410.c,
然后定位到146行,找到了打印错误信息的代码如下:
printf("do not support this address : %08lx\n", addr);
往上看,发现如下代码:
if ((0xc0000000 <= addr) && (addr < 0xD0000000)) //256M memory, modify by lxj 2011.08.22
说明启动地址有上述代码所示的限制,
这时想起设置nand flash启动的命令中有个地址是0xc0008000,正好在上述范围内,于是在uboot中输入的命令改为如下:
setenv bootcmd tftp 0xc0008000 zImage\; bootm 0xc0008000
这回开发板能够tftp启动内核了,yeah!