The board has DM9000 for 10/100Mbps Ethernet; user can use tftp to update Nand flash booting image.
OMAP3 DevKit8000 # tftp 80000000 x-load.bin.ift_for_NAND
OMAP3 DevKit8000 # nand ecc hw
OMAP3 DevKit8000 # nand erase 0 80000
OMAP3 DevKit8000 # tftp 80000000 flash-uboot.bin
OMAP3 DevKit8000 # nand unlock
OMAP3 DevKit8000 # nand ecc sw
OMAP3 DevKit8000 # nand erase 80000 160000
OMAP3 DevKit8000 # tftp 80000000 uImage
OMAP3 DevKit8000 # nand unlock
OMAP3 DevKit8000 # nand ecc sw
OMAP3 DevKit8000 # nand erase 280000 200000
OMAP3 DevKit8000 # tftp 80000000 ubi.img
OMAP3 DevKit8000 # nand unlock
OMAP3 DevKit8000 # nand ecc sw
OMAP3 DevKit8000 # nand erase 680000 7980000
OMAP3 DevKit8000 # nand write.i 80000000 680000 $(filesize)
下面是我的心得,我想做的事情是什么呢?就是把PC机的linux虚拟机上做好的x-loader uboot kernel filesystem这些东东直接写入到板卡(AM3517)的nandflash中,我前期的开发中都是用的是norflash,所以对nandflash不是很熟悉,现在想来也是差不多,先分析上面的实例:
首先PC机和板卡AM3517之间连接起来才能把这些数据写进去吧,这里选用的是TFTP方式,说白了就是网络连起来,ping的通就OK了,这里基本的设置还要说一些,PC机上要安装了TFTP服务,防火墙要关闭,还有,PC机上要建立一个TFTP服务的目录,PC机上把哪些文件传给板卡AM3517就要把这些文件放在TFTP服务目录下,先看他是如何更新x-loader的吧。
首先是把x-load.bin.ift_for_NAND 这个文件通过tftp写到内存的80000000地址处(80000000-?),另外x-load.bin.ift_for_NAND 这个文件看文件名就知道是给nandflash用的了,再设置nandflash的ecc错误校验为硬件校验模式,再把nandflash的0-80000地址擦除了,这部分地址用于存放x-loader,现在都已经做了一些什么呢,把PC机上的x-loader数据传到内存中了,nandflash的一段地址也被擦除了,最后要做的就是把内存中的x-loader数据写入到nandflash中。
下面的 uboot kernel filesystem的操作和x-loader操作是一样的。AM3517也是这样操作了。