[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 */

Dear Tor Krill,
In message 1277370025-17281-2-git-send-email-tor@excito.com you wrote:
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
Damn!!! This is your THIRD posting of this set of patches, without any comments what this means!
STOP DOING THIS!
Wolfgang Denk

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 1277370025-17281-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.
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
Looking at what you are doing, things get even worse.
This is an atomic change. This must be submitted as a single patch, not split into separate patches. Please read the documentatin and stick to the rules!
NAK!!
Wolfgang Denk
participants (2)
-
Tor Krill
-
Wolfgang Denk