> -----Original Message----- > From: Guenter Roeck [mailto:groeck7@xxxxxxxxx] On Behalf Of Guenter > Roeck > Sent: Saturday, February 23, 2019 7:13 PM > To: Michael Shych <michaelsh@xxxxxxxxxxxx>; wim@xxxxxxxxxxxxxxxxxx; > andy@xxxxxxxxxxxxx; dvhart@xxxxxxxxxxxxx > Cc: linux-watchdog@xxxxxxxxxxxxxxx; platform-driver-x86@xxxxxxxxxxxxxxx; > Vadim Pasternak <vadimp@xxxxxxxxxxxx> > Subject: Re: [PATCH v4 3/3] Documentation/watchdog: Add documentation > mlx-wdt driver > > On 2/20/19 1:34 AM, michaelsh@xxxxxxxxxxxx wrote: > > From: Michael Shych <michaelsh@xxxxxxxxxxxx> > > > > Add documentation with details of Mellanox watchdog driver. > > > > Signed-off-by: Michael Shych <michaelsh@xxxxxxxxxxxx> > > Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx> > Hi Guenter, Thank you for your reviews. Sorry, I looked today over the document and noted one typo that I made in patchset V4. It's, however, changed explanation of nowayout. In this explanation must be can't instead incorrect can. I'll resend just this document as patch V5. Thank you, Michael. > > --- > > v1->v4 > > 1. Remove sentence that now doesn't correspond to code. > > 2. Add explanations about nowayout and start_at_boot options. > > --- > > Documentation/watchdog/mlx-wdt.txt | 52 > ++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 52 insertions(+) > > create mode 100644 Documentation/watchdog/mlx-wdt.txt > > > > diff --git a/Documentation/watchdog/mlx-wdt.txt > b/Documentation/watchdog/mlx-wdt.txt > > new file mode 100644 > > index 000000000000..434eadece41b > > --- /dev/null > > +++ b/Documentation/watchdog/mlx-wdt.txt > > @@ -0,0 +1,52 @@ > > + Mellanox watchdog drivers > > + for x86 based system switches > > + > > +This driver provides watchdog functionality for various Mellanox > > +Ethernet and Infiniband switch systems. > > + > > +Mellanox watchdog device is implemented in a programmable logic > device. > > + > > +There are 2 types of HW watchdog implementations. > > + > > +Type 1: > > +Actual HW timeout can be defined as a power of 2 msec. > > +e.g. timeout 20 sec will be rounded up to 32768 msec. > > +The maximum timeout period is 32 sec (32768 msec.), > > +Get time-left isn't supported > > + > > +Type 2: > > +Actual HW timeout is defined in sec. and it's the same as > > +a user-defined timeout. > > +Maximum timeout is 255 sec. > > +Get time-left is supported. > > + > > +Type 1 HW watchdog implementation exist in old systems and > > +all new systems have type 2 HW watchdog. > > +Two types of HW implementation have also different register map. > > + > > +Mellanox system can have 2 watchdogs: main and auxiliary. > > +Main and auxiliary watchdog devices can be enabled together > > +on the same system. > > +There are several actions that can be defined in the watchdog: > > +system reset, start fans on full speed and increase register counter. > > +The last 2 actions are performed without a system reset. > > +Actions without reset are provided for auxiliary watchdog device, > > +which is optional. > > +Watchdog can be started during a probe, in this case it will be > > +pinged by watchdog core before watchdog device will be opened by > > +user space application. > > +Watchdog can be initialised in nowayout way, i.e. oncse started > > +it can be stopped. > > + > > +This mlx-wdt driver supports both HW watchdog implementations. > > + > > +Watchdog driver is probed from the common mlx_platform driver. > > +Mlx_platform driver provides an appropriate set of registers for > > +Mellanox watchdog device, identity name (mlx-wdt-main or mlx-wdt- > aux), > > +initial timeout, performed action in expiration and configuration flags. > > +watchdog configuration flags: nowayout and start_at_boot, hw watchdog > > +version - type1 or type2. > > +The driver checks during initialization if the previous system reset > > +was done by the watchdog. If yes, it makes a notification about this event. > > + > > +Access to HW registers is performed through a generic regmap interface. > >