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