您的位置:首页 > 其它

关于uboot的一些优化

2011-04-21 10:53 330 查看
本人的开发环境是u-boot-1.1.6版本,fedora 9+虚拟机的linux系统,开发板cpu为at9263ek的板子,以下是本人在试验过程中总结出来的步骤,
(1)修改/u-boot-1.1.6/common/main.c第269行udelay (10000);改为udelay (10);
(2)修改/u-boot-1.1.6/lib_arm/board.c第459,udelay(100000);改为udelay(10);462行udelay(100000);改为udelay(10);
(3)经研究发现,严重影响速度的就一句话,即/u-boot-1.1.6/drivers/nand/nand_base.c第2634行 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 {
/* Link status is latched, so read twice to get current value */
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的欢迎指正

原创 http://blog.163.com/solylee@126/blog/static/1718231572010101910485331/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: