1 if ARCH_MVEBU
2 
3 config HAVE_MVEBU_EFUSE
4 	bool
5 	default n
6 
7 config 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 
19 config ARMADA_64BIT
20 	bool
21 	select ARM64
22 
23 # ARMv7 SoCs...
24 config ARMADA_375
25 	bool
26 	select ARMADA_32BIT
27 
28 config ARMADA_38X
29 	bool
30 	select ARMADA_32BIT
31 	select HAVE_MVEBU_EFUSE
32 
33 config 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 
39 config ARMADA_XP
40 	bool
41 	select ARMADA_32BIT
42 
43 # ARMv8 SoCs...
44 config ARMADA_3700
45 	bool
46 	select ARM64
47 
48 # Armada 7K and 8K are very similar - use only one Kconfig symbol for both
49 config ARMADA_8K
50 	bool
51 	select ARM64
52 
53 # Armada PLL frequency (used for NAND clock generation)
54 config 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...
60 config MV78230
61 	bool
62 	select ARMADA_XP
63 
64 config MV78260
65 	bool
66 	select ARMADA_XP
67 	imply CMD_SATA
68 
69 config MV78460
70 	bool
71 	select ARMADA_XP
72 
73 config ARMADA_MSYS
74 	bool
75 	select ARMADA_32BIT
76 
77 config 98DX4251
78 	bool
79 	select ARMADA_MSYS
80 
81 config 98DX3336
82 	bool
83 	select ARMADA_MSYS
84 
85 config 98DX3236
86 	bool
87 	select ARMADA_MSYS
88 
89 config 88F6820
90 	bool
91 	select ARMADA_38X
92 
93 choice
94 	prompt "Armada XP/375/38x/3700/7K/8K board select"
95 	optional
96 
97 config TARGET_CLEARFOG
98 	bool "Support ClearFog"
99 	select 88F6820
100 	select BOARD_LATE_INIT
101 
102 config TARGET_HELIOS4
103 	bool "Support Helios4"
104 	select 88F6820
105 
106 config TARGET_MVEBU_ARMADA_37XX
107 	bool "Support Armada 37xx platforms"
108 	select ARMADA_3700
109 	imply SCSI
110 
111 config TARGET_DB_88F6720
112 	bool "Support DB-88F6720 Armada 375"
113 	select ARMADA_375
114 
115 config TARGET_DB_88F6820_GP
116 	bool "Support DB-88F6820-GP"
117 	select 88F6820
118 
119 config TARGET_DB_88F6820_AMC
120 	bool "Support DB-88F6820-AMC"
121 	select 88F6820
122 
123 config 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 
134 config TARGET_TURRIS_MOX
135 	bool "Support Turris Mox"
136 	select ARMADA_3700
137 
138 config TARGET_MVEBU_ARMADA_8K
139 	bool "Support Armada 7k/8k platforms"
140 	select ARMADA_8K
141 	select BOARD_LATE_INIT
142 	imply SCSI
143 
144 config TARGET_DB_MV784MP_GP
145 	bool "Support db-mv784mp-gp"
146 	select MV78460
147 
148 config TARGET_DS414
149 	bool "Support Synology DS414"
150 	select MV78230
151 
152 config TARGET_MAXBCM
153 	bool "Support maxbcm"
154 	select MV78460
155 
156 config TARGET_THEADORABLE
157 	bool "Support theadorable Armada XP"
158 	select BOARD_LATE_INIT if USB
159 	select MV78260
160 	imply CMD_SATA
161 
162 config TARGET_CONTROLCENTERDC
163 	bool "Support CONTROLCENTERDC"
164 	select 88F6820
165 
166 config TARGET_X530
167 	bool "Support Allied Telesis x530"
168 	select 88F6820
169 
170 config TARGET_DB_XC3_24G4XG
171 	bool "Support DB-XC3-24G4XG"
172 	select 98DX3336
173 
174 config TARGET_CRS3XX_98DX3236
175 	bool "Support CRS3XX-98DX3236"
176 	select 98DX3236
177 
178 endchoice
179 
180 config 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 
199 config 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 
218 config 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 
236 config SYS_SOC
237 	default "mvebu"
238 
239 choice
240 	prompt "Boot method"
241 	depends on SPL
242 
243 config 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 
251 config 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 
261 config MVEBU_SPL_BOOT_DEVICE_SATA
262 	bool "SATA"
263 	select SPL_SATA_SUPPORT
264 	select SPL_LIBDISK_SUPPORT
265 
266 config MVEBU_SPL_BOOT_DEVICE_UART
267 	bool "UART"
268 
269 endchoice
270 
271 config 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 
278 config 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 
288 config 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 
296 config SECURED_MODE_CSK_INDEX
297 	int "Index of active CSK"
298 	default 0
299 	depends on SECURED_MODE_IMAGE
300 
301 source "board/solidrun/clearfog/Kconfig"
302 source "board/kobol/helios4/Kconfig"
303 
304 endif
305