#!/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