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