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