Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 62 additions & 12 deletions files/image_config/config-setup/config-setup
Original file line number Diff line number Diff line change
Expand Up @@ -170,15 +170,37 @@ copy_config_files_and_directories()
done
}

# Check if SONiC switch has booted after a warm reboot request
# Check if SONiC switch has booted after a warm reboot request.
# Prefers STATE_DB when available (reflects true warm boot state and
# gets cleared after warm boot completes). Falls back to /proc/cmdline
# only during the "boot" command when database services may not be up yet.
check_system_warm_boot()
{
SYSTEM_WARM_START=`sonic-db-cli STATE_DB hget "WARM_RESTART_ENABLE_TABLE|system" enable`
# SYSTEM_WARM_START could be empty, always make WARM_BOOT meaningful.
if [[ x"$SYSTEM_WARM_START" == x"true" ]]; then
WARM_BOOT="true"
else
WARM_BOOT="false"
WARM_BOOT="false"

# Try STATE_DB first — authoritative source that reflects current
# warm boot state and is cleared after warm boot completes.
SYSTEM_WARM_START=$(sonic-db-cli STATE_DB hget "WARM_RESTART_ENABLE_TABLE|system" enable)
DB_RC=$?

if [ $DB_RC -eq 0 ]; then
# DB is reachable — use its answer exclusively
if [[ x"$SYSTEM_WARM_START" == x"true" ]]; then
WARM_BOOT="true"
fi
return
fi

# DB not available — fall back to /proc/cmdline only during boot,
# when database services may not have started yet.
# Outside of boot context, /proc/cmdline may contain a stale
# SONIC_BOOT_TYPE=warm from a previous warm reboot.
if [ "$CMD" = "boot" ]; then
case "$(cat /proc/cmdline)" in
*SONIC_BOOT_TYPE=warm*)
WARM_BOOT="true"
;;
esac
fi
}

Expand Down Expand Up @@ -256,11 +278,24 @@ generate_config()
}

# Create SONiC configuration for first time bootup
# - If ZTP is enabled, ZTP configuraion is created
# - If ZTP is disabled, factory default configuration
# - If minigraph.xml is available, use it to generate configuration
# - If ZTP is enabled and no minigraph, ZTP configuration is created
# - If ZTP is disabled and no minigraph, factory default configuration
# is created
do_config_initialization()
{
# If minigraph.xml is available, prefer it over ZTP/factory default.
# This avoids ZTP triggering a config reload that removes management IP
# when the device has a valid minigraph but no config_db.json
# (e.g., during upgrade path tests).
if [ -r ${MINGRAPH_FILE} ]; then
echo "No config_db.json found but minigraph.xml is available, using minigraph..."
reload_minigraph
rm -f /tmp/pending_config_initialization
sonic-db-cli CONFIG_DB SET "CONFIG_DB_INITIALIZED" "1"
return 0
fi

if ! ztp_is_enabled ; then
echo "No configuration detected, generating factory default configuration..."
generate_config factory ${CONFIG_DB_JSON}
Expand Down Expand Up @@ -412,6 +447,18 @@ boot_config()
do_config_migration
fi

# During warm boot the existing configuration must be preserved.
# Never run config initialization or ZTP — doing so would generate
# a new config and trigger config reload, wiping management IP.
if [ x"${WARM_BOOT}" == x"true" ]; then
echo "Warm boot detected, skipping config initialization and ZTP."
# Mark config as initialized so subsequent boots don't re-trigger
# initialization unnecessarily (warm-reboot to new image scenario).
sonic-db-cli CONFIG_DB SET "CONFIG_DB_INITIALIZED" "1"
rm -f /tmp/pending_config_initialization
return 0
fi

# For multi-npu platfrom we don't support config initialization. Assumption
# is there should be existing minigraph or config_db from previous image
# file system to trigger. pending_config_initialization will remain set
Expand All @@ -424,11 +471,14 @@ boot_config()
do_config_initialization
fi

# If no startup configuration is found, create a configuration to be used
# If no startup configuration is found, create a configuration to be used.
# do_config_initialization() will prefer minigraph.xml if available,
# falling back to ZTP or factory default only when no minigraph exists.
if [ ! -e ${CONFIG_DB_JSON} ]; then
do_config_initialization
# force ZTP to restart
if ztp_is_enabled ; then
# force ZTP to restart (only relevant when ZTP was actually used,
# i.e., when minigraph.xml was not available)
if [ ! -e ${MINGRAPH_FILE} ] && ztp_is_enabled ; then
ztp_status=$(ztp status -c)
if [ "$ztp_status" = "5:SUCCESS" ] || \
[ "$ztp_status" = "6:FAILED" ]; then
Expand Down
2 changes: 1 addition & 1 deletion platform/components/docker-gbsyncd-agera2.mk
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Agera2 PAI Library Package - URL-based download similar to broncos
LIBSAI_AGERA2_VERSION = 3.14.0-2
LIBSAI_AGERA2_VERSION = 3.14.0-3
LIBSAI_AGERA2_BRANCH_NAME = REL_3.14

LIBSAI_AGERA2_URL_PREFIX = "https://packages.trafficmanager.net/public/sai/bcmpai/$(LIBSAI_AGERA2_BRANCH_NAME)/$(LIBSAI_AGERA2_VERSION)"
Expand Down
14 changes: 7 additions & 7 deletions platform/mellanox/fw.mk
Original file line number Diff line number Diff line change
Expand Up @@ -21,38 +21,38 @@ MLNX_FW_BASE_PATH = $(MLNX_SDK_BASE_PATH)
# Place an URL here to FW if you want to download FW instead
MLNX_FW_BASE_URL =

SIMX_VERSION = 25.10-1153
SIMX_VERSION = 26.1-1158

FW_FROM_URL = y

MLNX_FW_ASSETS_RELEASE_TAG = fw-2016.3404
MLNX_FW_ASSETS_RELEASE_TAG = fw-2016.3412
MLNX_FW_ASSETS_URL = $(MLNX_ASSETS_GITHUB_URL)/releases/download/$(MLNX_FW_ASSETS_RELEASE_TAG)

ifeq ($(MLNX_FW_BASE_URL), )
MLNX_FW_BASE_URL = $(MLNX_FW_ASSETS_URL)
endif

MLNX_SPC_FW_VERSION = 13.2016.3404
MLNX_SPC_FW_VERSION = 13.2016.3412
MLNX_SPC_FW_FILE = fw-SPC-rel-$(subst .,_,$(MLNX_SPC_FW_VERSION))-EVB.mfa
$(MLNX_SPC_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH)
$(MLNX_SPC_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC_FW_FILE)

MLNX_SPC2_FW_VERSION = 29.2016.3404
MLNX_SPC2_FW_VERSION = 29.2016.3412
MLNX_SPC2_FW_FILE = fw-SPC2-rel-$(subst .,_,$(MLNX_SPC2_FW_VERSION))-EVB.mfa
$(MLNX_SPC2_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH)
$(MLNX_SPC2_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC2_FW_FILE)

MLNX_SPC3_FW_VERSION = 30.2016.3404
MLNX_SPC3_FW_VERSION = 30.2016.3412
MLNX_SPC3_FW_FILE = fw-SPC3-rel-$(subst .,_,$(MLNX_SPC3_FW_VERSION))-EVB.mfa
$(MLNX_SPC3_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH)
$(MLNX_SPC3_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC3_FW_FILE)

MLNX_SPC4_FW_VERSION = 34.2016.3404
MLNX_SPC4_FW_VERSION = 34.2016.3412
MLNX_SPC4_FW_FILE = fw-SPC4-rel-$(subst .,_,$(MLNX_SPC4_FW_VERSION))-EVB.mfa
$(MLNX_SPC4_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH)
$(MLNX_SPC4_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC4_FW_FILE)

MLNX_SPC5_FW_VERSION = 37.2016.3404
MLNX_SPC5_FW_VERSION = 37.2016.3412
MLNX_SPC5_FW_FILE = fw-SPC5-rel-$(subst .,_,$(MLNX_SPC5_FW_VERSION))-EVB.mfa
$(MLNX_SPC5_FW_FILE)_PATH = $(MLNX_FW_BASE_PATH)
$(MLNX_SPC5_FW_FILE)_URL = $(MLNX_FW_BASE_URL)/$(MLNX_SPC5_FW_FILE)
Expand Down
2 changes: 1 addition & 1 deletion platform/mellanox/hw-management.mk
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
#
# Mellanox HW Management

MLNX_HW_MANAGEMENT_VERSION = 7.0050.3001
MLNX_HW_MANAGEMENT_VERSION = 7.0050.3002

export MLNX_HW_MANAGEMENT_VERSION

Expand Down
2 changes: 1 addition & 1 deletion platform/mellanox/hw-management/hw-mgmt
Submodule hw-mgmt updated 29 files
+29 −0 debian/Release.txt
+2 −2 debian/changelog
+1 −1 usr/etc/hw-management-thermal/tc_config_default.json
+2 −2 usr/etc/hw-management-thermal/tc_config_mqm8700.json
+1 −1 usr/etc/hw-management-thermal/tc_config_mqm9700.json
+1 −1 usr/etc/hw-management-thermal/tc_config_mqm9701.json
+1 −1 usr/etc/hw-management-thermal/tc_config_msb7xxx.json
+1 −1 usr/etc/hw-management-thermal/tc_config_msn2201.json
+1 −1 usr/etc/hw-management-thermal/tc_config_msn2410.json
+1 −1 usr/etc/hw-management-thermal/tc_config_msn2700.json
+1 −1 usr/etc/hw-management-thermal/tc_config_msn27002.json
+2 −2 usr/etc/hw-management-thermal/tc_config_msn3420.json
+2 −2 usr/etc/hw-management-thermal/tc_config_msn3700.json
+2 −2 usr/etc/hw-management-thermal/tc_config_msn3700C.json
+2 −2 usr/etc/hw-management-thermal/tc_config_msn3750.json
+1 −1 usr/etc/hw-management-thermal/tc_config_msn3800.json
+2 −2 usr/etc/hw-management-thermal/tc_config_msn4410.json
+1 −1 usr/etc/hw-management-thermal/tc_config_msn4600.json
+1 −1 usr/etc/hw-management-thermal/tc_config_msn4600C.json
+1 −1 usr/etc/hw-management-thermal/tc_config_msn4700.json
+1 −1 usr/etc/hw-management-thermal/tc_config_msn4700_mps.json
+1 −1 usr/etc/hw-management-thermal/tc_config_sn4280.json
+26 −9 usr/usr/bin/hw-management-chassis-events.sh
+3 −2 usr/usr/bin/hw-management-thermal-events.sh
+8 −2 usr/usr/bin/hw-management-vpd-parser.py
+11 −2 usr/usr/bin/hw-management.sh
+40 −44 usr/usr/bin/hw_management_thermal_control.py
+40 −43 usr/usr/bin/hw_management_thermal_control_2_5.py
+3 −2 usr/usr/local/bin/hw-management-process-blacklist.sh
2 changes: 1 addition & 1 deletion platform/mellanox/mlnx-sai.mk
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Mellanox SAI

MLNX_SAI_VERSION = SAIBuild2511.35.3400.0
MLNX_SAI_VERSION = SAIBuild2511.35.3400.5
MLNX_SAI_ASSETS_GITHUB_URL = https://github.com/Mellanox/Spectrum-SDK-Drivers-SONiC-Bins
MLNX_SAI_ASSETS_RELEASE_TAG = sai-$(MLNX_SAI_VERSION)-$(BLDENV)-$(CONFIGURED_ARCH)
MLNX_SAI_ASSETS_URL = $(MLNX_SAI_ASSETS_GITHUB_URL)/releases/download/$(MLNX_SAI_ASSETS_RELEASE_TAG)
Expand Down
2 changes: 1 addition & 1 deletion platform/mellanox/sdk.mk
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
MLNX_SDK_VERSION = 4.8.3404
MLNX_SDK_VERSION = 4.8.3412
MLNX_SDK_ISSU_VERSION = 101

MLNX_SDK_DRIVERS_GITHUB_URL = https://github.com/Mellanox/Spectrum-SDK-Drivers
Expand Down
Loading