Prepare v2023.10
[platform/kernel/u-boot.git] / arch / arm / mach-mvebu / Kconfig
1 if ARCH_MVEBU
2
3 config HAVE_MVEBU_EFUSE
4         bool
5
6 config ARMADA_32BIT
7         bool
8         select BOARD_EARLY_INIT_F
9         select CPU_V7A
10         select SPL_DM if SPL
11         select SPL_DM_SEQ_ALIAS if SPL
12         select SPL_OF_CONTROL if SPL
13         select SPL_SKIP_LOWLEVEL_INIT if SPL
14         select SPL_SIMPLE_BUS if SPL
15         select SUPPORT_SPL
16         select SYS_L2_PL310 if !SYS_L2CACHE_OFF
17         select TRANSLATION_OFFSET
18         select SPL_SYS_NO_VECTOR_TABLE if SPL
19         select ARCH_VERY_EARLY_INIT
20
21 # ARMv7 SoCs...
22 config ARMADA_375
23         bool
24         select ARMADA_32BIT
25
26 config ARMADA_38X
27         bool
28         select ARMADA_32BIT
29         select HAVE_MVEBU_EFUSE
30
31 config ARMADA_38X_HS_IMPEDANCE_THRESH
32         hex  "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)"
33         depends on ARMADA_38X
34         default 0x6
35         range 0x0 0x7
36
37 config ARMADA_XP
38         bool
39         select ARMADA_32BIT
40
41 # ARMv8 SoCs...
42 config ARMADA_3700
43         bool
44         select ARM64
45         select HAVE_MVEBU_EFUSE
46
47 # Armada 7K and 8K are very similar - use only one Kconfig symbol for both
48 config ARMADA_8K
49         bool
50         select ARM64
51
52 config ALLEYCAT_5
53         bool
54         select ARM64
55
56 # Armada PLL frequency (used for NAND clock generation)
57 config SYS_MVEBU_PLL_CLOCK
58         int
59         default "2000000000" if ARMADA_XP || ARMADA_3700 || ARMADA_8K || ARMADA_MSYS
60         default "1000000000" if ARMADA_38X || ARMADA_375
61
62 # Armada XP/38x SoC types...
63 config MV78230
64         bool
65         select ARMADA_XP
66
67 config MV78260
68         bool
69         select ARMADA_XP
70         imply CMD_SATA
71
72 config MV78460
73         bool
74         select ARMADA_XP
75
76 config ARMADA_MSYS
77         bool
78         select ARMADA_32BIT
79
80 config 98DX4251
81         bool
82         select ARMADA_MSYS
83
84 config 98DX3336
85         bool
86         select ARMADA_MSYS
87
88 config 98DX3236
89         bool
90         select ARMADA_MSYS
91
92 config 88F6820
93         bool
94         select ARMADA_38X
95
96 config CUSTOMER_BOARD_SUPPORT
97         bool
98
99 config DDR4
100         bool "Support Marvell DDR4 Training driver"
101
102 choice
103         prompt "Armada XP/375/38x/3700/7K/8K/Alleycat-5 board select"
104         optional
105
106 config TARGET_CLEARFOG
107         bool "Support ClearFog"
108         select 88F6820
109         select BOARD_LATE_INIT
110         select OF_BOARD_SETUP
111
112 config TARGET_HELIOS4
113         bool "Support Helios4"
114         select 88F6820
115
116 config TARGET_MVEBU_ARMADA_37XX
117         bool "Support Armada 37xx platforms"
118         select ARMADA_3700
119         imply SCSI
120
121 config TARGET_DB_88F6720
122         bool "Support DB-88F6720 Armada 375"
123         select ARMADA_375
124
125 config TARGET_DB_88F6820_GP
126         bool "Support DB-88F6820-GP"
127         select 88F6820
128
129 config TARGET_DB_88F6820_AMC
130         bool "Support DB-88F6820-AMC"
131         select 88F6820
132
133 config TARGET_TURRIS_OMNIA
134         bool "Support Turris Omnia"
135         select 88F6820
136         select BOARD_LATE_INIT
137         select DM_I2C
138         select I2C_MUX
139         select I2C_MUX_PCA954x
140         select SPL_DRIVERS_MISC
141         select SPL_I2C_MUX
142         select SPL_SYS_MALLOC_SIMPLE
143         select SYS_I2C_MVTWSI
144         select ATSHA204A
145
146 config TARGET_TURRIS_MOX
147         bool "Support Turris Mox"
148         select ARMADA_3700
149
150 config TARGET_MVEBU_ARMADA_8K
151         bool "Support Armada 7k/8k platforms"
152         select ARMADA_8K
153         select BOARD_LATE_INIT
154         imply SCSI
155
156 config TARGET_MVEBU_ALLEYCAT5
157         bool "Support AlleyCat 5 platforms"
158         select ALLEYCAT_5
159
160 config TARGET_OCTEONTX2_CN913x
161         bool "Support CN913x platforms"
162         select ARMADA_8K
163         imply BOARD_EARLY_INIT_R
164         select BOARD_LATE_INIT
165         imply SCSI
166
167 config TARGET_DB_MV784MP_GP
168         bool "Support db-mv784mp-gp"
169         select BOARD_ECC_SUPPORT
170         select MV78460
171
172 config TARGET_DS116
173         bool "Support Synology DS116"
174         select 88F6820
175
176 config TARGET_DS414
177         bool "Support Synology DS414"
178         select MV78230
179
180 config TARGET_MAXBCM
181         bool "Support maxbcm"
182         select BOARD_ECC_SUPPORT
183         select MV78460
184
185 config TARGET_N2350
186         bool "Support Thecus N2350"
187         select 88F6820
188         select DDR4
189
190 config TARGET_THEADORABLE
191         bool "Support theadorable Armada XP"
192         select BOARD_LATE_INIT if USB
193         select MV78260
194         imply CMD_SATA
195
196 config TARGET_CONTROLCENTERDC
197         bool "Support CONTROLCENTERDC"
198         select 88F6820
199         select CUSTOMER_BOARD_SUPPORT
200
201 config TARGET_X530
202         bool "Support Allied Telesis x530"
203         select 88F6820
204
205 config TARGET_X240
206         bool "Support Allied Telesis x240"
207         select ALLEYCAT_5
208
209 config TARGET_DB_XC3_24G4XG
210         bool "Support DB-XC3-24G4XG"
211         select 98DX3336
212
213 config TARGET_CRS3XX_98DX3236
214         bool "Support CRS3XX-98DX3236"
215         select 98DX3236
216
217 endchoice
218
219 choice
220         prompt "DDR bus width"
221         default DDR_64BIT
222         depends on ARMADA_XP
223
224 config DDR_64BIT
225         bool "64bit bus width"
226
227 config DDR_32BIT
228         bool "32bit bus width"
229
230 endchoice
231
232 config DDR_LOG_LEVEL
233         int "DDR training code log level"
234         depends on ARMADA_XP
235         default 0
236         range 0 3
237         help
238           Amount of information provided on error while running the DDR
239           training code.  At level 0, provides an error code in a case of
240           failure, RL, WL errors and other algorithm failure.  At level 1,
241           provides the D-Unit setup (SPD/Static configuration).  At level 2,
242           provides the windows margin as a results of DQS centeralization.
243           At level 3, rovides the windows margin of each DQ as a results of
244           DQS centeralization.
245
246 config DDR_RESET_ON_TRAINING_FAILURE
247         bool "Reset the board on DDR training failure instead of hanging"
248         depends on ARMADA_38X || ARMADA_XP
249         help
250           If DDR training fails in SPL, reset the board instead of hanging.
251           Some boards are known to fail DDR training occasionally and an
252           immediate reset may be preferable to waiting until the board is
253           reset by watchdog (if there even is one).
254
255           Note that if booting via UART and the DDR training fails, the
256           device will still hang - it doesn't make sense to reset the board
257           in such a case.
258
259 config BOARD_ECC_SUPPORT
260         bool
261
262 config SYS_BOARD
263         default "clearfog" if TARGET_CLEARFOG
264         default "helios4" if TARGET_HELIOS4
265         default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
266         default "db-88f6720" if TARGET_DB_88F6720
267         default "db-88f6820-gp" if TARGET_DB_88F6820_GP
268         default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
269         default "turris_omnia" if TARGET_TURRIS_OMNIA
270         default "turris_mox" if TARGET_TURRIS_MOX
271         default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
272         default "octeontx2_cn913x" if TARGET_OCTEONTX2_CN913x
273         default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
274         default "ds116" if TARGET_DS116
275         default "ds414" if TARGET_DS414
276         default "maxbcm" if TARGET_MAXBCM
277         default "n2350" if TARGET_N2350
278         default "theadorable" if TARGET_THEADORABLE
279         default "a38x" if TARGET_CONTROLCENTERDC
280         default "x530" if TARGET_X530
281         default "x240" if TARGET_X240
282         default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
283         default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
284         default "mvebu_alleycat-5" if TARGET_MVEBU_ALLEYCAT5
285
286 config SYS_CONFIG_NAME
287         default "clearfog" if TARGET_CLEARFOG
288         default "helios4" if TARGET_HELIOS4
289         default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
290         default "db-88f6720" if TARGET_DB_88F6720
291         default "db-88f6820-gp" if TARGET_DB_88F6820_GP
292         default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
293         default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
294         default "mvebu_armada-8k" if TARGET_OCTEONTX2_CN913x
295         default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
296         default "ds116" if TARGET_DS116
297         default "ds414" if TARGET_DS414
298         default "maxbcm" if TARGET_MAXBCM
299         default "n2350" if TARGET_N2350
300         default "theadorable" if TARGET_THEADORABLE
301         default "turris_omnia" if TARGET_TURRIS_OMNIA
302         default "turris_mox" if TARGET_TURRIS_MOX
303         default "controlcenterdc" if TARGET_CONTROLCENTERDC
304         default "x530" if TARGET_X530
305         default "x240" if TARGET_X240
306         default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
307         default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
308         default "mvebu_alleycat-5" if TARGET_MVEBU_ALLEYCAT5
309
310 config SYS_VENDOR
311         default "Marvell" if TARGET_DB_MV784MP_GP
312         default "Marvell" if TARGET_MVEBU_ARMADA_37XX
313         default "Marvell" if TARGET_DB_88F6720
314         default "Marvell" if TARGET_DB_88F6820_GP
315         default "Marvell" if TARGET_DB_88F6820_AMC
316         default "Marvell" if TARGET_MVEBU_ARMADA_8K
317         default "Marvell" if TARGET_OCTEONTX2_CN913x
318         default "Marvell" if TARGET_DB_XC3_24G4XG
319         default "Marvell" if TARGET_MVEBU_DB_88F7040
320         default "solidrun" if TARGET_CLEARFOG
321         default "kobol" if TARGET_HELIOS4
322         default "Synology" if TARGET_DS116
323         default "Synology" if TARGET_DS414
324         default "thecus" if TARGET_N2350
325         default "CZ.NIC" if TARGET_TURRIS_OMNIA
326         default "CZ.NIC" if TARGET_TURRIS_MOX
327         default "gdsys" if TARGET_CONTROLCENTERDC
328         default "alliedtelesis" if TARGET_X530
329         default "alliedtelesis" if TARGET_X240
330         default "mikrotik" if TARGET_CRS3XX_98DX3236
331         default "Marvell" if TARGET_MVEBU_ALLEYCAT5
332
333 config SYS_SOC
334         default "mvebu"
335
336 choice
337         prompt "Boot method"
338         depends on SPL
339
340 config MVEBU_SPL_BOOT_DEVICE_SPI
341         bool "NOR flash (SPI or parallel)"
342         imply ENV_IS_IN_SPI_FLASH
343         imply SPL_DM_SPI
344         imply SPL_SPI_FLASH_SUPPORT
345         imply SPL_SPI_LOAD
346         imply SPL_SPI
347         select SPL_BOOTROM_SUPPORT
348
349 config MVEBU_SPL_BOOT_DEVICE_NAND
350         bool "NAND flash (SPI or parallel)"
351         select MTD_RAW_NAND
352         select SPL_BOOTROM_SUPPORT
353
354 config MVEBU_SPL_BOOT_DEVICE_MMC
355         bool "eMMC or SD card"
356         imply ENV_IS_IN_MMC
357         # GPIO needed for eMMC/SD card presence detection
358         imply SPL_DM_GPIO
359         imply SPL_DM_MMC
360         imply SPL_GPIO
361         imply SPL_LIBDISK_SUPPORT
362         imply SPL_MMC
363         select SUPPORT_EMMC_BOOT if SPL_MMC
364         select SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR if SPL_MMC
365         select SPL_BOOTROM_SUPPORT
366
367 config MVEBU_SPL_BOOT_DEVICE_SATA
368         bool "SATA"
369         imply SPL_SATA
370         imply SPL_LIBDISK_SUPPORT
371         select SPL_BOOTROM_SUPPORT
372
373 config MVEBU_SPL_BOOT_DEVICE_PEX
374         bool "PCI Express"
375         select SPL_BOOTROM_SUPPORT
376
377 config MVEBU_SPL_BOOT_DEVICE_UART
378         bool "UART"
379         select SPL_BOOTROM_SUPPORT
380
381 endchoice
382
383 config MVEBU_SPL_NAND_BADBLK_LOCATION
384         hex "NAND Bad block indicator location"
385         depends on MVEBU_SPL_BOOT_DEVICE_NAND
386         range 0x0 0x1
387         help
388           Value 0x0 = SLC flash = BBI at page 0 or page 1
389           Value 0x1 = MLC flash = BBI at last page in the block
390
391 config MVEBU_SPL_SATA_BLKSZ
392         int "SATA block size"
393         depends on MVEBU_SPL_BOOT_DEVICE_SATA
394         range 512 32768
395         default 512
396         help
397           Block size of the SATA disk in bytes.
398           Typically 512 bytes for majority of disks
399           and 4096 bytes for 4K Native disks.
400
401 config MVEBU_EFUSE
402         bool "Enable eFuse support"
403         depends on HAVE_MVEBU_EFUSE
404         help
405           Enable support for reading and writing eFuses on mvebu SoCs.
406
407 config MVEBU_EFUSE_FAKE
408         bool "Fake eFuse access (dry run)"
409         depends on MVEBU_EFUSE
410         help
411           This enables a "dry run" mode where eFuses are not really programmed.
412           Instead the eFuse accesses are emulated by writing to and reading
413           from a memory block.
414           This is can be used for testing prog scripts.
415
416 config MVEBU_EFUSE_VHV_GPIO
417         string "VHV_Enable GPIO name for eFuse programming"
418         depends on MVEBU_EFUSE && !ARMADA_3700
419         help
420           The eFuse programing (burning) phase requires supplying 1.8V to the
421           device on the VHV power pin, while for normal operation the VHV power
422           rail must be left unconnected. See Marvell AN-389: ARMADA VHV Power
423           document (Doc. No. MV-S302545-00 Rev. C, August 2, 2016) for details.
424           .
425           This specify VHV_Enable GPIO name used in U-Boot for enabling VHV power.
426
427 config MVEBU_EFUSE_VHV_GPIO_ACTIVE_LOW
428         bool "VHV_Enable GPIO is Active Low"
429         depends on MVEBU_EFUSE_VHV_GPIO != ""
430
431 config SECURED_MODE_IMAGE
432         bool "Build image for trusted boot"
433         default false
434         depends on 88F6820
435         help
436           Build an image that employs the ARMADA SoC's trusted boot framework
437           for securely booting images.
438
439 config SECURED_MODE_CSK_INDEX
440         int "Index of active CSK"
441         default 0
442         depends on SECURED_MODE_IMAGE
443
444 config SF_DEFAULT_SPEED
445         int "Default speed for SPI flash in Hz"
446         default 10000000
447         depends on MVEBU_SPL_BOOT_DEVICE_SPI
448
449 config SF_DEFAULT_MODE
450         hex "Default mode for SPI flash"
451         default 0x0
452         depends on MVEBU_SPL_BOOT_DEVICE_SPI
453
454 source "board/solidrun/clearfog/Kconfig"
455 source "board/kobol/helios4/Kconfig"
456
457 endif