• «
  • 1
  • 2
  • 3
  • »
  • Pages: 1/3     Go
主题 : 持续更新---分享一下最近搞的tiny210V2从nand启动支持(K9GAG08U0F). 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 87780
精华: 0
发帖: 93
金钱: 470 两
威望: 94 点
贡献值: 0 点
综合积分: 186 分
注册时间: 2013-02-26
最后登录: 2016-07-27
楼主  发表于: 2013-04-17 22:14

 持续更新---分享一下最近搞的tiny210V2从nand启动支持(K9GAG08U0F).

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


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


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


功能说明:
能实现网卡DM9000的功能
能对sd卡保存环境变量
能自动补全命令
能对nand进行正确的读、写、擦除操作
tftp功能能用
能从nand flash启动
更新增加的功能+yaffs2文件系统支持,(这里特别说明一下,我这里是根据友善的内核来的,oob适用硬件校验,16bit的校验。和liukun的不一样,发生了改动)
                                                                             +增加了专门烧写uboot的命令,nand write.uboot


版本说明:
移植到自己的板子的时候需要注意:
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

经过测试发现前期的存在不少问题,修改了前面全部使用4k/page的做法,解决擦除的时候出现很多坏块的问题。然后同时也解决了前期yaffs文件系统的烧写。。。
使用方法:
(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    -----------------------这个地方修改为nand write.uboot 0x21000000 0x0 0x4000
(8)然后再tftp 21000000 u-boot.bin
(9)然后nand write.e 21000000 4000 (根据文件下载大小)-----------------这个地方修改为:nand write.uboot 0x21000000 0x100000 0x40000(编译生成的uboot.bin文件的实际大小)

更新下载链接:http://pan.baidu.com/share/link?shareid=636708253&uk=555024270
[ 此帖被lihp1603在2013-06-24 10:14重新编辑 ]
级别: 侠客
UID: 87780
精华: 0
发帖: 93
金钱: 470 两
威望: 94 点
贡献值: 0 点
综合积分: 186 分
注册时间: 2013-02-26
最后登录: 2016-07-27
1楼  发表于: 2013-04-17 22:19
有问题可以到我的博客留言,http://www.cnblogs.com/lihaiping/
其中源码的修改部分,我都做了笔记,大家可以看到我的改动信息.
因为目前我还没有弄Linux内核,希望大家可以将启动内核的测试结果分享出来,一起研究和解决..谢谢
级别: 侠客
UID: 16060
精华: 0
发帖: 87
金钱: 435 两
威望: 87 点
贡献值: 0 点
综合积分: 174 分
注册时间: 2010-03-13
最后登录: 2018-02-08
2楼  发表于: 2013-04-17 22:49
支持!
刚刚接触210啊!!
级别: 新手上路
UID: 86143
精华: 0
发帖: 13
金钱: 70 两
威望: 14 点
贡献值: 0 点
综合积分: 26 分
注册时间: 2013-01-14
最后登录: 2013-05-21
3楼  发表于: 2013-04-18 08:37
支持!!!!!!!!!!!!!!!!!!
级别: 新手上路
UID: 11846
精华: 0
发帖: 39
金钱: 195 两
威望: 39 点
贡献值: 0 点
综合积分: 78 分
注册时间: 2009-12-22
最后登录: 2014-02-12
4楼  发表于: 2013-04-18 09:35
支持呀!
级别: 新手上路
UID: 89396
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2013-03-27
最后登录: 2015-04-27
5楼  发表于: 2013-04-18 11:38
万分感谢楼主!马上测试一下!
级别: 新手上路
UID: 89396
精华: 0
发帖: 9
金钱: 45 两
威望: 9 点
贡献值: 0 点
综合积分: 18 分
注册时间: 2013-03-27
最后登录: 2015-04-27
6楼  发表于: 2013-04-18 12:57
请教楼主,出现如下错误:
drivers/mtd/nand/libnand.o: In function `nand_init_chip':
/linaro_uboot_2011.10/drivers/mtd/nand/nand.c:53: undefined reference to `board_nand_init'
级别: 新手上路
UID: 21909
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
贡献值: 0 点
综合积分: 44 分
注册时间: 2010-05-23
最后登录: 2016-01-22
7楼  发表于: 2013-04-18 22:58
楼主威武
级别: 侠客
UID: 54383
精华: 0
发帖: 61
金钱: 315 两
威望: 63 点
贡献值: 0 点
综合积分: 122 分
注册时间: 2011-08-29
最后登录: 2016-09-14
8楼  发表于: 2013-04-22 19:49
支持楼主 测试一下
级别: 侠客
UID: 87780
精华: 0
发帖: 93
金钱: 470 两
威望: 94 点
贡献值: 0 点
综合积分: 186 分
注册时间: 2013-02-26
最后登录: 2016-07-27
9楼  发表于: 2013-04-23 15:40
谢谢你们的支持,可能使用中还有很多的问题,有问题记得跟帖,我们大家一起商讨,多一个人多一份力。。。
  • «
  • 1
  • 2
  • 3
  • »
  • Pages: 1/3     Go