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