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