4 select ARM_ERRATA_855873 if !TFABOOT
11 select SYS_FSL_ERRATUM_A010315
12 select SYS_FSL_ERRATUM_A009798
13 select SYS_FSL_ERRATUM_A008997
14 select SYS_FSL_ERRATUM_A009007
15 select SYS_FSL_ERRATUM_A009008
16 select ARCH_EARLY_INIT_R
17 select BOARD_EARLY_INIT_F
19 select SYS_I2C_MXC_I2C1
20 select SYS_I2C_MXC_I2C2
25 select ARMV8_SET_SMPEN
26 select ARM_ERRATA_855873 if !TFABOOT
33 select SYS_FSL_DDR_VER_50
34 select SYS_FSL_ERRATUM_A008850 if !TFABOOT
35 select SYS_FSL_ERRATUM_A008997
36 select SYS_FSL_ERRATUM_A009007
37 select SYS_FSL_ERRATUM_A009008
38 select SYS_FSL_ERRATUM_A009660 if !TFABOOT
39 select SYS_FSL_ERRATUM_A009663 if !TFABOOT
40 select SYS_FSL_ERRATUM_A009798
41 select SYS_FSL_ERRATUM_A009929
42 select SYS_FSL_ERRATUM_A009942 if !TFABOOT
43 select SYS_FSL_ERRATUM_A010315
44 select SYS_FSL_ERRATUM_A010539
45 select SYS_FSL_HAS_DDR3
46 select SYS_FSL_HAS_DDR4
47 select ARCH_EARLY_INIT_R
48 select BOARD_EARLY_INIT_F
50 select SYS_I2C_MXC_I2C1
51 select SYS_I2C_MXC_I2C2
52 select SYS_I2C_MXC_I2C3
53 select SYS_I2C_MXC_I2C4
58 select ARMV8_SET_SMPEN
65 select SYS_FSL_DDR_VER_50
66 select SYS_FSL_ERRATUM_A008336 if !TFABOOT
67 select SYS_FSL_ERRATUM_A008511 if !TFABOOT
68 select SYS_FSL_ERRATUM_A008850 if !TFABOOT
69 select SYS_FSL_ERRATUM_A008997
70 select SYS_FSL_ERRATUM_A009007
71 select SYS_FSL_ERRATUM_A009008
72 select SYS_FSL_ERRATUM_A009798
73 select SYS_FSL_ERRATUM_A009801
74 select SYS_FSL_ERRATUM_A009803 if !TFABOOT
75 select SYS_FSL_ERRATUM_A009942 if !TFABOOT
76 select SYS_FSL_ERRATUM_A010165 if !TFABOOT
77 select SYS_FSL_ERRATUM_A010539
78 select SYS_FSL_HAS_DDR4
80 select ARCH_EARLY_INIT_R
81 select BOARD_EARLY_INIT_F
83 select SYS_I2C_MXC_I2C1
84 select SYS_I2C_MXC_I2C2
85 select SYS_I2C_MXC_I2C3
86 select SYS_I2C_MXC_I2C4
92 select ARMV8_SET_SMPEN
93 select ARM_ERRATA_855873 if !TFABOOT
100 select SYS_FSL_DDR_VER_50
103 select SYS_FSL_ERRATUM_A009803 if !TFABOOT
104 select SYS_FSL_ERRATUM_A009942 if !TFABOOT
105 select SYS_FSL_ERRATUM_A010165 if !TFABOOT
106 select SYS_FSL_ERRATUM_A008511 if !TFABOOT
107 select SYS_FSL_ERRATUM_A008850 if !TFABOOT
108 select SYS_FSL_ERRATUM_A009007
109 select SYS_FSL_HAS_CCI400
110 select SYS_FSL_HAS_DDR4
111 select SYS_FSL_HAS_RGMII
112 select SYS_FSL_HAS_SEC
113 select SYS_FSL_SEC_COMPAT_5
114 select SYS_FSL_SEC_LE
115 select SYS_FSL_SRDS_1
116 select SYS_FSL_SRDS_2
119 select FSL_TZPC_BP147
120 select ARCH_EARLY_INIT_R
121 select BOARD_EARLY_INIT_F
123 select SYS_I2C_MXC_I2C1
124 select SYS_I2C_MXC_I2C2
125 select SYS_I2C_MXC_I2C3
126 select SYS_I2C_MXC_I2C4
132 select ARMV8_SET_SMPEN
133 select ARM_ERRATA_826974
134 select ARM_ERRATA_828024
135 select ARM_ERRATA_829520
136 select ARM_ERRATA_833471
137 select FSL_LAYERSCAPE
139 select SYS_FSL_SRDS_1
140 select SYS_HAS_SERDES
142 select SYS_FSL_DDR_LE
143 select SYS_FSL_DDR_VER_50
144 select SYS_FSL_HAS_CCN504
145 select SYS_FSL_HAS_DP_DDR
146 select SYS_FSL_HAS_SEC
147 select SYS_FSL_HAS_DDR4
148 select SYS_FSL_SEC_COMPAT_5
149 select SYS_FSL_SEC_LE
150 select SYS_FSL_SRDS_2
154 select FSL_TZPC_BP147
155 select SYS_FSL_ERRATUM_A008336 if !TFABOOT
156 select SYS_FSL_ERRATUM_A008511 if !TFABOOT
157 select SYS_FSL_ERRATUM_A008514 if !TFABOOT
158 select SYS_FSL_ERRATUM_A008585
159 select SYS_FSL_ERRATUM_A008997
160 select SYS_FSL_ERRATUM_A009007
161 select SYS_FSL_ERRATUM_A009008
162 select SYS_FSL_ERRATUM_A009635
163 select SYS_FSL_ERRATUM_A009663 if !TFABOOT
164 select SYS_FSL_ERRATUM_A009798
165 select SYS_FSL_ERRATUM_A009801
166 select SYS_FSL_ERRATUM_A009803 if !TFABOOT
167 select SYS_FSL_ERRATUM_A009942 if !TFABOOT
168 select SYS_FSL_ERRATUM_A010165 if !TFABOOT
169 select SYS_FSL_ERRATUM_A009203
170 select ARCH_EARLY_INIT_R
171 select BOARD_EARLY_INIT_F
173 select SYS_I2C_MXC_I2C1
174 select SYS_I2C_MXC_I2C2
175 select SYS_I2C_MXC_I2C3
176 select SYS_I2C_MXC_I2C4
177 imply DISTRO_DEFAULTS
182 select ARMV8_SET_SMPEN
185 select SYS_HAS_SERDES
186 select SYS_FSL_SRDS_1
187 select SYS_FSL_SRDS_2
188 select SYS_NXP_SRDS_3
190 select SYS_FSL_DDR_LE
191 select SYS_FSL_DDR_VER_50
194 select SYS_FSL_HAS_RGMII
195 select SYS_FSL_HAS_SEC
196 select SYS_FSL_HAS_CCN508
197 select SYS_FSL_HAS_DDR4
198 select SYS_FSL_SEC_COMPAT_5
199 select SYS_FSL_SEC_LE
200 select ARCH_EARLY_INIT_R
201 select BOARD_EARLY_INIT_F
203 select SYS_I2C_MXC_I2C1
204 select SYS_I2C_MXC_I2C2
205 select SYS_I2C_MXC_I2C3
206 select SYS_I2C_MXC_I2C4
207 select SYS_I2C_MXC_I2C5
208 select SYS_I2C_MXC_I2C6
209 select SYS_I2C_MXC_I2C7
210 select SYS_I2C_MXC_I2C8
211 imply DISTRO_DEFAULTS
218 select SYS_FSL_HAS_CCI400
219 select SYS_FSL_HAS_SEC
220 select SYS_FSL_SEC_COMPAT_5
221 select SYS_FSL_SEC_BE
230 bool "Management Complex network"
231 depends on ARCH_LS2080A || ARCH_LS1088A || ARCH_LX2160A
235 Enable Management Complex (MC) network
237 menu "Layerscape architecture"
238 depends on FSL_LSCH2 || FSL_LSCH3
240 config FSL_LAYERSCAPE
243 config FSL_PCIE_COMPAT
244 string "PCIe compatible of Kernel DT"
245 depends on PCIE_LAYERSCAPE
246 default "fsl,ls1012a-pcie" if ARCH_LS1012A
247 default "fsl,ls1043a-pcie" if ARCH_LS1043A
248 default "fsl,ls1046a-pcie" if ARCH_LS1046A
249 default "fsl,ls2080a-pcie" if ARCH_LS2080A
250 default "fsl,ls1088a-pcie" if ARCH_LS1088A
251 default "fsl,lx2160a-pcie" if ARCH_LX2160A
253 This compatible is used to find pci controller node in Kernel DT
256 config HAS_FEATURE_GIC64K_ALIGN
258 default y if ARCH_LS1043A
260 config HAS_FEATURE_ENHANCED_MSI
262 default y if ARCH_LS1043A
264 menu "Layerscape PPA"
266 bool "FSL Layerscape PPA firmware support"
267 depends on !ARMV8_PSCI
268 select ARMV8_SEC_FIRMWARE_SUPPORT
269 select SEC_FIRMWARE_ARMV8_PSCI
270 select ARMV8_SEC_FIRMWARE_ERET_ADDR_REVERT if FSL_LSCH2
272 The FSL Primary Protected Application (PPA) is a software component
273 which is loaded during boot stage, and then remains resident in RAM
274 and runs in the TrustZone after boot.
277 config SPL_FSL_LS_PPA
278 bool "FSL Layerscape PPA firmware support for SPL build"
279 depends on !ARMV8_PSCI
280 select SPL_ARMV8_SEC_FIRMWARE_SUPPORT
281 select SEC_FIRMWARE_ARMV8_PSCI
282 select ARMV8_SEC_FIRMWARE_ERET_ADDR_REVERT if FSL_LSCH2
284 The FSL Primary Protected Application (PPA) is a software component
285 which is loaded during boot stage, and then remains resident in RAM
286 and runs in the TrustZone after boot. This is to load PPA during SPL
287 stage instead of the RAM version of U-Boot. Once PPA is initialized,
288 the rest of U-Boot (including RAM version) runs at EL2.
290 prompt "FSL Layerscape PPA firmware loading-media select"
291 depends on FSL_LS_PPA
292 default SYS_LS_PPA_FW_IN_MMC if SD_BOOT
293 default SYS_LS_PPA_FW_IN_NAND if NAND_BOOT
294 default SYS_LS_PPA_FW_IN_XIP
296 config SYS_LS_PPA_FW_IN_XIP
299 Say Y here if the PPA firmware locate at XIP flash, such
300 as NOR or QSPI flash.
302 config SYS_LS_PPA_FW_IN_MMC
303 bool "eMMC or SD Card"
305 Say Y here if the PPA firmware locate at eMMC/SD card.
307 config SYS_LS_PPA_FW_IN_NAND
310 Say Y here if the PPA firmware locate at NAND flash.
314 config LS_PPA_ESBC_HDR_SIZE
315 hex "Length of PPA ESBC header"
316 depends on FSL_LS_PPA && CHAIN_OF_TRUST && !SYS_LS_PPA_FW_IN_XIP
319 Length (in bytes) of PPA ESBC header to be copied from MMC/SD or
320 NAND to memory to validate PPA image.
324 config SYS_FSL_ERRATUM_A008997
325 bool "Workaround for USB PHY erratum A008997"
327 config SYS_FSL_ERRATUM_A009007
330 Workaround for USB PHY erratum A009007
332 config SYS_FSL_ERRATUM_A009008
333 bool "Workaround for USB PHY erratum A009008"
335 config SYS_FSL_ERRATUM_A009798
336 bool "Workaround for USB PHY erratum A009798"
338 config SYS_FSL_ERRATUM_A010315
339 bool "Workaround for PCIe erratum A010315"
341 config SYS_FSL_ERRATUM_A010539
342 bool "Workaround for PIN MUX erratum A010539"
345 int "Maximum number of CPUs permitted for Layerscape"
346 default 4 if ARCH_LS1043A
347 default 4 if ARCH_LS1046A
348 default 16 if ARCH_LS2080A
349 default 8 if ARCH_LS1088A
350 default 16 if ARCH_LX2160A
353 Set this number to the maximum number of possible CPUs in the SoC.
354 SoCs may have multiple clusters with each cluster may have multiple
355 ports. If some ports are reserved but higher ports are used for
356 cores, count the reserved ports. This will allocate enough memory
357 in spin table to properly handle all cores.
360 bool "Fan controller"
362 Enable the EMC2305 fan controller for configuration of fan
368 Enable Freescale Secure Boot feature
371 bool "Init the QSPI AHB bus"
373 The default setting for QSPI AHB bus just support 3bytes addressing.
374 But some QSPI flash size up to 64MBytes, so initialize the QSPI AHB
375 bus for those flashes to support the full QSPI flash size.
377 config SYS_CCI400_OFFSET
378 hex "Offset for CCI400 base"
379 depends on SYS_FSL_HAS_CCI400
380 default 0x3090000 if ARCH_LS1088A
381 default 0x180000 if FSL_LSCH2
383 Offset for CCI400 base
384 CCI400 base addr = CCSRBAR + CCI400_OFFSET
386 config SYS_FSL_IFC_BANK_COUNT
387 int "Maximum banks of Integrated flash controller"
388 depends on ARCH_LS1043A || ARCH_LS1046A || ARCH_LS2080A || ARCH_LS1088A
389 default 4 if ARCH_LS1043A
390 default 4 if ARCH_LS1046A
391 default 8 if ARCH_LS2080A || ARCH_LS1088A
393 config SYS_FSL_HAS_CCI400
396 config SYS_FSL_HAS_CCN504
399 config SYS_FSL_HAS_CCN508
402 config SYS_FSL_HAS_DP_DDR
405 config SYS_FSL_SRDS_1
408 config SYS_FSL_SRDS_2
411 config SYS_NXP_SRDS_3
414 config SYS_HAS_SERDES
426 config FSL_TZPC_BP147
430 menu "Layerscape clock tree configuration"
431 depends on FSL_LSCH2 || FSL_LSCH3
434 bool "Enable clock tree initialization"
437 config CLUSTER_CLK_FREQ
438 int "Reference clock of core cluster"
439 depends on ARCH_LS1012A
442 This number is the reference clock frequency of core PLL.
443 For most platforms, the core PLL and Platform PLL have the same
444 reference clock, but for some platforms, LS1012A for instance,
445 they are provided sepatately.
447 config SYS_FSL_PCLK_DIV
448 int "Platform clock divider"
449 default 1 if ARCH_LS1043A
450 default 1 if ARCH_LS1046A
451 default 1 if ARCH_LS1088A
454 This is the divider that is used to derive Platform clock from
455 Platform PLL, in another word:
456 Platform_clk = Platform_PLL_freq / this_divider
458 config SYS_FSL_DSPI_CLK_DIV
459 int "DSPI clock divider"
460 default 1 if ARCH_LS1043A
463 This is the divider that is used to derive DSPI clock from Platform
464 clock, in another word DSPI_clk = Platform_clk / this_divider.
466 config SYS_FSL_DUART_CLK_DIV
467 int "DUART clock divider"
468 default 1 if ARCH_LS1043A
469 default 4 if ARCH_LX2160A
472 This is the divider that is used to derive DUART clock from Platform
473 clock, in another word DUART_clk = Platform_clk / this_divider.
475 config SYS_FSL_I2C_CLK_DIV
476 int "I2C clock divider"
477 default 1 if ARCH_LS1043A
480 This is the divider that is used to derive I2C clock from Platform
481 clock, in another word I2C_clk = Platform_clk / this_divider.
483 config SYS_FSL_IFC_CLK_DIV
484 int "IFC clock divider"
485 default 1 if ARCH_LS1043A
488 This is the divider that is used to derive IFC clock from Platform
489 clock, in another word IFC_clk = Platform_clk / this_divider.
491 config SYS_FSL_LPUART_CLK_DIV
492 int "LPUART clock divider"
493 default 1 if ARCH_LS1043A
496 This is the divider that is used to derive LPUART clock from Platform
497 clock, in another word LPUART_clk = Platform_clk / this_divider.
499 config SYS_FSL_SDHC_CLK_DIV
500 int "SDHC clock divider"
501 default 1 if ARCH_LS1043A
502 default 1 if ARCH_LS1012A
505 This is the divider that is used to derive SDHC clock from Platform
506 clock, in another word SDHC_clk = Platform_clk / this_divider.
508 config SYS_FSL_QMAN_CLK_DIV
509 int "QMAN clock divider"
510 default 1 if ARCH_LS1043A
513 This is the divider that is used to derive QMAN clock from Platform
514 clock, in another word QMAN_clk = Platform_clk / this_divider.
520 Reserve memory from the top, tracked by gd->arch.resv_ram. This
521 reserved RAM can be used by special driver that resides in memory
522 after U-Boot exits. It's up to implementation to allocate and allow
523 access to this reserved memory. For example, the reserved RAM can
524 be at the high end of physical memory. The reserve RAM may be
525 excluded from memory bank(s) passed to OS, or marked as reserved.
530 Ethernet controller 1, this is connected to
531 MAC17 for LX2160A or to MAC3 for other SoCs
532 Provides DPAA2 capabilities
537 Ethernet controller 2, this is connected to
538 MAC18 for LX2160A or to MAC4 for other SoCs
539 Provides DPAA2 capabilities
541 config SYS_FSL_ERRATUM_A008336
544 config SYS_FSL_ERRATUM_A008514
547 config SYS_FSL_ERRATUM_A008585
550 config SYS_FSL_ERRATUM_A008850
553 config SYS_FSL_ERRATUM_A009203
556 config SYS_FSL_ERRATUM_A009635
559 config SYS_FSL_ERRATUM_A009660
562 config SYS_FSL_ERRATUM_A009929
566 config SYS_FSL_HAS_RGMII
568 depends on SYS_FSL_EC1 || SYS_FSL_EC2
571 config SYS_MC_RSV_MEM_ALIGN
572 hex "Management Complex reserved memory alignment"
574 default 0x20000000 if ARCH_LS2080A || ARCH_LS1088A || ARCH_LX2160A
576 Reserved memory needs to be aligned for MC to use. Default value
580 default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARCH_LS1043A || ARCH_LS1046A || ARCH_LS2080A
582 config HAS_FSL_XHCI_USB
584 default y if ARCH_LS1043A || ARCH_LS1046A
586 For some SoC(such as LS1043A and LS1046A), USB and QE-HDLC multiplex use
587 pins, select it when the pins are assigned to USB.
590 bool "Support for booting from TFA"
593 Enabling this will make a U-Boot binary that is capable of being