本人的开发环境是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 {
at91_EmacReadPhy(p_mac, AT91C_PHY_ADDR, DM9161_BMSR, &IntValue);
at91_EmacReadPhy(p_mac, AT91C_PHY_ADDR, DM9161_BMSR, &IntValue);