http://daydreamer.idv.tw/rewrite.php/read-60.html


u-boot可以設定的環境變數,例如tftp server ip, eth ip…等,如果要在進入linux後還能隨意操縱這些enviroment variable,就必需藉由fw_printenv這個小程式,這支小程式能顯示和設定u-boot的環境變數


因為小弟的板子是nand flash,所以我下載目前最新的u-boot,並試著用make env指令把fw_printenv編出來(最新板的fw_printenv可以自動切換nand與nor flash的操作方式)



接下來就要設定fw_env.config檔案並把它擺在/etc下,因為小弟u-boot的env offset被設定成如下


#define CFG_ENV_OFFSET  0x020000
#define CFG_NAND_BASE    0x4E000000
#define CMD_SAVEENV
#define CFG_NAND_LEGACY   
#define CFG_ENV_SIZE  0x10000 /* Total Size of Environment Sector */
#define SECTORSIZE 512


所以fw_env.config必需被設定如下
# NAND example
# MTD device name  offset                env. size                  Flash sector size                  Number of sectors
/dev/mtd0                   0x020000          0x10000                 0x4000                                   512



MTD device name :環境變量所在的mtd分區;
Device offset :環境變量的地址偏移量(起始地址);
Env.size :環境變量的大小;
Flash sector size :環境變量所在的第一個sector的大小。


這樣一來以後改u-boot environment variable就不用特地進u-boot修改了…


執行畫面大致如下圖


http://daydreamer.idv.tw/attachments/200905/1124668809.jpg


 


注意注意
fw_env.config  要放在 /ETC 下面囉


 

立你斯 發表在 痞客邦 留言(0) 人氣()