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