787dd7221d
Why I did it Add platform support for Debian 12 (Bookworm) on Mellanox Platform How I did it Update hw-management to v7.0030.2008 Deprecate the sfp_count == module_count approach in favour of asic init completion Ref: Mellanox/hw-mgmt@bf4f593 Add xxd package to base image which is required by hw-management scripts Add the non-upstream flag into linux kernel cache options Update the thermalctl logic based on new sysfs attributes Fix the integrate-mlnx-hw-mgmt script to not populate the arm64 Kconfig How to verify it Build kernel and run platform tests Signed-off-by: Vivek Reddy <vkarri@nvidia.com> Co-authored-by: Junchao-Mellanox <junchao@nvidia.com> Co-authored-by: Junchao-Mellanox <57339448+Junchao-Mellanox@users.noreply.github.com>
69 lines
1.8 KiB
Bash
Executable File
69 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
declare -r SYSLOG_LOGGER="/usr/bin/logger"
|
|
declare -r SYSLOG_IDENTIFIER="platform_wait"
|
|
declare -r SYSLOG_ERROR="error"
|
|
declare -r SYSLOG_NOTICE="notice"
|
|
declare -r SYSLOG_INFO="info"
|
|
|
|
declare -r HW_MGMT_CONFIG="/var/run/hw-management/config"
|
|
|
|
declare -r ASIC_INIT_DONE="${HW_MGMT_CONFIG}/asics_init_done"
|
|
declare -r NUM_ASICS="${HW_MGMT_CONFIG}/asic_num"
|
|
declare -r ASIC_CHIPUP_COMPLETED="${HW_MGMT_CONFIG}/asic_chipup_completed"
|
|
|
|
declare -r EXIT_SUCCESS="0"
|
|
declare -r EXIT_TIMEOUT="1"
|
|
|
|
function log_error() {
|
|
eval "${SYSLOG_LOGGER} -t ${SYSLOG_IDENTIFIER} -p ${SYSLOG_ERROR} $@"
|
|
}
|
|
|
|
function log_notice() {
|
|
eval "${SYSLOG_LOGGER} -t ${SYSLOG_IDENTIFIER} -p ${SYSLOG_NOTICE} $@"
|
|
}
|
|
|
|
function log_info() {
|
|
eval "${SYSLOG_LOGGER} -t ${SYSLOG_IDENTIFIER} -p ${SYSLOG_INFO} $@"
|
|
}
|
|
|
|
function wait_for_asic_chipup() {
|
|
|
|
local _ASIC_INIT="0"
|
|
local _ASIC_COUNT="0"
|
|
local _ASICS_CHIPUP="0"
|
|
|
|
local -i _WDOG_CNT="1"
|
|
local -ir _WDOG_MAX="300"
|
|
|
|
local -r _TIMEOUT="1s"
|
|
|
|
while [[ "${_WDOG_CNT}" -le "${_WDOG_MAX}" ]]; do
|
|
_ASIC_INIT="$(cat ${ASIC_INIT_DONE} 2>&1)"
|
|
_ASIC_COUNT="$(cat ${NUM_ASICS} 2>&1)"
|
|
_ASICS_CHIPUP="$(cat ${ASIC_CHIPUP_COMPLETED} 2>&1)"
|
|
|
|
if [[ "${_ASIC_INIT}" -eq 1 && "${_ASIC_COUNT}" -eq "${_ASICS_CHIPUP}" ]]; then
|
|
return "${EXIT_SUCCESS}"
|
|
fi
|
|
|
|
let "_WDOG_CNT++"
|
|
sleep "${_TIMEOUT}"
|
|
done
|
|
|
|
log_error "Mellanox ASIC is not ready: INIT: ${_ASIC_INIT}, NUM_ASIC: ${_ASIC_COUNT}, CHIPUP: ${_ASICS_CHIPUP} timeout...."
|
|
return "${EXIT_TIMEOUT}"
|
|
}
|
|
|
|
log_info "Wait for Mellanox ASIC to be ready"
|
|
|
|
wait_for_asic_chipup
|
|
EXIT_CODE="$?"
|
|
if [[ "${EXIT_CODE}" != "${EXIT_SUCCESS}" ]]; then
|
|
exit "${EXIT_CODE}"
|
|
fi
|
|
|
|
log_notice "Mellanox ASIC is ready"
|
|
|
|
exit "${EXIT_SUCCESS}"
|