* [PATCH v1] ARM: protonic: disable on-die termination to fix PHY bootstrapping
@ 2020-10-08 10:23 Oleksij Rempel
2020-10-09 7:25 ` Sascha Hauer
0 siblings, 1 reply; 2+ messages in thread
From: Oleksij Rempel @ 2020-10-08 10:23 UTC (permalink / raw)
To: barebox; +Cc: Oleksij Rempel, david
If on-die termination is enabled, the RXC pin of iMX6 will be pulled
high. Since we already have an 10K pull-down on board, the RXC level on
PHY reset will be ~800mV, which is mostly interpreted as 1. On some
reboots we get 0 instead and kernel can't detect the PHY properly.
Since the default 0x020e07ac value is 0, it is sufficient to remove this
entry from the affected imxcfg files.
Since we get stable 0 on pin PHYADDR[2], the PHY address is changed from
4 to 0.
Fixes: 00adc1e33ef8 ("ARM: add imx6 based Protonic boads")
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
---
| 1 -
| 1 -
| 1 -
arch/arm/dts/imx6q-prti6q.dts | 2 +-
arch/arm/dts/imx6q-vicut1.dts | 2 +-
5 files changed, 2 insertions(+), 5 deletions(-)
--git a/arch/arm/boards/protonic-imx6/flash-header-prti6q.imxcfg b/arch/arm/boards/protonic-imx6/flash-header-prti6q.imxcfg
index 68b7909f82..029edc248a 100644
--- a/arch/arm/boards/protonic-imx6/flash-header-prti6q.imxcfg
+++ b/arch/arm/boards/protonic-imx6/flash-header-prti6q.imxcfg
@@ -120,4 +120,3 @@ wm 32 0x020e0614 0x000130b0
/* RGMII config */
wm 32 0x020e0790 0x00080000 /* 1V2 DDR IO */
-wm 32 0x020e07ac 0x00000200 /* 60 Ohm ODT */
--git a/arch/arm/boards/protonic-imx6/flash-header-vicut1q.imxcfg b/arch/arm/boards/protonic-imx6/flash-header-vicut1q.imxcfg
index a73a2c6fd0..f7e75b47bf 100644
--- a/arch/arm/boards/protonic-imx6/flash-header-vicut1q.imxcfg
+++ b/arch/arm/boards/protonic-imx6/flash-header-vicut1q.imxcfg
@@ -124,4 +124,3 @@ wm 32 0x020e0614 0x000130b0
/* RGMII config */
wm 32 0x020e0790 0x00080000 /* 1V2 DDR IO */
-wm 32 0x020e07ac 0x00000200 /* 60 Ohm ODT */
--git a/arch/arm/boards/protonic-imx6/flash-header-vicutp.imxcfg b/arch/arm/boards/protonic-imx6/flash-header-vicutp.imxcfg
index 13887ade0b..e218279239 100644
--- a/arch/arm/boards/protonic-imx6/flash-header-vicutp.imxcfg
+++ b/arch/arm/boards/protonic-imx6/flash-header-vicutp.imxcfg
@@ -171,4 +171,3 @@ wm 32 0x020e0614 0x000130b0
/* RGMII config */
wm 32 0x020e0790 0x00080000 /* 1V2 DDR IO */
-wm 32 0x020e07ac 0x00000200 /* 60 Ohm ODT */
diff --git a/arch/arm/dts/imx6q-prti6q.dts b/arch/arm/dts/imx6q-prti6q.dts
index acdb7b22d9..21e24222a0 100644
--- a/arch/arm/dts/imx6q-prti6q.dts
+++ b/arch/arm/dts/imx6q-prti6q.dts
@@ -204,7 +204,7 @@
/* Microchip KSZ9031RNX PHY */
rgmii_phy: ethernet-phy@4 {
- reg = <4>;
+ reg = <0>;
interrupts-extended = <&gpio1 28 IRQ_TYPE_LEVEL_LOW>;
reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
reset-assert-us = <10000>;
diff --git a/arch/arm/dts/imx6q-vicut1.dts b/arch/arm/dts/imx6q-vicut1.dts
index 9747b3c62e..9d1d6fa550 100644
--- a/arch/arm/dts/imx6q-vicut1.dts
+++ b/arch/arm/dts/imx6q-vicut1.dts
@@ -29,7 +29,7 @@
/* Microchip KSZ9031RNX PHY */
rgmii_phy: ethernet-phy@4 {
- reg = <4>;
+ reg = <0>;
interrupts-extended = <&gpio1 28 IRQ_TYPE_LEVEL_LOW>;
reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
reset-assert-us = <10000>;
--
2.28.0
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH v1] ARM: protonic: disable on-die termination to fix PHY bootstrapping
2020-10-08 10:23 [PATCH v1] ARM: protonic: disable on-die termination to fix PHY bootstrapping Oleksij Rempel
@ 2020-10-09 7:25 ` Sascha Hauer
0 siblings, 0 replies; 2+ messages in thread
From: Sascha Hauer @ 2020-10-09 7:25 UTC (permalink / raw)
To: Oleksij Rempel; +Cc: barebox, david
On Thu, Oct 08, 2020 at 12:23:14PM +0200, Oleksij Rempel wrote:
> If on-die termination is enabled, the RXC pin of iMX6 will be pulled
> high. Since we already have an 10K pull-down on board, the RXC level on
> PHY reset will be ~800mV, which is mostly interpreted as 1. On some
> reboots we get 0 instead and kernel can't detect the PHY properly.
>
> Since the default 0x020e07ac value is 0, it is sufficient to remove this
> entry from the affected imxcfg files.
>
> Since we get stable 0 on pin PHYADDR[2], the PHY address is changed from
> 4 to 0.
>
> Fixes: 00adc1e33ef8 ("ARM: add imx6 based Protonic boads")
> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
> ---
> arch/arm/boards/protonic-imx6/flash-header-prti6q.imxcfg | 1 -
> arch/arm/boards/protonic-imx6/flash-header-vicut1q.imxcfg | 1 -
> arch/arm/boards/protonic-imx6/flash-header-vicutp.imxcfg | 1 -
> arch/arm/dts/imx6q-prti6q.dts | 2 +-
> arch/arm/dts/imx6q-vicut1.dts | 2 +-
> 5 files changed, 2 insertions(+), 5 deletions(-)
Applied to master, thanks
Sascha
>
> diff --git a/arch/arm/boards/protonic-imx6/flash-header-prti6q.imxcfg b/arch/arm/boards/protonic-imx6/flash-header-prti6q.imxcfg
> index 68b7909f82..029edc248a 100644
> --- a/arch/arm/boards/protonic-imx6/flash-header-prti6q.imxcfg
> +++ b/arch/arm/boards/protonic-imx6/flash-header-prti6q.imxcfg
> @@ -120,4 +120,3 @@ wm 32 0x020e0614 0x000130b0
>
> /* RGMII config */
> wm 32 0x020e0790 0x00080000 /* 1V2 DDR IO */
> -wm 32 0x020e07ac 0x00000200 /* 60 Ohm ODT */
> diff --git a/arch/arm/boards/protonic-imx6/flash-header-vicut1q.imxcfg b/arch/arm/boards/protonic-imx6/flash-header-vicut1q.imxcfg
> index a73a2c6fd0..f7e75b47bf 100644
> --- a/arch/arm/boards/protonic-imx6/flash-header-vicut1q.imxcfg
> +++ b/arch/arm/boards/protonic-imx6/flash-header-vicut1q.imxcfg
> @@ -124,4 +124,3 @@ wm 32 0x020e0614 0x000130b0
>
> /* RGMII config */
> wm 32 0x020e0790 0x00080000 /* 1V2 DDR IO */
> -wm 32 0x020e07ac 0x00000200 /* 60 Ohm ODT */
> diff --git a/arch/arm/boards/protonic-imx6/flash-header-vicutp.imxcfg b/arch/arm/boards/protonic-imx6/flash-header-vicutp.imxcfg
> index 13887ade0b..e218279239 100644
> --- a/arch/arm/boards/protonic-imx6/flash-header-vicutp.imxcfg
> +++ b/arch/arm/boards/protonic-imx6/flash-header-vicutp.imxcfg
> @@ -171,4 +171,3 @@ wm 32 0x020e0614 0x000130b0
>
> /* RGMII config */
> wm 32 0x020e0790 0x00080000 /* 1V2 DDR IO */
> -wm 32 0x020e07ac 0x00000200 /* 60 Ohm ODT */
> diff --git a/arch/arm/dts/imx6q-prti6q.dts b/arch/arm/dts/imx6q-prti6q.dts
> index acdb7b22d9..21e24222a0 100644
> --- a/arch/arm/dts/imx6q-prti6q.dts
> +++ b/arch/arm/dts/imx6q-prti6q.dts
> @@ -204,7 +204,7 @@
>
> /* Microchip KSZ9031RNX PHY */
> rgmii_phy: ethernet-phy@4 {
> - reg = <4>;
> + reg = <0>;
> interrupts-extended = <&gpio1 28 IRQ_TYPE_LEVEL_LOW>;
> reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
> reset-assert-us = <10000>;
> diff --git a/arch/arm/dts/imx6q-vicut1.dts b/arch/arm/dts/imx6q-vicut1.dts
> index 9747b3c62e..9d1d6fa550 100644
> --- a/arch/arm/dts/imx6q-vicut1.dts
> +++ b/arch/arm/dts/imx6q-vicut1.dts
> @@ -29,7 +29,7 @@
>
> /* Microchip KSZ9031RNX PHY */
> rgmii_phy: ethernet-phy@4 {
> - reg = <4>;
> + reg = <0>;
> interrupts-extended = <&gpio1 28 IRQ_TYPE_LEVEL_LOW>;
> reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
> reset-assert-us = <10000>;
> --
> 2.28.0
>
>
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-10-09 7:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-08 10:23 [PATCH v1] ARM: protonic: disable on-die termination to fix PHY bootstrapping Oleksij Rempel
2020-10-09 7:25 ` Sascha Hauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox