blob: e17a55a44261df3883c3df8e7a75ef71370678bb [file] [log] [blame]
Stefan Roesec3d89142015-08-25 13:18:38 +02001if ARCH_MVEBU
2
Mario Sixa1b6b0a2017-01-11 16:01:00 +01003config HAVE_MVEBU_EFUSE
4 bool
Mario Sixa1b6b0a2017-01-11 16:01:00 +01005
Stefan Roesef61aefc2016-05-17 15:00:30 +02006config ARMADA_32BIT
7 bool
Michal Simek58008cb2018-07-23 15:55:15 +02008 select ARCH_MISC_INIT
9 select BOARD_EARLY_INIT_F
Lokesh Vutlaacf15002018-04-26 18:21:26 +053010 select CPU_V7A
Stefan Roese237b6292019-04-11 08:58:32 +020011 select SPL_DM if SPL
12 select SPL_DM_SEQ_ALIAS if SPL
13 select SPL_OF_CONTROL if SPL
Tom Rini7609e022021-10-15 10:54:41 -040014 select SPL_SKIP_LOWLEVEL_INIT if SPL
Stefan Roese237b6292019-04-11 08:58:32 +020015 select SPL_SIMPLE_BUS if SPL
Michal Simek58008cb2018-07-23 15:55:15 +020016 select SUPPORT_SPL
Stefan Roesef2100f62019-04-12 16:42:28 +020017 select TRANSLATION_OFFSET
Stefan Roesef61aefc2016-05-17 15:00:30 +020018
19config ARMADA_64BIT
20 bool
21 select ARM64
22
23# ARMv7 SoCs...
Stefan Roese606576d2016-01-29 09:14:54 +010024config ARMADA_375
25 bool
Stefan Roesef61aefc2016-05-17 15:00:30 +020026 select ARMADA_32BIT
Stefan Roese606576d2016-01-29 09:14:54 +010027
Stefan Roese81e33f42015-12-21 13:56:33 +010028config ARMADA_38X
29 bool
Stefan Roesef61aefc2016-05-17 15:00:30 +020030 select ARMADA_32BIT
Mario Sixa1b6b0a2017-01-11 16:01:00 +010031 select HAVE_MVEBU_EFUSE
Stefan Roese81e33f42015-12-21 13:56:33 +010032
Joshua Scott28f0cbc2020-11-09 10:14:08 +130033config 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
Stefan Roese81e33f42015-12-21 13:56:33 +010039config ARMADA_XP
40 bool
Stefan Roesef61aefc2016-05-17 15:00:30 +020041 select ARMADA_32BIT
Stefan Roese81e33f42015-12-21 13:56:33 +010042
Stefan Roesef61aefc2016-05-17 15:00:30 +020043# ARMv8 SoCs...
44config ARMADA_3700
45 bool
46 select ARM64
47
Stefan Roese21b29fc2016-05-25 08:13:45 +020048# Armada 7K and 8K are very similar - use only one Kconfig symbol for both
49config ARMADA_8K
50 bool
51 select ARM64
52
Chris Packhama53d97a2016-10-26 14:08:30 +130053# Armada PLL frequency (used for NAND clock generation)
54config SYS_MVEBU_PLL_CLOCK
55 int
Chris Packham0d0df462019-04-11 22:22:50 +120056 default "2000000000" if ARMADA_XP || ARMADA_3700 || ARMADA_8K || ARMADA_MSYS
Chris Packhama53d97a2016-10-26 14:08:30 +130057 default "1000000000" if ARMADA_38X || ARMADA_375
58
Stefan Roesef61aefc2016-05-17 15:00:30 +020059# Armada XP/38x SoC types...
Phil Sutter42902522015-12-25 14:41:22 +010060config MV78230
61 bool
62 select ARMADA_XP
63
64config MV78260
65 bool
66 select ARMADA_XP
Simon Glass3bf926c2017-06-14 21:28:24 -060067 imply CMD_SATA
Phil Sutter42902522015-12-25 14:41:22 +010068
69config MV78460
70 bool
71 select ARMADA_XP
72
Chris Packham0d0df462019-04-11 22:22:50 +120073config 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
Chris Packham53d601f2016-09-22 12:56:13 +120089config 88F6820
Phil Sutter42902522015-12-25 14:41:22 +010090 bool
91 select ARMADA_38X
92
Stefan Roesec3d89142015-08-25 13:18:38 +020093choice
Stefan Roese21b29fc2016-05-25 08:13:45 +020094 prompt "Armada XP/375/38x/3700/7K/8K board select"
Stefan Roesec3d89142015-08-25 13:18:38 +020095 optional
96
Stefan Roese0299c902015-10-20 15:14:47 +020097config TARGET_CLEARFOG
98 bool "Support ClearFog"
Chris Packham53d601f2016-09-22 12:56:13 +120099 select 88F6820
Baruch Siach867572f2020-01-20 14:20:13 +0200100 select BOARD_LATE_INIT
Stefan Roese0299c902015-10-20 15:14:47 +0200101
Dennis Gilmoreae28a5f2018-06-11 19:39:53 -0500102config TARGET_HELIOS4
103 bool "Support Helios4"
104 select 88F6820
105
Konstantin Porotchkinc5330ae2017-02-16 13:52:22 +0200106config TARGET_MVEBU_ARMADA_37XX
107 bool "Support Armada 37xx platforms"
Stefan Roese01e62c72016-05-17 15:04:16 +0200108 select ARMADA_3700
Simon Glassfedb4282017-06-14 21:28:21 -0600109 imply SCSI
Stefan Roese01e62c72016-05-17 15:04:16 +0200110
Stefan Roese606576d2016-01-29 09:14:54 +0100111config TARGET_DB_88F6720
112 bool "Support DB-88F6720 Armada 375"
113 select ARMADA_375
114
Stefan Roesec3d89142015-08-25 13:18:38 +0200115config TARGET_DB_88F6820_GP
116 bool "Support DB-88F6820-GP"
Chris Packham53d601f2016-09-22 12:56:13 +1200117 select 88F6820
Stefan Roesec3d89142015-08-25 13:18:38 +0200118
Chris Packhamc0def242016-09-22 12:56:14 +1200119config TARGET_DB_88F6820_AMC
120 bool "Support DB-88F6820-AMC"
121 select 88F6820
122
Marek Behúnb6ee8602017-06-09 19:28:45 +0200123config TARGET_TURRIS_OMNIA
124 bool "Support Turris Omnia"
125 select 88F6820
Marek Behún539f0242019-05-02 16:53:37 +0200126 select BOARD_LATE_INIT
Marek Behún8420edc2019-05-02 16:53:28 +0200127 select DM_I2C
128 select I2C_MUX
129 select I2C_MUX_PCA954x
Marek Behún6d7bfb62021-10-09 19:33:46 +0200130 select SPL_DRIVERS_MISC
Marek Behún8420edc2019-05-02 16:53:28 +0200131 select SPL_I2C_MUX
Marek Behún2c8a4e42021-10-09 19:33:45 +0200132 select SPL_SYS_MALLOC_SIMPLE
Marek Behún8420edc2019-05-02 16:53:28 +0200133 select SYS_I2C_MVTWSI
Marek Behún6b26f3e2019-05-02 16:53:32 +0200134 select ATSHA204A
Marek Behúnb6ee8602017-06-09 19:28:45 +0200135
Marek Behún80af1a92018-04-24 17:21:31 +0200136config TARGET_TURRIS_MOX
137 bool "Support Turris Mox"
138 select ARMADA_3700
139
Stefan Roese633fa0e2016-10-25 10:56:19 +0200140config TARGET_MVEBU_ARMADA_8K
141 bool "Support Armada 7k/8k platforms"
Stefan Roese6f8c2d42016-05-25 08:21:21 +0200142 select ARMADA_8K
Tom Rinie5ec4812017-01-22 19:43:11 -0500143 select BOARD_LATE_INIT
Simon Glassfedb4282017-06-14 21:28:21 -0600144 imply SCSI
Stefan Roese6f8c2d42016-05-25 08:21:21 +0200145
Konstantin Porotchkinc4052262021-03-16 17:20:57 +0100146config TARGET_OCTEONTX2_CN913x
147 bool "Support CN913x platforms"
148 select ARMADA_8K
149 imply BOARD_EARLY_INIT_R
150 select BOARD_LATE_INIT
151 imply SCSI
152
Stefan Roesec3d89142015-08-25 13:18:38 +0200153config TARGET_DB_MV784MP_GP
154 bool "Support db-mv784mp-gp"
Tom Rinida8592d2022-02-25 11:19:46 -0500155 select BOARD_ECC_SUPPORT
Phil Sutter42902522015-12-25 14:41:22 +0100156 select MV78460
Stefan Roesec3d89142015-08-25 13:18:38 +0200157
Phil Sutteraefb8f42015-12-25 14:41:25 +0100158config TARGET_DS414
159 bool "Support Synology DS414"
160 select MV78230
161
Stefan Roesec3d89142015-08-25 13:18:38 +0200162config TARGET_MAXBCM
163 bool "Support maxbcm"
Tom Rinida8592d2022-02-25 11:19:46 -0500164 select BOARD_ECC_SUPPORT
Phil Sutter42902522015-12-25 14:41:22 +0100165 select MV78460
Stefan Roesec3d89142015-08-25 13:18:38 +0200166
Stefan Roeseb20c38a2016-01-20 08:13:29 +0100167config TARGET_THEADORABLE
168 bool "Support theadorable Armada XP"
Tom Rinie5ec4812017-01-22 19:43:11 -0500169 select BOARD_LATE_INIT if USB
Stefan Roeseb20c38a2016-01-20 08:13:29 +0100170 select MV78260
Simon Glass3bf926c2017-06-14 21:28:24 -0600171 imply CMD_SATA
Stefan Roeseb20c38a2016-01-20 08:13:29 +0100172
Dirk Eibach60083262017-02-22 16:07:23 +0100173config TARGET_CONTROLCENTERDC
174 bool "Support CONTROLCENTERDC"
175 select 88F6820
176
Chris Packham0e316662019-01-10 21:01:00 +1300177config TARGET_X530
178 bool "Support Allied Telesis x530"
179 select 88F6820
180
Chris Packham4db944a2019-04-11 22:22:53 +1200181config TARGET_DB_XC3_24G4XG
182 bool "Support DB-XC3-24G4XG"
183 select 98DX3336
184
Luka Kovacicdf9ebbe2020-05-26 20:17:50 +0200185config TARGET_CRS3XX_98DX3236
186 bool "Support CRS3XX-98DX3236"
Luka Kovacic22bb9132019-05-07 19:35:55 +0200187 select 98DX3236
188
Stefan Roesec3d89142015-08-25 13:18:38 +0200189endchoice
190
Tom Rini5b527c52021-08-21 13:50:13 -0400191choice
192 prompt "DDR bus width"
193 default DDR_64BIT
194 depends on ARMADA_XP
195
196config DDR_64BIT
197 bool "64bit bus width"
198
199config DDR_32BIT
200 bool "32bit bus width"
201
202endchoice
203
Tom Rinif66a3fd2021-08-21 13:50:15 -0400204config DDR_LOG_LEVEL
205 int "DDR training code log level"
206 depends on ARMADA_XP
207 default 0
208 range 0 3
209 help
210 Amount of information provided on error while running the DDR
211 training code. At level 0, provides an error code in a case of
212 failure, RL, WL errors and other algorithm failure. At level 1,
213 provides the D-Unit setup (SPD/Static configuration). At level 2,
214 provides the windows margin as a results of DQS centeralization.
215 At level 3, rovides the windows margin of each DQ as a results of
216 DQS centeralization.
217
Marek Behún871ee662022-02-17 13:54:42 +0100218config DDR_RESET_ON_TRAINING_FAILURE
219 bool "Reset the board on DDR training failure instead of hanging"
220 depends on ARMADA_38X || ARMADA_XP
221 help
222 If DDR training fails in SPL, reset the board instead of hanging.
223 Some boards are known to fail DDR training occasionally and an
224 immediate reset may be preferable to waiting until the board is
225 reset by watchdog (if there even is one).
226
227 Note that if booting via UART and the DDR training fails, the
228 device will still hang - it doesn't make sense to reset the board
229 in such a case.
230
Tom Rinida8592d2022-02-25 11:19:46 -0500231config BOARD_ECC_SUPPORT
232 bool
233
Stefan Roeseb322c832015-12-21 13:40:37 +0100234config SYS_BOARD
235 default "clearfog" if TARGET_CLEARFOG
Dennis Gilmoreae28a5f2018-06-11 19:39:53 -0500236 default "helios4" if TARGET_HELIOS4
Konstantin Porotchkinc5330ae2017-02-16 13:52:22 +0200237 default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
Stefan Roese606576d2016-01-29 09:14:54 +0100238 default "db-88f6720" if TARGET_DB_88F6720
Stefan Roeseb322c832015-12-21 13:40:37 +0100239 default "db-88f6820-gp" if TARGET_DB_88F6820_GP
Chris Packhamc0def242016-09-22 12:56:14 +1200240 default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
Marek Behúnb6ee8602017-06-09 19:28:45 +0200241 default "turris_omnia" if TARGET_TURRIS_OMNIA
Marek Behún80af1a92018-04-24 17:21:31 +0200242 default "turris_mox" if TARGET_TURRIS_MOX
Stefan Roese633fa0e2016-10-25 10:56:19 +0200243 default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
Konstantin Porotchkinc4052262021-03-16 17:20:57 +0100244 default "octeontx2_cn913x" if TARGET_OCTEONTX2_CN913x
Stefan Roeseb322c832015-12-21 13:40:37 +0100245 default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
Phil Sutteraefb8f42015-12-25 14:41:25 +0100246 default "ds414" if TARGET_DS414
Stefan Roeseb322c832015-12-21 13:40:37 +0100247 default "maxbcm" if TARGET_MAXBCM
Stefan Roeseb20c38a2016-01-20 08:13:29 +0100248 default "theadorable" if TARGET_THEADORABLE
Baruch Siachd38f04f2018-06-18 21:56:23 +0300249 default "a38x" if TARGET_CONTROLCENTERDC
Chris Packham0e316662019-01-10 21:01:00 +1300250 default "x530" if TARGET_X530
Chris Packham4db944a2019-04-11 22:22:53 +1200251 default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
Luka Kovacicdf9ebbe2020-05-26 20:17:50 +0200252 default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
Stefan Roeseb322c832015-12-21 13:40:37 +0100253
254config SYS_CONFIG_NAME
255 default "clearfog" if TARGET_CLEARFOG
Dennis Gilmoreae28a5f2018-06-11 19:39:53 -0500256 default "helios4" if TARGET_HELIOS4
Konstantin Porotchkinc5330ae2017-02-16 13:52:22 +0200257 default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
Stefan Roese606576d2016-01-29 09:14:54 +0100258 default "db-88f6720" if TARGET_DB_88F6720
Stefan Roeseb322c832015-12-21 13:40:37 +0100259 default "db-88f6820-gp" if TARGET_DB_88F6820_GP
Chris Packhamc0def242016-09-22 12:56:14 +1200260 default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
Stefan Roese633fa0e2016-10-25 10:56:19 +0200261 default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
Konstantin Porotchkinc4052262021-03-16 17:20:57 +0100262 default "mvebu_armada-8k" if TARGET_OCTEONTX2_CN913x
Stefan Roeseb322c832015-12-21 13:40:37 +0100263 default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
Phil Sutteraefb8f42015-12-25 14:41:25 +0100264 default "ds414" if TARGET_DS414
Stefan Roeseb322c832015-12-21 13:40:37 +0100265 default "maxbcm" if TARGET_MAXBCM
Stefan Roeseb20c38a2016-01-20 08:13:29 +0100266 default "theadorable" if TARGET_THEADORABLE
Marek Behúnb6ee8602017-06-09 19:28:45 +0200267 default "turris_omnia" if TARGET_TURRIS_OMNIA
Marek Behún80af1a92018-04-24 17:21:31 +0200268 default "turris_mox" if TARGET_TURRIS_MOX
Baruch Siachd38f04f2018-06-18 21:56:23 +0300269 default "controlcenterdc" if TARGET_CONTROLCENTERDC
Chris Packham0e316662019-01-10 21:01:00 +1300270 default "x530" if TARGET_X530
Chris Packham4db944a2019-04-11 22:22:53 +1200271 default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
Luka Kovacicdf9ebbe2020-05-26 20:17:50 +0200272 default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
Stefan Roeseb322c832015-12-21 13:40:37 +0100273
274config SYS_VENDOR
275 default "Marvell" if TARGET_DB_MV784MP_GP
Konstantin Porotchkinc5330ae2017-02-16 13:52:22 +0200276 default "Marvell" if TARGET_MVEBU_ARMADA_37XX
Stefan Roese606576d2016-01-29 09:14:54 +0100277 default "Marvell" if TARGET_DB_88F6720
Stefan Roeseb322c832015-12-21 13:40:37 +0100278 default "Marvell" if TARGET_DB_88F6820_GP
Chris Packhamc0def242016-09-22 12:56:14 +1200279 default "Marvell" if TARGET_DB_88F6820_AMC
Stefan Roese633fa0e2016-10-25 10:56:19 +0200280 default "Marvell" if TARGET_MVEBU_ARMADA_8K
Konstantin Porotchkinc4052262021-03-16 17:20:57 +0100281 default "Marvell" if TARGET_OCTEONTX2_CN913x
Chris Packham4db944a2019-04-11 22:22:53 +1200282 default "Marvell" if TARGET_DB_XC3_24G4XG
283 default "Marvell" if TARGET_MVEBU_DB_88F7040
Stefan Roeseb322c832015-12-21 13:40:37 +0100284 default "solidrun" if TARGET_CLEARFOG
Dennis Gilmoreae28a5f2018-06-11 19:39:53 -0500285 default "kobol" if TARGET_HELIOS4
Phil Sutteraefb8f42015-12-25 14:41:25 +0100286 default "Synology" if TARGET_DS414
Marek Behúnb6ee8602017-06-09 19:28:45 +0200287 default "CZ.NIC" if TARGET_TURRIS_OMNIA
Marek Behún80af1a92018-04-24 17:21:31 +0200288 default "CZ.NIC" if TARGET_TURRIS_MOX
Baruch Siachd38f04f2018-06-18 21:56:23 +0300289 default "gdsys" if TARGET_CONTROLCENTERDC
Chris Packham0e316662019-01-10 21:01:00 +1300290 default "alliedtelesis" if TARGET_X530
Luka Kovacicdf9ebbe2020-05-26 20:17:50 +0200291 default "mikrotik" if TARGET_CRS3XX_98DX3236
Stefan Roeseb322c832015-12-21 13:40:37 +0100292
Stefan Roesec3d89142015-08-25 13:18:38 +0200293config SYS_SOC
294 default "mvebu"
295
Marek Behúnb6ee8602017-06-09 19:28:45 +0200296choice
Baruch Siachad105f52018-06-18 21:56:24 +0300297 prompt "Boot method"
Joel Johnsonab2f7572020-04-17 01:19:05 -0600298 depends on SPL
Marek Behúnb6ee8602017-06-09 19:28:45 +0200299
Baruch Siachad105f52018-06-18 21:56:24 +0300300config MVEBU_SPL_BOOT_DEVICE_SPI
Marek Behúnb6ee8602017-06-09 19:28:45 +0200301 bool "SPI NOR flash"
Joel Johnsonab2f7572020-04-17 01:19:05 -0600302 imply ENV_IS_IN_SPI_FLASH
Pali Rohár2226ca12021-07-23 11:14:29 +0200303 imply SPL_DM_SPI
304 imply SPL_SPI_FLASH_SUPPORT
305 imply SPL_SPI_LOAD
Simon Glassea2ca7e2021-08-08 12:20:14 -0600306 imply SPL_SPI
Pali Rohár9d0225b2021-07-23 11:14:25 +0200307 select SPL_BOOTROM_SUPPORT
Marek Behúnb6ee8602017-06-09 19:28:45 +0200308
Baruch Siachad105f52018-06-18 21:56:24 +0300309config MVEBU_SPL_BOOT_DEVICE_MMC
Marek Behúnb6ee8602017-06-09 19:28:45 +0200310 bool "SDIO/MMC card"
Joel Johnsonab2f7572020-04-17 01:19:05 -0600311 imply ENV_IS_IN_MMC
312 # GPIO needed for eMMC/SD card presence detection
Pali Rohár2226ca12021-07-23 11:14:29 +0200313 imply SPL_DM_GPIO
314 imply SPL_DM_MMC
315 imply SPL_GPIO
316 imply SPL_LIBDISK_SUPPORT
Simon Glass103c5f12021-08-08 12:20:09 -0600317 imply SPL_MMC
Pali Rohár9d0225b2021-07-23 11:14:25 +0200318 select SPL_BOOTROM_SUPPORT
Marek Behúnb6ee8602017-06-09 19:28:45 +0200319
Baruch Siach22c65452019-05-16 13:03:58 +0300320config MVEBU_SPL_BOOT_DEVICE_SATA
321 bool "SATA"
Simon Glassf7560372021-08-08 12:20:17 -0600322 imply SPL_SATA
Pali Rohár2226ca12021-07-23 11:14:29 +0200323 imply SPL_LIBDISK_SUPPORT
Pali Rohár9d0225b2021-07-23 11:14:25 +0200324 select SPL_BOOTROM_SUPPORT
Baruch Siach22c65452019-05-16 13:03:58 +0300325
Baruch Siach72c4e672018-06-18 21:56:26 +0300326config MVEBU_SPL_BOOT_DEVICE_UART
327 bool "UART"
Pali Rohár9d0225b2021-07-23 11:14:25 +0200328 select SPL_BOOTROM_SUPPORT
Baruch Siach72c4e672018-06-18 21:56:26 +0300329
Marek Behúnb6ee8602017-06-09 19:28:45 +0200330endchoice
331
Mario Sixa1b6b0a2017-01-11 16:01:00 +0100332config MVEBU_EFUSE
333 bool "Enable eFuse support"
Mario Sixa1b6b0a2017-01-11 16:01:00 +0100334 depends on HAVE_MVEBU_EFUSE
335 help
336 Enable support for reading and writing eFuses on mvebu SoCs.
337
338config MVEBU_EFUSE_FAKE
339 bool "Fake eFuse access (dry run)"
Mario Sixa1b6b0a2017-01-11 16:01:00 +0100340 depends on MVEBU_EFUSE
341 help
342 This enables a "dry run" mode where eFuses are not really programmed.
343 Instead the eFuse accesses are emulated by writing to and reading
344 from a memory block.
345 This is can be used for testing prog scripts.
346
347config SECURED_MODE_IMAGE
348 bool "Build image for trusted boot"
349 default false
350 depends on 88F6820
351 help
352 Build an image that employs the ARMADA SoC's trusted boot framework
353 for securely booting images.
354
355config SECURED_MODE_CSK_INDEX
356 int "Index of active CSK"
357 default 0
358 depends on SECURED_MODE_IMAGE
359
Joel Johnson9f205d62020-03-23 14:21:32 -0600360source "board/solidrun/clearfog/Kconfig"
Dennis Gilmore5a3db5d2020-12-08 21:07:36 -0600361source "board/kobol/helios4/Kconfig"
Joel Johnson9f205d62020-03-23 14:21:32 -0600362
Stefan Roesec3d89142015-08-25 13:18:38 +0200363endif