1ee2b2434SSimon Glassmenu "Boot timing" 2ee2b2434SSimon Glass 3ee2b2434SSimon Glassconfig BOOTSTAGE 4ee2b2434SSimon Glass bool "Boot timing and reporting" 5ee2b2434SSimon Glass help 6ee2b2434SSimon Glass Enable recording of boot time while booting. To use it, insert 7ee2b2434SSimon Glass calls to bootstage_mark() with a suitable BOOTSTAGE_ID from 8ee2b2434SSimon Glass bootstage.h. Only a single entry is recorded for each ID. You can 9ee2b2434SSimon Glass give the entry a name with bootstage_mark_name(). You can also 10ee2b2434SSimon Glass record elapsed time in a particular stage using bootstage_start() 11ee2b2434SSimon Glass before starting and bootstage_accum() when finished. Bootstage will 12*57247d9cSRobert P. J. Day add up all the accumulated time and report it. 13ee2b2434SSimon Glass 14ee2b2434SSimon Glass Normally, IDs are defined in bootstage.h but a small number of 15*57247d9cSRobert P. J. Day additional 'user' IDs can be used by passing BOOTSTAGE_ID_ALLOC 16ee2b2434SSimon Glass as the ID. 17ee2b2434SSimon Glass 18*57247d9cSRobert P. J. Day Calls to show_boot_progress() will also result in log entries but 19ee2b2434SSimon Glass these will not have names. 20ee2b2434SSimon Glass 21ee2b2434SSimon Glassconfig BOOTSTAGE_REPORT 22ee2b2434SSimon Glass bool "Display a detailed boot timing report before booting the OS" 23ee2b2434SSimon Glass depends on BOOTSTAGE 24ee2b2434SSimon Glass help 25ee2b2434SSimon Glass Enable output of a boot time report just before the OS is booted. 26ee2b2434SSimon Glass This shows how long it took U-Boot to go through each stage of the 27ee2b2434SSimon Glass boot process. The report looks something like this: 28ee2b2434SSimon Glass 29ee2b2434SSimon Glass Timer summary in microseconds: 30ee2b2434SSimon Glass Mark Elapsed Stage 31ee2b2434SSimon Glass 0 0 reset 32ee2b2434SSimon Glass 3,575,678 3,575,678 board_init_f start 33ee2b2434SSimon Glass 3,575,695 17 arch_cpu_init A9 34ee2b2434SSimon Glass 3,575,777 82 arch_cpu_init done 35ee2b2434SSimon Glass 3,659,598 83,821 board_init_r start 36ee2b2434SSimon Glass 3,910,375 250,777 main_loop 37ee2b2434SSimon Glass 29,916,167 26,005,792 bootm_start 38ee2b2434SSimon Glass 30,361,327 445,160 start_kernel 39ee2b2434SSimon Glass 40ee2b2434SSimon Glassconfig BOOTSTAGE_USER_COUNT 41ee2b2434SSimon Glass hex "Number of boot ID numbers available for user use" 42ee2b2434SSimon Glass default 20 43ee2b2434SSimon Glass help 44ee2b2434SSimon Glass This is the number of available user bootstage records. 45ee2b2434SSimon Glass Each time you call bootstage_mark(BOOTSTAGE_ID_ALLOC, ...) 46ee2b2434SSimon Glass a new ID will be allocated from this stash. If you exceed 47ee2b2434SSimon Glass the limit, recording will stop. 48ee2b2434SSimon Glass 49ee2b2434SSimon Glassconfig BOOTSTAGE_FDT 50ee2b2434SSimon Glass bool "Store boot timing information in the OS device tree" 51ee2b2434SSimon Glass depends on BOOTSTAGE 52ee2b2434SSimon Glass help 53ee2b2434SSimon Glass Stash the bootstage information in the FDT. A root 'bootstage' 54ee2b2434SSimon Glass node is created with each bootstage id as a child. Each child 55ee2b2434SSimon Glass has a 'name' property and either 'mark' containing the 56*57247d9cSRobert P. J. Day mark time in microseconds, or 'accum' containing the 57ee2b2434SSimon Glass accumulated time for that bootstage id in microseconds. 58ee2b2434SSimon Glass For example: 59ee2b2434SSimon Glass 60ee2b2434SSimon Glass bootstage { 61ee2b2434SSimon Glass 154 { 62ee2b2434SSimon Glass name = "board_init_f"; 63ee2b2434SSimon Glass mark = <3575678>; 64ee2b2434SSimon Glass }; 65ee2b2434SSimon Glass 170 { 66ee2b2434SSimon Glass name = "lcd"; 67ee2b2434SSimon Glass accum = <33482>; 68ee2b2434SSimon Glass }; 69ee2b2434SSimon Glass }; 70ee2b2434SSimon Glass 71ee2b2434SSimon Glass Code in the Linux kernel can find this in /proc/devicetree. 72ee2b2434SSimon Glass 73ee2b2434SSimon Glassconfig BOOTSTAGE_STASH 74ee2b2434SSimon Glass bool "Stash the boot timing information in memory before booting OS" 75ee2b2434SSimon Glass depends on BOOTSTAGE 76ee2b2434SSimon Glass help 77ee2b2434SSimon Glass Some OSes do not support device tree. Bootstage can instead write 78ee2b2434SSimon Glass the boot timing information in a binary format at a given address. 79ee2b2434SSimon Glass This happens through a call to bootstage_stash(), typically in 80ee2b2434SSimon Glass the CPU's cleanup_before_linux() function. You can use the 81ee2b2434SSimon Glass 'bootstage stash' and 'bootstage unstash' commands to do this on 82ee2b2434SSimon Glass the command line. 83ee2b2434SSimon Glass 84ee2b2434SSimon Glassconfig BOOTSTAGE_STASH_ADDR 85ee2b2434SSimon Glass hex "Address to stash boot timing information" 86ee2b2434SSimon Glass default 0 87ee2b2434SSimon Glass help 88ee2b2434SSimon Glass Provide an address which will not be overwritten by the OS when it 89ee2b2434SSimon Glass starts, so that it can read this information when ready. 90ee2b2434SSimon Glass 91ee2b2434SSimon Glassconfig BOOTSTAGE_STASH_SIZE 92ee2b2434SSimon Glass hex "Size of boot timing stash region" 93ee2b2434SSimon Glass default 4096 94ee2b2434SSimon Glass help 95ee2b2434SSimon Glass This should be large enough to hold the bootstage stash. A value of 96ee2b2434SSimon Glass 4096 (4KiB) is normally plenty. 97ee2b2434SSimon Glass 98ee2b2434SSimon Glassendmenu 99ee2b2434SSimon Glass 100d14739ffSPeng Fanmenu "Boot media" 101d14739ffSPeng Fan 102d14739ffSPeng Fanconfig NOR_BOOT 103d14739ffSPeng Fan bool "Support for booting from NOR flash" 104d14739ffSPeng Fan depends on NOR 105d14739ffSPeng Fan help 106d14739ffSPeng Fan Enabling this will make a U-Boot binary that is capable of being 107d14739ffSPeng Fan booted via NOR. In this case we will enable certain pinmux early 108d14739ffSPeng Fan as the ROM only partially sets up pinmux. We also default to using 109d14739ffSPeng Fan NOR for environment. 110d14739ffSPeng Fan 111faaef73fSPeng Fanconfig NAND_BOOT 112faaef73fSPeng Fan bool "Support for booting from NAND flash" 113faaef73fSPeng Fan default n 114faaef73fSPeng Fan help 115faaef73fSPeng Fan Enabling this will make a U-Boot binary that is capable of being 116faaef73fSPeng Fan booted via NAND flash. This is not a must, some SoCs need this, 117*57247d9cSRobert P. J. Day some not. 118faaef73fSPeng Fan 119faaef73fSPeng Fanconfig ONENAND_BOOT 120faaef73fSPeng Fan bool "Support for booting from ONENAND" 121faaef73fSPeng Fan default n 122faaef73fSPeng Fan help 123faaef73fSPeng Fan Enabling this will make a U-Boot binary that is capable of being 124faaef73fSPeng Fan booted via ONENAND. This is not a must, some SoCs need this, 125*57247d9cSRobert P. J. Day some not. 126faaef73fSPeng Fan 127faaef73fSPeng Fanconfig QSPI_BOOT 128faaef73fSPeng Fan bool "Support for booting from QSPI flash" 129faaef73fSPeng Fan default n 130faaef73fSPeng Fan help 131faaef73fSPeng Fan Enabling this will make a U-Boot binary that is capable of being 132faaef73fSPeng Fan booted via QSPI flash. This is not a must, some SoCs need this, 133*57247d9cSRobert P. J. Day some not. 134faaef73fSPeng Fan 135faaef73fSPeng Fanconfig SATA_BOOT 136faaef73fSPeng Fan bool "Support for booting from SATA" 137faaef73fSPeng Fan default n 138faaef73fSPeng Fan help 139faaef73fSPeng Fan Enabling this will make a U-Boot binary that is capable of being 140faaef73fSPeng Fan booted via SATA. This is not a must, some SoCs need this, 141*57247d9cSRobert P. J. Day some not. 142faaef73fSPeng Fan 143faaef73fSPeng Fanconfig SD_BOOT 144faaef73fSPeng Fan bool "Support for booting from SD/EMMC" 145faaef73fSPeng Fan default n 146faaef73fSPeng Fan help 147faaef73fSPeng Fan Enabling this will make a U-Boot binary that is capable of being 148faaef73fSPeng Fan booted via SD/EMMC. This is not a must, some SoCs need this, 149*57247d9cSRobert P. J. Day some not. 150faaef73fSPeng Fan 151faaef73fSPeng Fanconfig SPI_BOOT 152faaef73fSPeng Fan bool "Support for booting from SPI flash" 153faaef73fSPeng Fan default n 154faaef73fSPeng Fan help 155faaef73fSPeng Fan Enabling this will make a U-Boot binary that is capable of being 156faaef73fSPeng Fan booted via SPI flash. This is not a must, some SoCs need this, 157*57247d9cSRobert P. J. Day some not. 158faaef73fSPeng Fan 159d14739ffSPeng Fanendmenu 160d14739ffSPeng Fan 161bb597c0eSHeiko Schocherconfig BOOTDELAY 162bb597c0eSHeiko Schocher int "delay in seconds before automatically booting" 1635e4e8741STom Rini default 2 16441598c82SMasahiro Yamada depends on AUTOBOOT 165bb597c0eSHeiko Schocher help 166bb597c0eSHeiko Schocher Delay before automatically running bootcmd; 1672fbb8462SMasahiro Yamada set to 0 to autoboot with no delay, but you can stop it by key input. 168bb597c0eSHeiko Schocher set to -1 to disable autoboot. 169bb597c0eSHeiko Schocher set to -2 to autoboot with no delay and not check for abort 170bb597c0eSHeiko Schocher 1719060970fSMasahiro Yamada See doc/README.autoboot for details. 1729060970fSMasahiro Yamada 1739854a874SSimon Glassconfig CONSOLE_RECORD 1749854a874SSimon Glass bool "Console recording" 1759854a874SSimon Glass help 1769854a874SSimon Glass This provides a way to record console output (and provide console 177*57247d9cSRobert P. J. Day input) through circular buffers. This is mostly useful for testing. 1789854a874SSimon Glass Console output is recorded even when the console is silent. 1799854a874SSimon Glass To enable console recording, call console_record_reset_enable() 1809854a874SSimon Glass from your code. 1819854a874SSimon Glass 1829854a874SSimon Glassconfig CONSOLE_RECORD_OUT_SIZE 1839854a874SSimon Glass hex "Output buffer size" 1849854a874SSimon Glass depends on CONSOLE_RECORD 1859854a874SSimon Glass default 0x400 if CONSOLE_RECORD 1869854a874SSimon Glass help 1879854a874SSimon Glass Set the size of the console output buffer. When this fills up, no 1889854a874SSimon Glass more data will be recorded until some is removed. The buffer is 1899854a874SSimon Glass allocated immediately after the malloc() region is ready. 1909854a874SSimon Glass 1919854a874SSimon Glassconfig CONSOLE_RECORD_IN_SIZE 1929854a874SSimon Glass hex "Input buffer size" 1939854a874SSimon Glass depends on CONSOLE_RECORD 1949854a874SSimon Glass default 0x100 if CONSOLE_RECORD 1959854a874SSimon Glass help 1969854a874SSimon Glass Set the size of the console input buffer. When this contains data, 1979854a874SSimon Glass tstc() and getc() will use this in preference to real device input. 1989854a874SSimon Glass The buffer is allocated immediately after the malloc() region is 1999854a874SSimon Glass ready. 2004d25507fSSiva Durga Prasad Paladugu 2014d25507fSSiva Durga Prasad Paladuguconfig SYS_NO_FLASH 2024d25507fSSiva Durga Prasad Paladugu bool "Disable support for parallel NOR flash" 2034d25507fSSiva Durga Prasad Paladugu default n 2044d25507fSSiva Durga Prasad Paladugu help 2054d25507fSSiva Durga Prasad Paladugu This option is used to disable support for parallel NOR flash. 206