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