Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Several firmware-related fixes #589

Merged
merged 8 commits into from
Apr 30, 2024
4 changes: 4 additions & 0 deletions recipes-bsp/firmware-nexus/firmware-qcom-pixel.inc
Expand Up @@ -66,6 +66,10 @@ do_install() {

ls ${B}/firmware/*.jsn && install -m 0644 ${B}/firmware/*.jsn ${D}${FW_QCOM_PATH}

ls ${B}/firmware/bdwlan* && install -m 0644 ${B}/firmware/bdwlan* ${D}${FW_QCOM_PATH}
ls ${B}/firmware/mba.mbn && install -m 0644 ${B}/firmware/mba.mbn ${D}${FW_QCOM_PATH}
ls ${B}/firmware/wlanmdsp.mbn && install -m 0644 ${B}/firmware/wlanmdsp.mbn ${D}${FW_QCOM_PATH}

ls ${B}/firmware/a[0-9]*_gmu.bin && install -m 0644 ${B}/firmware/a[0-9]*_gmu.bin ${D}${FW_QCOM_PATH}
ls ${B}/a[0-9]*.mbn && install -m 0644 ${B}/a[0-9]*.mbn ${D}${FW_QCOM_PATH}

Expand Down
@@ -0,0 +1,34 @@
DESCRIPTION = "Qualcomm Firmware for Lenovo Yoga C630 laptop"

LICENSE = "CLOSED"

FW_QCOM_SUBDIR = "sdm850/LENOVO/81JL"
FW_QCOM_NAME = "lenovo-yoga-c630"
WOA_SUBDIR = "Lenovo/YogaC630"

SRC_URI = "\
${WOA_FW_URL}/qcdx850.cab;name=dx \
${WOA_FW_URL}/qcipa850.cab;name=ipa \
${WOA_FW_URL}/qcsubsys850.cab;name=dsp \
file://adspr.jsn \
file://adspua.jsn \
file://cdspr.jsn \
file://slpir.jsn \
file://slpius.jsn \
"

SRC_URI[dx.sha256sum] = "949f9fa256d036d829a1429451514c4f6aa3fcb228078a36a0bc4c6d569be3f9"
SRC_URI[ipa.sha256sum] = "544f0b2ff642846a2bf0754600be57ef8277c4ebd9dcf72b61cb3d1f463bfec8"
SRC_URI[dsp.sha256sum] = "23f8f1413ffdac6d6dfc7d0876f3cd5b840db70889d5f399e586e77ab91d89af"

SPLIT_FIRMWARE_PACKAGES = "\
linux-firmware-qcom-${FW_QCOM_NAME}-adreno \
linux-firmware-qcom-${FW_QCOM_NAME}-audio \
linux-firmware-qcom-${FW_QCOM_NAME}-compute \
linux-firmware-qcom-${FW_QCOM_NAME}-ipa \
linux-firmware-qcom-${FW_QCOM_NAME}-modem \
linux-firmware-qcom-${FW_QCOM_NAME}-sensors \
linux-firmware-qcom-${FW_QCOM_NAME}-venus \
"

require firmware-woa.inc
7 changes: 7 additions & 0 deletions recipes-bsp/firmware-woa/firmware-woa.inc
Expand Up @@ -3,6 +3,13 @@ require recipes-bsp/firmware/firmware-qcom.inc

WOA_FW_URL = "https://github.com/WOA-Project/Qualcomm-Reference-Drivers/raw/master/${WOA_SUBDIR}/${PV}"

FILES:linux-firmware-qcom-${FW_QCOM_NAME}-adreno += "${FW_QCOM_PATH}/qcdxkmsuc*.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-audio += "${FW_QCOM_PATH}/qcadsp*.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-compute += "${FW_QCOM_PATH}/qccdsp*.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-modem += "${FW_QCOM_PATH}/qcmpss*.mbn ${FW_QCOM_PATH}/qcdsp*.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-sensors += "${FW_QCOM_PATH}/qcslpi*.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-venus += "${FW_QCOM_PATH}/qcvss*.mbn"

do_compile:append() {
for file in ${WORKDIR}/*cab ; do
cabextract $file || exit 1
Expand Down
25 changes: 25 additions & 0 deletions recipes-bsp/firmware/firmware-qcom-sm8650-hdk.bb
@@ -0,0 +1,25 @@
# Specify location of the corresponding NON-HLOS.bin file by adding
# NHLOS_URI:pn-firmware-qcom-sm8450-hdk = "..." to local.conf. Use "file://"
# if the file is provided locally.

DESCRIPTION = "QCOM Firmware for SM8650 HDK board"

LICENSE = "CLOSED"

FW_QCOM_NAME = "sm8650"

FW_QCOM_LIST = "\
adsp.mbn adsp_dtb.mbn adspr.jsn adsps.jsn adspua.jsn battmgr.jsn \
cdsp.mbn cdsp_dtb.mbn cdspr.jsn \
ipa_fws.mbn \
"

require recipes-bsp/firmware/firmware-qcom.inc
require recipes-bsp/firmware/firmware-qcom-nhlos.inc
require recipes-bsp/firmware/firmware-qcom-adreno.inc

SPLIT_FIRMWARE_PACKAGES = "\
linux-firmware-qcom-${FW_QCOM_NAME}-audio \
linux-firmware-qcom-${FW_QCOM_NAME}-compute \
linux-firmware-qcom-${FW_QCOM_NAME}-ipa \
"
14 changes: 7 additions & 7 deletions recipes-bsp/firmware/firmware-qcom.inc
Expand Up @@ -20,20 +20,20 @@ RRECOMMENDS:${PN} += "${@ ' '.join(filter(lambda p: not p.endswith('-split'), d.

# Default settings for several split packages
FILES:${PN}-dspso += "${FW_QCOM_BASE_PATH}/*/*dspso.bin"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-adreno = "${FW_QCOM_PATH}/*_zap.mbn ${FW_QCOM_PATH}/qcdxkmsuc*.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-audio = "${FW_QCOM_PATH}/adsp.mbn ${FW_QCOM_PATH}/adsp*.jsn ${FW_QCOM_PATH}/battmgr*.jsn ${FW_QCOM_PATH}/qcadsp*.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-adreno = "${FW_QCOM_PATH}/*_zap.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-audio = "${FW_QCOM_PATH}/adsp.mbn ${FW_QCOM_PATH}/adsp*.jsn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-audio-split = "${FW_QCOM_PATH}/adsp.mdt ${FW_QCOM_PATH}/adsp.b*"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-compute = "${FW_QCOM_PATH}/cdsp.mbn ${FW_QCOM_PATH}/cdsp*.jsn ${FW_QCOM_PATH}/qccdsp*.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-compute = "${FW_QCOM_PATH}/cdsp.mbn ${FW_QCOM_PATH}/cdsp*.jsn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-compute-split = "${FW_QCOM_PATH}/cdsp.mdt ${FW_QCOM_PATH}/cdsp.b*"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-dsps = "${FW_QCOM_PATH}/dsps.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-gss = "${FW_QCOM_PATH}/gss.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-ipa = "${FW_QCOM_PATH}/ipa_fws.mbn ${FW_QCOM_PATH}/ipa_fws.elf"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-modem = "${FW_QCOM_PATH}/mba.mbn ${FW_QCOM_PATH}/modem.mbn ${FW_QCOM_PATH}/modem*.jsn ${FW_QCOM_PATH}/qcmpss*.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-ipa = "${FW_QCOM_PATH}/ipa_fws.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-modem = "${FW_QCOM_PATH}/mba.mbn ${FW_QCOM_PATH}/modem.mbn ${FW_QCOM_PATH}/modem*.jsn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-modem-split = "${FW_QCOM_PATH}/modem.mdt ${FW_QCOM_PATH}/modem.b*"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-q6 = "${FW_QCOM_PATH}/q6.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-sensors = "${FW_QCOM_PATH}/slpi.mbn ${FW_QCOM_PATH}/slpi*.jsn ${FW_QCOM_PATH}/qcslpi*.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-sensors = "${FW_QCOM_PATH}/slpi.mbn ${FW_QCOM_PATH}/slpi*.jsn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-sensors-split = "${FW_QCOM_PATH}/slpi.mdt ${FW_QCOM_PATH}/slpi.b*"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-venus = "${FW_QCOM_PATH}/venus.mbn ${FW_QCOM_PATH}/vidc* ${FW_QCOM_PATH}/qcvss*.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-venus = "${FW_QCOM_PATH}/venus.mbn ${FW_QCOM_PATH}/vidc*"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-wifi = "${FW_QCOM_PATH}/wcnss.mbn ${FW_QCOM_PATH}/wlanmdsp.mbn"
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-wifi-split = "${FW_QCOM_PATH}/wcnss.mdt ${FW_QCOM_PATH}/wcnss.b*"

Expand Down
@@ -0,0 +1,7 @@
DESCRIPTION = "Tiny ramdisk image with Lenovo Yoga C630 firmware files"

PACKAGE_INSTALL += " \
packagegroup-firmware-lenovo-yoga-c630 \
"

require initramfs-firmware-image.inc
10 changes: 10 additions & 0 deletions recipes-bsp/images/initramfs-firmware-sm8650-hdk-image.bb
@@ -0,0 +1,10 @@
DESCRIPTION = "Tiny ramdisk image with SM8650 HDK devices firmware files"

PACKAGE_INSTALL += " \
packagegroup-firmware-sm8650-hdk \
"

BAD_RECOMMENDATIONS = " \
"

require initramfs-firmware-image.inc
@@ -0,0 +1,16 @@
SUMMARY = "Firmware packages for the Lenogo Yoga C630 laptop"

inherit packagegroup

RRECOMMENDS:${PN} += " \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'linux-firmware-qcom-adreno-a630 linux-firmware-qcom-lenovo-yoga-c630-adreno', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'linux-firmware-qca', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'linux-firmware-ath10k', '', d)} \
firmware-qcom-lenovo-yoga-c630 \
linux-firmware-qcom-lenovo-yoga-c630-audio \
linux-firmware-qcom-lenovo-yoga-c630-compute \
linux-firmware-qcom-lenovo-yoga-c630-ipa \
linux-firmware-qcom-lenovo-yoga-c630-modem \
linux-firmware-qcom-lenovo-yoga-c630-sensors \
linux-firmware-qcom-lenovo-yoga-c630-venus \
"
Expand Up @@ -5,7 +5,7 @@ inherit packagegroup
RRECOMMENDS:${PN} += " \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'linux-firmware-qcom-adreno-a640 linux-firmware-qcom-sm8150-adreno', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'linux-firmware-qca', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'linux-firmware-ath11k', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'linux-firmware-ath10k', '', d)} \
firmware-qcom-sm8150-hdk \
linux-firmware-qcom-sm8150-audio \
linux-firmware-qcom-sm8150-compute \
Expand Down
Expand Up @@ -7,6 +7,7 @@ RRECOMMENDS:${PN} += " \
${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'linux-firmware-qca', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'linux-firmware-ath11k', '', d)} \
firmware-qcom-sm8350-hdk \
linux-firmware-lt9611uxc \
linux-firmware-qcom-sm8350-adreno \
linux-firmware-qcom-sm8350-audio \
linux-firmware-qcom-sm8350-compute \
Expand Down
Expand Up @@ -7,6 +7,7 @@ RRECOMMENDS:${PN} += " \
${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'linux-firmware-qca', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'linux-firmware-ath11k', '', d)} \
firmware-qcom-sm8450-hdk \
linux-firmware-lt9611uxc \
linux-firmware-qcom-sm8450-audio \
linux-firmware-qcom-sm8450-compute \
linux-firmware-qcom-sm8450-modem \
Expand Down
13 changes: 13 additions & 0 deletions recipes-bsp/packagegroups/packagegroup-firmware-sm8650-hdk.bb
@@ -0,0 +1,13 @@
SUMMARY = "Firmware packages for the SM8650-HDK board"

inherit packagegroup

RRECOMMENDS:${PN} += " \
${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'linux-firmware-qca', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'linux-firmware-ath12k', '', d)} \
firmware-qcom-sm8650-hdk \
linux-firmware-lt9611uxc \
linux-firmware-qcom-sm8650-audio \
linux-firmware-qcom-sm8650-compute \
linux-firmware-qcom-sm8650-ipa \
"
6 changes: 3 additions & 3 deletions recipes-devtools/pil-squasher/pil-squasher_git.bb
Expand Up @@ -3,11 +3,11 @@ HOMEPAGE = "https://github.com/andersson/pil-squasher.git"
SECTION = "devel"

LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://pil-squasher.c;beginline=1;endline=30;md5=632a4253d26470c9301255e9a3dc31a0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=aac743f09c3b727c9fa920ed48cc946d"

SRCREV = "e8573feaad506f5f41227d8abd905312426607c1"
SRCREV = "e25efba9b3abb16643262e9a9e3eb330c48cf9a5"
SRC_URI = " \
git://github.com/andersson/${BPN}.git;branch=master;protocol=https \
git://github.com/linux-msm/${BPN}.git;branch=master;protocol=https \
"

PV = "0.0+${SRCPV}"
Expand Down