65 lines
1.9 KiB
Bash
65 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
|