首先在這里我需要感謝兩個人,一個是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
---------------------------------------------------------------------------------