summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2020-08-18 07:43:50 -0400
committerStefano Babic <sbabic@denx.de>2020-08-25 10:26:14 +0200
commitf27ffe4177a7cc09614e2f87012234c1e260c8f2 (patch)
tree60063c790cffd8f2029c769672bec870cb085f41 /arch
parent4992090ed4d6ca0b2aedb3e135f804ebfe06c431 (diff)
arm: mx6: Make all i.MX6 SoCs user-selectable
We have a number of platforms that are a combination of a carrier board and System-on-Module (SoM) that in turn allows for the board to have different SoCs on it. In some cases, this is handled via board-specific Kconfig options. In other cases we make use of CONFIG_SYS_EXTRA_OPTIONS. This latter case however can lead to invalid configurations as we will not in turn get options that in Kconfig are selected by or depend on that setting. To resolve this, make the SoC option a choice in Kconfig and make boards depend on what they can support. This change opens us up for further clean-ups in the cases where a single CONFIG_TARGET_xxx can support different SoCs and today they do not, or do not cleanly do so. Reported-by: Matt Porter <mporter@konsulko.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Fabio Estevam <festevam@gmail.com> Cc: "NXP i.MX U-Boot Team" <uboot-imx@nxp.com> Cc: Soeren Moch <smoch@web.de> Cc: Markus Niebel <Markus.Niebel@tq-group.com> Cc: Igor Opaniuk <igor.opaniuk@toradex.com> Cc: Heiko Schocher <hs@denx.de> Cc: Hannes Schmelzer <hannes.schmelzer@br-automation.com> Cc: Otavio Salvador <otavio@ossystems.com.br> Cc: Nikita Kiryanov <nikita@compulab.co.il> Cc: Andreas Geisreiter <ageisreiter@dh-electronics.de> Cc: Ludwig Zenz <lzenz@dh-electronics.de> Cc: Lukasz Majewski <lukma@denx.de> Cc: Akshay Bhat <akshaybhat@timesys.com> Cc: Ken Lin <Ken.Lin@advantech.com.tw> Cc: Ian Ray <ian.ray@ge.com> Cc: Tim Harvey <tharvey@gateworks.com> Cc: Jagan Teki <jagan@amarulasolutions.com> Cc: Raffaele RECALCATI <raffaele.recalcati@bticino.it> Cc: Simone CIANNI <simone.cianni@bticino.it> Cc: Adam Ford <aford173@gmail.com> Cc: Marcin Niestroj <m.niestroj@grinn-global.com> Cc: "Eric Bénard" <eric@eukrea.com> Cc: Baruch Siach <baruch@tkos.co.il> Cc: Jason Liu <jason.hui.liu@nxp.com> Cc: Ye Li <ye.li@nxp.com> Cc: Eric Nelson <eric@nelint.com> Cc: Troy Kisky <troy.kisky@boundarydevices.com> Cc: Peng Fan <peng.fan@nxp.com> Cc: Parthiban Nallathambi <parthiban@linumiz.com> Cc: Marek Vasut <marex@denx.de> Cc: "Sébastien Szymanski" <sebastien.szymanski@armadeus.com> Cc: Christian Gmeiner <christian.gmeiner@gmail.com> Cc: Niel Fourie <lusus@denx.de> Cc: Martyn Welch <martyn.welch@collabora.com> Cc: Richard Hu <richard.hu@technexion.com> Cc: Stefan Roese <sr@denx.de> Cc: Boris Brezillon <bbrezillon@kernel.org> Cc: Arkadiusz Karas <arkadiusz.karas@somlabs.com> Cc: Breno Lima <breno.lima@nxp.com> Cc: Francesco Montefoschi <francesco.montefoschi@udoo.org> Cc: Silvio Fricke <open-source@softing.de> Tested-by: Matt Porter <mporter@konsulko.com> [colibri_imx6] Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Marcin Niestroj <m.niestroj@grinn-global.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-imx/mx6/Kconfig134
1 files changed, 72 insertions, 62 deletions
diff --git a/arch/arm/mach-imx/mx6/Kconfig b/arch/arm/mach-imx/mx6/Kconfig
index 17173f9839..3d72517fa1 100644
--- a/arch/arm/mach-imx/mx6/Kconfig
+++ b/arch/arm/mach-imx/mx6/Kconfig
@@ -15,54 +15,64 @@ config MX6
select GPT_TIMER if !MX6UL && !MX6ULL
imply CMD_FUSE
+choice
+ prompt "i.MX6 SoC select"
+
config MX6D
- bool
+ bool "i.MX 6Dual SoC support"
select HAS_CAAM
select MX6_SMP
config MX6DL
- bool
+ bool "i.MX 6DualLite SoC support"
select HAS_CAAM
select MX6_SMP
config MX6Q
- bool
+ bool "i.MX 6Quad SoC support"
select HAS_CAAM
select MX6_SMP
config MX6QDL
- bool
+ bool "i.MX 6Dual and 6Quad SoC support"
select HAS_CAAM
select MX6_SMP
config MX6S
- bool
+ bool "i.MX 6Solo SoC support"
select HAS_CAAM
config MX6SL
- bool
+ bool "i.MX 6SoloLite SoC support"
config MX6SX
- bool
+ bool "i.MX 6SoloX SoC support"
select HAS_CAAM
select ROM_UNIFIED_SECTIONS
config MX6SLL
- bool
+ bool "i.MX 6SLL SoC support"
select ROM_UNIFIED_SECTIONS
config MX6UL
- bool
+ bool "i.MX 6UltraLite SoC support"
select HAS_CAAM
select ROM_UNIFIED_SECTIONS
select SYSCOUNTER_TIMER
select SYS_L2CACHE_OFF
+config MX6ULL
+ bool "i.MX 6ULL SoC support"
+ select ROM_UNIFIED_SECTIONS
+ select SYSCOUNTER_TIMER
+ select SYS_L2CACHE_OFF
+
+endchoice
+
config MX6UL_LITESOM
bool
select DM
select DM_THERMAL
- select MX6UL
select SUPPORT_SPL
imply CMD_DM
@@ -73,7 +83,6 @@ config MX6UL_OPOS6UL
select DM_GPIO
select DM_MMC
select DM_THERMAL
- select MX6UL
select SPL_DM if SPL
select SPL_OF_CONTROL if SPL
select SPL_PINCTRL if SPL
@@ -81,12 +90,6 @@ config MX6UL_OPOS6UL
select SUPPORT_SPL
imply CMD_DM
-config MX6ULL
- bool
- select ROM_UNIFIED_SECTIONS
- select SYSCOUNTER_TIMER
- select SYS_L2CACHE_OFF
-
config MX6_OCRAM_256KB
bool "Support 256KB OCRAM"
depends on MX6D || MX6Q
@@ -110,14 +113,14 @@ choice
config TARGET_ADVANTECH_DMS_BA16
bool "Advantech dms-ba16"
+ depends on MX6Q
select BOARD_LATE_INIT
- select MX6Q
imply CMD_SATA
config TARGET_APALIS_IMX6
bool "Toradex Apalis iMX6 board"
+ depends on MX6Q
select BOARD_LATE_INIT
- select MX6Q
select DM
select DM_SERIAL
select DM_THERMAL
@@ -127,8 +130,8 @@ config TARGET_APALIS_IMX6
config TARGET_ARISTAINETOS2
bool "aristainetos2"
+ depends on MX6DL
select BOARD_LATE_INIT
- select MX6DL
select SYS_I2C_MXC
select MXC_UART
select FEC_MXC
@@ -138,8 +141,8 @@ config TARGET_ARISTAINETOS2
config TARGET_ARISTAINETOS2B
bool "Support aristainetos2-revB"
+ depends on MX6DL
select BOARD_LATE_INIT
- select MX6DL
select SYS_I2C_MXC
select MXC_UART
select FEC_MXC
@@ -149,8 +152,8 @@ config TARGET_ARISTAINETOS2B
config TARGET_ARISTAINETOS2BCSL
bool "Support aristainetos2-revB CSL"
+ depends on MX6DL
select BOARD_LATE_INIT
- select MX6DL
select SYS_I2C_MXC
select MXC_UART
select FEC_MXC
@@ -160,8 +163,8 @@ config TARGET_ARISTAINETOS2BCSL
config TARGET_ARISTAINETOS2C
bool "Support aristainetos2-revC"
+ depends on MX6DL
select BOARD_LATE_INIT
- select MX6DL
select SYS_I2C_MXC
select MXC_UART
select FEC_MXC
@@ -171,20 +174,20 @@ config TARGET_ARISTAINETOS2C
config TARGET_CGTQMX6EVAL
bool "cgtqmx6eval"
+ depends on MX6QDL
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6QDL
select SUPPORT_SPL
imply CMD_DM
config TARGET_CM_FX6
bool "CM-FX6"
+ depends on MX6QDL
select BOARD_LATE_INIT
select DM
select DM_GPIO
select DM_SERIAL
- select MX6QDL
select SUPPORT_SPL
imply CMD_DM
@@ -199,14 +202,14 @@ config TARGET_COLIBRI_IMX6
config TARGET_COLIBRI_IMX6ULL
bool "Toradex Colibri iMX6ULL"
+ depends on MX6ULL
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6ULL
config TARGET_DART_6UL
bool "Variscite imx6ULL dart(DART-SOM-6ULL)"
- select MX6ULL
+ depends on MX6ULL
select DM
select DM_ETH
select DM_GPIO
@@ -218,17 +221,18 @@ config TARGET_DART_6UL
config TARGET_DHCOMIMX6
bool "dh_imx6"
+ depends on MX6QDL
select BOARD_EARLY_INIT_F
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6QDL
select SUPPORT_SPL
imply CMD_DM
imply CMD_SPL
config TARGET_DISPLAY5
bool "LWN DISPLAY5 board"
+ depends on MX6Q
select DM
select DM_ETH
select DM_I2C
@@ -246,12 +250,12 @@ config TARGET_EMBESTMX6BOARDS
config TARGET_GE_BX50V3
bool "General Electric Bx50v3"
+ depends on MX6Q
select BOARD_LATE_INIT
- select MX6Q
config TARGET_GW_VENTANA
bool "gw_ventana"
- select MX6QDL
+ depends on MX6QDL
select SUPPORT_SPL
imply CMD_SATA
imply CMD_SPL
@@ -272,7 +276,7 @@ config TARGET_KOSAGI_NOVENA
config TARGET_MCCMON6
bool "mccmon6"
- select MX6QDL
+ depends on MX6QDL
select SUPPORT_SPL
select DM
select DM_GPIO
@@ -284,13 +288,13 @@ config TARGET_MCCMON6
config TARGET_MX6CUBOXI
bool "Solid-run mx6 boards"
+ depends on MX6QDL
select BOARD_LATE_INIT
- select MX6QDL
select SUPPORT_SPL
config TARGET_MX6LOGICPD
bool "Logic PD i.MX6 SOM"
- select MX6Q
+ depends on MX6Q
select SUPPORT_SPL
select BOARD_EARLY_INIT_F
select BOARD_LATE_INIT
@@ -305,6 +309,7 @@ config TARGET_MX6LOGICPD
config TARGET_MX6MEMCAL
bool "mx6memcal"
+ depends on MX6QDL
select SUPPORT_SPL
help
The mx6memcal board is a virtual board that can be used to validate
@@ -316,6 +321,7 @@ config TARGET_MX6QARM2
config TARGET_MX6DL_MAMOJ
bool "Support BTicino Mamoj"
+ depends on MX6QDL
select DM
select DM_ETH
select DM_GPIO
@@ -324,7 +330,6 @@ config TARGET_MX6DL_MAMOJ
select DM_PMIC
select DM_PMIC_PFUZE100
select DM_THERMAL
- select MX6QDL
select OF_CONTROL
select PINCTRL
select SPL
@@ -348,6 +353,7 @@ config TARGET_MX6DL_MAMOJ
config TARGET_MX6Q_ENGICAM
bool "Support Engicam i.Core(RQS)"
+ depends on MX6QDL
select BOARD_LATE_INIT
select DM
select DM_ETH
@@ -355,7 +361,6 @@ config TARGET_MX6Q_ENGICAM
select DM_I2C
select DM_MMC
select DM_THERMAL
- select MX6QDL
select OF_CONTROL
select SPL_DM if SPL
select SPL_OF_CONTROL if SPL
@@ -367,75 +372,76 @@ config TARGET_MX6Q_ENGICAM
config TARGET_MX6SABREAUTO
bool "mx6sabreauto"
+ depends on MX6QDL
select BOARD_EARLY_INIT_F
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6QDL
select SUPPORT_SPL
imply CMD_DM
config TARGET_MX6SABRESD
bool "mx6sabresd"
+ depends on MX6QDL
select BOARD_EARLY_INIT_F
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6QDL
select SUPPORT_SPL
imply CMD_DM
config TARGET_MX6SLEVK
bool "mx6slevk"
- select MX6SL
+ depends on MX6SL
select SUPPORT_SPL
config TARGET_MX6SLLEVK
bool "mx6sll evk"
+ depends on MX6SLL
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6SLL
imply CMD_DM
config TARGET_MX6SXSABRESD
bool "mx6sxsabresd"
+ depends on MX6SX
select BOARD_EARLY_INIT_F
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6SX
select SUPPORT_SPL
config TARGET_MX6SXSABREAUTO
bool "mx6sxsabreauto"
+ depends on MX6SX
select BOARD_EARLY_INIT_F
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6SX
imply CMD_DM
config TARGET_MX6UL_9X9_EVK
bool "mx6ul_9x9_evk"
+ depends on MX6UL
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6UL
select SUPPORT_SPL
imply CMD_DM
config TARGET_MX6UL_14X14_EVK
bool "mx6ul_14x14_evk"
+ depends on MX6UL
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6UL
select SUPPORT_SPL
imply CMD_DM
config TARGET_MX6UL_ENGICAM
bool "Support Engicam GEAM6UL/Is.IoT"
+ depends on MX6UL
select BOARD_LATE_INIT
select DM
select DM_ETH
@@ -443,7 +449,6 @@ config TARGET_MX6UL_ENGICAM
select DM_I2C
select DM_MMC
select DM_THERMAL
- select MX6UL
select OF_CONTROL
select SPL_DM if SPL
select SPL_OF_CONTROL if SPL
@@ -454,15 +459,15 @@ config TARGET_MX6UL_ENGICAM
config TARGET_MX6ULL_14X14_EVK
bool "Support mx6ull_14x14_evk"
+ depends on MX6ULL
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6ULL
imply CMD_DM
config TARGET_MYS_6ULX
bool "MYiR MYS-6ULX"
- select MX6ULL
+ depends on MX6ULL
select DM
select DM_ETH
select DM_GPIO
@@ -474,14 +479,15 @@ config TARGET_MYS_6ULX
config TARGET_NITROGEN6X
bool "nitrogen6x"
+ depends on MX6DL || MX6Q || MX6QDL || MX6S
imply USB_ETHER_ASIX
imply USB_ETHER_MCS7830
imply USB_ETHER_SMSC95XX
imply USB_HOST_ETHER
- select MX6QDL
config TARGET_OPOS6ULDEV
bool "Armadeus OPOS6ULDev board"
+ depends on MX6UL
select MX6UL_OPOS6UL
config TARGET_OT1200
@@ -491,23 +497,24 @@ config TARGET_OT1200
config TARGET_PICO_IMX6
bool "PICO-IMX6"
+ depends on MX6QDL
select BOARD_EARLY_INIT_F
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6QDL
select SUPPORT_SPL
imply CMD_DM
config TARGET_PICO_IMX6UL
bool "PICO-IMX6UL-EMMC"
- select MX6UL
+ depends on MX6UL
select DM
select SUPPORT_SPL
imply CMD_DM
config TARGET_LITEBOARD
bool "Grinn liteBoard (i.MX6UL)"
+ depends on MX6UL
select BOARD_LATE_INIT
select MX6UL_LITESOM
@@ -521,22 +528,22 @@ config TARGET_PLATINUM_TITANIUM
config TARGET_PCM058
bool "Phytec PCM058 i.MX6 Quad"
+ depends on MX6Q
select BOARD_LATE_INIT
select SUPPORT_SPL
- select MX6Q
select DM
select OF_CONTROL
imply CMD_DM
config TARGET_PFLA02
bool "Phytec PFLA02 (PhyFlex) i.MX6 Quad"
+ depends on MX6QDL
select BOARD_LATE_INIT
- select MX6QDL
select SUPPORT_SPL
config TARGET_PCL063
bool "PHYTEC PCL063 (phyCORE-i.MX6UL)"
- select MX6UL
+ depends on MX6UL
select DM
select DM_ETH
select DM_GPIO
@@ -548,7 +555,7 @@ config TARGET_PCL063
config TARGET_PCL063_ULL
bool "PHYTEC PCL063 (phyCORE-i.MX6ULL)"
- select MX6ULL
+ depends on MX6ULL
select DM
select DM_ETH
select DM_GPIO
@@ -563,11 +570,12 @@ config TARGET_SECOMX6
config TARGET_SKSIMX6
bool "sks-imx6"
+ depends on MX6QDL
select SUPPORT_SPL
config TARGET_SOMLABS_VISIONSOM_6ULL
bool "visionsom-6ull"
- select MX6ULL
+ depends on MX6ULL
select BOARD_LATE_INIT
select DM
select DM_ETH
@@ -579,12 +587,15 @@ config TARGET_SOMLABS_VISIONSOM_6ULL
config TARGET_TBS2910
bool "TBS2910 Matrix ARM mini PC"
+ depends on MX6Q
config TARGET_TITANIUM
bool "titanium"
+ depends on MX6Q
config TARGET_KP_IMX6Q_TPC
bool "K+P KP_IMX6Q_TPC i.MX6 Quad"
+ depends on MX6QDL
select BOARD_EARLY_INIT_F
select BOARD_LATE_INIT
select DM
@@ -598,7 +609,6 @@ config TARGET_KP_IMX6Q_TPC
select DM_I2C
select DM_GPIO
select DM_USB
- select MX6QDL
select SUPPORT_SPL
select SPL_SEPARATE_BSS if SPL
imply CMD_DM
@@ -621,45 +631,45 @@ config TARGET_TQMA6
config TARGET_UDOO
bool "udoo"
+ depends on MX6QDL
select BOARD_LATE_INIT
- select MX6QDL
select SUPPORT_SPL
config TARGET_UDOO_NEO
bool "UDOO Neo"
+ depends on MX6SX
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6SX
select SUPPORT_SPL
imply CMD_DM
config TARGET_SOFTING_VINING_2000
bool "Softing VIN|ING 2000"
+ depends on MX6SX
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6SX
select SUPPORT_SPL
imply CMD_DM
config TARGET_WANDBOARD
bool "wandboard"
+ depends on MX6QDL
select BOARD_LATE_INIT
- select MX6QDL
select SUPPORT_SPL
config TARGET_WARP
bool "WaRP"
+ depends on MX6SL
select BOARD_LATE_INIT
- select MX6SL
config TARGET_XPRESS
bool "CCV xPress"
+ depends on MX6UL
select BOARD_LATE_INIT
select DM
select DM_THERMAL
- select MX6UL
select SUPPORT_SPL
imply CMD_DM
@@ -681,8 +691,8 @@ config TARGET_ZC5601
config TARGET_BRPPT2
bool "brppt2"
+ depends on MX6QDL
select BOARD_LATE_INIT
- select MX6QDL
select OF_CONTROL
select SPL_OF_LIBFDT
select DM