From 034ac41e57b01dcb55baaff12354b724a42653cb Mon Sep 17 00:00:00 2001 From: paavaanan Date: Wed, 17 Apr 2019 12:34:48 +0530 Subject: [PATCH] [devices]: Watchdog enable/disable in DellEMC S6100 (#2730) --- .../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 9be9da0ab428..a54e5b092642 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 @@ -6,5 +6,7 @@ common/fstrim.timer etc/systemd/system common/fstrim.service etc/systemd/system 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 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 000000000000..c3a90f3e89b2 --- /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 000000000000..804627b5e2fc --- /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 1ac6ce93bc1d..f8480f567380 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 + exec /usr/local/bin/platform_watchdog_disable.sh + fi + cpu_board_mux "new_device" switch_board_mux "new_device" sys_eeprom "new_device"