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