Skip to content
Snippets Groups Projects
README.autoboot 5.02 KiB
Newer Older
  • Learn to ignore specific revisions
  • Wolfgang Denk's avatar
    Wolfgang Denk committed
    /*
     * (C) Copyright 2001
     * Dave Ellis, SIXNET, dge@sixnetio.com
     *
    
     * SPDX-License-Identifier:	GPL-2.0+
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
     */
    
    Using autoboot configuration options
    ====================================
    
    The basic autoboot configuration options are documented in the main
    U-Boot README. See it for details. They are:
    
      bootdelay
      bootcmd
      CONFIG_BOOTDELAY
      CONFIG_BOOTCOMMAND
    
    Some additional options that make autoboot safer in a production
    product are documented here.
    
    Why use them?
    -------------
    
    The basic autoboot feature allows a system to automatically boot to
    the real application (such as Linux) without a user having to enter
    any commands. If any key is pressed before the boot delay time
    expires, U-Boot stops the autoboot process, gives a U-Boot prompt
    and waits forever for a command. That's a good thing if you pressed a
    key because you wanted to get the prompt.
    
    It's not so good if the key press was a stray character on the
    console serial port, say because a user who knows nothing about
    U-Boot pressed a key before the system had time to boot. It's even
    worse on an embedded product that doesn't have a console during
    normal use. The modem plugged into that console port sends a
    character at the wrong time and the system hangs, with no clue as to
    why it isn't working.
    
    You might want the system to autoboot to recover after an external
    configuration program stops autoboot. If the configuration program
    dies or loses its connection (modems can disconnect at the worst
    time) U-Boot will patiently wait forever for it to finish.
    
    These additional configuration options can help provide a system that
    boots when it should, but still allows access to U-Boot.
    
    What they do
    ------------
    
      CONFIG_BOOT_RETRY_TIME
      CONFIG_BOOT_RETRY_MIN
    
    
      "bootretry" environment variable
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	These options determine what happens after autoboot is
    	stopped and U-Boot is waiting for commands.
    
    	CONFIG_BOOT_RETRY_TIME must be defined to enable the boot
    
    	retry feature. If the environment variable "bootretry" is
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	found then its value is used, otherwise the retry timeout is
    	CONFIG_BOOT_RETRY_TIME. CONFIG_BOOT_RETRY_MIN is optional and
    	defaults to CONFIG_BOOT_RETRY_TIME. All times are in seconds.
    
    	If the retry timeout is negative, the U-Boot command prompt
    	never times out. Otherwise it is forced to be at least
    	CONFIG_BOOT_RETRY_MIN seconds. If no valid U-Boot command is
    	entered before the specified time the boot delay sequence is
    	restarted. Each command that U-Boot executes restarts the
    	timeout.
    
    	If CONFIG_BOOT_RETRY_TIME < 0 the feature is there, but
    	doesn't do anything unless the environment variable
    
    	"bootretry" is >= 0.
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
      CONFIG_AUTOBOOT_KEYED
    
      CONFIG_AUTOBOOT_KEYED_CTRLC
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
      CONFIG_AUTOBOOT_PROMPT
      CONFIG_AUTOBOOT_DELAY_STR
      CONFIG_AUTOBOOT_STOP_STR
    
    
      "bootdelaykey"  environment variable
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
      "bootstopkey"	  environment variable
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	These options give more control over stopping autoboot. When
    	they are used a specific character or string is required to
    	stop or delay autoboot.
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    	Define CONFIG_AUTOBOOT_KEYED (no value required) to enable
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	this group of options.	CONFIG_AUTOBOOT_DELAY_STR,
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	CONFIG_AUTOBOOT_STOP_STR or both should be specified (or
    	specified by the corresponding environment variable),
    	otherwise there is no way to stop autoboot.
    
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	CONFIG_AUTOBOOT_PROMPT is displayed before the boot delay
    	selected by CONFIG_BOOTDELAY starts. If it is not defined
    	there is no output indicating that autoboot is in progress.
    
    Stefan Roese's avatar
    Stefan Roese committed
    
    	Note that CONFIG_AUTOBOOT_PROMPT is used as the (only)
    	argument to a printf() call, so it may contain '%' format
    	specifications, provided that it also includes, sepearated by
    	commas exactly like in a printf statement, the required
    	arguments. It is the responsibility of the user to select only
    	such arguments that are valid in the given context. A
    	reasonable prompt could be defined as
    
    		#define CONFIG_AUTOBOOT_PROMPT \
    			"autoboot in %d seconds\n",bootdelay
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	If CONFIG_AUTOBOOT_DELAY_STR or "bootdelaykey" is specified
    	and this string is received from console input before
    	autoboot starts booting, U-Boot gives a command prompt. The
    	U-Boot prompt will time out if CONFIG_BOOT_RETRY_TIME is
    	used, otherwise it never times out.
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	If CONFIG_AUTOBOOT_STOP_STR or "bootstopkey" is specified and
    	this string is received from console input before autoboot
    	starts booting, U-Boot gives a command prompt. The U-Boot
    	prompt never times out, even if CONFIG_BOOT_RETRY_TIME is
    	used.
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    
    	The string recognition is not very sophisticated. If a
    	partial match is detected, the first non-matching character
    	is checked to see if starts a new match. There is no check
    	for a shorter partial match, so it's best if the first
    	character of a key string does not appear in the rest of the
    	string.
    
    
    	The CONFIG_AUTOBOOT_KEYED_CTRLC #define allows for the boot
    	sequence to be interrupted by ctrl-c, in addition to the
    	"bootdelaykey" and "bootstopkey". Setting this variable
    	provides an escape sequence from the limited "password"
    	strings.
    
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
      CONFIG_RESET_TO_RETRY
    
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    	(Only effective when CONFIG_BOOT_RETRY_TIME is also set)
    	After the countdown timed out, the board will be reset to restart
    	again.