sargo-temp/ansible/files/qcom-firmware
2024-07-17 01:51:03 +02:00

64 lines
1.9 KiB
Bash

#!/bin/sh
set -e
PREREQS=""
case $1 in
prereqs) echo "${PREREQS}"; exit 0;;
esac
. /usr/share/initramfs-tools/hook-functions
# Fetch the device parameters
for x in $(cat /proc/cmdline); do
case $x in
mobile.qcomsoc=*) QCOMSOC="${x#mobile.qcomsoc=}" ;;
mobile.model=*) MODEL="${x#mobile.model=}" ;;
esac
done
if [ "${QCOMSOC}" ] && [ "${MODEL}" ]; then
# Special case for the OnePlus 6 & 6T: both models use the same
# firmware folder: sdm845/oneplus6
if [ "${MODEL}" = "enchilada" ] || [ "${MODEL}" = "fajita" ]; then
MODEL="oneplus6"
fi
# Special case for the "fp4" (Fairphone 4): this model uses the
# "fairphone4" firmware folder
if [ "${MODEL}" = "fp4" ]; then
MODEL="fairphone4"
fi
# Special case for "bonito" (Pixel 3a XL): this model uses the "sargo" (Pixel 3a) firmware folders
if [ "${MODEL}" = "bonito" ]; then
MODEL="sargo"
fi
FW_LIST="${QCOMSOC}/${MODEL}/adsp.mbn \
${QCOMSOC}/${MODEL}/cdsp.mbn \
${QCOMSOC}/${MODEL}/ipa_fws.mbn"
FW_RADIO="ath10k/WCN3990/hw1.0/board-2.bin \
qca/${MODEL}/crnv21.bin \
qca/crbtfw21.tlv \
qca/crnv21.bin"
if [ "${QCOMSOC}" = "qcom/sdm845" ]; then
FW_LIST="${FW_LIST} \
${QCOMSOC}/${MODEL}/a630_zap.mbn"
elif [ "${QCOMSOC}" = "qcom/sm7225" ] || [ "${QCOMSOC}" = "qcom/sdm670" ]; then
FW_LIST="${FW_LIST} \
${QCOMSOC}/${MODEL}/a615_zap.mbn"
fi
FW_LIST="${FW_LIST} ${FW_RADIO}"
for fwfile in ${FW_LIST}; do
if [ -f "/lib/firmware/updates/${version?}/${fwfile}" ] ||
[ -f "/lib/firmware/updates/${fwfile}" ] ||
[ -f "/lib/firmware/${version}/${fwfile}" ] ||
[ -f "/lib/firmware/${fwfile}" ]; then
add_firmware "${fwfile}"
else
echo "I: Ignoring missing firmware ${fwfile}"
fi
done
fi