2018-12-13 13:19:14

by Abel Vesa

[permalink] [raw]
Subject: [PATCH 0/3] i.MX8MQ build dependency fixes

These patches will probably have to be take through different
trees, but the order has to be kept otherwise this won't work.

I can resend as separate patches (if necessary) as long as we can
get them in together.

Abel Vesa (3):
arm64: Remove CONFIG_SOC_IMX8MQ and use ARCH_MXC instead
clk: imx: Build imx8mq clocks on arm64 only
arm64: Add i.MX8 boot necesarry configs to defconfig

arch/arm64/Kconfig.platforms | 8 --------
arch/arm64/boot/dts/freescale/Makefile | 2 +-
arch/arm64/configs/defconfig | 5 +++++
drivers/clk/imx/Makefile | 11 ++++++-----
drivers/phy/freescale/Kconfig | 2 +-
drivers/pinctrl/freescale/Kconfig | 2 +-
drivers/soc/imx/Kconfig | 2 +-
7 files changed, 15 insertions(+), 17 deletions(-)

--
2.7.4



2018-12-13 13:19:18

by Abel Vesa

[permalink] [raw]
Subject: [PATCH 2/3] clk: imx: Build imx8mq clocks on arm64 only

The composite-8m, frac and sccg clocks are not used by any arm32 IMX SoC,
therefore build them only on arm64. CONFIG_ARCH_MXC is arm64 only,
use that.

Signed-off-by: Abel Vesa <[email protected]>
---
drivers/clk/imx/Makefile | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile
index 62a1882..cc95744 100644
--- a/drivers/clk/imx/Makefile
+++ b/drivers/clk/imx/Makefile
@@ -3,13 +3,11 @@
obj-y += \
clk.o \
clk-busy.o \
- clk-composite-8m.o \
clk-cpu.o \
clk-composite-7ulp.o \
clk-divider-gate.o \
clk-fixup-div.o \
clk-fixup-mux.o \
- clk-frac-pll.o \
clk-gate-exclusive.o \
clk-gate2.o \
clk-pfd.o \
@@ -17,8 +15,7 @@ obj-y += \
clk-pllv1.o \
clk-pllv2.o \
clk-pllv3.o \
- clk-pllv4.o \
- clk-sccg-pll.o
+ clk-pllv4.o

obj-$(CONFIG_SOC_IMX1) += clk-imx1.o
obj-$(CONFIG_SOC_IMX21) += clk-imx21.o
@@ -36,4 +33,7 @@ obj-$(CONFIG_SOC_IMX7D) += clk-imx7d.o
obj-$(CONFIG_SOC_IMX7ULP) += clk-imx7ulp.o
obj-$(CONFIG_SOC_VF610) += clk-vf610.o

-obj-$(CONFIG_ARCH_MXC) += clk-imx8mq.o
+obj-$(CONFIG_ARCH_MXC) += clk-imx8mq.o \
+ clk-composite-8m.o \
+ clk-frac-pll.o \
+ clk-sccg-pll.o
--
2.7.4


2018-12-13 13:19:48

by Abel Vesa

[permalink] [raw]
Subject: [PATCH 3/3] arm64: Add i.MX8 boot necesarry configs to defconfig

The CONFIG_ARCH_MXC will enable all the i.MX8 SoC.
Also add the FEC config for ethernet support, the serial
and the pinctrl for i.MX8MQ.

Signed-off-by: Abel Vesa <[email protected]>
---
arch/arm64/configs/defconfig | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 5c2b1f6..a129e5e 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -45,6 +45,7 @@ CONFIG_ARCH_HISI=y
CONFIG_ARCH_MEDIATEK=y
CONFIG_ARCH_MESON=y
CONFIG_ARCH_MVEBU=y
+CONFIG_ARCH_MXC=y
CONFIG_ARCH_QCOM=y
CONFIG_ARCH_ROCKCHIP=y
CONFIG_ARCH_SEATTLE=y
@@ -226,6 +227,7 @@ CONFIG_NET_XGENE=y
CONFIG_ATL1C=m
CONFIG_MACB=y
CONFIG_THUNDER_NIC_PF=y
+CONFIG_FEC=y
CONFIG_HIX5HD2_GMAC=y
CONFIG_HNS_DSAF=y
CONFIG_HNS_ENET=y
@@ -300,6 +302,8 @@ CONFIG_SERIAL_MESON_CONSOLE=y
CONFIG_SERIAL_SAMSUNG=y
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
CONFIG_SERIAL_TEGRA=y
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
CONFIG_SERIAL_SH_SCI=y
CONFIG_SERIAL_MSM=y
CONFIG_SERIAL_MSM_CONSOLE=y
@@ -346,6 +350,7 @@ CONFIG_SPI_SPIDEV=m
CONFIG_SPMI=y
CONFIG_PINCTRL_SINGLE=y
CONFIG_PINCTRL_MAX77620=y
+CONFIG_PINCTRL_IMX8MQ=y
CONFIG_PINCTRL_IPQ8074=y
CONFIG_PINCTRL_MSM8916=y
CONFIG_PINCTRL_MSM8994=y
--
2.7.4


2018-12-13 13:20:29

by Abel Vesa

[permalink] [raw]
Subject: [PATCH 1/3] arm64: Remove CONFIG_SOC_IMX8MQ and use ARCH_MXC instead

To keep aligned with arm64, remove the unnecessary SOC_IMX8MQ and use
ARCH_MXC instead.

Signed-off-by: Abel Vesa <[email protected]>
---
arch/arm64/Kconfig.platforms | 8 --------
arch/arm64/boot/dts/freescale/Makefile | 2 +-
drivers/clk/imx/Makefile | 3 ++-
drivers/phy/freescale/Kconfig | 2 +-
drivers/pinctrl/freescale/Kconfig | 2 +-
drivers/soc/imx/Kconfig | 2 +-
6 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
index 7e1545a..318dbb9 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -148,14 +148,6 @@ config ARCH_MXC
This enables support for the ARMv8 based SoCs in the
NXP i.MX family.

-config SOC_IMX8MQ
- bool "i.MX8MQ support"
- depends on ARCH_MXC
- select ARM64_ERRATUM_843419
- select ARM64_ERRATUM_845719
- help
- This enables support for the i.MX8MQ SoC.
-
config ARCH_QCOM
bool "Qualcomm Platforms"
select GPIOLIB
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 0001361..f9be242 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -19,4 +19,4 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-rdb.dtb
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb

-dtb-$(CONFIG_SOC_IMX8MQ) += imx8mq-evk.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb
diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile
index 5c0b11e..62a1882 100644
--- a/drivers/clk/imx/Makefile
+++ b/drivers/clk/imx/Makefile
@@ -34,5 +34,6 @@ obj-$(CONFIG_SOC_IMX6SX) += clk-imx6sx.o
obj-$(CONFIG_SOC_IMX6UL) += clk-imx6ul.o
obj-$(CONFIG_SOC_IMX7D) += clk-imx7d.o
obj-$(CONFIG_SOC_IMX7ULP) += clk-imx7ulp.o
-obj-$(CONFIG_SOC_IMX8MQ) += clk-imx8mq.o
obj-$(CONFIG_SOC_VF610) += clk-vf610.o
+
+obj-$(CONFIG_ARCH_MXC) += clk-imx8mq.o
diff --git a/drivers/phy/freescale/Kconfig b/drivers/phy/freescale/Kconfig
index f050bd4..923c0ef 100644
--- a/drivers/phy/freescale/Kconfig
+++ b/drivers/phy/freescale/Kconfig
@@ -2,4 +2,4 @@ config PHY_FSL_IMX8MQ_USB
tristate "Freescale i.MX8M USB3 PHY"
depends on OF && HAS_IOMEM
select GENERIC_PHY
- default SOC_IMX8MQ
+ default ARCH_MXC
diff --git a/drivers/pinctrl/freescale/Kconfig b/drivers/pinctrl/freescale/Kconfig
index 2d6db43..9874a16 100644
--- a/drivers/pinctrl/freescale/Kconfig
+++ b/drivers/pinctrl/freescale/Kconfig
@@ -123,7 +123,7 @@ config PINCTRL_IMX7ULP

config PINCTRL_IMX8MQ
bool "IMX8MQ pinctrl driver"
- depends on SOC_IMX8MQ
+ depends on ARCH_MXC
select PINCTRL_IMX
help
Say Y here to enable the imx8mq pinctrl driver
diff --git a/drivers/soc/imx/Kconfig b/drivers/soc/imx/Kconfig
index 2112d18..7ffbb6b 100644
--- a/drivers/soc/imx/Kconfig
+++ b/drivers/soc/imx/Kconfig
@@ -2,7 +2,7 @@ menu "i.MX SoC drivers"

config IMX_GPCV2_PM_DOMAINS
bool "i.MX GPCv2 PM domains"
- depends on SOC_IMX7D || SOC_IMX8MQ || (COMPILE_TEST && OF)
+ depends on SOC_IMX7D || ARCH_MXC || (COMPILE_TEST && OF)
depends on PM
select PM_GENERIC_DOMAINS
default y if SOC_IMX7D
--
2.7.4


2018-12-13 13:24:36

by Abel Vesa

[permalink] [raw]
Subject: Re: [PATCH 0/3] i.MX8MQ build dependency fixes

On 18-12-13 13:17:40, Abel Vesa wrote:
> These patches will probably have to be take through different
> trees, but the order has to be kept otherwise this won't work.
>
> I can resend as separate patches (if necessary) as long as we can
> get them in together.
>

Please ignore this patch series.
Seems ARCH_MXC is a poor choice. Needs a proper look.

Sorry about that.

> Abel Vesa (3):
> arm64: Remove CONFIG_SOC_IMX8MQ and use ARCH_MXC instead
> clk: imx: Build imx8mq clocks on arm64 only
> arm64: Add i.MX8 boot necesarry configs to defconfig
>
> arch/arm64/Kconfig.platforms | 8 --------
> arch/arm64/boot/dts/freescale/Makefile | 2 +-
> arch/arm64/configs/defconfig | 5 +++++
> drivers/clk/imx/Makefile | 11 ++++++-----
> drivers/phy/freescale/Kconfig | 2 +-
> drivers/pinctrl/freescale/Kconfig | 2 +-
> drivers/soc/imx/Kconfig | 2 +-
> 7 files changed, 15 insertions(+), 17 deletions(-)
>
> --
> 2.7.4
>

2018-12-13 13:26:07

by Aisheng Dong

[permalink] [raw]
Subject: RE: [PATCH 2/3] clk: imx: Build imx8mq clocks on arm64 only

> -----Original Message-----
> From: Abel Vesa
> Sent: Thursday, December 13, 2018 9:18 PM
> Subject: [PATCH 2/3] clk: imx: Build imx8mq clocks on arm64 only
>
> The composite-8m, frac and sccg clocks are not used by any arm32 IMX SoC,
> therefore build them only on arm64. CONFIG_ARCH_MXC is arm64 only, use
> that.

CONFIG_ARCH_MXC is not ARM64 only.

>
> Signed-off-by: Abel Vesa <[email protected]>
> ---
> drivers/clk/imx/Makefile | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile index
> 62a1882..cc95744 100644
> --- a/drivers/clk/imx/Makefile
> +++ b/drivers/clk/imx/Makefile
> @@ -3,13 +3,11 @@
> obj-y += \
> clk.o \
> clk-busy.o \
> - clk-composite-8m.o \
> clk-cpu.o \
> clk-composite-7ulp.o \
> clk-divider-gate.o \
> clk-fixup-div.o \
> clk-fixup-mux.o \
> - clk-frac-pll.o \
> clk-gate-exclusive.o \
> clk-gate2.o \
> clk-pfd.o \
> @@ -17,8 +15,7 @@ obj-y += \
> clk-pllv1.o \
> clk-pllv2.o \
> clk-pllv3.o \
> - clk-pllv4.o \
> - clk-sccg-pll.o
> + clk-pllv4.o
>
> obj-$(CONFIG_SOC_IMX1) += clk-imx1.o
> obj-$(CONFIG_SOC_IMX21) += clk-imx21.o @@ -36,4 +33,7 @@
> obj-$(CONFIG_SOC_IMX7D) += clk-imx7d.o
> obj-$(CONFIG_SOC_IMX7ULP) += clk-imx7ulp.o
> obj-$(CONFIG_SOC_VF610) += clk-vf610.o
>
> -obj-$(CONFIG_ARCH_MXC) += clk-imx8mq.o
> +obj-$(CONFIG_ARCH_MXC) += clk-imx8mq.o \
> + clk-composite-8m.o \
> + clk-frac-pll.o \
> + clk-sccg-pll.o

I think you may create a CLK_IMX8MQ as I said in other mail for IMX8QXP.

Regards
Dong Aisheng
> --
> 2.7.4


2018-12-13 14:38:10

by Lucas Stach

[permalink] [raw]
Subject: Re: [PATCH 1/3] arm64: Remove CONFIG_SOC_IMX8MQ and use ARCH_MXC instead

Am Donnerstag, den 13.12.2018, 13:17 +0000 schrieb Abel Vesa:
> To keep aligned with arm64, remove the unnecessary SOC_IMX8MQ and use
> ARCH_MXC instead.
>
> Signed-off-by: Abel Vesa <[email protected]>
> ---
>  arch/arm64/Kconfig.platforms           | 8 --------
>  arch/arm64/boot/dts/freescale/Makefile | 2 +-
>  drivers/clk/imx/Makefile               | 3 ++-
>  drivers/phy/freescale/Kconfig          | 2 +-
>  drivers/pinctrl/freescale/Kconfig      | 2 +-
>  drivers/soc/imx/Kconfig                | 2 +-
>  6 files changed, 6 insertions(+), 13 deletions(-)
>
> diff --git a/arch/arm64/Kconfig.platforms
> b/arch/arm64/Kconfig.platforms
> index 7e1545a..318dbb9 100644
> --- a/arch/arm64/Kconfig.platforms
> +++ b/arch/arm64/Kconfig.platforms
> @@ -148,14 +148,6 @@ config ARCH_MXC
>     This enables support for the ARMv8 based SoCs in the
>     NXP i.MX family.
>  
> -config SOC_IMX8MQ
> - bool "i.MX8MQ support"
> - depends on ARCH_MXC
> - select ARM64_ERRATUM_843419
> - select ARM64_ERRATUM_845719
> - help
> -   This enables support for the i.MX8MQ SoC.
> -

NACK on this one. Having a single place where stuff that is absolutely
critical for proper SoC operation can be selected is very useful and
avoids hard to debug issues due to slightly wrong configs in the long
run.

Regards,
Lucas

>  config ARCH_QCOM
>   bool "Qualcomm Platforms"
>   select GPIOLIB
> diff --git a/arch/arm64/boot/dts/freescale/Makefile
> b/arch/arm64/boot/dts/freescale/Makefile
> index 0001361..f9be242 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -19,4 +19,4 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-
> rdb.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb
>  dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb
>  
> -dtb-$(CONFIG_SOC_IMX8MQ) += imx8mq-evk.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb
> diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile
> index 5c0b11e..62a1882 100644
> --- a/drivers/clk/imx/Makefile
> +++ b/drivers/clk/imx/Makefile
> @@ -34,5 +34,6 @@ obj-$(CONFIG_SOC_IMX6SX) += clk-imx6sx.o
>  obj-$(CONFIG_SOC_IMX6UL) += clk-imx6ul.o
>  obj-$(CONFIG_SOC_IMX7D)  += clk-imx7d.o
>  obj-$(CONFIG_SOC_IMX7ULP) += clk-imx7ulp.o
> -obj-$(CONFIG_SOC_IMX8MQ) += clk-imx8mq.o
>  obj-$(CONFIG_SOC_VF610)  += clk-vf610.o
> +
> +obj-$(CONFIG_ARCH_MXC) += clk-imx8mq.o
> diff --git a/drivers/phy/freescale/Kconfig
> b/drivers/phy/freescale/Kconfig
> index f050bd4..923c0ef 100644
> --- a/drivers/phy/freescale/Kconfig
> +++ b/drivers/phy/freescale/Kconfig
> @@ -2,4 +2,4 @@ config PHY_FSL_IMX8MQ_USB
>   tristate "Freescale i.MX8M USB3 PHY"
>   depends on OF && HAS_IOMEM
>   select GENERIC_PHY
> - default SOC_IMX8MQ
> + default ARCH_MXC
> diff --git a/drivers/pinctrl/freescale/Kconfig
> b/drivers/pinctrl/freescale/Kconfig
> index 2d6db43..9874a16 100644
> --- a/drivers/pinctrl/freescale/Kconfig
> +++ b/drivers/pinctrl/freescale/Kconfig
> @@ -123,7 +123,7 @@ config PINCTRL_IMX7ULP
>  
>  config PINCTRL_IMX8MQ
>   bool "IMX8MQ pinctrl driver"
> - depends on SOC_IMX8MQ
> + depends on ARCH_MXC
>   select PINCTRL_IMX
>   help
>     Say Y here to enable the imx8mq pinctrl driver
> diff --git a/drivers/soc/imx/Kconfig b/drivers/soc/imx/Kconfig
> index 2112d18..7ffbb6b 100644
> --- a/drivers/soc/imx/Kconfig
> +++ b/drivers/soc/imx/Kconfig
> @@ -2,7 +2,7 @@ menu "i.MX SoC drivers"
>  
>  config IMX_GPCV2_PM_DOMAINS
>   bool "i.MX GPCv2 PM domains"
> - depends on SOC_IMX7D || SOC_IMX8MQ || (COMPILE_TEST && OF)
> + depends on SOC_IMX7D || ARCH_MXC || (COMPILE_TEST && OF)
>   depends on PM
>   select PM_GENERIC_DOMAINS
>   default y if SOC_IMX7D

2018-12-13 14:55:08

by Abel Vesa

[permalink] [raw]
Subject: Re: [PATCH 1/3] arm64: Remove CONFIG_SOC_IMX8MQ and use ARCH_MXC instead

On 18-12-13 15:35:27, Lucas Stach wrote:
> Am Donnerstag, den 13.12.2018, 13:17 +0000 schrieb Abel Vesa:
> > To keep aligned with arm64, remove the unnecessary SOC_IMX8MQ and use
> > ARCH_MXC instead.
> >
> > Signed-off-by: Abel Vesa <[email protected]>
> > ---
> > ?arch/arm64/Kconfig.platforms???????????| 8 --------
> > ?arch/arm64/boot/dts/freescale/Makefile | 2 +-
> > ?drivers/clk/imx/Makefile???????????????| 3 ++-
> > ?drivers/phy/freescale/Kconfig??????????| 2 +-
> > ?drivers/pinctrl/freescale/Kconfig??????| 2 +-
> > ?drivers/soc/imx/Kconfig????????????????| 2 +-
> > ?6 files changed, 6 insertions(+), 13 deletions(-)
> >
> > diff --git a/arch/arm64/Kconfig.platforms
> > b/arch/arm64/Kconfig.platforms
> > index 7e1545a..318dbb9 100644
> > --- a/arch/arm64/Kconfig.platforms
> > +++ b/arch/arm64/Kconfig.platforms
> > @@ -148,14 +148,6 @@ config ARCH_MXC
> > ? ??This enables support for the ARMv8 based SoCs in the
> > ? ??NXP i.MX family.
> > ?
> > -config SOC_IMX8MQ
> > - bool "i.MX8MQ support"
> > - depends on ARCH_MXC
> > - select ARM64_ERRATUM_843419
> > - select ARM64_ERRATUM_845719
> > - help
> > - ??This enables support for the i.MX8MQ SoC.
> > -
>
> NACK on this one. Having a single place where stuff that is absolutely
> critical for proper SoC operation can be selected is very useful and
> avoids hard to debug issues due to slightly wrong configs in the long
> run.

As mentioned in the cover letter, please ignore this patch set entirely.
The ARCH_MXC is actually used on arm32 too, so it won't work.

I'm working on a patchset that will add the Kconfig into
drivers/clk/imx/ and in it will add CLK_IMX8MQ. That will
fix the clock dependency since the CLK_IMX8MQ will depend on
ARCH_MXC and ARM64. I believe the CLK_IMX8QXP will follow
the same pattern.

As for the SOC_IMX8MQ, all the other vendors have one single
config for all the arm64 platforms. TBH, to control every SoC
independently it's a little bit of an overkill.

But maybe I'm the only one who thinks so.

>
> Regards,
> Lucas
>
> > ?config ARCH_QCOM
> > ? bool "Qualcomm Platforms"
> > ? select GPIOLIB
> > diff --git a/arch/arm64/boot/dts/freescale/Makefile
> > b/arch/arm64/boot/dts/freescale/Makefile
> > index 0001361..f9be242 100644
> > --- a/arch/arm64/boot/dts/freescale/Makefile
> > +++ b/arch/arm64/boot/dts/freescale/Makefile
> > @@ -19,4 +19,4 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls2088a-
> > rdb.dtb
> > ?dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-qds.dtb
> > ?dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-rdb.dtb
> > ?
> > -dtb-$(CONFIG_SOC_IMX8MQ) += imx8mq-evk.dtb
> > +dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb
> > diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile
> > index 5c0b11e..62a1882 100644
> > --- a/drivers/clk/imx/Makefile
> > +++ b/drivers/clk/imx/Makefile
> > @@ -34,5 +34,6 @@ obj-$(CONFIG_SOC_IMX6SX) += clk-imx6sx.o
> > ?obj-$(CONFIG_SOC_IMX6UL) += clk-imx6ul.o
> > ?obj-$(CONFIG_SOC_IMX7D)??+= clk-imx7d.o
> > ?obj-$(CONFIG_SOC_IMX7ULP) += clk-imx7ulp.o
> > -obj-$(CONFIG_SOC_IMX8MQ) += clk-imx8mq.o
> > ?obj-$(CONFIG_SOC_VF610)??+= clk-vf610.o
> > +
> > +obj-$(CONFIG_ARCH_MXC) += clk-imx8mq.o
> > diff --git a/drivers/phy/freescale/Kconfig
> > b/drivers/phy/freescale/Kconfig
> > index f050bd4..923c0ef 100644
> > --- a/drivers/phy/freescale/Kconfig
> > +++ b/drivers/phy/freescale/Kconfig
> > @@ -2,4 +2,4 @@ config PHY_FSL_IMX8MQ_USB
> > ? tristate "Freescale i.MX8M USB3 PHY"
> > ? depends on OF && HAS_IOMEM
> > ? select GENERIC_PHY
> > - default SOC_IMX8MQ
> > + default ARCH_MXC
> > diff --git a/drivers/pinctrl/freescale/Kconfig
> > b/drivers/pinctrl/freescale/Kconfig
> > index 2d6db43..9874a16 100644
> > --- a/drivers/pinctrl/freescale/Kconfig
> > +++ b/drivers/pinctrl/freescale/Kconfig
> > @@ -123,7 +123,7 @@ config PINCTRL_IMX7ULP
> > ?
> > ?config PINCTRL_IMX8MQ
> > ? bool "IMX8MQ pinctrl driver"
> > - depends on SOC_IMX8MQ
> > + depends on ARCH_MXC
> > ? select PINCTRL_IMX
> > ? help
> > ? ??Say Y here to enable the imx8mq pinctrl driver
> > diff --git a/drivers/soc/imx/Kconfig b/drivers/soc/imx/Kconfig
> > index 2112d18..7ffbb6b 100644
> > --- a/drivers/soc/imx/Kconfig
> > +++ b/drivers/soc/imx/Kconfig
> > @@ -2,7 +2,7 @@ menu "i.MX SoC drivers"
> > ?
> > ?config IMX_GPCV2_PM_DOMAINS
> > ? bool "i.MX GPCv2 PM domains"
> > - depends on SOC_IMX7D || SOC_IMX8MQ || (COMPILE_TEST && OF)
> > + depends on SOC_IMX7D || ARCH_MXC || (COMPILE_TEST && OF)
> > ? depends on PM
> > ? select PM_GENERIC_DOMAINS
> > ? default y if SOC_IMX7D

2018-12-14 01:14:15

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH 1/3] arm64: Remove CONFIG_SOC_IMX8MQ and use ARCH_MXC instead

On Thu, Dec 13, 2018 at 02:51:50PM +0000, Abel Vesa wrote:
...
> > > diff --git a/arch/arm64/Kconfig.platforms
> > > b/arch/arm64/Kconfig.platforms
> > > index 7e1545a..318dbb9 100644
> > > --- a/arch/arm64/Kconfig.platforms
> > > +++ b/arch/arm64/Kconfig.platforms
> > > @@ -148,14 +148,6 @@ config ARCH_MXC
> > > ? ??This enables support for the ARMv8 based SoCs in the
> > > ? ??NXP i.MX family.
> > > ?
> > > -config SOC_IMX8MQ
> > > - bool "i.MX8MQ support"
> > > - depends on ARCH_MXC
> > > - select ARM64_ERRATUM_843419
> > > - select ARM64_ERRATUM_845719
> > > - help
> > > - ??This enables support for the i.MX8MQ SoC.
> > > -
> >
> > NACK on this one. Having a single place where stuff that is absolutely
> > critical for proper SoC operation can be selected is very useful and
> > avoids hard to debug issues due to slightly wrong configs in the long
> > run.
>
> As mentioned in the cover letter, please ignore this patch set entirely.
> The ARCH_MXC is actually used on arm32 too, so it won't work.
>
> I'm working on a patchset that will add the Kconfig into
> drivers/clk/imx/ and in it will add CLK_IMX8MQ. That will
> fix the clock dependency since the CLK_IMX8MQ will depend on
> ARCH_MXC and ARM64. I believe the CLK_IMX8QXP will follow
> the same pattern.
>
> As for the SOC_IMX8MQ, all the other vendors have one single
> config for all the arm64 platforms. TBH, to control every SoC
> independently it's a little bit of an overkill.

Lucas,

We are still waiting for further comments from Olof [1]. But it sounds
like SoC specific option is not welcomed on ARM64.

Shawn

[1] https://patchwork.kernel.org/patch/10727453/#22378669

2018-12-14 09:23:31

by Lucas Stach

[permalink] [raw]
Subject: Re: [PATCH 1/3] arm64: Remove CONFIG_SOC_IMX8MQ and use ARCH_MXC instead

Hi Shawn,

Am Freitag, den 14.12.2018, 09:12 +0800 schrieb Shawn Guo:
> On Thu, Dec 13, 2018 at 02:51:50PM +0000, Abel Vesa wrote:
> ...
> > > > diff --git a/arch/arm64/Kconfig.platforms
> > > > b/arch/arm64/Kconfig.platforms
> > > > index 7e1545a..318dbb9 100644
> > > > --- a/arch/arm64/Kconfig.platforms
> > > > +++ b/arch/arm64/Kconfig.platforms
> > > > @@ -148,14 +148,6 @@ config ARCH_MXC
> > > > > > > >     This enables support for the ARMv8 based SoCs in the
> > > > > > > >     NXP i.MX family.
> > > >  
> > > > -config SOC_IMX8MQ
> > > > > > > > - bool "i.MX8MQ support"
> > > > > > > > - depends on ARCH_MXC
> > > > > > > > - select ARM64_ERRATUM_843419
> > > > > > > > - select ARM64_ERRATUM_845719
> > > > > > > > - help
> > > > > > > > -   This enables support for the i.MX8MQ SoC.
> > > > -
> > >
> > > NACK on this one. Having a single place where stuff that is absolutely
> > > critical for proper SoC operation can be selected is very useful and
> > > avoids hard to debug issues due to slightly wrong configs in the long
> > > run.
> >
> > As mentioned in the cover letter, please ignore this patch set entirely.
> > The ARCH_MXC is actually used on arm32 too, so it won't work.
> >
> > I'm working on a patchset that will add the Kconfig into 
> > drivers/clk/imx/ and in it will add CLK_IMX8MQ. That will
> > fix the clock dependency since the CLK_IMX8MQ will depend on
> > ARCH_MXC and ARM64. I believe the CLK_IMX8QXP will follow
> > the same pattern.
> >
> > As for the SOC_IMX8MQ, all the other vendors have one single
> > config for all the arm64 platforms. TBH, to control every SoC
> > independently it's a little bit of an overkill.
>
> Lucas,
>
> We are still waiting for further comments from Olof [1].  But it sounds
> like SoC specific option is not welcomed on ARM64.

While I personally would prefer to keep the SoC options, I see that we
need to align with the judgment of the arm-soc maintainers.

But at the very least we should keep the select for vital system
workarounds. They need to move to the arch Kconfig symbol in that case
and might select stuff that isn't needed on each of the i.MX8 SoCs. But
better enabling more workaround and drivers than necessary than having
hard to debug system failures in the future.

Regards,
Lucas

2018-12-14 12:43:02

by Abel Vesa

[permalink] [raw]
Subject: Re: [PATCH 1/3] arm64: Remove CONFIG_SOC_IMX8MQ and use ARCH_MXC instead

On 18-12-14 10:22:11, Lucas Stach wrote:
> Hi Shawn,
>
> Am Freitag, den 14.12.2018, 09:12 +0800 schrieb Shawn Guo:
> > On Thu, Dec 13, 2018 at 02:51:50PM +0000, Abel Vesa wrote:
> > ...
> > > > > diff --git a/arch/arm64/Kconfig.platforms
> > > > > b/arch/arm64/Kconfig.platforms
> > > > > index 7e1545a..318dbb9 100644
> > > > > --- a/arch/arm64/Kconfig.platforms
> > > > > +++ b/arch/arm64/Kconfig.platforms
> > > > > @@ -148,14 +148,6 @@ config ARCH_MXC
> > > > > > > > > ? ??This enables support for the ARMv8 based SoCs in the
> > > > > > > > > ? ??NXP i.MX family.
> > > > > ?
> > > > > -config SOC_IMX8MQ
> > > > > > > > > - bool "i.MX8MQ support"
> > > > > > > > > - depends on ARCH_MXC
> > > > > > > > > - select ARM64_ERRATUM_843419
> > > > > > > > > - select ARM64_ERRATUM_845719
> > > > > > > > > - help
> > > > > > > > > - ??This enables support for the i.MX8MQ SoC.
> > > > > -
> > > >
> > > > NACK on this one. Having a single place where stuff that is absolutely
> > > > critical for proper SoC operation can be selected is very useful and
> > > > avoids hard to debug issues due to slightly wrong configs in the long
> > > > run.
> > >
> > > As mentioned in the cover letter, please ignore this patch set entirely.
> > > The ARCH_MXC is actually used on arm32 too, so it won't work.
> > >
> > > I'm working on a patchset that will add the Kconfig into?
> > > drivers/clk/imx/ and in it will add CLK_IMX8MQ. That will
> > > fix the clock dependency since the CLK_IMX8MQ will depend on
> > > ARCH_MXC and ARM64. I believe the CLK_IMX8QXP will follow
> > > the same pattern.
> > >
> > > As for the SOC_IMX8MQ, all the other vendors have one single
> > > config for all the arm64 platforms. TBH, to control every SoC
> > > independently it's a little bit of an overkill.
> >
> > Lucas,
> >
> > We are still waiting for further comments from Olof [1].??But it sounds
> > like SoC specific option is not welcomed on ARM64.
>
> While I personally would prefer to keep the SoC options, I see that we
> need to align with the judgment of the arm-soc maintainers.
>
> But at the very least we should keep the select for vital system
> workarounds. They need to move to the arch Kconfig symbol in that case
> and might select stuff that isn't needed on each of the i.MX8 SoCs. But
> better enabling more workaround and drivers than necessary than having
> hard to debug system failures in the future.
>

I get your point. But that seems to be an issue with the whole arm64 approach.
TBH, I believe now would be the perfect time to "get it right" on IMX since the 8MQ
is the first one to get boot-up support upstream. It will be way much harder
to change this later when more arm64 IMX SoCs get upstreamed.

I would really love more opinions on this.

I have patches on stand-by that remove the SOC_IMX8MQ in all the subsystems and
a patch for the defconfig update which I'll keep on holding on to until there
is a agreement on this.

> Regards,
> Lucas

2018-12-14 17:17:38

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH 1/3] arm64: Remove CONFIG_SOC_IMX8MQ and use ARCH_MXC instead

Quoting Abel Vesa (2018-12-14 04:41:46)
> On 18-12-14 10:22:11, Lucas Stach wrote:
> > Hi Shawn,
> >
> > Am Freitag, den 14.12.2018, 09:12 +0800 schrieb Shawn Guo:
> > > On Thu, Dec 13, 2018 at 02:51:50PM +0000, Abel Vesa wrote:
> > > ...
> > > > > > diff --git a/arch/arm64/Kconfig.platforms
> > > > > > b/arch/arm64/Kconfig.platforms
> > > > > > index 7e1545a..318dbb9 100644
> > > > > > --- a/arch/arm64/Kconfig.platforms
> > > > > > +++ b/arch/arm64/Kconfig.platforms
> > > > > > @@ -148,14 +148,6 @@ config ARCH_MXC
> > > > > > > > > >     This enables support for the ARMv8 based SoCs in the
> > > > > > > > > >     NXP i.MX family.
> > > > > >  
> > > > > > -config SOC_IMX8MQ
> > > > > > > > > > - bool "i.MX8MQ support"
> > > > > > > > > > - depends on ARCH_MXC
> > > > > > > > > > - select ARM64_ERRATUM_843419
> > > > > > > > > > - select ARM64_ERRATUM_845719
> > > > > > > > > > - help
> > > > > > > > > > -   This enables support for the i.MX8MQ SoC.
> > > > > > -
> > > > >
> > > > > NACK on this one. Having a single place where stuff that is absolutely
> > > > > critical for proper SoC operation can be selected is very useful and
> > > > > avoids hard to debug issues due to slightly wrong configs in the long
> > > > > run.
> > > >
> > > > As mentioned in the cover letter, please ignore this patch set entirely.
> > > > The ARCH_MXC is actually used on arm32 too, so it won't work.
> > > >
> > > > I'm working on a patchset that will add the Kconfig into 
> > > > drivers/clk/imx/ and in it will add CLK_IMX8MQ. That will
> > > > fix the clock dependency since the CLK_IMX8MQ will depend on
> > > > ARCH_MXC and ARM64. I believe the CLK_IMX8QXP will follow
> > > > the same pattern.
> > > >
> > > > As for the SOC_IMX8MQ, all the other vendors have one single
> > > > config for all the arm64 platforms. TBH, to control every SoC
> > > > independently it's a little bit of an overkill.
> > >
> > > Lucas,
> > >
> > > We are still waiting for further comments from Olof [1].  But it sounds
> > > like SoC specific option is not welcomed on ARM64.
> >
> > While I personally would prefer to keep the SoC options, I see that we
> > need to align with the judgment of the arm-soc maintainers.
> >
> > But at the very least we should keep the select for vital system
> > workarounds. They need to move to the arch Kconfig symbol in that case
> > and might select stuff that isn't needed on each of the i.MX8 SoCs. But
> > better enabling more workaround and drivers than necessary than having
> > hard to debug system failures in the future.

CPU erratas are typically implemented with runtime code patching and
they're pretty much all 'default y' so having the SoC config option
select them doesn't do much besides force the errata to always be
enabled. If allowing the user to disable errata handling is a problem,
then perhaps those should only be visible when CONFIG_EXPERT=y.

> >
>
> I get your point. But that seems to be an issue with the whole arm64 approach.
> TBH, I believe now would be the perfect time to "get it right" on IMX since the 8MQ
> is the first one to get boot-up support upstream. It will be way much harder
> to change this later when more arm64 IMX SoCs get upstreamed.
>
> I would really love more opinions on this.
>
> I have patches on stand-by that remove the SOC_IMX8MQ in all the subsystems and
> a patch for the defconfig update which I'll keep on holding on to until there
> is a agreement on this.
>

I will merge the clk patch now. Hope that helps you feel more confident
that CONFIG_SOC_FOO options aren't welcome.