From 4f737f8b657a41aad16ced81b17b591296455c6b Mon Sep 17 00:00:00 2001 From: paavaanan Date: Sat, 29 Jun 2019 12:17:36 +0530 Subject: [PATCH] [devices]: DellEMC S6100 Watchdog support (#2835) --- .../debian/platform-modules-s6100.install | 2 ++ .../s6100/scripts/platform_watchdog_disable.sh | 13 +++++++++++++ .../s6100/scripts/platform_watchdog_enable.sh | 8 ++++++++ .../s6100/scripts/s6100_platform.sh | 5 +++++ 4 files changed, 28 insertions(+) create mode 100755 platform/broadcom/sonic-platform-modules-dell/s6100/scripts/platform_watchdog_disable.sh create mode 100755 platform/broadcom/sonic-platform-modules-dell/s6100/scripts/platform_watchdog_enable.sh diff --git a/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install b/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install index 7766db5c7e..8984b85692 100644 --- a/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install +++ b/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install @@ -5,6 +5,8 @@ common/io_rd_wr.py usr/local/bin common/dell_lpc_mon.sh usr/local/bin common/platform_reboot usr/share/sonic/device/x86_64-dell_s6100_c2538-r0 s6100/scripts/platform_sensors.py usr/local/bin +s6100/scripts/platform_watchdog_enable.sh usr/local/bin +s6100/scripts/platform_watchdog_disable.sh usr/local/bin s6100/scripts/sensors usr/bin s6100/systemd/platform-modules-s6100.service etc/systemd/system s6100/systemd/s6100-lpc-monitor.service etc/systemd/system diff --git a/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/platform_watchdog_disable.sh b/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/platform_watchdog_disable.sh new file mode 100755 index 0000000000..c3a90f3e89 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/platform_watchdog_disable.sh @@ -0,0 +1,13 @@ +#!/bin/bash +#This script is used to disable SMF Watchdog Timer + +wd_status=-1 +enabled=0 + +# Disable Watchdog if enabled +wd_status=$(io_rd_wr.py --get --offset 0x207 | cut -d " " -f3) + +if [[ $wd_status -eq $enabled ]]; then + echo "Disabling Watchdog Timer.." + io_rd_wr.py --set --val 1 --offset 0x207 +fi diff --git a/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/platform_watchdog_enable.sh b/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/platform_watchdog_enable.sh new file mode 100755 index 0000000000..804627b5e2 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/platform_watchdog_enable.sh @@ -0,0 +1,8 @@ +#!/bin/bash +#This script is used to enable SMF Watchdog Timer + +# Set watchdog to 180 seconds +io_rd_wr.py --set --val 3 --offset 0x206 + +# Enable watchdog timer +io_rd_wr.py --set --val 0 --offset 0x207 diff --git a/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/s6100_platform.sh b/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/s6100_platform.sh index 1ac6ce93bc..b83e031ba9 100755 --- a/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/s6100_platform.sh +++ b/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/s6100_platform.sh @@ -226,6 +226,11 @@ if [[ "$1" == "init" ]]; then modprobe dell_s6100_iom_cpld modprobe dell_s6100_lpc + # Disable Watchdog Timer + if [[ -e /usr/local/bin/platform_watchdog_disable.sh ]]; then + /usr/local/bin/platform_watchdog_disable.sh + fi + cpu_board_mux "new_device" switch_board_mux "new_device" sys_eeprom "new_device"