blob: e324e24b4f257340a6f2a86630af20c8dc69be00 [file] [log] [blame]
Simon Glass1e3911a2016-09-13 07:05:23 -06001menu "SPL / TPL"
2
Simon Glassffe19762016-09-12 23:18:22 -06003config SUPPORT_SPL
4 bool
5
6config SUPPORT_TPL
7 bool
8
B, Ravi4cca5cf2017-05-04 15:45:29 +05309config SPL_DFU_NO_RESET
10 bool
11
Simon Glassffe19762016-09-12 23:18:22 -060012config SPL
13 bool
14 depends on SUPPORT_SPL
15 prompt "Enable SPL"
16 help
17 If you want to build SPL as well as the normal image, say Y.
18
Andrew F. Davisb4be3c32017-02-16 11:18:38 -060019config SPL_RAW_IMAGE_SUPPORT
20 bool "Support SPL loading and booting of RAW images"
21 depends on SPL
22 default n if (ARCH_MX6 && (SPL_MMC_SUPPORT || SPL_SATA_SUPPORT))
Andrew F. Davis1c97f1e2017-02-16 11:18:40 -060023 default y if !TI_SECURE_DEVICE
Andrew F. Davisb4be3c32017-02-16 11:18:38 -060024 help
25 SPL will support loading and booting a RAW image when this option
26 is y. If this is not set, SPL will move on to other available
27 boot media to find a suitable image.
28
Andrew F. Davis74630342017-02-16 11:18:39 -060029config SPL_LEGACY_IMAGE_SUPPORT
30 bool "Support SPL loading and booting of Legacy images"
Andrew F. Davis1c97f1e2017-02-16 11:18:40 -060031 default y if !TI_SECURE_DEVICE
Andrew F. Davis74630342017-02-16 11:18:39 -060032 help
33 SPL will support loading and booting Legacy images when this option
34 is y. If this is not set, SPL will move on to other available
35 boot media to find a suitable image.
36
Simon Glassffe19762016-09-12 23:18:22 -060037config SPL_SYS_MALLOC_SIMPLE
38 bool
39 depends on SPL
40 prompt "Only use malloc_simple functions in the SPL"
41 help
42 Say Y here to only use the *_simple malloc functions from
43 malloc_simple.c, rather then using the versions from dlmalloc.c;
44 this will make the SPL binary smaller at the cost of more heap
45 usage as the *_simple malloc functions do not re-use free-ed mem.
46
47config SPL_STACK_R
48 depends on SPL
49 bool "Enable SDRAM location for SPL stack"
50 help
51 SPL starts off execution in SRAM and thus typically has only a small
52 stack available. Since SPL sets up DRAM while in its board_init_f()
53 function, it is possible for the stack to move there before
54 board_init_r() is reached. This option enables a special SDRAM
55 location for the SPL stack. U-Boot SPL switches to this after
56 board_init_f() completes, and before board_init_r() starts.
57
58config SPL_STACK_R_ADDR
59 depends on SPL_STACK_R
60 hex "SDRAM location for SPL stack"
61 help
62 Specify the address in SDRAM for the SPL stack. This will be set up
63 before board_init_r() is called.
64
65config SPL_STACK_R_MALLOC_SIMPLE_LEN
66 depends on SPL_STACK_R && SPL_SYS_MALLOC_SIMPLE
67 hex "Size of malloc_simple heap after switching to DRAM SPL stack"
68 default 0x100000
69 help
70 Specify the amount of the stack to use as memory pool for
71 malloc_simple after switching the stack to DRAM. This may be set
72 to give board_init_r() a larger heap then the initial heap in
73 SRAM which is limited to SYS_MALLOC_F_LEN bytes.
74
75config SPL_SEPARATE_BSS
76 depends on SPL
77 bool "BSS section is in a different memory region from text"
78 help
79 Some platforms need a large BSS region in SPL and can provide this
80 because RAM is already set up. In this case BSS can be moved to RAM.
81 This option should then be enabled so that the correct device tree
82 location is used. Normally we put the device tree at the end of BSS
83 but with this option enabled, it goes at _image_binary_end.
84
Simon Glassf481ab12016-09-24 18:19:56 -060085config SPL_DISPLAY_PRINT
86 depends on SPL
87 bool "Display a board-specific message in SPL"
88 help
89 If this option is enabled, U-Boot will call the function
90 spl_display_print() immediately after displaying the SPL console
91 banner ("U-Boot SPL ..."). This function should be provided by
92 the board.
93
Semen Protsenko7e3ba482016-11-16 19:19:05 +020094config SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
95 bool "MMC raw mode: by sector"
96 depends on SPL
97 default y if ARCH_SUNXI || ARCH_DAVINCI || ARCH_UNIPHIER ||ARCH_MX6 || \
98 ARCH_ROCKCHIP || ARCH_MVEBU || ARCH_SOCFPGA || \
99 ARCH_AT91 || ARCH_ZYNQ || ARCH_KEYSTONE || OMAP34XX || \
100 OMAP44XX || OMAP54XX || AM33XX || AM43XX
101 help
102 Use sector number for specifying U-Boot location on MMC/SD in
103 raw mode.
104
105config SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR
106 hex "Address on the MMC to load U-Boot from"
107 depends on SPL && SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
108 default 0x50 if ARCH_SUNXI
109 default 0x75 if ARCH_DAVINCI
Semen Protsenko7e3ba482016-11-16 19:19:05 +0200110 default 0x8a if ARCH_MX6
Masahiro Yamada43ccfaf2017-01-28 06:53:53 +0900111 default 0x100 if ARCH_ROCKCHIP || ARCH_UNIPHIER
Semen Protsenko7e3ba482016-11-16 19:19:05 +0200112 default 0x140 if ARCH_MVEBU
113 default 0x200 if ARCH_SOCFPGA || ARCH_AT91
114 default 0x300 if ARCH_ZYNQ || ARCH_KEYSTONE || OMAP34XX || OMAP44XX || \
115 OMAP54XX || AM33XX || AM43XX
116 help
117 Address on the MMC to load U-Boot from, when the MMC is being used
118 in raw mode. Units: MMC sectors (1 sector = 512 bytes).
119
Dalon Westergreenf5ba9852017-02-10 17:15:35 -0800120config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
121 bool "MMC Raw mode: by partition"
122 depends on SPL
123 help
124 Use a partition for loading U-Boot when using MMC/SD in raw mode.
125
126config SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION
127 hex "Partition to use to load U-Boot from"
128 depends on SPL && SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
129 default 1
130 help
131 Partition on the MMC to load U-Boot from when the MMC is being
132 used in raw mode
133
Dalon Westergreen8d770f42017-02-10 17:15:34 -0800134config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
135 bool "MMC raw mode: by partition type"
136 depends on SPL && DOS_PARTITION && \
137 SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
138 help
139 Use partition type for specifying U-Boot partition on MMC/SD in
140 raw mode. U-Boot will be loaded from the first partition of this
141 type to be found.
142
143config SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_TYPE
144 hex "Partition Type on the MMC to load U-Boot from"
145 depends on SPL && SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
146 help
147 Partition Type on the MMC to load U-Boot from, when the MMC is being
148 used in raw mode.
149
Simon Glassffe19762016-09-12 23:18:22 -0600150config TPL
151 bool
152 depends on SPL && SUPPORT_TPL
153 prompt "Enable TPL"
154 help
155 If you want to build TPL as well as the normal image and SPL, say Y.
Simon Glass1e3911a2016-09-13 07:05:23 -0600156
157config SPL_CRC32_SUPPORT
158 bool "Support CRC32"
159 depends on SPL_FIT
160 help
161 Enable this to support CRC32 in FIT images within SPL. This is a
162 32-bit checksum value that can be used to verify images. This is
163 the least secure type of checksum, suitable for detected
164 accidental image corruption. For secure applications you should
165 consider SHA1 or SHA256.
166
167config SPL_MD5_SUPPORT
168 bool "Support MD5"
169 depends on SPL_FIT
170 help
171 Enable this to support MD5 in FIT images within SPL. An MD5
172 checksum is a 128-bit hash value used to check that the image
173 contents have not been corrupted. Note that MD5 is not considered
174 secure as it is possible (with a brute-force attack) to adjust the
175 image while still retaining the same MD5 hash value. For secure
176 applications where images may be changed maliciously, you should
177 consider SHA1 or SHA256.
178
179config SPL_SHA1_SUPPORT
180 bool "Support SHA1"
181 depends on SPL_FIT
182 help
183 Enable this to support SHA1 in FIT images within SPL. A SHA1
184 checksum is a 160-bit (20-byte) hash value used to check that the
185 image contents have not been corrupted or maliciously altered.
186 While SHA1 is fairly secure it is coming to the end of its life
187 due to the expanding computing power avaiable to brute-force
188 attacks. For more security, consider SHA256.
189
190config SPL_SHA256_SUPPORT
191 bool "Support SHA256"
192 depends on SPL_FIT
193 help
194 Enable this to support SHA256 in FIT images within SPL. A SHA256
195 checksum is a 256-bit (32-byte) hash value used to check that the
196 image contents have not been corrupted. SHA256 is recommended for
197 use in secure applications since (as at 2016) there is no known
198 feasible attack that could produce a 'collision' with differing
199 input data. Use this for the highest security. Note that only the
200 SHA256 variant is supported: SHA512 and others are not currently
201 supported in U-Boot.
202
Simon Glasseca677f2017-01-16 07:03:29 -0700203config SPL_CPU_SUPPORT
204 bool "Support CPU drivers"
205 depends on SPL
206 help
207 Enable this to support CPU drivers in SPL. These drivers can set
208 up CPUs and provide information about them such as the model and
209 name. This can be useful in SPL since setting up the CPUs earlier
210 may improve boot performance. Enable this option to build the
211 drivers in drivers/cpu as part of an SPL build.
212
Simon Glass1e3911a2016-09-13 07:05:23 -0600213config SPL_CRYPTO_SUPPORT
214 bool "Support crypto drivers"
215 depends on SPL
216 help
217 Enable crypto drivers in SPL. These drivers can be used to
218 accelerate secure boot processing in secure applications. Enable
219 this option to build the drivers in drivers/crypto as part of an
220 SPL build.
221
222config SPL_HASH_SUPPORT
223 bool "Support hashing drivers"
224 depends on SPL
225 help
226 Enable hashing drivers in SPL. These drivers can be used to
227 accelerate secure boot processing in secure applications. Enable
228 this option to build system-specific drivers for hash acceleration
229 as part of an SPL build.
230
231config SPL_DMA_SUPPORT
232 bool "Support DMA drivers"
233 depends on SPL
234 help
235 Enable DMA (direct-memory-access) drivers in SPL. These drivers
236 can be used to handle memory-to-peripheral data transfer without
237 the CPU moving the data. Enable this option to build the drivers
238 in drivers/dma as part of an SPL build.
239
240config SPL_DRIVERS_MISC_SUPPORT
241 bool "Support misc drivers"
242 depends on SPL
243 help
244 Enable miscellaneous drivers in SPL. These drivers perform various
245 tasks that don't fall nicely into other categories, Enable this
246 option to build the drivers in drivers/misc as part of an SPL
247 build, for those that support building in SPL (not all drivers do).
248
249config SPL_ENV_SUPPORT
250 bool "Support an environment"
251 depends on SPL
252 help
253 Enable environment support in SPL. The U-Boot environment provides
254 a number of settings (essentially name/value pairs) which can
255 control many aspects of U-Boot's operation. Normally this is not
256 needed in SPL as it has a much simpler task with less
257 configuration. But some boards use this to support 'Falcon' boot
258 on EXT2 and FAT, where SPL boots directly into Linux without
259 starting U-Boot first. Enabling this option will make getenv()
260 and setenv() available in SPL.
261
B, Ravie94b0242016-09-28 14:46:18 +0530262config SPL_SAVEENV
263 bool "Support save environment"
264 depends on SPL && SPL_ENV_SUPPORT
265 help
266 Enable save environment support in SPL after setenv. By default
267 the saveenv option is not provided in SPL, but some boards need
268 this support in 'Falcon' boot, where SPL need to boot from
269 different images based on environment variable set by OS. For
270 example OS may set "reboot_image" environment variable to
271 "recovery" inorder to boot recovery image by SPL. The SPL read
272 "reboot_image" and act accordingly and change the reboot_image
273 to default mode using setenv and save the environemnt.
274
Simon Glass1e3911a2016-09-13 07:05:23 -0600275config SPL_ETH_SUPPORT
276 bool "Support Ethernet"
277 depends on SPL_ENV_SUPPORT
278 help
279 Enable access to the network subsystem and associated Ethernet
280 drivers in SPL. This permits SPL to load U-Boot over an Ethernet
281 link rather than from an on-board peripheral. Environment support
282 is required since the network stack uses a number of environment
283 variables. See also SPL_NET_SUPPORT.
284
285config SPL_EXT_SUPPORT
286 bool "Support EXT filesystems"
287 depends on SPL
288 help
289 Enable support for EXT2/3/4 filesystems with SPL. This permits
290 U-Boot (or Linux in Falcon mode) to be loaded from an EXT
291 filesystem from within SPL. Support for the underlying block
292 device (e.g. MMC or USB) must be enabled separately.
293
294config SPL_FAT_SUPPORT
295 bool "Support FAT filesystems"
296 depends on SPL
297 help
298 Enable support for FAT and VFAT filesystems with SPL. This
299 permits U-Boot (or Linux in Falcon mode) to be loaded from a FAT
300 filesystem from within SPL. Support for the underlying block
301 device (e.g. MMC or USB) must be enabled separately.
302
303config SPL_FPGA_SUPPORT
304 bool "Support FPGAs"
305 depends on SPL
306 help
307 Enable support for FPGAs in SPL. Field-programmable Gate Arrays
308 provide software-configurable hardware which is typically used to
309 implement peripherals (such as UARTs, LCD displays, MMC) or
310 accelerate custom processing functions, such as image processing
311 or machine learning. Sometimes it is useful to program the FPGA
312 as early as possible during boot, and this option can enable that
313 within SPL.
314
315config SPL_GPIO_SUPPORT
316 bool "Support GPIO"
317 depends on SPL
318 help
319 Enable support for GPIOs (General-purpose Input/Output) in SPL.
320 GPIOs allow U-Boot to read the state of an input line (high or
321 low) and set the state of an output line. This can be used to
322 drive LEDs, control power to various system parts and read user
323 input. GPIOs can be useful in SPL to enable a 'sign-of-life' LED,
324 for example. Enable this option to build the drivers in
325 drivers/gpio as part of an SPL build.
326
327config SPL_I2C_SUPPORT
328 bool "Support I2C"
329 depends on SPL
330 help
331 Enable support for the I2C (Inter-Integrated Circuit) bus in SPL.
332 I2C works with a clock and data line which can be driven by a
333 one or more masters or slaves. It is a fairly complex bus but is
334 widely used as it only needs two lines for communication. Speeds of
335 400kbps are typical but up to 3.4Mbps is supported by some
336 hardware. I2C can be useful in SPL to configure power management
337 ICs (PMICs) before raising the CPU clock speed, for example.
338 Enable this option to build the drivers in drivers/i2c as part of
339 an SPL build.
340
341config SPL_LIBCOMMON_SUPPORT
342 bool "Support common libraries"
343 depends on SPL
344 help
345 Enable support for common U-Boot libraries within SPL. These
346 libraries include common code to deal with U-Boot images,
347 environment and USB, for example. This option is enabled on many
348 boards. Enable this option to build the code in common/ as part of
349 an SPL build.
350
351config SPL_LIBDISK_SUPPORT
352 bool "Support disk paritions"
353 depends on SPL
354 help
355 Enable support for disk partitions within SPL. 'Disk' is something
356 of a misnomer as it includes non-spinning media such as flash (as
357 used in MMC and USB sticks). Partitions provide a way for a disk
358 to be split up into separate regions, with a partition table placed
359 at the start or end which describes the location and size of each
360 'partition'. These partitions are typically uses as individual block
361 devices, typically with an EXT2 or FAT filesystem in each. This
362 option enables whatever partition support has been enabled in
363 U-Boot to also be used in SPL. It brings in the code in disk/.
364
365config SPL_LIBGENERIC_SUPPORT
366 bool "Support generic libraries"
367 depends on SPL
368 help
369 Enable support for generic U-Boot libraries within SPL. These
370 libraries include generic code to deal with device tree, hashing,
371 printf(), compression and the like. This option is enabled on many
372 boards. Enable this option to build the code in lib/ as part of an
373 SPL build.
374
375config SPL_MMC_SUPPORT
376 bool "Support MMC"
Alexandru Gagniucd5a75992017-04-04 10:02:58 -0700377 depends on SPL && GENERIC_MMC
Simon Glass1e3911a2016-09-13 07:05:23 -0600378 help
379 Enable support for MMC (Multimedia Card) within SPL. This enables
380 the MMC protocol implementation and allows any enabled drivers to
381 be used within SPL. MMC can be used with or without disk partition
382 support depending on the application (SPL_LIBDISK_SUPPORT). Enable
383 this option to build the drivers in drivers/mmc as part of an SPL
384 build.
385
386config SPL_MPC8XXX_INIT_DDR_SUPPORT
387 bool "Support MPC8XXX DDR init"
388 depends on SPL
389 help
390 Enable support for DDR-SDRAM (double-data-rate synchronous dynamic
391 random-access memory) on the MPC8XXX family within SPL. This
392 allows DRAM to be set up before loading U-Boot into that DRAM,
393 where it can run.
394
395config SPL_MTD_SUPPORT
396 bool "Support MTD drivers"
397 depends on SPL
398 help
399 Enable support for MTD (Memory Technology Device) within SPL. MTD
400 provides a block interface over raw NAND and can also be used with
401 SPI flash. This allows SPL to load U-Boot from supported MTD
402 devices. See SPL_NAND_SUPPORT and SPL_ONENAND_SUPPORT for how
403 to enable specific MTD drivers.
404
405config SPL_MUSB_NEW_SUPPORT
406 bool "Support new Mentor Graphics USB"
407 depends on SPL
408 help
409 Enable support for Mentor Graphics USB in SPL. This is a new
410 driver used by some boards. Enable this option to build
411 the drivers in drivers/usb/musb-new as part of an SPL build. The
412 old drivers are in drivers/usb/musb.
413
414config SPL_NAND_SUPPORT
415 bool "Support NAND flash"
416 depends on SPL
417 help
418 Enable support for NAND (Negative AND) flash in SPL. NAND flash
419 can be used to allow SPL to load U-Boot from supported devices.
420 This enables the drivers in drivers/mtd/nand as part of an SPL
421 build.
422
423config SPL_NET_SUPPORT
424 bool "Support networking"
425 depends on SPL
426 help
427 Enable support for network devices (such as Ethernet) in SPL.
428 This permits SPL to load U-Boot over a network link rather than
429 from an on-board peripheral. Environment support is required since
430 the network stack uses a number of environment variables. See also
431 SPL_ETH_SUPPORT.
432
433if SPL_NET_SUPPORT
434config SPL_NET_VCI_STRING
435 string "BOOTP Vendor Class Identifier string sent by SPL"
436 help
437 As defined by RFC 2132 the vendor class identifier field can be
438 sent by the client to identify the vendor type and configuration
439 of a client. This is often used in practice to allow for the DHCP
440 server to specify different files to load depending on if the ROM,
441 SPL or U-Boot itself makes the request
442endif # if SPL_NET_SUPPORT
443
444config SPL_NO_CPU_SUPPORT
445 bool "Drop CPU code in SPL"
446 depends on SPL
447 help
448 This is specific to the ARM926EJ-S CPU. It disables the standard
449 start.S start-up code, presumably so that a replacement can be
450 used on that CPU. You should not enable it unless you know what
451 you are doing.
452
453config SPL_NOR_SUPPORT
454 bool "Support NOR flash"
455 depends on SPL
456 help
457 Enable support for loading U-Boot from memory-mapped NOR (Negative
458 OR) flash in SPL. NOR flash is slow to write but fast to read, and
459 a memory-mapped device makes it very easy to access. Loading from
460 NOR is typically achieved with just a memcpy().
461
462config SPL_ONENAND_SUPPORT
463 bool "Support OneNAND flash"
464 depends on SPL
465 help
466 Enable support for OneNAND (Negative AND) flash in SPL. OneNAND is
467 a type of NAND flash and therefore can be used to allow SPL to
468 load U-Boot from supported devices. This enables the drivers in
469 drivers/mtd/onenand as part of an SPL build.
470
Heiko Schocher1d12ba22016-10-06 07:55:15 +0200471config SPL_OS_BOOT
472 bool "Activate Falcon Mode"
473 depends on SPL && !TI_SECURE_DEVICE
474 default n
475 help
476 Enable booting directly to an OS from SPL.
477 for more info read doc/README.falcon
478
Heiko Schocher65928932016-10-06 07:55:16 +0200479if SPL_OS_BOOT
480config SYS_OS_BASE
481 hex "addr, where OS is found"
482 depends on SPL && SPL_NOR_SUPPORT
483 help
484 Specify the address, where the OS image is found, which
485 gets booted.
486
487endif # SPL_OS_BOOT
488
Simon Glass6569f3a2017-01-16 07:03:30 -0700489config SPL_PCI_SUPPORT
490 bool "Support PCI drivers"
491 depends on SPL
492 help
493 Enable support for PCI in SPL. For platforms that need PCI to boot,
494 or must perform some init using PCI in SPL, this provides the
495 necessary driver support. This enables the drivers in drivers/pci
496 as part of an SPL build.
497
Simon Glass36258a52017-01-16 07:03:33 -0700498config SPL_PCH_SUPPORT
499 bool "Support PCH drivers"
500 depends on SPL
501 help
502 Enable support for PCH (Platform Controller Hub) devices in SPL.
503 These are used to set up GPIOs and the SPI peripheral early in
504 boot. This enables the drivers in drivers/pch as part of an SPL
505 build.
506
Simon Glass1e3911a2016-09-13 07:05:23 -0600507config SPL_POST_MEM_SUPPORT
508 bool "Support POST drivers"
509 depends on SPL
510 help
511 Enable support for POST (Power-on Self Test) in SPL. POST is a
512 procedure that checks that the hardware (CPU or board) appears to
513 be functionally correctly. It is a sanity check that can be
514 performed before booting. This enables the drivers in post/drivers
515 as part of an SPL build.
516
517config SPL_POWER_SUPPORT
518 bool "Support power drivers"
519 depends on SPL
520 help
521 Enable support for power control in SPL. This includes support
522 for PMICs (Power-management Integrated Circuits) and some of the
523 features provided by PMICs. In particular, voltage regulators can
524 be used to enable/disable power and vary its voltage. That can be
525 useful in SPL to turn on boot peripherals and adjust CPU voltage
526 so that the clock speed can be increased. This enables the drivers
527 in drivers/power, drivers/power/pmic and drivers/power/regulator
528 as part of an SPL build.
529
Stefan Agnercd01e642016-12-23 07:51:53 +0100530config SPL_RAM_SUPPORT
531 bool "Support booting from RAM"
532 depends on SPL
533 default y if MICROBLAZE || ARCH_SOCFPGA || TEGRA || ARCH_ZYNQ
534 help
535 Enable booting of an image in RAM. The image can be preloaded or
536 it can be loaded by SPL directly into RAM (e.g. using USB).
537
Stefan Agnere2eaac12016-12-23 07:51:52 +0100538config SPL_RAM_DEVICE
539 bool "Support booting from preloaded image in RAM"
Stefan Agnercd01e642016-12-23 07:51:53 +0100540 depends on SPL_RAM_SUPPORT
Stefan Agnere2eaac12016-12-23 07:51:52 +0100541 default y if MICROBLAZE || ARCH_SOCFPGA || TEGRA || ARCH_ZYNQ
542 help
543 Enable booting of an image already loaded in RAM. The image has to
544 be already in memory when SPL takes over, e.g. loaded by the boot
545 ROM.
546
Simon Glassb69691b2017-01-16 07:03:31 -0700547config SPL_RTC_SUPPORT
548 bool "Support RTC drivers"
549 depends on SPL
550 help
551 Enable RTC (Real-time Clock) support in SPL. This includes support
552 for reading and setting the time. Some RTC devices also have some
553 non-volatile (battery-backed) memory which is accessible if
554 needed. This enables the drivers in drivers/rtc as part of an SPL
555 build.
556
Simon Glass1e3911a2016-09-13 07:05:23 -0600557config SPL_SATA_SUPPORT
558 bool "Support loading from SATA"
559 depends on SPL
560 help
561 Enable support for SATA (Serial AT attachment) in SPL. This allows
562 use of SATA devices such as hard drives and flash drivers for
563 loading U-Boot. SATA is used in higher-end embedded systems and
564 can provide higher performance than MMC , at somewhat higher
565 expense and power consumption. This enables loading from SATA
566 using a configured device.
567
568config SPL_SERIAL_SUPPORT
569 bool "Support serial"
570 depends on SPL
571 help
572 Enable support for serial in SPL. This allows use of a serial UART
573 for displaying messages while SPL is running. It also brings in
574 printf() and panic() functions. This should normally be enabled
575 unless there are space reasons not to. Even then, consider
576 enabling USE_TINY_PRINTF which is a small printf() version.
577
578config SPL_SPI_FLASH_SUPPORT
579 bool "Support SPI flash drivers"
580 depends on SPL
581 help
582 Enable support for using SPI flash in SPL, and loading U-Boot from
583 SPI flash. SPI flash (Serial Peripheral Bus flash) is named after
584 the SPI bus that is used to connect it to a system. It is a simple
585 but fast bidirectional 4-wire bus (clock, chip select and two data
586 lines). This enables the drivers in drivers/mtd/spi as part of an
587 SPL build. This normally requires SPL_SPI_SUPPORT.
588
589config SPL_SPI_SUPPORT
590 bool "Support SPI drivers"
591 depends on SPL
592 help
593 Enable support for using SPI in SPL. This is used for connecting
594 to SPI flash for loading U-Boot. See SPL_SPI_FLASH_SUPPORT for
595 more details on that. The SPI driver provides the transport for
596 data between the SPI flash and the CPU. This option can be used to
597 enable SPI drivers that are needed for other purposes also, such
598 as a SPI PMIC.
599
Simon Glass0c1b41a2017-01-16 07:03:32 -0700600config SPL_TIMER_SUPPORT
601 bool "Support timer drivers"
602 depends on SPL
603 help
604 Enable support for timer drivers in SPL. These can be used to get
605 a timer value when in SPL, or perhaps for implementing a delay
606 function. This enables the drivers in drivers/timer as part of an
607 SPL build.
608
Simon Glass1e3911a2016-09-13 07:05:23 -0600609config SPL_USB_HOST_SUPPORT
610 bool "Support USB host drivers"
611 depends on SPL
612 help
613 Enable access to USB (Universal Serial Bus) host devices so that
614 SPL can load U-Boot from a connected USB peripheral, such as a USB
615 flash stick. While USB takes a little longer to start up than most
616 buses, it is very flexible since many different types of storage
617 device can be attached. This option enables the drivers in
618 drivers/usb/host as part of an SPL build.
619
620config SPL_USB_SUPPORT
621 bool "Support loading from USB"
622 depends on SPL_USB_HOST_SUPPORT
623 help
624 Enable support for USB devices in SPL. This allows use of USB
625 devices such as hard drives and flash drivers for loading U-Boot.
626 The actual drivers are enabled separately using the normal U-Boot
627 config options. This enables loading from USB using a configured
628 device.
629
Stefan Agner0489c3b2016-11-21 10:58:53 -0800630config SPL_USB_GADGET_SUPPORT
631 bool "Suppport USB Gadget drivers"
632 depends on SPL
633 help
634 Enable USB Gadget API which allows to enable USB device functions
635 in SPL.
636
637if SPL_USB_GADGET_SUPPORT
638
639config SPL_USBETH_SUPPORT
640 bool "Support USB Ethernet drivers"
641 help
642 Enable access to the USB network subsystem and associated
643 drivers in SPL. This permits SPL to load U-Boot over a
644 USB-connected Ethernet link (such as a USB Ethernet dongle) rather
645 than from an onboard peripheral. Environment support is required
646 since the network stack uses a number of environment variables.
647 See also SPL_NET_SUPPORT and SPL_ETH_SUPPORT.
648
Stefan Agnere542edd2016-11-21 10:58:52 -0800649config SPL_DFU_SUPPORT
650 bool "Support DFU (Device Firmware Upgarde)"
Stefan Agnere542edd2016-11-21 10:58:52 -0800651 select SPL_HASH_SUPPORT
B, Ravi4cca5cf2017-05-04 15:45:29 +0530652 select SPL_DFU_NO_RESET
B, Ravi7e0c0ea2017-05-04 15:45:28 +0530653 depends on SPL_RAM_SUPPORT
Stefan Agnere542edd2016-11-21 10:58:52 -0800654 help
655 This feature enables the DFU (Device Firmware Upgarde) in SPL with
656 RAM memory device support. The ROM code will load and execute
657 the SPL built with dfu. The user can load binaries (u-boot/kernel) to
658 selected device partition from host-pc using dfu-utils.
659 This feature is useful to flash the binaries to factory or bare-metal
660 boards using USB interface.
661
662choice
663 bool "DFU device selection"
664 depends on SPL_DFU_SUPPORT
665
666config SPL_DFU_RAM
667 bool "RAM device"
Stefan Agnercd01e642016-12-23 07:51:53 +0100668 depends on SPL_DFU_SUPPORT && SPL_RAM_SUPPORT
Stefan Agnere542edd2016-11-21 10:58:52 -0800669 help
670 select RAM/DDR memory device for loading binary images
671 (u-boot/kernel) to the selected device partition using
672 DFU and execute the u-boot/kernel from RAM.
673
674endchoice
675
Stefan Agner0489c3b2016-11-21 10:58:53 -0800676endif
677
Simon Glass1e3911a2016-09-13 07:05:23 -0600678config SPL_WATCHDOG_SUPPORT
679 bool "Support watchdog drivers"
680 depends on SPL
681 help
682 Enable support for watchdog drivers in SPL. A watchdog is
683 typically a hardware peripheral which can reset the system when it
684 detects no activity for a while (such as a software crash). This
685 enables the drivers in drivers/watchdog as part of an SPL build.
686
687config SPL_YMODEM_SUPPORT
688 bool "Support loading using Ymodem"
689 depends on SPL
690 help
691 While loading from serial is slow it can be a useful backup when
692 there is no other option. The Ymodem protocol provides a reliable
693 means of transmitting U-Boot over a serial line for using in SPL,
694 with a checksum to ensure correctness.
695
Kever Yang6e79a912017-05-05 11:47:45 +0800696config SPL_ATF_SUPPORT
697 bool "Support ARM Trusted Firmware"
698 depends on SPL && ARM64
699 help
700 ATF(ARM Trusted Firmware) is a component for ARM arch64 which which
701 is loaded by SPL(which is considered as BL2 in ATF terminology).
702 More detail at: https://github.com/ARM-software/arm-trusted-firmware
703
704config SPL_ATF_TEXT_BASE
705 depends on SPL_ATF_SUPPORT
706 hex "ATF BL31 base address"
707 help
708 This is the base address in memory for ATF BL31 text and entry point.
709
Simon Glass688be332016-09-12 23:18:27 -0600710config TPL_ENV_SUPPORT
711 bool "Support an environment"
712 depends on TPL
713 help
714 Enable environment support in TPL. See SPL_ENV_SUPPORT for details.
715
716config TPL_I2C_SUPPORT
717 bool "Support I2C"
718 depends on TPL
719 help
720 Enable support for the I2C bus in SPL. See SPL_I2C_SUPPORT for
721 details.
722
723config TPL_LIBCOMMON_SUPPORT
724 bool "Support common libraries"
725 depends on TPL
726 help
727 Enable support for common U-Boot libraries within TPL. See
728 SPL_LIBCOMMON_SUPPORT for details.
729
730config TPL_LIBGENERIC_SUPPORT
731 bool "Support generic libraries"
732 depends on TPL
733 help
734 Enable support for generic U-Boot libraries within TPL. See
735 SPL_LIBGENERIC_SUPPORT for details.
736
737config TPL_MPC8XXX_INIT_DDR_SUPPORT
738 bool "Support MPC8XXX DDR init"
739 depends on TPL
740 help
741 Enable support for DDR-SDRAM on the MPC8XXX family within TPL. See
742 SPL_MPC8XXX_INIT_DDR_SUPPORT for details.
743
744config TPL_MMC_SUPPORT
745 bool "Support MMC"
746 depends on TPL
747 help
748 Enable support for MMC within TPL. See SPL_MMC_SUPPORT for details.
749
750config TPL_NAND_SUPPORT
751 bool "Support NAND flash"
752 depends on TPL
753 help
754 Enable support for NAND in SPL. See SPL_NAND_SUPPORT for details.
755
756config TPL_SERIAL_SUPPORT
757 bool "Support serial"
758 depends on TPL
759 help
760 Enable support for serial in SPL. See SPL_SERIAL_SUPPORT for
761 details.
762
763config TPL_SPI_FLASH_SUPPORT
764 bool "Support SPI flash drivers"
765 depends on TPL
766 help
767 Enable support for using SPI flash in SPL. See SPL_SPI_FLASH_SUPPORT
768 for details.
769
770config TPL_SPI_SUPPORT
771 bool "Support SPI drivers"
772 depends on TPL
773 help
774 Enable support for using SPI in SPL. See SPL_SPI_SUPPORT for
775 details.
776
Simon Glass1e3911a2016-09-13 07:05:23 -0600777endmenu