Kconfig 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880
  1. menu "Console"
  2. config MENU
  3. bool
  4. help
  5. This is the library functionality to provide a text-based menu of
  6. choices for the user to make choices with.
  7. config CONSOLE_RECORD
  8. bool "Console recording"
  9. help
  10. This provides a way to record console output (and provide console
  11. input) through circular buffers. This is mostly useful for testing.
  12. Console output is recorded even when the console is silent.
  13. To enable console recording, call console_record_reset_enable()
  14. from your code.
  15. config CONSOLE_RECORD_INIT_F
  16. bool "Enable console recording during pre-relocation init"
  17. depends on CONSOLE_RECORD && SYS_MALLOC_F
  18. default y
  19. help
  20. This option enables console recording during pre-relocation init.
  21. CONFIG_SYS_MALLOC_F must be enabled to use this feature.
  22. config CONSOLE_RECORD_OUT_SIZE
  23. hex "Output buffer size"
  24. depends on CONSOLE_RECORD
  25. default 0x400 if CONSOLE_RECORD
  26. help
  27. Set the size of the console output buffer. When this fills up, no
  28. more data will be recorded until some is removed. The buffer is
  29. allocated immediately after the malloc() region is ready.
  30. config CONSOLE_RECORD_OUT_SIZE_F
  31. hex "Output buffer size before relocation"
  32. depends on CONSOLE_RECORD
  33. default 0x400 if CONSOLE_RECORD
  34. help
  35. Set the size of the console output buffer before relocation. When
  36. this fills up, no more data will be recorded until some is removed.
  37. The buffer is allocated immediately after the early malloc() region is
  38. ready.
  39. config CONSOLE_RECORD_IN_SIZE
  40. hex "Input buffer size"
  41. depends on CONSOLE_RECORD
  42. default 0x100 if CONSOLE_RECORD
  43. help
  44. Set the size of the console input buffer. When this contains data,
  45. tstc() and getc() will use this in preference to real device input.
  46. The buffer is allocated immediately after the malloc() region is
  47. ready.
  48. config DISABLE_CONSOLE
  49. bool "Add functionality to disable console completely"
  50. help
  51. Disable console (in & out).
  52. config IDENT_STRING
  53. string "Board specific string to be added to uboot version string"
  54. help
  55. This options adds the board specific name to u-boot version.
  56. config LOGLEVEL
  57. int "loglevel"
  58. default 4
  59. range 0 10
  60. help
  61. All Messages with a loglevel smaller than the console loglevel will
  62. be compiled in. The loglevels are defined as follows:
  63. 0 - emergency
  64. 1 - alert
  65. 2 - critical
  66. 3 - error
  67. 4 - warning
  68. 5 - note
  69. 6 - info
  70. 7 - debug
  71. 8 - debug content
  72. 9 - debug hardware I/O
  73. config SPL_LOGLEVEL
  74. int
  75. default LOGLEVEL
  76. config TPL_LOGLEVEL
  77. int
  78. default LOGLEVEL
  79. config SILENT_CONSOLE
  80. bool "Support a silent console"
  81. help
  82. This option allows the console to be silenced, meaning that no
  83. output will appear on the console devices. This is controlled by
  84. setting the environment variable 'silent' to a non-empty value.
  85. Note this also silences the console when booting Linux.
  86. When the console is set up, the variable is checked, and the
  87. GD_FLG_SILENT flag is set. Changing the environment variable later
  88. will update the flag.
  89. config SILENT_U_BOOT_ONLY
  90. bool "Only silence the U-Boot console"
  91. depends on SILENT_CONSOLE
  92. help
  93. Normally when the U-Boot console is silenced, Linux's console is
  94. also silenced (assuming the board boots into Linux). This option
  95. allows the linux console to operate normally, even if U-Boot's
  96. is silenced.
  97. config SILENT_CONSOLE_UPDATE_ON_SET
  98. bool "Changes to the 'silent' environment variable update immediately"
  99. depends on SILENT_CONSOLE
  100. default y if SILENT_CONSOLE
  101. help
  102. When the 'silent' environment variable is changed, update the
  103. console silence flag immediately. This allows 'setenv' to be used
  104. to silence or un-silence the console.
  105. The effect is that any change to the variable will affect the
  106. GD_FLG_SILENT flag.
  107. config SILENT_CONSOLE_UPDATE_ON_RELOC
  108. bool "Allow flags to take effect on relocation"
  109. depends on SILENT_CONSOLE
  110. help
  111. In some cases the environment is not available until relocation
  112. (e.g. NAND). This option makes the value of the 'silent'
  113. environment variable take effect at relocation.
  114. config PRE_CONSOLE_BUFFER
  115. bool "Buffer characters before the console is available"
  116. help
  117. Prior to the console being initialised (i.e. serial UART
  118. initialised etc) all console output is silently discarded.
  119. Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to
  120. buffer any console messages prior to the console being
  121. initialised to a buffer. The buffer is a circular buffer, so
  122. if it overflows, earlier output is discarded.
  123. Note that this is not currently supported in SPL. It would be
  124. useful to be able to share the pre-console buffer with SPL.
  125. config PRE_CON_BUF_SZ
  126. int "Sets the size of the pre-console buffer"
  127. depends on PRE_CONSOLE_BUFFER
  128. default 4096
  129. help
  130. The size of the pre-console buffer affects how much console output
  131. can be held before it overflows and starts discarding earlier
  132. output. Normally there is very little output at this early stage,
  133. unless debugging is enabled, so allow enough for ~10 lines of
  134. text.
  135. This is a useful feature if you are using a video console and
  136. want to see the full boot output on the console. Without this
  137. option only the post-relocation output will be displayed.
  138. config PRE_CON_BUF_ADDR
  139. hex "Address of the pre-console buffer"
  140. depends on PRE_CONSOLE_BUFFER
  141. default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I
  142. default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I
  143. default 0x0f000000 if ROCKCHIP_RK3288
  144. default 0x0f200000 if ROCKCHIP_RK3399
  145. help
  146. This sets the start address of the pre-console buffer. This must
  147. be in available memory and is accessed before relocation and
  148. possibly before DRAM is set up. Therefore choose an address
  149. carefully.
  150. We should consider removing this option and allocating the memory
  151. in board_init_f_init_reserve() instead.
  152. config CONSOLE_MUX
  153. bool "Enable console multiplexing"
  154. default y if DM_VIDEO || VIDEO || LCD
  155. help
  156. This allows multiple devices to be used for each console 'file'.
  157. For example, stdout can be set to go to serial and video.
  158. Similarly, stdin can be set to come from serial and keyboard.
  159. Input can be provided from either source. Console multiplexing
  160. adds a small amount of size to U-Boot. Changes to the environment
  161. variables stdout, stdin and stderr will take effect immediately.
  162. config SYS_CONSOLE_IS_IN_ENV
  163. bool "Select console devices from the environment"
  164. default y if CONSOLE_MUX
  165. help
  166. This allows multiple input/output devices to be set at boot time.
  167. For example, if stdout is set to "serial,vidconsole" then output
  168. will be sent to both the serial and video devices on boot. The
  169. environment variables can be updated after boot to change the
  170. input/output devices.
  171. config SYS_CONSOLE_OVERWRITE_ROUTINE
  172. bool "Allow board control over console overwriting"
  173. help
  174. If this is enabled, and the board-specific function
  175. overwrite_console() returns 1, the stdin, stderr and stdout are
  176. switched to the serial port, else the settings in the environment
  177. are used. If this is not enabled, the console will not be switched
  178. to serial.
  179. config SYS_CONSOLE_ENV_OVERWRITE
  180. bool "Update environment variables during console init"
  181. help
  182. The console environment variables (stdout, stdin, stderr) can be
  183. used to determine the correct console devices on start-up. This
  184. option writes the console devices to these variables on console
  185. start-up (after relocation). This causes the environment to be
  186. updated to match the console devices actually chosen.
  187. config SYS_CONSOLE_INFO_QUIET
  188. bool "Don't display the console devices on boot"
  189. help
  190. Normally U-Boot displays the current settings for stdout, stdin
  191. and stderr on boot when the post-relocation console is set up.
  192. Enable this option to suppress this output. It can be obtained by
  193. calling stdio_print_current_devices() from board code.
  194. config SYS_STDIO_DEREGISTER
  195. bool "Allow deregistering stdio devices"
  196. default y if USB_KEYBOARD
  197. help
  198. Generally there is no need to deregister stdio devices since they
  199. are never deactivated. But if a stdio device is used which can be
  200. removed (for example a USB keyboard) then this option can be
  201. enabled to ensure this is handled correctly.
  202. config SPL_SYS_STDIO_DEREGISTER
  203. bool "Allow deregistering stdio devices in SPL"
  204. help
  205. Generally there is no need to deregister stdio devices since they
  206. are never deactivated. But if a stdio device is used which can be
  207. removed (for example a USB keyboard) then this option can be
  208. enabled to ensure this is handled correctly. This is very rarely
  209. needed in SPL.
  210. config SYS_DEVICE_NULLDEV
  211. bool "Enable a null device for stdio"
  212. default y if SPLASH_SCREEN || SYS_STDIO_DEREGISTER
  213. help
  214. Enable creation of a "nulldev" stdio device. This allows silent
  215. operation of the console by setting stdout to "nulldev". Enable
  216. this to use a serial console under board control.
  217. endmenu
  218. menu "Logging"
  219. config LOG
  220. bool "Enable logging support"
  221. depends on DM
  222. help
  223. This enables support for logging of status and debug messages. These
  224. can be displayed on the console, recorded in a memory buffer, or
  225. discarded if not needed. Logging supports various categories and
  226. levels of severity.
  227. if LOG
  228. config LOG_MAX_LEVEL
  229. int "Maximum log level to record"
  230. default 6
  231. range 0 9
  232. help
  233. This selects the maximum log level that will be recorded. Any value
  234. higher than this will be ignored. If possible log statements below
  235. this level will be discarded at build time. Levels:
  236. 0 - emergency
  237. 1 - alert
  238. 2 - critical
  239. 3 - error
  240. 4 - warning
  241. 5 - note
  242. 6 - info
  243. 7 - debug
  244. 8 - debug content
  245. 9 - debug hardware I/O
  246. config LOG_DEFAULT_LEVEL
  247. int "Default logging level to display"
  248. default LOG_MAX_LEVEL
  249. range 0 LOG_MAX_LEVEL
  250. help
  251. This is the default logging level set when U-Boot starts. It can
  252. be adjusted later using the 'log level' command. Note that setting
  253. this to a value above LOG_MAX_LEVEL will be ineffective, since the
  254. higher levels are not compiled in to U-Boot.
  255. 0 - emergency
  256. 1 - alert
  257. 2 - critical
  258. 3 - error
  259. 4 - warning
  260. 5 - note
  261. 6 - info
  262. 7 - debug
  263. 8 - debug content
  264. 9 - debug hardware I/O
  265. config LOG_CONSOLE
  266. bool "Allow log output to the console"
  267. default y
  268. help
  269. Enables a log driver which writes log records to the console.
  270. Generally the console is the serial port or LCD display. Only the
  271. log message is shown - other details like level, category, file and
  272. line number are omitted.
  273. config LOGF_FILE
  274. bool "Show source file name in log messages by default"
  275. help
  276. Show the source file name in log messages by default. This value
  277. can be overridden using the 'log format' command.
  278. config LOGF_LINE
  279. bool "Show source line number in log messages by default"
  280. help
  281. Show the source line number in log messages by default. This value
  282. can be overridden using the 'log format' command.
  283. config LOGF_FUNC
  284. bool "Show function name in log messages by default"
  285. help
  286. Show the function name in log messages by default. This value can
  287. be overridden using the 'log format' command.
  288. config LOGF_FUNC_PAD
  289. int "Number of characters to use for function"
  290. default 20
  291. help
  292. Sets the field width to use when showing the function. Set this to
  293. a larger value if you have lots of long function names, and want
  294. things to line up.
  295. config LOG_SYSLOG
  296. bool "Log output to syslog server"
  297. depends on NET
  298. help
  299. Enables a log driver which broadcasts log records via UDP port 514
  300. to syslog servers.
  301. config SPL_LOG
  302. bool "Enable logging support in SPL"
  303. depends on LOG
  304. help
  305. This enables support for logging of status and debug messages. These
  306. can be displayed on the console, recorded in a memory buffer, or
  307. discarded if not needed. Logging supports various categories and
  308. levels of severity.
  309. if SPL_LOG
  310. config SPL_LOG_MAX_LEVEL
  311. int "Maximum log level to record in SPL"
  312. depends on SPL_LOG
  313. default 3
  314. range 0 9
  315. help
  316. This selects the maximum log level that will be recorded. Any value
  317. higher than this will be ignored. If possible log statements below
  318. this level will be discarded at build time. Levels:
  319. 0 - emergency
  320. 1 - alert
  321. 2 - critical
  322. 3 - error
  323. 4 - warning
  324. 5 - note
  325. 6 - info
  326. 7 - debug
  327. 8 - debug content
  328. 9 - debug hardware I/O
  329. config SPL_LOG_CONSOLE
  330. bool "Allow log output to the console in SPL"
  331. default y
  332. help
  333. Enables a log driver which writes log records to the console.
  334. Generally the console is the serial port or LCD display. Only the
  335. log message is shown - other details like level, category, file and
  336. line number are omitted.
  337. endif
  338. config TPL_LOG
  339. bool "Enable logging support in TPL"
  340. depends on LOG
  341. help
  342. This enables support for logging of status and debug messages. These
  343. can be displayed on the console, recorded in a memory buffer, or
  344. discarded if not needed. Logging supports various categories and
  345. levels of severity.
  346. if TPL_LOG
  347. config TPL_LOG_MAX_LEVEL
  348. int "Maximum log level to record in TPL"
  349. depends on TPL_LOG
  350. default 3
  351. range 0 9
  352. help
  353. This selects the maximum log level that will be recorded. Any value
  354. higher than this will be ignored. If possible log statements below
  355. this level will be discarded at build time. Levels:
  356. 0 - emergency
  357. 1 - alert
  358. 2 - critical
  359. 3 - error
  360. 4 - warning
  361. 5 - note
  362. 6 - info
  363. 7 - debug
  364. 8 - debug content
  365. 9 - debug hardware I/O
  366. config TPL_LOG_CONSOLE
  367. bool "Allow log output to the console in TPL"
  368. default y
  369. help
  370. Enables a log driver which writes log records to the console.
  371. Generally the console is the serial port or LCD display. Only the
  372. log message is shown - other details like level, category, file and
  373. line number are omitted.
  374. endif
  375. config LOG_ERROR_RETURN
  376. bool "Log all functions which return an error"
  377. help
  378. When an error is returned in U-Boot it is sometimes difficult to
  379. figure out the root cause. For example, reading from SPI flash may
  380. fail due to a problem in the SPI controller or due to the flash part
  381. not returning the expected information. This option changes
  382. log_ret() to log any errors it sees. With this option disabled,
  383. log_ret() is a nop.
  384. You can add log_ret() to all functions which return an error code.
  385. config LOG_TEST
  386. bool "Provide a test for logging"
  387. depends on UNIT_TEST
  388. default y if SANDBOX
  389. help
  390. This enables a 'log test' command to test logging. It is normally
  391. executed from a pytest and simply outputs logging information
  392. in various different ways to test that the logging system works
  393. correctly with various settings.
  394. endif
  395. endmenu
  396. menu "Init options"
  397. config BOARD_TYPES
  398. bool "Call get_board_type() to get and display the board type"
  399. help
  400. If this option is enabled, checkboard() will call get_board_type()
  401. to get a string containing the board type and this will be
  402. displayed immediately after the model is shown on the console
  403. early in boot.
  404. config DISPLAY_CPUINFO
  405. bool "Display information about the CPU during start up"
  406. default y if ARC|| ARM || NIOS2 || X86 || XTENSA || M68K
  407. help
  408. Display information about the CPU that U-Boot is running on
  409. when U-Boot starts up. The function print_cpuinfo() is called
  410. to do this.
  411. config DISPLAY_BOARDINFO
  412. bool "Display information about the board during early start up"
  413. default y if ARC || ARM || M68K || MIPS || PPC || SANDBOX || XTENSA
  414. help
  415. Display information about the board that U-Boot is running on
  416. when U-Boot starts up. The board function checkboard() is called
  417. to do this.
  418. config DISPLAY_BOARDINFO_LATE
  419. bool "Display information about the board during late start up"
  420. help
  421. Display information about the board that U-Boot is running on after
  422. the relocation phase. The board function checkboard() is called to do
  423. this.
  424. menu "Start-up hooks"
  425. config ARCH_EARLY_INIT_R
  426. bool "Call arch-specific init soon after relocation"
  427. help
  428. With this option U-Boot will call arch_early_init_r() soon after
  429. relocation. Driver model is running by this point, and the cache
  430. is on. Note that board_early_init_r() is called first, if
  431. enabled. This can be used to set up architecture-specific devices.
  432. config ARCH_MISC_INIT
  433. bool "Call arch-specific init after relocation, when console is ready"
  434. help
  435. With this option U-Boot will call arch_misc_init() after
  436. relocation to allow miscellaneous arch-dependent initialisation
  437. to be performed. This function should be defined by the board
  438. and will be called after the console is set up, after relocation.
  439. config BOARD_EARLY_INIT_F
  440. bool "Call board-specific init before relocation"
  441. help
  442. Some boards need to perform initialisation as soon as possible
  443. after boot. With this option, U-Boot calls board_early_init_f()
  444. after driver model is ready in the pre-relocation init sequence.
  445. Note that the normal serial console is not yet set up, but the
  446. debug UART will be available if enabled.
  447. config BOARD_EARLY_INIT_R
  448. bool "Call board-specific init after relocation"
  449. help
  450. Some boards need to perform initialisation as directly after
  451. relocation. With this option, U-Boot calls board_early_init_r()
  452. in the post-relocation init sequence.
  453. config BOARD_LATE_INIT
  454. bool "Execute Board late init"
  455. help
  456. Sometimes board require some initialization code that might
  457. require once the actual init done, example saving board specific env,
  458. boot-modes etc. which eventually done at late.
  459. So this config enable the late init code with the help of board_late_init
  460. function which should defined on respective boards.
  461. config SYS_FSL_CLK
  462. bool
  463. depends on ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3 || \
  464. (FSL_ESDHC_IMX && (ARCH_MX5 || ARCH_MX6 || ARCH_MX7))
  465. default y
  466. help
  467. Enable to call get_clocks() in board_init_f() for platforms other
  468. than PowerPC or M68k. This is a legacy option. If not TARGET_BRPPT2
  469. config LAST_STAGE_INIT
  470. bool "Call board-specific as last setup step"
  471. help
  472. Some boards need to perform initialisation immediately before control
  473. is passed to the command-line interpreter (e.g. for initializations
  474. that depend on later phases in the init sequence). With this option,
  475. U-Boot calls last_stage_init() before the command-line interpreter is
  476. started.
  477. config MISC_INIT_F
  478. bool "Execute pre-relocation misc init"
  479. help
  480. Enabling this option calls the 'misc_init_f' function in the init
  481. sequence just before DRAM is inited.
  482. config MISC_INIT_R
  483. bool "Execute Misc Init"
  484. default y if ARCH_KEYSTONE || ARCH_SUNXI || MPC85xx
  485. default y if ARCH_OMAP2PLUS && !AM33XX
  486. help
  487. Enabling this option calls 'misc_init_r' function
  488. config ID_EEPROM
  489. bool "Enable I2C connected system identifier EEPROM"
  490. help
  491. A number of different systems and vendors enable a vendor-specified
  492. EEPROM that contains various identifying features.
  493. config PCI_INIT_R
  494. bool "Enumerate PCI buses during init"
  495. depends on PCI
  496. help
  497. With this option U-Boot will call pci_init() soon after relocation,
  498. which will enumerate PCI buses. This is needed, for instance, in the
  499. case of DM PCI-based Ethernet devices, which will not be detected
  500. without having the enumeration performed earlier.
  501. endmenu
  502. endmenu # Init options
  503. menu "Security support"
  504. config HASH
  505. bool # "Support hashing API (SHA1, SHA256, etc.)"
  506. help
  507. This provides a way to hash data in memory using various supported
  508. algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
  509. and the algorithms it supports are defined in common/hash.c. See
  510. also CMD_HASH for command-line access.
  511. config AVB_VERIFY
  512. bool "Build Android Verified Boot operations"
  513. depends on LIBAVB
  514. depends on MMC
  515. depends on PARTITION_UUIDS
  516. help
  517. This option enables compilation of bootloader-dependent operations,
  518. used by Android Verified Boot 2.0 library (libavb). Includes:
  519. * Helpers to process strings in order to build OS bootargs.
  520. * Helpers to access MMC, similar to drivers/fastboot/fb_mmc.c.
  521. * Helpers to alloc/init/free avb ops.
  522. if AVB_VERIFY
  523. config AVB_BUF_ADDR
  524. hex "Define AVB buffer address"
  525. default FASTBOOT_BUF_ADDR
  526. help
  527. AVB requires a buffer for memory transactions. This variable defines the
  528. buffer address.
  529. config AVB_BUF_SIZE
  530. hex "Define AVB buffer SIZE"
  531. default FASTBOOT_BUF_SIZE
  532. help
  533. AVB requires a buffer for memory transactions. This variable defines the
  534. buffer size.
  535. endif # AVB_VERIFY
  536. config SCP03
  537. bool "Build SCP03 - Secure Channel Protocol O3 - controls"
  538. depends on OPTEE || SANDBOX
  539. depends on TEE
  540. help
  541. This option allows U-Boot to enable and or provision SCP03 on an OPTEE
  542. controlled Secured Element.
  543. config SPL_HASH
  544. bool # "Support hashing API (SHA1, SHA256, etc.)"
  545. help
  546. This provides a way to hash data in memory using various supported
  547. algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
  548. and the algorithms it supports are defined in common/hash.c. See
  549. also CMD_HASH for command-line access.
  550. config TPL_HASH
  551. bool # "Support hashing API (SHA1, SHA256, etc.)"
  552. help
  553. This provides a way to hash data in memory using various supported
  554. algorithms (such as SHA1, MD5, CRC32). The API is defined in hash.h
  555. and the algorithms it supports are defined in common/hash.c. See
  556. also CMD_HASH for command-line access.
  557. config STACKPROTECTOR
  558. bool "Stack Protector buffer overflow detection"
  559. help
  560. Enable stack smash detection through compiler's stack-protector
  561. canary logic
  562. config SPL_STACKPROTECTOR
  563. bool "Stack Protector buffer overflow detection for SPL"
  564. depends on STACKPROTECTOR && SPL
  565. config TPL_STACKPROTECTOR
  566. bool "Stack Protector buffer overflow detection for TPL"
  567. depends on STACKPROTECTOR && TPL
  568. endmenu
  569. menu "Update support"
  570. config UPDATE_COMMON
  571. bool
  572. select DFU_WRITE_ALT
  573. config UPDATE_TFTP
  574. bool "Auto-update using fitImage via TFTP"
  575. depends on FIT
  576. select UPDATE_COMMON
  577. help
  578. This option allows performing update of NOR with data in fitImage
  579. sent via TFTP boot.
  580. config UPDATE_TFTP_CNT_MAX
  581. int "The number of connection retries during auto-update"
  582. default 0
  583. depends on UPDATE_TFTP
  584. config UPDATE_TFTP_MSEC_MAX
  585. int "Delay in mSec to wait for the TFTP server during auto-update"
  586. default 100
  587. depends on UPDATE_TFTP
  588. config UPDATE_FIT
  589. bool "Firmware update using fitImage"
  590. depends on FIT
  591. depends on DFU
  592. select UPDATE_COMMON
  593. help
  594. This option allows performing update of DFU-capable storage with
  595. data in fitImage.
  596. config ANDROID_AB
  597. bool "Android A/B updates"
  598. help
  599. If enabled, adds support for the new Android A/B update model. This
  600. allows the bootloader to select which slot to boot from based on the
  601. information provided by userspace via the Android boot_ctrl HAL. This
  602. allows a bootloader to try a new version of the system but roll back
  603. to previous version if the new one didn't boot all the way.
  604. endmenu
  605. menu "Blob list"
  606. config BLOBLIST
  607. bool "Support for a bloblist"
  608. help
  609. This enables support for a bloblist in U-Boot, which can be passed
  610. from TPL to SPL to U-Boot proper (and potentially to Linux). The
  611. blob list supports multiple binary blobs of data, each with a tag,
  612. so that different U-Boot components can store data which can survive
  613. through to the next phase of the boot.
  614. config SPL_BLOBLIST
  615. bool "Support for a bloblist in SPL"
  616. depends on BLOBLIST
  617. default y if SPL
  618. help
  619. This enables a bloblist in SPL. If this is the first part of U-Boot
  620. to run, then the bloblist is set up in SPL and passed to U-Boot
  621. proper. If TPL also has a bloblist, then SPL uses the one from there.
  622. config TPL_BLOBLIST
  623. bool "Support for a bloblist in TPL"
  624. depends on BLOBLIST
  625. default y if TPL
  626. help
  627. This enables a bloblist in TPL. The bloblist is set up in TPL and
  628. passed to SPL and U-Boot proper.
  629. if BLOBLIST
  630. choice
  631. prompt "Bloblist location"
  632. help
  633. Select the location of the bloblist, via various means.
  634. config BLOBLIST_FIXED
  635. bool "Place bloblist at a fixed address in memory"
  636. help
  637. Select this to used a fixed memory address for the bloblist. If the
  638. bloblist exists at this address from a previous phase, it used as is.
  639. If not it is created at this address in U-Boot.
  640. config BLOBLIST_ALLOC
  641. bool "Allocate bloblist"
  642. help
  643. Allocate the bloblist using malloc(). This avoids the need to
  644. specify a fixed address on systems where this is unknown or can
  645. change at runtime.
  646. endchoice
  647. config BLOBLIST_ADDR
  648. hex "Address of bloblist"
  649. default 0xc000 if SANDBOX
  650. depends on BLOBLIST_FIXED
  651. help
  652. Sets the address of the bloblist, set up by the first part of U-Boot
  653. which runs. Subsequent U-Boot phases typically use the same address.
  654. This is not used if BLOBLIST_ALLOC is selected.
  655. config BLOBLIST_SIZE
  656. hex "Size of bloblist"
  657. default 0x400
  658. help
  659. Sets the size of the bloblist in bytes. This must include all
  660. overhead (alignment, bloblist header, record header). The bloblist
  661. is set up in the first part of U-Boot to run (TPL, SPL or U-Boot
  662. proper), and this sane bloblist is used for subsequent phases.
  663. config BLOBLIST_SIZE_RELOC
  664. hex "Size of bloblist after relocation"
  665. default BLOBLIST_SIZE if BLOBLIST_FIXED || BLOBLIST_ALLOC
  666. default 0 if BLOBLIST_PASSAGE
  667. help
  668. Sets the size of the bloblist in bytes after relocation. Since U-Boot
  669. has a lot more memory available then, it is possible to use a larger
  670. size than the one set up by SPL. This bloblist is set up during the
  671. relocation process.
  672. endif # BLOBLIST
  673. if SPL_BLOBLIST
  674. choice
  675. prompt "Bloblist location in SPL"
  676. help
  677. Select the location of the bloblist, via various means. Typically
  678. you should use the same value for SPL as for U-Boot, since they need
  679. to look in the same place. But if BLOBLIST_ALLOC is used, then a
  680. fresh bloblist will be created each time, since there is no shared
  681. address (between phases) for the bloblist.
  682. config SPL_BLOBLIST_FIXED
  683. bool "Place bloblist at a fixed address in memory"
  684. help
  685. Select this to used a fixed memory address for the bloblist. If the
  686. bloblist exists at this address from a previous phase, it used as is.
  687. If not it is created at this address in SPL.
  688. config SPL_BLOBLIST_ALLOC
  689. bool "Allocate bloblist"
  690. help
  691. Allocate the bloblist using malloc(). This avoids the need to
  692. specify a fixed address on systems where this is unknown or can
  693. change at runtime.
  694. endchoice
  695. endif # SPL_BLOBLIST
  696. if TPL_BLOBLIST
  697. choice
  698. prompt "Bloblist location in TPL"
  699. help
  700. Select the location of the bloblist, via various means. Typically
  701. you should use the same value for SPL as for U-Boot, since they need
  702. to look in the same place. But if BLOBLIST_ALLOC is used, then a
  703. fresh bloblist will be created each time, since there is no shared
  704. address (between phases) for the bloblist.
  705. config TPL_BLOBLIST_FIXED
  706. bool "Place bloblist at a fixed address in memory"
  707. help
  708. Select this to used a fixed memory address for the bloblist. If the
  709. bloblist exists at this address from a previous phase, it used as is.
  710. If not it is created at this address in TPL.
  711. config TPL_BLOBLIST_ALLOC
  712. bool "Allocate bloblist"
  713. help
  714. Allocate the bloblist using malloc(). This avoids the need to
  715. specify a fixed address on systems where this is unknown or can
  716. change at runtime.
  717. endchoice
  718. endif # TPL_BLOBLIST
  719. endmenu
  720. source "common/spl/Kconfig"
  721. config IMAGE_SIGN_INFO
  722. bool
  723. select SHA1
  724. select SHA256
  725. help
  726. Enable image_sign_info helper functions.
  727. if IMAGE_SIGN_INFO
  728. config SPL_IMAGE_SIGN_INFO
  729. bool
  730. select SHA1
  731. select SHA256
  732. help
  733. Enable image_sign_info helper functions in SPL.
  734. endif
  735. config FDT_SIMPLEFB
  736. bool "FDT tools for simplefb support"
  737. depends on OF_LIBFDT
  738. help
  739. Enable the fdt tools to manage the simple fb nodes in device tree.
  740. These functions can be used by board to indicate to the OS
  741. the presence of the simple frame buffer with associated reserved
  742. memory