> From: "Theo de Raadt" <[email protected]>
> Date: Thu, 18 Apr 2019 01:04:02 -0600
>
> Sebastien Marie <[email protected]> wrote:
>
> > On Wed, Apr 17, 2019 at 04:32:04PM -0700, Jungle Boogie wrote:
> > > On Wed 17 Apr 2019 9:44 AM, Sebastien Marie wrote:
> > > > Hi,
> > > >
> > > > With a pine64, I am experimenting regulary dwxe watchdog
> > > > timeout. Usually it is a sign that something doesn't work in
> > > > the driver itself.
> > >
> > > Good to know this isn't just affecting my three devices. Let's
> > > hope this patch gets some feedback and makes its way into the
> > > build.
> >
> > you could build a kernel and test it for confirming it works as expected.
> >
> > it could really help to have feedback from users.
>
> Resetting the chipset on a timer is a workaround.
>
> It means the root cause hasn't been found and fixed.
>
> It is not a fix.
Agreed.
There are basically two reason why the watchdog might trigger:
1. The PHY doesn't have a link while the interface is up and therefore
the MAC isn't transmitting any packets.
2. The MAC has gotten in a funny state and isn't transmitting any
packets anymore.
The first might simply happen because the cable isn't connected. But
at least on some boards we have evidence that there is a problem with
the PHY. This is fairly easy to diagnose. If ifconfig(8) reports the
link being down or reports an autonegotiated speed that doesn't make
sense, the PHY needs to be looked at. Note that the link may be
flapping so run ifconifg(8) multiple times.
If the PHY is flaky there are many possible causes:
a. A bug in the PHY driver.
b. A misconfigured clock.
c. Insufficient power.
d. Firmware issues.
It is the last thing that makes this issue hard to debug. Our drivers
do depend on some basic initialization of the hardware and an
appropriate description of the hardware. Certain combinations of
U-Boot and device tree may not work. And there are a lot of hacked up
firmwares out there that may only work with a specific version of the
Linux kernel because of additional hacks there. For OpenBSD we really
only support the official U-Boot and device trees from mainline Linux.
We provide ports for these. Those ports are regularly updated though,
and it is impossible for us to check all supported boards when we do
so. Since quality control upstream isn't great either, this means
that sometimes things get broken.
Cheers,
Mark