4 select ARM_ERRATA_855873 if !TFABOOT
8 select SKIP_LOWLEVEL_INIT
13 select SYS_FSL_ERRATUM_A010315 if PCIE_LAYERSCAPE
14 select SYS_FSL_ERRATUM_A009798
15 select SYS_FSL_ERRATUM_A008997
16 select SYS_FSL_ERRATUM_A009007
17 select SYS_FSL_ERRATUM_A009008
18 select ARCH_EARLY_INIT_R
19 select BOARD_EARLY_INIT_F
21 select SYS_I2C_MXC_I2C1 if !DM_I2C
22 select SYS_I2C_MXC_I2C2 if !DM_I2C
28 select ARMV8_SET_SMPEN
33 select SYS_FSL_HAS_CCI400
38 select SYS_FSL_DDR_VER_50
39 select SYS_FSL_HAS_DDR3
40 select SYS_FSL_HAS_DDR4
41 select SYS_FSL_HAS_SEC
42 select SYS_FSL_SEC_COMPAT_5
46 select ARCH_EARLY_INIT_R
47 select BOARD_EARLY_INIT_F
49 select SYS_FSL_ERRATUM_A008997
50 select SYS_FSL_ERRATUM_A009007
51 select SYS_FSL_ERRATUM_A008514 if !TFABOOT
52 select SYS_FSL_ERRATUM_A009663 if !TFABOOT
53 select SYS_FSL_ERRATUM_A009942 if !TFABOOT
54 select SYS_FSL_ERRATUM_A050382
55 select SYS_FSL_ERRATUM_A011334
56 select SYS_FSL_ESDHC_UNRELIABLE_PULSE_DETECTION_WORKAROUND
57 select RESV_RAM if GIC_V3_ITS
58 select SYS_HAS_ARMV8_SECURE_BASE
63 select ARMV8_SET_SMPEN
64 select ARM_ERRATA_855873 if !TFABOOT
65 select FSL_IFC if TFABOOT || (!QSPI_BOOT && !SD_BOOT_QSPI)
69 select HAS_FSL_XHCI_USB if USB_HOST
70 select SKIP_LOWLEVEL_INIT
75 select SYS_FSL_DDR_VER_50
76 select SYS_FSL_ERRATUM_A008850 if !TFABOOT
77 select SYS_FSL_ERRATUM_A008997
78 select SYS_FSL_ERRATUM_A009008
79 select SYS_FSL_ERRATUM_A009660 if !TFABOOT
80 select SYS_FSL_ERRATUM_A009663 if !TFABOOT
81 select SYS_FSL_ERRATUM_A009798
82 select SYS_FSL_ERRATUM_A009942 if !TFABOOT
83 select SYS_FSL_ERRATUM_A010315 if PCIE_LAYERSCAPE
84 select SYS_FSL_ERRATUM_A010539
85 select SYS_FSL_HAS_DDR3
86 select SYS_FSL_HAS_DDR4
87 select ARCH_EARLY_INIT_R
88 select BOARD_EARLY_INIT_F
90 select SYS_I2C_MXC_I2C1 if !DM_I2C
91 select SYS_I2C_MXC_I2C2 if !DM_I2C
92 select SYS_I2C_MXC_I2C3 if !DM_I2C
93 select SYS_I2C_MXC_I2C4 if !DM_I2C
94 select SYS_HAS_ARMV8_SECURE_BASE
100 select ARMV8_SET_SMPEN
101 select FSL_IFC if TFABOOT || (!QSPI_BOOT && !SD_BOOT_QSPI)
102 select FSL_LAYERSCAPE
105 select HAS_FSL_XHCI_USB if USB_HOST
106 select SKIP_LOWLEVEL_INIT
107 select SYS_FSL_SRDS_1
108 select SYS_HAS_SERDES
110 select SYS_FSL_DDR_BE
111 select SYS_FSL_DDR_VER_50
112 select SYS_FSL_ERRATUM_A008336 if !TFABOOT
113 select SYS_FSL_ERRATUM_A008511 if !TFABOOT
114 select SYS_FSL_ERRATUM_A008850 if !TFABOOT
115 select SYS_FSL_ERRATUM_A008997
116 select SYS_FSL_ERRATUM_A009008
117 select SYS_FSL_ERRATUM_A009798
118 select SYS_FSL_ERRATUM_A009801
119 select SYS_FSL_ERRATUM_A009803 if !TFABOOT
120 select SYS_FSL_ERRATUM_A009942 if !TFABOOT
121 select SYS_FSL_ERRATUM_A010165 if !TFABOOT
122 select SYS_FSL_ERRATUM_A010539
123 select SYS_FSL_HAS_DDR4
124 select SYS_FSL_SRDS_2
125 select ARCH_EARLY_INIT_R
126 select BOARD_EARLY_INIT_F
128 select SYS_I2C_MXC_I2C1 if !DM_I2C
129 select SYS_I2C_MXC_I2C2 if !DM_I2C
130 select SYS_I2C_MXC_I2C3 if !DM_I2C
131 select SYS_I2C_MXC_I2C4 if !DM_I2C
135 imply SPL_SYS_I2C_LEGACY
139 select ARMV8_SET_SMPEN
140 select ARM_ERRATA_855873 if !TFABOOT
142 select FSL_LAYERSCAPE
145 select SKIP_LOWLEVEL_INIT
146 select SYS_FSL_SRDS_1
147 select SYS_HAS_SERDES
149 select SYS_FSL_DDR_LE
150 select SYS_FSL_DDR_VER_50
153 select SYS_FSL_ERRATUM_A009803 if !TFABOOT
154 select SYS_FSL_ERRATUM_A009942 if !TFABOOT
155 select SYS_FSL_ERRATUM_A010165 if !TFABOOT
156 select SYS_FSL_ERRATUM_A008511 if !TFABOOT
157 select SYS_FSL_ERRATUM_A008850 if !TFABOOT
158 select SYS_FSL_ERRATUM_A009007
159 select SYS_FSL_HAS_CCI400
160 select SYS_FSL_HAS_DDR4
161 select SYS_FSL_HAS_RGMII
162 select SYS_FSL_HAS_SEC
163 select SYS_FSL_SEC_COMPAT_5
164 select SYS_FSL_SEC_LE
165 select SYS_FSL_SRDS_1
166 select SYS_FSL_SRDS_2
169 select FSL_TZPC_BP147
170 select ARCH_EARLY_INIT_R
171 select BOARD_EARLY_INIT_F
173 select SYS_I2C_MXC_I2C1 if !TFABOOT
174 select SYS_I2C_MXC_I2C2 if !TFABOOT
175 select SYS_I2C_MXC_I2C3 if !TFABOOT
176 select SYS_I2C_MXC_I2C4 if !TFABOOT
177 select RESV_RAM if GIC_V3_ITS
180 imply SPL_SYS_I2C_LEGACY
185 select ARMV8_SET_SMPEN
186 select ARM_ERRATA_826974
187 select ARM_ERRATA_828024
188 select ARM_ERRATA_829520
189 select ARM_ERRATA_833471
191 select FSL_LAYERSCAPE
194 select SKIP_LOWLEVEL_INIT
195 select SYS_FSL_SRDS_1
196 select SYS_HAS_SERDES
198 select SYS_FSL_DDR_LE
199 select SYS_FSL_DDR_VER_50
200 select SYS_FSL_HAS_CCN504
201 select SYS_FSL_HAS_DP_DDR
202 select SYS_FSL_HAS_SEC
203 select SYS_FSL_HAS_DDR4
204 select SYS_FSL_SEC_COMPAT_5
205 select SYS_FSL_SEC_LE
206 select SYS_FSL_SRDS_2
210 select FSL_TZPC_BP147
211 select SYS_FSL_ERRATUM_A008336 if !TFABOOT
212 select SYS_FSL_ERRATUM_A008511 if !TFABOOT
213 select SYS_FSL_ERRATUM_A008514 if !TFABOOT
214 select SYS_FSL_ERRATUM_A008585
215 select SYS_FSL_ERRATUM_A008997
216 select SYS_FSL_ERRATUM_A009007
217 select SYS_FSL_ERRATUM_A009008
218 select SYS_FSL_ERRATUM_A009635
219 select SYS_FSL_ERRATUM_A009663 if !TFABOOT
220 select SYS_FSL_ERRATUM_A009798
221 select SYS_FSL_ERRATUM_A009801
222 select SYS_FSL_ERRATUM_A009803 if !TFABOOT
223 select SYS_FSL_ERRATUM_A009942 if !TFABOOT
224 select SYS_FSL_ERRATUM_A010165 if !TFABOOT
225 select SYS_FSL_ERRATUM_A009203
226 select ARCH_EARLY_INIT_R
227 select BOARD_EARLY_INIT_F
229 select SYS_I2C_MXC_I2C1 if !TFABOOT
230 select SYS_I2C_MXC_I2C2 if !TFABOOT
231 select SYS_I2C_MXC_I2C3 if !TFABOOT
232 select SYS_I2C_MXC_I2C4 if !TFABOOT
233 select RESV_RAM if GIC_V3_ITS
234 imply DISTRO_DEFAULTS
237 imply SPL_SYS_I2C_LEGACY
241 select ARMV8_SET_SMPEN
243 select FSL_DDR_INTERACTIVE
244 select FSL_LAYERSCAPE
246 select FSL_TZPC_BP147
249 select SYS_HAS_SERDES
250 select SYS_FSL_SRDS_1
251 select SYS_FSL_SRDS_2
253 select SYS_FSL_DDR_LE
254 select SYS_FSL_DDR_VER_50
257 select SYS_FSL_ERRATUM_A050204
258 select SYS_FSL_ERRATUM_A011334
259 select SYS_FSL_ESDHC_UNRELIABLE_PULSE_DETECTION_WORKAROUND
260 select SYS_FSL_HAS_RGMII
261 select SYS_FSL_HAS_SEC
262 select SYS_FSL_HAS_CCN508
263 select SYS_FSL_HAS_DDR4
264 select SYS_FSL_SEC_COMPAT_5
265 select SYS_FSL_SEC_LE
266 select SYS_PCI_64BIT if PCI
267 select ARCH_EARLY_INIT_R
268 select BOARD_EARLY_INIT_F
270 select RESV_RAM if GIC_V3_ITS
271 imply DISTRO_DEFAULTS
275 imply SPL_SYS_I2C_LEGACY
279 select ARMV8_SET_SMPEN
281 select FSL_DDR_INTERACTIVE
282 select FSL_LAYERSCAPE
284 select FSL_TZPC_BP147
286 select HAS_FSL_XHCI_USB if USB_HOST
288 select SYS_HAS_SERDES
289 select SYS_FSL_SRDS_1
290 select SYS_FSL_SRDS_2
291 select SYS_NXP_SRDS_3
293 select SYS_FSL_DDR_LE
294 select SYS_FSL_DDR_VER_50
297 select SYS_FSL_ERRATUM_A050204
298 select SYS_FSL_ERRATUM_A011334
299 select SYS_FSL_ESDHC_UNRELIABLE_PULSE_DETECTION_WORKAROUND
300 select SYS_FSL_HAS_RGMII
301 select SYS_FSL_HAS_SEC
302 select SYS_FSL_HAS_CCN508
303 select SYS_FSL_HAS_DDR4
304 select SYS_FSL_SEC_COMPAT_5
305 select SYS_FSL_SEC_LE
306 select SYS_PCI_64BIT if PCI
307 select ARCH_EARLY_INIT_R
308 select BOARD_EARLY_INIT_F
310 select RESV_RAM if GIC_V3_ITS
311 imply DISTRO_DEFAULTS
316 imply SPL_SYS_I2C_LEGACY
320 select SKIP_LOWLEVEL_INIT
321 select SYS_FSL_HAS_CCI400
322 select SYS_FSL_HAS_SEC
323 select SYS_FSL_SEC_COMPAT_5
324 select SYS_FSL_SEC_BE
327 select ARCH_MISC_INIT
333 menu "Layerscape architecture"
334 depends on FSL_LSCH2 || FSL_LSCH3
336 config FSL_LAYERSCAPE
340 config HAS_FEATURE_GIC64K_ALIGN
342 default y if ARCH_LS1043A
344 config HAS_FEATURE_ENHANCED_MSI
346 default y if ARCH_LS1043A
348 menu "Layerscape PPA"
350 bool "FSL Layerscape PPA firmware support"
351 depends on !ARMV8_PSCI
352 select ARMV8_SEC_FIRMWARE_SUPPORT
353 select SEC_FIRMWARE_ARMV8_PSCI
354 select ARMV8_SEC_FIRMWARE_ERET_ADDR_REVERT if FSL_LSCH2
356 The FSL Primary Protected Application (PPA) is a software component
357 which is loaded during boot stage, and then remains resident in RAM
358 and runs in the TrustZone after boot.
361 config SPL_FSL_LS_PPA
362 bool "FSL Layerscape PPA firmware support for SPL build"
363 depends on !ARMV8_PSCI
364 select SPL_ARMV8_SEC_FIRMWARE_SUPPORT
365 select SEC_FIRMWARE_ARMV8_PSCI
366 select ARMV8_SEC_FIRMWARE_ERET_ADDR_REVERT if FSL_LSCH2
368 The FSL Primary Protected Application (PPA) is a software component
369 which is loaded during boot stage, and then remains resident in RAM
370 and runs in the TrustZone after boot. This is to load PPA during SPL
371 stage instead of the RAM version of U-Boot. Once PPA is initialized,
372 the rest of U-Boot (including RAM version) runs at EL2.
374 prompt "FSL Layerscape PPA firmware loading-media select"
375 depends on FSL_LS_PPA
376 default SYS_LS_PPA_FW_IN_MMC if SD_BOOT
377 default SYS_LS_PPA_FW_IN_NAND if NAND_BOOT
378 default SYS_LS_PPA_FW_IN_XIP
380 config SYS_LS_PPA_FW_IN_XIP
383 Say Y here if the PPA firmware locate at XIP flash, such
384 as NOR or QSPI flash.
386 config SYS_LS_PPA_FW_IN_MMC
387 bool "eMMC or SD Card"
389 Say Y here if the PPA firmware locate at eMMC/SD card.
391 config SYS_LS_PPA_FW_IN_NAND
394 Say Y here if the PPA firmware locate at NAND flash.
398 config LS_PPA_ESBC_HDR_SIZE
399 hex "Length of PPA ESBC header"
400 depends on FSL_LS_PPA && CHAIN_OF_TRUST && !SYS_LS_PPA_FW_IN_XIP
403 Length (in bytes) of PPA ESBC header to be copied from MMC/SD or
404 NAND to memory to validate PPA image.
408 config SYS_FSL_ERRATUM_A008997
409 bool "Workaround for USB PHY erratum A008997"
411 config SYS_FSL_ERRATUM_A009007
414 Workaround for USB PHY erratum A009007
416 config SYS_FSL_ERRATUM_A009008
417 bool "Workaround for USB PHY erratum A009008"
419 config SYS_FSL_ERRATUM_A009798
420 bool "Workaround for USB PHY erratum A009798"
422 config SYS_FSL_ERRATUM_A050204
423 bool "Workaround for USB PHY erratum A050204"
425 USB3.0 Receiver needs to enable fixed equalization
426 for each of PHY instances in an SOC. This is similar
427 to erratum A-009007, but this one is for LX2160A and LX2162A,
428 and the register value is different.
430 config SYS_FSL_ERRATUM_A010315
431 bool "Workaround for PCIe erratum A010315"
433 config SYS_FSL_ERRATUM_A010539
434 bool "Workaround for PIN MUX erratum A010539"
437 int "Maximum number of CPUs permitted for Layerscape"
438 default 2 if ARCH_LS1028A
439 default 4 if ARCH_LS1043A
440 default 4 if ARCH_LS1046A
441 default 16 if ARCH_LS2080A
442 default 8 if ARCH_LS1088A
443 default 16 if ARCH_LX2160A
444 default 16 if ARCH_LX2162A
447 Set this number to the maximum number of possible CPUs in the SoC.
448 SoCs may have multiple clusters with each cluster may have multiple
449 ports. If some ports are reserved but higher ports are used for
450 cores, count the reserved ports. This will allocate enough memory
451 in spin table to properly handle all cores.
454 bool "Fan controller"
456 Enable the EMC2305 fan controller for configuration of fan
462 Enable Freescale Secure Boot feature
465 bool "Init the QSPI AHB bus"
467 The default setting for QSPI AHB bus just support 3bytes addressing.
468 But some QSPI flash size up to 64MBytes, so initialize the QSPI AHB
469 bus for those flashes to support the full QSPI flash size.
471 config FSPI_AHB_EN_4BYTE
472 bool "Enable 4-byte Fast Read command for AHB mode"
474 The default setting for FlexSPI AHB bus just supports 3-byte addressing.
475 But some FlexSPI flash sizes are up to 64MBytes.
476 This flag enables fast read command for AHB mode and modifies required
477 LUT to support full FlexSPI flash.
479 config SYS_CCI400_OFFSET
480 hex "Offset for CCI400 base"
481 depends on SYS_FSL_HAS_CCI400
482 default 0x3090000 if ARCH_LS1088A || ARCH_LS1028A
483 default 0x180000 if FSL_LSCH2
485 Offset for CCI400 base
486 CCI400 base addr = CCSRBAR + CCI400_OFFSET
488 config SYS_FSL_IFC_BANK_COUNT
489 int "Maximum banks of Integrated flash controller"
490 depends on ARCH_LS1043A || ARCH_LS1046A || ARCH_LS2080A || ARCH_LS1088A
491 default 4 if ARCH_LS1043A
492 default 4 if ARCH_LS1046A
493 default 8 if ARCH_LS2080A || ARCH_LS1088A
495 config SYS_FSL_HAS_CCI400
498 config SYS_FSL_HAS_CCN504
501 config SYS_FSL_HAS_CCN508
504 config SYS_FSL_HAS_DP_DDR
507 Defines the SoC has DP-DDR used for DPAA.
511 depends on SYS_FSL_HAS_DP_DDR
512 default 2 if ARCH_LS2080A
514 config DP_DDR_NUM_CTRLS
516 depends on SYS_FSL_HAS_DP_DDR
517 default 1 if ARCH_LS2080A
519 config SYS_DP_DDR_BASE
521 depends on SYS_FSL_HAS_DP_DDR
522 default 0x6000000000 if ARCH_LS2080A
524 config SYS_DP_DDR_BASE_PHY
526 depends on SYS_FSL_HAS_DP_DDR
527 default 0 if ARCH_LS2080A
529 DDR controller uses this value as the base address for binding.
530 It is mapped to CONFIG_SYS_DP_DDR_BASE for core to access.
532 config SYS_FSL_SRDS_1
535 config SYS_FSL_SRDS_2
538 config SYS_NXP_SRDS_3
541 config SYS_HAS_SERDES
553 config FSL_TZPC_BP147
557 menu "Layerscape clock tree configuration"
558 depends on FSL_LSCH2 || FSL_LSCH3
560 config CLUSTER_CLK_FREQ
561 int "Reference clock of core cluster"
562 depends on ARCH_LS1012A
565 This number is the reference clock frequency of core PLL.
566 For most platforms, the core PLL and Platform PLL have the same
567 reference clock, but for some platforms, LS1012A for instance,
568 they are provided sepatately.
570 config SYS_FSL_PCLK_DIV
571 int "Platform clock divider"
572 default 1 if ARCH_LS1028A
573 default 1 if ARCH_LS1043A
574 default 1 if ARCH_LS1046A
575 default 1 if ARCH_LS1088A
578 This is the divider that is used to derive Platform clock from
579 Platform PLL, in another word:
580 Platform_clk = Platform_PLL_freq / this_divider
582 config SYS_FSL_DSPI_CLK_DIV
583 int "DSPI clock divider"
584 default 1 if ARCH_LS1043A
587 This is the divider that is used to derive DSPI clock from Platform
588 clock, in another word DSPI_clk = Platform_clk / this_divider.
590 config SYS_FSL_DUART_CLK_DIV
591 int "DUART clock divider"
592 default 1 if ARCH_LS1043A
593 default 4 if ARCH_LX2160A
594 default 4 if ARCH_LX2162A
597 This is the divider that is used to derive DUART clock from Platform
598 clock, in another word DUART_clk = Platform_clk / this_divider.
600 config SYS_FSL_I2C_CLK_DIV
601 int "I2C clock divider"
602 default 1 if ARCH_LS1043A
603 default 4 if ARCH_LS1012A
604 default 4 if ARCH_LS1028A
605 default 8 if ARCH_LX2160A
606 default 8 if ARCH_LX2162A
607 default 8 if ARCH_LS1088A
610 This is the divider that is used to derive I2C clock from Platform
611 clock, in another word I2C_clk = Platform_clk / this_divider.
613 config SYS_FSL_IFC_CLK_DIV
614 int "IFC clock divider"
615 default 1 if ARCH_LS1043A
616 default 4 if ARCH_LS1012A
617 default 4 if ARCH_LS1028A
618 default 8 if ARCH_LX2160A
619 default 8 if ARCH_LX2162A
620 default 8 if ARCH_LS1088A
623 This is the divider that is used to derive IFC clock from Platform
624 clock, in another word IFC_clk = Platform_clk / this_divider.
626 config SYS_FSL_LPUART_CLK_DIV
627 int "LPUART clock divider"
628 default 1 if ARCH_LS1043A
631 This is the divider that is used to derive LPUART clock from Platform
632 clock, in another word LPUART_clk = Platform_clk / this_divider.
634 config SYS_FSL_SDHC_CLK_DIV
635 int "SDHC clock divider"
636 default 1 if ARCH_LS1043A
637 default 1 if ARCH_LS1012A
640 This is the divider that is used to derive SDHC clock from Platform
641 clock, in another word SDHC_clk = Platform_clk / this_divider.
643 config SYS_FSL_QMAN_CLK_DIV
644 int "QMAN clock divider"
645 default 1 if ARCH_LS1043A
648 This is the divider that is used to derive QMAN clock from Platform
649 clock, in another word QMAN_clk = Platform_clk / this_divider.
655 Reserve memory from the top, tracked by gd->arch.resv_ram. This
656 reserved RAM can be used by special driver that resides in memory
657 after U-Boot exits. It's up to implementation to allocate and allow
658 access to this reserved memory. For example, the reserved RAM can
659 be at the high end of physical memory. The reserve RAM may be
660 excluded from memory bank(s) passed to OS, or marked as reserved.
665 Ethernet controller 1, this is connected to
666 MAC17 for LX2160A and LX2162A or to MAC3 for other SoCs
667 Provides DPAA2 capabilities
672 Ethernet controller 2, this is connected to
673 MAC18 for LX2160A and LX2162A or to MAC4 for other SoCs
674 Provides DPAA2 capabilities
676 config SYS_FSL_ERRATUM_A008336
679 config SYS_FSL_ERRATUM_A008514
682 config SYS_FSL_ERRATUM_A008585
685 config SYS_FSL_ERRATUM_A008850
688 config SYS_FSL_ERRATUM_A009203
691 config SYS_FSL_ERRATUM_A009635
694 config SYS_FSL_ERRATUM_A009660
697 config SYS_FSL_ERRATUM_A050382
700 config SYS_FSL_HAS_RGMII
702 depends on SYS_FSL_EC1 || SYS_FSL_EC2
704 config HAS_FSL_XHCI_USB
707 For some SoC (such as LS1043A and LS1046A), USB and QE-HDLC multiplex use
708 pins, select it when the pins are assigned to USB.
710 config SYS_FSL_BOOTROM_BASE
715 config SYS_FSL_BOOTROM_SIZE