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