[U-Boot] [PATCH 2/2] mips: ath79: ar933x: Fix probe error for kernel driver ag71xx
Marek Vasut
marex at denx.de
Sat May 21 14:15:40 CEST 2016
On 05/21/2016 01:58 PM, Wills Wang wrote:
> We need reset the Ethernet Switch analog part before operation,
> or the build-in Ethernet PHY don't work, openwrt kernel driver
> ag71xx occur the following error:
>
> [ 1.854519] libphy: ag71xx_mdio: probed
> [ 2.646539] ag71xx-mdio.1: unknown phy id 'ffff:ffff'
> [ 3.235778] ag71xx ag71xx.0: no PHY found with phy_mask=00000010
>
> Signed-off-by: Wills Wang <wills.wang at live.com>
Acked-by: Marek Vasut <marex at denx.de>
The kernel should be independent of bootloader, so you should cook
similar patch for Linux.
> ---
>
> arch/mips/mach-ath79/include/mach/ar71xx_regs.h | 1 +
> arch/mips/mach-ath79/reset.c | 2 +-
> 2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/mips/mach-ath79/include/mach/ar71xx_regs.h b/arch/mips/mach-ath79/include/mach/ar71xx_regs.h
> index a8e51cb..dabcad0 100644
> --- a/arch/mips/mach-ath79/include/mach/ar71xx_regs.h
> +++ b/arch/mips/mach-ath79/include/mach/ar71xx_regs.h
> @@ -660,6 +660,7 @@
>
> #define AR933X_RESET_GE1_MDIO BIT(23)
> #define AR933X_RESET_GE0_MDIO BIT(22)
> +#define AR933X_RESET_ETH_SWITCH_ANALOG BIT(14)
> #define AR933X_RESET_GE1_MAC BIT(13)
> #define AR933X_RESET_WMAC BIT(11)
> #define AR933X_RESET_GE0_MAC BIT(9)
> diff --git a/arch/mips/mach-ath79/reset.c b/arch/mips/mach-ath79/reset.c
> index 188eccb..473f89d 100644
> --- a/arch/mips/mach-ath79/reset.c
> +++ b/arch/mips/mach-ath79/reset.c
> @@ -81,7 +81,7 @@ static int eth_init_ar933x(void)
> MAP_NOCACHE);
> const u32 mask = AR933X_RESET_GE0_MAC | AR933X_RESET_GE0_MDIO |
> AR933X_RESET_GE1_MAC | AR933X_RESET_GE1_MDIO |
> - AR933X_RESET_ETH_SWITCH;
> + AR933X_RESET_ETH_SWITCH | AR933X_RESET_ETH_SWITCH_ANALOG;
>
> /* Clear MDIO slave EN bit. */
> clrbits_be32(rregs + AR933X_RESET_REG_BOOTSTRAP, BIT(17));
>
--
Best regards,
Marek Vasut
More information about the U-Boot
mailing list