分享

(原创)分享一下最近搞的tiny210V2从nand启动支持(K9GAG08U0F).

 zhouADNjj 2014-05-15

首先在这里我需要感谢两个人,一个是liukun,一个是2012shiyi这两个人的功劳,因为他们给了一些引导.
在nand启动着一步,我卡了蛮久,今天才成功启动.


版本说明:linaro_uboot_4.17_nandboot_v5.1.tar.gz是本人根据liukun和网上2012shiyi的资料研究处理的,目前这个版本能成功支持从sd和从mlc的nand flash启动。
编写人:lihaiping
时间:2013-4-17


我移植的时候,将板子名字改为了ydzx210.没有再要tiny210V2的称呼,但我的板子是最新的tiny210板子.


功能说明:
能实现网卡DM9000的功能
能对sd卡保存环境变量
能自动补全命令
能对nand进行正确的读、写、擦除操作
tftp功能能用
能从nand flash启动

我移植的时候,将板子名字改为了ydzx210.没有再要tiny210V2的称呼,但我的板子是最新的tiny210V2板子.

功能说明:
能实现网卡DM9000的功能
能对sd卡保存环境变量
能自动补全命令
能对nand进行正确的读、写、擦除操作
tftp功能能用
能从nand flash启动


版本说明:
移植到自己的板子的时候需要注意:
1、
这个版本只是从nandboot启动,如果要从sd卡启动的话,需要修改./board/samsung/ydzx210目录下的Makefile文件.
ifdef CONFIG_SPL_BUILD
#如果从mmc启动的话,下面这句就不能注释
#COBJS  += mmc_boot.o
#下面这句为实现对nand启动-lhp-2013.4.9
COBJS += 210_nand_boot.o
endif
1)如果从sd卡启动,就将COBJS  += mmc_boot.o打开,将COBJS += 210_nand_boot.o屏蔽.
2)如果从nand启动,就将COBJS  += 210_nand_boot.o打开,将COBJS += mmc_boot.o屏蔽.

2、从sd卡和从nand启动,还需要注意ydzx210.h文件末尾的配置选项.
/*NAND_BOOT & MMCSD_BOOT  by lhp  */
/*下面为从sd卡启动的参数-lhp-4.17*/

/*#define CONFIG_ENV_IS_IN_MMC 1 */
/*#define CONFIG_SYS_MMC_ENV_DEV 0*/
/*#define CONFIG_ENV_SIZE 0x4000 */ /* 16KB */
/*#define RESERVE_BLOCK_SIZE (512)*/
/*#define BL1_SIZE (16<< 10) */ /*16 K reserved for BL1*/
/*#define CONFIG_ENV_OFFSET (RESERVE_BLOCK_SIZE + BL1_SIZE + ((16 + 512) * 1024))*/


/*下面为从nand启动配置参数-lhp-4.17*/
#define CONFIG_ENV_IS_IN_NAND        1     /*修改-lhp-4.15*/
#define CONFIG_ENV_SIZE        0x4000          /* 16KB */
#define RESERVE_BLOCK_SIZE              (4*1024)/*这里4K,nand flash-lhp-4.15*/
#define BL1_SIZE                     (16 << 10)/*16K reserved for bl1*/
/*保存环境变量的位置需要块对齐,或者会出现保存环境变量的时候出现错误*/
/*因为nand的块的大小为1M,这里学需要查询下nand的bad信息,不能把环境变量保存在坏块的地址上*/ 
#define CONFIG_ENV_OFFSET               0x200000


3、
要支持tftp下载功能,根据自己的网络实际情况需要修改里面的
#define CONFIG_IPADDR192.168.1.192  /*对IP进行了修改-lhp-2013.3.25*/
#define CONFIG_SERVERIP192.168.1.190
#define CONFIG_GATEWAYIP192.168.1.254
修改以后测试一下,看板子和你的linux服务器能不能通.目前这个版本还有一个缺陷,就是每次板子上电以后,要实现网络的tftp,就先要ping一下,才能用,或者网络不通
4、
需要查询你的nand坏块,然后根据板子情况修改CONFIG_ENV_OFFSET的地址.如果地址定义不好,可能会出现saveenv无反应,或者出现nand有时能启动,有时不能启动的情况。




首先说明这个版本的测试使用步骤:
(1)先根据上面的移植注意事项,编译生成一个能从sd卡成功启动的uboot.(这里需要修改一个/board/samsung/ydzx210/Makefile.)
(2)从sd卡启动以后,我们需要再从新编译生成一个能给nand启动使用的uboot.(这里也只要需要修改一个/board/samsung/ydzx210/Makefile.)
(3)给服务器配置tftp功能,将nand启动编译生成的在spl/ydzx210-spl.bin和u-boot.bin文件拷贝到tftp服务器文件目录下.
(4)然后先ping 一次.(这里需要测试通过,不然不能进行tftp)
(5)然后nand erase.chip擦除整个nand
(6)然后再tftp 21000000 ydzx210-spl.bin
(7)然后nand write.e 21000000 0 4000
(8)然后再tftp 21000000 u-boot.bin
(9)然后nand write.e 21000000 4000 (根据文件下载大小)


废话不多说,上源码给大家做测试。。。。

http://pan.baidu.com/share/link?shareid=404646&uk=555024270

---------------------------------------------------------------------------------

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多