修改U-Boot启动延迟bootdelay的粒度
默认情况下,U-Boot的bootdelay参数,默认是以秒为单位的,如可以设置延时为1秒钟。在要求快速启动的场合,1秒钟也是很长的时间,但是如果将bootdelay的值设置为0,则无法进入U-Boot的命令界面,无法进行更多的设置。
为了解决这个问题,只有修改延时粒度了,可以将延时粒度修改为1毫秒,这样将bootdelay的值设置为1的时候,延迟也就只有1毫秒了。
修改common/main.c文件,找到static __inline__ int abortboot(int bootdelay)函数,并找到如下代码进行修改:
while ((bootdelay > 0) && (!abort)) {
int i;
--bootdelay;
/* delay 100 * 10ms */ //默认延时100X10ms=1秒
for (i=0; !abort && i<100; ++i) {
if (tstc()) { /* we got a key press */
abort = 1; /* don't auto boot */
bootdelay = 0; /* no more delay */
# ifdef CONFIG_MENUKEY
menukey = getc();
# else
(void) getc(); /* consume input */
# endif
break;
}
//udelay(10000); //默认延时10ms
udelay(10); //ABING,修改为10us,加上循环就是100X10us=1ms
}
printf("\b\b\b%2d ", bootdelay);
}
阅读(3212) | 评论(0) | 转发(0) |