[PATCH v7 0/5] clk: add driver for the SiFive FU740
zong.li at sifive.com
Wed May 19 08:53:33 PDT 2021
On Tue, May 11, 2021 at 4:57 PM Yixun Lan <yixun.lan at gmail.com> wrote:
> On Wed, Apr 14, 2021 at 2:25 PM Zong Li <zong.li at sifive.com> wrote:
> > On Mon, Apr 12, 2021 at 7:31 PM Andreas Schwab <schwab at linux-m68k.org> wrote:
> > >
> > > On Mär 31 2021, Zong Li wrote:
> > >
> > > > I found that the gemgxlpll was disabled immediately by power
> > > > management after macb driver install. The mainline's defconfig doesn't
> > > > enable CONFIG_PM, so the network is fine on it. The opensuse defconfig
> > > > enables CONFIG_PM, and the patch
> > > > 732374a0b440d9a79c8412f318a25cd37ba6f4e2 added the enable/disable
> > > > callback functions, so the gemgxlpll PLL, I have no idea why power
> > > > management disable it, I would keep trace it.
> > >
> > > Does that mean that CONFIG_PM also affects the FU740?
> > >
> > Yes, we got the same problem on the FU740. We are checking the issue.
> Just a mild ping, any progress regarding this issue?
Currently, if runtime power management is enabled, macb driver would
go to sleep at the end of macb_probe, then the gigabit ethernet PLL
would be disabled. During this period of time, the system would hang
up if we try to access GEMGXL control registers, it means that we
can't access GEMGXL control registers before the gigabit ethernet PLL
is resumed again. There are some cases, for example, if we execute the
'ifconfig' command, it would eventually go to the macb_get_status to
access GEMGXL control registers and cause the system to hang up. Give
more example here, if we execute 'ip link set lo up & ip addr add
127.0.0.1/8 dev lo', it would cause the system to hang up, because
these commands would try to query the interfaces and eventually go to
macb_get_status as well. However, if we can resume the gigabit
ethernet PLL first, such as 'ip link set eth0 up' or 'udhcpc', then
everything goes well. I'm trying to figure out if there are some hooks
that we can check the PLL status in the macb driver before it actually
touches the control registers. If anyone has an idea about that,
please feel free to point it out to me, thanks.
More information about the linux-riscv