Skip to contentSkip to conversation

net/designware: revert MAC-address setup on init

PATCH New Alexey Brodkin 4 participants 9 messages Jul 1, 2015 – Jul 8, 2015 Network drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 net/designware: revert MAC-address setup on init

http://git.denx.de/?p=u-boot.git;a=patch;h=f566c9949fbdce2e09a900c5343ca9986e5ba360
broke DW GMAC operation if !DM_ETH because eth_write_hwaddr() doesn't exist if !DM_NET.

As for DM_ETH case I'm still not sure if existing implementation will fly.

The point is as it is said in the comment on "soft reset" that is triggered with setting DMAMAC_SRST in "busmode" register HW address gets reset as well. And we inevitably need to set HW address again.

So probably better solution is to move mentioned "soft-reset" from "init" (that is used on start of any network activity) to "initialize" (which is only executed once in "board_r" sequence). But that's a bit of a different story and for now let's just get DW GMAC functional again.

Cc Joe Hershberger <[email protected]>
Cc Michal Simek <[email protected]>
Cc Tom Rini <[email protected]>
---
 drivers/net/designware.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/net/designware.c +4 -0
index ae51cf3..07281a6 100644
@@ -243,6 +243,10 @@ static int _dw_eth_init(struct dw_eth_dev *priv, u8 *enetaddr)
 		mdelay(100);
 	};
 
+	/* Soft reset above clears HW address registers.
+	 * So we have to set it here once again */
+	_dw_write_hwaddr(priv, enetaddr);
+
 	rx_descs_init(priv);
 	tx_descs_init(priv);
 
Signature · 1 line
2.4.3
#1 lore raw

PATCH 1/1 net/designware: revert MAC-address setup on init

Hi Alexey,

Quoted 30 lines · Alexey Brodkin

http://git.denx.de/?p=u-boot.git;a=patch;h=f566c9949fbdce2e09a900c5343ca9986e5ba360
broke DW GMAC operation if !DM_ETH because eth_write_hwaddr() doesn't exist if !DM_NET.

As for DM_ETH case I'm still not sure if existing implementation will fly.

The point is as it is said in the comment on "soft reset" that is triggered with setting DMAMAC_SRST in "busmode" register HW address gets reset as well. And we inevitably need to set HW address again.

So probably better solution is to move mentioned "soft-reset" from "init" (that is used on start of any network activity) to "initialize" (which is only executed once in "board_r" sequence). But that's a bit of a different story and for now let's just get DW GMAC functional again.

Cc Joe Hershberger <[email protected]>
Cc Michal Simek <[email protected]>
Cc Tom Rini <[email protected]>
---
 drivers/net/designware.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/net/designware.c +0 -0
index ae51cf3..07281a6 100644
@@ -243,6 +243,10 @@ static int _dw_eth_init(struct dw_eth_dev *priv, u8 *enetaddr)
                mdelay(100);

drivers/net/designware.c static int _dw_eth_init(struct dw_eth_dev *priv, u8 *enetaddr)

Quoted 10 lines
drivers/net/designware.c +4 -1
        };
 
+       /* Soft reset above clears HW address registers.
+        * So we have to set it here once again */
+       _dw_write_hwaddr(priv, enetaddr);
+
        rx_descs_init(priv);
        tx_descs_init(priv);
 
--

There is already a patch submitted. Please check
http://patchwork.ozlabs.org/patch/484214/

Regards,
Bin

#2 lore raw

PATCH 1/1 net/designware: revert MAC-address setup on init

Hi Tom, Joe,

Quoted 51 lines · Bin Meng

Hi Alexey,

Quoted 47 lines · Alexey Brodkin

http://git.denx.de/?p=u
-boot.git;a=patch;h=f566c9949fbdce2e09a900c5343ca9986e5ba360 broke DW GMAC operation if !DM_ETH because eth_write_hwaddr() doesn't
exist if !DM_NET.

As for DM_ETH case I'm still not sure if existing implementation will
fly.

The point is as it is said in the comment on "soft reset" that is triggered with setting DMAMAC_SRST in "busmode" register HW address gets
reset as well. And we inevitably need to set HW address again.

So probably better solution is to move mentioned "soft-reset" from "init" (that is used on start of any network activity) to "initialize"
(which is only executed once in "board_r" sequence). But that's a bit of
a different story and for now let's just get DW GMAC functional again.

Cc Joe Hershberger <[email protected]>
Cc Michal Simek <[email protected]>
Cc Tom Rini <[email protected]>
---
 drivers/net/designware.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/net/designware.c +4 -0
index ae51cf3..07281a6 100644
@@ -243,6 +243,10 @@ static int _dw_eth_init(struct dw_eth_dev 
 *priv, u8 *enetaddr)
                mdelay(100);
        };
 
+       /* Soft reset above clears HW address registers.
+        * So we have to set it here once again */
+       _dw_write_hwaddr(priv, enetaddr);
+
        rx_descs_init(priv);
        tx_descs_init(priv);
Quoted 4 lines
Quoted 1 line

--

There is already a patch submitted. Please check
http://patchwork.ozlabs.org/patch/484214/

Any chance for mentioned patch "net: designware: Program MAC address to hardware after soft reset" to be applied?

This really fixes GMAC operation and it would be nice to have this fix in upcoming release.

-Alexey

#3 lore raw

PATCH 1/1 net/designware: revert MAC-address setup on init

Hi Alexey,

Quoted 59 lines · Alexey Brodkin

Hi Tom, Joe,

Quoted 51 lines · Bin Meng

Hi Alexey,

Quoted 47 lines · Alexey Brodkin

http://git.denx.de/?p=u
-boot.git;a=patch;h=f566c9949fbdce2e09a900c5343ca9986e5ba360 broke DW GMAC operation if !DM_ETH because eth_write_hwaddr() doesn't
exist if !DM_NET.

As for DM_ETH case I'm still not sure if existing implementation will
fly.

The point is as it is said in the comment on "soft reset" that is triggered with setting DMAMAC_SRST in "busmode" register HW address gets
reset as well. And we inevitably need to set HW address again.

So probably better solution is to move mentioned "soft-reset" from "init" (that is used on start of any network activity) to "initialize"
(which is only executed once in "board_r" sequence). But that's a bit of
a different story and for now let's just get DW GMAC functional again.

Cc Joe Hershberger <[email protected]>
Cc Michal Simek <[email protected]>
Cc Tom Rini <[email protected]>
---
 drivers/net/designware.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/net/designware.c +4 -0
index ae51cf3..07281a6 100644
@@ -243,6 +243,10 @@ static int _dw_eth_init(struct dw_eth_dev
 *priv, u8 *enetaddr)
                mdelay(100);
        };
 
+       /* Soft reset above clears HW address registers.
+        * So we have to set it here once again */
+       _dw_write_hwaddr(priv, enetaddr);
+
        rx_descs_init(priv);
        tx_descs_init(priv);
Quoted 4 lines
Quoted 1 line

--

There is already a patch submitted. Please check
http://patchwork.ozlabs.org/patch/484214/

Quoted 5 lines

Any chance for mentioned patch "net: designware: Program MAC address to hardware after soft reset" to be applied?

This really fixes GMAC operation and it would be nice to have this fix in upcoming release.

I think that sounds appropriate. Tom?

-Joe

#4 lore raw

PATCH 1/1 net/designware: revert MAC-address setup on init

Quoted 63 lines · Joe Hershberger

Hi Alexey,

Quoted 59 lines · Alexey Brodkin

Hi Tom, Joe,

Quoted 55 lines · Bin Meng

Hi Alexey,

Quoted 38 lines · Alexey Brodkin

http://git.denx.de/?p=u
-boot.git;a=patch;h=f566c9949fbdce2e09a900c5343ca9986e5ba360 broke DW GMAC operation if !DM_ETH because eth_write_hwaddr() doesn't
exist if !DM_NET.

As for DM_ETH case I'm still not sure if existing implementation will
fly.

The point is as it is said in the comment on "soft reset" that is triggered with setting DMAMAC_SRST in "busmode" register HW address gets
reset as well. And we inevitably need to set HW address again.

So probably better solution is to move mentioned "soft-reset" from "init" (that is used on start of any network activity) to "initialize"
(which is only executed once in "board_r" sequence). But that's a bit of
a different story and for now let's just get DW GMAC functional again.

Cc Joe Hershberger <[email protected]>
Cc Michal Simek <[email protected]>
Cc Tom Rini <[email protected]>
---
 drivers/net/designware.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/net/designware.c +0 -0
index ae51cf3..07281a6 100644
@@ -243,6 +243,10 @@ static int _dw_eth_init(struct dw_eth_dev
 *priv, u8 *enetaddr)
                mdelay(100);

drivers/net/designware.c static int _dw_eth_init(struct dw_eth_dev

Quoted 10 lines
drivers/net/designware.c +4 -1
        };
 
+       /* Soft reset above clears HW address registers.
+        * So we have to set it here once again */
+       _dw_write_hwaddr(priv, enetaddr);
+
        rx_descs_init(priv);
        tx_descs_init(priv);
 
--

There is already a patch submitted. Please check
http://patchwork.ozlabs.org/patch/484214/

Quoted 7 lines
Quoted 5 lines

Any chance for mentioned patch "net: designware: Program MAC address to hardware after soft reset" to be applied?

This really fixes GMAC operation and it would be nice to have this fix in upcoming release.

I think that sounds appropriate. Tom?

Yes. Of the handful of recent (in my mind anyhow) net patches, are you going to do a PR for them or should I just grab things?

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150701/58f85e11/attachment.sig>
#5 lore raw

PATCH 1/1 net/designware: revert MAC-address setup on init

Hi Joe,

Quoted 81 lines · Tom Rini
Quoted 80 lines · Joe Hershberger

Hi Alexey,

Quoted 75 lines · Alexey Brodkin

Hi Tom, Joe,

Quoted 60 lines · Bin Meng

Hi Alexey,

Quoted 56 lines · Alexey Brodkin

http://git.denx.de/?p=u
-boot.git;a=patch;h=f566c9949fbdce2e09a900c5343ca9986e5ba360 broke DW GMAC operation if !DM_ETH because eth_write_hwaddr() doesn't
exist if !DM_NET.

As for DM_ETH case I'm still not sure if existing implementation
will
fly.

The point is as it is said in the comment on "soft reset" that is
triggered with setting DMAMAC_SRST in "busmode" register HW address
gets
reset as well. And we inevitably need to set HW address again.

So probably better solution is to move mentioned "soft-reset" from
"init" (that is used on start of any network activity) to "initialize"
(which is only executed once in "board_r" sequence). But that's a
bit of
a different story and for now let's just get DW GMAC functional
again.

Cc Joe Hershberger <[email protected]>
Cc Michal Simek <[email protected]>
Cc Tom Rini <[email protected]>
---
 drivers/net/designware.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/net/designware.c +0 -0
index ae51cf3..07281a6 100644
@@ -243,6 +243,10 @@ static int _dw_eth_init(struct 

dw_eth_dev
*priv, u8 *enetaddr)

                mdelay(100);
        };
drivers/net/designware.c +4 -0
+       /* Soft reset above clears HW address registers.
+        * So we have to set it here once again */
+       _dw_write_hwaddr(priv, enetaddr);
+
        rx_descs_init(priv);
        tx_descs_init(priv);
Quoted 4 lines
Quoted 1 line

--

There is already a patch submitted. Please check
http://patchwork.ozlabs.org/patch/484214/

Any chance for mentioned patch "net: designware: Program MAC address to
hardware after soft reset" to be applied?

This really fixes GMAC operation and it would be nice to have this fix
in upcoming release.

Quoted 5 lines
Quoted 1 line

I think that sounds appropriate. Tom?

Yes. Of the handful of recent (in my mind anyhow) net patches, are you
going to do a PR for them or should I just grab things?

Any chance to see that patch upstream anytime soon?

-Alexey

#6 lore raw

PATCH 1/1 net/designware: revert MAC-address setup on init

In reply to Tom Rini

Hey Tom,

Quoted 67 lines · Tom Rini
Quoted 66 lines · Joe Hershberger

Hi Alexey,

Quoted 62 lines · Alexey Brodkin

Hi Tom, Joe,

Quoted 51 lines · Bin Meng

Hi Alexey,

Quoted 47 lines · Alexey Brodkin

http://git.denx.de/?p=u
-boot.git;a=patch;h=f566c9949fbdce2e09a900c5343ca9986e5ba360 broke DW GMAC operation if !DM_ETH because eth_write_hwaddr() doesn't
exist if !DM_NET.

As for DM_ETH case I'm still not sure if existing implementation will
fly.

The point is as it is said in the comment on "soft reset" that is triggered with setting DMAMAC_SRST in "busmode" register HW address gets
reset as well. And we inevitably need to set HW address again.

So probably better solution is to move mentioned "soft-reset" from "init" (that is used on start of any network activity) to "initialize"
(which is only executed once in "board_r" sequence). But that's a bit of
a different story and for now let's just get DW GMAC functional again.

Cc Joe Hershberger <[email protected]>
Cc Michal Simek <[email protected]>
Cc Tom Rini <[email protected]>
---
 drivers/net/designware.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/net/designware.c +4 -0
index ae51cf3..07281a6 100644
@@ -243,6 +243,10 @@ static int _dw_eth_init(struct dw_eth_dev
 *priv, u8 *enetaddr)
                mdelay(100);
        };
 
+       /* Soft reset above clears HW address registers.
+        * So we have to set it here once again */
+       _dw_write_hwaddr(priv, enetaddr);
+
        rx_descs_init(priv);
        tx_descs_init(priv);
Quoted 4 lines
Quoted 1 line

--

There is already a patch submitted. Please check
http://patchwork.ozlabs.org/patch/484214/

Any chance for mentioned patch "net: designware: Program MAC address to hardware after soft reset" to be applied?

Quoted 7 lines
Quoted 4 lines
Quoted 2 lines

This really fixes GMAC operation and it would be nice to have this fix in upcoming release.

I think that sounds appropriate. Tom?

Yes. Of the handful of recent (in my mind anyhow) net patches, are you going to do a PR for them or should I just grab things?

Sorry, was on vacation. I think you can just grab this one. Is there another you are thinking of that is a bug fix for this release?

Thanks,
-Joe

#7 lore raw

PATCH 1/1 net/designware: revert MAC-address setup on init

Hi Joe,

Quoted 73 lines · Joe Hershberger

Hey Tom,

Quoted 70 lines · Tom Rini
Quoted 69 lines · Joe Hershberger

Hi Alexey,

Quoted 64 lines · Alexey Brodkin

Hi Tom, Joe,

Quoted 51 lines · Bin Meng

Hi Alexey,

Quoted 47 lines · Alexey Brodkin

http://git.denx.de/?p=u
-boot.git;a=patch;h=f566c9949fbdce2e09a900c5343ca9986e5ba360 broke DW GMAC operation if !DM_ETH because eth_write_hwaddr() doesn't
exist if !DM_NET.

As for DM_ETH case I'm still not sure if existing implementation will
fly.

The point is as it is said in the comment on "soft reset" that is triggered with setting DMAMAC_SRST in "busmode" register HW address gets
reset as well. And we inevitably need to set HW address again.

So probably better solution is to move mentioned "soft-reset" from "init" (that is used on start of any network activity) to "initialize"
(which is only executed once in "board_r" sequence). But that's a bit of
a different story and for now let's just get DW GMAC functional again.

Cc Joe Hershberger <[email protected]>
Cc Michal Simek <[email protected]>
Cc Tom Rini <[email protected]>
---
 drivers/net/designware.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/net/designware.c +4 -0
index ae51cf3..07281a6 100644
@@ -243,6 +243,10 @@ static int _dw_eth_init(struct dw_eth_dev
 *priv, u8 *enetaddr)
                mdelay(100);
        };
 
+       /* Soft reset above clears HW address registers.
+        * So we have to set it here once again */
+       _dw_write_hwaddr(priv, enetaddr);
+
        rx_descs_init(priv);
        tx_descs_init(priv);
Quoted 4 lines
Quoted 1 line

--

There is already a patch submitted. Please check
http://patchwork.ozlabs.org/patch/484214/

Any chance for mentioned patch "net: designware: Program MAC address to hardware after soft reset" to be applied?

This really fixes GMAC operation and it would be nice to have this fix in upcoming release.

Quoted 8 lines
Quoted 4 lines
Quoted 1 line

I think that sounds appropriate. Tom?

Yes. Of the handful of recent (in my mind anyhow) net patches, are you going to do a PR for them or should I just grab things?

Sorry, was on vacation. I think you can just grab this one. Is there another you are thinking of that is a bug fix for this release?

I think you want Tom to grab the previous one here
http://patchwork.ozlabs.org/patch/484214/

Regards,
Bin

#8 lore raw

PATCH 1/1 net/designware: revert MAC-address setup on init

Hi Bin,

Quoted 82 lines · Bin Meng

Hi Joe,

Quoted 78 lines · Joe Hershberger

Hey Tom,

Quoted 74 lines · Tom Rini
Quoted 63 lines · Joe Hershberger

Hi Alexey,

Quoted 59 lines · Alexey Brodkin

Hi Tom, Joe,

Quoted 55 lines · Bin Meng

Hi Alexey,

Quoted 38 lines · Alexey Brodkin

http://git.denx.de/?p=u
-boot.git;a=patch;h=f566c9949fbdce2e09a900c5343ca9986e5ba360 broke DW GMAC operation if !DM_ETH because eth_write_hwaddr() doesn't
exist if !DM_NET.

As for DM_ETH case I'm still not sure if existing implementation will
fly.

The point is as it is said in the comment on "soft reset" that is triggered with setting DMAMAC_SRST in "busmode" register HW address gets
reset as well. And we inevitably need to set HW address again.

So probably better solution is to move mentioned "soft-reset" from "init" (that is used on start of any network activity) to "initialize"
(which is only executed once in "board_r" sequence). But that's a bit of
a different story and for now let's just get DW GMAC functional again.

Cc Joe Hershberger <[email protected]>
Cc Michal Simek <[email protected]>
Cc Tom Rini <[email protected]>
---
 drivers/net/designware.c | 4 ++++
 1 file changed, 4 insertions(+)
drivers/net/designware.c +0 -0
index ae51cf3..07281a6 100644
@@ -243,6 +243,10 @@ static int _dw_eth_init(struct dw_eth_dev
 *priv, u8 *enetaddr)
                mdelay(100);

drivers/net/designware.c static int _dw_eth_init(struct dw_eth_dev

Quoted 10 lines
drivers/net/designware.c +4 -1
        };
 
+       /* Soft reset above clears HW address registers.
+        * So we have to set it here once again */
+       _dw_write_hwaddr(priv, enetaddr);
+
        rx_descs_init(priv);
        tx_descs_init(priv);
 
--

There is already a patch submitted. Please check
http://patchwork.ozlabs.org/patch/484214/

Quoted 7 lines
Quoted 5 lines

Any chance for mentioned patch "net: designware: Program MAC address to hardware after soft reset" to be applied?

This really fixes GMAC operation and it would be nice to have this fix in upcoming release.

I think that sounds appropriate. Tom?

Yes. Of the handful of recent (in my mind anyhow) net patches, are you going to do a PR for them or should I just grab things?

Quoted 6 lines
Quoted 3 lines

Sorry, was on vacation. I think you can just grab this one. Is there another you are thinking of that is a bug fix for this release?

I think you want Tom to grab the previous one here
http://patchwork.ozlabs.org/patch/484214/

You are correct. I forgot this was a duplicate.

Cheers,
-Joe