public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH 1/2] ARM: imx: imx8mn-ddr4-evk: Fix boot from SD card
@ 2022-02-13 23:36 Marek Vasut
  2022-02-13 23:36 ` [PATCH 2/2] ARM: imx: imx8mn-ddr4-evk: Add ethernet support Marek Vasut
  2022-02-19 13:08 ` [PATCH 1/2] ARM: imx: imx8mn-ddr4-evk: Fix boot from SD card sbabic
  0 siblings, 2 replies; 5+ messages in thread
From: Marek Vasut @ 2022-02-13 23:36 UTC (permalink / raw)
  To: u-boot; +Cc: Marek Vasut, Fabio Estevam, Peng Fan, Stefano Babic

Enable missing config options to make the board boot from SD card.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 configs/imx8mn_evk_defconfig | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/configs/imx8mn_evk_defconfig b/configs/imx8mn_evk_defconfig
index 865d657a6d1..1117096d6ee 100644
--- a/configs/imx8mn_evk_defconfig
+++ b/configs/imx8mn_evk_defconfig
@@ -14,6 +14,7 @@ CONFIG_DM_GPIO=y
 CONFIG_DEFAULT_DEVICE_TREE="imx8mn-evk"
 CONFIG_SPL_TEXT_BASE=0x912000
 CONFIG_TARGET_IMX8MN_EVK=y
+CONFIG_SPL_MMC=y
 CONFIG_SPL_SERIAL=y
 CONFIG_SPL_DRIVERS_MISC=y
 CONFIG_SPL=y
@@ -30,6 +31,9 @@ CONFIG_ARCH_MISC_INIT=y
 CONFIG_BOARD_LATE_INIT=y
 CONFIG_SPL_BOARD_INIT=y
 CONFIG_SPL_BOOTROM_SUPPORT=y
+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
+CONFIG_SPL_LEGACY_IMAGE_SUPPORT=y
+CONFIG_SPL_LEGACY_IMAGE_CRC_CHECK=y
 CONFIG_SPL_SEPARATE_BSS=y
 CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
 CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x300
@@ -64,9 +68,12 @@ CONFIG_MXC_GPIO=y
 CONFIG_DM_I2C=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_MMC_IO_VOLTAGE=y
+CONFIG_SPL_MMC_IO_VOLTAGE=y
 CONFIG_MMC_UHS_SUPPORT=y
+CONFIG_SPL_MMC_UHS_SUPPORT=y
 CONFIG_MMC_HS400_ES_SUPPORT=y
 CONFIG_MMC_HS400_SUPPORT=y
+CONFIG_SPL_MMC_HS400_SUPPORT=y
 CONFIG_FSL_USDHC=y
 CONFIG_PHYLIB=y
 CONFIG_DM_ETH=y
@@ -76,6 +83,7 @@ CONFIG_PINCTRL_IMX8M=y
 CONFIG_DM_PMIC=y
 CONFIG_SPL_DM_PMIC_PCA9450=y
 CONFIG_DM_REGULATOR=y
+CONFIG_SPL_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_REGULATOR_GPIO=y
 CONFIG_MXC_UART=y
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] ARM: imx: imx8mn-ddr4-evk: Add ethernet support
  2022-02-13 23:36 [PATCH 1/2] ARM: imx: imx8mn-ddr4-evk: Fix boot from SD card Marek Vasut
@ 2022-02-13 23:36 ` Marek Vasut
  2022-02-19 13:06   ` Stefano Babic
  2022-02-19 13:08 ` [PATCH 1/2] ARM: imx: imx8mn-ddr4-evk: Fix boot from SD card sbabic
  1 sibling, 1 reply; 5+ messages in thread
From: Marek Vasut @ 2022-02-13 23:36 UTC (permalink / raw)
  To: u-boot; +Cc: Marek Vasut, Fabio Estevam, Peng Fan, Stefano Babic

Add support for ethernet on the imx8mn-ddr4-evk.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 arch/arm/dts/imx8mn-evk.dtsi            |  1 +
 board/freescale/imx8mn_evk/imx8mn_evk.c | 41 +++++++++++++++++++++++--
 configs/imx8mn_ddr4_evk_defconfig       |  8 +++++
 3 files changed, 47 insertions(+), 3 deletions(-)

diff --git a/arch/arm/dts/imx8mn-evk.dtsi b/arch/arm/dts/imx8mn-evk.dtsi
index 76d042a4cf0..416fadb22b1 100644
--- a/arch/arm/dts/imx8mn-evk.dtsi
+++ b/arch/arm/dts/imx8mn-evk.dtsi
@@ -53,6 +53,7 @@
 	pinctrl-0 = <&pinctrl_fec1>;
 	phy-mode = "rgmii-id";
 	phy-handle = <&ethphy0>;
+	phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
 	fsl,magic-packet;
 	status = "okay";
 
diff --git a/board/freescale/imx8mn_evk/imx8mn_evk.c b/board/freescale/imx8mn_evk/imx8mn_evk.c
index 9a0a0488bf4..6979bbcbe52 100644
--- a/board/freescale/imx8mn_evk/imx8mn_evk.c
+++ b/board/freescale/imx8mn_evk/imx8mn_evk.c
@@ -7,17 +7,52 @@
 #include <env.h>
 #include <init.h>
 #include <asm/global_data.h>
+#include <miiphy.h>
+#include <netdev.h>
+#include <asm/io.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
-int board_init(void)
+int board_mmc_get_env_dev(int devno)
+{
+	return devno;
+}
+
+#if IS_ENABLED(CONFIG_FEC_MXC)
+static int setup_fec(void)
 {
+	struct iomuxc_gpr_base_regs *gpr =
+		(struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
+
+	/* Use 125M anatop REF_CLK1 for ENET1, not from external */
+	clrsetbits_le32(&gpr->gpr[1], 0x2000, 0);
+
 	return 0;
 }
 
-int board_mmc_get_env_dev(int devno)
+int board_phy_config(struct phy_device *phydev)
 {
-	return devno;
+	/* enable rgmii rxc skew and phy mode select to RGMII copper */
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f);
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8);
+
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x00);
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x82ee);
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
+	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
+
+	if (phydev->drv->config)
+		phydev->drv->config(phydev);
+	return 0;
+}
+#endif
+
+int board_init(void)
+{
+	if (IS_ENABLED(CONFIG_FEC_MXC))
+		setup_fec();
+
+	return 0;
 }
 
 int board_late_init(void)
diff --git a/configs/imx8mn_ddr4_evk_defconfig b/configs/imx8mn_ddr4_evk_defconfig
index 28cc551dc41..a760709772f 100644
--- a/configs/imx8mn_ddr4_evk_defconfig
+++ b/configs/imx8mn_ddr4_evk_defconfig
@@ -43,6 +43,9 @@ CONFIG_CMD_FUSE=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_I2C=y
 CONFIG_CMD_MMC=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_REGULATOR=y
 CONFIG_CMD_EXT4_WRITE=y
@@ -67,7 +70,12 @@ CONFIG_MMC_HS400_ES_SUPPORT=y
 CONFIG_MMC_HS400_SUPPORT=y
 CONFIG_FSL_USDHC=y
 CONFIG_PHYLIB=y
+CONFIG_PHY_ATHEROS=y
 CONFIG_DM_ETH=y
+CONFIG_DM_ETH_PHY=y
+CONFIG_PHY_GIGE=y
+CONFIG_FEC_MXC=y
+CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_SPL_PINCTRL=y
 CONFIG_PINCTRL_IMX8M=y
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] ARM: imx: imx8mn-ddr4-evk: Add ethernet support
  2022-02-13 23:36 ` [PATCH 2/2] ARM: imx: imx8mn-ddr4-evk: Add ethernet support Marek Vasut
@ 2022-02-19 13:06   ` Stefano Babic
  2022-02-19 16:17     ` Marek Vasut
  0 siblings, 1 reply; 5+ messages in thread
From: Stefano Babic @ 2022-02-19 13:06 UTC (permalink / raw)
  To: Marek Vasut, u-boot; +Cc: Fabio Estevam, Peng Fan, Stefano Babic

Hi Marek,

On 14.02.22 00:36, Marek Vasut wrote:
> Add support for ethernet on the imx8mn-ddr4-evk.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Peng Fan <peng.fan@nxp.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---

I have not pushed this patch because I am puzzled. There is nothing 
wrong in the patch, and I can apply it, but CI fails randomly. There is 
a warning during compilation of this board, see:

https://source.denx.de/u-boot/custodians/u-boot-imx/-/jobs/394060

However, this makes no sense. It looks like that

+       if (IS_ENABLED(CONFIG_FEC_MXC))
+               setup_fec();

This has effect, while during preprocessing of the same file:

+#if IS_ENABLED(CONFIG_FEC_MXC)
+static int setup_fec(void)

it looks like as "deactivated", no idea why. The warning makes no sense 
by reading the code. And if I build the board locally, with  make or 
buildman, everything fine - no error at all.  But, even locally, 
"buildman aarch64" reports this warning. No idea why, but I cannot add 
this to PR else the breakage goes into Tom's tree.

Of course, if I drop #if IS_ENABLED(CONFIG_FEC_MXC), everything fine, 
but it does not means it is a solution.

Best regards,
Stefano

>   arch/arm/dts/imx8mn-evk.dtsi            |  1 +
>   board/freescale/imx8mn_evk/imx8mn_evk.c | 41 +++++++++++++++++++++++--
>   configs/imx8mn_ddr4_evk_defconfig       |  8 +++++
>   3 files changed, 47 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm/dts/imx8mn-evk.dtsi b/arch/arm/dts/imx8mn-evk.dtsi
> index 76d042a4cf0..416fadb22b1 100644
> --- a/arch/arm/dts/imx8mn-evk.dtsi
> +++ b/arch/arm/dts/imx8mn-evk.dtsi
> @@ -53,6 +53,7 @@
>   	pinctrl-0 = <&pinctrl_fec1>;
>   	phy-mode = "rgmii-id";
>   	phy-handle = <&ethphy0>;
> +	phy-reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
>   	fsl,magic-packet;
>   	status = "okay";
>   
> diff --git a/board/freescale/imx8mn_evk/imx8mn_evk.c b/board/freescale/imx8mn_evk/imx8mn_evk.c
> index 9a0a0488bf4..6979bbcbe52 100644
> --- a/board/freescale/imx8mn_evk/imx8mn_evk.c
> +++ b/board/freescale/imx8mn_evk/imx8mn_evk.c
> @@ -7,17 +7,52 @@
>   #include <env.h>
>   #include <init.h>
>   #include <asm/global_data.h>
> +#include <miiphy.h>
> +#include <netdev.h>
> +#include <asm/io.h>
>   
>   DECLARE_GLOBAL_DATA_PTR;
>   
> -int board_init(void)
> +int board_mmc_get_env_dev(int devno)
> +{
> +	return devno;
> +}
> +
> +#if IS_ENABLED(CONFIG_FEC_MXC)
> +static int setup_fec(void)
>   {
> +	struct iomuxc_gpr_base_regs *gpr =
> +		(struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
> +
> +	/* Use 125M anatop REF_CLK1 for ENET1, not from external */
> +	clrsetbits_le32(&gpr->gpr[1], 0x2000, 0);
> +
>   	return 0;
>   }
>   
> -int board_mmc_get_env_dev(int devno)
> +int board_phy_config(struct phy_device *phydev)
>   {
> -	return devno;
> +	/* enable rgmii rxc skew and phy mode select to RGMII copper */
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8);
> +
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x00);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x82ee);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
> +	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
> +
> +	if (phydev->drv->config)
> +		phydev->drv->config(phydev);
> +	return 0;
> +}
> +#endif
> +
> +int board_init(void)
> +{
> +	if (IS_ENABLED(CONFIG_FEC_MXC))
> +		setup_fec();
> +
> +	return 0;
>   }
>   
>   int board_late_init(void)
> diff --git a/configs/imx8mn_ddr4_evk_defconfig b/configs/imx8mn_ddr4_evk_defconfig
> index 28cc551dc41..a760709772f 100644
> --- a/configs/imx8mn_ddr4_evk_defconfig
> +++ b/configs/imx8mn_ddr4_evk_defconfig
> @@ -43,6 +43,9 @@ CONFIG_CMD_FUSE=y
>   CONFIG_CMD_GPIO=y
>   CONFIG_CMD_I2C=y
>   CONFIG_CMD_MMC=y
> +CONFIG_CMD_DHCP=y
> +CONFIG_CMD_MII=y
> +CONFIG_CMD_PING=y
>   CONFIG_CMD_CACHE=y
>   CONFIG_CMD_REGULATOR=y
>   CONFIG_CMD_EXT4_WRITE=y
> @@ -67,7 +70,12 @@ CONFIG_MMC_HS400_ES_SUPPORT=y
>   CONFIG_MMC_HS400_SUPPORT=y
>   CONFIG_FSL_USDHC=y
>   CONFIG_PHYLIB=y
> +CONFIG_PHY_ATHEROS=y
>   CONFIG_DM_ETH=y
> +CONFIG_DM_ETH_PHY=y
> +CONFIG_PHY_GIGE=y
> +CONFIG_FEC_MXC=y
> +CONFIG_MII=y
>   CONFIG_PINCTRL=y
>   CONFIG_SPL_PINCTRL=y
>   CONFIG_PINCTRL_IMX8M=y

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] ARM: imx: imx8mn-ddr4-evk: Fix boot from SD card
  2022-02-13 23:36 [PATCH 1/2] ARM: imx: imx8mn-ddr4-evk: Fix boot from SD card Marek Vasut
  2022-02-13 23:36 ` [PATCH 2/2] ARM: imx: imx8mn-ddr4-evk: Add ethernet support Marek Vasut
@ 2022-02-19 13:08 ` sbabic
  1 sibling, 0 replies; 5+ messages in thread
From: sbabic @ 2022-02-19 13:08 UTC (permalink / raw)
  To: Marek Vasut, u-boot

> Enable missing config options to make the board boot from SD card.
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Peng Fan <peng.fan@nxp.com>
> Cc: Stefano Babic <sbabic@denx.de>
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] ARM: imx: imx8mn-ddr4-evk: Add ethernet support
  2022-02-19 13:06   ` Stefano Babic
@ 2022-02-19 16:17     ` Marek Vasut
  0 siblings, 0 replies; 5+ messages in thread
From: Marek Vasut @ 2022-02-19 16:17 UTC (permalink / raw)
  To: Stefano Babic, u-boot; +Cc: Fabio Estevam, Peng Fan

On 2/19/22 14:06, Stefano Babic wrote:

Hi,

[...]

> I have not pushed this patch because I am puzzled. There is nothing 
> wrong in the patch, and I can apply it, but CI fails randomly. There is 
> a warning during compilation of this board, see:
> 
> https://source.denx.de/u-boot/custodians/u-boot-imx/-/jobs/394060
> 
> However, this makes no sense. It looks like that
> 
> +       if (IS_ENABLED(CONFIG_FEC_MXC))
> +               setup_fec();
> 
> This has effect, while during preprocessing of the same file:
> 
> +#if IS_ENABLED(CONFIG_FEC_MXC)
> +static int setup_fec(void)
> 
> it looks like as "deactivated", no idea why. The warning makes no sense 
> by reading the code. And if I build the board locally, with  make or 
> buildman, everything fine - no error at all.  But, even locally, 
> "buildman aarch64" reports this warning. No idea why, but I cannot add 
> this to PR else the breakage goes into Tom's tree.
> 
> Of course, if I drop #if IS_ENABLED(CONFIG_FEC_MXC), everything fine, 
> but it does not means it is a solution.

The ethernet on this board is always present, so maybe that is the 
solution here. Although I also don't know why this failed in the CI and 
not during local build, some clang detail maybe ?

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-02-19 16:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-13 23:36 [PATCH 1/2] ARM: imx: imx8mn-ddr4-evk: Fix boot from SD card Marek Vasut
2022-02-13 23:36 ` [PATCH 2/2] ARM: imx: imx8mn-ddr4-evk: Add ethernet support Marek Vasut
2022-02-19 13:06   ` Stefano Babic
2022-02-19 16:17     ` Marek Vasut
2022-02-19 13:08 ` [PATCH 1/2] ARM: imx: imx8mn-ddr4-evk: Fix boot from SD card sbabic

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox