[Mellanox] Improve FW upgrade logging: add syslog logger (#7221)
Basically mlnx-fw-upgrade.sh is used in two places: 1. https://github.com/Azure/sonic-buildimage/blob/201811/files/scripts/syncd.sh#L109 ```bash /usr/bin/mst start /usr/bin/mlnx-fw-upgrade.sh /etc/init.d/sxdkernel start /sbin/modprobe i2c-dev ``` 2. https://github.com/Azure/sonic-buildimage/blob/201811/device/mellanox/x86_64-mlnx_msn2700-r0/platform_reboot#L32 ```bash ParseArguments "$@" ${FW_UPGRADE_SCRIPT} --upgrade --verbose EXIT_CODE="$?" ``` In first case the `stdout` is redirected to `syslog` directly by `systemd`. Thus, the `syslog` logger is only required in second case. #### Why I did it * To improve ASIC/CPLD FW upgrade logging * To improve CPLD upgrade time #### How I did it * Added `syslog` logger support * Replaced `_pciconf0` -> `_pci_cr0` to reduce CPLD upgrade time #### How to verify it 1. mlnx-fw-upgrade.sh --upgrade
This commit is contained in:
parent
161bca602f
commit
72c506061c
@ -28,6 +28,7 @@ declare -r FW_REQUIRED="{{ MLNX_SPC_FW_VERSION }}"
|
|||||||
|
|
||||||
IMAGE_UPGRADE="${NO_PARAM}"
|
IMAGE_UPGRADE="${NO_PARAM}"
|
||||||
CPLD_UPGRADE="${NO_PARAM}"
|
CPLD_UPGRADE="${NO_PARAM}"
|
||||||
|
SYSLOG_LOGGER="${NO_PARAM}"
|
||||||
VERBOSE_LEVEL="${VERBOSE_MIN}"
|
VERBOSE_LEVEL="${VERBOSE_MIN}"
|
||||||
|
|
||||||
function PrintHelp() {
|
function PrintHelp() {
|
||||||
@ -37,7 +38,8 @@ function PrintHelp() {
|
|||||||
echo "OPTIONS:"
|
echo "OPTIONS:"
|
||||||
echo " -u, --upgrade Upgrade firmware using next boot image (useful after SONiC-To-SONiC update)"
|
echo " -u, --upgrade Upgrade firmware using next boot image (useful after SONiC-To-SONiC update)"
|
||||||
echo " -c, --cpld Upgrade CPLD firmware (requires -u|--upgrade)"
|
echo " -c, --cpld Upgrade CPLD firmware (requires -u|--upgrade)"
|
||||||
echo " -v, --verbose Verbose mode"
|
echo " -s, --syslog Use syslog logger (enabled when -u|--upgrade)"
|
||||||
|
echo " -v, --verbose Verbose mode (enabled when -u|--upgrade)"
|
||||||
echo " -h, --help Print help"
|
echo " -h, --help Print help"
|
||||||
echo
|
echo
|
||||||
echo "Examples:"
|
echo "Examples:"
|
||||||
@ -53,11 +55,15 @@ function ParseArguments() {
|
|||||||
case "$1" in
|
case "$1" in
|
||||||
-u|--upgrade)
|
-u|--upgrade)
|
||||||
IMAGE_UPGRADE="${YES_PARAM}"
|
IMAGE_UPGRADE="${YES_PARAM}"
|
||||||
|
SYSLOG_LOGGER="${YES_PARAM}"
|
||||||
VERBOSE_LEVEL="${VERBOSE_MAX}"
|
VERBOSE_LEVEL="${VERBOSE_MAX}"
|
||||||
;;
|
;;
|
||||||
-c|--cpld)
|
-c|--cpld)
|
||||||
CPLD_UPGRADE="${YES_PARAM}"
|
CPLD_UPGRADE="${YES_PARAM}"
|
||||||
;;
|
;;
|
||||||
|
-s|--syslog)
|
||||||
|
SYSLOG_LOGGER="${YES_PARAM}"
|
||||||
|
;;
|
||||||
-v|--verbose)
|
-v|--verbose)
|
||||||
VERBOSE_LEVEL="${VERBOSE_MAX}"
|
VERBOSE_LEVEL="${VERBOSE_MAX}"
|
||||||
;;
|
;;
|
||||||
@ -74,24 +80,40 @@ function LogError() {
|
|||||||
if [[ "${VERBOSE_LEVEL}" -ge "${VERBOSE_ERROR}" ]]; then
|
if [[ "${VERBOSE_LEVEL}" -ge "${VERBOSE_ERROR}" ]]; then
|
||||||
echo "ERROR: $*"
|
echo "ERROR: $*"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "${SYSLOG_LOGGER}" = "${YES_PARAM}" ]]; then
|
||||||
|
logger -p "ERROR" -t "${SCRIPT_NAME}" "$*"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function LogWarning() {
|
function LogWarning() {
|
||||||
if [[ "${VERBOSE_LEVEL}" -ge "${VERBOSE_WARNING}" ]]; then
|
if [[ "${VERBOSE_LEVEL}" -ge "${VERBOSE_WARNING}" ]]; then
|
||||||
echo "WARNING: $*"
|
echo "WARNING: $*"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "${SYSLOG_LOGGER}" = "${YES_PARAM}" ]]; then
|
||||||
|
logger -p "WARNING" -t "${SCRIPT_NAME}" "$*"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function LogNotice() {
|
function LogNotice() {
|
||||||
if [[ "${VERBOSE_LEVEL}" -ge "${VERBOSE_NOTICE}" ]]; then
|
if [[ "${VERBOSE_LEVEL}" -ge "${VERBOSE_NOTICE}" ]]; then
|
||||||
echo "NOTICE: $*"
|
echo "NOTICE: $*"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "${SYSLOG_LOGGER}" = "${YES_PARAM}" ]]; then
|
||||||
|
logger -p "NOTICE" -t "${SCRIPT_NAME}" "$*"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function LogInfo() {
|
function LogInfo() {
|
||||||
if [[ "${VERBOSE_LEVEL}" -ge "${VERBOSE_INFO}" ]]; then
|
if [[ "${VERBOSE_LEVEL}" -ge "${VERBOSE_INFO}" ]]; then
|
||||||
echo "INFO: $*"
|
echo "INFO: $*"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "${SYSLOG_LOGGER}" = "${YES_PARAM}" ]]; then
|
||||||
|
logger -p "INFO" -t "${SCRIPT_NAME}" "$*"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function ExitFailure() {
|
function ExitFailure() {
|
||||||
@ -219,7 +241,11 @@ function UpgradeASICFW() {
|
|||||||
function UpgradeCPLDFW_Worker() {
|
function UpgradeCPLDFW_Worker() {
|
||||||
local -r _CPLD_BURN_FILE="${1}"
|
local -r _CPLD_BURN_FILE="${1}"
|
||||||
local -r _CPLD_REFRESH_FILE="${2}"
|
local -r _CPLD_REFRESH_FILE="${2}"
|
||||||
local -r _ASIC_DEV="$(find /dev/mst -iname '*_pciconf0')"
|
local -r _ASIC_DEV="$(find /dev/mst -iname '*_pci_cr0')"
|
||||||
|
|
||||||
|
# Flush syslog
|
||||||
|
RunCmd "kill -HUP $(cat /var/run/rsyslogd.pid)"
|
||||||
|
RunCmd "sync; sync"
|
||||||
|
|
||||||
if [[ -f /tmp/cpld_fw_updated ]]; then
|
if [[ -f /tmp/cpld_fw_updated ]]; then
|
||||||
RunCmd "cpldupdate --dev ${_ASIC_DEV} ${_CPLD_REFRESH_FILE}"
|
RunCmd "cpldupdate --dev ${_ASIC_DEV} ${_CPLD_REFRESH_FILE}"
|
||||||
|
Loading…
Reference in New Issue
Block a user