
Hi,
On Fri, Feb 2, 2018 at 9:53 PM, Stefan Mavrodiev stefan@olimex.com wrote:
CONFIG_PHY_ADDR is used for old-style configuration. This makes impossible changing the PHY address, if multiple boards share a same config header file (for example include/configs/sunxi-common.h).
Moving this to Kconfig helps overcoming this issue. It's defined as entry inside PHYLIB section.
After the implemention, moveconfig was run. The issues are: - edb9315a - CONFIG_PHYLIB is not enabled. Entry is deleted.
- ds414 - CONFIG_PHYLIB is in incompatible format: { 0x1, 0x0 }. This entry is also deleted. - devkit3250 - The PHY_ADDR is in hex format (0x1F). Manually CONFIG_PHY_ADDR=31 is added in the defconfig.
After the changes the suspicious defconfigs passes building.
Signed-off-by: Stefan Mavrodiev stefan@olimex.com Acked-by: Maxime Ripard maxime.ripard@free-electrons.com
Changes for v2:
- Replaced CONFIG_SUNXI_PHY_ADDR with a common one CONFIG_PHY_ADDR, using moveconfig.
README | 4 ---- configs/devkit3250_defconfig | 1 + configs/khadas-vim_defconfig | 1 + configs/libretech-cc_defconfig | 1 + configs/p212_defconfig | 1 + drivers/net/phy/Kconfig | 7 +++++++ include/configs/am335x_shc.h | 1 - include/configs/baltos.h | 1 - include/configs/devkit3250.h | 1 - include/configs/ds414.h | 1 - include/configs/edb93xx.h | 1 - include/configs/khadas-vim.h | 2 -- include/configs/libretech-cc.h | 2 -- include/configs/p212.h | 2 -- include/configs/pepper.h | 1 - include/configs/sunxi-common.h | 2 -- include/configs/work_92105.h | 1 - include/configs/x600.h | 1 - scripts/config_whitelist.txt | 1 - 19 files changed, 11 insertions(+), 21 deletions(-)
[snip]
diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig index 95b7534..c934aed 100644 --- a/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig @@ -12,6 +12,13 @@ menuconfig PHYLIB
if PHYLIB
+config PHY_ADDR
int "PHY address"
default 1 if ARCH_SUNXI
default 0
help
The address of PHY on MII bus. Usually in range of 0 to 31.
Sorry for jumping out so late, but this commit breaks Intel Galileo ethernet. Previously the board boots with the following log:
Net: eth0: eth_designware#0, eth1: eth_designware#1
With this commit it becomes:
Net: No ethernet found.
The reason is that the board has two designware ethernet controllers, and PHY_ADDR has been set to zero for both. A simple fix is to:
diff --git a/drivers/net/designware.c b/drivers/net/designware.c index 43670a7..1394119 100644 --- a/drivers/net/designware.c +++ b/drivers/net/designware.c @@ -471,10 +471,6 @@ static int dw_phy_init(struct dw_eth_dev *priv, void *dev) struct phy_device *phydev; int mask = 0xffffffff, ret;
-#ifdef CONFIG_PHY_ADDR - mask = 1 << CONFIG_PHY_ADDR; -#endif - phydev = phy_find_by_mask(priv->bus, mask, priv->interface); if (!phydev) return -ENODEV;
But the real question is that: why do we introduce this PHY_ADDR Kconfig? It for sure won't work for multiple ethernet controllers.This should be eliminated IMHO. Comments?
[snip]
Regards, Bin