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
 | 
