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