7 select SYS_FSL_ERRATUM_A010315
8 select SYS_FSL_ERRATUM_A009798
9 select SYS_FSL_ERRATUM_A008997
10 select SYS_FSL_ERRATUM_A009007
11 select SYS_FSL_ERRATUM_A009008
12 select ARCH_EARLY_INIT_R
13 select BOARD_EARLY_INIT_F
17 select ARMV8_SET_SMPEN
21 select SYS_FSL_DDR_VER_50
22 select SYS_FSL_ERRATUM_A008850
23 select SYS_FSL_ERRATUM_A008997
24 select SYS_FSL_ERRATUM_A009007
25 select SYS_FSL_ERRATUM_A009008
26 select SYS_FSL_ERRATUM_A009660
27 select SYS_FSL_ERRATUM_A009663
28 select SYS_FSL_ERRATUM_A009798
29 select SYS_FSL_ERRATUM_A009929
30 select SYS_FSL_ERRATUM_A009942
31 select SYS_FSL_ERRATUM_A010315
32 select SYS_FSL_ERRATUM_A010539
33 select SYS_FSL_HAS_DDR3
34 select SYS_FSL_HAS_DDR4
35 select ARCH_EARLY_INIT_R
36 select BOARD_EARLY_INIT_F
42 select ARMV8_SET_SMPEN
46 select SYS_FSL_DDR_VER_50
47 select SYS_FSL_ERRATUM_A008336
48 select SYS_FSL_ERRATUM_A008511
49 select SYS_FSL_ERRATUM_A008850
50 select SYS_FSL_ERRATUM_A008997
51 select SYS_FSL_ERRATUM_A009007
52 select SYS_FSL_ERRATUM_A009008
53 select SYS_FSL_ERRATUM_A009798
54 select SYS_FSL_ERRATUM_A009801
55 select SYS_FSL_ERRATUM_A009803
56 select SYS_FSL_ERRATUM_A009942
57 select SYS_FSL_ERRATUM_A010165
58 select SYS_FSL_ERRATUM_A010539
59 select SYS_FSL_HAS_DDR4
61 select ARCH_EARLY_INIT_R
62 select BOARD_EARLY_INIT_F
67 select ARMV8_SET_SMPEN
71 select SYS_FSL_DDR_VER_50
74 select SYS_FSL_ERRATUM_A009803
75 select SYS_FSL_ERRATUM_A009942
76 select SYS_FSL_ERRATUM_A010165
77 select SYS_FSL_ERRATUM_A008511
78 select SYS_FSL_ERRATUM_A008850
79 select SYS_FSL_ERRATUM_A009007
80 select SYS_FSL_HAS_CCI400
81 select SYS_FSL_HAS_DDR4
82 select SYS_FSL_HAS_RGMII
83 select SYS_FSL_HAS_SEC
84 select SYS_FSL_SEC_COMPAT_5
89 select ARCH_EARLY_INIT_R
90 select BOARD_EARLY_INIT_F
95 select ARMV8_SET_SMPEN
96 select ARM_ERRATA_826974
97 select ARM_ERRATA_828024
98 select ARM_ERRATA_829520
99 select ARM_ERRATA_833471
102 select SYS_FSL_DDR_LE
103 select SYS_FSL_DDR_VER_50
104 select SYS_FSL_HAS_CCN504
105 select SYS_FSL_HAS_DP_DDR
106 select SYS_FSL_HAS_SEC
107 select SYS_FSL_HAS_DDR4
108 select SYS_FSL_SEC_COMPAT_5
109 select SYS_FSL_SEC_LE
110 select SYS_FSL_SRDS_2
113 select SYS_FSL_ERRATUM_A008336
114 select SYS_FSL_ERRATUM_A008511
115 select SYS_FSL_ERRATUM_A008514
116 select SYS_FSL_ERRATUM_A008585
117 select SYS_FSL_ERRATUM_A008997
118 select SYS_FSL_ERRATUM_A009007
119 select SYS_FSL_ERRATUM_A009008
120 select SYS_FSL_ERRATUM_A009635
121 select SYS_FSL_ERRATUM_A009663
122 select SYS_FSL_ERRATUM_A009798
123 select SYS_FSL_ERRATUM_A009801
124 select SYS_FSL_ERRATUM_A009803
125 select SYS_FSL_ERRATUM_A009942
126 select SYS_FSL_ERRATUM_A010165
127 select SYS_FSL_ERRATUM_A009203
128 select ARCH_EARLY_INIT_R
129 select BOARD_EARLY_INIT_F
133 select SYS_FSL_HAS_CCI400
134 select SYS_FSL_HAS_SEC
135 select SYS_FSL_SEC_COMPAT_5
136 select SYS_FSL_SEC_BE
137 select SYS_FSL_SRDS_1
138 select SYS_HAS_SERDES
142 select SYS_FSL_SRDS_1
143 select SYS_HAS_SERDES
146 bool "Management Complex network"
147 depends on ARCH_LS2080A || ARCH_LS1088A
151 Enable Management Complex (MC) network
153 menu "Layerscape architecture"
154 depends on FSL_LSCH2 || FSL_LSCH3
156 config FSL_PCIE_COMPAT
157 string "PCIe compatible of Kernel DT"
158 depends on PCIE_LAYERSCAPE
159 default "fsl,ls1012a-pcie" if ARCH_LS1012A
160 default "fsl,ls1043a-pcie" if ARCH_LS1043A
161 default "fsl,ls1046a-pcie" if ARCH_LS1046A
162 default "fsl,ls2080a-pcie" if ARCH_LS2080A
163 default "fsl,ls1088a-pcie" if ARCH_LS1088A
165 This compatible is used to find pci controller node in Kernel DT
168 config HAS_FEATURE_GIC64K_ALIGN
170 default y if ARCH_LS1043A
172 config HAS_FEATURE_ENHANCED_MSI
174 default y if ARCH_LS1043A
176 menu "Layerscape PPA"
178 bool "FSL Layerscape PPA firmware support"
179 depends on !ARMV8_PSCI
180 select ARMV8_SEC_FIRMWARE_SUPPORT
181 select SEC_FIRMWARE_ARMV8_PSCI
182 select ARMV8_SEC_FIRMWARE_ERET_ADDR_REVERT if FSL_LSCH2
184 The FSL Primary Protected Application (PPA) is a software component
185 which is loaded during boot stage, and then remains resident in RAM
186 and runs in the TrustZone after boot.
189 config SPL_FSL_LS_PPA
190 bool "FSL Layerscape PPA firmware support for SPL build"
191 depends on !ARMV8_PSCI
192 select SPL_ARMV8_SEC_FIRMWARE_SUPPORT
193 select SEC_FIRMWARE_ARMV8_PSCI
194 select ARMV8_SEC_FIRMWARE_ERET_ADDR_REVERT if FSL_LSCH2
196 The FSL Primary Protected Application (PPA) is a software component
197 which is loaded during boot stage, and then remains resident in RAM
198 and runs in the TrustZone after boot. This is to load PPA during SPL
199 stage instead of the RAM version of U-Boot. Once PPA is initialized,
200 the rest of U-Boot (including RAM version) runs at EL2.
202 prompt "FSL Layerscape PPA firmware loading-media select"
203 depends on FSL_LS_PPA
204 default SYS_LS_PPA_FW_IN_MMC if SD_BOOT
205 default SYS_LS_PPA_FW_IN_NAND if NAND_BOOT
206 default SYS_LS_PPA_FW_IN_XIP
208 config SYS_LS_PPA_FW_IN_XIP
211 Say Y here if the PPA firmware locate at XIP flash, such
212 as NOR or QSPI flash.
214 config SYS_LS_PPA_FW_IN_MMC
215 bool "eMMC or SD Card"
217 Say Y here if the PPA firmware locate at eMMC/SD card.
219 config SYS_LS_PPA_FW_IN_NAND
222 Say Y here if the PPA firmware locate at NAND flash.
226 config SYS_LS_PPA_FW_ADDR
227 hex "Address of PPA firmware loading from"
228 depends on FSL_LS_PPA
229 default 0x20400000 if SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT && ARCH_LS2080A
230 default 0x40400000 if SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT
231 default 0x580400000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS2080A
232 default 0x20400000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS1088A
233 default 0x60400000 if SYS_LS_PPA_FW_IN_XIP
234 default 0x400000 if SYS_LS_PPA_FW_IN_MMC
235 default 0x400000 if SYS_LS_PPA_FW_IN_NAND
238 If the PPA firmware locate at XIP flash, such as NOR or
239 QSPI flash, this address is a directly memory-mapped.
240 If it is in a serial accessed flash, such as NAND and SD
241 card, it is a byte offset.
243 config SYS_LS_PPA_ESBC_ADDR
244 hex "hdr address of PPA firmware loading from"
245 depends on FSL_LS_PPA && CHAIN_OF_TRUST
246 default 0x60680000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS1043A
247 default 0x40680000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS1046A
248 default 0x40680000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS1012A
249 default 0x20680000 if SYS_LS_PPA_FW_IN_XIP && QSPI_BOOT && ARCH_LS2080A
250 default 0x580680000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS2080A
251 default 0x20680000 if SYS_LS_PPA_FW_IN_XIP && ARCH_LS1088A
252 default 0x680000 if SYS_LS_PPA_FW_IN_MMC
253 default 0x680000 if SYS_LS_PPA_FW_IN_NAND
255 If the PPA header firmware locate at XIP flash, such as NOR or
256 QSPI flash, this address is a directly memory-mapped.
257 If it is in a serial accessed flash, such as NAND and SD
258 card, it is a byte offset.
260 config LS_PPA_ESBC_HDR_SIZE
261 hex "Length of PPA ESBC header"
262 depends on FSL_LS_PPA && CHAIN_OF_TRUST && !SYS_LS_PPA_FW_IN_XIP
265 Length (in bytes) of PPA ESBC header to be copied from MMC/SD or
266 NAND to memory to validate PPA image.
270 config SYS_FSL_ERRATUM_A008997
271 bool "Workaround for USB PHY erratum A008997"
273 config SYS_FSL_ERRATUM_A009007
276 Workaround for USB PHY erratum A009007
278 config SYS_FSL_ERRATUM_A009008
279 bool "Workaround for USB PHY erratum A009008"
281 config SYS_FSL_ERRATUM_A009798
282 bool "Workaround for USB PHY erratum A009798"
284 config SYS_FSL_ERRATUM_A010315
285 bool "Workaround for PCIe erratum A010315"
287 config SYS_FSL_ERRATUM_A010539
288 bool "Workaround for PIN MUX erratum A010539"
291 int "Maximum number of CPUs permitted for Layerscape"
292 default 4 if ARCH_LS1043A
293 default 4 if ARCH_LS1046A
294 default 16 if ARCH_LS2080A
295 default 8 if ARCH_LS1088A
298 Set this number to the maximum number of possible CPUs in the SoC.
299 SoCs may have multiple clusters with each cluster may have multiple
300 ports. If some ports are reserved but higher ports are used for
301 cores, count the reserved ports. This will allocate enough memory
302 in spin table to properly handle all cores.
307 Enable Freescale Secure Boot feature
310 bool "Init the QSPI AHB bus"
312 The default setting for QSPI AHB bus just support 3bytes addressing.
313 But some QSPI flash size up to 64MBytes, so initialize the QSPI AHB
314 bus for those flashes to support the full QSPI flash size.
316 config SYS_CCI400_OFFSET
317 hex "Offset for CCI400 base"
318 depends on SYS_FSL_HAS_CCI400
319 default 0x3090000 if ARCH_LS1088A
320 default 0x180000 if FSL_LSCH2
322 Offset for CCI400 base
323 CCI400 base addr = CCSRBAR + CCI400_OFFSET
325 config SYS_FSL_IFC_BANK_COUNT
326 int "Maximum banks of Integrated flash controller"
327 depends on ARCH_LS1043A || ARCH_LS1046A || ARCH_LS2080A || ARCH_LS1088A
328 default 4 if ARCH_LS1043A
329 default 4 if ARCH_LS1046A
330 default 8 if ARCH_LS2080A || ARCH_LS1088A
332 config SYS_FSL_HAS_CCI400
335 config SYS_FSL_HAS_CCN504
338 config SYS_FSL_HAS_DP_DDR
341 config SYS_FSL_SRDS_1
344 config SYS_FSL_SRDS_2
347 config SYS_HAS_SERDES
358 menu "Layerscape clock tree configuration"
359 depends on FSL_LSCH2 || FSL_LSCH3
362 bool "Enable clock tree initialization"
365 config CLUSTER_CLK_FREQ
366 int "Reference clock of core cluster"
367 depends on ARCH_LS1012A
370 This number is the reference clock frequency of core PLL.
371 For most platforms, the core PLL and Platform PLL have the same
372 reference clock, but for some platforms, LS1012A for instance,
373 they are provided sepatately.
375 config SYS_FSL_PCLK_DIV
376 int "Platform clock divider"
377 default 1 if ARCH_LS1043A
378 default 1 if ARCH_LS1046A
379 default 1 if ARCH_LS1088A
382 This is the divider that is used to derive Platform clock from
383 Platform PLL, in another word:
384 Platform_clk = Platform_PLL_freq / this_divider
386 config SYS_FSL_DSPI_CLK_DIV
387 int "DSPI clock divider"
388 default 1 if ARCH_LS1043A
391 This is the divider that is used to derive DSPI clock from Platform
392 clock, in another word DSPI_clk = Platform_clk / this_divider.
394 config SYS_FSL_DUART_CLK_DIV
395 int "DUART clock divider"
396 default 1 if ARCH_LS1043A
399 This is the divider that is used to derive DUART clock from Platform
400 clock, in another word DUART_clk = Platform_clk / this_divider.
402 config SYS_FSL_I2C_CLK_DIV
403 int "I2C clock divider"
404 default 1 if ARCH_LS1043A
407 This is the divider that is used to derive I2C clock from Platform
408 clock, in another word I2C_clk = Platform_clk / this_divider.
410 config SYS_FSL_IFC_CLK_DIV
411 int "IFC clock divider"
412 default 1 if ARCH_LS1043A
415 This is the divider that is used to derive IFC clock from Platform
416 clock, in another word IFC_clk = Platform_clk / this_divider.
418 config SYS_FSL_LPUART_CLK_DIV
419 int "LPUART clock divider"
420 default 1 if ARCH_LS1043A
423 This is the divider that is used to derive LPUART clock from Platform
424 clock, in another word LPUART_clk = Platform_clk / this_divider.
426 config SYS_FSL_SDHC_CLK_DIV
427 int "SDHC clock divider"
428 default 1 if ARCH_LS1043A
429 default 1 if ARCH_LS1012A
432 This is the divider that is used to derive SDHC clock from Platform
433 clock, in another word SDHC_clk = Platform_clk / this_divider.
439 Reserve memory from the top, tracked by gd->arch.resv_ram. This
440 reserved RAM can be used by special driver that resides in memory
441 after U-Boot exits. It's up to implementation to allocate and allow
442 access to this reserved memory. For example, the reserved RAM can
443 be at the high end of physical memory. The reserve RAM may be
444 excluded from memory bank(s) passed to OS, or marked as reserved.
449 Ethernet controller 1, this is connected to MAC3.
450 Provides DPAA2 capabilities
455 Ethernet controller 2, this is connected to MAC4.
456 Provides DPAA2 capabilities
458 config SYS_FSL_ERRATUM_A008336
461 config SYS_FSL_ERRATUM_A008514
464 config SYS_FSL_ERRATUM_A008585
467 config SYS_FSL_ERRATUM_A008850
470 config SYS_FSL_ERRATUM_A009203
473 config SYS_FSL_ERRATUM_A009635
476 config SYS_FSL_ERRATUM_A009660
479 config SYS_FSL_ERRATUM_A009929
483 config SYS_FSL_HAS_RGMII
485 depends on SYS_FSL_EC1 || SYS_FSL_EC2
488 config SYS_MC_RSV_MEM_ALIGN
489 hex "Management Complex reserved memory alignment"
491 default 0x20000000 if ARCH_LS2080A
492 default 0x70000000 if ARCH_LS1088A
494 Reserved memory needs to be aligned for MC to use. Default value
498 default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARCH_LS1043A || ARCH_LS1046A || ARCH_LS2080A
500 config HAS_FSL_XHCI_USB
502 default y if ARCH_LS1043A || ARCH_LS1046A
504 For some SoC(such as LS1043A and LS1046A), USB and QE-HDLC multiplex use
505 pins, select it when the pins are assigned to USB.