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