Kconfig 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876
  1. menu "Library routines"
  2. config ADDR_MAP
  3. bool "Enable support for non-identity virtual-physical mappings"
  4. help
  5. Enables helper code for implementing non-identity virtual-physical
  6. memory mappings for 32bit CPUs.
  7. This library only works in the post-relocation phase.
  8. config SYS_NUM_ADDR_MAP
  9. int "Size of the address-map table"
  10. depends on ADDR_MAP
  11. default 16
  12. help
  13. Sets the number of entries in the virtual-physical mapping table.
  14. config PHYSMEM
  15. bool "Access to physical memory region (> 4G)"
  16. help
  17. Some basic support is provided for operations on memory not
  18. normally accessible to 32-bit U-Boot - e.g. some architectures
  19. support access to more than 4G of memory on 32-bit
  20. machines using physical address extension or similar.
  21. Enable this to access this basic support, which only supports clearing
  22. the memory.
  23. config BCH
  24. bool "Enable Software based BCH ECC"
  25. help
  26. Enables software based BCH ECC algorithm present in lib/bch.c
  27. This is used by SoC platforms which do not have built-in ELM
  28. hardware engine required for BCH ECC correction.
  29. config BINMAN_FDT
  30. bool "Allow access to binman information in the device tree"
  31. depends on BINMAN && DM && OF_CONTROL
  32. default y if OF_SEPARATE || OF_EMBED
  33. help
  34. This enables U-Boot to access information about binman entries,
  35. stored in the device tree in a binman node. Typical uses are to
  36. locate entries in the firmware image. See binman.h for the available
  37. functionality.
  38. config CC_OPTIMIZE_LIBS_FOR_SPEED
  39. bool "Optimize libraries for speed"
  40. help
  41. Enabling this option will pass "-O2" to gcc when compiling
  42. under "lib" directory.
  43. If unsure, say N.
  44. config CHARSET
  45. bool
  46. default y if UT_UNICODE || EFI_LOADER || UFS || EFI_APP
  47. help
  48. Enables support for various conversions between different
  49. character sets, such as between unicode representations and
  50. different 'code pages'.
  51. config DYNAMIC_CRC_TABLE
  52. bool "Enable Dynamic tables for CRC"
  53. help
  54. Enable this option to calculate entries for CRC tables at runtime.
  55. This can be helpful when reducing the size of the build image
  56. config HAVE_ARCH_IOMAP
  57. bool
  58. help
  59. Enable this option if architecture provides io{read,write}{8,16,32}
  60. I/O accessor functions.
  61. config HAVE_PRIVATE_LIBGCC
  62. bool
  63. config LIB_UUID
  64. bool
  65. config PRINTF
  66. bool
  67. default y
  68. config SPL_PRINTF
  69. bool
  70. select SPL_SPRINTF
  71. select SPL_STRTO if !SPL_USE_TINY_PRINTF
  72. config TPL_PRINTF
  73. bool
  74. select TPL_SPRINTF
  75. select TPL_STRTO if !TPL_USE_TINY_PRINTF
  76. config SPRINTF
  77. bool
  78. default y
  79. config SPL_SPRINTF
  80. bool
  81. config TPL_SPRINTF
  82. bool
  83. config SSCANF
  84. bool
  85. config STRTO
  86. bool
  87. default y
  88. config SPL_STRTO
  89. bool
  90. config TPL_STRTO
  91. bool
  92. config IMAGE_SPARSE
  93. bool
  94. config IMAGE_SPARSE_FILLBUF_SIZE
  95. hex "Android sparse image CHUNK_TYPE_FILL buffer size"
  96. default 0x80000
  97. depends on IMAGE_SPARSE
  98. help
  99. Set the size of the fill buffer used when processing CHUNK_TYPE_FILL
  100. chunks.
  101. config USE_PRIVATE_LIBGCC
  102. bool "Use private libgcc"
  103. depends on HAVE_PRIVATE_LIBGCC
  104. default y if HAVE_PRIVATE_LIBGCC && ((ARM && !ARM64) || MIPS)
  105. help
  106. This option allows you to use the built-in libgcc implementation
  107. of U-Boot instead of the one provided by the compiler.
  108. If unsure, say N.
  109. config SYS_HZ
  110. int
  111. default 1000
  112. help
  113. The frequency of the timer returned by get_timer().
  114. get_timer() must operate in milliseconds and this option must be
  115. set to 1000.
  116. config SPL_USE_TINY_PRINTF
  117. bool "Enable tiny printf() version in SPL"
  118. depends on SPL
  119. default y
  120. help
  121. This option enables a tiny, stripped down printf version.
  122. This should only be used in space limited environments,
  123. like SPL versions with hard memory limits. This version
  124. reduces the code size by about 2.5KiB on armv7.
  125. The supported format specifiers are %c, %s, %u/%d and %x.
  126. config TPL_USE_TINY_PRINTF
  127. bool "Enable tiny printf() version in TPL"
  128. depends on TPL
  129. default y if SPL_USE_TINY_PRINTF
  130. help
  131. This option enables a tiny, stripped down printf version.
  132. This should only be used in space limited environments,
  133. like SPL versions with hard memory limits. This version
  134. reduces the code size by about 2.5KiB on armv7.
  135. The supported format specifiers are %c, %s, %u/%d and %x.
  136. config PANIC_HANG
  137. bool "Do not reset the system on fatal error"
  138. help
  139. Define this option to stop the system in case of a fatal error,
  140. so that you have to reset it manually. This is probably NOT a good
  141. idea for an embedded system where you want the system to reboot
  142. automatically as fast as possible, but it may be useful during
  143. development since you can try to debug the conditions that lead to
  144. the situation.
  145. config REGEX
  146. bool "Enable regular expression support"
  147. default y if NET
  148. help
  149. If this variable is defined, U-Boot is linked against the
  150. SLRE (Super Light Regular Expression) library, which adds
  151. regex support to some commands, for example "env grep" and
  152. "setexpr".
  153. choice
  154. prompt "Pseudo-random library support type"
  155. depends on NET_RANDOM_ETHADDR || RANDOM_UUID || CMD_UUID || \
  156. RNG_SANDBOX || UT_LIB && AES || FAT_WRITE
  157. default LIB_RAND
  158. help
  159. Select the library to provide pseudo-random number generator
  160. functions. LIB_HW_RAND supports certain hardware engines that
  161. provide this functionality. If in doubt, select LIB_RAND.
  162. config LIB_RAND
  163. bool "Pseudo-random library support"
  164. config LIB_HW_RAND
  165. bool "HW Engine for random library support"
  166. endchoice
  167. config SUPPORT_ACPI
  168. bool
  169. help
  170. Enable this if your arch or board can support generating ACPI
  171. (Advanced Configuration and Power Interface) tables. In this case
  172. U-Boot can generate these tables and pass them to the Operating
  173. System.
  174. config GENERATE_ACPI_TABLE
  175. bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
  176. depends on SUPPORT_ACPI
  177. select QFW if QEMU
  178. help
  179. The Advanced Configuration and Power Interface (ACPI) specification
  180. provides an open standard for device configuration and management
  181. by the operating system. It defines platform-independent interfaces
  182. for configuration and power management monitoring.
  183. config SPL_TINY_MEMSET
  184. bool "Use a very small memset() in SPL"
  185. help
  186. The faster memset() is the arch-specific one (if available) enabled
  187. by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
  188. better performance by writing a word at a time. But in very
  189. size-constrained environments even this may be too big. Enable this
  190. option to reduce code size slightly at the cost of some speed.
  191. config TPL_TINY_MEMSET
  192. bool "Use a very small memset() in TPL"
  193. help
  194. The faster memset() is the arch-specific one (if available) enabled
  195. by CONFIG_USE_ARCH_MEMSET. If that is not enabled, we can still get
  196. better performance by writing a word at a time. But in very
  197. size-constrained environments even this may be too big. Enable this
  198. option to reduce code size slightly at the cost of some speed.
  199. config RBTREE
  200. bool
  201. config BITREVERSE
  202. bool "Bit reverse library from Linux"
  203. config TRACE
  204. bool "Support for tracing of function calls and timing"
  205. imply CMD_TRACE
  206. select TIMER_EARLY
  207. help
  208. Enables function tracing within U-Boot. This allows recording of call
  209. traces including timing information. The command can write data to
  210. memory for exporting for analysis (e.g. using bootchart).
  211. See doc/README.trace for full details.
  212. config TRACE_BUFFER_SIZE
  213. hex "Size of trace buffer in U-Boot"
  214. depends on TRACE
  215. default 0x01000000
  216. help
  217. Sets the size of the trace buffer in U-Boot. This is allocated from
  218. memory during relocation. If this buffer is too small, the trace
  219. history will be truncated, with later records omitted.
  220. If early trace is enabled (i.e. before relocation), this buffer must
  221. be large enough to include all the data from the early trace buffer as
  222. well, since this is copied over to the main buffer during relocation.
  223. A trace record is emitted for each function call and each record is
  224. 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
  225. the size is too small then 'trace stats' will show a message saying
  226. how many records were dropped due to buffer overflow.
  227. config TRACE_CALL_DEPTH_LIMIT
  228. int "Trace call depth limit"
  229. depends on TRACE
  230. default 15
  231. help
  232. Sets the maximum call depth up to which function calls are recorded.
  233. config TRACE_EARLY
  234. bool "Enable tracing before relocation"
  235. depends on TRACE
  236. help
  237. Sometimes it is helpful to trace execution of U-Boot before
  238. relocation. This is possible by using a arch-specific, fixed buffer
  239. position in memory. Enable this option to start tracing as early as
  240. possible after U-Boot starts.
  241. config TRACE_EARLY_SIZE
  242. hex "Size of early trace buffer in U-Boot"
  243. depends on TRACE_EARLY
  244. default 0x00100000
  245. help
  246. Sets the size of the early trace buffer in bytes. This is used to hold
  247. tracing information before relocation.
  248. config TRACE_EARLY_CALL_DEPTH_LIMIT
  249. int "Early trace call depth limit"
  250. depends on TRACE_EARLY
  251. default 200
  252. help
  253. Sets the maximum call depth up to which function calls are recorded
  254. during early tracing.
  255. config TRACE_EARLY_ADDR
  256. hex "Address of early trace buffer in U-Boot"
  257. depends on TRACE_EARLY
  258. default 0x00100000
  259. help
  260. Sets the address of the early trace buffer in U-Boot. This memory
  261. must be accessible before relocation.
  262. A trace record is emitted for each function call and each record is
  263. 12 bytes (see struct trace_call). A suggested minimum size is 1MB. If
  264. the size is too small then the message which says the amount of early
  265. data being coped will the the same as the
  266. config CIRCBUF
  267. bool "Enable circular buffer support"
  268. source lib/dhry/Kconfig
  269. menu "Security support"
  270. config AES
  271. bool "Support the AES algorithm"
  272. help
  273. This provides a means to encrypt and decrypt data using the AES
  274. (Advanced Encryption Standard). This algorithm uses a symetric key
  275. and is widely used as a streaming cipher. Different key lengths are
  276. supported by the algorithm but only a 128-bit key is supported at
  277. present.
  278. source lib/ecdsa/Kconfig
  279. source lib/rsa/Kconfig
  280. source lib/crypto/Kconfig
  281. source lib/crypt/Kconfig
  282. config TPM
  283. bool "Trusted Platform Module (TPM) Support"
  284. depends on DM
  285. help
  286. This enables support for TPMs which can be used to provide security
  287. features for your board. The TPM can be connected via LPC or I2C
  288. and a sandbox TPM is provided for testing purposes. Use the 'tpm'
  289. command to interactive the TPM. Driver model support is provided
  290. for the low-level TPM interface, but only one TPM is supported at
  291. a time by the TPM library.
  292. config SPL_TPM
  293. bool "Trusted Platform Module (TPM) Support in SPL"
  294. depends on SPL_DM
  295. help
  296. This enables support for TPMs which can be used to provide security
  297. features for your board. The TPM can be connected via LPC or I2C
  298. and a sandbox TPM is provided for testing purposes. Use the 'tpm'
  299. command to interactive the TPM. Driver model support is provided
  300. for the low-level TPM interface, but only one TPM is supported at
  301. a time by the TPM library.
  302. config TPL_TPM
  303. bool "Trusted Platform Module (TPM) Support in TPL"
  304. depends on TPL_DM
  305. help
  306. This enables support for TPMs which can be used to provide security
  307. features for your board. The TPM can be connected via LPC or I2C
  308. and a sandbox TPM is provided for testing purposes. Use the 'tpm'
  309. command to interactive the TPM. Driver model support is provided
  310. for the low-level TPM interface, but only one TPM is supported at
  311. a time by the TPM library.
  312. endmenu
  313. menu "Android Verified Boot"
  314. config LIBAVB
  315. bool "Android Verified Boot 2.0 support"
  316. depends on ANDROID_BOOT_IMAGE
  317. help
  318. This enables support of Android Verified Boot 2.0 which can be used
  319. to assure the end user of the integrity of the software running on a
  320. device. Introduces such features as boot chain of trust, rollback
  321. protection etc.
  322. endmenu
  323. menu "Hashing Support"
  324. config BLAKE2
  325. bool "Enable BLAKE2 support"
  326. help
  327. This option enables support of hashing using BLAKE2B algorithm.
  328. The hash is calculated in software.
  329. The BLAKE2 algorithm produces a hash value (digest) between 1 and
  330. 64 bytes.
  331. config SHA1
  332. bool "Enable SHA1 support"
  333. help
  334. This option enables support of hashing using SHA1 algorithm.
  335. The hash is calculated in software.
  336. The SHA1 algorithm produces a 160-bit (20-byte) hash value
  337. (digest).
  338. config SHA256
  339. bool "Enable SHA256 support"
  340. help
  341. This option enables support of hashing using SHA256 algorithm.
  342. The hash is calculated in software.
  343. The SHA256 algorithm produces a 256-bit (32-byte) hash value
  344. (digest).
  345. config SHA512
  346. bool "Enable SHA512 support"
  347. help
  348. This option enables support of hashing using SHA512 algorithm.
  349. The hash is calculated in software.
  350. The SHA512 algorithm produces a 512-bit (64-byte) hash value
  351. (digest).
  352. config SHA384
  353. bool "Enable SHA384 support"
  354. select SHA512
  355. help
  356. This option enables support of hashing using SHA384 algorithm.
  357. The hash is calculated in software. This is also selects SHA512,
  358. because these implementations share the bulk of the code..
  359. The SHA384 algorithm produces a 384-bit (48-byte) hash value
  360. (digest).
  361. config SHA_HW_ACCEL
  362. bool "Enable hardware acceleration for SHA hash functions"
  363. help
  364. This option enables hardware acceleration for the SHA1 and SHA256
  365. hashing algorithms. This affects the 'hash' command and also the
  366. hash_lookup_algo() function.
  367. if SPL
  368. config SPL_SHA1
  369. bool "Enable SHA1 support in SPL"
  370. default y if SHA1
  371. help
  372. This option enables support of hashing using SHA1 algorithm.
  373. The hash is calculated in software.
  374. The SHA1 algorithm produces a 160-bit (20-byte) hash value
  375. (digest).
  376. config SPL_SHA256
  377. bool "Enable SHA256 support in SPL"
  378. default y if SHA256
  379. help
  380. This option enables support of hashing using SHA256 algorithm.
  381. The hash is calculated in software.
  382. The SHA256 algorithm produces a 256-bit (32-byte) hash value
  383. (digest).
  384. config SPL_SHA512
  385. bool "Enable SHA512 support in SPL"
  386. default y if SHA512
  387. help
  388. This option enables support of hashing using SHA512 algorithm.
  389. The hash is calculated in software.
  390. The SHA512 algorithm produces a 512-bit (64-byte) hash value
  391. (digest).
  392. config SPL_SHA384
  393. bool "Enable SHA384 support in SPL"
  394. default y if SHA384
  395. select SPL_SHA512
  396. help
  397. This option enables support of hashing using SHA384 algorithm.
  398. The hash is calculated in software. This is also selects SHA512,
  399. because these implementations share the bulk of the code..
  400. The SHA384 algorithm produces a 384-bit (48-byte) hash value
  401. (digest).
  402. config SPL_SHA_HW_ACCEL
  403. bool "Enable hardware acceleration for SHA hash functions"
  404. default y if SHA_HW_ACCEL
  405. help
  406. This option enables hardware acceleration for the SHA1 and SHA256
  407. hashing algorithms. This affects the 'hash' command and also the
  408. hash_lookup_algo() function.
  409. config SPL_SHA_PROG_HW_ACCEL
  410. bool "Enable Progressive hashing support using hardware in SPL"
  411. depends on SHA_PROG_HW_ACCEL
  412. default y
  413. help
  414. This option enables hardware-acceleration for SHA progressive
  415. hashing.
  416. Data can be streamed in a block at a time and the hashing is
  417. performed in hardware.
  418. endif
  419. if SHA_HW_ACCEL
  420. config SHA512_HW_ACCEL
  421. bool "Enable hardware acceleration for SHA512"
  422. depends on SHA512
  423. help
  424. This option enables hardware acceleration for the SHA384 and SHA512
  425. hashing algorithms. This affects the 'hash' command and also the
  426. hash_lookup_algo() function.
  427. config SHA_PROG_HW_ACCEL
  428. bool "Enable Progressive hashing support using hardware"
  429. help
  430. This option enables hardware-acceleration for SHA progressive
  431. hashing.
  432. Data can be streamed in a block at a time and the hashing is
  433. performed in hardware.
  434. endif
  435. config MD5
  436. bool "Support MD5 algorithm"
  437. help
  438. This option enables MD5 support. MD5 is an algorithm designed
  439. in 1991 that produces a 16-byte digest (or checksum) from its input
  440. data. It has a number of vulnerabilities which preclude its use in
  441. security applications, but it can be useful for providing a quick
  442. checksum of a block of data.
  443. config SPL_MD5
  444. bool "Support MD5 algorithm in SPL"
  445. help
  446. This option enables MD5 support in SPL. MD5 is an algorithm designed
  447. in 1991 that produces a 16-byte digest (or checksum) from its input
  448. data. It has a number of vulnerabilities which preclude its use in
  449. security applications, but it can be useful for providing a quick
  450. checksum of a block of data.
  451. config CRC32
  452. def_bool y
  453. help
  454. Enables CRC32 support in U-Boot. This is normally required.
  455. config CRC32C
  456. bool
  457. config XXHASH
  458. bool
  459. endmenu
  460. menu "Compression Support"
  461. config LZ4
  462. bool "Enable LZ4 decompression support"
  463. help
  464. If this option is set, support for LZ4 compressed images
  465. is included. The LZ4 algorithm can run in-place as long as the
  466. compressed image is loaded to the end of the output buffer, and
  467. trades lower compression ratios for much faster decompression.
  468. NOTE: This implements the release version of the LZ4 frame
  469. format as generated by default by the 'lz4' command line tool.
  470. This is not the same as the outdated, less efficient legacy
  471. frame format currently (2015) implemented in the Linux kernel
  472. (generated by 'lz4 -l'). The two formats are incompatible.
  473. config LZMA
  474. bool "Enable LZMA decompression support"
  475. help
  476. This enables support for LZMA (Lempel-Ziv-Markov chain algorithm),
  477. a dictionary compression algorithm that provides a high compression
  478. ratio and fairly fast decompression speed. See also
  479. CONFIG_CMD_LZMADEC which provides a decode command.
  480. config LZO
  481. bool "Enable LZO decompression support"
  482. help
  483. This enables support for the LZO compression algorithm.
  484. config GZIP
  485. bool "Enable gzip decompression support"
  486. select ZLIB
  487. default y
  488. help
  489. This enables support for GZIP compression algorithm.
  490. config ZLIB_UNCOMPRESS
  491. bool "Enables zlib's uncompress() functionality"
  492. help
  493. This enables an extra zlib functionality: the uncompress() function,
  494. which decompresses data from a buffer into another, knowing their
  495. sizes. Unlike gunzip(), there is no header parsing.
  496. config GZIP_COMPRESSED
  497. bool
  498. select ZLIB
  499. config BZIP2
  500. bool "Enable bzip2 decompression support"
  501. help
  502. This enables support for BZIP2 compression algorithm.
  503. config ZLIB
  504. bool
  505. default y
  506. help
  507. This enables ZLIB compression lib.
  508. config ZSTD
  509. bool "Enable Zstandard decompression support"
  510. select XXHASH
  511. help
  512. This enables Zstandard decompression library.
  513. config SPL_LZ4
  514. bool "Enable LZ4 decompression support in SPL"
  515. help
  516. This enables support for the LZ4 decompression algorithm in SPL. LZ4
  517. is a lossless data compression algorithm that is focused on
  518. fast compression and decompression speed. It belongs to the LZ77
  519. family of byte-oriented compression schemes.
  520. config SPL_LZMA
  521. bool "Enable LZMA decompression support for SPL build"
  522. help
  523. This enables support for LZMA compression algorithm for SPL boot.
  524. config SPL_LZO
  525. bool "Enable LZO decompression support in SPL"
  526. help
  527. This enables support for LZO compression algorithm in the SPL.
  528. config SPL_GZIP
  529. bool "Enable gzip decompression support for SPL build"
  530. select SPL_ZLIB
  531. help
  532. This enables support for the GZIP compression algorithm for SPL boot.
  533. config SPL_ZLIB
  534. bool
  535. help
  536. This enables compression lib for SPL boot.
  537. config SPL_ZSTD
  538. bool "Enable Zstandard decompression support in SPL"
  539. select XXHASH
  540. help
  541. This enables Zstandard decompression library in the SPL.
  542. endmenu
  543. config ERRNO_STR
  544. bool "Enable function for getting errno-related string message"
  545. help
  546. The function errno_str(int errno), returns a pointer to the errno
  547. corresponding text message:
  548. - if errno is null or positive number - a pointer to "Success" message
  549. - if errno is negative - a pointer to errno related message
  550. config HEXDUMP
  551. bool "Enable hexdump"
  552. help
  553. This enables functions for printing dumps of binary data.
  554. config SPL_HEXDUMP
  555. bool "Enable hexdump in SPL"
  556. depends on SPL && HEXDUMP
  557. help
  558. This enables functions for printing dumps of binary data in
  559. SPL.
  560. config GETOPT
  561. bool "Enable getopt"
  562. help
  563. This enables functions for parsing command-line options.
  564. config OF_LIBFDT
  565. bool "Enable the FDT library"
  566. default y if OF_CONTROL
  567. help
  568. This enables the FDT library (libfdt). It provides functions for
  569. accessing binary device tree images in memory, such as adding and
  570. removing nodes and properties, scanning through the tree and finding
  571. particular compatible nodes. The library operates on a flattened
  572. version of the device tree.
  573. config OF_LIBFDT_ASSUME_MASK
  574. hex "Mask of conditions to assume for libfdt"
  575. depends on OF_LIBFDT || FIT
  576. default 0
  577. help
  578. Use this to change the assumptions made by libfdt about the
  579. device tree it is working with. A value of 0 means that no assumptions
  580. are made, and libfdt is able to deal with malicious data. A value of
  581. 0xff means all assumptions are made and any invalid data may cause
  582. unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
  583. config OF_LIBFDT_OVERLAY
  584. bool "Enable the FDT library overlay support"
  585. depends on OF_LIBFDT
  586. default y if ARCH_OMAP2PLUS || ARCH_KEYSTONE
  587. help
  588. This enables the FDT library (libfdt) overlay support.
  589. config SPL_OF_LIBFDT
  590. bool "Enable the FDT library for SPL"
  591. default y if SPL_OF_CONTROL
  592. help
  593. This enables the FDT library (libfdt). It provides functions for
  594. accessing binary device tree images in memory, such as adding and
  595. removing nodes and properties, scanning through the tree and finding
  596. particular compatible nodes. The library operates on a flattened
  597. version of the device tree.
  598. config SPL_OF_LIBFDT_ASSUME_MASK
  599. hex "Mask of conditions to assume for libfdt"
  600. depends on SPL_OF_LIBFDT || FIT
  601. default 0xff
  602. help
  603. Use this to change the assumptions made by libfdt in SPL about the
  604. device tree it is working with. A value of 0 means that no assumptions
  605. are made, and libfdt is able to deal with malicious data. A value of
  606. 0xff means all assumptions are made and any invalid data may cause
  607. unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
  608. config TPL_OF_LIBFDT
  609. bool "Enable the FDT library for TPL"
  610. default y if TPL_OF_CONTROL
  611. help
  612. This enables the FDT library (libfdt). It provides functions for
  613. accessing binary device tree images in memory, such as adding and
  614. removing nodes and properties, scanning through the tree and finding
  615. particular compatible nodes. The library operates on a flattened
  616. version of the device tree.
  617. config TPL_OF_LIBFDT_ASSUME_MASK
  618. hex "Mask of conditions to assume for libfdt"
  619. depends on TPL_OF_LIBFDT || FIT
  620. default 0xff
  621. help
  622. Use this to change the assumptions made by libfdt in TPL about the
  623. device tree it is working with. A value of 0 means that no assumptions
  624. are made, and libfdt is able to deal with malicious data. A value of
  625. 0xff means all assumptions are made and any invalid data may cause
  626. unsafe execution. See FDT_ASSUME_PERFECT, etc. in libfdt_internal.h
  627. config FDT_FIXUP_PARTITIONS
  628. bool "overwrite MTD partitions in DTS through defined in 'mtdparts'"
  629. depends on OF_LIBFDT
  630. depends on CMD_MTDPARTS
  631. help
  632. Allow overwriting defined partitions in the device tree blob
  633. using partition info defined in the 'mtdparts' environment
  634. variable.
  635. menu "System tables"
  636. depends on (!EFI && !SYS_COREBOOT) || (ARM && EFI_LOADER)
  637. config BLOBLIST_TABLES
  638. bool "Put tables in a bloblist"
  639. depends on X86 && BLOBLIST
  640. help
  641. Normally tables are placed at address 0xf0000 and can be up to 64KB
  642. long. With this option, tables are instead placed in the bloblist
  643. with a pointer from 0xf0000. The size can then be larger and the
  644. tables can be placed high in memory.
  645. config GENERATE_SMBIOS_TABLE
  646. bool "Generate an SMBIOS (System Management BIOS) table"
  647. default y
  648. depends on X86 || EFI_LOADER
  649. help
  650. The System Management BIOS (SMBIOS) specification addresses how
  651. motherboard and system vendors present management information about
  652. their products in a standard format by extending the BIOS interface
  653. on Intel architecture systems.
  654. Check http://www.dmtf.org/standards/smbios for details.
  655. See also SMBIOS_SYSINFO which allows SMBIOS values to be provided in
  656. the devicetree.
  657. config LIB_RATIONAL
  658. bool "enable continued fraction calculation routines"
  659. config SPL_LIB_RATIONAL
  660. bool "enable continued fraction calculation routines for SPL"
  661. depends on SPL
  662. endmenu
  663. config ASN1_COMPILER
  664. bool
  665. config ASN1_DECODER
  666. bool
  667. help
  668. Enable asn1 decoder library.
  669. config OID_REGISTRY
  670. bool
  671. help
  672. Enable fast lookup object identifier registry.
  673. config SMBIOS_PARSER
  674. bool "SMBIOS parser"
  675. help
  676. A simple parser for SMBIOS data.
  677. source lib/efi/Kconfig
  678. source lib/efi_loader/Kconfig
  679. source lib/optee/Kconfig
  680. config TEST_FDTDEC
  681. bool "enable fdtdec test"
  682. depends on OF_LIBFDT
  683. config LIB_DATE
  684. bool
  685. config LIB_ELF
  686. bool
  687. help
  688. Support basic elf loading/validating functions.
  689. This supports for 32 bit and 64 bit versions.
  690. config LMB
  691. bool "Enable the logical memory blocks library (lmb)"
  692. default y if ARC || ARM || M68K || MICROBLAZE || MIPS || NDS32 || \
  693. NIOS2 || PPC || RISCV || SANDBOX || SH || X86 || XTENSA
  694. help
  695. Support the library logical memory blocks.
  696. config LMB_USE_MAX_REGIONS
  697. bool "Use a common number of memory and reserved regions in lmb lib"
  698. depends on LMB
  699. default y
  700. help
  701. Define the number of supported memory regions in the library logical
  702. memory blocks.
  703. This feature allow to reduce the lmb library size by using compiler
  704. optimization when LMB_MEMORY_REGIONS == LMB_RESERVED_REGIONS.
  705. config LMB_MAX_REGIONS
  706. int "Number of memory and reserved regions in lmb lib"
  707. depends on LMB && LMB_USE_MAX_REGIONS
  708. default 8
  709. help
  710. Define the number of supported regions, memory and reserved, in the
  711. library logical memory blocks.
  712. config LMB_MEMORY_REGIONS
  713. int "Number of memory regions in lmb lib"
  714. depends on LMB && !LMB_USE_MAX_REGIONS
  715. default 8
  716. help
  717. Define the number of supported memory regions in the library logical
  718. memory blocks.
  719. The minimal value is CONFIG_NR_DRAM_BANKS.
  720. config LMB_RESERVED_REGIONS
  721. int "Number of reserved regions in lmb lib"
  722. depends on LMB && !LMB_USE_MAX_REGIONS
  723. default 8
  724. help
  725. Define the number of supported reserved regions in the library logical
  726. memory blocks.
  727. config PHANDLE_CHECK_SEQ
  728. bool "Enable phandle check while getting sequence number"
  729. help
  730. When there are multiple device tree nodes with same name,
  731. enable this config option to distinguish them using
  732. phandles in fdtdec_get_alias_seq() function.
  733. endmenu