blob: 087643725e85261eeccf4799ab0b19baf409a4b8 [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
14 select SPL_SIMPLE_BUS if SPL
Michal Simek58008cb2018-07-23 15:55:15 +020015 select SUPPORT_SPL
Stefan Roesef2100f62019-04-12 16:42:28 +020016 select TRANSLATION_OFFSET
Stefan Roesef61aefc2016-05-17 15:00:30 +020017
18config ARMADA_64BIT
19 bool
20 select ARM64
21
22# ARMv7 SoCs...
Stefan Roese606576d2016-01-29 09:14:54 +010023config ARMADA_375
24 bool
Stefan Roesef61aefc2016-05-17 15:00:30 +020025 select ARMADA_32BIT
Stefan Roese606576d2016-01-29 09:14:54 +010026
Stefan Roese81e33f42015-12-21 13:56:33 +010027config ARMADA_38X
28 bool
Stefan Roesef61aefc2016-05-17 15:00:30 +020029 select ARMADA_32BIT
Mario Sixa1b6b0a2017-01-11 16:01:00 +010030 select HAVE_MVEBU_EFUSE
Stefan Roese81e33f42015-12-21 13:56:33 +010031
Joshua Scott28f0cbc2020-11-09 10:14:08 +130032config ARMADA_38X_HS_IMPEDANCE_THRESH
33 hex "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)"
34 depends on ARMADA_38X
35 default 0x6
36 range 0x0 0x7
37
Stefan Roese81e33f42015-12-21 13:56:33 +010038config ARMADA_XP
39 bool
Stefan Roesef61aefc2016-05-17 15:00:30 +020040 select ARMADA_32BIT
Stefan Roese81e33f42015-12-21 13:56:33 +010041
Stefan Roesef61aefc2016-05-17 15:00:30 +020042# ARMv8 SoCs...
43config ARMADA_3700
44 bool
45 select ARM64
46
Stefan Roese21b29fc2016-05-25 08:13:45 +020047# Armada 7K and 8K are very similar - use only one Kconfig symbol for both
48config ARMADA_8K
49 bool
50 select ARM64
51
Chris Packhama53d97a2016-10-26 14:08:30 +130052# Armada PLL frequency (used for NAND clock generation)
53config SYS_MVEBU_PLL_CLOCK
54 int
Chris Packham0d0df462019-04-11 22:22:50 +120055 default "2000000000" if ARMADA_XP || ARMADA_3700 || ARMADA_8K || ARMADA_MSYS
Chris Packhama53d97a2016-10-26 14:08:30 +130056 default "1000000000" if ARMADA_38X || ARMADA_375
57
Stefan Roesef61aefc2016-05-17 15:00:30 +020058# Armada XP/38x SoC types...
Phil Sutter42902522015-12-25 14:41:22 +010059config MV78230
60 bool
61 select ARMADA_XP
62
63config MV78260
64 bool
65 select ARMADA_XP
Simon Glass3bf926c2017-06-14 21:28:24 -060066 imply CMD_SATA
Phil Sutter42902522015-12-25 14:41:22 +010067
68config MV78460
69 bool
70 select ARMADA_XP
71
Chris Packham0d0df462019-04-11 22:22:50 +120072config ARMADA_MSYS
73 bool
74 select ARMADA_32BIT
75
76config 98DX4251
77 bool
78 select ARMADA_MSYS
79
80config 98DX3336
81 bool
82 select ARMADA_MSYS
83
84config 98DX3236
85 bool
86 select ARMADA_MSYS
87
Chris Packham53d601f2016-09-22 12:56:13 +120088config 88F6820
Phil Sutter42902522015-12-25 14:41:22 +010089 bool
90 select ARMADA_38X
91
Stefan Roesec3d89142015-08-25 13:18:38 +020092choice
Stefan Roese21b29fc2016-05-25 08:13:45 +020093 prompt "Armada XP/375/38x/3700/7K/8K board select"
Stefan Roesec3d89142015-08-25 13:18:38 +020094 optional
95
Stefan Roese0299c902015-10-20 15:14:47 +020096config TARGET_CLEARFOG
97 bool "Support ClearFog"
Chris Packham53d601f2016-09-22 12:56:13 +120098 select 88F6820
Baruch Siach867572f2020-01-20 14:20:13 +020099 select BOARD_LATE_INIT
Stefan Roese0299c902015-10-20 15:14:47 +0200100
Dennis Gilmoreae28a5f2018-06-11 19:39:53 -0500101config TARGET_HELIOS4
102 bool "Support Helios4"
103 select 88F6820
104
Konstantin Porotchkinc5330ae2017-02-16 13:52:22 +0200105config TARGET_MVEBU_ARMADA_37XX
106 bool "Support Armada 37xx platforms"
Stefan Roese01e62c72016-05-17 15:04:16 +0200107 select ARMADA_3700
Simon Glassfedb4282017-06-14 21:28:21 -0600108 imply SCSI
Stefan Roese01e62c72016-05-17 15:04:16 +0200109
Stefan Roese606576d2016-01-29 09:14:54 +0100110config TARGET_DB_88F6720
111 bool "Support DB-88F6720 Armada 375"
112 select ARMADA_375
113
Stefan Roesec3d89142015-08-25 13:18:38 +0200114config TARGET_DB_88F6820_GP
115 bool "Support DB-88F6820-GP"
Chris Packham53d601f2016-09-22 12:56:13 +1200116 select 88F6820
Stefan Roesec3d89142015-08-25 13:18:38 +0200117
Chris Packhamc0def242016-09-22 12:56:14 +1200118config TARGET_DB_88F6820_AMC
119 bool "Support DB-88F6820-AMC"
120 select 88F6820
121
Marek Behúnb6ee8602017-06-09 19:28:45 +0200122config TARGET_TURRIS_OMNIA
123 bool "Support Turris Omnia"
124 select 88F6820
Marek Behún539f0242019-05-02 16:53:37 +0200125 select BOARD_LATE_INIT
Marek Behún8420edc2019-05-02 16:53:28 +0200126 select DM_I2C
127 select I2C_MUX
128 select I2C_MUX_PCA954x
129 select SPL_I2C_MUX
130 select SYS_I2C_MVTWSI
Marek Behún6b26f3e2019-05-02 16:53:32 +0200131 select ATSHA204A
Marek Behúnb6ee8602017-06-09 19:28:45 +0200132
Marek Behún80af1a92018-04-24 17:21:31 +0200133config TARGET_TURRIS_MOX
134 bool "Support Turris Mox"
135 select ARMADA_3700
136
Stefan Roese633fa0e2016-10-25 10:56:19 +0200137config TARGET_MVEBU_ARMADA_8K
138 bool "Support Armada 7k/8k platforms"
Stefan Roese6f8c2d42016-05-25 08:21:21 +0200139 select ARMADA_8K
Tom Rinie5ec4812017-01-22 19:43:11 -0500140 select BOARD_LATE_INIT
Simon Glassfedb4282017-06-14 21:28:21 -0600141 imply SCSI
Stefan Roese6f8c2d42016-05-25 08:21:21 +0200142
Konstantin Porotchkinc4052262021-03-16 17:20:57 +0100143config TARGET_OCTEONTX2_CN913x
144 bool "Support CN913x platforms"
145 select ARMADA_8K
146 imply BOARD_EARLY_INIT_R
147 select BOARD_LATE_INIT
148 imply SCSI
149
Stefan Roesec3d89142015-08-25 13:18:38 +0200150config TARGET_DB_MV784MP_GP
151 bool "Support db-mv784mp-gp"
Phil Sutter42902522015-12-25 14:41:22 +0100152 select MV78460
Stefan Roesec3d89142015-08-25 13:18:38 +0200153
Phil Sutteraefb8f42015-12-25 14:41:25 +0100154config TARGET_DS414
155 bool "Support Synology DS414"
156 select MV78230
157
Stefan Roesec3d89142015-08-25 13:18:38 +0200158config TARGET_MAXBCM
159 bool "Support maxbcm"
Phil Sutter42902522015-12-25 14:41:22 +0100160 select MV78460
Stefan Roesec3d89142015-08-25 13:18:38 +0200161
Stefan Roeseb20c38a2016-01-20 08:13:29 +0100162config TARGET_THEADORABLE
163 bool "Support theadorable Armada XP"
Tom Rinie5ec4812017-01-22 19:43:11 -0500164 select BOARD_LATE_INIT if USB
Stefan Roeseb20c38a2016-01-20 08:13:29 +0100165 select MV78260
Simon Glass3bf926c2017-06-14 21:28:24 -0600166 imply CMD_SATA
Stefan Roeseb20c38a2016-01-20 08:13:29 +0100167
Dirk Eibach60083262017-02-22 16:07:23 +0100168config TARGET_CONTROLCENTERDC
169 bool "Support CONTROLCENTERDC"
170 select 88F6820
171
Chris Packham0e316662019-01-10 21:01:00 +1300172config TARGET_X530
173 bool "Support Allied Telesis x530"
174 select 88F6820
175
Chris Packham4db944a2019-04-11 22:22:53 +1200176config TARGET_DB_XC3_24G4XG
177 bool "Support DB-XC3-24G4XG"
178 select 98DX3336
179
Luka Kovacicdf9ebbe2020-05-26 20:17:50 +0200180config TARGET_CRS3XX_98DX3236
181 bool "Support CRS3XX-98DX3236"
Luka Kovacic22bb9132019-05-07 19:35:55 +0200182 select 98DX3236
183
Stefan Roesec3d89142015-08-25 13:18:38 +0200184endchoice
185
Tom Rini5b527c52021-08-21 13:50:13 -0400186choice
187 prompt "DDR bus width"
188 default DDR_64BIT
189 depends on ARMADA_XP
190
191config DDR_64BIT
192 bool "64bit bus width"
193
194config DDR_32BIT
195 bool "32bit bus width"
196
197endchoice
198
Tom Rinif66a3fd2021-08-21 13:50:15 -0400199config DDR_LOG_LEVEL
200 int "DDR training code log level"
201 depends on ARMADA_XP
202 default 0
203 range 0 3
204 help
205 Amount of information provided on error while running the DDR
206 training code. At level 0, provides an error code in a case of
207 failure, RL, WL errors and other algorithm failure. At level 1,
208 provides the D-Unit setup (SPD/Static configuration). At level 2,
209 provides the windows margin as a results of DQS centeralization.
210 At level 3, rovides the windows margin of each DQ as a results of
211 DQS centeralization.
212
Stefan Roeseb322c832015-12-21 13:40:37 +0100213config SYS_BOARD
214 default "clearfog" if TARGET_CLEARFOG
Dennis Gilmoreae28a5f2018-06-11 19:39:53 -0500215 default "helios4" if TARGET_HELIOS4
Konstantin Porotchkinc5330ae2017-02-16 13:52:22 +0200216 default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
Stefan Roese606576d2016-01-29 09:14:54 +0100217 default "db-88f6720" if TARGET_DB_88F6720
Stefan Roeseb322c832015-12-21 13:40:37 +0100218 default "db-88f6820-gp" if TARGET_DB_88F6820_GP
Chris Packhamc0def242016-09-22 12:56:14 +1200219 default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
Marek Behúnb6ee8602017-06-09 19:28:45 +0200220 default "turris_omnia" if TARGET_TURRIS_OMNIA
Marek Behún80af1a92018-04-24 17:21:31 +0200221 default "turris_mox" if TARGET_TURRIS_MOX
Stefan Roese633fa0e2016-10-25 10:56:19 +0200222 default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
Konstantin Porotchkinc4052262021-03-16 17:20:57 +0100223 default "octeontx2_cn913x" if TARGET_OCTEONTX2_CN913x
Stefan Roeseb322c832015-12-21 13:40:37 +0100224 default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
Phil Sutteraefb8f42015-12-25 14:41:25 +0100225 default "ds414" if TARGET_DS414
Stefan Roeseb322c832015-12-21 13:40:37 +0100226 default "maxbcm" if TARGET_MAXBCM
Stefan Roeseb20c38a2016-01-20 08:13:29 +0100227 default "theadorable" if TARGET_THEADORABLE
Baruch Siachd38f04f2018-06-18 21:56:23 +0300228 default "a38x" if TARGET_CONTROLCENTERDC
Chris Packham0e316662019-01-10 21:01:00 +1300229 default "x530" if TARGET_X530
Chris Packham4db944a2019-04-11 22:22:53 +1200230 default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
Luka Kovacicdf9ebbe2020-05-26 20:17:50 +0200231 default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
Stefan Roeseb322c832015-12-21 13:40:37 +0100232
233config SYS_CONFIG_NAME
234 default "clearfog" if TARGET_CLEARFOG
Dennis Gilmoreae28a5f2018-06-11 19:39:53 -0500235 default "helios4" if TARGET_HELIOS4
Konstantin Porotchkinc5330ae2017-02-16 13:52:22 +0200236 default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
Stefan Roese606576d2016-01-29 09:14:54 +0100237 default "db-88f6720" if TARGET_DB_88F6720
Stefan Roeseb322c832015-12-21 13:40:37 +0100238 default "db-88f6820-gp" if TARGET_DB_88F6820_GP
Chris Packhamc0def242016-09-22 12:56:14 +1200239 default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
Stefan Roese633fa0e2016-10-25 10:56:19 +0200240 default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
Konstantin Porotchkinc4052262021-03-16 17:20:57 +0100241 default "mvebu_armada-8k" if TARGET_OCTEONTX2_CN913x
Stefan Roeseb322c832015-12-21 13:40:37 +0100242 default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
Phil Sutteraefb8f42015-12-25 14:41:25 +0100243 default "ds414" if TARGET_DS414
Stefan Roeseb322c832015-12-21 13:40:37 +0100244 default "maxbcm" if TARGET_MAXBCM
Stefan Roeseb20c38a2016-01-20 08:13:29 +0100245 default "theadorable" if TARGET_THEADORABLE
Marek Behúnb6ee8602017-06-09 19:28:45 +0200246 default "turris_omnia" if TARGET_TURRIS_OMNIA
Marek Behún80af1a92018-04-24 17:21:31 +0200247 default "turris_mox" if TARGET_TURRIS_MOX
Baruch Siachd38f04f2018-06-18 21:56:23 +0300248 default "controlcenterdc" if TARGET_CONTROLCENTERDC
Chris Packham0e316662019-01-10 21:01:00 +1300249 default "x530" if TARGET_X530
Chris Packham4db944a2019-04-11 22:22:53 +1200250 default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
Luka Kovacicdf9ebbe2020-05-26 20:17:50 +0200251 default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
Stefan Roeseb322c832015-12-21 13:40:37 +0100252
253config SYS_VENDOR
254 default "Marvell" if TARGET_DB_MV784MP_GP
Konstantin Porotchkinc5330ae2017-02-16 13:52:22 +0200255 default "Marvell" if TARGET_MVEBU_ARMADA_37XX
Stefan Roese606576d2016-01-29 09:14:54 +0100256 default "Marvell" if TARGET_DB_88F6720
Stefan Roeseb322c832015-12-21 13:40:37 +0100257 default "Marvell" if TARGET_DB_88F6820_GP
Chris Packhamc0def242016-09-22 12:56:14 +1200258 default "Marvell" if TARGET_DB_88F6820_AMC
Stefan Roese633fa0e2016-10-25 10:56:19 +0200259 default "Marvell" if TARGET_MVEBU_ARMADA_8K
Konstantin Porotchkinc4052262021-03-16 17:20:57 +0100260 default "Marvell" if TARGET_OCTEONTX2_CN913x
Chris Packham4db944a2019-04-11 22:22:53 +1200261 default "Marvell" if TARGET_DB_XC3_24G4XG
262 default "Marvell" if TARGET_MVEBU_DB_88F7040
Stefan Roeseb322c832015-12-21 13:40:37 +0100263 default "solidrun" if TARGET_CLEARFOG
Dennis Gilmoreae28a5f2018-06-11 19:39:53 -0500264 default "kobol" if TARGET_HELIOS4
Phil Sutteraefb8f42015-12-25 14:41:25 +0100265 default "Synology" if TARGET_DS414
Marek Behúnb6ee8602017-06-09 19:28:45 +0200266 default "CZ.NIC" if TARGET_TURRIS_OMNIA
Marek Behún80af1a92018-04-24 17:21:31 +0200267 default "CZ.NIC" if TARGET_TURRIS_MOX
Baruch Siachd38f04f2018-06-18 21:56:23 +0300268 default "gdsys" if TARGET_CONTROLCENTERDC
Chris Packham0e316662019-01-10 21:01:00 +1300269 default "alliedtelesis" if TARGET_X530
Luka Kovacicdf9ebbe2020-05-26 20:17:50 +0200270 default "mikrotik" if TARGET_CRS3XX_98DX3236
Stefan Roeseb322c832015-12-21 13:40:37 +0100271
Stefan Roesec3d89142015-08-25 13:18:38 +0200272config SYS_SOC
273 default "mvebu"
274
Marek Behúnb6ee8602017-06-09 19:28:45 +0200275choice
Baruch Siachad105f52018-06-18 21:56:24 +0300276 prompt "Boot method"
Joel Johnsonab2f7572020-04-17 01:19:05 -0600277 depends on SPL
Marek Behúnb6ee8602017-06-09 19:28:45 +0200278
Baruch Siachad105f52018-06-18 21:56:24 +0300279config MVEBU_SPL_BOOT_DEVICE_SPI
Marek Behúnb6ee8602017-06-09 19:28:45 +0200280 bool "SPI NOR flash"
Joel Johnsonab2f7572020-04-17 01:19:05 -0600281 imply ENV_IS_IN_SPI_FLASH
Pali Rohár2226ca12021-07-23 11:14:29 +0200282 imply SPL_DM_SPI
283 imply SPL_SPI_FLASH_SUPPORT
284 imply SPL_SPI_LOAD
Simon Glassea2ca7e2021-08-08 12:20:14 -0600285 imply SPL_SPI
Pali Rohár9d0225b2021-07-23 11:14:25 +0200286 select SPL_BOOTROM_SUPPORT
Marek Behúnb6ee8602017-06-09 19:28:45 +0200287
Baruch Siachad105f52018-06-18 21:56:24 +0300288config MVEBU_SPL_BOOT_DEVICE_MMC
Marek Behúnb6ee8602017-06-09 19:28:45 +0200289 bool "SDIO/MMC card"
Joel Johnsonab2f7572020-04-17 01:19:05 -0600290 imply ENV_IS_IN_MMC
291 # GPIO needed for eMMC/SD card presence detection
Pali Rohár2226ca12021-07-23 11:14:29 +0200292 imply SPL_DM_GPIO
293 imply SPL_DM_MMC
294 imply SPL_GPIO
295 imply SPL_LIBDISK_SUPPORT
Simon Glass103c5f12021-08-08 12:20:09 -0600296 imply SPL_MMC
Pali Rohár9d0225b2021-07-23 11:14:25 +0200297 select SPL_BOOTROM_SUPPORT
Marek Behúnb6ee8602017-06-09 19:28:45 +0200298
Baruch Siach22c65452019-05-16 13:03:58 +0300299config MVEBU_SPL_BOOT_DEVICE_SATA
300 bool "SATA"
Simon Glassf7560372021-08-08 12:20:17 -0600301 imply SPL_SATA
Pali Rohár2226ca12021-07-23 11:14:29 +0200302 imply SPL_LIBDISK_SUPPORT
Pali Rohár9d0225b2021-07-23 11:14:25 +0200303 select SPL_BOOTROM_SUPPORT
Baruch Siach22c65452019-05-16 13:03:58 +0300304
Baruch Siach72c4e672018-06-18 21:56:26 +0300305config MVEBU_SPL_BOOT_DEVICE_UART
306 bool "UART"
Pali Rohár9d0225b2021-07-23 11:14:25 +0200307 select SPL_BOOTROM_SUPPORT
Baruch Siach72c4e672018-06-18 21:56:26 +0300308
Marek Behúnb6ee8602017-06-09 19:28:45 +0200309endchoice
310
Mario Sixa1b6b0a2017-01-11 16:01:00 +0100311config MVEBU_EFUSE
312 bool "Enable eFuse support"
Mario Sixa1b6b0a2017-01-11 16:01:00 +0100313 depends on HAVE_MVEBU_EFUSE
314 help
315 Enable support for reading and writing eFuses on mvebu SoCs.
316
317config MVEBU_EFUSE_FAKE
318 bool "Fake eFuse access (dry run)"
Mario Sixa1b6b0a2017-01-11 16:01:00 +0100319 depends on MVEBU_EFUSE
320 help
321 This enables a "dry run" mode where eFuses are not really programmed.
322 Instead the eFuse accesses are emulated by writing to and reading
323 from a memory block.
324 This is can be used for testing prog scripts.
325
326config SECURED_MODE_IMAGE
327 bool "Build image for trusted boot"
328 default false
329 depends on 88F6820
330 help
331 Build an image that employs the ARMADA SoC's trusted boot framework
332 for securely booting images.
333
334config SECURED_MODE_CSK_INDEX
335 int "Index of active CSK"
336 default 0
337 depends on SECURED_MODE_IMAGE
338
Joel Johnson9f205d62020-03-23 14:21:32 -0600339source "board/solidrun/clearfog/Kconfig"
Dennis Gilmore5a3db5d2020-12-08 21:07:36 -0600340source "board/kobol/helios4/Kconfig"
Joel Johnson9f205d62020-03-23 14:21:32 -0600341
Stefan Roesec3d89142015-08-25 13:18:38 +0200342endif