Kconfig 24 KB

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