net: tsec - handle user interrupt while waiting for PHY auto negotiation to complete
PATCH 1/1 net: tsec - handle user interrupt while waiting for PHY auto negotiation to complete
if you don't have firmware installed for the PHY to come to life, this wait can be painful - let's give the option to avoid it if we want.
--- drivers/net/tsec.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-)
drivers/net/tsec.c +7 -0
@@ -17,6 +17,7 @@#include <net.h> #include <command.h> #include <tsec.h> +#include <asm/errno.h> #include "miiphy.h"
@@ -380,6 +381,12 @@ uint mii_parse_sr(uint mii_reg, struct tsec_private * priv)return 0 ; } +if (ctrlc ()) { +puts ("user interrupt!\n" ); + priv->link =0 ; +return -EINTR ; + } +if ((i++ %1000 ) ==0 ) {putc ('.' ); }
Signature · 1 line
1.6.4
PATCH 1/1 net: tsec - handle user interrupt while waiting for PHY auto negotiation to complete
Quoted 4 lines · Kim Phillips
if you don't have firmware installed for the PHY to come to life, this wait can be painful - let's give the option to avoid it if we want.
Signed-off-by Kim Phillips <[email protected]>
I've always wanted this change, but never looked into how to implement it.
However, it should be noted that this change is somewhat lessened in impact by the proposal to change the timeout to be only 2 seconds, instead of ...whatever it is now.
But even with 2 seconds, it's annoying to wait for N ports to be tried when you know none of them are hooked up. Or that you forgot to properly set the ipaddr, anyway.
Andy
PATCH 1/1 net: tsec - handle user interrupt while waiting for PHY auto negotiation to complete
Quoted 8 lines · Andy Fleming
Quoted 4 lines · Kim Phillips
if you don't have firmware installed for the PHY to come to life, this wait can be painful - let's give the option to avoid it if we want.
Signed-off-by Kim Phillips <[email protected]>
Quoted 7 lines
Acked-by Andy Fleming <[email protected]>I've always wanted this change, but never looked into how to implement it.
However, it should be noted that this change is somewhat lessened in impact by the proposal to change the timeout to be only 2 seconds, instead of ...whatever it is now.
I thought it was established that that wasn't long enough for some configurations?
Quoted 3 lines
But even with 2 seconds, it's annoying to wait for N ports to be tried when you know none of them are hooked up. Or that you forgot to properly set the ipaddr, anyway.
ethrotate is annoying in general...
-Scott
PATCH 1/1 net: tsec - handle user interrupt while waiting for PHY auto negotiation to complete
Quoted 11 lines · Scott Wood
Quoted 10 lines · Andy Fleming
Quoted 4 lines · Kim Phillips
if you don't have firmware installed for the PHY to come to life, this wait can be painful - let's give the option to avoid it if we want.
Signed-off-by Kim Phillips <[email protected]>Acked-by Andy Fleming <[email protected]>
Quoted 8 lines
Quoted 5 lines
I've always wanted this change, but never looked into how to implement it.
However, it should be noted that this change is somewhat lessened in impact by the proposal to change the timeout to be only 2 seconds, instead of ...whatever it is now.
I thought it was established that that wasn't long enough for some configurations?
It looks like 3.5 seconds was agreed upon to be safe:
http://lists.denx.de/pipermail/u-boot/2009-February/047233.html
The current timeout is set to 5 seconds.
We could set a default timeout value of 3.5 seconds, but allow boards to override this by defining something like CONFIG_SYS_PHY_AUTONEG_TIMEOUT to tweak the timeout if they wanted.
Quoted 3 lines
Quoted 3 lines
But even with 2 seconds, it's annoying to wait for N ports to be tried when you know none of them are hooked up. Or that you forgot to properly set the ipaddr, anyway.
Setting ethprime should work for the common case where you know which ports are connected.
Quoted 1 line
ethrotate is annoying in general...
Agreed. For a project a while back we replaced ethact, ethprime and ethrotate with an "ethorder" variable. If defined, the interfaces in ethorder would be tried in order. So to only use 1 interface you could set ethorder to "eTSEC1", to cycle between 2 non-contiguous ports it could be set to "eTSEC1, eTSEC3", to only use PCI ports it could be set to "e1000#0, e1000#1", etc. ethorder was more flexible and a bit more straightforward in my opinion. Anyone have any interest in the patches?
Best,
Peter
Ben Warren
AppliedPATCH 1/1 net: tsec - handle user interrupt while waiting for PHY auto negotiation to complete
In reply to Kim PhillipsQuoted 24 lines · Kim Phillips
if you don't have firmware installed for the PHY to come to life, this wait can be painful - let's give the option to avoid it if we want.
Signed-off-by Kim Phillips <[email protected]>--- drivers/net/tsec.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-)drivers/net/tsec.c +1
-0@@ -17,6 +17,7 @@#include <net.h> #include <command.h> #include <tsec.h> +#include <asm/errno.h> #include "miiphy.h" @@ -380,6 +381,12 @@ uint mii_parse_sr(uint mii_reg, struct tsec_private * priv)return 0 ; }
drivers/net/tsec.c uint mii_parse_sr(uint mii_reg, struct tsec_private * priv) · line 392
Quoted 10 lines
drivers/net/tsec.c +6
-0+if (ctrlc ()) { +puts ("user interrupt!\n" ); + priv->link =0 ; +return -EINTR ; + } +if ((i++ %1000 ) ==0 ) {putc ('.' ); }
Applied to net/next
regards,
Ben