armv8: emc2305: add support for fan 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_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
22 config 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
56 config 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
89 config 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
126 config 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
173 config 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
209 config 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
216 config FSL_LSCH3
217         bool
218
219 config NXP_LSCH3_2
220         bool
221
222 config 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
230 menu "Layerscape architecture"
231         depends on FSL_LSCH2 || FSL_LSCH3
232
233 config 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
246 config HAS_FEATURE_GIC64K_ALIGN
247         bool
248         default y if ARCH_LS1043A
249
250 config HAS_FEATURE_ENHANCED_MSI
251         bool
252         default y if ARCH_LS1043A
253
254 menu "Layerscape PPA"
255 config 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
267 config 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.
279 choice
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
286 config 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
292 config 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
297 config SYS_LS_PPA_FW_IN_NAND
298         bool "NAND"
299         help
300           Say Y here if the PPA firmware locate at NAND flash.
301
302 endchoice
303
304 config 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
312 endmenu
313
314 config SYS_FSL_ERRATUM_A008997
315         bool "Workaround for USB PHY erratum A008997"
316
317 config SYS_FSL_ERRATUM_A009007
318         bool
319         help
320           Workaround for USB PHY erratum A009007
321
322 config SYS_FSL_ERRATUM_A009008
323         bool "Workaround for USB PHY erratum A009008"
324
325 config SYS_FSL_ERRATUM_A009798
326         bool "Workaround for USB PHY erratum A009798"
327
328 config SYS_FSL_ERRATUM_A010315
329         bool "Workaround for PCIe erratum A010315"
330
331 config SYS_FSL_ERRATUM_A010539
332         bool "Workaround for PIN MUX erratum A010539"
333
334 config 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
349 config EMC2305
350         bool "Fan controller"
351         help
352          Enable the EMC2305 fan controller for configuration of fan
353          speed.
354
355 config SECURE_BOOT
356         bool "Secure Boot"
357         help
358                 Enable Freescale Secure Boot feature
359
360 config 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
367 config 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
376 config 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
383 config SYS_FSL_HAS_CCI400
384         bool
385
386 config SYS_FSL_HAS_CCN504
387         bool
388
389 config SYS_FSL_HAS_CCN508
390         bool
391
392 config SYS_FSL_HAS_DP_DDR
393         bool
394
395 config SYS_FSL_SRDS_1
396         bool
397
398 config SYS_FSL_SRDS_2
399         bool
400
401 config SYS_NXP_SRDS_3
402         bool
403
404 config SYS_HAS_SERDES
405         bool
406
407 config FSL_TZASC_1
408         bool
409
410 config FSL_TZASC_2
411         bool
412
413 endmenu
414
415 menu "Layerscape clock tree configuration"
416         depends on FSL_LSCH2 || FSL_LSCH3
417
418 config SYS_FSL_CLK
419         bool "Enable clock tree initialization"
420         default y
421
422 config 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
432 config 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
443 config 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
451 config 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
460 config 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
468 config 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
476 config 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
484 config 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
493 config 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.
500 endmenu
501
502 config 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
512 config 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
519 config 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
526 config SYS_FSL_ERRATUM_A008336
527         bool
528
529 config SYS_FSL_ERRATUM_A008514
530         bool
531
532 config SYS_FSL_ERRATUM_A008585
533         bool
534
535 config SYS_FSL_ERRATUM_A008850
536         bool
537
538 config SYS_FSL_ERRATUM_A009203
539         bool
540
541 config SYS_FSL_ERRATUM_A009635
542         bool
543
544 config SYS_FSL_ERRATUM_A009660
545         bool
546
547 config SYS_FSL_ERRATUM_A009929
548         bool
549
550
551 config SYS_FSL_HAS_RGMII
552         bool
553         depends on SYS_FSL_EC1 || SYS_FSL_EC2
554
555
556 config 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
564 config SPL_LDSCRIPT
565         default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARCH_LS1043A || ARCH_LS1046A || ARCH_LS2080A
566
567 config 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
574 config 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.