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
29 select ESBC_HDR_LS if CHAIN_OF_TRUST
35 select SYS_FSL_HAS_CCI400
40 select SYS_FSL_DDR_VER_50
41 select SYS_FSL_HAS_DDR3
42 select SYS_FSL_HAS_DDR4
43 select SYS_FSL_HAS_SEC
44 select SYS_FSL_SEC_COMPAT_5
48 select ARCH_EARLY_INIT_R
49 select BOARD_EARLY_INIT_F
51 select SYS_FSL_ERRATUM_A008997
52 select SYS_FSL_ERRATUM_A009007
53 select SYS_FSL_ERRATUM_A008514 if !TFABOOT
54 select SYS_FSL_ERRATUM_A009663 if !TFABOOT
55 select SYS_FSL_ERRATUM_A009942 if !TFABOOT
56 select SYS_FSL_ERRATUM_A050382
57 select SYS_FSL_ERRATUM_A011334
58 select SYS_FSL_ESDHC_UNRELIABLE_PULSE_DETECTION_WORKAROUND
59 select RESV_RAM if GIC_V3_ITS
60 select SYS_HAS_ARMV8_SECURE_BASE
65 select ARMV8_SET_SMPEN
66 select ARM_ERRATA_855873 if !TFABOOT
67 select FSL_IFC if TFABOOT || (!QSPI_BOOT && !SD_BOOT_QSPI && !SD_BOOT)
71 select HAS_FSL_XHCI_USB if USB_HOST
72 select SKIP_LOWLEVEL_INIT
78 select SYS_FSL_DDR_VER_50
79 select SYS_FSL_ERRATUM_A008850 if !TFABOOT
80 select SYS_FSL_ERRATUM_A008997
81 select SYS_FSL_ERRATUM_A009008
82 select SYS_FSL_ERRATUM_A009660 if !TFABOOT
83 select SYS_FSL_ERRATUM_A009663 if !TFABOOT
84 select SYS_FSL_ERRATUM_A009798
85 select SYS_FSL_ERRATUM_A009942 if !TFABOOT
86 select SYS_FSL_ERRATUM_A010315 if PCIE_LAYERSCAPE
87 select SYS_FSL_ERRATUM_A010539
88 select SYS_FSL_HAS_DDR3
89 select SYS_FSL_HAS_DDR4
90 select SYS_FSL_QMAN_V3 if SYS_DPAA_QBMAN
91 select ARCH_EARLY_INIT_R
92 select BOARD_EARLY_INIT_F
94 select SYS_I2C_MXC_I2C1 if !DM_I2C
95 select SYS_I2C_MXC_I2C2 if !DM_I2C
96 select SYS_I2C_MXC_I2C3 if !DM_I2C
97 select SYS_I2C_MXC_I2C4 if !DM_I2C
98 select SYS_HAS_ARMV8_SECURE_BASE
104 select ARMV8_SET_SMPEN
105 select FSL_IFC if TFABOOT || (!QSPI_BOOT && !SD_BOOT_QSPI && !SD_BOOT)
106 select FSL_LAYERSCAPE
109 select HAS_FSL_XHCI_USB if USB_HOST
110 select SKIP_LOWLEVEL_INIT
112 select SYS_FSL_SRDS_1
113 select SYS_HAS_SERDES
115 select SYS_FSL_DDR_BE
116 select SYS_FSL_DDR_VER_50
117 select SYS_FSL_ERRATUM_A008336 if !TFABOOT
118 select SYS_FSL_ERRATUM_A008511 if !TFABOOT
119 select SYS_FSL_ERRATUM_A008850 if !TFABOOT
120 select SYS_FSL_ERRATUM_A008997
121 select SYS_FSL_ERRATUM_A009008
122 select SYS_FSL_ERRATUM_A009798
123 select SYS_FSL_ERRATUM_A009801
124 select SYS_FSL_ERRATUM_A009803 if !TFABOOT
125 select SYS_FSL_ERRATUM_A009942 if !TFABOOT
126 select SYS_FSL_ERRATUM_A010165 if !TFABOOT
127 select SYS_FSL_ERRATUM_A010539
128 select SYS_FSL_HAS_DDR4
129 select SYS_FSL_SRDS_2
130 select SYS_FSL_QMAN_V3 if SYS_DPAA_QBMAN
131 select ARCH_EARLY_INIT_R
132 select BOARD_EARLY_INIT_F
134 select SYS_I2C_MXC_I2C1 if !DM_I2C
135 select SYS_I2C_MXC_I2C2 if !DM_I2C
136 select SYS_I2C_MXC_I2C3 if !DM_I2C
137 select SYS_I2C_MXC_I2C4 if !DM_I2C
141 imply SPL_SYS_I2C_LEGACY
145 select ARMV8_SET_SMPEN
146 select ARM_ERRATA_855873 if !TFABOOT
147 select ESBC_HDR_LS if CHAIN_OF_TRUST
149 select FSL_LAYERSCAPE
152 select SKIP_LOWLEVEL_INIT
153 select SYS_FSL_SRDS_1
154 select SYS_HAS_SERDES
156 select SYS_FSL_DDR_LE
157 select SYS_FSL_DDR_VER_50
160 select SYS_FSL_ERRATUM_A009803 if !TFABOOT
161 select SYS_FSL_ERRATUM_A009942 if !TFABOOT
162 select SYS_FSL_ERRATUM_A010165 if !TFABOOT
163 select SYS_FSL_ERRATUM_A008511 if !TFABOOT
164 select SYS_FSL_ERRATUM_A008850 if !TFABOOT
165 select SYS_FSL_ERRATUM_A009007
166 select SYS_FSL_HAS_CCI400
167 select SYS_FSL_HAS_DDR4
168 select SYS_FSL_HAS_RGMII
169 select SYS_FSL_HAS_SEC
170 select SYS_FSL_SEC_COMPAT_5
171 select SYS_FSL_SEC_LE
172 select SYS_FSL_SRDS_1
173 select SYS_FSL_SRDS_2
176 select FSL_TZPC_BP147
177 select ARCH_EARLY_INIT_R
178 select BOARD_EARLY_INIT_F
180 select SYS_I2C_MXC_I2C1 if !TFABOOT
181 select SYS_I2C_MXC_I2C2 if !TFABOOT
182 select SYS_I2C_MXC_I2C3 if !TFABOOT
183 select SYS_I2C_MXC_I2C4 if !TFABOOT
184 select RESV_RAM if GIC_V3_ITS
187 imply SPL_SYS_I2C_LEGACY
192 select ARMV8_SET_SMPEN
193 select ARM_ERRATA_826974
194 select ARM_ERRATA_828024
195 select ARM_ERRATA_829520
196 select ARM_ERRATA_833471
197 select ESBC_HDR_LS if CHAIN_OF_TRUST
199 select FSL_LAYERSCAPE
201 select SYS_FSL_OTHER_DDR_NUM_CTRLS
203 select SKIP_LOWLEVEL_INIT
204 select SYS_FSL_SRDS_1
205 select SYS_HAS_SERDES
207 select SYS_FSL_DDR_LE
208 select SYS_FSL_DDR_VER_50
209 select SYS_FSL_HAS_CCN504
210 select SYS_FSL_HAS_DP_DDR
211 select SYS_FSL_HAS_SEC
212 select SYS_FSL_HAS_DDR4
213 select SYS_FSL_SEC_COMPAT_5
214 select SYS_FSL_SEC_LE
215 select SYS_FSL_SRDS_2
219 select FSL_TZPC_BP147
220 select SYS_FSL_ERRATUM_A008336 if !TFABOOT
221 select SYS_FSL_ERRATUM_A008511 if !TFABOOT
222 select SYS_FSL_ERRATUM_A008514 if !TFABOOT
223 select SYS_FSL_ERRATUM_A008585
224 select SYS_FSL_ERRATUM_A008997
225 select SYS_FSL_ERRATUM_A009007
226 select SYS_FSL_ERRATUM_A009008
227 select SYS_FSL_ERRATUM_A009635
228 select SYS_FSL_ERRATUM_A009663 if !TFABOOT
229 select SYS_FSL_ERRATUM_A009798
230 select SYS_FSL_ERRATUM_A009801
231 select SYS_FSL_ERRATUM_A009803 if !TFABOOT
232 select SYS_FSL_ERRATUM_A009942 if !TFABOOT
233 select SYS_FSL_ERRATUM_A010165 if !TFABOOT
234 select SYS_FSL_ERRATUM_A009203
235 select ARCH_EARLY_INIT_R
236 select BOARD_EARLY_INIT_F
238 select SYS_I2C_MXC_I2C1 if !TFABOOT
239 select SYS_I2C_MXC_I2C2 if !TFABOOT
240 select SYS_I2C_MXC_I2C3 if !TFABOOT
241 select SYS_I2C_MXC_I2C4 if !TFABOOT
242 select RESV_RAM if GIC_V3_ITS
243 imply DISTRO_DEFAULTS
246 imply SPL_SYS_I2C_LEGACY
250 select ARMV8_SET_SMPEN
251 select ESBC_HDR_LS if CHAIN_OF_TRUST
253 select FSL_DDR_INTERACTIVE
254 select FSL_LAYERSCAPE
256 select FSL_TZPC_BP147
259 select SYS_HAS_SERDES
260 select SYS_FSL_SRDS_1
261 select SYS_FSL_SRDS_2
263 select SYS_FSL_DDR_LE
264 select SYS_FSL_DDR_VER_50
267 select SYS_FSL_ERRATUM_A050204
268 select SYS_FSL_ERRATUM_A011334
269 select SYS_FSL_ESDHC_UNRELIABLE_PULSE_DETECTION_WORKAROUND
270 select SYS_FSL_HAS_RGMII
271 select SYS_FSL_HAS_SEC
272 select SYS_FSL_HAS_CCN508
273 select SYS_FSL_HAS_DDR4
274 select SYS_FSL_SEC_COMPAT_5
275 select SYS_FSL_SEC_LE
276 select SYS_PCI_64BIT if PCI
277 select ARCH_EARLY_INIT_R
278 select BOARD_EARLY_INIT_F
280 select RESV_RAM if GIC_V3_ITS
281 imply DISTRO_DEFAULTS
285 imply SPL_SYS_I2C_LEGACY
289 select ARMV8_SET_SMPEN
290 select ESBC_HDR_LS if CHAIN_OF_TRUST
292 select FSL_DDR_INTERACTIVE
293 select FSL_LAYERSCAPE
295 select FSL_TZPC_BP147
297 select HAS_FSL_XHCI_USB if USB_HOST
299 select SYS_HAS_SERDES
300 select SYS_FSL_SRDS_1
301 select SYS_FSL_SRDS_2
302 select SYS_NXP_SRDS_3
304 select SYS_FSL_DDR_LE
305 select SYS_FSL_DDR_VER_50
308 select SYS_FSL_ERRATUM_A050204
309 select SYS_FSL_ERRATUM_A011334
310 select SYS_FSL_ESDHC_UNRELIABLE_PULSE_DETECTION_WORKAROUND
311 select SYS_FSL_HAS_RGMII
312 select SYS_FSL_HAS_SEC
313 select SYS_FSL_HAS_CCN508
314 select SYS_FSL_HAS_DDR4
315 select SYS_FSL_SEC_COMPAT_5
316 select SYS_FSL_SEC_LE
317 select SYS_PCI_64BIT if PCI
318 select ARCH_EARLY_INIT_R
319 select BOARD_EARLY_INIT_F
321 select RESV_RAM if GIC_V3_ITS
322 imply DISTRO_DEFAULTS
327 imply SPL_SYS_I2C_LEGACY
331 select SKIP_LOWLEVEL_INIT
332 select SYS_FSL_CCSR_GUR_BE
333 select SYS_FSL_CCSR_SCFG_BE
334 select SYS_FSL_ESDHC_BE
335 select SYS_FSL_IFC_BE
336 select SYS_FSL_PEX_LUT_BE
337 select SYS_FSL_HAS_CCI400
338 select SYS_FSL_HAS_SEC
339 select SYS_FSL_SEC_COMPAT_5
340 select SYS_FSL_SEC_BE
343 select ARCH_MISC_INIT
344 select SYS_FSL_CCSR_GUR_LE
345 select SYS_FSL_CCSR_SCFG_LE
346 select SYS_FSL_ESDHC_LE
347 select SYS_FSL_IFC_LE
348 select SYS_FSL_PEX_LUT_LE
354 config SYS_FSL_CCSR_GUR_BE
357 config SYS_FSL_CCSR_SCFG_BE
360 config SYS_FSL_PEX_LUT_BE
363 config SYS_FSL_CCSR_GUR_LE
366 config SYS_FSL_CCSR_SCFG_LE
369 config SYS_FSL_ESDHC_LE
372 config SYS_FSL_IFC_LE
375 config SYS_FSL_PEX_LUT_LE
378 menu "Layerscape architecture"
379 depends on FSL_LSCH2 || FSL_LSCH3
381 config FSL_LAYERSCAPE
385 config HAS_FEATURE_GIC64K_ALIGN
387 default y if ARCH_LS1043A
389 config HAS_FEATURE_ENHANCED_MSI
391 default y if ARCH_LS1043A
393 menu "Layerscape PPA"
395 bool "FSL Layerscape PPA firmware support"
396 depends on !ARMV8_PSCI
397 select ARMV8_SEC_FIRMWARE_SUPPORT
398 select SEC_FIRMWARE_ARMV8_PSCI
399 select ARMV8_SEC_FIRMWARE_ERET_ADDR_REVERT if FSL_LSCH2
401 The FSL Primary Protected Application (PPA) is a software component
402 which is loaded during boot stage, and then remains resident in RAM
403 and runs in the TrustZone after boot.
406 config SPL_FSL_LS_PPA
407 bool "FSL Layerscape PPA firmware support for SPL build"
408 depends on !ARMV8_PSCI
409 select SPL_ARMV8_SEC_FIRMWARE_SUPPORT
410 select SEC_FIRMWARE_ARMV8_PSCI
411 select ARMV8_SEC_FIRMWARE_ERET_ADDR_REVERT if FSL_LSCH2
413 The FSL Primary Protected Application (PPA) is a software component
414 which is loaded during boot stage, and then remains resident in RAM
415 and runs in the TrustZone after boot. This is to load PPA during SPL
416 stage instead of the RAM version of U-Boot. Once PPA is initialized,
417 the rest of U-Boot (including RAM version) runs at EL2.
419 prompt "FSL Layerscape PPA firmware loading-media select"
420 depends on FSL_LS_PPA
421 default SYS_LS_PPA_FW_IN_MMC if SD_BOOT
422 default SYS_LS_PPA_FW_IN_NAND if NAND_BOOT
423 default SYS_LS_PPA_FW_IN_XIP
425 config SYS_LS_PPA_FW_IN_XIP
428 Say Y here if the PPA firmware locate at XIP flash, such
429 as NOR or QSPI flash.
431 config SYS_LS_PPA_FW_IN_MMC
432 bool "eMMC or SD Card"
434 Say Y here if the PPA firmware locate at eMMC/SD card.
436 config SYS_LS_PPA_FW_IN_NAND
439 Say Y here if the PPA firmware locate at NAND flash.
443 config LS_PPA_ESBC_HDR_SIZE
444 hex "Length of PPA ESBC header"
445 depends on FSL_LS_PPA && CHAIN_OF_TRUST && !SYS_LS_PPA_FW_IN_XIP
448 Length (in bytes) of PPA ESBC header to be copied from MMC/SD or
449 NAND to memory to validate PPA image.
453 config SYS_FSL_ERRATUM_A008997
454 bool "Workaround for USB PHY erratum A008997"
456 config SYS_FSL_ERRATUM_A009007
459 Workaround for USB PHY erratum A009007
461 config SYS_FSL_ERRATUM_A009008
462 bool "Workaround for USB PHY erratum A009008"
464 config SYS_FSL_ERRATUM_A009798
465 bool "Workaround for USB PHY erratum A009798"
467 config SYS_FSL_ERRATUM_A050204
468 bool "Workaround for USB PHY erratum A050204"
470 USB3.0 Receiver needs to enable fixed equalization
471 for each of PHY instances in an SOC. This is similar
472 to erratum A-009007, but this one is for LX2160A and LX2162A,
473 and the register value is different.
475 config SYS_FSL_ERRATUM_A010315
476 bool "Workaround for PCIe erratum A010315"
478 config SYS_FSL_ERRATUM_A010539
479 bool "Workaround for PIN MUX erratum A010539"
482 int "Maximum number of CPUs permitted for Layerscape"
483 default 2 if ARCH_LS1028A
484 default 4 if ARCH_LS1043A
485 default 4 if ARCH_LS1046A
486 default 16 if ARCH_LS2080A
487 default 8 if ARCH_LS1088A
488 default 16 if ARCH_LX2160A
489 default 16 if ARCH_LX2162A
492 Set this number to the maximum number of possible CPUs in the SoC.
493 SoCs may have multiple clusters with each cluster may have multiple
494 ports. If some ports are reserved but higher ports are used for
495 cores, count the reserved ports. This will allocate enough memory
496 in spin table to properly handle all cores.
499 bool "Fan controller"
501 Enable the EMC2305 fan controller for configuration of fan
505 bool "Init the QSPI AHB bus"
507 The default setting for QSPI AHB bus just support 3bytes addressing.
508 But some QSPI flash size up to 64MBytes, so initialize the QSPI AHB
509 bus for those flashes to support the full QSPI flash size.
511 config FSPI_AHB_EN_4BYTE
512 bool "Enable 4-byte Fast Read command for AHB mode"
514 The default setting for FlexSPI AHB bus just supports 3-byte addressing.
515 But some FlexSPI flash sizes are up to 64MBytes.
516 This flag enables fast read command for AHB mode and modifies required
517 LUT to support full FlexSPI flash.
519 config SYS_CCI400_OFFSET
520 hex "Offset for CCI400 base"
521 depends on SYS_FSL_HAS_CCI400
522 default 0x3090000 if ARCH_LS1088A || ARCH_LS1028A
523 default 0x180000 if FSL_LSCH2
525 Offset for CCI400 base
526 CCI400 base addr = CCSRBAR + CCI400_OFFSET
528 config SYS_FSL_HAS_CCI400
531 config SYS_FSL_HAS_CCN504
534 config SYS_FSL_HAS_CCN508
537 config SYS_FSL_HAS_DP_DDR
540 Defines the SoC has DP-DDR used for DPAA.
544 depends on SYS_FSL_HAS_DP_DDR
545 default 2 if ARCH_LS2080A
547 config DP_DDR_DIMM_SLOTS_PER_CTLR
549 depends on SYS_FSL_HAS_DP_DDR
550 default 1 if ARCH_LS2080A
552 config DP_DDR_NUM_CTRLS
554 depends on SYS_FSL_HAS_DP_DDR
555 default 1 if ARCH_LS2080A
557 config SYS_DP_DDR_BASE
559 depends on SYS_FSL_HAS_DP_DDR
560 default 0x6000000000 if ARCH_LS2080A
562 config SYS_DP_DDR_BASE_PHY
564 depends on SYS_FSL_HAS_DP_DDR
565 default 0 if ARCH_LS2080A
567 DDR controller uses this value as the base address for binding.
568 It is mapped to CONFIG_SYS_DP_DDR_BASE for core to access.
570 config SYS_NXP_SRDS_3
582 config FSL_TZPC_BP147
586 menu "Layerscape clock tree configuration"
587 depends on FSL_LSCH2 || FSL_LSCH3
589 config CLUSTER_CLK_FREQ
590 int "Reference clock of core cluster"
591 depends on ARCH_LS1012A
594 This number is the reference clock frequency of core PLL.
595 For most platforms, the core PLL and Platform PLL have the same
596 reference clock, but for some platforms, LS1012A for instance,
597 they are provided sepatately.
599 config SYS_FSL_PCLK_DIV
600 int "Platform clock divider"
601 default 1 if ARCH_LS1028A
602 default 1 if ARCH_LS1043A
603 default 1 if ARCH_LS1046A
604 default 1 if ARCH_LS1088A
607 This is the divider that is used to derive Platform clock from
608 Platform PLL, in another word:
609 Platform_clk = Platform_PLL_freq / this_divider
611 config SYS_FSL_DSPI_CLK_DIV
612 int "DSPI clock divider"
613 default 1 if ARCH_LS1043A
616 This is the divider that is used to derive DSPI clock from Platform
617 clock, in another word DSPI_clk = Platform_clk / this_divider.
619 config SYS_FSL_DUART_CLK_DIV
620 int "DUART clock divider"
621 default 1 if ARCH_LS1043A
622 default 4 if ARCH_LX2160A
623 default 4 if ARCH_LX2162A
626 This is the divider that is used to derive DUART clock from Platform
627 clock, in another word DUART_clk = Platform_clk / this_divider.
629 config SYS_FSL_I2C_CLK_DIV
630 int "I2C clock divider"
631 default 1 if ARCH_LS1043A
632 default 4 if ARCH_LS1012A
633 default 4 if ARCH_LS1028A
634 default 8 if ARCH_LX2160A
635 default 8 if ARCH_LX2162A
636 default 8 if ARCH_LS1088A
639 This is the divider that is used to derive I2C clock from Platform
640 clock, in another word I2C_clk = Platform_clk / this_divider.
642 config SYS_FSL_IFC_CLK_DIV
643 int "IFC clock divider"
644 default 1 if ARCH_LS1043A
645 default 4 if ARCH_LS1012A
646 default 4 if ARCH_LS1028A
647 default 8 if ARCH_LX2160A
648 default 8 if ARCH_LX2162A
649 default 8 if ARCH_LS1088A
652 This is the divider that is used to derive IFC clock from Platform
653 clock, in another word IFC_clk = Platform_clk / this_divider.
655 config SYS_FSL_LPUART_CLK_DIV
656 int "LPUART clock divider"
657 default 1 if ARCH_LS1043A
660 This is the divider that is used to derive LPUART clock from Platform
661 clock, in another word LPUART_clk = Platform_clk / this_divider.
663 config SYS_FSL_SDHC_CLK_DIV
664 int "SDHC clock divider"
665 default 1 if ARCH_LS1043A
666 default 1 if ARCH_LS1012A
669 This is the divider that is used to derive SDHC clock from Platform
670 clock, in another word SDHC_clk = Platform_clk / this_divider.
672 config SYS_FSL_QMAN_CLK_DIV
673 int "QMAN clock divider"
674 default 1 if ARCH_LS1043A
677 This is the divider that is used to derive QMAN clock from Platform
678 clock, in another word QMAN_clk = Platform_clk / this_divider.
684 Reserve memory from the top, tracked by gd->arch.resv_ram. This
685 reserved RAM can be used by special driver that resides in memory
686 after U-Boot exits. It's up to implementation to allocate and allow
687 access to this reserved memory. For example, the reserved RAM can
688 be at the high end of physical memory. The reserve RAM may be
689 excluded from memory bank(s) passed to OS, or marked as reserved.
694 Ethernet controller 1, this is connected to
695 MAC17 for LX2160A and LX2162A or to MAC3 for other SoCs
696 Provides DPAA2 capabilities
701 Ethernet controller 2, this is connected to
702 MAC18 for LX2160A and LX2162A or to MAC4 for other SoCs
703 Provides DPAA2 capabilities
705 config SYS_FSL_ERRATUM_A008336
708 config SYS_FSL_ERRATUM_A008514
711 config SYS_FSL_ERRATUM_A008585
714 config SYS_FSL_ERRATUM_A008850
717 config SYS_FSL_ERRATUM_A009203
720 config SYS_FSL_ERRATUM_A009635
723 config SYS_FSL_ERRATUM_A009660
726 config SYS_FSL_ERRATUM_A050382
729 config SYS_FSL_HAS_RGMII
731 depends on SYS_FSL_EC1 || SYS_FSL_EC2
733 config HAS_FSL_XHCI_USB
736 For some SoC (such as LS1043A and LS1046A), USB and QE-HDLC multiplex use
737 pins, select it when the pins are assigned to USB.
739 config SYS_FSL_BOOTROM_BASE
744 config SYS_FSL_BOOTROM_SIZE