(原创)分享一下最近搞的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的称呼,但我的板子是最新的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
---------------------------------------------------------------------------------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架