1menu "VPL options"
2	depends on VPL
3
4config 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
12config 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
19config VPL_CACHE
20	depends on CACHE
21	bool "Support cache drivers in VPL"
22	help
23	  Enable support for cache drivers in VPL.
24
25config 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
35config VPL_DM_SPI
36	bool "Support SPI DM drivers in VPL"
37	help
38	  Enable support for SPI DM drivers in VPL.
39
40config 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
45config 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
53config 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
63config 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
70config 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
80config 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
89config 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
97config 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
109config 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
119config 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
129config 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
136config 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
148config 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
159config 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
166config 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
175config 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
184config 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
193config 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
202config 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
209config 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
215config 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
225config 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
231config 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
243config 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 || ARCH_IMX9
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
256endmenu
257