FEC driver hangs hardware on i.MX6SX

5 messages, 3 authors, 2014-07-21 · open the first message on its own page

FEC driver hangs hardware on i.MX6SX

From: Shawn Guo <hidden>
Date: 2014-07-20 02:57:33

Hi Fugang,

Your commit e8fcfcd5684a (net: fec: optimize the clock management to
save power) landed on mainline with v3.16-rc1.  It causes a hardware
hang on i.MX6SX, if the rootfs is not on NFS but something else like
MMC.

I think the cause is that PTP is still accessing registers after FEC
driver calls fec_enet_clk_enable(ndev, false) to disable FEC clocks.
Can you please try to provide a fix for this regression soon?

Shawn

FEC driver hangs hardware on i.MX6SX

From: richardcochran@gmail.com (Richard Cochran)
Date: 2014-07-20 06:20:49

On Sun, Jul 20, 2014 at 10:57:33AM +0800, Shawn Guo wrote:
I think the cause is that PTP is still accessing registers after FEC
driver calls fec_enet_clk_enable(ndev, false) to disable FEC clocks.
Can you please try to provide a fix for this regression soon?
What do you mean by, "PTP is still accessing registers"?

The only access to any register is through the driver, and the driver
can and should make sure all register accesses are safe.

Thanks,
Richard

FEC driver hangs hardware on i.MX6SX

From: fugang.duan at freescale.com <hidden>
Date: 2014-07-20 08:06:38

Hi, Shawn,
-----Original Message-----
From: Shawn Guo [mailto:shawn.guo@freescale.com]
Sent: Sunday, July 20, 2014 10:58 AM
To: Duan Fugang-B38611
Cc: Li Frank-B20596; David S. Miller; Guo Shawn-R65073;
netdev@vger.kernel.org; linux-arm-kernel@lists.infradead.org
Subject: FEC driver hangs hardware on i.MX6SX

Hi Fugang,

Your commit e8fcfcd5684a (net: fec: optimize the clock management to save
power) landed on mainline with v3.16-rc1.  It causes a hardware hang on
i.MX6SX, if the rootfs is not on NFS but something else like MMC.

I think the cause is that PTP is still accessing registers after FEC
driver calls fec_enet_clk_enable(ndev, false) to disable FEC clocks.
Can you please try to provide a fix for this regression soon?
Yes, you analyze is right. We had the related patch on internal trees since imx6sx bringup.
I will try to move the patch to upstream.

Thanks,
Andy

FEC driver hangs hardware on i.MX6SX

From: Shawn Guo <hidden>
Date: 2014-07-21 01:59:16

On Sun, Jul 20, 2014 at 08:20:49AM +0200, Richard Cochran wrote:
On Sun, Jul 20, 2014 at 10:57:33AM +0800, Shawn Guo wrote:
quoted
I think the cause is that PTP is still accessing registers after FEC
driver calls fec_enet_clk_enable(ndev, false) to disable FEC clocks.
Can you please try to provide a fix for this regression soon?
What do you mean by, "PTP is still accessing registers"?

The only access to any register is through the driver, and the driver
can and should make sure all register accesses are safe.
Sorry for being vague, Richard.  I meant PTP driver is still accessing
registers.

With Fugang's clock management patch, FEC clocks will be disabled to
save power after FEC gets probed.  But at that point, fec_ptp driver
already launches a timer, which will trigger the read on FEC ATIME
register once per second.

Shawn

FEC driver hangs hardware on i.MX6SX

From: fugang.duan at freescale.com <hidden>
Date: 2014-07-21 02:13:39

From: Shawn Guo <redacted> Data: Monday, July 21, 2014 9:59 AM
To: Richard Cochran
Cc: Duan Fugang-B38611; linux-arm-kernel@lists.infradead.org;
netdev@vger.kernel.org; Li Frank-B20596; David S. Miller
Subject: Re: FEC driver hangs hardware on i.MX6SX

On Sun, Jul 20, 2014 at 08:20:49AM +0200, Richard Cochran wrote:
quoted
On Sun, Jul 20, 2014 at 10:57:33AM +0800, Shawn Guo wrote:
quoted
I think the cause is that PTP is still accessing registers after FEC
driver calls fec_enet_clk_enable(ndev, false) to disable FEC clocks.
Can you please try to provide a fix for this regression soon?
What do you mean by, "PTP is still accessing registers"?

The only access to any register is through the driver, and the driver
can and should make sure all register accesses are safe.
Sorry for being vague, Richard.  I meant PTP driver is still accessing
registers.

With Fugang's clock management patch, FEC clocks will be disabled to save
power after FEC gets probed.  But at that point, fec_ptp driver already
launches a timer, which will trigger the read on FEC ATIME register once
per second.

Shawn
	
Yes, why does it cause at imx6sx platform ?
Because imx5x, imx6q/dl/sl  enet register access don't cause system hang when clock is disab led, just return one error value that is zero.
But for imx6sx, if there disable enet ipg clock, and access register, which cause system hang.

For clock management patch itself, there have no any problem.  
Just ptp driver has one issue which think clock is always on.

I  submit one patch to fix the ptp issue.

Thanks,
Andy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help