cos-gpu-installer-v1: Add support for GSP firmware installation
Change-Id: If28459349c9e43af9197e958086ade73498f7594
Reviewed-on: https://cos-review.googlesource.com/c/cos/tools/+/40927
Reviewed-by: Meena Shanmugam <meenashanmugam@google.com>
Cloud-Build: GCB Service account <228075978874@cloudbuild.gserviceaccount.com>
Tested-by: Arnav Kansal <rnv@google.com>
diff --git a/src/cmd/cos_gpu_installer_v1/cos-gpu-installer-docker/entrypoint.sh b/src/cmd/cos_gpu_installer_v1/cos-gpu-installer-docker/entrypoint.sh
index 2c679f2..abde8f5 100755
--- a/src/cmd/cos_gpu_installer_v1/cos-gpu-installer-docker/entrypoint.sh
+++ b/src/cmd/cos_gpu_installer_v1/cos-gpu-installer-docker/entrypoint.sh
@@ -34,6 +34,7 @@
CACHE_FILE="${NVIDIA_INSTALL_DIR_CONTAINER}/.cache"
LOCK_FILE="${ROOT_MOUNT_DIR}/tmp/cos_gpu_installer_lock"
LOCK_FILE_FD=20
+GSP_FIRMWARE_FILES=("gsp.bin" "gsp_tu10x.bin" "gsp_ad10x.bin")
set +x
# TOOLCHAIN_DOWNLOAD_URL, CC and CXX are set by
@@ -448,6 +449,17 @@
# drivers are consistent.
sh "${INSTALLER_FILE}" -x --target "${dir_to_extract}"
"${dir_to_extract}/nvidia-installer" "${installer_args[@]}"
+ local -r firmware_dir="${NVIDIA_INSTALL_DIR_CONTAINER}/firmware/nvidia/${NVIDIA_DRIVER_VERSION}"
+ for gsp_file in ${GSP_FIRMWARE_FILES[@]};
+ do
+ if [[ -f "${dir_to_extract}/firmware/${gsp_file}" ]]; then
+ info "installing firmware file ${gsp_file}"
+ mkdir -p "${firmware_dir}"
+ cp "${dir_to_extract}/firmware/${gsp_file}" "${firmware_dir}"
+ else
+ info "skipping firmware file ${gsp_file} not found in installer pkg"
+ fi
+ done
fi
popd
@@ -457,6 +469,7 @@
info "Configuring cached driver installation"
update_container_ld_cache
if ! lsmod | grep -q -w 'nvidia'; then
+ # TODO (rnv) use NVreg_EnableGpuFirmware=1 for Turing and later
insmod "${NVIDIA_INSTALL_DIR_CONTAINER}/drivers/nvidia.ko"
fi
if ! lsmod | grep -q -w 'nvidia_uvm'; then