1config ARCH_LS1012A 2 bool 3 select ARMV8_SET_SMPEN 4 select ARM_ERRATA_855873 if !TFABOOT 5 select FSL_LAYERSCAPE 6 select FSL_LSCH2 7 select SYS_FSL_SRDS_1 8 select SYS_HAS_SERDES 9 select SYS_FSL_DDR_BE 10 select SYS_FSL_MMDC 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 18 select SYS_I2C_MXC 19 select SYS_I2C_MXC_I2C1 20 select SYS_I2C_MXC_I2C2 21 imply PANIC_HANG 22 23config ARCH_LS1028A 24 bool 25 select ARMV8_SET_SMPEN 26 select FSL_LSCH3 27 select NXP_LSCH3_2 28 select SYS_FSL_HAS_CCI400 29 select SYS_FSL_SRDS_1 30 select SYS_HAS_SERDES 31 select SYS_FSL_DDR 32 select SYS_FSL_DDR_LE 33 select SYS_FSL_DDR_VER_50 34 select SYS_FSL_HAS_DDR3 35 select SYS_FSL_HAS_DDR4 36 select SYS_FSL_HAS_SEC 37 select SYS_FSL_SEC_COMPAT_5 38 select SYS_FSL_SEC_LE 39 select FSL_TZASC_1 40 select ARCH_EARLY_INIT_R 41 select BOARD_EARLY_INIT_F 42 select SYS_I2C_MXC 43 select SYS_FSL_ERRATUM_A008997 44 select SYS_FSL_ERRATUM_A009007 45 select SYS_FSL_ERRATUM_A008514 if !TFABOOT 46 select SYS_FSL_ERRATUM_A009663 if !TFABOOT 47 select SYS_FSL_ERRATUM_A009942 if !TFABOOT 48 select SYS_FSL_ERRATUM_A050382 49 imply PANIC_HANG 50 51config ARCH_LS1043A 52 bool 53 select ARMV8_SET_SMPEN 54 select ARM_ERRATA_855873 if !TFABOOT 55 select FSL_LAYERSCAPE 56 select FSL_LSCH2 57 select SYS_FSL_SRDS_1 58 select SYS_HAS_SERDES 59 select SYS_FSL_DDR 60 select SYS_FSL_DDR_BE 61 select SYS_FSL_DDR_VER_50 62 select SYS_FSL_ERRATUM_A008850 if !TFABOOT 63 select SYS_FSL_ERRATUM_A008997 64 select SYS_FSL_ERRATUM_A009007 65 select SYS_FSL_ERRATUM_A009008 66 select SYS_FSL_ERRATUM_A009660 if !TFABOOT 67 select SYS_FSL_ERRATUM_A009663 if !TFABOOT 68 select SYS_FSL_ERRATUM_A009798 69 select SYS_FSL_ERRATUM_A009929 70 select SYS_FSL_ERRATUM_A009942 if !TFABOOT 71 select SYS_FSL_ERRATUM_A010315 72 select SYS_FSL_ERRATUM_A010539 73 select SYS_FSL_HAS_DDR3 74 select SYS_FSL_HAS_DDR4 75 select ARCH_EARLY_INIT_R 76 select BOARD_EARLY_INIT_F 77 select SYS_I2C_MXC 78 select SYS_I2C_MXC_I2C1 79 select SYS_I2C_MXC_I2C2 80 select SYS_I2C_MXC_I2C3 81 select SYS_I2C_MXC_I2C4 82 imply CMD_PCI 83 84config ARCH_LS1046A 85 bool 86 select ARMV8_SET_SMPEN 87 select FSL_LAYERSCAPE 88 select FSL_LSCH2 89 select SYS_FSL_SRDS_1 90 select SYS_HAS_SERDES 91 select SYS_FSL_DDR 92 select SYS_FSL_DDR_BE 93 select SYS_FSL_DDR_VER_50 94 select SYS_FSL_ERRATUM_A008336 if !TFABOOT 95 select SYS_FSL_ERRATUM_A008511 if !TFABOOT 96 select SYS_FSL_ERRATUM_A008850 if !TFABOOT 97 select SYS_FSL_ERRATUM_A008997 98 select SYS_FSL_ERRATUM_A009007 99 select SYS_FSL_ERRATUM_A009008 100 select SYS_FSL_ERRATUM_A009798 101 select SYS_FSL_ERRATUM_A009801 102 select SYS_FSL_ERRATUM_A009803 if !TFABOOT 103 select SYS_FSL_ERRATUM_A009942 if !TFABOOT 104 select SYS_FSL_ERRATUM_A010165 if !TFABOOT 105 select SYS_FSL_ERRATUM_A010539 106 select SYS_FSL_HAS_DDR4 107 select SYS_FSL_SRDS_2 108 select ARCH_EARLY_INIT_R 109 select BOARD_EARLY_INIT_F 110 select SYS_I2C_MXC 111 select SYS_I2C_MXC_I2C1 112 select SYS_I2C_MXC_I2C2 113 select SYS_I2C_MXC_I2C3 114 select SYS_I2C_MXC_I2C4 115 imply SCSI 116 imply SCSI_AHCI 117 118config ARCH_LS1088A 119 bool 120 select ARMV8_SET_SMPEN 121 select ARM_ERRATA_855873 if !TFABOOT 122 select FSL_LAYERSCAPE 123 select FSL_LSCH3 124 select SYS_FSL_SRDS_1 125 select SYS_HAS_SERDES 126 select SYS_FSL_DDR 127 select SYS_FSL_DDR_LE 128 select SYS_FSL_DDR_VER_50 129 select SYS_FSL_EC1 130 select SYS_FSL_EC2 131 select SYS_FSL_ERRATUM_A009803 if !TFABOOT 132 select SYS_FSL_ERRATUM_A009942 if !TFABOOT 133 select SYS_FSL_ERRATUM_A010165 if !TFABOOT 134 select SYS_FSL_ERRATUM_A008511 if !TFABOOT 135 select SYS_FSL_ERRATUM_A008850 if !TFABOOT 136 select SYS_FSL_ERRATUM_A009007 137 select SYS_FSL_HAS_CCI400 138 select SYS_FSL_HAS_DDR4 139 select SYS_FSL_HAS_RGMII 140 select SYS_FSL_HAS_SEC 141 select SYS_FSL_SEC_COMPAT_5 142 select SYS_FSL_SEC_LE 143 select SYS_FSL_SRDS_1 144 select SYS_FSL_SRDS_2 145 select FSL_TZASC_1 146 select FSL_TZASC_400 147 select FSL_TZPC_BP147 148 select ARCH_EARLY_INIT_R 149 select BOARD_EARLY_INIT_F 150 select SYS_I2C_MXC 151 select SYS_I2C_MXC_I2C1 if !TFABOOT 152 select SYS_I2C_MXC_I2C2 if !TFABOOT 153 select SYS_I2C_MXC_I2C3 if !TFABOOT 154 select SYS_I2C_MXC_I2C4 if !TFABOOT 155 imply SCSI 156 imply PANIC_HANG 157 158config ARCH_LS2080A 159 bool 160 select ARMV8_SET_SMPEN 161 select ARM_ERRATA_826974 162 select ARM_ERRATA_828024 163 select ARM_ERRATA_829520 164 select ARM_ERRATA_833471 165 select FSL_LAYERSCAPE 166 select FSL_LSCH3 167 select SYS_FSL_SRDS_1 168 select SYS_HAS_SERDES 169 select SYS_FSL_DDR 170 select SYS_FSL_DDR_LE 171 select SYS_FSL_DDR_VER_50 172 select SYS_FSL_HAS_CCN504 173 select SYS_FSL_HAS_DP_DDR 174 select SYS_FSL_HAS_SEC 175 select SYS_FSL_HAS_DDR4 176 select SYS_FSL_SEC_COMPAT_5 177 select SYS_FSL_SEC_LE 178 select SYS_FSL_SRDS_2 179 select FSL_TZASC_1 180 select FSL_TZASC_2 181 select FSL_TZASC_400 182 select FSL_TZPC_BP147 183 select SYS_FSL_ERRATUM_A008336 if !TFABOOT 184 select SYS_FSL_ERRATUM_A008511 if !TFABOOT 185 select SYS_FSL_ERRATUM_A008514 if !TFABOOT 186 select SYS_FSL_ERRATUM_A008585 187 select SYS_FSL_ERRATUM_A008997 188 select SYS_FSL_ERRATUM_A009007 189 select SYS_FSL_ERRATUM_A009008 190 select SYS_FSL_ERRATUM_A009635 191 select SYS_FSL_ERRATUM_A009663 if !TFABOOT 192 select SYS_FSL_ERRATUM_A009798 193 select SYS_FSL_ERRATUM_A009801 194 select SYS_FSL_ERRATUM_A009803 if !TFABOOT 195 select SYS_FSL_ERRATUM_A009942 if !TFABOOT 196 select SYS_FSL_ERRATUM_A010165 if !TFABOOT 197 select SYS_FSL_ERRATUM_A009203 198 select ARCH_EARLY_INIT_R 199 select BOARD_EARLY_INIT_F 200 select SYS_I2C_MXC 201 select SYS_I2C_MXC_I2C1 if !TFABOOT 202 select SYS_I2C_MXC_I2C2 if !TFABOOT 203 select SYS_I2C_MXC_I2C3 if !TFABOOT 204 select SYS_I2C_MXC_I2C4 if !TFABOOT 205 imply DISTRO_DEFAULTS 206 imply PANIC_HANG 207 208config ARCH_LX2160A 209 bool 210 select ARMV8_SET_SMPEN 211 select FSL_LSCH3 212 select NXP_LSCH3_2 213 select SYS_HAS_SERDES 214 select SYS_FSL_SRDS_1 215 select SYS_FSL_SRDS_2 216 select SYS_NXP_SRDS_3 217 select SYS_FSL_DDR 218 select SYS_FSL_DDR_LE 219 select SYS_FSL_DDR_VER_50 220 select SYS_FSL_EC1 221 select SYS_FSL_EC2 222 select SYS_FSL_HAS_RGMII 223 select SYS_FSL_HAS_SEC 224 select SYS_FSL_HAS_CCN508 225 select SYS_FSL_HAS_DDR4 226 select SYS_FSL_SEC_COMPAT_5 227 select SYS_FSL_SEC_LE 228 select ARCH_EARLY_INIT_R 229 select BOARD_EARLY_INIT_F 230 select SYS_I2C_MXC 231 imply DISTRO_DEFAULTS 232 imply PANIC_HANG 233 imply SCSI 234 imply SCSI_AHCI 235 236config FSL_LSCH2 237 bool 238 select SYS_FSL_HAS_CCI400 239 select SYS_FSL_HAS_SEC 240 select SYS_FSL_SEC_COMPAT_5 241 select SYS_FSL_SEC_BE 242 243config FSL_LSCH3 244 bool 245 246config NXP_LSCH3_2 247 bool 248 249menu "Layerscape architecture" 250 depends on FSL_LSCH2 || FSL_LSCH3 251 252config FSL_LAYERSCAPE 253 bool 254 255config FSL_PCIE_COMPAT 256 string "PCIe compatible of Kernel DT" 257 depends on PCIE_LAYERSCAPE || PCIE_LAYERSCAPE_GEN4 258 default "fsl,ls1012a-pcie" if ARCH_LS1012A 259 default "fsl,ls1028a-pcie" if ARCH_LS1028A 260 default "fsl,ls1043a-pcie" if ARCH_LS1043A 261 default "fsl,ls1046a-pcie" if ARCH_LS1046A 262 default "fsl,ls2080a-pcie" if ARCH_LS2080A 263 default "fsl,ls1088a-pcie" if ARCH_LS1088A 264 default "fsl,lx2160a-pcie" if ARCH_LX2160A 265 help 266 This compatible is used to find pci controller node in Kernel DT 267 to complete fixup. 268 269config HAS_FEATURE_GIC64K_ALIGN 270 bool 271 default y if ARCH_LS1043A 272 273config HAS_FEATURE_ENHANCED_MSI 274 bool 275 default y if ARCH_LS1043A 276 277menu "Layerscape PPA" 278config FSL_LS_PPA 279 bool "FSL Layerscape PPA firmware support" 280 depends on !ARMV8_PSCI 281 select ARMV8_SEC_FIRMWARE_SUPPORT 282 select SEC_FIRMWARE_ARMV8_PSCI 283 select ARMV8_SEC_FIRMWARE_ERET_ADDR_REVERT if FSL_LSCH2 284 help 285 The FSL Primary Protected Application (PPA) is a software component 286 which is loaded during boot stage, and then remains resident in RAM 287 and runs in the TrustZone after boot. 288 Say y to enable it. 289 290config SPL_FSL_LS_PPA 291 bool "FSL Layerscape PPA firmware support for SPL build" 292 depends on !ARMV8_PSCI 293 select SPL_ARMV8_SEC_FIRMWARE_SUPPORT 294 select SEC_FIRMWARE_ARMV8_PSCI 295 select ARMV8_SEC_FIRMWARE_ERET_ADDR_REVERT if FSL_LSCH2 296 help 297 The FSL Primary Protected Application (PPA) is a software component 298 which is loaded during boot stage, and then remains resident in RAM 299 and runs in the TrustZone after boot. This is to load PPA during SPL 300 stage instead of the RAM version of U-Boot. Once PPA is initialized, 301 the rest of U-Boot (including RAM version) runs at EL2. 302choice 303 prompt "FSL Layerscape PPA firmware loading-media select" 304 depends on FSL_LS_PPA 305 default SYS_LS_PPA_FW_IN_MMC if SD_BOOT 306 default SYS_LS_PPA_FW_IN_NAND if NAND_BOOT 307 default SYS_LS_PPA_FW_IN_XIP 308 309config SYS_LS_PPA_FW_IN_XIP 310 bool "XIP" 311 help 312 Say Y here if the PPA firmware locate at XIP flash, such 313 as NOR or QSPI flash. 314 315config SYS_LS_PPA_FW_IN_MMC 316 bool "eMMC or SD Card" 317 help 318 Say Y here if the PPA firmware locate at eMMC/SD card. 319 320config SYS_LS_PPA_FW_IN_NAND 321 bool "NAND" 322 help 323 Say Y here if the PPA firmware locate at NAND flash. 324 325endchoice 326 327config LS_PPA_ESBC_HDR_SIZE 328 hex "Length of PPA ESBC header" 329 depends on FSL_LS_PPA && CHAIN_OF_TRUST && !SYS_LS_PPA_FW_IN_XIP 330 default 0x2000 331 help 332 Length (in bytes) of PPA ESBC header to be copied from MMC/SD or 333 NAND to memory to validate PPA image. 334 335endmenu 336 337config SYS_FSL_ERRATUM_A008997 338 bool "Workaround for USB PHY erratum A008997" 339 340config SYS_FSL_ERRATUM_A009007 341 bool 342 help 343 Workaround for USB PHY erratum A009007 344 345config SYS_FSL_ERRATUM_A009008 346 bool "Workaround for USB PHY erratum A009008" 347 348config SYS_FSL_ERRATUM_A009798 349 bool "Workaround for USB PHY erratum A009798" 350 351config SYS_FSL_ERRATUM_A010315 352 bool "Workaround for PCIe erratum A010315" 353 354config SYS_FSL_ERRATUM_A010539 355 bool "Workaround for PIN MUX erratum A010539" 356 357config MAX_CPUS 358 int "Maximum number of CPUs permitted for Layerscape" 359 default 2 if ARCH_LS1028A 360 default 4 if ARCH_LS1043A 361 default 4 if ARCH_LS1046A 362 default 16 if ARCH_LS2080A 363 default 8 if ARCH_LS1088A 364 default 16 if ARCH_LX2160A 365 default 1 366 help 367 Set this number to the maximum number of possible CPUs in the SoC. 368 SoCs may have multiple clusters with each cluster may have multiple 369 ports. If some ports are reserved but higher ports are used for 370 cores, count the reserved ports. This will allocate enough memory 371 in spin table to properly handle all cores. 372 373config EMC2305 374 bool "Fan controller" 375 help 376 Enable the EMC2305 fan controller for configuration of fan 377 speed. 378 379config NXP_ESBC 380 bool "NXP_ESBC" 381 help 382 Enable Freescale Secure Boot feature 383 384config QSPI_AHB_INIT 385 bool "Init the QSPI AHB bus" 386 help 387 The default setting for QSPI AHB bus just support 3bytes addressing. 388 But some QSPI flash size up to 64MBytes, so initialize the QSPI AHB 389 bus for those flashes to support the full QSPI flash size. 390 391config SYS_CCI400_OFFSET 392 hex "Offset for CCI400 base" 393 depends on SYS_FSL_HAS_CCI400 394 default 0x3090000 if ARCH_LS1088A || ARCH_LS1028A 395 default 0x180000 if FSL_LSCH2 396 help 397 Offset for CCI400 base 398 CCI400 base addr = CCSRBAR + CCI400_OFFSET 399 400config SYS_FSL_IFC_BANK_COUNT 401 int "Maximum banks of Integrated flash controller" 402 depends on ARCH_LS1043A || ARCH_LS1046A || ARCH_LS2080A || ARCH_LS1088A 403 default 4 if ARCH_LS1043A 404 default 4 if ARCH_LS1046A 405 default 8 if ARCH_LS2080A || ARCH_LS1088A 406 407config SYS_FSL_HAS_CCI400 408 bool 409 410config SYS_FSL_HAS_CCN504 411 bool 412 413config SYS_FSL_HAS_CCN508 414 bool 415 416config SYS_FSL_HAS_DP_DDR 417 bool 418 419config SYS_FSL_SRDS_1 420 bool 421 422config SYS_FSL_SRDS_2 423 bool 424 425config SYS_NXP_SRDS_3 426 bool 427 428config SYS_HAS_SERDES 429 bool 430 431config FSL_TZASC_1 432 bool 433 434config FSL_TZASC_2 435 bool 436 437config FSL_TZASC_400 438 bool 439 440config FSL_TZPC_BP147 441 bool 442endmenu 443 444menu "Layerscape clock tree configuration" 445 depends on FSL_LSCH2 || FSL_LSCH3 446 447config SYS_FSL_CLK 448 bool "Enable clock tree initialization" 449 default y 450 451config CLUSTER_CLK_FREQ 452 int "Reference clock of core cluster" 453 depends on ARCH_LS1012A 454 default 100000000 455 help 456 This number is the reference clock frequency of core PLL. 457 For most platforms, the core PLL and Platform PLL have the same 458 reference clock, but for some platforms, LS1012A for instance, 459 they are provided sepatately. 460 461config SYS_FSL_PCLK_DIV 462 int "Platform clock divider" 463 default 1 if ARCH_LS1028A 464 default 1 if ARCH_LS1043A 465 default 1 if ARCH_LS1046A 466 default 1 if ARCH_LS1088A 467 default 2 468 help 469 This is the divider that is used to derive Platform clock from 470 Platform PLL, in another word: 471 Platform_clk = Platform_PLL_freq / this_divider 472 473config SYS_FSL_DSPI_CLK_DIV 474 int "DSPI clock divider" 475 default 1 if ARCH_LS1043A 476 default 2 477 help 478 This is the divider that is used to derive DSPI clock from Platform 479 clock, in another word DSPI_clk = Platform_clk / this_divider. 480 481config SYS_FSL_DUART_CLK_DIV 482 int "DUART clock divider" 483 default 1 if ARCH_LS1043A 484 default 4 if ARCH_LX2160A 485 default 2 486 help 487 This is the divider that is used to derive DUART clock from Platform 488 clock, in another word DUART_clk = Platform_clk / this_divider. 489 490config SYS_FSL_I2C_CLK_DIV 491 int "I2C clock divider" 492 default 1 if ARCH_LS1043A 493 default 4 if ARCH_LS1012A 494 default 4 if ARCH_LS1028A 495 default 8 if ARCH_LX2160A 496 default 8 if ARCH_LS1088A 497 default 2 498 help 499 This is the divider that is used to derive I2C clock from Platform 500 clock, in another word I2C_clk = Platform_clk / this_divider. 501 502config SYS_FSL_IFC_CLK_DIV 503 int "IFC clock divider" 504 default 1 if ARCH_LS1043A 505 default 4 if ARCH_LS1012A 506 default 4 if ARCH_LS1028A 507 default 8 if ARCH_LX2160A 508 default 8 if ARCH_LS1088A 509 default 2 510 help 511 This is the divider that is used to derive IFC clock from Platform 512 clock, in another word IFC_clk = Platform_clk / this_divider. 513 514config SYS_FSL_LPUART_CLK_DIV 515 int "LPUART clock divider" 516 default 1 if ARCH_LS1043A 517 default 2 518 help 519 This is the divider that is used to derive LPUART clock from Platform 520 clock, in another word LPUART_clk = Platform_clk / this_divider. 521 522config SYS_FSL_SDHC_CLK_DIV 523 int "SDHC clock divider" 524 default 1 if ARCH_LS1043A 525 default 1 if ARCH_LS1012A 526 default 2 527 help 528 This is the divider that is used to derive SDHC clock from Platform 529 clock, in another word SDHC_clk = Platform_clk / this_divider. 530 531config SYS_FSL_QMAN_CLK_DIV 532 int "QMAN clock divider" 533 default 1 if ARCH_LS1043A 534 default 2 535 help 536 This is the divider that is used to derive QMAN clock from Platform 537 clock, in another word QMAN_clk = Platform_clk / this_divider. 538endmenu 539 540config RESV_RAM 541 bool 542 help 543 Reserve memory from the top, tracked by gd->arch.resv_ram. This 544 reserved RAM can be used by special driver that resides in memory 545 after U-Boot exits. It's up to implementation to allocate and allow 546 access to this reserved memory. For example, the reserved RAM can 547 be at the high end of physical memory. The reserve RAM may be 548 excluded from memory bank(s) passed to OS, or marked as reserved. 549 550config SYS_FSL_EC1 551 bool 552 help 553 Ethernet controller 1, this is connected to 554 MAC17 for LX2160A or to MAC3 for other SoCs 555 Provides DPAA2 capabilities 556 557config SYS_FSL_EC2 558 bool 559 help 560 Ethernet controller 2, this is connected to 561 MAC18 for LX2160A or to MAC4 for other SoCs 562 Provides DPAA2 capabilities 563 564config SYS_FSL_ERRATUM_A008336 565 bool 566 567config SYS_FSL_ERRATUM_A008514 568 bool 569 570config SYS_FSL_ERRATUM_A008585 571 bool 572 573config SYS_FSL_ERRATUM_A008850 574 bool 575 576config SYS_FSL_ERRATUM_A009203 577 bool 578 579config SYS_FSL_ERRATUM_A009635 580 bool 581 582config SYS_FSL_ERRATUM_A009660 583 bool 584 585config SYS_FSL_ERRATUM_A009929 586 bool 587 588config SYS_FSL_ERRATUM_A050382 589 bool 590 591config SYS_FSL_HAS_RGMII 592 bool 593 depends on SYS_FSL_EC1 || SYS_FSL_EC2 594 595config SPL_LDSCRIPT 596 default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARCH_LS1043A || ARCH_LS1046A || ARCH_LS2080A 597 598config HAS_FSL_XHCI_USB 599 bool 600 default y if ARCH_LS1043A || ARCH_LS1046A 601 help 602 For some SoC(such as LS1043A and LS1046A), USB and QE-HDLC multiplex use 603 pins, select it when the pins are assigned to USB. 604