Files
dts-scripts/scripts/ec_transition
Daniil Klimuk 18dc2760fb rework check_network_connection function
Split the function into two parts and name them accordingly.

Signed-off-by: Daniil Klimuk <daniil.klimuk@3mdeb.com>
2024-07-22 16:45:06 +02:00

122 lines
3.6 KiB
Bash

#!/usr/bin/env bash
# SPDX-FileCopyrightText: 2024 3mdeb <contact@3mdeb.com>
#
# SPDX-License-Identifier: Apache-2.0
source $DTS_ENV
source $DTS_FUNCS
board_config() {
case "$SYSTEM_VENDOR" in
"Notebook")
case "$SYSTEM_MODEL" in
"NS50_70MU")
HAVE_EC="true"
NEED_EC_RESET="true"
COMPATIBLE_EC_FW_VERSION="2022-08-31_cbff21b"
EC_HASH="d1001465cea74a550914c14f0c8f901b14827a3b5fa0b612ae6d11594ac2b405 /tmp/ecupdate.rom"
BIOS_HASH="d4c30660c53bac505997de30b9eac4c5ac15f3212c62366730dc2ca3974bba18 /tmp/biosupdate.rom"
PROGRAMMER_BIOS="internal"
PROGRAMMER_EC="ite_ec"
BIOS_LINK="https://cloud.3mdeb.com/index.php/s/SKpqSNzfFNY7AbK/download"
EC_LINK="https://cloud.3mdeb.com/index.php/s/GK2KbXaYprkCCWM/download"
;;
"NV4XMB,ME,MZ")
HAVE_EC="true"
NEED_EC_RESET="true"
COMPATIBLE_EC_FW_VERSION="2022-10-07_c662165"
EC_HASH="7a75fd9afd81012f7c1485cc335298979509e5929d931d898465fbddb4ce105c /tmp/ecupdate.rom"
BIOS_HASH="7271b638c87cba658162931f55bdaa6987eb5b0555075ce8e2297a79a505c8b0 /tmp/biosupdate.rom"
PROGRAMMER_BIOS="internal:boardmismatch=force"
PROGRAMMER_EC="ite_ec:boardmismatch=force,romsize=128K,autoload=disable"
BIOS_LINK="https://cloud.3mdeb.com/index.php/s/3cjkJSWBzPfb5SP/download"
EC_LINK="https://cloud.3mdeb.com/index.php/s/9S5Tmy6kwFjpcNm/download"
;;
*)
error_exit "Board model $SYSTEM_MODEL is currently not supported"
;;
esac
;;
*)
error_exit "Board vendor: $SYSTEM_VENDOR is currently not supported"
;;
esac
}
check_for_opensource_firmware()
{
echo "Checking for opensource firmware"
$DASHARO_ECTOOL info >> /dev/null 2>&1
if [ $? -eq 0 ]; then
error_exit "Device has already Open Source Embedded Controller firmware, aborting..."
fi
}
download_files()
{
wait_for_network_connection
BIOS_UPDATE_FILE="/tmp/biosupdate.rom"
EC_UPDATE_FILE="/tmp/ecupdate.rom"
wget -O $EC_UPDATE_FILE $EC_LINK
error_check "Cannot download EC update file. Aborting..."
wget -O $BIOS_UPDATE_FILE $BIOS_LINK
error_check "Cannot download FW update file. Aborting..."
echo "Successfully downloaded EC and FW files."
}
update_ec() {
sha256sum --check <(echo "$EC_HASH")
error_check "Failed to download EC firmware update"
echo "Updating EC..."
$FLASHROM -p ${PROGRAMMER_EC} -w /tmp/ecupdate.rom >> $FLASHROM_LOG_FILE 2>> $ERR_LOG_FILE
error_check "Failed to update EC firmware"
echo "Successfully updated EC firmware"
}
install() {
sha256sum --check <(echo "$BIOS_HASH")
error_check "Failed to verify Dasharo firmware"
if [ "$HAVE_EC" == "true" ]; then
_ec_fw_version=$($FLASHROM -p ${PROGRAMMER_EC} | grep "Mainboard EC Version" | tr -d ' ' | cut -d ':' -f 2)
if [ "$_ec_fw_version" != "$COMPATIBLE_EC_FW_VERSION" ]; then
echo "EC version: $_ec_fw_version is not supported, update required"
update_ec
fi
fi
echo "Installing Dasharo firmware..."
$FLASHROM -p ${PROGRAMMER_BIOS} --ifd -i bios -w /tmp/biosupdate.rom >> $FLASHROM_LOG_FILE 2>> $ERR_LOG_FILE
error_check "Failed to install Dasharo firmware"
echo "Successfully installed Dasharo firmware"
echo "Powering off"
sleep 1
if [ "$NEED_EC_RESET" = "true" ]; then
it5570_shutdown
else
${CMD_POWEROFF}
fi
}
usage() {
echo "Usage:"
echo " $0 "
exit 1
}
ROOT_DIR="/"
[ -z "$SYSTEM_VENDOR" ] && error_exit "SYSTEM_VENDOR not given"
[ -z "$SYSTEM_MODEL" ] && error_exit "SYSTEM_MODEL not given"
check_for_opensource_firmware
board_config
download_files
install