Re: [U-Boot] [PATCH 1/1 v3] ppc4xx: Add support for GPCS, SGMII and M88E1112 PHY

2008-09-04 Thread Ben Warren
Hi Stefan and Victor,

Stefan Roese wrote:
 On Wednesday 03 September 2008, Victor Gallardo wrote:
   
 This patch adds GPCS, SGMII and M88E1112 PHY support
 for the AMCC PPC460GT/EX processors.

 Signed-off-by: Victor Gallardo [EMAIL PROTECTED]
 ---
 

 A good idea is to keep a history of what changed in the patch revisions here 
 in this area (after the ---). Something like:

 v2:
 - Added comments to GPCS PHY setup
 - Minor coding style cleanup

 v3: 
 - Generalized the PHY-less configuration even more

 Please find some more comments below.

   
  cpu/ppc4xx/4xx_enet.c |  162
 - cpu/ppc4xx/miiphy.c   |  
 41 -
  include/ppc4xx_enet.h |3 +
  3 files changed, 201 insertions(+), 5 deletions(-)

 diff --git a/cpu/ppc4xx/4xx_enet.c b/cpu/ppc4xx/4xx_enet.c
 index 8a38335..e137bac 100644
 --- a/cpu/ppc4xx/4xx_enet.c
 +++ b/cpu/ppc4xx/4xx_enet.c
 @@ -198,6 +198,7 @@
  #define BI_PHYMODE_RMII  8
  #endif
  #endif
 +#define BI_PHYMODE_SGMII 9

  #if defined(CONFIG_440SP) || defined(CONFIG_440SPE) || \
  defined(CONFIG_440EPX) || defined(CONFIG_440GRX) || \
 @@ -216,6 +217,52 @@
  #define MAL_RX_CHAN_MUL 1
  #endif

 +/*+
 + * PHY-less support for Ethernet Ports.
 + **/
 +
 +/*
 + * Some boards do not have a PHY for each ethernet port.
 + * For example on Arches board (2 CPU system) eth0 does not have
 + * a PHY, both CPU's are wired directly together (AC coupled)
 + * using SGMII0.
 + *
 + * In these cases :
 + *1) set the appropriate CONFIG_PHY_ADDR equal to CONFIG_PHY_LESS
 + *   to detect that the specified ethernet port does not have a PHY.
 + *2) Then define CFG_PHY_LESS_PORT and CFG_PHY_LESS_PORTS in board
 + *   configuration file. For example on the Arches board we would do
 + *   the following.
 + * #define CFG_PHY_LESS_PORT(devnum,speed,duplex) \
 + * { devnum, speed, duplex},
 + * #define CFG_PHY_LESS_PORTS \
 + * CFG_PHY_LESS_PORT(0,1000,FULL)
 + */
 +#if !defined(CONFIG_PHY_LESS)
 +#define CONFIG_PHY_LESS 0x /* PHY-less mode */
 +#endif
 

 If we agree that this is a good generic approach for this PHY-less handling, 
 then we should probably move this to a common header so that other ethernet 
 driver can use this too.

 Ben, what do you think?

 And the description should be moved to a common place too. Either the 
 toplevel 
 README, or a new README.xxx in the doc directory.

   
I like the idea very much, but am not sure about the implementation.  
This problem has been around for a while (just search the archives for 
people wondering how to deal with a switch chip connected via rvMII or 
whatever).  The trickiest part of this is how to get the information to 
the driver.  I've always thought that the best way would be for board 
code to initialize each controller through proper C code (i.e. not 
CONFIG macros).  But there's definitely something to be said for doing 
it all through macros, since that's how Kconfig works.  Please have a 
look at the code that Andy Fleming recently submitted for the TSEC 
driver (it's in the main branch now).  He passes a tsec_info_struct into 
each call of tsec_initialize(), allowing all type of custom information 
to go in.  In my mind, that could be generalized to something that more 
than just TSEC, but let's take baby steps.

Incidentally, the term Fixed PHY has already been coined for what 
you're calling PHY-less.  I suggest we standardize.

Anyway, I have to go to bed.  Eyes are starting to close and brain's 
sloowwwiing doowwn.

cheers,
Ben
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 1/1 v3] ppc4xx: Add support for GPCS, SGMII and M88E1112 PHY

2008-09-04 Thread Stefan Roese
On Thursday 04 September 2008, Ben Warren wrote:
 I like the idea very much, but am not sure about the implementation.
 This problem has been around for a while (just search the archives for
 people wondering how to deal with a switch chip connected via rvMII or
 whatever).  The trickiest part of this is how to get the information to
 the driver.  I've always thought that the best way would be for board
 code to initialize each controller through proper C code (i.e. not
 CONFIG macros).  But there's definitely something to be said for doing
 it all through macros, since that's how Kconfig works.  Please have a
 look at the code that Andy Fleming recently submitted for the TSEC
 driver (it's in the main branch now).  He passes a tsec_info_struct into
 each call of tsec_initialize(), allowing all type of custom information
 to go in.  In my mind, that could be generalized to something that more
 than just TSEC, but let's take baby steps.

Yes, this looks like a good approach. Not sure if we should go all the way or 
accept Victors approach for now. Moving to this parameter based 
initialization is a different matter that should really be done soon.

 Incidentally, the term Fixed PHY has already been coined for what
 you're calling PHY-less.  I suggest we standardize.

Yes. Is there already a define available?

 Anyway, I have to go to bed.  Eyes are starting to close and brain's
 sloowwwiing doowwn.

Heh :)

Best regards,
Stefan

=
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: [EMAIL PROTECTED]
=
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 1/1 v3] ppc4xx: Add support for GPCS, SGMII and M88E1112 PHY

2008-09-04 Thread Victor Gallardo
Hi Stefan and Ben,

I saw what Andy Fleming's did. This is a bit to much work for what I
have time for.

I aggree, we need to take baby steps..

For now I'll change PHY-less to Fixed PHY and update some style issues.

-Victor Gallardo

-Original Message-
From: Stefan Roese [mailto:[EMAIL PROTECTED] 
Sent: Thursday, September 04, 2008 8:34 AM
To: Ben Warren
Cc: u-boot@lists.denx.de; Victor Gallardo
Subject: Re: [U-Boot] [PATCH 1/1 v3] ppc4xx: Add support for GPCS, SGMII
and M88E1112 PHY

On Thursday 04 September 2008, Ben Warren wrote:
 I like the idea very much, but am not sure about the implementation.
 This problem has been around for a while (just search the archives for

 people wondering how to deal with a switch chip connected via rvMII or

 whatever).  The trickiest part of this is how to get the information 
 to the driver.  I've always thought that the best way would be for 
 board code to initialize each controller through proper C code (i.e. 
 not CONFIG macros).  But there's definitely something to be said for 
 doing it all through macros, since that's how Kconfig works.  Please 
 have a look at the code that Andy Fleming recently submitted for the 
 TSEC driver (it's in the main branch now).  He passes a 
 tsec_info_struct into each call of tsec_initialize(), allowing all 
 type of custom information to go in.  In my mind, that could be 
 generalized to something that more than just TSEC, but let's take baby
steps.

Yes, this looks like a good approach. Not sure if we should go all the
way or accept Victors approach for now. Moving to this parameter based
initialization is a different matter that should really be done soon.

 Incidentally, the term Fixed PHY has already been coined for what 
 you're calling PHY-less.  I suggest we standardize.

Yes. Is there already a define available?

 Anyway, I have to go to bed.  Eyes are starting to close and brain's 
 sloowwwiing doowwn.

Heh :)

Best regards,
Stefan

=
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: [EMAIL PROTECTED]
=
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH 1/1 v3] ppc4xx: Add support for GPCS, SGMII and M88E1112 PHY

2008-09-03 Thread Victor Gallardo
This patch adds GPCS, SGMII and M88E1112 PHY support
for the AMCC PPC460GT/EX processors.

Signed-off-by: Victor Gallardo [EMAIL PROTECTED]
---
 cpu/ppc4xx/4xx_enet.c |  162 -
 cpu/ppc4xx/miiphy.c   |   41 -
 include/ppc4xx_enet.h |3 +
 3 files changed, 201 insertions(+), 5 deletions(-)

diff --git a/cpu/ppc4xx/4xx_enet.c b/cpu/ppc4xx/4xx_enet.c
index 8a38335..e137bac 100644
--- a/cpu/ppc4xx/4xx_enet.c
+++ b/cpu/ppc4xx/4xx_enet.c
@@ -198,6 +198,7 @@
 #define BI_PHYMODE_RMII  8
 #endif
 #endif
+#define BI_PHYMODE_SGMII 9
 
 #if defined(CONFIG_440SP) || defined(CONFIG_440SPE) || \
 defined(CONFIG_440EPX) || defined(CONFIG_440GRX) || \
@@ -216,6 +217,52 @@
 #define MAL_RX_CHAN_MUL1
 #endif
 
+/*+
+ * PHY-less support for Ethernet Ports.
+ **/
+
+/*
+ * Some boards do not have a PHY for each ethernet port.
+ * For example on Arches board (2 CPU system) eth0 does not have
+ * a PHY, both CPU's are wired directly together (AC coupled)
+ * using SGMII0.
+ *
+ * In these cases :
+ *1) set the appropriate CONFIG_PHY_ADDR equal to CONFIG_PHY_LESS
+ *   to detect that the specified ethernet port does not have a PHY.
+ *2) Then define CFG_PHY_LESS_PORT and CFG_PHY_LESS_PORTS in board
+ *   configuration file. For example on the Arches board we would do
+ *   the following.
+ * #define CFG_PHY_LESS_PORT(devnum,speed,duplex) \
+ * { devnum, speed, duplex},
+ * #define CFG_PHY_LESS_PORTS \
+ * CFG_PHY_LESS_PORT(0,1000,FULL)
+ */
+#if !defined(CONFIG_PHY_LESS)
+#define CONFIG_PHY_LESS0x /* PHY-less mode */
+#endif
+
+#define DFLT_PHY_LESS_SPEED100
+#define DFLT_PHY_LESS_DUPLEX   FULL
+
+/*
+ * CFG_PHY_LESS_PORTS tells us about ethernet ports that have no PHY
+ * attached to them.
+ */
+#ifndef CFG_PHY_LESS_PORTS
+#define CFG_PHY_LESS_PORTS
+#endif
+
+struct phy_less_port {
+   unsigned int devnum;/* ethernet port */
+   unsigned int speed; /* specified speed 10,100 or 1000 */
+   unsigned int duplex;/* specified duplex FULL or HALF */
+};
+
+static const struct phy_less_port phy_less_port[] = {
+   CFG_PHY_LESS_PORTS  /* defined in board configuration file */
+};
+
 
/*-+
  * Global variables. TX and RX descriptors and buffers.
  
*-*/
@@ -611,8 +658,17 @@ int ppc_4xx_eth_setup_bridge(int devnum, bd_t * bis)
 
 #if defined(CONFIG_460EX)
mode = 9;
+   mfsdr(SDR0_ETH_CFG, eth_cfg);
+   if (((eth_cfg  SDR0_ETH_CFG_SGMII0_ENABLE)  0) 
+   ((eth_cfg  SDR0_ETH_CFG_SGMII1_ENABLE)  0))
+   mode = 11; /* config SGMII */
 #else
mode = 10;
+   mfsdr(SDR0_ETH_CFG, eth_cfg);
+   if (((eth_cfg  SDR0_ETH_CFG_SGMII0_ENABLE)  0) 
+   ((eth_cfg  SDR0_ETH_CFG_SGMII1_ENABLE)  0) 
+   ((eth_cfg  SDR0_ETH_CFG_SGMII2_ENABLE)  0))
+   mode = 12; /* config SGMII */
 #endif
 
/* TODO:
@@ -635,6 +691,8 @@ int ppc_4xx_eth_setup_bridge(int devnum, bd_t * bis)
/*
 * Right now only 2*RGMII is supported. Please extend when needed.
 * sr - 2008-02-19
+* Add SGMII support.
+* vg - 2008-07-28
 */
switch (mode) {
case 1:
@@ -761,6 +819,20 @@ int ppc_4xx_eth_setup_bridge(int devnum, bd_t * bis)
bis-bi_phymode[2] = BI_PHYMODE_RGMII;
bis-bi_phymode[3] = BI_PHYMODE_RGMII;
break;
+   case 11:
+   /* 2 SGMII - 460EX */
+   bis-bi_phymode[0] = BI_PHYMODE_SGMII;
+   bis-bi_phymode[1] = BI_PHYMODE_SGMII;
+   bis-bi_phymode[2] = BI_PHYMODE_NONE;
+   bis-bi_phymode[3] = BI_PHYMODE_NONE;
+   break;
+   case 12:
+   /* 3 SGMII - 460GT */
+   bis-bi_phymode[0] = BI_PHYMODE_SGMII;
+   bis-bi_phymode[1] = BI_PHYMODE_SGMII;
+   bis-bi_phymode[2] = BI_PHYMODE_SGMII;
+   bis-bi_phymode[3] = BI_PHYMODE_NONE;
+   break;
default:
break;
}
@@ -945,6 +1017,48 @@ static int ppc_4xx_eth_init (struct eth_device *dev, bd_t 
* bis)
out_be32((void *)EMAC_M1 + hw_p-hw_addr, mode_reg);
 #endif /* defined(CONFIG_440GX) || defined(CONFIG_440SP) */
 
+#if defined(CONFIG_GPCS_PHY_ADDR) || defined(CONFIG_GPCS_PHY1_ADDR) || \
+defined(CONFIG_GPCS_PHY2_ADDR) || defined(CONFIG_GPCS_PHY3_ADDR)
+   if (bis-bi_phymode[devnum] == BI_PHYMODE_SGMII) {
+   /*
+* In SGMII mode, GPCS access is needed for
+* communication with the internal SGMII SerDes.
+*/
+   switch 

Re: [U-Boot] [PATCH 1/1 v3] ppc4xx: Add support for GPCS, SGMII and M88E1112 PHY

2008-09-03 Thread Stefan Roese
On Wednesday 03 September 2008, Victor Gallardo wrote:
 This patch adds GPCS, SGMII and M88E1112 PHY support
 for the AMCC PPC460GT/EX processors.

 Signed-off-by: Victor Gallardo [EMAIL PROTECTED]
 ---

A good idea is to keep a history of what changed in the patch revisions here 
in this area (after the ---). Something like:

v2:
- Added comments to GPCS PHY setup
- Minor coding style cleanup

v3: 
- Generalized the PHY-less configuration even more

Please find some more comments below.

  cpu/ppc4xx/4xx_enet.c |  162
 - cpu/ppc4xx/miiphy.c   |  
 41 -
  include/ppc4xx_enet.h |3 +
  3 files changed, 201 insertions(+), 5 deletions(-)

 diff --git a/cpu/ppc4xx/4xx_enet.c b/cpu/ppc4xx/4xx_enet.c
 index 8a38335..e137bac 100644
 --- a/cpu/ppc4xx/4xx_enet.c
 +++ b/cpu/ppc4xx/4xx_enet.c
 @@ -198,6 +198,7 @@
  #define BI_PHYMODE_RMII  8
  #endif
  #endif
 +#define BI_PHYMODE_SGMII 9

  #if defined(CONFIG_440SP) || defined(CONFIG_440SPE) || \
  defined(CONFIG_440EPX) || defined(CONFIG_440GRX) || \
 @@ -216,6 +217,52 @@
  #define MAL_RX_CHAN_MUL  1
  #endif

 +/*+
 + * PHY-less support for Ethernet Ports.
 + **/
 +
 +/*
 + * Some boards do not have a PHY for each ethernet port.
 + * For example on Arches board (2 CPU system) eth0 does not have
 + * a PHY, both CPU's are wired directly together (AC coupled)
 + * using SGMII0.
 + *
 + * In these cases :
 + *1) set the appropriate CONFIG_PHY_ADDR equal to CONFIG_PHY_LESS
 + *   to detect that the specified ethernet port does not have a PHY.
 + *2) Then define CFG_PHY_LESS_PORT and CFG_PHY_LESS_PORTS in board
 + *   configuration file. For example on the Arches board we would do
 + *   the following.
 + * #define CFG_PHY_LESS_PORT(devnum,speed,duplex) \
 + * { devnum, speed, duplex},
 + * #define CFG_PHY_LESS_PORTS \
 + * CFG_PHY_LESS_PORT(0,1000,FULL)
 + */
 +#if !defined(CONFIG_PHY_LESS)
 +#define CONFIG_PHY_LESS  0x /* PHY-less mode */
 +#endif

If we agree that this is a good generic approach for this PHY-less handling, 
then we should probably move this to a common header so that other ethernet 
driver can use this too.

Ben, what do you think?

And the description should be moved to a common place too. Either the toplevel 
README, or a new README.xxx in the doc directory.

 +
 +#define DFLT_PHY_LESS_SPEED  100
 +#define DFLT_PHY_LESS_DUPLEX FULL

Do we really need these defaults? Please see my comment further down.

 +
 +/*
 + * CFG_PHY_LESS_PORTS tells us about ethernet ports that have no PHY
 + * attached to them.
 + */
 +#ifndef CFG_PHY_LESS_PORTS
 +#define CFG_PHY_LESS_PORTS
 +#endif
 +
 +struct phy_less_port {
 + unsigned int devnum;/* ethernet port */
 + unsigned int speed; /* specified speed 10,100 or 1000 */
 + unsigned int duplex;/* specified duplex FULL or HALF */
 +};

Again, if we agree that this is a good solution, then this should be moved 
into a common header, probably net.h.

snip

 - speed = miiphy_speed (dev-name, reg);
 - duplex = miiphy_duplex (dev-name, reg);
 +get_speed:
 + if (reg == CONFIG_PHY_LESS) {
 + speed = DFLT_PHY_LESS_SPEED;
 + duplex = DFLT_PHY_LESS_DUPLEX;

I don't think we need this defaults here. Remove them and...

 + for (i = 0; i  ARRAY_SIZE(phy_less_port); i++) {
 + if (devnum == phy_less_port[i].devnum) {
 + speed = phy_less_port[i].speed;
 + duplex = phy_less_port[i].duplex;
 + break;
 + }
 + }

...add this here:

if (i == ARRAY_SIZE(phy_less_port)) {
printf(ERROR: PHY (%s) not configured correctly!\n,
dev-name);
return -1;
}

If the PHY-less device is not in the list, then this is a misconfiguration 
which should be fixed IMHO.

Best regards,
Stefan

=
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: [EMAIL PROTECTED]
=
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 1/1 v3] ppc4xx: Add support for GPCS, SGMII and M88E1112 PHY

2008-09-03 Thread Victor Gallardo
Hi Stefan,

OK. I agree, I will remove DFLT_PHY_LESS_SPEED and DFLT_PHY_LESS_DUPLEX.

In terms of a generic PHY-less approach. I'll wait for Ben's input.

-Victor Gallardo

-Original Message-
From: Stefan Roese [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, September 03, 2008 12:23 AM
To: u-boot@lists.denx.de
Cc: Victor Gallardo; Ben Warren
Subject: Re: [U-Boot] [PATCH 1/1 v3] ppc4xx: Add support for GPCS, SGMII
and M88E1112 PHY

On Wednesday 03 September 2008, Victor Gallardo wrote:
 This patch adds GPCS, SGMII and M88E1112 PHY support for the AMCC 
 PPC460GT/EX processors.

 Signed-off-by: Victor Gallardo [EMAIL PROTECTED]
 ---

A good idea is to keep a history of what changed in the patch revisions
here in this area (after the ---). Something like:

v2:
- Added comments to GPCS PHY setup
- Minor coding style cleanup

v3: 
- Generalized the PHY-less configuration even more

Please find some more comments below.

  cpu/ppc4xx/4xx_enet.c |  162
 - cpu/ppc4xx/miiphy.c
|  
 41 -
  include/ppc4xx_enet.h |3 +
  3 files changed, 201 insertions(+), 5 deletions(-)

 diff --git a/cpu/ppc4xx/4xx_enet.c b/cpu/ppc4xx/4xx_enet.c index 
 8a38335..e137bac 100644
 --- a/cpu/ppc4xx/4xx_enet.c
 +++ b/cpu/ppc4xx/4xx_enet.c
 @@ -198,6 +198,7 @@
  #define BI_PHYMODE_RMII  8
  #endif
  #endif
 +#define BI_PHYMODE_SGMII 9

  #if defined(CONFIG_440SP) || defined(CONFIG_440SPE) || \
  defined(CONFIG_440EPX) || defined(CONFIG_440GRX) || \ @@ -216,6 
 +217,52 @@
  #define MAL_RX_CHAN_MUL  1
  #endif

 +/*---
 +-+
 + * PHY-less support for Ethernet Ports.
 + 
 +*
 +*/
 +
 +/*
 + * Some boards do not have a PHY for each ethernet port.
 + * For example on Arches board (2 CPU system) eth0 does not have
 + * a PHY, both CPU's are wired directly together (AC coupled)
 + * using SGMII0.
 + *
 + * In these cases :
 + *1) set the appropriate CONFIG_PHY_ADDR equal to CONFIG_PHY_LESS
 + *   to detect that the specified ethernet port does not have a
PHY.
 + *2) Then define CFG_PHY_LESS_PORT and CFG_PHY_LESS_PORTS in
board
 + *   configuration file. For example on the Arches board we would
do
 + *   the following.
 + * #define CFG_PHY_LESS_PORT(devnum,speed,duplex) \
 + * { devnum, speed, duplex},
 + * #define CFG_PHY_LESS_PORTS \
 + * CFG_PHY_LESS_PORT(0,1000,FULL)
 + */
 +#if !defined(CONFIG_PHY_LESS)
 +#define CONFIG_PHY_LESS  0x /* PHY-less mode */
 +#endif

If we agree that this is a good generic approach for this PHY-less
handling, then we should probably move this to a common header so that
other ethernet driver can use this too.

Ben, what do you think?

And the description should be moved to a common place too. Either the
toplevel README, or a new README.xxx in the doc directory.

 +
 +#define DFLT_PHY_LESS_SPEED  100
 +#define DFLT_PHY_LESS_DUPLEX FULL

Do we really need these defaults? Please see my comment further down.

 +
 +/*
 + * CFG_PHY_LESS_PORTS tells us about ethernet ports that have no PHY
 + * attached to them.
 + */
 +#ifndef CFG_PHY_LESS_PORTS
 +#define CFG_PHY_LESS_PORTS
 +#endif
 +
 +struct phy_less_port {
 + unsigned int devnum;/* ethernet port */
 + unsigned int speed; /* specified speed 10,100 or 1000 */
 + unsigned int duplex;/* specified duplex FULL or HALF */
 +};

Again, if we agree that this is a good solution, then this should be
moved into a common header, probably net.h.

snip

 - speed = miiphy_speed (dev-name, reg);
 - duplex = miiphy_duplex (dev-name, reg);
 +get_speed:
 + if (reg == CONFIG_PHY_LESS) {
 + speed = DFLT_PHY_LESS_SPEED;
 + duplex = DFLT_PHY_LESS_DUPLEX;

I don't think we need this defaults here. Remove them and...

 + for (i = 0; i  ARRAY_SIZE(phy_less_port); i++) {
 + if (devnum == phy_less_port[i].devnum) {
 + speed = phy_less_port[i].speed;
 + duplex = phy_less_port[i].duplex;
 + break;
 + }
 + }

...add this here:

if (i == ARRAY_SIZE(phy_less_port)) {
printf(ERROR: PHY (%s) not configured
correctly!\n,
dev-name);
return -1;
}

If the PHY-less device is not in the list, then this is a
misconfiguration which should be fixed IMHO.

Best regards,
Stefan

=
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: [EMAIL PROTECTED