Kconfig 24 KB

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