Re: [PATCH v2 5/8] board: toradex: Add Verdin iMX8M Mini support

2020-01-28 Thread Marcel Ziswiler
Hi Oleksandr

On Mon, 2020-01-27 at 14:04 +, Oleksandr Suvorov wrote:
> On Sun, Jan 26, 2020 at 5:57 AM Marcel Ziswiler 
> wrote:
> > From: Igor Opaniuk 
> > 
> > This adds initial minimal support for the Toradex Verdin iMX8M Mini
> > Quad
> > 2GB WB IT V1.0A module. They are now strapped to boot from eFuses
> > which
> > are factory fused to properly boot from their on-module eMMC. U-
> > Boot
> > supports booting from the on-module eMMC only, SDP support is
> > disabled
> > for now due to missing i.MX 8M Mini USB support.
> > 
> > Functionality wise the following is known to be working:
> > - eMMC, 8-bit and 4-bit MMC/SD card slots
> > - Ethernet
> > - GPIOs
> > - I2C
> > 
> > Boot sequence is:
> > SPL ---> ATF (TF-A) ---> U-boot proper
> > 
> > ATF, U-boot proper and u-boot.dtb images are packed into a FIT
> > image,
> > loaded by SPL.
> > 
> > Boot:
> > U-Boot SPL 2020.01-00187-gd411d164e5 (Jan 26 2020 - 04:47:26 +0100)
> > Normal Boot
> > Trying to boot from MMC1
> > NOTICE:  Configuring TZASC380
> > NOTICE:  RDC off
> > NOTICE:  BL31: v2.0(release):rel_imx_4.14.98_2.3.0-0-g09c5cc994-
> > dirty
> > NOTICE:  BL31: Built : 01:11:41, Jan 25 2020
> > NOTICE:  sip svc init
> > 
> > U-Boot 2020.01-00187-gd411d164e5 (Jan 26 2020 - 04:47:26 +0100)
> > 
> > CPU:   Freescale i.MX8MMQ rev1.0 at 0 MHz
> > Reset cause: POR
> > DRAM:  2 GiB
> > MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
> > Loading Environment from MMC... OK
> > In:serial
> > Out:   serial
> > Err:   serial
> > Model: Toradex Verdin iMX8M Mini Quad 2GB Wi-Fi / BT IT V1.0A,
> > Serial# 06535149
> > Net:   eth0: ethernet@30be
> > Hit any key to stop autoboot:  0
> > Verdin iMX8MM #
> > 
> > Signed-off-by: Igor Opaniuk 
> > Signed-off-by: Max Krummenacher 
> > Signed-off-by: Marcel Ziswiler 
> 
> This patch uses the i.MX8MM pin names from patches 1/8, 2/8 that
> deviate from the definitions in the Linux kernel.
> Please use their names synched with the definitions in linux-next
> [1].

Yes, sir.

...

> --
> Best regards
> Oleksandr Suvorov
> 
> Toradex AG
> Altsagenstrasse 5 | 6048 Horw/Luzern | Switzerland | T: +41 41 500
> 4800 (main line)

Cheers

Marcel



[PATCH v2 5/8] board: toradex: Add Verdin iMX8M Mini support

2020-01-25 Thread Marcel Ziswiler
From: Igor Opaniuk 

This adds initial minimal support for the Toradex Verdin iMX8M Mini Quad
2GB WB IT V1.0A module. They are now strapped to boot from eFuses which
are factory fused to properly boot from their on-module eMMC. U-Boot
supports booting from the on-module eMMC only, SDP support is disabled
for now due to missing i.MX 8M Mini USB support.

Functionality wise the following is known to be working:
- eMMC, 8-bit and 4-bit MMC/SD card slots
- Ethernet
- GPIOs
- I2C

Boot sequence is:
SPL ---> ATF (TF-A) ---> U-boot proper

ATF, U-boot proper and u-boot.dtb images are packed into a FIT image,
loaded by SPL.

Boot:
U-Boot SPL 2020.01-00187-gd411d164e5 (Jan 26 2020 - 04:47:26 +0100)
Normal Boot
Trying to boot from MMC1
NOTICE:  Configuring TZASC380
NOTICE:  RDC off
NOTICE:  BL31: v2.0(release):rel_imx_4.14.98_2.3.0-0-g09c5cc994-dirty
NOTICE:  BL31: Built : 01:11:41, Jan 25 2020
NOTICE:  sip svc init

U-Boot 2020.01-00187-gd411d164e5 (Jan 26 2020 - 04:47:26 +0100)

CPU:   Freescale i.MX8MMQ rev1.0 at 0 MHz
Reset cause: POR
DRAM:  2 GiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... OK
In:serial
Out:   serial
Err:   serial
Model: Toradex Verdin iMX8M Mini Quad 2GB Wi-Fi / BT IT V1.0A, Serial# 06535149
Net:   eth0: ethernet@30be
Hit any key to stop autoboot:  0
Verdin iMX8MM #

Signed-off-by: Igor Opaniuk 
Signed-off-by: Max Krummenacher 
Signed-off-by: Marcel Ziswiler 

---

Changes in v2:
- Further clean-up as announced on the mailing list.

 arch/arm/dts/Makefile   |1 +
 arch/arm/dts/imx8mm-verdin-u-boot.dtsi  |  103 ++
 arch/arm/dts/imx8mm-verdin.dts  | 1007 ++
 arch/arm/mach-imx/imx8m/Kconfig |7 +
 board/toradex/verdin-imx8mm/Kconfig |   30 +
 board/toradex/verdin-imx8mm/Makefile|   11 +
 board/toradex/verdin-imx8mm/imximage.cfg|   16 +
 board/toradex/verdin-imx8mm/lpddr4_timing.c | 1850 +++
 board/toradex/verdin-imx8mm/spl.c   |  180 ++
 board/toradex/verdin-imx8mm/verdin-imx8mm.c |   73 +
 configs/verdin-imx8mm_defconfig |   98 +
 include/configs/verdin-imx8mm.h |  128 ++
 12 files changed, 3504 insertions(+)
 create mode 100644 arch/arm/dts/imx8mm-verdin-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx8mm-verdin.dts
 create mode 100644 board/toradex/verdin-imx8mm/Kconfig
 create mode 100644 board/toradex/verdin-imx8mm/Makefile
 create mode 100644 board/toradex/verdin-imx8mm/imximage.cfg
 create mode 100644 board/toradex/verdin-imx8mm/lpddr4_timing.c
 create mode 100644 board/toradex/verdin-imx8mm/spl.c
 create mode 100644 board/toradex/verdin-imx8mm/verdin-imx8mm.c
 create mode 100644 configs/verdin-imx8mm_defconfig
 create mode 100644 include/configs/verdin-imx8mm.h

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index b48b05fd24..7538738e69 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -711,6 +711,7 @@ dtb-$(CONFIG_ARCH_IMX8) += \
 
 dtb-$(CONFIG_ARCH_IMX8M) += \
imx8mm-evk.dtb \
+   imx8mm-verdin.dtb \
imx8mn-ddr4-evk.dtb \
imx8mq-evk.dtb \
imx8mp-evk.dtb
diff --git a/arch/arm/dts/imx8mm-verdin-u-boot.dtsi 
b/arch/arm/dts/imx8mm-verdin-u-boot.dtsi
new file mode 100644
index 00..454d077e9e
--- /dev/null
+++ b/arch/arm/dts/imx8mm-verdin-u-boot.dtsi
@@ -0,0 +1,103 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Copyright 2020 Toradex AG
+ */
+
+ {
+   u-boot,dm-spl;
+   u-boot,dm-pre-reloc;
+};
+
+ {
+   u-boot,dm-spl;
+};
+
+ {
+   u-boot,dm-spl;
+};
+
+ {
+   u-boot,dm-spl;
+   u-boot,dm-pre-reloc;
+   /delete-property/ assigned-clocks;
+   /delete-property/ assigned-clock-parents;
+   /delete-property/ assigned-clock-rates;
+};
+
+ {
+   u-boot,dm-spl;
+};
+
+ {
+   u-boot,dm-spl;
+};
+
+ {
+   u-boot,dm-spl;
+};
+
+ {
+   u-boot,dm-spl;
+};
+
+ {
+   u-boot,dm-spl;
+};
+
+ {
+   u-boot,dm-spl;
+};
+
+ {
+   u-boot,dm-spl;
+};
+
+_24m {
+   u-boot,dm-spl;
+   u-boot,dm-pre-reloc;
+};
+
+_i2c1 {
+   u-boot,dm-spl;
+};
+
+_pmic {
+   u-boot,dm-spl;
+};
+
+_uart1 {
+   u-boot,dm-spl;
+};
+
+_usdhc2 {
+   u-boot,dm-spl;
+};
+
+&{/soc@0} {
+   u-boot,dm-pre-reloc;
+   u-boot,dm-spl;
+};
+
+&{/soc@0/bus@3080/i2c@30a2/pmic@4b} {
+   u-boot,dm-spl;
+};
+
+&{/soc@0/bus@3080/i2c@30a2/pmic@4b/regulators} {
+   u-boot,dm-spl;
+};
+
+ {
+   u-boot,dm-spl;
+};
+
+ {
+   u-boot,dm-spl;
+};
+
+ {
+   u-boot,dm-spl;
+};
+
+ {
+   u-boot,dm-spl;
+};
diff --git a/arch/arm/dts/imx8mm-verdin.dts b/arch/arm/dts/imx8mm-verdin.dts
new file mode 100644
index 00..4dd2e55047
--- /dev/null
+++ b/arch/arm/dts/imx8mm-verdin.dts
@@ -0,0 +1,1007 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Copyright 2020 Toradex AG
+ */
+
+/dts-v1/;
+
+#include 
+#include "imx8mm.dtsi"
+
+/ {
+   model = "Toradex Verdin iMX8M Mini