€•¶,Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”(hhŒparent”hubaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ$/translations/zh_CN/watchdog/mlx-wdt”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”(hhhh2ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/zh_TW/watchdog/mlx-wdt”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”(hhhhFubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/it_IT/watchdog/mlx-wdt”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”(hhhhZubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/ja_JP/watchdog/mlx-wdt”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”(hhhhnubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/ko_KR/watchdog/mlx-wdt”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”(hhhh‚ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ$/translations/sp_SP/watchdog/mlx-wdt”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒMellanox watchdog drivers”h]”hŒMellanox watchdog drivers”…””}”(hhªhh¨hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh£hžhhŸŒ>/var/lib/git/docbuild/linux/Documentation/watchdog/mlx-wdt.rst”h Kubh¢)”}”(hhh]”(h§)”}”(hŒfor x86 based system switches”h]”hŒfor x86 based system switches”…””}”(hh¼hhºhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1h¦hh·hžhhŸh¶h KubhŒ paragraph”“”)”}”(hŒhThis driver provides watchdog functionality for various Mellanox Ethernet and Infiniband switch systems.”h]”hŒhThis driver provides watchdog functionality for various Mellanox Ethernet and Infiniband switch systems.”…””}”(hhÌhhÊhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h Khh·hžhubhÉ)”}”(hŒGMellanox watchdog device is implemented in a programmable logic device.”h]”hŒGMellanox watchdog device is implemented in a programmable logic device.”…””}”(hhÚhhØhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K hh·hžhubhÉ)”}”(hŒ1There are 2 types of HW watchdog implementations.”h]”hŒ1There are 2 types of HW watchdog implementations.”…””}”(hhèhhæhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K hh·hžhubhŒdefinition_list”“”)”}”(hhh]”(hŒdefinition_list_item”“”)”}”(hŒÇ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 ”h]”(hŒterm”“”)”}”(hŒType 1:”h]”hŒType 1:”…””}”(hjhjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhŸh¶h KhhûubhŒ definition”“”)”}”(hhh]”hÉ)”}”(hŒ¾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”h]”hŒÀ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”…””}”(hjhjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h Khjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhhûubeh}”(h]”h ]”h"]”h$]”h&]”uh1hùhŸh¶h Khhöubhú)”}”(hŒ’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. ”h]”(j)”}”(hŒType 2:”h]”hŒType 2:”…””}”(hj4hj2hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhŸh¶h Khj.ubj)”}”(hhh]”hÉ)”}”(hŒ‰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.”h]”hŒ‹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.”…””}”(hjEhjChžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h Khj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj.ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hùhŸh¶h Khhöhžhubhú)”}”(hŒ[Type 3: Same as Type 2 with extended maximum timeout period. Maximum timeout is 65535 sec. ”h]”(j)”}”(hŒType 3:”h]”hŒType 3:”…””}”(hjchjahžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÿhŸh¶h Khj]ubj)”}”(hhh]”hÉ)”}”(hŒRSame as Type 2 with extended maximum timeout period. Maximum timeout is 65535 sec.”h]”hŒRSame as Type 2 with extended maximum timeout period. Maximum timeout is 65535 sec.”…””}”(hjthjrhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h Khjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1hùhŸh¶h Khhöhžhubeh}”(h]”h ]”h"]”h$]”h&]”uh1hôhh·hžhhŸh¶h NubhÉ)”}”(hŒ¤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.”h]”hŒ¤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.”…””}”(hj”hj’hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h Khh·hžhubhÉ)”}”(hŒ¾Type 3 HW watchdog implementation can exist on all Mellanox systems with new programmer logic device. It's differentiated by WD capability bit. Old systems still have only one main watchdog.”h]”hŒÀType 3 HW watchdog implementation can exist on all Mellanox systems with new programmer logic device. It’s differentiated by WD capability bit. Old systems still have only one main watchdog.”…””}”(hj¢hj hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K#hh·hžhubhÉ)”}”(hXŠ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't be stopped.”h]”hXŒ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’t be stopped.”…””}”(hj°hj®hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K(hh·hžhubhÉ)”}”(hŒ>This mlx-wdt driver supports both HW watchdog implementations.”h]”hŒ>This mlx-wdt driver supports both HW watchdog implementations.”…””}”(hj¾hj¼hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K6hh·hžhubhÉ)”}”(hXWatchdog 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.”h]”hXWatchdog 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.”…””}”(hjÌhjÊhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h K8hh·hžhubhÉ)”}”(hŒ…Access to HW registers is performed through a generic regmap interface. Programmable logic device registers have little-endian order.”h]”hŒ…Access to HW registers is performed through a generic regmap interface. Programmable logic device registers have little-endian order.”…””}”(hjÚhjØhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÈhŸh¶h KAhh·hžhubeh}”(h]”Œfor-x86-based-system-switches”ah ]”h"]”Œfor x86 based system switches”ah$]”h&]”uh1h¡hh£hžhhŸh¶h Kubeh}”(h]”Œmellanox-watchdog-drivers”ah ]”h"]”Œmellanox watchdog drivers”ah$]”h&]”uh1h¡hhhžhhŸh¶h Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h¶uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(h¦NŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jŒerror_encoding”ŒUTF-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h¶Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œ embed_images”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jójðjëjèuŒ nametypes”}”(jóNjëNuh}”(jðh£jèh·uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nhžhub.