uboot中main_loop下bootdelay_process实现

来源:互联网 发布:淘宝店主实拍情趣 编辑:程序博客网 时间:2024/05/16 11:29
common/autoboot.c CONFIG_AUTOBOOT
 

const char *bootdelay_process(void){ char *s; int bootdelay;#ifdef CONFIG_BOOTCOUNT_LIMIT unsigned long bootcount = 0; unsigned long bootlimit = 0;#endif /* CONFIG_BOOTCOUNT_LIMIT */

#ifdef CONFIG_BOOTCOUNT_LIMIT bootcount = bootcount_load(); bootcount++; bootcount_store(bootcount); setenv_ulong("bootcount", bootcount); bootlimit = getenv_ulong("bootlimit", 10, 0);#endif /* CONFIG_BOOTCOUNT_LIMIT */

 s = getenv("bootdelay"); bootdelay = s ? (int)simple_strtol(s, NULL, 10) : CONFIG_BOOTDELAY;

#ifdef CONFIG_OF_CONTROL bootdelay = fdtdec_get_config_int(gd->fdt_blob, "bootdelay",   bootdelay);#endif

 debug("### main_loop entered: bootdelay=%d\n\n", bootdelay);

#if defined(CONFIG_MENU_SHOW) bootdelay = menu_show(bootdelay);#endif bootretry_init_cmd_timeout();

#ifdef CONFIG_POST if (gd->flags & GD_FLG_POSTFAIL) {  s = getenv("failbootcmd"); } else#endif /* CONFIG_POST */#ifdef CONFIG_BOOTCOUNT_LIMIT if (bootlimit && (bootcount > bootlimit)) {  printf("Warning: Bootlimit (%u) exceeded. Using altbootcmd.\n",         (unsigned)bootlimit);  s = getenv("altbootcmd"); } else#endif /* CONFIG_BOOTCOUNT_LIMIT */  s = getenv("bootcmd");

 process_fdt_options(gd->fdt_blob); stored_bootdelay = bootdelay;

 return s;}

 
0 0
原创粉丝点击