[U-Boot] [PATCH 0/6] Update kirkwood egiga to allow dynamic phy addrs

Today the kirkwood egiga driver assumes that phy addresses are consecutive from a base address.
Our new board design using this cpu unfortunately has a non contiguous addressing of its phys and thus doesn't work with the current implementation.
This patchset updates the implementation to use an array of phy addresses as configuration.
Tor Krill (6): Allow PHY addresses on kirkwood egiga to be non continuous. Convert Suen3 board to use array of phy addrs Convert Sheevaplug board to use array of phy addrs Convert OpenRD board to use array of phy addrs Convert Guruplug board to use array of phy addrs Convert rd6281a board to use array of phy addrs
board/keymile/km_arm/km_arm.c | 3 ++- drivers/net/kirkwood_egiga.c | 3 ++- drivers/net/kirkwood_egiga.h | 8 ++++---- include/configs/guruplug.h | 2 +- include/configs/km_arm.h | 2 +- include/configs/openrd_base.h | 2 +- include/configs/rd6281a.h | 2 +- include/configs/sheevaplug.h | 2 +- 8 files changed, 13 insertions(+), 11 deletions(-)

Changing its configuration from PHY_BASE_ADR single value to use CONFIG_PHY_ADDRS as an array with adresses.
Signed-off-by: Tor Krill tor@excito.com --- drivers/net/kirkwood_egiga.c | 3 ++- drivers/net/kirkwood_egiga.h | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/net/kirkwood_egiga.c b/drivers/net/kirkwood_egiga.c index 932792e..7993e51 100644 --- a/drivers/net/kirkwood_egiga.c +++ b/drivers/net/kirkwood_egiga.c @@ -629,6 +629,7 @@ int kirkwood_egiga_initialize(bd_t * bis) int devnum; char *s; u8 used_ports[MAX_KWGBE_DEVS] = CONFIG_KIRKWOOD_EGIGA_PORTS; + u8 port_addr[MAX_KWGBE_DEVS] = PHY_ADDRS;
for (devnum = 0; devnum < MAX_KWGBE_DEVS; devnum++) { /*skip if port is configured not to use */ @@ -712,7 +713,7 @@ int kirkwood_egiga_initialize(bd_t * bis) miiphy_register(dev->name, smi_reg_read, smi_reg_write); /* Set phy address of the port */ miiphy_write(dev->name, KIRKWOOD_PHY_ADR_REQUEST, - KIRKWOOD_PHY_ADR_REQUEST, PHY_BASE_ADR + devnum); + KIRKWOOD_PHY_ADR_REQUEST, port_addr[devnum]); #endif } return 0; diff --git a/drivers/net/kirkwood_egiga.h b/drivers/net/kirkwood_egiga.h index 30c773c..6ff3bb7 100644 --- a/drivers/net/kirkwood_egiga.h +++ b/drivers/net/kirkwood_egiga.h @@ -30,11 +30,11 @@
#define MAX_KWGBE_DEVS 2 /*controller has two ports */
-/* PHY_BASE_ADR is board specific and can be configured */ -#if defined (CONFIG_PHY_BASE_ADR) -#define PHY_BASE_ADR CONFIG_PHY_BASE_ADR +/* PHY addresses is board specific and can be configured */ +#if defined (CONFIG_PHY_ADDRS) +#define PHY_ADDRS CONFIG_PHY_ADDRS #else -#define PHY_BASE_ADR 0x08 /* default phy base addr */ +#define PHY_ADDRS {0x08,0x09} /* default phy base addr */ #endif
/* Constants */

Signed-off-by: Tor Krill tor@excito.com --- board/keymile/km_arm/km_arm.c | 3 ++- include/configs/km_arm.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c index 53cf474..16da353 100644 --- a/board/keymile/km_arm/km_arm.c +++ b/board/keymile/km_arm/km_arm.c @@ -244,12 +244,13 @@ int dram_init(void) void reset_phy(void) { char *name = "egiga0"; + u8 port_addr[] = CONFIG_PHY_ADDRS;
if (miiphy_set_current_dev(name)) return;
/* reset the phy */ - miiphy_reset(name, CONFIG_PHY_BASE_ADR); + miiphy_reset(name, port_addr[0]); }
#if defined(CONFIG_HUSH_INIT_VAR) diff --git a/include/configs/km_arm.h b/include/configs/km_arm.h index a928c2c..1c3fa0d 100644 --- a/include/configs/km_arm.h +++ b/include/configs/km_arm.h @@ -130,7 +130,7 @@ #define CONFIG_KIRKWOOD_EGIGA /* Enable kirkwood Gbe Controller Driver */ #define CONFIG_SYS_FAULT_ECHO_LINK_DOWN /* detect link using phy */ #define CONFIG_KIRKWOOD_EGIGA_PORTS {1,0} /* enable port 0 only */ -#define CONFIG_PHY_BASE_ADR 0 +#define CONFIG_PHY_ADDRS {0,1} #define CONFIG_ENV_OVERWRITE /* ethaddr can be reprogrammed */ #define CONFIG_RESET_PHY_R /* use reset_phy() to init 88E1118 PHY */

Signed-off-by: Tor Krill tor@excito.com --- include/configs/sheevaplug.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/configs/sheevaplug.h b/include/configs/sheevaplug.h index e9edc44..9fdfd7e 100644 --- a/include/configs/sheevaplug.h +++ b/include/configs/sheevaplug.h @@ -177,7 +177,7 @@ #define CONFIG_KIRKWOOD_EGIGA /* Enable kirkwood Gbe Controller Driver */ #define CONFIG_SYS_FAULT_ECHO_LINK_DOWN /* detect link using phy */ #define CONFIG_KIRKWOOD_EGIGA_PORTS {1,0} /* enable port 0 only */ -#define CONFIG_PHY_BASE_ADR 0 +#define CONFIG_PHY_ADDRS {0,1} #define CONFIG_ENV_OVERWRITE /* ethaddr can be reprogrammed */ #define CONFIG_RESET_PHY_R /* use reset_phy() to init mv8831116 PHY */ #endif /* CONFIG_CMD_NET */

Signed-off-by: Tor Krill tor@excito.com --- include/configs/openrd_base.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/configs/openrd_base.h b/include/configs/openrd_base.h index d2f4502..37574ac 100644 --- a/include/configs/openrd_base.h +++ b/include/configs/openrd_base.h @@ -186,7 +186,7 @@ #define CONFIG_KIRKWOOD_EGIGA /* Enable kirkwood Gbe Controller Driver */ #define CONFIG_SYS_FAULT_ECHO_LINK_DOWN /* detect link using phy */ #define CONFIG_KIRKWOOD_EGIGA_PORTS {1,0} /* enable port 0 only */ -#define CONFIG_PHY_BASE_ADR 0x8 +#define CONFIG_PHY_ADDRS {0x8,0x9} #define CONFIG_ENV_OVERWRITE /* ethaddr can be reprogrammed */ #define CONFIG_RESET_PHY_R /* use reset_phy() to init mv8831116 PHY */ #endif /* CONFIG_CMD_NET */

Signed-off-by: Tor Krill tor@excito.com --- include/configs/guruplug.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/configs/guruplug.h b/include/configs/guruplug.h index 2fbc6ad..028eee7 100644 --- a/include/configs/guruplug.h +++ b/include/configs/guruplug.h @@ -175,7 +175,7 @@ #define CONFIG_KIRKWOOD_EGIGA /* Enable kirkwood Gbe Controller Driver */ #define CONFIG_SYS_FAULT_ECHO_LINK_DOWN /* detect link using phy */ #define CONFIG_KIRKWOOD_EGIGA_PORTS {1,1} /* enable both ports */ -#define CONFIG_PHY_BASE_ADR 0 +#define CONFIG_PHY_ADDRS {0,1} #define CONFIG_ENV_OVERWRITE /* ethaddr can be reprogrammed */ #define CONFIG_RESET_PHY_R /* use reset_phy() to init mv88e1121 PHY */ #endif /* CONFIG_CMD_NET */

Signed-off-by: Tor Krill tor@excito.com --- include/configs/rd6281a.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/configs/rd6281a.h b/include/configs/rd6281a.h index 3d8e25c..01550d1 100644 --- a/include/configs/rd6281a.h +++ b/include/configs/rd6281a.h @@ -176,7 +176,7 @@ #define CONFIG_MV88E61XX_MULTICHIP_ADRMODE #define CONFIG_DIS_AUTO_NEG_SPEED_GMII /*Disable Auto speed negociation */ #define CONFIG_PHY_SPEED _1000BASET /*Force PHYspeed to 1GBPs */ -#define CONFIG_PHY_BASE_ADR 0x0A +#define CONFIG_PHY_ADDRS {0x0A,0x0B} #define CONFIG_ENV_OVERWRITE /* ethaddr can be reprogrammed */ #define CONFIG_RESET_PHY_R /* use reset_phy() to init switch and PHY */ #define CONFIG_MV88E61XX_SWITCH /* Enable MV88E61XX switch driver */

Dear Tor Krill,
In message 1277366121-14683-1-git-send-email-tor@excito.com you wrote:
Today the kirkwood egiga driver assumes that phy addresses are consecutive from a base address.
Our new board design using this cpu unfortunately has a non contiguous addressing of its phys and thus doesn't work with the current implementation.
This patchset updates the implementation to use an array of phy addresses as configuration.
You posted the a patchset wiht the same subject, patches and descriotion yesterday. Now you are reposting it, but
- without any comment why you are reposting
- without any marking if this is the same patches, or if this is a newer version of it
- without any information what has been changed since the previous posting.
Do you expect we spend time and resources trying to find out what you did and why?
It doesn't work like that. You are running the risk that your patches will be simply NAKed and ignored.
Best regards,
Wolfgang Denk

Hi Wolfgang and others,
On Thu, 2010-06-24 at 11:11 +0200, Wolfgang Denk wrote:
Dear Tor Krill,
In message 1277366121-14683-1-git-send-email-tor@excito.com you wrote:
Today the kirkwood egiga driver assumes that phy addresses are consecutive from a base address.
You posted the a patchset wiht the same subject, patches and descriotion yesterday. Now you are reposting it, but
without any comment why you are reposting
without any marking if this is the same patches, or if this is a newer version of it
without any information what has been changed since the previous posting.
Do you expect we spend time and resources trying to find out what you did and why?
Sorry for this. I had a hard time configure my outgoing smtp server. The patch sets are identical. (I completely missed that they went out yesterday.)
So please disregard the duplicate.
It doesn't work like that. You are running the risk that your patches will be simply NAKed and ignored.
I completely understand this. And hopefully it will work from now on.
/Tor
participants (2)
-
Tor Krill
-
Wolfgang Denk