blob: 7d487f270b511bc6901857ee953362b4aeef1873 [file] [log] [blame]
Stefan Roese383e0c12015-08-25 13:18:38 +02001if ARCH_MVEBU
2
Mario Six10d14492017-01-11 16:01:00 +01003config HAVE_MVEBU_EFUSE
4 bool
Mario Six10d14492017-01-11 16:01:00 +01005
Stefan Roese05b17652016-05-17 15:00:30 +02006config ARMADA_32BIT
7 bool
Michal Simek7e7ba3b2018-07-23 15:55:15 +02008 select ARCH_MISC_INIT
9 select BOARD_EARLY_INIT_F
Lokesh Vutla81b1a672018-04-26 18:21:26 +053010 select CPU_V7A
Stefan Roese1f1b3e92019-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 Rinib7cc2fe2021-10-15 10:54:41 -040014 select SPL_SKIP_LOWLEVEL_INIT if SPL
Stefan Roese1f1b3e92019-04-11 08:58:32 +020015 select SPL_SIMPLE_BUS if SPL
Michal Simek7e7ba3b2018-07-23 15:55:15 +020016 select SUPPORT_SPL
Stefan Roese85bddff2019-04-12 16:42:28 +020017 select TRANSLATION_OFFSET
Stefan Roese05b17652016-05-17 15:00:30 +020018
19config ARMADA_64BIT
20 bool
21 select ARM64
22
23# ARMv7 SoCs...
Stefan Roese9106ed02016-01-29 09:14:54 +010024config ARMADA_375
25 bool
Stefan Roese05b17652016-05-17 15:00:30 +020026 select ARMADA_32BIT
Stefan Roese9106ed02016-01-29 09:14:54 +010027
Stefan Roeseeb083e52015-12-21 13:56:33 +010028config ARMADA_38X
29 bool
Stefan Roese05b17652016-05-17 15:00:30 +020030 select ARMADA_32BIT
Mario Six10d14492017-01-11 16:01:00 +010031 select HAVE_MVEBU_EFUSE
Stefan Roeseeb083e52015-12-21 13:56:33 +010032
Joshua Scott4ba8e992020-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 Roeseeb083e52015-12-21 13:56:33 +010039config ARMADA_XP
40 bool
Stefan Roese05b17652016-05-17 15:00:30 +020041 select ARMADA_32BIT
42
43# ARMv8 SoCs...
44config ARMADA_3700
45 bool
46 select ARM64
Stefan Roeseeb083e52015-12-21 13:56:33 +010047
Stefan Roesecb410332016-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 Packham1d496682016-10-26 14:08:30 +130053# Armada PLL frequency (used for NAND clock generation)
54config SYS_MVEBU_PLL_CLOCK
55 int
Chris Packhama8f845e2019-04-11 22:22:50 +120056 default "2000000000" if ARMADA_XP || ARMADA_3700 || ARMADA_8K || ARMADA_MSYS
Chris Packham1d496682016-10-26 14:08:30 +130057 default "1000000000" if ARMADA_38X || ARMADA_375
58
Stefan Roese05b17652016-05-17 15:00:30 +020059# Armada XP/38x SoC types...
Phil Suttera7f94ad2015-12-25 14:41:22 +010060config MV78230
61 bool
62 select ARMADA_XP
63
64config MV78260
65 bool
66 select ARMADA_XP
Simon Glass203b3ab2017-06-14 21:28:24 -060067 imply CMD_SATA
Phil Suttera7f94ad2015-12-25 14:41:22 +010068
69config MV78460
70 bool
71 select ARMADA_XP
72
Chris Packhama8f845e2019-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 Packhamf5fc25b2016-09-22 12:56:13 +120089config 88F6820
Phil Suttera7f94ad2015-12-25 14:41:22 +010090 bool
91 select ARMADA_38X
92
Stefan Roese383e0c12015-08-25 13:18:38 +020093choice
Stefan Roesecb410332016-05-25 08:13:45 +020094 prompt "Armada XP/375/38x/3700/7K/8K board select"
Stefan Roese383e0c12015-08-25 13:18:38 +020095 optional
96
Stefan Roese73606402015-10-20 15:14:47 +020097config TARGET_CLEARFOG
98 bool "Support ClearFog"
Chris Packhamf5fc25b2016-09-22 12:56:13 +120099 select 88F6820
Baruch Siach1c5e95d2020-01-20 14:20:13 +0200100 select BOARD_LATE_INIT
Stefan Roese73606402015-10-20 15:14:47 +0200101
Dennis Gilmore77c39402018-06-11 19:39:53 -0500102config TARGET_HELIOS4
103 bool "Support Helios4"
104 select 88F6820
105
Konstantin Porotchkin7f8dfea2017-02-16 13:52:22 +0200106config TARGET_MVEBU_ARMADA_37XX
107 bool "Support Armada 37xx platforms"
Stefan Roese6edf27e2016-05-17 15:04:16 +0200108 select ARMADA_3700
Simon Glass0e5faf02017-06-14 21:28:21 -0600109 imply SCSI
Stefan Roese6edf27e2016-05-17 15:04:16 +0200110
Stefan Roese9106ed02016-01-29 09:14:54 +0100111config TARGET_DB_88F6720
112 bool "Support DB-88F6720 Armada 375"
113 select ARMADA_375
114
Stefan Roese383e0c12015-08-25 13:18:38 +0200115config TARGET_DB_88F6820_GP
116 bool "Support DB-88F6820-GP"
Chris Packhamf5fc25b2016-09-22 12:56:13 +1200117 select 88F6820
Stefan Roese383e0c12015-08-25 13:18:38 +0200118
Chris Packhama90dd4c2016-09-22 12:56:14 +1200119config TARGET_DB_88F6820_AMC
120 bool "Support DB-88F6820-AMC"
121 select 88F6820
122
Marek Behún09e16b82017-06-09 19:28:45 +0200123config TARGET_TURRIS_OMNIA
124 bool "Support Turris Omnia"
125 select 88F6820
Marek Behún0f2e66a2019-05-02 16:53:37 +0200126 select BOARD_LATE_INIT
Marek Behún1e4cbb92019-05-02 16:53:28 +0200127 select DM_I2C
128 select I2C_MUX
129 select I2C_MUX_PCA954x
Marek Behún4c3abea2021-10-09 19:33:46 +0200130 select SPL_DRIVERS_MISC
Marek Behún1e4cbb92019-05-02 16:53:28 +0200131 select SPL_I2C_MUX
Marek Behúnca6095b2021-10-09 19:33:45 +0200132 select SPL_SYS_MALLOC_SIMPLE
Marek Behún1e4cbb92019-05-02 16:53:28 +0200133 select SYS_I2C_MVTWSI
Marek Behún5e92efe2019-05-02 16:53:32 +0200134 select ATSHA204A
Marek Behún09e16b82017-06-09 19:28:45 +0200135
Marek Behúnf835bed2018-04-24 17:21:31 +0200136config TARGET_TURRIS_MOX
137 bool "Support Turris Mox"
138 select ARMADA_3700
139
Stefan Roese5c806f12016-10-25 10:56:19 +0200140config TARGET_MVEBU_ARMADA_8K
141 bool "Support Armada 7k/8k platforms"
Stefan Roese7be1b9b2016-05-25 08:21:21 +0200142 select ARMADA_8K
Tom Rini22d567e2017-01-22 19:43:11 -0500143 select BOARD_LATE_INIT
Simon Glass0e5faf02017-06-14 21:28:21 -0600144 imply SCSI
Stefan Roese7be1b9b2016-05-25 08:21:21 +0200145
Konstantin Porotchkin1d6ff1f2021-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 Roese383e0c12015-08-25 13:18:38 +0200153config TARGET_DB_MV784MP_GP
154 bool "Support db-mv784mp-gp"
Phil Suttera7f94ad2015-12-25 14:41:22 +0100155 select MV78460
Stefan Roese383e0c12015-08-25 13:18:38 +0200156
Phil Sutterd76eba62015-12-25 14:41:25 +0100157config TARGET_DS414
158 bool "Support Synology DS414"
159 select MV78230
160
Stefan Roese383e0c12015-08-25 13:18:38 +0200161config TARGET_MAXBCM
162 bool "Support maxbcm"
Phil Suttera7f94ad2015-12-25 14:41:22 +0100163 select MV78460
Stefan Roese383e0c12015-08-25 13:18:38 +0200164
Stefan Roese459e0642016-01-20 08:13:29 +0100165config TARGET_THEADORABLE
166 bool "Support theadorable Armada XP"
Tom Rini22d567e2017-01-22 19:43:11 -0500167 select BOARD_LATE_INIT if USB
Stefan Roese459e0642016-01-20 08:13:29 +0100168 select MV78260
Simon Glass203b3ab2017-06-14 21:28:24 -0600169 imply CMD_SATA
Stefan Roese459e0642016-01-20 08:13:29 +0100170
Dirk Eibachfb605942017-02-22 16:07:23 +0100171config TARGET_CONTROLCENTERDC
172 bool "Support CONTROLCENTERDC"
173 select 88F6820
174
Chris Packhamb55b2c92019-01-10 21:01:00 +1300175config TARGET_X530
176 bool "Support Allied Telesis x530"
177 select 88F6820
178
Chris Packham199e3182019-04-11 22:22:53 +1200179config TARGET_DB_XC3_24G4XG
180 bool "Support DB-XC3-24G4XG"
181 select 98DX3336
182
Luka Kovacic25acb8b2020-05-26 20:17:50 +0200183config TARGET_CRS3XX_98DX3236
184 bool "Support CRS3XX-98DX3236"
Luka Kovacicb686e222019-05-07 19:35:55 +0200185 select 98DX3236
186
Stefan Roese383e0c12015-08-25 13:18:38 +0200187endchoice
188
Tom Rini59180392021-08-21 13:50:13 -0400189choice
190 prompt "DDR bus width"
191 default DDR_64BIT
192 depends on ARMADA_XP
193
194config DDR_64BIT
195 bool "64bit bus width"
196
197config DDR_32BIT
198 bool "32bit bus width"
199
200endchoice
201
Tom Rini592bcd02021-08-21 13:50:15 -0400202config DDR_LOG_LEVEL
203 int "DDR training code log level"
204 depends on ARMADA_XP
205 default 0
206 range 0 3
207 help
208 Amount of information provided on error while running the DDR
209 training code. At level 0, provides an error code in a case of
210 failure, RL, WL errors and other algorithm failure. At level 1,
211 provides the D-Unit setup (SPD/Static configuration). At level 2,
212 provides the windows margin as a results of DQS centeralization.
213 At level 3, rovides the windows margin of each DQ as a results of
214 DQS centeralization.
215
Marek Behún90555af2022-02-17 13:54:42 +0100216config DDR_RESET_ON_TRAINING_FAILURE
217 bool "Reset the board on DDR training failure instead of hanging"
218 depends on ARMADA_38X || ARMADA_XP
219 help
220 If DDR training fails in SPL, reset the board instead of hanging.
221 Some boards are known to fail DDR training occasionally and an
222 immediate reset may be preferable to waiting until the board is
223 reset by watchdog (if there even is one).
224
225 Note that if booting via UART and the DDR training fails, the
226 device will still hang - it doesn't make sense to reset the board
227 in such a case.
228
Stefan Roeseb9f41bf2015-12-21 13:40:37 +0100229config SYS_BOARD
230 default "clearfog" if TARGET_CLEARFOG
Dennis Gilmore77c39402018-06-11 19:39:53 -0500231 default "helios4" if TARGET_HELIOS4
Konstantin Porotchkin7f8dfea2017-02-16 13:52:22 +0200232 default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
Stefan Roese9106ed02016-01-29 09:14:54 +0100233 default "db-88f6720" if TARGET_DB_88F6720
Stefan Roeseb9f41bf2015-12-21 13:40:37 +0100234 default "db-88f6820-gp" if TARGET_DB_88F6820_GP
Chris Packhama90dd4c2016-09-22 12:56:14 +1200235 default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
Marek Behún09e16b82017-06-09 19:28:45 +0200236 default "turris_omnia" if TARGET_TURRIS_OMNIA
Marek Behúnf835bed2018-04-24 17:21:31 +0200237 default "turris_mox" if TARGET_TURRIS_MOX
Stefan Roese5c806f12016-10-25 10:56:19 +0200238 default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
Konstantin Porotchkin1d6ff1f2021-03-16 17:20:57 +0100239 default "octeontx2_cn913x" if TARGET_OCTEONTX2_CN913x
Stefan Roeseb9f41bf2015-12-21 13:40:37 +0100240 default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
Phil Sutterd76eba62015-12-25 14:41:25 +0100241 default "ds414" if TARGET_DS414
Stefan Roeseb9f41bf2015-12-21 13:40:37 +0100242 default "maxbcm" if TARGET_MAXBCM
Stefan Roese459e0642016-01-20 08:13:29 +0100243 default "theadorable" if TARGET_THEADORABLE
Baruch Siachdaa6f082018-06-18 21:56:23 +0300244 default "a38x" if TARGET_CONTROLCENTERDC
Chris Packhamb55b2c92019-01-10 21:01:00 +1300245 default "x530" if TARGET_X530
Chris Packham199e3182019-04-11 22:22:53 +1200246 default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
Luka Kovacic25acb8b2020-05-26 20:17:50 +0200247 default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
Stefan Roeseb9f41bf2015-12-21 13:40:37 +0100248
249config SYS_CONFIG_NAME
250 default "clearfog" if TARGET_CLEARFOG
Dennis Gilmore77c39402018-06-11 19:39:53 -0500251 default "helios4" if TARGET_HELIOS4
Konstantin Porotchkin7f8dfea2017-02-16 13:52:22 +0200252 default "mvebu_armada-37xx" if TARGET_MVEBU_ARMADA_37XX
Stefan Roese9106ed02016-01-29 09:14:54 +0100253 default "db-88f6720" if TARGET_DB_88F6720
Stefan Roeseb9f41bf2015-12-21 13:40:37 +0100254 default "db-88f6820-gp" if TARGET_DB_88F6820_GP
Chris Packhama90dd4c2016-09-22 12:56:14 +1200255 default "db-88f6820-amc" if TARGET_DB_88F6820_AMC
Stefan Roese5c806f12016-10-25 10:56:19 +0200256 default "mvebu_armada-8k" if TARGET_MVEBU_ARMADA_8K
Konstantin Porotchkin1d6ff1f2021-03-16 17:20:57 +0100257 default "mvebu_armada-8k" if TARGET_OCTEONTX2_CN913x
Stefan Roeseb9f41bf2015-12-21 13:40:37 +0100258 default "db-mv784mp-gp" if TARGET_DB_MV784MP_GP
Phil Sutterd76eba62015-12-25 14:41:25 +0100259 default "ds414" if TARGET_DS414
Stefan Roeseb9f41bf2015-12-21 13:40:37 +0100260 default "maxbcm" if TARGET_MAXBCM
Stefan Roese459e0642016-01-20 08:13:29 +0100261 default "theadorable" if TARGET_THEADORABLE
Marek Behún09e16b82017-06-09 19:28:45 +0200262 default "turris_omnia" if TARGET_TURRIS_OMNIA
Marek Behúnf835bed2018-04-24 17:21:31 +0200263 default "turris_mox" if TARGET_TURRIS_MOX
Baruch Siachdaa6f082018-06-18 21:56:23 +0300264 default "controlcenterdc" if TARGET_CONTROLCENTERDC
Chris Packhamb55b2c92019-01-10 21:01:00 +1300265 default "x530" if TARGET_X530
Chris Packham199e3182019-04-11 22:22:53 +1200266 default "db-xc3-24g4xg" if TARGET_DB_XC3_24G4XG
Luka Kovacic25acb8b2020-05-26 20:17:50 +0200267 default "crs3xx-98dx3236" if TARGET_CRS3XX_98DX3236
Stefan Roeseb9f41bf2015-12-21 13:40:37 +0100268
269config SYS_VENDOR
270 default "Marvell" if TARGET_DB_MV784MP_GP
Konstantin Porotchkin7f8dfea2017-02-16 13:52:22 +0200271 default "Marvell" if TARGET_MVEBU_ARMADA_37XX
Stefan Roese9106ed02016-01-29 09:14:54 +0100272 default "Marvell" if TARGET_DB_88F6720
Stefan Roeseb9f41bf2015-12-21 13:40:37 +0100273 default "Marvell" if TARGET_DB_88F6820_GP
Chris Packhama90dd4c2016-09-22 12:56:14 +1200274 default "Marvell" if TARGET_DB_88F6820_AMC
Stefan Roese5c806f12016-10-25 10:56:19 +0200275 default "Marvell" if TARGET_MVEBU_ARMADA_8K
Konstantin Porotchkin1d6ff1f2021-03-16 17:20:57 +0100276 default "Marvell" if TARGET_OCTEONTX2_CN913x
Chris Packham199e3182019-04-11 22:22:53 +1200277 default "Marvell" if TARGET_DB_XC3_24G4XG
278 default "Marvell" if TARGET_MVEBU_DB_88F7040
Stefan Roeseb9f41bf2015-12-21 13:40:37 +0100279 default "solidrun" if TARGET_CLEARFOG
Dennis Gilmore77c39402018-06-11 19:39:53 -0500280 default "kobol" if TARGET_HELIOS4
Phil Sutterd76eba62015-12-25 14:41:25 +0100281 default "Synology" if TARGET_DS414
Marek Behún09e16b82017-06-09 19:28:45 +0200282 default "CZ.NIC" if TARGET_TURRIS_OMNIA
Marek Behúnf835bed2018-04-24 17:21:31 +0200283 default "CZ.NIC" if TARGET_TURRIS_MOX
Baruch Siachdaa6f082018-06-18 21:56:23 +0300284 default "gdsys" if TARGET_CONTROLCENTERDC
Chris Packhamb55b2c92019-01-10 21:01:00 +1300285 default "alliedtelesis" if TARGET_X530
Luka Kovacic25acb8b2020-05-26 20:17:50 +0200286 default "mikrotik" if TARGET_CRS3XX_98DX3236
Stefan Roeseb9f41bf2015-12-21 13:40:37 +0100287
Stefan Roese383e0c12015-08-25 13:18:38 +0200288config SYS_SOC
289 default "mvebu"
290
Marek Behún09e16b82017-06-09 19:28:45 +0200291choice
Baruch Siach8d196a42018-06-18 21:56:24 +0300292 prompt "Boot method"
Joel Johnsona2018ab2020-04-17 01:19:05 -0600293 depends on SPL
Marek Behún09e16b82017-06-09 19:28:45 +0200294
Baruch Siach8d196a42018-06-18 21:56:24 +0300295config MVEBU_SPL_BOOT_DEVICE_SPI
Marek Behún09e16b82017-06-09 19:28:45 +0200296 bool "SPI NOR flash"
Joel Johnsona2018ab2020-04-17 01:19:05 -0600297 imply ENV_IS_IN_SPI_FLASH
Pali Rohárcf97b822021-07-23 11:14:29 +0200298 imply SPL_DM_SPI
299 imply SPL_SPI_FLASH_SUPPORT
300 imply SPL_SPI_LOAD
Simon Glassa5820472021-08-08 12:20:14 -0600301 imply SPL_SPI
Pali Rohára3a38e52021-07-23 11:14:25 +0200302 select SPL_BOOTROM_SUPPORT
Marek Behún09e16b82017-06-09 19:28:45 +0200303
Baruch Siach8d196a42018-06-18 21:56:24 +0300304config MVEBU_SPL_BOOT_DEVICE_MMC
Marek Behún09e16b82017-06-09 19:28:45 +0200305 bool "SDIO/MMC card"
Joel Johnsona2018ab2020-04-17 01:19:05 -0600306 imply ENV_IS_IN_MMC
307 # GPIO needed for eMMC/SD card presence detection
Pali Rohárcf97b822021-07-23 11:14:29 +0200308 imply SPL_DM_GPIO
309 imply SPL_DM_MMC
310 imply SPL_GPIO
311 imply SPL_LIBDISK_SUPPORT
Simon Glassb58bfe02021-08-08 12:20:09 -0600312 imply SPL_MMC
Pali Rohára3a38e52021-07-23 11:14:25 +0200313 select SPL_BOOTROM_SUPPORT
Marek Behún09e16b82017-06-09 19:28:45 +0200314
Baruch Siachb936a272019-05-16 13:03:58 +0300315config MVEBU_SPL_BOOT_DEVICE_SATA
316 bool "SATA"
Simon Glass081a45a2021-08-08 12:20:17 -0600317 imply SPL_SATA
Pali Rohárcf97b822021-07-23 11:14:29 +0200318 imply SPL_LIBDISK_SUPPORT
Pali Rohára3a38e52021-07-23 11:14:25 +0200319 select SPL_BOOTROM_SUPPORT
Baruch Siachb936a272019-05-16 13:03:58 +0300320
Baruch Siachb35c4472018-06-18 21:56:26 +0300321config MVEBU_SPL_BOOT_DEVICE_UART
322 bool "UART"
Pali Rohára3a38e52021-07-23 11:14:25 +0200323 select SPL_BOOTROM_SUPPORT
Baruch Siachb35c4472018-06-18 21:56:26 +0300324
Marek Behún09e16b82017-06-09 19:28:45 +0200325endchoice
326
Mario Six10d14492017-01-11 16:01:00 +0100327config MVEBU_EFUSE
328 bool "Enable eFuse support"
Mario Six10d14492017-01-11 16:01:00 +0100329 depends on HAVE_MVEBU_EFUSE
330 help
331 Enable support for reading and writing eFuses on mvebu SoCs.
332
333config MVEBU_EFUSE_FAKE
334 bool "Fake eFuse access (dry run)"
Mario Six10d14492017-01-11 16:01:00 +0100335 depends on MVEBU_EFUSE
336 help
337 This enables a "dry run" mode where eFuses are not really programmed.
338 Instead the eFuse accesses are emulated by writing to and reading
339 from a memory block.
340 This is can be used for testing prog scripts.
341
342config SECURED_MODE_IMAGE
343 bool "Build image for trusted boot"
344 default false
345 depends on 88F6820
346 help
347 Build an image that employs the ARMADA SoC's trusted boot framework
348 for securely booting images.
349
350config SECURED_MODE_CSK_INDEX
351 int "Index of active CSK"
352 default 0
353 depends on SECURED_MODE_IMAGE
354
Joel Johnson28bf4ca2020-03-23 14:21:32 -0600355source "board/solidrun/clearfog/Kconfig"
Dennis Gilmore838e49b2020-12-08 21:07:36 -0600356source "board/kobol/helios4/Kconfig"
Joel Johnson28bf4ca2020-03-23 14:21:32 -0600357
Stefan Roese383e0c12015-08-25 13:18:38 +0200358endif