关于uboot的一些优化

转载于:http://blog.163.com/solylee@126/blog/static/1718231572010101910485331/

 

本人的开发环境是u-boot-1.1.6版本,fedora 9+虚拟机的linux系统,开发板cpuat9263ek的板子,以下是本人在试验过程中总结出来的步骤,

(1)修改/u-boot-1.1.6/common/main.c269udelay (10000);改为udelay (10);

(2)修改/u-boot-1.1.6/lib_arm/board.c459udelay(100000);改为udelay(10);462udelay(100000);改为udelay(10);

(3)经研究发现,严重影响速度的就一句话,即/u-boot-1.1.6/drivers/nand/nand_base.c2634 int nand_scan (struct mtd_info *mtd, int maxchips)这个函数的最后一句return this->scan_bbt (mtd);我屏蔽掉了这句,减少了4秒。改为return 0

(4) /u-boot-1.1.6.lcd/include/configs/at91sam9263ek.h

修改62#define CONFIG_BOOTDELAY   3改为 #define CONFIG_BOOTDELAY   0

修改启动时bootdelay的时间

(5) /u-boot-1.1.6/include/configs/at91sam9263ek.h这个程序里面269#define AT91C_ETH_TIMEOUT          30000改为#define AT91C_ETH_TIMEOUT         3无法启动

(6) 严重影响速度的是/u-boot-1.1.6/board/at91sam9263ek/dm9161a.c这个函数的do….while语句177

do {

              

              at91_EmacReadPhy(p_mac, AT91C_PHY_ADDR, DM9161_BMSR, &IntValue);

              at91_EmacReadPhy(p_mac, AT91C_PHY_ADDR, DM9161_BMSR, &IntValue);

      

              tick++;

       } while (!(IntValue & DM9161_LINK_STATUS) && (tick < AT91C_ETH_TIMEOUT));

在相关头文件中找到AT91C_ETH_TIMEOUT的定义,改变他的大小可减小启动速度。但是不知道会不会对uboot有影响

鉴于本人水平有限,以上方法都是本人试出来的,至于修改后导致的今后的启动无法进行或是其他bug,均不负责,有知道bug的欢迎指正

posted @ 2013-12-02 09:12  haotianling  阅读(449)  评论(0编辑  收藏  举报