1if ARCH_MVEBU
2
3config HAVE_MVEBU_EFUSE
4	bool
5	default n
6
7config ARMADA_32BIT
8	bool
9	select ARCH_MISC_INIT
10	select BOARD_EARLY_INIT_F
11	select CPU_V7A
12	select SPL_DM if SPL
13	select SPL_DM_SEQ_ALIAS if SPL
14	select SPL_OF_CONTROL if SPL
15	select SPL_SIMPLE_BUS if SPL
16	select SUPPORT_SPL
17	select TRANSLATION_OFFSET
18
19config ARMADA_64BIT
20	bool
21	select ARM64
22
23# ARMv7 SoCs...
24config ARMADA_375
25	bool
26	select ARMADA_32BIT
27
28config ARMADA_38X
29	bool
30	select ARMADA_32BIT
31	select HAVE_MVEBU_EFUSE
32
33config ARMADA_38X_HS_IMPEDANCE_THRESH
34	hex  "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)"
35	depends on ARMADA_38X
36	default 0x6
37	range 0x0 0x7
38
39config ARMADA_XP
40	bool
41	select ARMADA_32BIT
42
43# ARMv8 SoCs...
44config ARMADA_3700
45	bool
46	select ARM64
47
48# Armada 7K and 8K are very similar - use only one Kconfig symbol for both
49config ARMADA_8K
50	bool
51	select ARM64
52
53# Armada PLL frequency (used for NAND clock generation)
54config SYS_MVEBU_PLL_CLOCK
55	int
56	default "2000000000" if ARMADA_XP || ARMADA_3700 || ARMADA_8K || ARMADA_MSYS
57	default "1000000000" if ARMADA_38X || ARMADA_375
58
59# Armada XP/38x SoC types...
60config MV78230
61	bool
62	select ARMADA_XP
63
64config MV78260
65	bool
66	select ARMADA_XP
67	imply CMD_SATA
68
69config MV78460
70	bool
71	select ARMADA_XP
72
73config ARMADA_MSYS
74	bool
75	select ARMADA_32BIT
76
77config 98DX4251
78	bool
79	select ARMADA_MSYS
80
81config 98DX3336
82	bool
83	select ARMADA_MSYS
84
85config 98DX3236
86	bool
87	select ARMADA_MSYS
88
89config 88F6820
90	bool
91	select ARMADA_38X
92
93choice
94	prompt "Armada XP/375/38x/3700/7K/8K board select"
95	optional
96
97config TARGET_CLEARFOG
98	bool "Support ClearFog"
99	select 88F6820
100	select BOARD_LATE_INIT
101
102config TARGET_HELIOS4
103	bool "Support Helios4"
104	select 88F6820
105
106config TARGET_MVEBU_ARMADA_37XX
107	bool "Support Armada 37xx platforms"
108	select ARMADA_3700
109	imply SCSI
110
111config TARGET_DB_88F6720
112	bool "Support DB-88F6720 Armada 375"
113	select ARMADA_375
114
115config TARGET_DB_88F6820_GP
116	bool "Support DB-88F6820-GP"
117	select 88F6820
118
119config TARGET_DB_88F6820_AMC
120	bool "Support DB-88F6820-AMC"
121	select 88F6820
122
123config TARGET_TURRIS_OMNIA
124	bool "Support Turris Omnia"
125	select 88F6820
126	select BOARD_LATE_INIT
127	select DM_I2C
128	select I2C_MUX
129	select I2C_MUX_PCA954x
130	select SPL_I2C_MUX
131	select SYS_I2C_MVTWSI
132	select ATSHA204A
133
134config TARGET_TURRIS_MOX
135	bool "Support Turris Mox"
136	select ARMADA_3700
137
138config TARGET_MVEBU_ARMADA_8K
139	bool "Support Armada 7k/8k platforms"
140	select ARMADA_8K
141	select BOARD_LATE_INIT
142	imply SCSI
143
144config TARGET_DB_MV784MP_GP
145	bool "Support db-mv784mp-gp"
146	select MV78460
147
148config TARGET_DS414
149	bool "Support Synology DS414"
150	select MV78230
151
152config TARGET_MAXBCM
153	bool "Support maxbcm"
154	select MV78460
155
156config TARGET_THEADORABLE
157	bool "Support theadorable Armada XP"
158	select BOARD_LATE_INIT if USB
159	select MV78260
160	imply CMD_SATA
161
162config TARGET_CONTROLCENTERDC
163	bool "Support CONTROLCENTERDC"
164	select 88F6820
165
166config TARGET_X530
167	bool "Support Allied Telesis x530"
168	select 88F6820
169
170config TARGET_DB_XC3_24G4XG
171	bool "Support DB-XC3-24G4XG"
172	select 98DX3336
173
174config TARGET_CRS3XX_98DX3236
175	bool "Support CRS3XX-98DX3236"
176	select 98DX3236
177
178endchoice
179
180config SYS_BOARD
181	default "clearfog" if TARGET_CLEARFOG
182	default "helios4" if TARGET_HELIOS4
183	default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
184	default "db-88f6720" if TARGET_DB_88F6720
185	default "db-88f6820-gp" if TARGET_DB_88F6820_GP
186	default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
187	default "turris_omnia" if TARGET_TURRIS_OMNIA
188	default "turris_mox" if TARGET_TURRIS_MOX
189	default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
190	default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
191	default "ds414" if TARGET_DS414
192	default "maxbcm" if TARGET_MAXBCM
193	default "theadorable" if TARGET_THEADORABLE
194	default "a38x" if TARGET_CONTROLCENTERDC
195	default "x530" if TARGET_X530
196	default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
197	default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
198
199config SYS_CONFIG_NAME
200	default "clearfog" if TARGET_CLEARFOG
201	default "helios4" if TARGET_HELIOS4
202	default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
203	default "db-88f6720" if TARGET_DB_88F6720
204	default "db-88f6820-gp" if TARGET_DB_88F6820_GP
205	default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
206	default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
207	default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
208	default "ds414" if TARGET_DS414
209	default "maxbcm" if TARGET_MAXBCM
210	default "theadorable" if TARGET_THEADORABLE
211	default "turris_omnia" if TARGET_TURRIS_OMNIA
212	default "turris_mox" if TARGET_TURRIS_MOX
213	default "controlcenterdc" if TARGET_CONTROLCENTERDC
214	default "x530" if TARGET_X530
215	default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
216	default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
217
218config SYS_VENDOR
219	default "Marvell" if TARGET_DB_MV784MP_GP
220	default "Marvell" if TARGET_MVEBU_ARMADA_37XX
221	default "Marvell" if TARGET_DB_88F6720
222	default "Marvell" if TARGET_DB_88F6820_GP
223	default "Marvell" if TARGET_DB_88F6820_AMC
224	default "Marvell" if TARGET_MVEBU_ARMADA_8K
225	default "Marvell" if TARGET_DB_XC3_24G4XG
226	default "Marvell" if TARGET_MVEBU_DB_88F7040
227	default "solidrun" if TARGET_CLEARFOG
228	default "kobol" if TARGET_HELIOS4
229	default "Synology" if TARGET_DS414
230	default "CZ.NIC" if TARGET_TURRIS_OMNIA
231	default "CZ.NIC" if TARGET_TURRIS_MOX
232	default "gdsys" if TARGET_CONTROLCENTERDC
233	default "alliedtelesis" if TARGET_X530
234	default "mikrotik" if TARGET_CRS3XX_98DX3236
235
236config SYS_SOC
237	default "mvebu"
238
239choice
240	prompt "Boot method"
241	depends on SPL
242
243config MVEBU_SPL_BOOT_DEVICE_SPI
244	bool "SPI NOR flash"
245	imply ENV_IS_IN_SPI_FLASH
246	select SPL_DM_SPI
247	select SPL_SPI_FLASH_SUPPORT
248	select SPL_SPI_LOAD
249	select SPL_SPI_SUPPORT
250
251config MVEBU_SPL_BOOT_DEVICE_MMC
252	bool "SDIO/MMC card"
253	imply ENV_IS_IN_MMC
254	# GPIO needed for eMMC/SD card presence detection
255	select SPL_DM_GPIO
256	select SPL_DM_MMC
257	select SPL_GPIO_SUPPORT
258	select SPL_LIBDISK_SUPPORT
259	select SPL_MMC_SUPPORT
260
261config MVEBU_SPL_BOOT_DEVICE_SATA
262	bool "SATA"
263	select SPL_SATA_SUPPORT
264	select SPL_LIBDISK_SUPPORT
265
266config MVEBU_SPL_BOOT_DEVICE_UART
267	bool "UART"
268
269endchoice
270
271config MVEBU_EFUSE
272	bool "Enable eFuse support"
273	default n
274	depends on HAVE_MVEBU_EFUSE
275	help
276	  Enable support for reading and writing eFuses on mvebu SoCs.
277
278config MVEBU_EFUSE_FAKE
279	bool "Fake eFuse access (dry run)"
280	default n
281	depends on MVEBU_EFUSE
282	help
283	  This enables a "dry run" mode where eFuses are not really programmed.
284	  Instead the eFuse accesses are emulated by writing to and reading
285	  from a memory block.
286	  This is can be used for testing prog scripts.
287
288config SECURED_MODE_IMAGE
289	bool "Build image for trusted boot"
290	default false
291	depends on 88F6820
292	help
293	  Build an image that employs the ARMADA SoC's trusted boot framework
294	  for securely booting images.
295
296config SECURED_MODE_CSK_INDEX
297	int "Index of active CSK"
298	default 0
299	depends on SECURED_MODE_IMAGE
300
301source "board/solidrun/clearfog/Kconfig"
302source "board/kobol/helios4/Kconfig"
303
304endif
305