Hi Joe, On Sat, Mar 24, 2018 at 1:11 AM, Joe Hershberger <joe.hershber...@ni.com> wrote: > On Thu, Mar 22, 2018 at 9:46 AM, Bin Meng <bmeng...@gmail.com> wrote: >> Hi, >> >> On Fri, Feb 2, 2018 at 9:53 PM, Stefan Mavrodiev <ste...@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 <ste...@olimex.com> >>> Acked-by: Maxime Ripard <maxime.rip...@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? > > This should be able to come from the device tree, ultimately. Can you > undefine the phy addr for the Galileo board? > >> [snip] >>
#undf the PHY_ADDR in Galileo board looks weird. This to me is a workaround. Since the designware ethernet controller driver supports finding any PHY attached to its mdio bus, the changes suggested above can be a proper fix. Regards, Bin _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot