397908aa59
- Why I did it
Facilitate Automatic integration of new hw-mgmt version into SONiC.
Inputs to the Script:
MLNX_HW_MANAGEMENT_VERSION Eg: 7.0040.5202
CREATE_BRANCH: (y|n) Creates a branch instead of a commit (optional, default: n)
BRANCH_SONIC: Only relevant when CREATE_BRANCH is y. Default: master.
Note: These should be provided through SONIC_OVERRIDE_BUILD_VARS parameter
Output:
Script creates a commit (in each of sonic-buildimage, sonic-linux-kernel) with all the changes required for upgrading the hw-management version to a version provided by MLNX_HW_MANAGEMENT_VERSION
Brief Summary of the changes made:
MLNX_HW_MANAGEMENT_VERSION flag in the hw-management.mk file
hw-mgmt submodule is updated to the corresponding version
Updates are made to non-upstream-patches/patches and series.patch file
series, kconfig-inclusion and kconfig-exclusion files can be updated in the sonic-linux-kernel repo
sonic-linux-kernel/patches folder is updated with the corresponding upstream patches
Based on the inputs, there could be a branch seen in the local for each of the repo's. Branch is named as <branch>_<parent_commit>_integrate_<hw_mgmt_version>
- How I did it
Added a new make target which can be invoked by calling make integrate-mlnx-hw-mgmt
user@server:/sonic-buildimage$ git rev-parse --abbrev-ref HEAD
master_23193446a_integrate_7.0020.5052
user@server:/sonic-buildimage$ git log --oneline -n 2
f66e01867 (HEAD -> master_23193446a_integrate_V.7.0020.5052, show) Intgerate HW-MGMT V.7.0020.5052 Changes
23193446a
(master_intg_hw_mgmt) Update logic
user@server:/sonic-buildimage/src/sonic-linux-kernel$ git rev-parse --abbrev-ref HEAD
master_6847319_integrate_7.0020.4104
user@server:/sonic-buildimage/src/sonic-linux-kernel$ git log --oneline -n 2
6094f71 (HEAD -> master_6847319_integrate_V.7.0020.5052) Intgerate HW-MGMT V.7.0020.5052 Changes
6847319 (origin/master, origin/HEAD) Read ID register for optoe1 to find pageable bit in optoe driver (#308)
Changes made will be summarized under sonic-buildimage/integrate-mlnx-hw-mgmt_user.out file. Debugging and troubleshooting output is written to sonic-buildimage/integrate-mlnx-hw-mgmt.log files
User output file & stdout file:
log_files.tar.gz
Limitations:
Assumes the changes would only work for amd64
Assumes the non-upstream patches in mellanox only belong to hw-mgmt
- How to verify it
Build the Kernel
Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
59 lines
2.1 KiB
Makefile
59 lines
2.1 KiB
Makefile
#
|
|
# Copyright (c) 2016-2022 NVIDIA CORPORATION & AFFILIATES.
|
|
# Apache-2.0
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
include $(PLATFORM_PATH)/sdk.mk
|
|
include $(PLATFORM_PATH)/fw.mk
|
|
include $(PLATFORM_PATH)/mft.mk
|
|
include $(PLATFORM_PATH)/mlnx-sai.mk
|
|
include $(PLATFORM_PATH)/hw-management.mk
|
|
include $(PLATFORM_PATH)/mlnx-platform-api.mk
|
|
include $(PLATFORM_PATH)/docker-syncd-mlnx.mk
|
|
include $(PLATFORM_PATH)/docker-syncd-mlnx-rpc.mk
|
|
include $(PLATFORM_PATH)/docker-saiserver-mlnx.mk
|
|
include $(PLATFORM_PATH)/one-image.mk
|
|
include $(PLATFORM_PATH)/libsaithrift-dev.mk
|
|
include $(PLATFORM_PATH)/mlnx-ffb.mk
|
|
include $(PLATFORM_PATH)/issu-version.mk
|
|
include $(PLATFORM_PATH)/mlnx-onie-fw-update.mk
|
|
include $(PLATFORM_PATH)/mlnx-ssd-fw-update.mk
|
|
include $(PLATFORM_PATH)/install-pending-fw.mk
|
|
include $(PLATFORM_PATH)/integration-scripts.mk
|
|
|
|
SONIC_ALL += $(SONIC_ONE_IMAGE) \
|
|
$(DOCKER_FPM)
|
|
|
|
# Inject mlnx sai into syncd
|
|
$(SYNCD)_DEPENDS += $(MLNX_SAI)
|
|
$(SYNCD)_UNINSTALLS += $(MLNX_SAI)
|
|
|
|
ifeq ($(ENABLE_SYNCD_RPC),y)
|
|
$(SYNCD)_DEPENDS += $(LIBSAITHRIFT_DEV)
|
|
endif
|
|
|
|
# Runtime dependency on mlnx sai is set only for syncd
|
|
$(SYNCD)_RDEPENDS += $(MLNX_SAI)
|
|
|
|
# Inject mlnx sdk libs to platform monitor
|
|
$(DOCKER_PLATFORM_MONITOR)_DEPENDS += $(APPLIBS) $(SX_COMPLIB) $(SXD_LIBS) $(SX_GEN_UTILS) $(PYTHON_SDK_API) $(APPLIBS_DEV) $(SX_COMPLIB_DEV) $(SXD_LIBS_DEV) $(SX_GEN_UTILS_DEV)
|
|
|
|
# Force the target bootloader for mellanox platforms to grub regardless of arch
|
|
TARGET_BOOTLOADER = grub
|
|
|
|
# location for the platform specific external kernel patches
|
|
override EXTERNAL_KERNEL_PATCH_LOC := $(BUILD_WORKDIR)/$(PLATFORM_PATH)/non-upstream-patches/
|
|
|
|
export SONIC_BUFFER_MODEL=dynamic
|