首先在這里我需要感謝兩個(gè)人,一個(gè)是liukun,一個(gè)是2012shiyi這兩個(gè)人的功勞,因?yàn)樗麄兘o了一些引導(dǎo). 在nand啟動(dòng)著一步,我卡了蠻久,今天才成功啟動(dòng).
版本說(shuō)明:linaro_uboot_4.17_nandboot_v5.1.tar.gz是本人根據(jù)liukun和網(wǎng)上2012shiyi的資料研究處理的,目前這個(gè)版本能成功支持從sd和從mlc的nand flash啟動(dòng)。 編寫(xiě)人:lihaiping 時(shí)間:2013-4-17
我移植的時(shí)候,將板子名字改為了ydzx210.沒(méi)有再要tiny210V2的稱呼,但我的板子是最新的tiny210板子.
功能說(shuō)明: 能實(shí)現(xiàn)網(wǎng)卡DM9000的功能 能對(duì)sd卡保存環(huán)境變量 能自動(dòng)補(bǔ)全命令 能對(duì)nand進(jìn)行正確的讀、寫(xiě)、擦除操作 tftp功能能用 能從nand flash啟動(dòng)
我移植的時(shí)候,將板子名字改為了ydzx210.沒(méi)有再要tiny210V2的稱呼,但我的板子是最新的tiny210V2板子.
功能說(shuō)明: 能實(shí)現(xiàn)網(wǎng)卡DM9000的功能 能對(duì)sd卡保存環(huán)境變量 能自動(dòng)補(bǔ)全命令 能對(duì)nand進(jìn)行正確的讀、寫(xiě)、擦除操作 tftp功能能用 能從nand flash啟動(dòng)
版本說(shuō)明: 移植到自己的板子的時(shí)候需要注意: 1、 這個(gè)版本只是從nandboot啟動(dòng),如果要從sd卡啟動(dòng)的話,需要修改./board/samsung/ydzx210目錄下的Makefile文件. ifdef CONFIG_SPL_BUILD #如果從mmc啟動(dòng)的話,下面這句就不能注釋 #COBJS += mmc_boot.o #下面這句為實(shí)現(xiàn)對(duì)nand啟動(dòng)-lhp-2013.4.9 COBJS += 210_nand_boot.o endif 1)如果從sd卡啟動(dòng),就將COBJS += mmc_boot.o打開(kāi),將COBJS += 210_nand_boot.o屏蔽. 2)如果從nand啟動(dòng),就將COBJS += 210_nand_boot.o打開(kāi),將COBJS += mmc_boot.o屏蔽.
2、從sd卡和從nand啟動(dòng),還需要注意ydzx210.h文件末尾的配置選項(xiàng). /*NAND_BOOT & MMCSD_BOOT by lhp */ /*下面為從sd卡啟動(dòng)的參數(shù)-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啟動(dòng)配置參數(shù)-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*/ /*保存環(huán)境變量的位置需要塊對(duì)齊,或者會(huì)出現(xiàn)保存環(huán)境變量的時(shí)候出現(xiàn)錯(cuò)誤*/ /*因?yàn)閚and的塊的大小為1M,這里學(xué)需要查詢下nand的bad信息,不能把環(huán)境變量保存在壞塊的地址上*/ #define CONFIG_ENV_OFFSET 0x200000
3、 要支持tftp下載功能,根據(jù)自己的網(wǎng)絡(luò)實(shí)際情況需要修改里面的 #define CONFIG_IPADDR192.168.1.192 /*對(duì)IP進(jìn)行了修改-lhp-2013.3.25*/ #define CONFIG_SERVERIP192.168.1.190 #define CONFIG_GATEWAYIP192.168.1.254 修改以后測(cè)試一下,看板子和你的linux服務(wù)器能不能通.目前這個(gè)版本還有一個(gè)缺陷,就是每次板子上電以后,要實(shí)現(xiàn)網(wǎng)絡(luò)的tftp,就先要ping一下,才能用,或者網(wǎng)絡(luò)不通 4、 需要查詢你的nand壞塊,然后根據(jù)板子情況修改CONFIG_ENV_OFFSET的地址.如果地址定義不好,可能會(huì)出現(xiàn)saveenv無(wú)反應(yīng),或者出現(xiàn)nand有時(shí)能啟動(dòng),有時(shí)不能啟動(dòng)的情況。
首先說(shuō)明這個(gè)版本的測(cè)試使用步驟: (1)先根據(jù)上面的移植注意事項(xiàng),編譯生成一個(gè)能從sd卡成功啟動(dòng)的uboot.(這里需要修改一個(gè)/board/samsung/ydzx210/Makefile.) (2)從sd卡啟動(dòng)以后,我們需要再?gòu)男戮幾g生成一個(gè)能給nand啟動(dòng)使用的uboot.(這里也只要需要修改一個(gè)/board/samsung/ydzx210/Makefile.) (3)給服務(wù)器配置tftp功能,將nand啟動(dòng)編譯生成的在spl/ydzx210-spl.bin和u-boot.bin文件拷貝到tftp服務(wù)器文件目錄下. (4)然后先ping 一次.(這里需要測(cè)試通過(guò),不然不能進(jìn)行tftp) (5)然后nand erase.chip擦除整個(gè)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 (根據(jù)文件下載大小)
廢話不多說(shuō),上源碼給大家做測(cè)試。。。。
http://pan.baidu.com/share/link?shareid=404646&uk=555024270
---------------------------------------------------------------------------------
|