@@ -16,6 +16,12 @@ DEPENDS += "pil-squasher-native"
1616
1717VENDOR_IMG_SPARSE ?= "1"
1818
19+ PACKAGES = + "${PN} -dsp-binaries"
20+ INSANE_SKIP :${PN} -dsp -binaries += "arch libdir file-rdeps textrel"
21+ FILES :${PN} -dsp -binaries = "${DSP_QCOM_BASE_PATH} "
22+ RDEPENDS :${PN} -dsp -binaries += "${PN} (= ${PV} )"
23+ RRECOMMENDS :${PN} += "${PN} -dsp-binaries"
24+
1925# extract the license file
2026do_extract () {
2127 head -n 280 ${UNPACKDIR} /extract -${VENDOR} -${FW_QCOM_NAME} . sh | tail -n +16 > ${S} /license . txt
@@ -27,14 +33,13 @@ do_extract() {
2733 ln -sr ${S} /vendor /${VENDOR} /${FW_QCOM_NAME} /proprietary /vendor . img ${B} /vendor . img
2834 fi
2935
30- # FIXME: also extract fastrpc shell
31- mkdir -p ${B} /firmware
32- debugfs ${B} /vendor . img -R 'ls -p /firmware' | \
33- grep '^/[0-9]*/100' | cut -d / -f6 > ${B} /firmware /fw . lst
34- debugfs ${B} /vendor . img -R 'ls -p /firmware' | \
35- grep '^/[0-9]*/100' | cut -d / -f6 | \
36- while read name ; do echo "dump /firmware/$name ${B} /firmware/$name" ; done | \
37- debugfs ${B} /vendor . img
36+ for path in firmware dsp /adsp dsp /cdsp dsp /sdsp lib /rfsa /adsp ; do
37+ mkdir -p ${B} /$path
38+ debugfs ${B} /vendor . img -R "ls -p /$path" | \
39+ grep '^/[0-9]*/100' | cut -d / -f6 | \
40+ while read name ; do echo "dump /$path/$name ${B} /$path/$name" ; done | \
41+ debugfs ${B} /vendor . img
42+ done
3843
3944 radio = "${S} /vendor/${VENDOR} /${FW_QCOM_NAME} /proprietary/radio.img"
4045 if [ -r "${radio} " ] ; then
@@ -75,11 +80,17 @@ do_install() {
7580 ls ${B} /firmware /a [0-9 ]*_gmu . bin && install -m 0644 ${B} /firmware /a [0-9 ]*_gmu . bin ${D}${FW_QCOM_PATH}
7681 ls ${B} /a [0-9 ]*. mbn && install -m 0644 ${B} /a [0-9 ]*. mbn ${D}${FW_QCOM_PATH}
7782
83+ ls ${B} /dsp /adsp /* && mkdir -p ${D}${DSP_QCOM_PATH} /dsp /adsp && install -m 0644 ${B} /dsp /adsp /* ${D}${DSP_QCOM_PATH} /dsp /adsp
84+ ls ${B} /dsp /cdsp /* && mkdir -p ${D}${DSP_QCOM_PATH} /dsp /cdsp && install -m 0644 ${B} /dsp /cdsp /* ${D}${DSP_QCOM_PATH} /dsp /cdsp
85+ ls ${B} /dsp /sdsp /* && mkdir -p ${D}${DSP_QCOM_PATH} /dsp /sdsp && install -m 0644 ${B} /dsp /sdsp /* ${D}${DSP_QCOM_PATH} /dsp /sdsp
86+ ls ${B} /lib /rfsa /adsp /* && mkdir -p ${D}${DSP_QCOM_PATH} /dsp /lib && install -m 0644 ${B} /lib /rfsa /adsp /* ${D}${DSP_QCOM_PATH} /dsp /lib
87+
7888 install -m 0644 license . txt ${D}${FW_QCOM_PATH}
7989
8090 # Remove duplicates
8191 rm -f ${D}${FW_QCOM_PATH} /a630_gmu . bin
8292 rm -f ${D}${FW_QCOM_PATH} /a650_gmu . bin
8393
8494 [ -z "${EXTRA_DEVICE_SUBDIR} " ] || ln -sr ${D}${FW_QCOM_PATH} ${D}${FW_QCOM_BASE_PATH} /${EXTRA_DEVICE_SUBDIR}
95+ [ -n "${EXTRA_DEVICE_SUBDIR} " -a -d ${D}${DSP_QCOM_PATH} ] && ln -sr ${D}${DSP_QCOM_PATH} ${D}${DSP_QCOM_BASE_PATH} /${EXTRA_DEVICE_SUBDIR} || true
8596}
0 commit comments