fsl-lsch3: soc: Enable AHB read support for Flexspi controller
[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_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
51 config 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
84 config 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
118 config 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
158 config 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
208 config 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_ERRATUM_A050106
223         select SYS_FSL_HAS_RGMII
224         select SYS_FSL_HAS_SEC
225         select SYS_FSL_HAS_CCN508
226         select SYS_FSL_HAS_DDR4
227         select SYS_FSL_SEC_COMPAT_5
228         select SYS_FSL_SEC_LE
229         select ARCH_EARLY_INIT_R
230         select BOARD_EARLY_INIT_F
231         select SYS_I2C_MXC
232         imply DISTRO_DEFAULTS
233         imply PANIC_HANG
234         imply SCSI
235         imply SCSI_AHCI
236
237 config FSL_LSCH2
238         bool
239         select SYS_FSL_HAS_CCI400
240         select SYS_FSL_HAS_SEC
241         select SYS_FSL_SEC_COMPAT_5
242         select SYS_FSL_SEC_BE
243
244 config FSL_LSCH3
245         bool
246
247 config NXP_LSCH3_2
248         bool
249
250 menu "Layerscape architecture"
251         depends on FSL_LSCH2 || FSL_LSCH3
252
253 config FSL_LAYERSCAPE
254         bool
255
256 config FSL_PCIE_COMPAT
257         string "PCIe compatible of Kernel DT"
258         depends on PCIE_LAYERSCAPE || PCIE_LAYERSCAPE_GEN4
259         default "fsl,ls1012a-pcie" if ARCH_LS1012A
260         default "fsl,ls1028a-pcie" if ARCH_LS1028A
261         default "fsl,ls1043a-pcie" if ARCH_LS1043A
262         default "fsl,ls1046a-pcie" if ARCH_LS1046A
263         default "fsl,ls2080a-pcie" if ARCH_LS2080A
264         default "fsl,ls1088a-pcie" if ARCH_LS1088A
265         default "fsl,lx2160a-pcie" if ARCH_LX2160A
266         help
267           This compatible is used to find pci controller node in Kernel DT
268           to complete fixup.
269
270 config HAS_FEATURE_GIC64K_ALIGN
271         bool
272         default y if ARCH_LS1043A
273
274 config HAS_FEATURE_ENHANCED_MSI
275         bool
276         default y if ARCH_LS1043A
277
278 menu "Layerscape PPA"
279 config FSL_LS_PPA
280         bool "FSL Layerscape PPA firmware support"
281         depends on !ARMV8_PSCI
282         select ARMV8_SEC_FIRMWARE_SUPPORT
283         select SEC_FIRMWARE_ARMV8_PSCI
284         select ARMV8_SEC_FIRMWARE_ERET_ADDR_REVERT if FSL_LSCH2
285         help
286           The FSL Primary Protected Application (PPA) is a software component
287           which is loaded during boot stage, and then remains resident in RAM
288           and runs in the TrustZone after boot.
289           Say y to enable it.
290
291 config SPL_FSL_LS_PPA
292         bool "FSL Layerscape PPA firmware support for SPL build"
293         depends on !ARMV8_PSCI
294         select SPL_ARMV8_SEC_FIRMWARE_SUPPORT
295         select SEC_FIRMWARE_ARMV8_PSCI
296         select ARMV8_SEC_FIRMWARE_ERET_ADDR_REVERT if FSL_LSCH2
297         help
298           The FSL Primary Protected Application (PPA) is a software component
299           which is loaded during boot stage, and then remains resident in RAM
300           and runs in the TrustZone after boot. This is to load PPA during SPL
301           stage instead of the RAM version of U-Boot. Once PPA is initialized,
302           the rest of U-Boot (including RAM version) runs at EL2.
303 choice
304         prompt "FSL Layerscape PPA firmware loading-media select"
305         depends on FSL_LS_PPA
306         default SYS_LS_PPA_FW_IN_MMC if SD_BOOT
307         default SYS_LS_PPA_FW_IN_NAND if NAND_BOOT
308         default SYS_LS_PPA_FW_IN_XIP
309
310 config SYS_LS_PPA_FW_IN_XIP
311         bool "XIP"
312         help
313           Say Y here if the PPA firmware locate at XIP flash, such
314           as NOR or QSPI flash.
315
316 config SYS_LS_PPA_FW_IN_MMC
317         bool "eMMC or SD Card"
318         help
319           Say Y here if the PPA firmware locate at eMMC/SD card.
320
321 config SYS_LS_PPA_FW_IN_NAND
322         bool "NAND"
323         help
324           Say Y here if the PPA firmware locate at NAND flash.
325
326 endchoice
327
328 config LS_PPA_ESBC_HDR_SIZE
329         hex "Length of PPA ESBC header"
330         depends on FSL_LS_PPA && CHAIN_OF_TRUST && !SYS_LS_PPA_FW_IN_XIP
331         default 0x2000
332         help
333           Length (in bytes) of PPA ESBC header to be copied from MMC/SD or
334           NAND to memory to validate PPA image.
335
336 endmenu
337
338 config SYS_FSL_ERRATUM_A008997
339         bool "Workaround for USB PHY erratum A008997"
340
341 config SYS_FSL_ERRATUM_A009007
342         bool
343         help
344           Workaround for USB PHY erratum A009007
345
346 config SYS_FSL_ERRATUM_A009008
347         bool "Workaround for USB PHY erratum A009008"
348
349 config SYS_FSL_ERRATUM_A009798
350         bool "Workaround for USB PHY erratum A009798"
351
352 config SYS_FSL_ERRATUM_A050106
353         bool "Workaround for USB PHY erratum A050106"
354         help
355           USB3.0 Receiver needs to enable fixed equalization
356           for each of PHY instances in an SOC. This is similar
357           to erratum A-009007, but this one is for LX2160A,
358           and the register value is different.
359
360 config SYS_FSL_ERRATUM_A010315
361         bool "Workaround for PCIe erratum A010315"
362
363 config SYS_FSL_ERRATUM_A010539
364         bool "Workaround for PIN MUX erratum A010539"
365
366 config MAX_CPUS
367         int "Maximum number of CPUs permitted for Layerscape"
368         default 2 if ARCH_LS1028A
369         default 4 if ARCH_LS1043A
370         default 4 if ARCH_LS1046A
371         default 16 if ARCH_LS2080A
372         default 8 if ARCH_LS1088A
373         default 16 if ARCH_LX2160A
374         default 1
375         help
376           Set this number to the maximum number of possible CPUs in the SoC.
377           SoCs may have multiple clusters with each cluster may have multiple
378           ports. If some ports are reserved but higher ports are used for
379           cores, count the reserved ports. This will allocate enough memory
380           in spin table to properly handle all cores.
381
382 config EMC2305
383         bool "Fan controller"
384         help
385          Enable the EMC2305 fan controller for configuration of fan
386          speed.
387
388 config NXP_ESBC
389         bool "NXP_ESBC"
390         help
391                 Enable Freescale Secure Boot feature
392
393 config QSPI_AHB_INIT
394         bool "Init the QSPI AHB bus"
395         help
396           The default setting for QSPI AHB bus just support 3bytes addressing.
397           But some QSPI flash size up to 64MBytes, so initialize the QSPI AHB
398           bus for those flashes to support the full QSPI flash size.
399
400 config FSPI_AHB_EN_4BYTE
401         bool "Enable 4-byte Fast Read command for AHB mode"
402         default n
403         help
404           The default setting for FlexSPI AHB bus just supports 3-byte addressing.
405           But some FlexSPI flash sizes are up to 64MBytes.
406           This flag enables fast read command for AHB mode and modifies required
407           LUT to support full FlexSPI flash.
408
409 config SYS_CCI400_OFFSET
410         hex "Offset for CCI400 base"
411         depends on SYS_FSL_HAS_CCI400
412         default 0x3090000 if ARCH_LS1088A || ARCH_LS1028A
413         default 0x180000 if FSL_LSCH2
414         help
415           Offset for CCI400 base
416           CCI400 base addr = CCSRBAR + CCI400_OFFSET
417
418 config SYS_FSL_IFC_BANK_COUNT
419         int "Maximum banks of Integrated flash controller"
420         depends on ARCH_LS1043A || ARCH_LS1046A || ARCH_LS2080A || ARCH_LS1088A
421         default 4 if ARCH_LS1043A
422         default 4 if ARCH_LS1046A
423         default 8 if ARCH_LS2080A || ARCH_LS1088A
424
425 config SYS_FSL_HAS_CCI400
426         bool
427
428 config SYS_FSL_HAS_CCN504
429         bool
430
431 config SYS_FSL_HAS_CCN508
432         bool
433
434 config SYS_FSL_HAS_DP_DDR
435         bool
436
437 config SYS_FSL_SRDS_1
438         bool
439
440 config SYS_FSL_SRDS_2
441         bool
442
443 config SYS_NXP_SRDS_3
444         bool
445
446 config SYS_HAS_SERDES
447         bool
448
449 config FSL_TZASC_1
450         bool
451
452 config FSL_TZASC_2
453         bool
454
455 config FSL_TZASC_400
456         bool
457
458 config FSL_TZPC_BP147
459         bool
460 endmenu
461
462 menu "Layerscape clock tree configuration"
463         depends on FSL_LSCH2 || FSL_LSCH3
464
465 config SYS_FSL_CLK
466         bool "Enable clock tree initialization"
467         default y
468
469 config CLUSTER_CLK_FREQ
470         int "Reference clock of core cluster"
471         depends on ARCH_LS1012A
472         default 100000000
473         help
474           This number is the reference clock frequency of core PLL.
475           For most platforms, the core PLL and Platform PLL have the same
476           reference clock, but for some platforms, LS1012A for instance,
477           they are provided sepatately.
478
479 config SYS_FSL_PCLK_DIV
480         int "Platform clock divider"
481         default 1 if ARCH_LS1028A
482         default 1 if ARCH_LS1043A
483         default 1 if ARCH_LS1046A
484         default 1 if ARCH_LS1088A
485         default 2
486         help
487           This is the divider that is used to derive Platform clock from
488           Platform PLL, in another word:
489                 Platform_clk = Platform_PLL_freq / this_divider
490
491 config SYS_FSL_DSPI_CLK_DIV
492         int "DSPI clock divider"
493         default 1 if ARCH_LS1043A
494         default 2
495         help
496           This is the divider that is used to derive DSPI clock from Platform
497           clock, in another word DSPI_clk = Platform_clk / this_divider.
498
499 config SYS_FSL_DUART_CLK_DIV
500         int "DUART clock divider"
501         default 1 if ARCH_LS1043A
502         default 4 if ARCH_LX2160A
503         default 2
504         help
505           This is the divider that is used to derive DUART clock from Platform
506           clock, in another word DUART_clk = Platform_clk / this_divider.
507
508 config SYS_FSL_I2C_CLK_DIV
509         int "I2C clock divider"
510         default 1 if ARCH_LS1043A
511         default 4 if ARCH_LS1012A
512         default 4 if ARCH_LS1028A
513         default 8 if ARCH_LX2160A
514         default 8 if ARCH_LS1088A
515         default 2
516         help
517           This is the divider that is used to derive I2C clock from Platform
518           clock, in another word I2C_clk = Platform_clk / this_divider.
519
520 config SYS_FSL_IFC_CLK_DIV
521         int "IFC clock divider"
522         default 1 if ARCH_LS1043A
523         default 4 if ARCH_LS1012A
524         default 4 if ARCH_LS1028A
525         default 8 if ARCH_LX2160A
526         default 8 if ARCH_LS1088A
527         default 2
528         help
529           This is the divider that is used to derive IFC clock from Platform
530           clock, in another word IFC_clk = Platform_clk / this_divider.
531
532 config SYS_FSL_LPUART_CLK_DIV
533         int "LPUART clock divider"
534         default 1 if ARCH_LS1043A
535         default 2
536         help
537           This is the divider that is used to derive LPUART clock from Platform
538           clock, in another word LPUART_clk = Platform_clk / this_divider.
539
540 config SYS_FSL_SDHC_CLK_DIV
541         int "SDHC clock divider"
542         default 1 if ARCH_LS1043A
543         default 1 if ARCH_LS1012A
544         default 2
545         help
546           This is the divider that is used to derive SDHC clock from Platform
547           clock, in another word SDHC_clk = Platform_clk / this_divider.
548
549 config SYS_FSL_QMAN_CLK_DIV
550         int "QMAN clock divider"
551         default 1 if ARCH_LS1043A
552         default 2
553         help
554           This is the divider that is used to derive QMAN clock from Platform
555           clock, in another word QMAN_clk = Platform_clk / this_divider.
556 endmenu
557
558 config RESV_RAM
559         bool
560         help
561           Reserve memory from the top, tracked by gd->arch.resv_ram. This
562           reserved RAM can be used by special driver that resides in memory
563           after U-Boot exits. It's up to implementation to allocate and allow
564           access to this reserved memory. For example, the reserved RAM can
565           be at the high end of physical memory. The reserve RAM may be
566           excluded from memory bank(s) passed to OS, or marked as reserved.
567
568 config SYS_FSL_EC1
569         bool
570         help
571           Ethernet controller 1, this is connected to
572           MAC17 for LX2160A or to MAC3 for other SoCs
573           Provides DPAA2 capabilities
574
575 config SYS_FSL_EC2
576         bool
577         help
578           Ethernet controller 2, this is connected to
579           MAC18 for LX2160A or to MAC4 for other SoCs
580           Provides DPAA2 capabilities
581
582 config SYS_FSL_ERRATUM_A008336
583         bool
584
585 config SYS_FSL_ERRATUM_A008514
586         bool
587
588 config SYS_FSL_ERRATUM_A008585
589         bool
590
591 config SYS_FSL_ERRATUM_A008850
592         bool
593
594 config SYS_FSL_ERRATUM_A009203
595         bool
596
597 config SYS_FSL_ERRATUM_A009635
598         bool
599
600 config SYS_FSL_ERRATUM_A009660
601         bool
602
603 config SYS_FSL_ERRATUM_A009929
604         bool
605
606 config SYS_FSL_ERRATUM_A050382
607         bool
608
609 config SYS_FSL_HAS_RGMII
610         bool
611         depends on SYS_FSL_EC1 || SYS_FSL_EC2
612
613 config SPL_LDSCRIPT
614         default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARCH_LS1043A || ARCH_LS1046A || ARCH_LS2080A
615
616 config HAS_FSL_XHCI_USB
617         bool
618         default y if ARCH_LS1043A || ARCH_LS1046A
619         help
620           For some SoC(such as LS1043A and LS1046A), USB and QE-HDLC multiplex use
621           pins, select it when the pins are assigned to USB.