2011年10月2日 星期日

[u-boot] bootdelay 時仍然可以中斷自動開機

u-boot 環境變數中, bootcmd 指定了上電後 u-boot 要執行的動作, 像是 bootcmd=mmc init&& fatload mmc 1 0x80800000 u-boot.bin&& go 0x80800000 可以在開機後自動從 mmc 卡下載第二階段 bootloader 進記憶體, 然後執行記憶體中的程式. 而 bootdelay 會是用來設定執行 bootcmd 之前要等待幾秒, 使用者可以在倒數時按下鍵盤進入 u-boot 的命令提示, 而不是去執行 bootcmd 的內容. bootdealy = 0 可以把 delay 減至最小, 但是又可以讓我們有機會進到命令提示. 但是要另外在 board config 裡定義 CONFIG_ZERO_BOOTDELAY_CHECK 這樣就不用浪費時間等待使用者中斷了. 更多細節可以看 u-boot 原始碼中的 doc/README.autoboot 文件