linux-mips
[Top] [All Lists]

Re: alchemy/gpr: au1000_eth regression with v2.6.37rc2

To: Wolfgang Grandegger <wg@grandegger.com>
Subject: Re: alchemy/gpr: au1000_eth regression with v2.6.37rc2
From: Florian Fainelli <florian@openwrt.org>
Date: Thu, 18 Nov 2010 23:30:07 +0100
Cc: "Linux-MIPS" <linux-mips@linux-mips.org>, Netdev@vger.kernel.org
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:from:reply-to:to :subject:date:user-agent:cc:references:in-reply-to:mime-version :content-type:content-transfer-encoding:message-id; bh=eaF+hH9d4AqKT9AZZdB4z0IVuVxwWNp1wfWdGIKkc3A=; b=fH/AY23GeWRVKUstdPkGuGRAHUOdvouJ3PdFNfJnf9w+7aVjW/x4vtNN9m9UCzgR4R PpGD5EalmM9UXIelCfHypynBXMRzCf3gxPdOuzM0tOrIOD7wG4x1iOxxIEL252SaDbrE 71+XiJKgxFnCrmOVbhAwGoL3Aefr7fKQuODk0=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:from:reply-to:to:subject:date:user-agent:cc:references :in-reply-to:mime-version:content-type:content-transfer-encoding :message-id; b=Ob5ptQqLciYNdiP0hTvEOzIh3DXESZvUeFdeHnMSqcs+kLrB/n5b6AtL2P3KdYUsbz O/E3ZP52G2i5jitPH4R/CZLhscHyItvJUafVgw5EgHkWfLn/VpSPd81y09yos9WDJDGZ CeIrOZKnbhV9IA4j/JKATvrj4q0Fcvmsn5D1g=
In-reply-to: <4CE58593.50509@grandegger.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <4CE58593.50509@grandegger.com>
Reply-to: Florian Fainelli <florian@openwrt.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: KMail/1.13.5 (Linux/2.6.36-trunk-amd64; KDE/4.4.5; x86_64; ; )
Hello Wolfgang,

Le Thursday 18 November 2010 20:59:15, Wolfgang Grandegger a écrit :
> Hello,
> 
> I just realized that the v2.6.37-rc2 kernel does not boot any more on
> the Alchemy GPR board. It works fine with v2.6.36. It hangs in the
> probe function of the au1000_eth driver when probing the second
> ethernet port (eth1):
> 
>   au1000_eth_mii: probed
>   au1000-eth au1000-eth.0: (unregistered net_device): attached PHY driver
> [Generic PHY] (mii_bus:phy_addr=0:00, irq=-1) au1000-eth au1000-eth.0:
> eth0: Au1xx0 Ethernet found at 0x10500000, irq 35 au1000_eth: au1000_eth
> version 1.7 Pete Popov <ppopov@embeddedalley.com> ... hangs ...
> 
> Similar messages should follow for eth1. I narrowed down (bisect'ed) the
> problem to commit:
> 
>   commit d0e7cb5d401695809ba8c980124ab1d8c66efc8b
>   Author: Florian Fainelli <florian@openwrt.org>
>   Date:   Wed Sep 8 11:15:13 2010 +0000
> 
>     au1000-eth: remove volatiles, switch to I/O accessors
> 
>     Remove all the volatile keywords where they were used, switch to using
> the proper readl/writel accessors.
> 
>     Signed-off-by: Florian Fainelli <florian@openwrt.org>
>     Signed-off-by: David S. Miller <davem@davemloft.net>
> 
> The kernel actually hangs when accessing "&aup->mac->mii_control" in
> au1000_mdio_read(), but only for eth1. Any idea what does go wrong?

I do not understand so far while it hangs only for eth1. My device only has 
one ethernet MAC, so I could not notice the problem. Looking at this close, 
there are a couple of u32 const* usages in au1000_mdio_{read,write} which are 
looking wrong to me now. Can you try to remove these?

> 
> In principle, I do not want to access the MII regs of the MAC because
> eth0 and eth1 are connected to switches. But that's not possible, even
> with "aup->phy_static_config=1" and "aup->phy_addr=0".

If you think this is another issue, I will fix it in another patch.
--
Florian

<Prev in Thread] Current Thread [Next in Thread>