blob: d06f36d4ee40650c0b50ccfd69b5e8af07db3c87 [file] [log] [blame]
Tom Rini0d989c82022-05-30 17:01:22 -04001menu "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
Simon Glassbc993e52022-10-20 18:23:13 -0600136config 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
Tom Rini0d989c82022-05-30 17:01:22 -0400166config 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
Quentin Schulz8fdc07f2022-07-12 17:44:22 +0200199 Enable support for serial in VPL. See SPL_SERIAL for
Tom Rini0d989c82022-05-30 17:01:22 -0400200 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
Alper Nebi Yasakcdc2f092022-06-18 15:13:10 +0300231config 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
Gary Bisson2e951192024-08-05 23:25:09 +0200246 default n if ARCH_IMX8M || ARCH_IMX8ULP || ARCH_IMX9
Alper Nebi Yasakcdc2f092022-06-18 15:13:10 +0300247 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
Tom Rini0d989c82022-05-30 17:01:22 -0400256endmenu