xref: /OK3568_Linux_fs/u-boot/common/spl/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunmenu "SPL / TPL"
2*4882a593Smuzhiyun
3*4882a593Smuzhiyunconfig SUPPORT_SPL
4*4882a593Smuzhiyun	bool
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunconfig SUPPORT_TPL
7*4882a593Smuzhiyun	bool
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunconfig SPL_DFU_NO_RESET
10*4882a593Smuzhiyun	bool
11*4882a593Smuzhiyun
12*4882a593Smuzhiyunconfig SPL
13*4882a593Smuzhiyun	bool
14*4882a593Smuzhiyun	depends on SUPPORT_SPL
15*4882a593Smuzhiyun	prompt "Enable SPL"
16*4882a593Smuzhiyun	help
17*4882a593Smuzhiyun	  If you want to build SPL as well as the normal image, say Y.
18*4882a593Smuzhiyun
19*4882a593Smuzhiyunif SPL
20*4882a593Smuzhiyun
21*4882a593Smuzhiyunconfig SPL_ADC_SUPPORT
22*4882a593Smuzhiyun	bool "Support ADC driver in SPL"
23*4882a593Smuzhiyun	depends on SPL
24*4882a593Smuzhiyun	help
25*4882a593Smuzhiyun	  The adc drive can be used to measure voltage in spl if need.
26*4882a593Smuzhiyun
27*4882a593Smuzhiyunconfig SPL_DECOMP_HEADER
28*4882a593Smuzhiyun        bool "Support SPL DECOMP header"
29*4882a593Smuzhiyun        default n
30*4882a593Smuzhiyun        help
31*4882a593Smuzhiyun          Support to build SPL as decomp header.
32*4882a593Smuzhiyun
33*4882a593Smuzhiyunconfig SPL_LDSCRIPT
34*4882a593Smuzhiyun	string "Linker script for the SPL stage"
35*4882a593Smuzhiyun	default "arch/$(ARCH)/cpu/u-boot-spl.lds"
36*4882a593Smuzhiyun	depends on SPL
37*4882a593Smuzhiyun	help
38*4882a593Smuzhiyun	  The SPL stage will usually require a different linker-script
39*4882a593Smuzhiyun	  (as it runs from a different memory region) than the regular
40*4882a593Smuzhiyun	  U-Boot stage.	 Set this to the path of the linker-script to
41*4882a593Smuzhiyun	  be used for SPL.
42*4882a593Smuzhiyun
43*4882a593Smuzhiyunconfig SPL_BOARD_INIT
44*4882a593Smuzhiyun	bool "Call board-specific initialization in SPL"
45*4882a593Smuzhiyun	help
46*4882a593Smuzhiyun	  If this option is enabled, U-Boot will call the function
47*4882a593Smuzhiyun	  spl_board_init() from board_init_r(). This function should be
48*4882a593Smuzhiyun	  provided by the board.
49*4882a593Smuzhiyun
50*4882a593Smuzhiyunconfig SPL_BOOTROM_SUPPORT
51*4882a593Smuzhiyun        bool "Support returning to the BOOTROM"
52*4882a593Smuzhiyun	help
53*4882a593Smuzhiyun	  Some platforms (e.g. the Rockchip RK3368) provide support in their
54*4882a593Smuzhiyun	  ROM for loading the next boot-stage after performing basic setup
55*4882a593Smuzhiyun	  from the SPL stage.
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun	  Enable this option, to return to the BOOTROM through the
58*4882a593Smuzhiyun	  BOOT_DEVICE_BOOTROM (or fall-through to the next boot device in the
59*4882a593Smuzhiyun	  boot device list, if not implemented for a given board)
60*4882a593Smuzhiyun
61*4882a593Smuzhiyunconfig SPL_RAW_IMAGE_SUPPORT
62*4882a593Smuzhiyun	bool "Support SPL loading and booting of RAW images"
63*4882a593Smuzhiyun	default n if (ARCH_MX6 && (SPL_MMC_SUPPORT || SPL_SATA_SUPPORT))
64*4882a593Smuzhiyun	default y if !TI_SECURE_DEVICE
65*4882a593Smuzhiyun	help
66*4882a593Smuzhiyun	  SPL will support loading and booting a RAW image when this option
67*4882a593Smuzhiyun	  is y. If this is not set, SPL will move on to other available
68*4882a593Smuzhiyun	  boot media to find a suitable image.
69*4882a593Smuzhiyun
70*4882a593Smuzhiyunconfig SPL_LEGACY_IMAGE_SUPPORT
71*4882a593Smuzhiyun	bool "Support SPL loading and booting of Legacy images"
72*4882a593Smuzhiyun	default y if !TI_SECURE_DEVICE
73*4882a593Smuzhiyun	help
74*4882a593Smuzhiyun	  SPL will support loading and booting Legacy images when this option
75*4882a593Smuzhiyun	  is y. If this is not set, SPL will move on to other available
76*4882a593Smuzhiyun	  boot media to find a suitable image.
77*4882a593Smuzhiyun
78*4882a593Smuzhiyunconfig SPL_SYS_MALLOC_SIMPLE
79*4882a593Smuzhiyun	bool
80*4882a593Smuzhiyun	prompt "Only use malloc_simple functions in the SPL"
81*4882a593Smuzhiyun	help
82*4882a593Smuzhiyun	  Say Y here to only use the *_simple malloc functions from
83*4882a593Smuzhiyun	  malloc_simple.c, rather then using the versions from dlmalloc.c;
84*4882a593Smuzhiyun	  this will make the SPL binary smaller at the cost of more heap
85*4882a593Smuzhiyun	  usage as the *_simple malloc functions do not re-use free-ed mem.
86*4882a593Smuzhiyun
87*4882a593Smuzhiyunconfig TPL_SYS_MALLOC_SIMPLE
88*4882a593Smuzhiyun	bool
89*4882a593Smuzhiyun	prompt "Only use malloc_simple functions in the TPL"
90*4882a593Smuzhiyun	help
91*4882a593Smuzhiyun	  Say Y here to only use the *_simple malloc functions from
92*4882a593Smuzhiyun	  malloc_simple.c, rather then using the versions from dlmalloc.c;
93*4882a593Smuzhiyun	  this will make the TPL binary smaller at the cost of more heap
94*4882a593Smuzhiyun	  usage as the *_simple malloc functions do not re-use free-ed mem.
95*4882a593Smuzhiyun
96*4882a593Smuzhiyunconfig SPL_STACK_R
97*4882a593Smuzhiyun	bool "Enable SDRAM location for SPL stack"
98*4882a593Smuzhiyun	help
99*4882a593Smuzhiyun	  SPL starts off execution in SRAM and thus typically has only a small
100*4882a593Smuzhiyun	  stack available. Since SPL sets up DRAM while in its board_init_f()
101*4882a593Smuzhiyun	  function, it is possible for the stack to move there before
102*4882a593Smuzhiyun	  board_init_r() is reached. This option enables a special SDRAM
103*4882a593Smuzhiyun	  location for the SPL stack. U-Boot SPL switches to this after
104*4882a593Smuzhiyun	  board_init_f() completes, and before board_init_r() starts.
105*4882a593Smuzhiyun
106*4882a593Smuzhiyunconfig SPL_STACK_R_ADDR
107*4882a593Smuzhiyun	depends on SPL_STACK_R
108*4882a593Smuzhiyun	hex "SDRAM location for SPL stack"
109*4882a593Smuzhiyun	help
110*4882a593Smuzhiyun	  Specify the address in SDRAM for the SPL stack. This will be set up
111*4882a593Smuzhiyun	  before board_init_r() is called.
112*4882a593Smuzhiyun
113*4882a593Smuzhiyunconfig SPL_STACK_R_MALLOC_SIMPLE_LEN
114*4882a593Smuzhiyun	depends on SPL_STACK_R && SPL_SYS_MALLOC_SIMPLE
115*4882a593Smuzhiyun	hex "Size of malloc_simple heap after switching to DRAM SPL stack"
116*4882a593Smuzhiyun	default 0x100000
117*4882a593Smuzhiyun	help
118*4882a593Smuzhiyun	  Specify the amount of the stack to use as memory pool for
119*4882a593Smuzhiyun	  malloc_simple after switching the stack to DRAM. This may be set
120*4882a593Smuzhiyun	  to give board_init_r() a larger heap then the initial heap in
121*4882a593Smuzhiyun	  SRAM which is limited to SYS_MALLOC_F_LEN bytes.
122*4882a593Smuzhiyun
123*4882a593Smuzhiyunconfig SPL_SEPARATE_BSS
124*4882a593Smuzhiyun	bool "BSS section is in a different memory region from text"
125*4882a593Smuzhiyun	help
126*4882a593Smuzhiyun	  Some platforms need a large BSS region in SPL and can provide this
127*4882a593Smuzhiyun	  because RAM is already set up. In this case BSS can be moved to RAM.
128*4882a593Smuzhiyun	  This option should then be enabled so that the correct device tree
129*4882a593Smuzhiyun	  location is used. Normally we put the device tree at the end of BSS
130*4882a593Smuzhiyun	  but with this option enabled, it goes at _image_binary_end.
131*4882a593Smuzhiyun
132*4882a593Smuzhiyunconfig SPL_DISPLAY_PRINT
133*4882a593Smuzhiyun	bool "Display a board-specific message in SPL"
134*4882a593Smuzhiyun	help
135*4882a593Smuzhiyun	  If this option is enabled, U-Boot will call the function
136*4882a593Smuzhiyun	  spl_display_print() immediately after displaying the SPL console
137*4882a593Smuzhiyun	  banner ("U-Boot SPL ..."). This function should be provided by
138*4882a593Smuzhiyun	  the board.
139*4882a593Smuzhiyun
140*4882a593Smuzhiyunconfig SPL_SKIP_RELOCATE
141*4882a593Smuzhiyun	bool "Skip code relocation in SPL"
142*4882a593Smuzhiyun	default y
143*4882a593Smuzhiyun	help
144*4882a593Smuzhiyun	  The SPL code will be relocated to a high memory if you say no here.
145*4882a593Smuzhiyun	  Only ARM64 and PowerPC SPL support relocate now.
146*4882a593Smuzhiyun
147*4882a593Smuzhiyunconfig SPL_BOOT_IMAGE
148*4882a593Smuzhiyun	bool "SPL boot image load support"
149*4882a593Smuzhiyun	default n
150*4882a593Smuzhiyun	help
151*4882a593Smuzhiyun	  This enable SPL boot image load support
152*4882a593Smuzhiyun
153*4882a593Smuzhiyunconfig SPL_BOOT_IMAGE_BUF
154*4882a593Smuzhiyun	hex "SPL boot image memory buffer"
155*4882a593Smuzhiyun	depends on SPL_BOOT_IMAGE
156*4882a593Smuzhiyun	default 0x10000000
157*4882a593Smuzhiyun
158*4882a593Smuzhiyunconfig SPL_RELOC_TEXT_BASE
159*4882a593Smuzhiyun	hex "Address the SPL relocate to"
160*4882a593Smuzhiyun	depends on !SPL_SKIP_RELOCATE
161*4882a593Smuzhiyun	help
162*4882a593Smuzhiyun	  The address on the ram where the SPL relocate to.
163*4882a593Smuzhiyun
164*4882a593Smuzhiyunconfig SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
165*4882a593Smuzhiyun	bool "MMC raw mode: by sector"
166*4882a593Smuzhiyun	default y if ARCH_SUNXI || ARCH_DAVINCI || ARCH_UNIPHIER ||ARCH_MX6 || \
167*4882a593Smuzhiyun		     ARCH_ROCKCHIP || ARCH_MVEBU ||  ARCH_SOCFPGA || \
168*4882a593Smuzhiyun		     ARCH_AT91 || ARCH_ZYNQ || ARCH_KEYSTONE || OMAP34XX || \
169*4882a593Smuzhiyun		     OMAP44XX || OMAP54XX || AM33XX || AM43XX
170*4882a593Smuzhiyun	help
171*4882a593Smuzhiyun	  Use sector number for specifying U-Boot location on MMC/SD in
172*4882a593Smuzhiyun	  raw mode.
173*4882a593Smuzhiyun
174*4882a593Smuzhiyunconfig SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR
175*4882a593Smuzhiyun	hex "Address on the MMC to load U-Boot from"
176*4882a593Smuzhiyun	depends on SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
177*4882a593Smuzhiyun	default 0x50 if ARCH_SUNXI
178*4882a593Smuzhiyun	default 0x75 if ARCH_DAVINCI
179*4882a593Smuzhiyun	default 0x8a if ARCH_MX6
180*4882a593Smuzhiyun	default 0x100 if ARCH_UNIPHIER
181*4882a593Smuzhiyun	default 0x140 if ARCH_MVEBU
182*4882a593Smuzhiyun	default 0x200 if ARCH_SOCFPGA || ARCH_AT91
183*4882a593Smuzhiyun	default 0x300 if ARCH_ZYNQ || ARCH_KEYSTONE || OMAP34XX || OMAP44XX || \
184*4882a593Smuzhiyun		         OMAP54XX || AM33XX || AM43XX
185*4882a593Smuzhiyun	default 0x4000 if ARCH_ROCKCHIP
186*4882a593Smuzhiyun	help
187*4882a593Smuzhiyun	  Address on the MMC to load U-Boot from, when the MMC is being used
188*4882a593Smuzhiyun	  in raw mode. Units: MMC sectors (1 sector = 512 bytes).
189*4882a593Smuzhiyun
190*4882a593Smuzhiyunconfig SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
191*4882a593Smuzhiyun	bool "MMC Raw mode: by partition"
192*4882a593Smuzhiyun	depends on SPL_LIBDISK_SUPPORT
193*4882a593Smuzhiyun	help
194*4882a593Smuzhiyun	  Use a partition for loading U-Boot when using MMC/SD in raw mode.
195*4882a593Smuzhiyun
196*4882a593Smuzhiyunconfig SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION
197*4882a593Smuzhiyun	hex "Partition to use to load U-Boot from"
198*4882a593Smuzhiyun	depends on SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
199*4882a593Smuzhiyun	default 1
200*4882a593Smuzhiyun	help
201*4882a593Smuzhiyun	  Partition on the MMC to load U-Boot from when the MMC is being
202*4882a593Smuzhiyun	  used in raw mode
203*4882a593Smuzhiyun
204*4882a593Smuzhiyunconfig SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
205*4882a593Smuzhiyun	bool "MMC raw mode: by partition type"
206*4882a593Smuzhiyun	depends on DOS_PARTITION && SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
207*4882a593Smuzhiyun	help
208*4882a593Smuzhiyun	  Use partition type for specifying U-Boot partition on MMC/SD in
209*4882a593Smuzhiyun	  raw mode. U-Boot will be loaded from the first partition of this
210*4882a593Smuzhiyun	  type to be found.
211*4882a593Smuzhiyun
212*4882a593Smuzhiyunconfig SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_NAME
213*4882a593Smuzhiyun	string "Partition Name on the MMC to load U-Boot from"
214*4882a593Smuzhiyun	depends on SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
215*4882a593Smuzhiyun	default "uboot"
216*4882a593Smuzhiyun	help
217*4882a593Smuzhiyun          Partition Name on the MMC to load U-Boot from, when the MMC is being
218*4882a593Smuzhiyun          used in raw mode.
219*4882a593Smuzhiyun
220*4882a593Smuzhiyunconfig SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_TYPE
221*4882a593Smuzhiyun	hex "Partition Type on the MMC to load U-Boot from"
222*4882a593Smuzhiyun	depends on SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE
223*4882a593Smuzhiyun	help
224*4882a593Smuzhiyun	  Partition Type on the MMC to load U-Boot from, when the MMC is being
225*4882a593Smuzhiyun	  used in raw mode.
226*4882a593Smuzhiyun
227*4882a593Smuzhiyunconfig SPL_MISC_SECTOR
228*4882a593Smuzhiyun	hex "Sector address to load misc in SPL"
229*4882a593Smuzhiyun	depends on !SPL_LIBDISK_SUPPORT && SPL_KERNEL_BOOT
230*4882a593Smuzhiyun	default 0x8000
231*4882a593Smuzhiyun
232*4882a593Smuzhiyunconfig SPL_CRC32_SUPPORT
233*4882a593Smuzhiyun	bool "Support CRC32"
234*4882a593Smuzhiyun	depends on SPL_FIT
235*4882a593Smuzhiyun	help
236*4882a593Smuzhiyun	  Enable this to support CRC32 in FIT images within SPL. This is a
237*4882a593Smuzhiyun	  32-bit checksum value that can be used to verify images. This is
238*4882a593Smuzhiyun	  the least secure type of checksum, suitable for detected
239*4882a593Smuzhiyun	  accidental image corruption. For secure applications you should
240*4882a593Smuzhiyun	  consider SHA1 or SHA256.
241*4882a593Smuzhiyun
242*4882a593Smuzhiyunconfig SPL_MD5_SUPPORT
243*4882a593Smuzhiyun	bool "Support MD5"
244*4882a593Smuzhiyun	depends on SPL_FIT
245*4882a593Smuzhiyun	help
246*4882a593Smuzhiyun	  Enable this to support MD5 in FIT images within SPL. An MD5
247*4882a593Smuzhiyun	  checksum is a 128-bit hash value used to check that the image
248*4882a593Smuzhiyun	  contents have not been corrupted. Note that MD5 is not considered
249*4882a593Smuzhiyun	  secure as it is possible (with a brute-force attack) to adjust the
250*4882a593Smuzhiyun	  image while still retaining the same MD5 hash value. For secure
251*4882a593Smuzhiyun	  applications where images may be changed maliciously, you should
252*4882a593Smuzhiyun	  consider SHA1 or SHA256.
253*4882a593Smuzhiyun
254*4882a593Smuzhiyunconfig SPL_SHA1_SUPPORT
255*4882a593Smuzhiyun	bool "Support SHA1"
256*4882a593Smuzhiyun	depends on SPL_FIT
257*4882a593Smuzhiyun	select SHA1
258*4882a593Smuzhiyun	help
259*4882a593Smuzhiyun	  Enable this to support SHA1 in FIT images within SPL. A SHA1
260*4882a593Smuzhiyun	  checksum is a 160-bit (20-byte) hash value used to check that the
261*4882a593Smuzhiyun	  image contents have not been corrupted or maliciously altered.
262*4882a593Smuzhiyun	  While SHA1 is fairly secure it is coming to the end of its life
263*4882a593Smuzhiyun	  due to the expanding computing power avaiable to brute-force
264*4882a593Smuzhiyun	  attacks. For more security, consider SHA256.
265*4882a593Smuzhiyun
266*4882a593Smuzhiyunconfig SPL_SHA256_SUPPORT
267*4882a593Smuzhiyun	bool "Support SHA256"
268*4882a593Smuzhiyun	depends on SPL_FIT
269*4882a593Smuzhiyun	select SHA256
270*4882a593Smuzhiyun	help
271*4882a593Smuzhiyun	  Enable this to support SHA256 in FIT images within SPL. A SHA256
272*4882a593Smuzhiyun	  checksum is a 256-bit (32-byte) hash value used to check that the
273*4882a593Smuzhiyun	  image contents have not been corrupted. SHA256 is recommended for
274*4882a593Smuzhiyun	  use in secure applications since (as at 2016) there is no known
275*4882a593Smuzhiyun	  feasible attack that could produce a 'collision' with differing
276*4882a593Smuzhiyun	  input data. Use this for the highest security. Note that only the
277*4882a593Smuzhiyun	  SHA256 variant is supported: SHA512 and others are not currently
278*4882a593Smuzhiyun	  supported in U-Boot.
279*4882a593Smuzhiyun
280*4882a593Smuzhiyunconfig SPL_FIT_IMAGE_TINY
281*4882a593Smuzhiyun	bool "Remove functionality from SPL FIT loading to reduce size"
282*4882a593Smuzhiyun	depends on SPL_FIT
283*4882a593Smuzhiyun	default y if MACH_SUN50I || MACH_SUN50I_H5
284*4882a593Smuzhiyun	default y if ARCH_OMAP2PLUS
285*4882a593Smuzhiyun	help
286*4882a593Smuzhiyun	  Enable this to reduce the size of the FIT image loading code
287*4882a593Smuzhiyun	  in SPL, if space for the SPL binary is very tight.
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun	  This removes the detection of image types (which forces the
290*4882a593Smuzhiyun	  first image to be treated as having a U-Boot style calling
291*4882a593Smuzhiyun	  convention) and skips the recording of each loaded payload
292*4882a593Smuzhiyun	  (i.e. loadable) into the FDT (modifying the loaded FDT to
293*4882a593Smuzhiyun	  ensure this information is available to the next image
294*4882a593Smuzhiyun	  invoked).
295*4882a593Smuzhiyun
296*4882a593Smuzhiyunconfig SPL_CPU_SUPPORT
297*4882a593Smuzhiyun	bool "Support CPU drivers"
298*4882a593Smuzhiyun	help
299*4882a593Smuzhiyun	  Enable this to support CPU drivers in SPL. These drivers can set
300*4882a593Smuzhiyun	  up CPUs and provide information about them such as the model and
301*4882a593Smuzhiyun	  name. This can be useful in SPL since setting up the CPUs earlier
302*4882a593Smuzhiyun	  may improve boot performance. Enable this option to build the
303*4882a593Smuzhiyun	  drivers in drivers/cpu as part of an SPL build.
304*4882a593Smuzhiyun
305*4882a593Smuzhiyunconfig SPL_CRYPTO_SUPPORT
306*4882a593Smuzhiyun	bool "Support crypto drivers"
307*4882a593Smuzhiyun	help
308*4882a593Smuzhiyun	  Enable crypto drivers in SPL. These drivers can be used to
309*4882a593Smuzhiyun	  accelerate secure boot processing in secure applications. Enable
310*4882a593Smuzhiyun	  this option to build the drivers in drivers/crypto as part of an
311*4882a593Smuzhiyun	  SPL build.
312*4882a593Smuzhiyun
313*4882a593Smuzhiyunconfig SPL_HASH_SUPPORT
314*4882a593Smuzhiyun	bool "Support hashing drivers"
315*4882a593Smuzhiyun	select SHA1
316*4882a593Smuzhiyun	select SHA256
317*4882a593Smuzhiyun	help
318*4882a593Smuzhiyun	  Enable hashing drivers in SPL. These drivers can be used to
319*4882a593Smuzhiyun	  accelerate secure boot processing in secure applications. Enable
320*4882a593Smuzhiyun	  this option to build system-specific drivers for hash acceleration
321*4882a593Smuzhiyun	  as part of an SPL build.
322*4882a593Smuzhiyun
323*4882a593Smuzhiyunconfig SPL_DMA_SUPPORT
324*4882a593Smuzhiyun	bool "Support DMA drivers"
325*4882a593Smuzhiyun	help
326*4882a593Smuzhiyun	  Enable DMA (direct-memory-access) drivers in SPL. These drivers
327*4882a593Smuzhiyun	  can be used to handle memory-to-peripheral data transfer without
328*4882a593Smuzhiyun	  the CPU moving the data. Enable this option to build the drivers
329*4882a593Smuzhiyun	  in drivers/dma as part of an SPL build.
330*4882a593Smuzhiyun
331*4882a593Smuzhiyunconfig SPL_DRIVERS_MISC_SUPPORT
332*4882a593Smuzhiyun	bool "Support misc drivers"
333*4882a593Smuzhiyun	help
334*4882a593Smuzhiyun	  Enable miscellaneous drivers in SPL. These drivers perform various
335*4882a593Smuzhiyun	  tasks that don't fall nicely into other categories, Enable this
336*4882a593Smuzhiyun	  option to build the drivers in drivers/misc as part of an SPL
337*4882a593Smuzhiyun	  build, for those that support building in SPL (not all drivers do).
338*4882a593Smuzhiyun
339*4882a593Smuzhiyunconfig SPL_ENV_SUPPORT
340*4882a593Smuzhiyun	bool "Support an environment"
341*4882a593Smuzhiyun	help
342*4882a593Smuzhiyun	  Enable environment support in SPL. The U-Boot environment provides
343*4882a593Smuzhiyun	  a number of settings (essentially name/value pairs) which can
344*4882a593Smuzhiyun	  control many aspects of U-Boot's operation. Normally this is not
345*4882a593Smuzhiyun	  needed in SPL as it has a much simpler task with less
346*4882a593Smuzhiyun	  configuration. But some boards use this to support 'Falcon' boot
347*4882a593Smuzhiyun	  on EXT2 and FAT, where SPL boots directly into Linux without
348*4882a593Smuzhiyun	  starting U-Boot first. Enabling this option will make env_get()
349*4882a593Smuzhiyun	  and env_set() available in SPL.
350*4882a593Smuzhiyun
351*4882a593Smuzhiyunconfig SPL_SAVEENV
352*4882a593Smuzhiyun	bool "Support save environment"
353*4882a593Smuzhiyun	depends on SPL_ENV_SUPPORT
354*4882a593Smuzhiyun	select SPL_MMC_WRITE if ENV_IS_IN_MMC
355*4882a593Smuzhiyun	help
356*4882a593Smuzhiyun	  Enable save environment support in SPL after setenv. By default
357*4882a593Smuzhiyun	  the saveenv option is not provided in SPL, but some boards need
358*4882a593Smuzhiyun	  this support in 'Falcon' boot, where SPL need to boot from
359*4882a593Smuzhiyun	  different images based on environment variable set by OS. For
360*4882a593Smuzhiyun	  example OS may set "reboot_image" environment variable to
361*4882a593Smuzhiyun	  "recovery" inorder to boot recovery image by SPL. The SPL read
362*4882a593Smuzhiyun	  "reboot_image" and act accordingly and change the reboot_image
363*4882a593Smuzhiyun	  to default mode using setenv and save the environemnt.
364*4882a593Smuzhiyun
365*4882a593Smuzhiyunconfig SPL_ETH_SUPPORT
366*4882a593Smuzhiyun	bool "Support Ethernet"
367*4882a593Smuzhiyun	depends on SPL_ENV_SUPPORT
368*4882a593Smuzhiyun	help
369*4882a593Smuzhiyun	  Enable access to the network subsystem and associated Ethernet
370*4882a593Smuzhiyun	  drivers in SPL. This permits SPL to load U-Boot over an Ethernet
371*4882a593Smuzhiyun	  link rather than from an on-board peripheral. Environment support
372*4882a593Smuzhiyun	  is required since the network stack uses a number of environment
373*4882a593Smuzhiyun	  variables. See also SPL_NET_SUPPORT.
374*4882a593Smuzhiyun
375*4882a593Smuzhiyunconfig SPL_EXT_SUPPORT
376*4882a593Smuzhiyun	bool "Support EXT filesystems"
377*4882a593Smuzhiyun	help
378*4882a593Smuzhiyun	  Enable support for EXT2/3/4 filesystems with SPL. This permits
379*4882a593Smuzhiyun	  U-Boot (or Linux in Falcon mode) to be loaded from an EXT
380*4882a593Smuzhiyun	  filesystem from within SPL. Support for the underlying block
381*4882a593Smuzhiyun	  device (e.g. MMC or USB) must be enabled separately.
382*4882a593Smuzhiyun
383*4882a593Smuzhiyunconfig SPL_FAT_SUPPORT
384*4882a593Smuzhiyun	bool "Support FAT filesystems"
385*4882a593Smuzhiyun	select FS_FAT
386*4882a593Smuzhiyun	help
387*4882a593Smuzhiyun	  Enable support for FAT and VFAT filesystems with SPL. This
388*4882a593Smuzhiyun	  permits U-Boot (or Linux in Falcon mode) to be loaded from a FAT
389*4882a593Smuzhiyun	  filesystem from within SPL. Support for the underlying block
390*4882a593Smuzhiyun	  device (e.g. MMC or USB) must be enabled separately.
391*4882a593Smuzhiyun
392*4882a593Smuzhiyunconfig SPL_FPGA_SUPPORT
393*4882a593Smuzhiyun	bool "Support FPGAs"
394*4882a593Smuzhiyun	help
395*4882a593Smuzhiyun	  Enable support for FPGAs in SPL. Field-programmable Gate Arrays
396*4882a593Smuzhiyun	  provide software-configurable hardware which is typically used to
397*4882a593Smuzhiyun	  implement peripherals (such as UARTs, LCD displays, MMC) or
398*4882a593Smuzhiyun	  accelerate custom processing functions, such as image processing
399*4882a593Smuzhiyun	  or machine learning. Sometimes it is useful to program the FPGA
400*4882a593Smuzhiyun	  as early as possible during boot, and this option can enable that
401*4882a593Smuzhiyun	  within SPL.
402*4882a593Smuzhiyun
403*4882a593Smuzhiyunconfig SPL_GPIO_SUPPORT
404*4882a593Smuzhiyun	bool "Support GPIO"
405*4882a593Smuzhiyun	help
406*4882a593Smuzhiyun	  Enable support for GPIOs (General-purpose Input/Output) in SPL.
407*4882a593Smuzhiyun	  GPIOs allow U-Boot to read the state of an input line (high or
408*4882a593Smuzhiyun	  low) and set the state of an output line. This can be used to
409*4882a593Smuzhiyun	  drive LEDs, control power to various system parts and read user
410*4882a593Smuzhiyun	  input. GPIOs can be useful in SPL to enable a 'sign-of-life' LED,
411*4882a593Smuzhiyun	  for example. Enable this option to build the drivers in
412*4882a593Smuzhiyun	  drivers/gpio as part of an SPL build.
413*4882a593Smuzhiyun
414*4882a593Smuzhiyunconfig SPL_I2C_SUPPORT
415*4882a593Smuzhiyun	bool "Support I2C"
416*4882a593Smuzhiyun	help
417*4882a593Smuzhiyun	  Enable support for the I2C (Inter-Integrated Circuit) bus in SPL.
418*4882a593Smuzhiyun	  I2C works with a clock and data line which can be driven by a
419*4882a593Smuzhiyun	  one or more masters or slaves. It is a fairly complex bus but is
420*4882a593Smuzhiyun	  widely used as it only needs two lines for communication. Speeds of
421*4882a593Smuzhiyun	  400kbps are typical but up to 3.4Mbps is supported by some
422*4882a593Smuzhiyun	  hardware. I2C can be useful in SPL to configure power management
423*4882a593Smuzhiyun	  ICs (PMICs) before raising the CPU clock speed, for example.
424*4882a593Smuzhiyun	  Enable this option to build the drivers in drivers/i2c as part of
425*4882a593Smuzhiyun	  an SPL build.
426*4882a593Smuzhiyun
427*4882a593Smuzhiyunconfig SPL_LIBCOMMON_SUPPORT
428*4882a593Smuzhiyun	bool "Support common libraries"
429*4882a593Smuzhiyun	help
430*4882a593Smuzhiyun	  Enable support for common U-Boot libraries within SPL. These
431*4882a593Smuzhiyun	  libraries include common code to deal with U-Boot images,
432*4882a593Smuzhiyun	  environment and USB, for example. This option is enabled on many
433*4882a593Smuzhiyun	  boards. Enable this option to build the code in common/ as part of
434*4882a593Smuzhiyun	  an SPL build.
435*4882a593Smuzhiyun
436*4882a593Smuzhiyunconfig SPL_LIBDISK_SUPPORT
437*4882a593Smuzhiyun	bool "Support disk paritions"
438*4882a593Smuzhiyun	help
439*4882a593Smuzhiyun	  Enable support for disk partitions within SPL. 'Disk' is something
440*4882a593Smuzhiyun	  of a misnomer as it includes non-spinning media such as flash (as
441*4882a593Smuzhiyun	  used in MMC and USB sticks). Partitions provide a way for a disk
442*4882a593Smuzhiyun	  to be split up into separate regions, with a partition table placed
443*4882a593Smuzhiyun	  at the start or end which describes the location and size of each
444*4882a593Smuzhiyun	  'partition'. These partitions are typically uses as individual block
445*4882a593Smuzhiyun	  devices, typically with an EXT2 or FAT filesystem in each. This
446*4882a593Smuzhiyun	  option enables whatever partition support has been enabled in
447*4882a593Smuzhiyun	  U-Boot to also be used in SPL. It brings in the code in disk/.
448*4882a593Smuzhiyun
449*4882a593Smuzhiyunconfig SPL_LIBGENERIC_SUPPORT
450*4882a593Smuzhiyun	bool "Support generic libraries"
451*4882a593Smuzhiyun	help
452*4882a593Smuzhiyun	  Enable support for generic U-Boot libraries within SPL. These
453*4882a593Smuzhiyun	  libraries include generic code to deal with device tree, hashing,
454*4882a593Smuzhiyun	  printf(), compression and the like. This option is enabled on many
455*4882a593Smuzhiyun	  boards. Enable this option to build the code in lib/ as part of an
456*4882a593Smuzhiyun	  SPL build.
457*4882a593Smuzhiyun
458*4882a593Smuzhiyunconfig SPL_MMC_SUPPORT
459*4882a593Smuzhiyun	bool "Support MMC"
460*4882a593Smuzhiyun	depends on MMC
461*4882a593Smuzhiyun	help
462*4882a593Smuzhiyun	  Enable support for MMC (Multimedia Card) within SPL. This enables
463*4882a593Smuzhiyun	  the MMC protocol implementation and allows any enabled drivers to
464*4882a593Smuzhiyun	  be used within SPL. MMC can be used with or without disk partition
465*4882a593Smuzhiyun	  support depending on the application (SPL_LIBDISK_SUPPORT). Enable
466*4882a593Smuzhiyun	  this option to build the drivers in drivers/mmc as part of an SPL
467*4882a593Smuzhiyun	  build.
468*4882a593Smuzhiyun
469*4882a593Smuzhiyunconfig SPL_MMC_WRITE
470*4882a593Smuzhiyun	bool "MMC/SD/SDIO card support for write operations in SPL"
471*4882a593Smuzhiyun	depends on SPL_MMC_SUPPORT
472*4882a593Smuzhiyun	default n
473*4882a593Smuzhiyun	help
474*4882a593Smuzhiyun	  Enable write access to MMC and SD Cards in SPL
475*4882a593Smuzhiyun
476*4882a593Smuzhiyun
477*4882a593Smuzhiyunconfig SPL_MPC8XXX_INIT_DDR_SUPPORT
478*4882a593Smuzhiyun	bool "Support MPC8XXX DDR init"
479*4882a593Smuzhiyun	help
480*4882a593Smuzhiyun	  Enable support for DDR-SDRAM (double-data-rate synchronous dynamic
481*4882a593Smuzhiyun	  random-access memory) on the MPC8XXX family within SPL. This
482*4882a593Smuzhiyun	  allows DRAM to be set up before loading U-Boot into that DRAM,
483*4882a593Smuzhiyun	  where it can run.
484*4882a593Smuzhiyun
485*4882a593Smuzhiyunconfig SPL_MTD_SUPPORT
486*4882a593Smuzhiyun	bool "Support MTD drivers"
487*4882a593Smuzhiyun	help
488*4882a593Smuzhiyun	  Enable support for MTD (Memory Technology Device) within SPL. MTD
489*4882a593Smuzhiyun	  provides a block interface over raw NAND and can also be used with
490*4882a593Smuzhiyun	  SPI flash. This allows SPL to load U-Boot from supported MTD
491*4882a593Smuzhiyun	  devices. See SPL_NAND_SUPPORT and SPL_ONENAND_SUPPORT for how
492*4882a593Smuzhiyun	  to enable specific MTD drivers.
493*4882a593Smuzhiyun
494*4882a593Smuzhiyunconfig MTD_BLK_U_BOOT_OFFS
495*4882a593Smuzhiyun	hex "Location in MTD block to read U-Boot from"
496*4882a593Smuzhiyun	default 0x4000
497*4882a593Smuzhiyun	depends on SPL_MTD_SUPPORT
498*4882a593Smuzhiyun	help
499*4882a593Smuzhiyun	  Set the offset from the start of the nand,spi nand and nor flash where
500*4882a593Smuzhiyun	  u-boot should be loaded from.
501*4882a593Smuzhiyun
502*4882a593Smuzhiyunconfig SPL_MTD_WRITE
503*4882a593Smuzhiyun	bool "nand & spi nand & spi nor support for write operations in SPL"
504*4882a593Smuzhiyun	depends on SPL_MTD_SUPPORT
505*4882a593Smuzhiyun	default n
506*4882a593Smuzhiyun	help
507*4882a593Smuzhiyun	  Enable write access to nand & spi nand & spi nor in SPL
508*4882a593Smuzhiyun
509*4882a593Smuzhiyunconfig SPL_MUSB_NEW_SUPPORT
510*4882a593Smuzhiyun	bool "Support new Mentor Graphics USB"
511*4882a593Smuzhiyun	help
512*4882a593Smuzhiyun	  Enable support for Mentor Graphics USB in SPL. This is a new
513*4882a593Smuzhiyun	  driver used by some boards. Enable this option to build
514*4882a593Smuzhiyun	  the drivers in drivers/usb/musb-new as part of an SPL build. The
515*4882a593Smuzhiyun	  old drivers are in drivers/usb/musb.
516*4882a593Smuzhiyun
517*4882a593Smuzhiyunconfig SPL_NAND_SUPPORT
518*4882a593Smuzhiyun	bool "Support NAND flash"
519*4882a593Smuzhiyun	help
520*4882a593Smuzhiyun	  Enable support for NAND (Negative AND) flash in SPL. NAND flash
521*4882a593Smuzhiyun	  can be used to allow SPL to load U-Boot from supported devices.
522*4882a593Smuzhiyun	  This enables the drivers in drivers/mtd/nand/raw as part of an SPL
523*4882a593Smuzhiyun	  build.
524*4882a593Smuzhiyun
525*4882a593Smuzhiyunconfig SPL_NET_SUPPORT
526*4882a593Smuzhiyun	bool "Support networking"
527*4882a593Smuzhiyun	help
528*4882a593Smuzhiyun	  Enable support for network devices (such as Ethernet) in SPL.
529*4882a593Smuzhiyun	  This permits SPL to load U-Boot over a network link rather than
530*4882a593Smuzhiyun	  from an on-board peripheral. Environment support is required since
531*4882a593Smuzhiyun	  the network stack uses a number of environment variables. See also
532*4882a593Smuzhiyun	  SPL_ETH_SUPPORT.
533*4882a593Smuzhiyun
534*4882a593Smuzhiyunif SPL_NET_SUPPORT
535*4882a593Smuzhiyunconfig SPL_NET_VCI_STRING
536*4882a593Smuzhiyun	string "BOOTP Vendor Class Identifier string sent by SPL"
537*4882a593Smuzhiyun	help
538*4882a593Smuzhiyun	  As defined by RFC 2132 the vendor class identifier field can be
539*4882a593Smuzhiyun	  sent by the client to identify the vendor type and configuration
540*4882a593Smuzhiyun	  of a client.  This is often used in practice to allow for the DHCP
541*4882a593Smuzhiyun	  server to specify different files to load depending on if the ROM,
542*4882a593Smuzhiyun	  SPL or U-Boot itself makes the request
543*4882a593Smuzhiyunendif   # if SPL_NET_SUPPORT
544*4882a593Smuzhiyun
545*4882a593Smuzhiyunconfig SPL_NO_CPU_SUPPORT
546*4882a593Smuzhiyun	bool "Drop CPU code in SPL"
547*4882a593Smuzhiyun	help
548*4882a593Smuzhiyun	  This is specific to the ARM926EJ-S CPU. It disables the standard
549*4882a593Smuzhiyun	  start.S start-up code, presumably so that a replacement can be
550*4882a593Smuzhiyun	  used on that CPU. You should not enable it unless you know what
551*4882a593Smuzhiyun	  you are doing.
552*4882a593Smuzhiyun
553*4882a593Smuzhiyunconfig SPL_NOR_SUPPORT
554*4882a593Smuzhiyun	bool "Support NOR flash"
555*4882a593Smuzhiyun	help
556*4882a593Smuzhiyun	  Enable support for loading U-Boot from memory-mapped NOR (Negative
557*4882a593Smuzhiyun	  OR) flash in SPL. NOR flash is slow to write but fast to read, and
558*4882a593Smuzhiyun	  a memory-mapped device makes it very easy to access. Loading from
559*4882a593Smuzhiyun	  NOR is typically achieved with just a memcpy().
560*4882a593Smuzhiyun
561*4882a593Smuzhiyunconfig SPL_XIP_SUPPORT
562*4882a593Smuzhiyun	bool "Support XIP"
563*4882a593Smuzhiyun	depends on SPL
564*4882a593Smuzhiyun	help
565*4882a593Smuzhiyun	  Enable support for execute in place of U-Boot or kernel image. There
566*4882a593Smuzhiyun	  is no need to copy image from flash to ram if flash supports execute
567*4882a593Smuzhiyun	  in place. Its very useful in systems having enough flash but not
568*4882a593Smuzhiyun	  enough ram to load the image.
569*4882a593Smuzhiyun
570*4882a593Smuzhiyunconfig SPL_ONENAND_SUPPORT
571*4882a593Smuzhiyun	bool "Support OneNAND flash"
572*4882a593Smuzhiyun	help
573*4882a593Smuzhiyun	  Enable support for OneNAND (Negative AND) flash in SPL. OneNAND is
574*4882a593Smuzhiyun	  a type of NAND flash and therefore can be used to allow SPL to
575*4882a593Smuzhiyun	  load U-Boot from supported devices. This enables the drivers in
576*4882a593Smuzhiyun	  drivers/mtd/onenand as part of an SPL build.
577*4882a593Smuzhiyun
578*4882a593Smuzhiyunconfig SPL_OS_BOOT
579*4882a593Smuzhiyun	bool "Activate Falcon Mode"
580*4882a593Smuzhiyun	depends on !TI_SECURE_DEVICE
581*4882a593Smuzhiyun	default n
582*4882a593Smuzhiyun	help
583*4882a593Smuzhiyun	  Enable booting directly to an OS from SPL.
584*4882a593Smuzhiyun	  for more info read doc/README.falcon
585*4882a593Smuzhiyun
586*4882a593Smuzhiyunif SPL_OS_BOOT
587*4882a593Smuzhiyunconfig SYS_OS_BASE
588*4882a593Smuzhiyun	hex "addr, where OS is found"
589*4882a593Smuzhiyun	depends on SPL_NOR_SUPPORT
590*4882a593Smuzhiyun	help
591*4882a593Smuzhiyun	  Specify the address, where the OS image is found, which
592*4882a593Smuzhiyun	  gets booted.
593*4882a593Smuzhiyun
594*4882a593Smuzhiyunendif # SPL_OS_BOOT
595*4882a593Smuzhiyun
596*4882a593Smuzhiyunconfig SPL_PCI_SUPPORT
597*4882a593Smuzhiyun	bool "Support PCI drivers"
598*4882a593Smuzhiyun	help
599*4882a593Smuzhiyun	  Enable support for PCI in SPL. For platforms that need PCI to boot,
600*4882a593Smuzhiyun	  or must perform some init using PCI in SPL, this provides the
601*4882a593Smuzhiyun	  necessary driver support. This enables the drivers in drivers/pci
602*4882a593Smuzhiyun	  as part of an SPL build.
603*4882a593Smuzhiyun
604*4882a593Smuzhiyunconfig SPL_PCH_SUPPORT
605*4882a593Smuzhiyun	bool "Support PCH drivers"
606*4882a593Smuzhiyun	help
607*4882a593Smuzhiyun	  Enable support for PCH (Platform Controller Hub) devices in SPL.
608*4882a593Smuzhiyun	  These are used to set up GPIOs and the SPI peripheral early in
609*4882a593Smuzhiyun	  boot. This enables the drivers in drivers/pch as part of an SPL
610*4882a593Smuzhiyun	  build.
611*4882a593Smuzhiyun
612*4882a593Smuzhiyunconfig SPL_PCIE_EP_SUPPORT
613*4882a593Smuzhiyun	bool "Support loading from PCIE EP"
614*4882a593Smuzhiyun	help
615*4882a593Smuzhiyun	  Enable support for PCIE EP driver in SPL. The RC will download the
616*4882a593Smuzhiyun	  image as a RAM partition for firmware.
617*4882a593Smuzhiyun
618*4882a593Smuzhiyunconfig SPL_POST_MEM_SUPPORT
619*4882a593Smuzhiyun	bool "Support POST drivers"
620*4882a593Smuzhiyun	help
621*4882a593Smuzhiyun	  Enable support for POST (Power-on Self Test) in SPL. POST is a
622*4882a593Smuzhiyun	  procedure that checks that the hardware (CPU or board) appears to
623*4882a593Smuzhiyun	  be functionally correctly. It is a sanity check that can be
624*4882a593Smuzhiyun	  performed before booting. This enables the drivers in post/drivers
625*4882a593Smuzhiyun	  as part of an SPL build.
626*4882a593Smuzhiyun
627*4882a593Smuzhiyunconfig SPL_POWER_SUPPORT
628*4882a593Smuzhiyun	bool "Support power drivers"
629*4882a593Smuzhiyun	help
630*4882a593Smuzhiyun	  Enable support for power control in SPL. This includes support
631*4882a593Smuzhiyun	  for PMICs (Power-management Integrated Circuits) and some of the
632*4882a593Smuzhiyun	  features provided by PMICs. In particular, voltage regulators can
633*4882a593Smuzhiyun	  be used to enable/disable power and vary its voltage. That can be
634*4882a593Smuzhiyun	  useful in SPL to turn on boot peripherals and adjust CPU voltage
635*4882a593Smuzhiyun	  so that the clock speed can be increased. This enables the drivers
636*4882a593Smuzhiyun	  in drivers/power, drivers/power/pmic and drivers/power/regulator
637*4882a593Smuzhiyun	  as part of an SPL build.
638*4882a593Smuzhiyun
639*4882a593Smuzhiyunconfig SPL_PWM_SUPPORT
640*4882a593Smuzhiyun	bool "Support PWM driver"
641*4882a593Smuzhiyun	depends on SPL
642*4882a593Smuzhiyun	help
643*4882a593Smuzhiyun	  Enable support for pwm in SPL. This allows use pwm to control
644*4882a593Smuzhiyun	  somethings, for example control voltage.
645*4882a593Smuzhiyun
646*4882a593Smuzhiyunconfig SPL_RAM_SUPPORT
647*4882a593Smuzhiyun	bool "Support booting from RAM"
648*4882a593Smuzhiyun	default y if MICROBLAZE || ARCH_SOCFPGA || TEGRA || ARCH_ZYNQ
649*4882a593Smuzhiyun	help
650*4882a593Smuzhiyun	  Enable booting of an image in RAM. The image can be preloaded or
651*4882a593Smuzhiyun	  it can be loaded by SPL directly into RAM (e.g. using USB).
652*4882a593Smuzhiyun
653*4882a593Smuzhiyunconfig SPL_RAM_DEVICE
654*4882a593Smuzhiyun	bool "Support booting from preloaded image in RAM"
655*4882a593Smuzhiyun	depends on SPL_RAM_SUPPORT
656*4882a593Smuzhiyun	default y if ARCH_ROCKCHIP || MICROBLAZE || ARCH_SOCFPGA || TEGRA || ARCH_ZYNQ
657*4882a593Smuzhiyun	help
658*4882a593Smuzhiyun	  Enable booting of an image already loaded in RAM. The image has to
659*4882a593Smuzhiyun	  be already in memory when SPL takes over, e.g. loaded by the boot
660*4882a593Smuzhiyun	  ROM.
661*4882a593Smuzhiyun
662*4882a593Smuzhiyunconfig SPL_RTC_SUPPORT
663*4882a593Smuzhiyun	bool "Support RTC drivers"
664*4882a593Smuzhiyun	help
665*4882a593Smuzhiyun	  Enable RTC (Real-time Clock) support in SPL. This includes support
666*4882a593Smuzhiyun	  for reading and setting the time. Some RTC devices also have some
667*4882a593Smuzhiyun	  non-volatile (battery-backed) memory which is accessible if
668*4882a593Smuzhiyun	  needed. This enables the drivers in drivers/rtc as part of an SPL
669*4882a593Smuzhiyun	  build.
670*4882a593Smuzhiyun
671*4882a593Smuzhiyunconfig SPL_SATA_SUPPORT
672*4882a593Smuzhiyun	bool "Support loading from SATA"
673*4882a593Smuzhiyun	help
674*4882a593Smuzhiyun	  Enable support for SATA (Serial AT attachment) in SPL. This allows
675*4882a593Smuzhiyun	  use of SATA devices such as hard drives and flash drivers for
676*4882a593Smuzhiyun	  loading U-Boot. SATA is used in higher-end embedded systems and
677*4882a593Smuzhiyun	  can provide higher performance than MMC , at somewhat higher
678*4882a593Smuzhiyun	  expense and power consumption. This enables loading from SATA
679*4882a593Smuzhiyun	  using a configured device.
680*4882a593Smuzhiyun
681*4882a593Smuzhiyunconfig SPL_SERIAL_SUPPORT
682*4882a593Smuzhiyun	bool "Support serial"
683*4882a593Smuzhiyun	help
684*4882a593Smuzhiyun	  Enable support for serial in SPL. This allows use of a serial UART
685*4882a593Smuzhiyun	  for displaying messages while SPL is running. It also brings in
686*4882a593Smuzhiyun	  printf() and panic() functions. This should normally be enabled
687*4882a593Smuzhiyun	  unless there are space reasons not to. Even then, consider
688*4882a593Smuzhiyun	  enabling USE_TINY_PRINTF which is a small printf() version.
689*4882a593Smuzhiyun
690*4882a593Smuzhiyunconfig SPL_SPI_FLASH_SUPPORT
691*4882a593Smuzhiyun	bool "Support SPI flash drivers"
692*4882a593Smuzhiyun	help
693*4882a593Smuzhiyun	  Enable support for using SPI flash in SPL, and loading U-Boot from
694*4882a593Smuzhiyun	  SPI flash. SPI flash (Serial Peripheral Bus flash) is named after
695*4882a593Smuzhiyun	  the SPI bus that is used to connect it to a system. It is a simple
696*4882a593Smuzhiyun	  but fast bidirectional 4-wire bus (clock, chip select and two data
697*4882a593Smuzhiyun	  lines). This enables the drivers in drivers/mtd/spi as part of an
698*4882a593Smuzhiyun	  SPL build. This normally requires SPL_SPI_SUPPORT.
699*4882a593Smuzhiyun
700*4882a593Smuzhiyunconfig SPL_RKNAND_SUPPORT
701*4882a593Smuzhiyun	bool "Rockchip NAND FLASH device support"
702*4882a593Smuzhiyun	depends on BLK
703*4882a593Smuzhiyun	select RKNAND
704*4882a593Smuzhiyun	select ZFTL if (ROCKCHIP_PX30 || ROCKCHIP_RK3568)
705*4882a593Smuzhiyun	help
706*4882a593Smuzhiyun	  This option enables support for Rockchip NAND FLASH devices.
707*4882a593Smuzhiyun	  It supports block interface(with rk ftl) to read and write NAND FLASH.
708*4882a593Smuzhiyun
709*4882a593Smuzhiyunconfig RKNAND_BLK_U_BOOT_OFFS
710*4882a593Smuzhiyun	hex "Location in RKNAND block to read U-Boot from"
711*4882a593Smuzhiyun	default 0x4000
712*4882a593Smuzhiyun	depends on SPL_RKNAND_SUPPORT
713*4882a593Smuzhiyun	help
714*4882a593Smuzhiyun	  Set the offset from the start of the rknand device where
715*4882a593Smuzhiyun	  u-boot should be loaded from.
716*4882a593Smuzhiyun
717*4882a593Smuzhiyunif SPL_SPI_FLASH_SUPPORT
718*4882a593Smuzhiyun
719*4882a593Smuzhiyunconfig SPL_SPI_FLASH_TINY
720*4882a593Smuzhiyun	bool "Enable low footprint SPL SPI Flash support"
721*4882a593Smuzhiyun	depends on !SPI_FLASH_BAR
722*4882a593Smuzhiyun	help
723*4882a593Smuzhiyun	 Enable lightweight SPL SPI Flash support that supports just reading
724*4882a593Smuzhiyun	 data/images from flash. No support to write/erase flash. Enable
725*4882a593Smuzhiyun	 this if you have SPL size limitations and don't need full
726*4882a593Smuzhiyun	 fledged SPI flash support.
727*4882a593Smuzhiyun
728*4882a593Smuzhiyunconfig SPL_SPI_FLASH_SFDP_SUPPORT
729*4882a593Smuzhiyun	bool "SFDP table parsing support for SPI NOR flashes"
730*4882a593Smuzhiyun	depends on !SPI_FLASH_BAR && !SPL_SPI_FLASH_TINY
731*4882a593Smuzhiyun	help
732*4882a593Smuzhiyun	 Enable support for parsing and auto discovery of parameters for
733*4882a593Smuzhiyun	 SPI NOR flashes using Serial Flash Discoverable Parameters (SFDP)
734*4882a593Smuzhiyun	 tables as per JESD216 standard in SPL.
735*4882a593Smuzhiyun
736*4882a593Smuzhiyunconfig SPL_SPI_LOAD
737*4882a593Smuzhiyun	bool "Support loading from SPI flash"
738*4882a593Smuzhiyun	help
739*4882a593Smuzhiyun	  Enable support for loading next stage, U-Boot or otherwise, from
740*4882a593Smuzhiyun	  SPI NOR in U-Boot SPL.
741*4882a593Smuzhiyun
742*4882a593Smuzhiyunendif # SPL_SPI_FLASH_SUPPORT
743*4882a593Smuzhiyun
744*4882a593Smuzhiyunconfig SPL_SPI_SUPPORT
745*4882a593Smuzhiyun	bool "Support SPI drivers"
746*4882a593Smuzhiyun	help
747*4882a593Smuzhiyun	  Enable support for using SPI in SPL. This is used for connecting
748*4882a593Smuzhiyun	  to SPI flash for loading U-Boot. See SPL_SPI_FLASH_SUPPORT for
749*4882a593Smuzhiyun	  more details on that. The SPI driver provides the transport for
750*4882a593Smuzhiyun	  data between the SPI flash and the CPU. This option can be used to
751*4882a593Smuzhiyun	  enable SPI drivers that are needed for other purposes also, such
752*4882a593Smuzhiyun	  as a SPI PMIC.
753*4882a593Smuzhiyun
754*4882a593Smuzhiyunconfig SPL_USB_HOST_SUPPORT
755*4882a593Smuzhiyun	bool "Support USB host drivers"
756*4882a593Smuzhiyun	help
757*4882a593Smuzhiyun	  Enable access to USB (Universal Serial Bus) host devices so that
758*4882a593Smuzhiyun	  SPL can load U-Boot from a connected USB peripheral, such as a USB
759*4882a593Smuzhiyun	  flash stick. While USB takes a little longer to start up than most
760*4882a593Smuzhiyun	  buses, it is very flexible since many different types of storage
761*4882a593Smuzhiyun	  device can be attached. This option enables the drivers in
762*4882a593Smuzhiyun	  drivers/usb/host as part of an SPL build.
763*4882a593Smuzhiyun
764*4882a593Smuzhiyunconfig SPL_USB_SUPPORT
765*4882a593Smuzhiyun	bool "Support loading from USB"
766*4882a593Smuzhiyun	depends on SPL_USB_HOST_SUPPORT
767*4882a593Smuzhiyun	help
768*4882a593Smuzhiyun	  Enable support for USB devices in SPL. This allows use of USB
769*4882a593Smuzhiyun	  devices such as hard drives and flash drivers for loading U-Boot.
770*4882a593Smuzhiyun	  The actual drivers are enabled separately using the normal U-Boot
771*4882a593Smuzhiyun	  config options. This enables loading from USB using a configured
772*4882a593Smuzhiyun	  device.
773*4882a593Smuzhiyun
774*4882a593Smuzhiyunconfig SPL_USB_GADGET
775*4882a593Smuzhiyun	bool "Suppport USB Gadget drivers"
776*4882a593Smuzhiyun	help
777*4882a593Smuzhiyun	  Enable USB Gadget API which allows to enable USB device functions
778*4882a593Smuzhiyun	  in SPL.
779*4882a593Smuzhiyun
780*4882a593Smuzhiyunif SPL_USB_GADGET
781*4882a593Smuzhiyun
782*4882a593Smuzhiyunconfig SPL_USBETH_SUPPORT
783*4882a593Smuzhiyun	bool "Support USB Ethernet drivers"
784*4882a593Smuzhiyun	help
785*4882a593Smuzhiyun	  Enable access to the USB network subsystem and associated
786*4882a593Smuzhiyun	  drivers in SPL. This permits SPL to load U-Boot over a
787*4882a593Smuzhiyun	  USB-connected Ethernet link (such as a USB Ethernet dongle) rather
788*4882a593Smuzhiyun	  than from an onboard peripheral. Environment support is required
789*4882a593Smuzhiyun	  since the network stack uses a number of environment variables.
790*4882a593Smuzhiyun	  See also SPL_NET_SUPPORT and SPL_ETH_SUPPORT.
791*4882a593Smuzhiyun
792*4882a593Smuzhiyunconfig SPL_DFU
793*4882a593Smuzhiyun	bool "Support DFU (Device Firmware Upgrade)"
794*4882a593Smuzhiyun	select SPL_HASH_SUPPORT
795*4882a593Smuzhiyun	select SPL_DFU_NO_RESET
796*4882a593Smuzhiyun	depends on SPL_RAM_SUPPORT
797*4882a593Smuzhiyun	help
798*4882a593Smuzhiyun	  This feature enables the DFU (Device Firmware Upgarde) in SPL with
799*4882a593Smuzhiyun	  RAM memory device support. The ROM code will load and execute
800*4882a593Smuzhiyun	  the SPL built with dfu. The user can load binaries (u-boot/kernel) to
801*4882a593Smuzhiyun	  selected device partition from host-pc using dfu-utils.
802*4882a593Smuzhiyun	  This feature is useful to flash the binaries to factory or bare-metal
803*4882a593Smuzhiyun	  boards using USB interface.
804*4882a593Smuzhiyun
805*4882a593Smuzhiyunchoice
806*4882a593Smuzhiyun	bool "DFU device selection"
807*4882a593Smuzhiyun	depends on SPL_DFU
808*4882a593Smuzhiyun
809*4882a593Smuzhiyunconfig SPL_DFU_RAM
810*4882a593Smuzhiyun	bool "RAM device"
811*4882a593Smuzhiyun	depends on SPL_DFU && SPL_RAM_SUPPORT
812*4882a593Smuzhiyun	help
813*4882a593Smuzhiyun	 select RAM/DDR memory device for loading binary images
814*4882a593Smuzhiyun	 (u-boot/kernel) to the selected device partition using
815*4882a593Smuzhiyun	 DFU and execute the u-boot/kernel from RAM.
816*4882a593Smuzhiyun
817*4882a593Smuzhiyunendchoice
818*4882a593Smuzhiyun
819*4882a593Smuzhiyunconfig SPL_USB_SDP_SUPPORT
820*4882a593Smuzhiyun	bool "Support SDP (Serial Download Protocol)"
821*4882a593Smuzhiyun	help
822*4882a593Smuzhiyun	  Enable Serial Download Protocol (SDP) device support in SPL. This
823*4882a593Smuzhiyun	  allows to download images into memory and execute (jump to) them
824*4882a593Smuzhiyun	  using the same protocol as implemented by the i.MX family's boot ROM.
825*4882a593Smuzhiyunendif
826*4882a593Smuzhiyun
827*4882a593Smuzhiyunconfig SPL_WATCHDOG_SUPPORT
828*4882a593Smuzhiyun	bool "Support watchdog drivers"
829*4882a593Smuzhiyun	help
830*4882a593Smuzhiyun	  Enable support for watchdog drivers in SPL. A watchdog is
831*4882a593Smuzhiyun	  typically a hardware peripheral which can reset the system when it
832*4882a593Smuzhiyun	  detects no activity for a while (such as a software crash). This
833*4882a593Smuzhiyun	  enables the drivers in drivers/watchdog as part of an SPL build.
834*4882a593Smuzhiyun
835*4882a593Smuzhiyunconfig SPL_YMODEM_SUPPORT
836*4882a593Smuzhiyun	bool "Support loading using Ymodem"
837*4882a593Smuzhiyun	help
838*4882a593Smuzhiyun	  While loading from serial is slow it can be a useful backup when
839*4882a593Smuzhiyun	  there is no other option. The Ymodem protocol provides a reliable
840*4882a593Smuzhiyun	  means of transmitting U-Boot over a serial line for using in SPL,
841*4882a593Smuzhiyun	  with a checksum to ensure correctness.
842*4882a593Smuzhiyun
843*4882a593Smuzhiyunconfig SPL_ATF
844*4882a593Smuzhiyun	bool "Support ARM Trusted Firmware"
845*4882a593Smuzhiyun	depends on ARM64
846*4882a593Smuzhiyun	help
847*4882a593Smuzhiyun	  ATF(ARM Trusted Firmware) is a component for ARM AArch64 which
848*4882a593Smuzhiyun	  is loaded by SPL (which is considered as BL2 in ATF terminology).
849*4882a593Smuzhiyun	  More detail at: https://github.com/ARM-software/arm-trusted-firmware
850*4882a593Smuzhiyun
851*4882a593Smuzhiyunconfig SPL_OPTEE_SUPPORT
852*4882a593Smuzhiyun	bool "Support OP-TEE Trusted OS"
853*4882a593Smuzhiyun	depends on ARM
854*4882a593Smuzhiyun	help
855*4882a593Smuzhiyun	  OP-TEE is an open source Trusted OS  which is loaded by SPL.
856*4882a593Smuzhiyun	  More detail at: https://github.com/OP-TEE/optee_os
857*4882a593Smuzhiyun
858*4882a593Smuzhiyunconfig SPL_ATF_NO_PLATFORM_PARAM
859*4882a593Smuzhiyun        bool "Pass no platform parameter"
860*4882a593Smuzhiyun	depends on SPL_ATF
861*4882a593Smuzhiyun	help
862*4882a593Smuzhiyun	  While we expect to call a pointer to a valid FDT (or NULL)
863*4882a593Smuzhiyun	  as the platform parameter to an ATF, some ATF versions are
864*4882a593Smuzhiyun	  not U-Boot aware and have an insufficiently robust parameter
865*4882a593Smuzhiyun	  validation to gracefully reject a FDT being passed.
866*4882a593Smuzhiyun
867*4882a593Smuzhiyun	  If this option is enabled, the spl_atf os-type handler will
868*4882a593Smuzhiyun	  always pass NULL for the platform parameter.
869*4882a593Smuzhiyun
870*4882a593Smuzhiyun	  If your ATF is affected, say Y.
871*4882a593Smuzhiyun
872*4882a593Smuzhiyunconfig SPL_ATF_AARCH32_BL33
873*4882a593Smuzhiyun	bool "Support BL33 runs as AArch32 mode"
874*4882a593Smuzhiyun	depends on SPL_ATF
875*4882a593Smuzhiyun	help
876*4882a593Smuzhiyun	  This option setup the AArch32 Mode for BL33.
877*4882a593Smuzhiyun
878*4882a593Smuzhiyunconfig SPL_OPTEE
879*4882a593Smuzhiyun	bool "Support OP-TEE Trusted OS"
880*4882a593Smuzhiyun	depends on ARM
881*4882a593Smuzhiyun	help
882*4882a593Smuzhiyun	  OP-TEE is an open source Trusted OS  which is loaded by SPL.
883*4882a593Smuzhiyun	  More detail at: https://github.com/OP-TEE/optee_os
884*4882a593Smuzhiyun
885*4882a593Smuzhiyunconfig SPL_AB
886*4882a593Smuzhiyun	bool "Support AB system boot"
887*4882a593Smuzhiyun	depends on SPL && SPL_EFI_PARTITION
888*4882a593Smuzhiyun	help
889*4882a593Smuzhiyun	  Enable this config to support AB system boot.
890*4882a593Smuzhiyun
891*4882a593Smuzhiyunconfig SPL_LOAD_RKFW
892*4882a593Smuzhiyun	bool "SPL support load rockchip firmware images"
893*4882a593Smuzhiyun	depends on SPL
894*4882a593Smuzhiyun	help
895*4882a593Smuzhiyun	  This enables SPL support load rockchip firmware images.
896*4882a593Smuzhiyun	  Please define both RKFW_TRUST_SECTOR and RKFW_U_BOOT_SECTOR
897*4882a593Smuzhiyun	  for trust and U-Boot images.
898*4882a593Smuzhiyun
899*4882a593Smuzhiyunconfig RKFW_TRUST_SECTOR
900*4882a593Smuzhiyun	hex "rockchip trust image load sector"
901*4882a593Smuzhiyun	depends on SPL_LOAD_RKFW
902*4882a593Smuzhiyun	default 0x6000
903*4882a593Smuzhiyun
904*4882a593Smuzhiyunconfig RKFW_U_BOOT_SECTOR
905*4882a593Smuzhiyun	hex "rockchip uboot image load sector"
906*4882a593Smuzhiyun	depends on SPL_LOAD_RKFW
907*4882a593Smuzhiyun	default 0x4000
908*4882a593Smuzhiyun
909*4882a593Smuzhiyunconfig RKFW_BOOT_SECTOR
910*4882a593Smuzhiyun        hex "rockchip boot image load sector"
911*4882a593Smuzhiyun        depends on SPL_LOAD_RKFW
912*4882a593Smuzhiyun        default 0xa000
913*4882a593Smuzhiyun
914*4882a593Smuzhiyunconfig SPL_KERNEL_BOOT
915*4882a593Smuzhiyun	bool "Enable boot kernel in SPL"
916*4882a593Smuzhiyun	depends on SPL
917*4882a593Smuzhiyun	help
918*4882a593Smuzhiyun	  Enable boot kernel in SPL.
919*4882a593Smuzhiyun
920*4882a593Smuzhiyunconfig SPL_KERNEL_BOOT_PREBUILT
921*4882a593Smuzhiyun	bool "Enable boot kernel in SPL with prebuilt program"
922*4882a593Smuzhiyun	depends on SPL_KERNEL_BOOT
923*4882a593Smuzhiyun	default y
924*4882a593Smuzhiyun	help
925*4882a593Smuzhiyun	  Enable boot kernel in SPL with prebuilt program.
926*4882a593Smuzhiyun
927*4882a593Smuzhiyunconfig SPL_KERNEL_BOOT_SECTOR
928*4882a593Smuzhiyun	hex "Sector address to load kernel in SPL"
929*4882a593Smuzhiyun	depends on SPL_KERNEL_BOOT
930*4882a593Smuzhiyun	depends on !SPL_LIBDISK_SUPPORT
931*4882a593Smuzhiyun	default 0xa000
932*4882a593Smuzhiyun
933*4882a593Smuzhiyunif SPL_LOAD_RKFW
934*4882a593Smuzhiyunconfig SPL_KERNEL_ADDR
935*4882a593Smuzhiyun	hex "Kernel load address in spl"
936*4882a593Smuzhiyun	depends on SPL
937*4882a593Smuzhiyun	default 0x280000
938*4882a593Smuzhiyun	help
939*4882a593Smuzhiyun	  Define the kernel address where load kernel image to.
940*4882a593Smuzhiyun	  This is used to boot kernel in spl.
941*4882a593Smuzhiyun
942*4882a593Smuzhiyunconfig SPL_KERNEL_COMPRESS_ADDR
943*4882a593Smuzhiyun	hex "The compressed kernel in spl"
944*4882a593Smuzhiyun	depends on SPL && SPL_ROCKCHIP_HW_DECOMPRESS
945*4882a593Smuzhiyun	help
946*4882a593Smuzhiyun	  Load compressed kernel in this address, then call the
947*4882a593Smuzhiyun	  decompress process to decompress the firmware.
948*4882a593Smuzhiyun
949*4882a593Smuzhiyunconfig SPL_KERNEL_DECOM_LIMIT_SIZE
950*4882a593Smuzhiyun        hex "The decompress limit size"
951*4882a593Smuzhiyun        depends on SPL && SPL_ROCKCHIP_HW_DECOMPRESS
952*4882a593Smuzhiyun	default 0x1ff8000
953*4882a593Smuzhiyun        help
954*4882a593Smuzhiyun          Define kernel maximum decompressible size that prevent
955*4882a593Smuzhiyun          memory overrun.
956*4882a593Smuzhiyun
957*4882a593Smuzhiyunconfig SPL_FDT_ADDR
958*4882a593Smuzhiyun	hex "Device tree blob load address in spl"
959*4882a593Smuzhiyun	depends on SPL
960*4882a593Smuzhiyun	default 0x01f00000
961*4882a593Smuzhiyun	help
962*4882a593Smuzhiyun	  Define the fdt address where load dtb image to.
963*4882a593Smuzhiyun	  This is used to boot kernel in spl.
964*4882a593Smuzhiyun
965*4882a593Smuzhiyunconfig SPL_RAMDISK_ADDR
966*4882a593Smuzhiyun	hex "Ramdisk load address in spl"
967*4882a593Smuzhiyun	depends on SPL
968*4882a593Smuzhiyun	default 0x0a200000
969*4882a593Smuzhiyun	help
970*4882a593Smuzhiyun	  Define the ramdisk address where load ramdisk image to.
971*4882a593Smuzhiyun	  This is used to boot kernel in spl.
972*4882a593Smuzhiyun
973*4882a593Smuzhiyunconfig SPL_RAMDISK_COMPRESS_ADDR
974*4882a593Smuzhiyun	hex "The compressed ramdisk in spl"
975*4882a593Smuzhiyun	depends on SPL && SPL_ROCKCHIP_HW_DECOMPRESS
976*4882a593Smuzhiyun	help
977*4882a593Smuzhiyun	  Load compressed ramdisk in this address, then call the
978*4882a593Smuzhiyun	  decompress process to decompress the firmware.
979*4882a593Smuzhiyun
980*4882a593Smuzhiyunconfig SPL_RAMDISK_DECOM_LIMIT_SIZE
981*4882a593Smuzhiyun	hex "The decompress limit size"
982*4882a593Smuzhiyun	depends on SPL && SPL_ROCKCHIP_HW_DECOMPRESS
983*4882a593Smuzhiyun	default 0x3000000
984*4882a593Smuzhiyun	help
985*4882a593Smuzhiyun	  Define ramdisk maximum decompressible size that prevent
986*4882a593Smuzhiyun	  memory overrun.
987*4882a593Smuzhiyunendif
988*4882a593Smuzhiyun
989*4882a593Smuzhiyunconfig TPL
990*4882a593Smuzhiyun	bool
991*4882a593Smuzhiyun	depends on SUPPORT_TPL
992*4882a593Smuzhiyun	prompt "Enable TPL"
993*4882a593Smuzhiyun	help
994*4882a593Smuzhiyun	  If you want to build TPL as well as the normal image and SPL, say Y.
995*4882a593Smuzhiyun
996*4882a593Smuzhiyunif TPL
997*4882a593Smuzhiyun
998*4882a593Smuzhiyunconfig TPL_BOARD_INIT
999*4882a593Smuzhiyun	bool "Call board-specific initialization in TPL"
1000*4882a593Smuzhiyun	help
1001*4882a593Smuzhiyun	  If this option is enabled, U-Boot will call the function
1002*4882a593Smuzhiyun	  spl_board_init() from board_init_r(). This function should be
1003*4882a593Smuzhiyun	  provided by the board.
1004*4882a593Smuzhiyun
1005*4882a593Smuzhiyunconfig TPL_LDSCRIPT
1006*4882a593Smuzhiyun        string "Linker script for the TPL stage"
1007*4882a593Smuzhiyun	depends on TPL
1008*4882a593Smuzhiyun	help
1009*4882a593Smuzhiyun	  The TPL stage will usually require a different linker-script
1010*4882a593Smuzhiyun	  (as it runs from a different memory region) than the regular
1011*4882a593Smuzhiyun	  U-Boot stage.  Set this to the path of the linker-script to
1012*4882a593Smuzhiyun	  be used for TPL.
1013*4882a593Smuzhiyun
1014*4882a593Smuzhiyun	  May be left empty to trigger the Makefile infrastructure to
1015*4882a593Smuzhiyun	  fall back to the linker-script used for the SPL stage.
1016*4882a593Smuzhiyun
1017*4882a593Smuzhiyunconfig TPL_NEEDS_SEPARATE_TEXT_BASE
1018*4882a593Smuzhiyun        bool "TPL needs a separate text-base"
1019*4882a593Smuzhiyun	default n
1020*4882a593Smuzhiyun	depends on TPL
1021*4882a593Smuzhiyun	help
1022*4882a593Smuzhiyun	  Enable, if the TPL stage should not inherit its text-base
1023*4882a593Smuzhiyun	  from the SPL stage.  When enabled, a base address for the
1024*4882a593Smuzhiyun	  .text sections of the TPL stage has to be set below.
1025*4882a593Smuzhiyun
1026*4882a593Smuzhiyunconfig TPL_NEEDS_SEPARATE_STACK
1027*4882a593Smuzhiyun        bool "TPL needs a separate initial stack-pointer"
1028*4882a593Smuzhiyun	default n
1029*4882a593Smuzhiyun	depends on TPL
1030*4882a593Smuzhiyun	help
1031*4882a593Smuzhiyun	  Enable, if the TPL stage should not inherit its initial
1032*4882a593Smuzhiyun	  stack-pointer from the settings for the SPL stage.
1033*4882a593Smuzhiyun
1034*4882a593Smuzhiyunconfig TPL_TEXT_BASE
1035*4882a593Smuzhiyun        hex "Base address for the .text section of the TPL stage"
1036*4882a593Smuzhiyun	depends on TPL_NEEDS_SEPARATE_TEXT_BASE
1037*4882a593Smuzhiyun	help
1038*4882a593Smuzhiyun	  The base address for the .text section of the TPL stage.
1039*4882a593Smuzhiyun
1040*4882a593Smuzhiyunconfig TPL_MAX_SIZE
1041*4882a593Smuzhiyun        int "Maximum size (in bytes) for the TPL stage"
1042*4882a593Smuzhiyun	default 0
1043*4882a593Smuzhiyun	depends on TPL
1044*4882a593Smuzhiyun	help
1045*4882a593Smuzhiyun	  The maximum size (in bytes) of the TPL stage.
1046*4882a593Smuzhiyun
1047*4882a593Smuzhiyunconfig TPL_STACK
1048*4882a593Smuzhiyun        hex "Address of the initial stack-pointer for the TPL stage"
1049*4882a593Smuzhiyun	depends on TPL_NEEDS_SEPARATE_STACK
1050*4882a593Smuzhiyun	help
1051*4882a593Smuzhiyun	  The address of the initial stack-pointer for the TPL stage.
1052*4882a593Smuzhiyun	  Usually this will be the (aligned) top-of-stack.
1053*4882a593Smuzhiyun
1054*4882a593Smuzhiyunconfig TPL_BOOTROM_SUPPORT
1055*4882a593Smuzhiyun        bool "Support returning to the BOOTROM (from TPL)"
1056*4882a593Smuzhiyun	help
1057*4882a593Smuzhiyun	  Some platforms (e.g. the Rockchip RK3368) provide support in their
1058*4882a593Smuzhiyun	  ROM for loading the next boot-stage after performing basic setup
1059*4882a593Smuzhiyun	  from the TPL stage.
1060*4882a593Smuzhiyun
1061*4882a593Smuzhiyun	  Enable this option, to return to the BOOTROM through the
1062*4882a593Smuzhiyun	  BOOT_DEVICE_BOOTROM (or fall-through to the next boot device in the
1063*4882a593Smuzhiyun	  boot device list, if not implemented for a given board)
1064*4882a593Smuzhiyun
1065*4882a593Smuzhiyunconfig TPL_DRIVERS_MISC_SUPPORT
1066*4882a593Smuzhiyun	bool "Support misc drivers in TPL"
1067*4882a593Smuzhiyun	help
1068*4882a593Smuzhiyun	  Enable miscellaneous drivers in TPL. These drivers perform various
1069*4882a593Smuzhiyun	  tasks that don't fall nicely into other categories, Enable this
1070*4882a593Smuzhiyun	  option to build the drivers in drivers/misc as part of an TPL
1071*4882a593Smuzhiyun	  build, for those that support building in TPL (not all drivers do).
1072*4882a593Smuzhiyun
1073*4882a593Smuzhiyunconfig TPL_ENV_SUPPORT
1074*4882a593Smuzhiyun	bool "Support an environment"
1075*4882a593Smuzhiyun	help
1076*4882a593Smuzhiyun	  Enable environment support in TPL. See SPL_ENV_SUPPORT for details.
1077*4882a593Smuzhiyun
1078*4882a593Smuzhiyunconfig TPL_I2C_SUPPORT
1079*4882a593Smuzhiyun	bool "Support I2C"
1080*4882a593Smuzhiyun	help
1081*4882a593Smuzhiyun	  Enable support for the I2C bus in TPL. See SPL_I2C_SUPPORT for
1082*4882a593Smuzhiyun	  details.
1083*4882a593Smuzhiyun
1084*4882a593Smuzhiyunconfig TPL_LIBCOMMON_SUPPORT
1085*4882a593Smuzhiyun	bool "Support common libraries"
1086*4882a593Smuzhiyun	help
1087*4882a593Smuzhiyun	  Enable support for common U-Boot libraries within TPL. See
1088*4882a593Smuzhiyun	  SPL_LIBCOMMON_SUPPORT for details.
1089*4882a593Smuzhiyun
1090*4882a593Smuzhiyunconfig TPL_LIBGENERIC_SUPPORT
1091*4882a593Smuzhiyun	bool "Support generic libraries"
1092*4882a593Smuzhiyun	help
1093*4882a593Smuzhiyun	  Enable support for generic U-Boot libraries within TPL. See
1094*4882a593Smuzhiyun	  SPL_LIBGENERIC_SUPPORT for details.
1095*4882a593Smuzhiyun
1096*4882a593Smuzhiyunconfig TPL_TINY_FRAMEWORK
1097*4882a593Smuzhiyun	bool "Support not to use spl framework in TPL"
1098*4882a593Smuzhiyun	help
1099*4882a593Smuzhiyun	  Enable support for not using spl framework in TPL, to reduce the TPL size.
1100*4882a593Smuzhiyun
1101*4882a593Smuzhiyunconfig TPL_MPC8XXX_INIT_DDR_SUPPORT
1102*4882a593Smuzhiyun	bool "Support MPC8XXX DDR init"
1103*4882a593Smuzhiyun	help
1104*4882a593Smuzhiyun	  Enable support for DDR-SDRAM on the MPC8XXX family within TPL. See
1105*4882a593Smuzhiyun	  SPL_MPC8XXX_INIT_DDR_SUPPORT for details.
1106*4882a593Smuzhiyun
1107*4882a593Smuzhiyunconfig TPL_MMC_SUPPORT
1108*4882a593Smuzhiyun	bool "Support MMC"
1109*4882a593Smuzhiyun	depends on MMC
1110*4882a593Smuzhiyun	help
1111*4882a593Smuzhiyun	  Enable support for MMC within TPL. See SPL_MMC_SUPPORT for details.
1112*4882a593Smuzhiyun
1113*4882a593Smuzhiyunconfig TPL_NAND_SUPPORT
1114*4882a593Smuzhiyun	bool "Support NAND flash"
1115*4882a593Smuzhiyun	help
1116*4882a593Smuzhiyun	  Enable support for NAND in TPL. See SPL_NAND_SUPPORT for details.
1117*4882a593Smuzhiyun
1118*4882a593Smuzhiyunconfig TPL_SERIAL_SUPPORT
1119*4882a593Smuzhiyun	bool "Support serial"
1120*4882a593Smuzhiyun	help
1121*4882a593Smuzhiyun	  Enable support for serial in TPL. See SPL_SERIAL_SUPPORT for
1122*4882a593Smuzhiyun	  details.
1123*4882a593Smuzhiyun
1124*4882a593Smuzhiyunconfig TPL_SPI_FLASH_SUPPORT
1125*4882a593Smuzhiyun	bool "Support SPI flash drivers"
1126*4882a593Smuzhiyun	help
1127*4882a593Smuzhiyun	  Enable support for using SPI flash in TPL. See SPL_SPI_FLASH_SUPPORT
1128*4882a593Smuzhiyun	  for details.
1129*4882a593Smuzhiyun
1130*4882a593Smuzhiyunconfig TPL_SPI_SUPPORT
1131*4882a593Smuzhiyun	bool "Support SPI drivers"
1132*4882a593Smuzhiyun	help
1133*4882a593Smuzhiyun	  Enable support for using SPI in TPL. See SPL_SPI_SUPPORT for
1134*4882a593Smuzhiyun	  details.
1135*4882a593Smuzhiyun
1136*4882a593Smuzhiyunendif # TPL
1137*4882a593Smuzhiyun
1138*4882a593Smuzhiyunendif # SPL
1139*4882a593Smuzhiyunendmenu
1140