[PATCH] net: fec: Get rid of FEC_ENET_ENABLE_[TR]XC_DELAY

The FEC_ENET_ENABLE_.XC_DELAY setting is only used by one system which supports OF control, correctly set the rgmii-id PHY mode in the DT and then determine whether or not to enable the FEC RXC/TXC internal delay based on the PHY mode.
Signed-off-by: Marek Vasut marex@denx.de Cc: Oleksandr Suvorov oleksandr.suvorov@toradex.com Cc: Stefano Babic sbabic@denx.de Cc: Ramon Fried rfried.dev@gmail.com --- arch/arm/dts/fsl-imx8qm-apalis.dts | 2 +- arch/arm/dts/fsl-imx8qxp-apalis.dts | 2 +- drivers/net/fec_mxc.c | 14 ++++++-------- include/configs/apalis-imx8.h | 3 --- include/configs/apalis-imx8x.h | 3 --- 5 files changed, 8 insertions(+), 16 deletions(-)
diff --git a/arch/arm/dts/fsl-imx8qm-apalis.dts b/arch/arm/dts/fsl-imx8qm-apalis.dts index 5187b794527..0d8d3b3e8e8 100644 --- a/arch/arm/dts/fsl-imx8qm-apalis.dts +++ b/arch/arm/dts/fsl-imx8qm-apalis.dts @@ -503,7 +503,7 @@ pinctrl-0 = <&pinctrl_fec1>; fsl,magic-packet; phy-handle = <ðphy0>; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; phy-reset-duration = <10>; phy-reset-gpios = <&gpio1 11 1>; status = "okay"; diff --git a/arch/arm/dts/fsl-imx8qxp-apalis.dts b/arch/arm/dts/fsl-imx8qxp-apalis.dts index 6bd231b2834..9cb3d3a809b 100644 --- a/arch/arm/dts/fsl-imx8qxp-apalis.dts +++ b/arch/arm/dts/fsl-imx8qxp-apalis.dts @@ -229,7 +229,7 @@ pinctrl-0 = <&pinctrl_fec1>; fsl,magic-packet; phy-handle = <ðphy0>; - phy-mode = "rgmii"; + phy-mode = "rgmii-id"; phy-reset-duration = <10>; phy-reset-post-delay = <150>; phy-reset-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c index bb55be9a267..73fc5f4c903 100644 --- a/drivers/net/fec_mxc.c +++ b/drivers/net/fec_mxc.c @@ -507,15 +507,13 @@ static int fec_open(struct eth_device *edev) writel(readl(&fec->eth->ecntrl) | FEC_ECNTRL_ETHER_EN, &fec->eth->ecntrl);
-#ifdef FEC_ENET_ENABLE_TXC_DELAY - writel(readl(&fec->eth->ecntrl) | FEC_ECNTRL_TXC_DLY, - &fec->eth->ecntrl); -#endif + if (fec->interface == PHY_INTERFACE_MODE_RGMII_ID || + fec->interface == PHY_INTERFACE_MODE_RGMII_TXID) + setbits_le32(&fec->eth->ecntrl, FEC_ECNTRL_TXC_DLY);
-#ifdef FEC_ENET_ENABLE_RXC_DELAY - writel(readl(&fec->eth->ecntrl) | FEC_ECNTRL_RXC_DLY, - &fec->eth->ecntrl); -#endif + if (fec->interface == PHY_INTERFACE_MODE_RGMII_ID || + fec->interface == PHY_INTERFACE_MODE_RGMII_RXID) + setbits_le32(&fec->eth->ecntrl, FEC_ECNTRL_RXC_DLY);
#if defined(CONFIG_MX25) || defined(CONFIG_MX53) || defined(CONFIG_MX6SL) udelay(100); diff --git a/include/configs/apalis-imx8.h b/include/configs/apalis-imx8.h index db4e9011c0b..81441d7770f 100644 --- a/include/configs/apalis-imx8.h +++ b/include/configs/apalis-imx8.h @@ -21,9 +21,6 @@ #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
/* Networking */ -#define FEC_QUIRK_ENET_MAC -#define FEC_ENET_ENABLE_TXC_DELAY - #define CONFIG_TFTP_TSIZE
#define CONFIG_IPADDR 192.168.10.2 diff --git a/include/configs/apalis-imx8x.h b/include/configs/apalis-imx8x.h index db31c210f50..90bbeb926d3 100644 --- a/include/configs/apalis-imx8x.h +++ b/include/configs/apalis-imx8x.h @@ -25,9 +25,6 @@ #define CONFIG_NETMASK 255.255.255.0 #define CONFIG_SERVERIP 192.168.10.1
-#define FEC_ENET_ENABLE_TXC_DELAY -#define FEC_ENET_ENABLE_RXC_DELAY - #define MEM_LAYOUT_ENV_SETTINGS \ "kernel_addr_r=0x80280000\0" \ "fdt_addr_r=0x83100000\0" \

Hi Marek,
On Tue, Jan 19, 2021 at 1:57 AM Marek Vasut marex@denx.de wrote:
The FEC_ENET_ENABLE_.XC_DELAY setting is only used by one system which supports OF control, correctly set the rgmii-id PHY mode in the DT and then determine whether or not to enable the FEC RXC/TXC internal delay based on the PHY mode.
Signed-off-by: Marek Vasut marex@denx.de
Reviewed-by: Oleksandr Suvorov oleksandr.suvorov@toradex.com
Thanks & Regards
Cc: Oleksandr Suvorov oleksandr.suvorov@toradex.com Cc: Stefano Babic sbabic@denx.de Cc: Ramon Fried rfried.dev@gmail.com
arch/arm/dts/fsl-imx8qm-apalis.dts | 2 +- arch/arm/dts/fsl-imx8qxp-apalis.dts | 2 +- drivers/net/fec_mxc.c | 14 ++++++-------- include/configs/apalis-imx8.h | 3 --- include/configs/apalis-imx8x.h | 3 --- 5 files changed, 8 insertions(+), 16 deletions(-)
diff --git a/arch/arm/dts/fsl-imx8qm-apalis.dts b/arch/arm/dts/fsl-imx8qm-apalis.dts index 5187b794527..0d8d3b3e8e8 100644 --- a/arch/arm/dts/fsl-imx8qm-apalis.dts +++ b/arch/arm/dts/fsl-imx8qm-apalis.dts @@ -503,7 +503,7 @@ pinctrl-0 = <&pinctrl_fec1>; fsl,magic-packet; phy-handle = <ðphy0>;
phy-mode = "rgmii";
phy-mode = "rgmii-id"; phy-reset-duration = <10>; phy-reset-gpios = <&gpio1 11 1>; status = "okay";
diff --git a/arch/arm/dts/fsl-imx8qxp-apalis.dts b/arch/arm/dts/fsl-imx8qxp-apalis.dts index 6bd231b2834..9cb3d3a809b 100644 --- a/arch/arm/dts/fsl-imx8qxp-apalis.dts +++ b/arch/arm/dts/fsl-imx8qxp-apalis.dts @@ -229,7 +229,7 @@ pinctrl-0 = <&pinctrl_fec1>; fsl,magic-packet; phy-handle = <ðphy0>;
phy-mode = "rgmii";
phy-mode = "rgmii-id"; phy-reset-duration = <10>; phy-reset-post-delay = <150>; phy-reset-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c index bb55be9a267..73fc5f4c903 100644 --- a/drivers/net/fec_mxc.c +++ b/drivers/net/fec_mxc.c @@ -507,15 +507,13 @@ static int fec_open(struct eth_device *edev) writel(readl(&fec->eth->ecntrl) | FEC_ECNTRL_ETHER_EN, &fec->eth->ecntrl);
-#ifdef FEC_ENET_ENABLE_TXC_DELAY
writel(readl(&fec->eth->ecntrl) | FEC_ECNTRL_TXC_DLY,
&fec->eth->ecntrl);
-#endif
if (fec->interface == PHY_INTERFACE_MODE_RGMII_ID ||
fec->interface == PHY_INTERFACE_MODE_RGMII_TXID)
setbits_le32(&fec->eth->ecntrl, FEC_ECNTRL_TXC_DLY);
-#ifdef FEC_ENET_ENABLE_RXC_DELAY
writel(readl(&fec->eth->ecntrl) | FEC_ECNTRL_RXC_DLY,
&fec->eth->ecntrl);
-#endif
if (fec->interface == PHY_INTERFACE_MODE_RGMII_ID ||
fec->interface == PHY_INTERFACE_MODE_RGMII_RXID)
setbits_le32(&fec->eth->ecntrl, FEC_ECNTRL_RXC_DLY);
#if defined(CONFIG_MX25) || defined(CONFIG_MX53) || defined(CONFIG_MX6SL) udelay(100); diff --git a/include/configs/apalis-imx8.h b/include/configs/apalis-imx8.h index db4e9011c0b..81441d7770f 100644 --- a/include/configs/apalis-imx8.h +++ b/include/configs/apalis-imx8.h @@ -21,9 +21,6 @@ #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
/* Networking */ -#define FEC_QUIRK_ENET_MAC -#define FEC_ENET_ENABLE_TXC_DELAY
#define CONFIG_TFTP_TSIZE
#define CONFIG_IPADDR 192.168.10.2 diff --git a/include/configs/apalis-imx8x.h b/include/configs/apalis-imx8x.h index db31c210f50..90bbeb926d3 100644 --- a/include/configs/apalis-imx8x.h +++ b/include/configs/apalis-imx8x.h @@ -25,9 +25,6 @@ #define CONFIG_NETMASK 255.255.255.0 #define CONFIG_SERVERIP 192.168.10.1
-#define FEC_ENET_ENABLE_TXC_DELAY -#define FEC_ENET_ENABLE_RXC_DELAY
#define MEM_LAYOUT_ENV_SETTINGS \ "kernel_addr_r=0x80280000\0" \ "fdt_addr_r=0x83100000\0" \ -- 2.29.2

Hi Marek,
this rather breaks old platforms - I check with mx25pdk, but also mx35 is broken. Could you take a look ? Thanks !
+drivers/net/fec_mxc.c:510:9: error: 'struct fec_priv' has no member named 'interface' + 510 | if (fec->interface == PHY_INTERFACE_MODE_RGMII_ID || + | ^~ +drivers/net/fec_mxc.c:511:9: error: 'struct fec_priv' has no member named 'interface' + 511 | fec->interface == PHY_INTERFACE_MODE_RGMII_TXID) +drivers/net/fec_mxc.c:514:9: error: 'struct fec_priv' has no member named 'interface' + 514 | if (fec->interface == PHY_INTERFACE_MODE_RGMII_ID || +drivers/net/fec_mxc.c:515:9: error: 'struct fec_priv' has no member named 'interface' + 515 | fec->interface == PHY_INTERFACE_MODE_RGMII_RXID) +make[2]: *** [scripts/Makefile.build:266: drivers/net/fec_mxc.o] Error 1 +make[1]: *** [Makefile:1787: drivers/net] Error 2 +make: *** [Makefile:167: sub-make] Error 2 arm: + mx25pdk
Regards, Stefano
On 20.01.21 09:17, Oleksandr Suvorov wrote:
Hi Marek,
On Tue, Jan 19, 2021 at 1:57 AM Marek Vasut marex@denx.de wrote:
The FEC_ENET_ENABLE_.XC_DELAY setting is only used by one system which supports OF control, correctly set the rgmii-id PHY mode in the DT and then determine whether or not to enable the FEC RXC/TXC internal delay based on the PHY mode.
Signed-off-by: Marek Vasut marex@denx.de
Reviewed-by: Oleksandr Suvorov oleksandr.suvorov@toradex.com
Thanks & Regards
Cc: Oleksandr Suvorov oleksandr.suvorov@toradex.com Cc: Stefano Babic sbabic@denx.de Cc: Ramon Fried rfried.dev@gmail.com
arch/arm/dts/fsl-imx8qm-apalis.dts | 2 +- arch/arm/dts/fsl-imx8qxp-apalis.dts | 2 +- drivers/net/fec_mxc.c | 14 ++++++-------- include/configs/apalis-imx8.h | 3 --- include/configs/apalis-imx8x.h | 3 --- 5 files changed, 8 insertions(+), 16 deletions(-)
diff --git a/arch/arm/dts/fsl-imx8qm-apalis.dts b/arch/arm/dts/fsl-imx8qm-apalis.dts index 5187b794527..0d8d3b3e8e8 100644 --- a/arch/arm/dts/fsl-imx8qm-apalis.dts +++ b/arch/arm/dts/fsl-imx8qm-apalis.dts @@ -503,7 +503,7 @@ pinctrl-0 = <&pinctrl_fec1>; fsl,magic-packet; phy-handle = <ðphy0>;
phy-mode = "rgmii";
phy-mode = "rgmii-id"; phy-reset-duration = <10>; phy-reset-gpios = <&gpio1 11 1>; status = "okay";
diff --git a/arch/arm/dts/fsl-imx8qxp-apalis.dts b/arch/arm/dts/fsl-imx8qxp-apalis.dts index 6bd231b2834..9cb3d3a809b 100644 --- a/arch/arm/dts/fsl-imx8qxp-apalis.dts +++ b/arch/arm/dts/fsl-imx8qxp-apalis.dts @@ -229,7 +229,7 @@ pinctrl-0 = <&pinctrl_fec1>; fsl,magic-packet; phy-handle = <ðphy0>;
phy-mode = "rgmii";
phy-mode = "rgmii-id"; phy-reset-duration = <10>; phy-reset-post-delay = <150>; phy-reset-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>;
diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c index bb55be9a267..73fc5f4c903 100644 --- a/drivers/net/fec_mxc.c +++ b/drivers/net/fec_mxc.c @@ -507,15 +507,13 @@ static int fec_open(struct eth_device *edev) writel(readl(&fec->eth->ecntrl) | FEC_ECNTRL_ETHER_EN, &fec->eth->ecntrl);
-#ifdef FEC_ENET_ENABLE_TXC_DELAY
writel(readl(&fec->eth->ecntrl) | FEC_ECNTRL_TXC_DLY,
&fec->eth->ecntrl);
-#endif
if (fec->interface == PHY_INTERFACE_MODE_RGMII_ID ||
fec->interface == PHY_INTERFACE_MODE_RGMII_TXID)
setbits_le32(&fec->eth->ecntrl, FEC_ECNTRL_TXC_DLY);
-#ifdef FEC_ENET_ENABLE_RXC_DELAY
writel(readl(&fec->eth->ecntrl) | FEC_ECNTRL_RXC_DLY,
&fec->eth->ecntrl);
-#endif
if (fec->interface == PHY_INTERFACE_MODE_RGMII_ID ||
fec->interface == PHY_INTERFACE_MODE_RGMII_RXID)
setbits_le32(&fec->eth->ecntrl, FEC_ECNTRL_RXC_DLY);
#if defined(CONFIG_MX25) || defined(CONFIG_MX53) || defined(CONFIG_MX6SL) udelay(100); diff --git a/include/configs/apalis-imx8.h b/include/configs/apalis-imx8.h index db4e9011c0b..81441d7770f 100644 --- a/include/configs/apalis-imx8.h +++ b/include/configs/apalis-imx8.h @@ -21,9 +21,6 @@ #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
/* Networking */ -#define FEC_QUIRK_ENET_MAC -#define FEC_ENET_ENABLE_TXC_DELAY
#define CONFIG_TFTP_TSIZE
#define CONFIG_IPADDR 192.168.10.2 diff --git a/include/configs/apalis-imx8x.h b/include/configs/apalis-imx8x.h index db31c210f50..90bbeb926d3 100644 --- a/include/configs/apalis-imx8x.h +++ b/include/configs/apalis-imx8x.h @@ -25,9 +25,6 @@ #define CONFIG_NETMASK 255.255.255.0 #define CONFIG_SERVERIP 192.168.10.1
-#define FEC_ENET_ENABLE_TXC_DELAY -#define FEC_ENET_ENABLE_RXC_DELAY
#define MEM_LAYOUT_ENV_SETTINGS \ "kernel_addr_r=0x80280000\0" \ "fdt_addr_r=0x83100000\0" \ -- 2.29.2

The FEC_ENET_ENABLE_.XC_DELAY setting is only used by one system which supports OF control, correctly set the rgmii-id PHY mode in the DT and then determine whether or not to enable the FEC RXC/TXC internal delay based on the PHY mode. Signed-off-by: Marek Vasut marex@denx.de Cc: Oleksandr Suvorov oleksandr.suvorov@toradex.com Cc: Stefano Babic sbabic@denx.de Cc: Ramon Fried rfried.dev@gmail.com Reviewed-by: Oleksandr Suvorov oleksandr.suvorov@toradex.com
Applied to u-boot-imx, master, thanks !
Best regards, Stefano Babic
participants (4)
-
Marek Vasut
-
Oleksandr Suvorov
-
sbabic@denx.de
-
Stefano Babic