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