Prepare v2023.10
[platform/kernel/u-boot.git] / common / spl / Kconfig.vpl
1 menu "VPL options"
2         depends on VPL
3
4 config VPL_BANNER_PRINT
5         bool "Enable output of the VPL banner 'U-Boot VPL ...'"
6         default y
7         help
8           If this option is enabled, VPL will print the banner with version
9           info. Disabling this option could be useful to reduce VPL boot time
10           (e.g. approx. 6 ms faster, when output on i.MX6 with 115200 baud).
11
12 config VPL_BOARD_INIT
13         bool "Call board-specific initialization in VPL"
14         help
15           If this option is enabled, U-Boot will call the function
16           spl_board_init() from board_init_r(). This function should be
17           provided by the board.
18
19 config VPL_CACHE
20         depends on CACHE
21         bool "Support cache drivers in VPL"
22         help
23           Enable support for cache drivers in VPL.
24
25 config VPL_CRC32
26         bool "Support CRC32 in VPL"
27         default y if VPL_ENV_SUPPORT || VPL_BLOBLIST
28         help
29           Enable this to support CRC32 in uImages or FIT images within VPL.
30           This is a 32-bit checksum value that can be used to verify images.
31           For FIT images, this is the least secure type of checksum, suitable
32           for detected accidental image corruption. For secure applications you
33           should consider SHA1 or SHA256.
34
35 config VPL_DM_SPI
36         bool "Support SPI DM drivers in VPL"
37         help
38           Enable support for SPI DM drivers in VPL.
39
40 config VPL_DM_SPI_FLASH
41         bool "Support SPI DM FLASH drivers in VPL"
42         help
43           Enable support for SPI DM flash drivers in VPL.
44
45 config VPL_FRAMEWORK
46         bool "Support VPL based upon the common SPL framework"
47         default y
48         help
49           Enable the SPL framework under common/spl/ for VPL builds.
50           This framework supports MMC, NAND and YMODEM and other methods
51           loading of U-Boot's next stage. If unsure, say Y.
52
53 config VPL_HANDOFF
54         bool "Pass hand-off information from VPL to SPL"
55         depends on HANDOFF && VPL_BLOBLIST
56         default y
57         help
58           This option enables VPL to write handoff information. This can be
59           used to pass information like the size of SDRAM from VPL to SPL. Also
60           VPL can receive information from TPL in the same place if that is
61           enabled.
62
63 config VPL_LIBCOMMON_SUPPORT
64         bool "Support common libraries"
65         default y if SPL_LIBCOMMON_SUPPORT
66         help
67           Enable support for common U-Boot libraries within VPL. See
68           SPL_LIBCOMMON_SUPPORT for details.
69
70 config VPL_LIBGENERIC_SUPPORT
71         bool "Support generic libraries"
72         default y if SPL_LIBGENERIC_SUPPORT
73         help
74           Enable support for generic U-Boot libraries within VPL. These
75           libraries include generic code to deal with device tree, hashing,
76           printf(), compression and the like. This option is enabled on many
77           boards. Enable this option to build the code in lib/ as part of a
78           VPL build.
79
80 config VPL_DRIVERS_MISC
81         bool "Support misc drivers"
82         default y if TPL_DRIVERS_MISC
83         help
84           Enable miscellaneous drivers in VPL. These drivers perform various
85           tasks that don't fall nicely into other categories, Enable this
86           option to build the drivers in drivers/misc as part of a VPL
87           build, for those that support building in VPL (not all drivers do).
88
89 config VPL_ENV_SUPPORT
90         bool "Support an environment"
91         help
92           Enable environment support in VPL. The U-Boot environment provides
93           a number of settings (essentially name/value pairs) which can
94           control many aspects of U-Boot's operation. Enabling this option will
95           make env_get() and env_set() available in VSPL.
96
97 config VPL_GPIO
98         bool "Support GPIO in VPL"
99         default y if SPL_GPIO
100         help
101           Enable support for GPIOs (General-purpose Input/Output) in VPL.
102           GPIOs allow U-Boot to read the state of an input line (high or
103           low) and set the state of an output line. This can be used to
104           drive LEDs, control power to various system parts and read user
105           input. GPIOs can be useful in VPL to enable a 'sign-of-life' LED,
106           for example. Enable this option to build the drivers in
107           drivers/gpio as part of a VPL build.
108
109 config VPL_HANDOFF
110         bool "Pass hand-off information from VPL to SPL and U-Boot proper"
111         depends on HANDOFF && VPL_BLOBLIST
112         default y
113         help
114           This option enables VPL to write handoff information. This can be
115           used to pass information like the size of SDRAM from VPL to U-Boot
116           proper. The information is also available to VPL if it is useful
117           there.
118
119 config VPL_HASH
120         bool "Support hashing drivers in VPL"
121         select SHA1
122         select SHA256
123         help
124           Enable hashing drivers in VPL. These drivers can be used to
125           accelerate secure boot processing in secure applications. Enable
126           this option to build system-specific drivers for hash acceleration
127           as part of a VPL build.
128
129 config VPL_I2C_SUPPORT
130         bool "Support I2C in VPL"
131         default y if SPL_I2C_SUPPORT
132         help
133           Enable support for the I2C bus in VPL. Vee SPL_I2C_SUPPORT for
134           details.
135
136 config VPL_MMC
137         bool "Support MMC in VPL"
138         depends on VPL && MMC
139         default y if MMC
140         help
141           Enable support for MMC (Multimedia Card) within VPL This enables
142           the MMC protocol implementation and allows any enabled drivers to
143           be used within VPL. MMC can be used with or without disk partition
144           support depending on the application (SPL_LIBDISK_SUPPORT). Enable
145           this option to build the drivers in drivers/mmc as part of an VPL
146           build.
147
148 config VPL_DM_MMC
149         bool "Enable MMC controllers using Driver Model in VPL"
150         depends on VPL_DM && DM_MMC
151         default y
152         help
153           This enables the MultiMediaCard (MMC) uclass which supports MMC and
154           Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
155           and non-removable (e.g. eMMC chip) devices are supported. These
156           appear as block devices in U-Boot and can support filesystems such
157           as EXT4 and FAT.
158
159 config VPL_MMC_WRITE
160         bool "MMC/SD/SDIO card support for write operations in VPL"
161         depends on VPL_MMC
162         default y
163         help
164           Enable write access to MMC and SD Cards in VPL
165
166 config VPL_PCH_SUPPORT
167         bool "Support PCH drivers"
168         default y if TPL_PCH_SUPPORT
169         help
170           Enable support for PCH (Platform Controller Hub) devices in VPL.
171           These are used to set up GPIOs and the SPI peripheral early in
172           boot. This enables the drivers in drivers/pch as part of a VPL
173           build.
174
175 config VPL_PCI
176         bool "Support PCI drivers"
177         default y if SPL_PCI
178         help
179           Enable support for PCI in VPL. For platforms that need PCI to boot,
180           or must perform some init using PCI in VPL, this provides the
181           necessary driver support. This enables the drivers in drivers/pci
182           as part of a VPL build.
183
184 config VPL_RTC
185         bool "Support RTC drivers"
186         help
187           Enable RTC (Real-time Clock) support in VPL. This includes support
188           for reading and setting the time. Some RTC devices also have some
189           non-volatile (battery-backed) memory which is accessible if
190           needed. This enables the drivers in drivers/rtc as part of a VPL
191           build.
192
193 config VPL_SERIAL
194         bool "Support serial"
195         default y if TPL_SERIAL
196         select VPL_PRINTF
197         select VPL_STRTO
198         help
199           Enable support for serial in VPL. See SPL_SERIAL for
200           details.
201
202 config VPL_SIZE_LIMIT
203         hex "Maximum size of VPL image"
204         default 0x0
205         help
206           Specifies the maximum length of the U-Boot VPL image.
207           If this value is zero, it is ignored.
208
209 config VPL_SPI
210         bool "Support SPI drivers"
211         help
212           Enable support for using SPI in VPL. See SPL_SPI_SUPPORT for
213           details.
214
215 config VPL_SPI_FLASH_SUPPORT
216         bool "Support SPI flash drivers"
217         help
218           Enable support for using SPI flash in VPL, and loading U-Boot from
219           SPI flash. SPI flash (Serial Peripheral Bus flash) is named after
220           the SPI bus that is used to connect it to a system. It is a simple
221           but fast bidirectional 4-wire bus (clock, chip select and two data
222           lines). This enables the drivers in drivers/mtd/spi as part of a
223           VPL build. This normally requires VPL_SPI_SUPPORT.
224
225 config VPL_TEXT_BASE
226         hex "VPL Text Base"
227         default 0x0
228         help
229           The address in memory that VPL will be running from.
230
231 config VPL_BINMAN_SYMBOLS
232         bool "Declare binman symbols in VPL"
233         depends on VPL_FRAMEWORK && BINMAN
234         default y
235         help
236           This enables use of symbols in VPL which refer to other entries in
237           the same binman image as the VPL. These can be declared with the
238           binman_sym_declare(type, entry, prop) macro and accessed by the
239           binman_sym(type, entry, prop) macro defined in binman_sym.h.
240
241           See tools/binman/binman.rst for a detailed explanation.
242
243 config VPL_BINMAN_UBOOT_SYMBOLS
244         bool "Declare binman symbols for U-Boot phases in VPL"
245         depends on VPL_BINMAN_SYMBOLS
246         default n if ARCH_IMX8M
247         default y
248         help
249           This enables use of symbols in VPL which refer to U-Boot phases,
250           enabling VPL to obtain the location and size of its next phase simply
251           by calling spl_get_image_pos() and spl_get_image_size().
252
253           For this to work, you must have all U-Boot phases in the same binman
254           image, so binman can update VPL with the locations of everything.
255
256 endmenu