aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Dechesne <ndechesne@users.noreply.github.com>2021-01-28 09:13:55 +0100
committerGitHub <noreply@github.com>2021-01-28 09:13:55 +0100
commitd97a0bc715b78d6c590bb0d52a0ae53b1aab9fb2 (patch)
treea4818be60583a9a36427f0a73320feba798410a6
parent4412d5c7f6b9557edd67da5765e766c54a1e9ba1 (diff)
parentd5329207835429ae989c95a7a71097e2d94c6e42 (diff)
downloadmeta-qcom-d97a0bc715b78d6c590bb0d52a0ae53b1aab9fb2.tar.gz
meta-qcom-d97a0bc715b78d6c590bb0d52a0ae53b1aab9fb2.tar.bz2
meta-qcom-d97a0bc715b78d6c590bb0d52a0ae53b1aab9fb2.zip
Merge pull request #254 from lumag/dunfell-rb5-backport
Backport RB5 firmware update to Dunfell branch
-rw-r--r--recipes-bsp/firmware/files/lib-firmware-modem.service19
-rw-r--r--recipes-bsp/firmware/files/lib-firmware-system.service21
-rw-r--r--recipes-bsp/firmware/firmware-qcom-rb5_1.0.bb117
-rw-r--r--recipes-bsp/firmware/firmware-qcom-rb5_20210118133815-v2.bb57
-rw-r--r--recipes-kernel/linux/linux-linaro-qcomlt_5.10.bb2
5 files changed, 58 insertions, 158 deletions
diff --git a/recipes-bsp/firmware/files/lib-firmware-modem.service b/recipes-bsp/firmware/files/lib-firmware-modem.service
deleted file mode 100644
index 9962a0d..0000000
--- a/recipes-bsp/firmware/files/lib-firmware-modem.service
+++ /dev/null
@@ -1,19 +0,0 @@
-[Unit]
-Description=Mount partition with preflashed firmware ('modem_a')
-ConditionPathExists=/lib/firmware/modem
-Before=systemd-udevd-control.socket
-After=local-fs-pre.target
-Before=local-fs.target
-Before=umount.target
-Conflicts=umount.target
-DefaultDependencies=no
-
-[Install]
-WantedBy=local-fs.target
-
-[Service]
-Type=oneshot
-RemainAfterExit=true
-# sde4 = modem_a
-ExecStart=mount -t vfat -o ro /dev/sde4 /lib/firmware/modem
-ExecStop=umount /lib/firmware/modem
diff --git a/recipes-bsp/firmware/files/lib-firmware-system.service b/recipes-bsp/firmware/files/lib-firmware-system.service
deleted file mode 100644
index c4b4e2a..0000000
--- a/recipes-bsp/firmware/files/lib-firmware-system.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=Mount partition with system root for for firmware files ('system_a')
-ConditionPathExists=/lib/firmware/system
-Before=systemd-udevd-control.socket
-After=local-fs-pre.target
-Before=local-fs.target
-Before=umount.target
-Conflicts=umount.target
-DefaultDependencies=no
-
-[Install]
-WantedBy=local-fs.target
-
-[Service]
-Type=oneshot
-RemainAfterExit=true
-# sda7:
-# - system_b with older partition scheme
-# - single system with newer partition cheme
-ExecStart=mount -t ext4 -o ro /dev/sda7 /lib/firmware/system
-ExecStop=umount /lib/firmware/system
diff --git a/recipes-bsp/firmware/firmware-qcom-rb5_1.0.bb b/recipes-bsp/firmware/firmware-qcom-rb5_1.0.bb
deleted file mode 100644
index b914420..0000000
--- a/recipes-bsp/firmware/firmware-qcom-rb5_1.0.bb
+++ /dev/null
@@ -1,117 +0,0 @@
-# Provide base URI of NHLOS_Binaries.zip and adreno_1.0_qrb5165_rb5.tar.gz
-# files. Use "file://" if those files are copied into
-# recipes-bsp/firmware/files/ directory.
-# NHLOS_URI ?= "file://"
-# ADRENO_URI ?= "file://"
-
-DESCRIPTION = "QCOM Firmware for Qualcomm Robotics RB5 platform"
-
-LICENSE = "Proprietary"
-
-# There is no license file in the archive
-#LIC_FILES_CHKSUM = "file://license.txt;md5="
-ERROR_QA_remove = "license-checksum"
-
-NHLOS_ARCHIVE = "NHLOS_Binaries.zip"
-ADRENO_ARCHIVE = "adreno_1.0_qrb5165_rb5.tar.gz"
-
-SRC_URI_NHLOS = "${NHLOS_URI}${NHLOS_ARCHIVE}"
-SRC_URI_ADRENO = "${ADRENO_URI}${ADRENO_ARCHIVE};unpack=0"
-
-COMPATIBLE_MACHINE = "(sm8250)"
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-# do_unpack is written in Python, so let's use do_compile here
-do_compile() {
- if [ -r ${WORKDIR}/${ADRENO_ARCHIVE} ] ; then
- tar xzf ${WORKDIR}/${ADRENO_ARCHIVE} .//lib/firmware
- fi
-}
-
-do_install() {
- if [ -n "${ADRENO_URI}" ] ; then
- install -d ${D}${nonarch_base_libdir}/firmware/qcom
- install -m 0444 ./lib/firmware/a650_*.* ${D}${nonarch_base_libdir}/firmware/qcom
- else
- install -d ${D}${nonarch_base_libdir}/firmware/qcom
- install -d ${D}${nonarch_base_libdir}/firmware/system
-
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/lib-firmware-system.service ${D}${systemd_system_unitdir}
-
- # Symlink firmware to proper paths.
- for img in a650_gmu.bin a650_sqe.fw a650_zap.mdt a650_zap.elf a650_zap.b00 a650_zap.b01 a650_zap.b02
- do
- ln -s ../system/lib/firmware/${img} ${D}${nonarch_base_libdir}/firmware/qcom
- done
- fi
-
- if [ -n "${NHLOS_URI}" ] ; then
- cd ${WORKDIR}/NHLOS_Binaries
- install -d ${D}${nonarch_base_libdir}/firmware/qcom/sm8250
- install -m 0444 adsp.b* adsp.mdt adspr.jsn adspua.jsn ${D}${nonarch_base_libdir}/firmware/qcom/sm8250
- install -m 0444 cdsp.b* cdsp.mdt cdspr.jsn ${D}${nonarch_base_libdir}/firmware/qcom/sm8250
- install -m 0444 slpi.b* slpi.mdt ${D}${nonarch_base_libdir}/firmware/qcom/sm8250
- install -m 0444 venus.b* venus.mdt ${D}${nonarch_base_libdir}/firmware/qcom/sm8250
-
- install -d ${D}${nonarch_base_libdir}/firmware/ath11k/QCA6390/hw2.0/
- install -m 0444 bdwlan.e04 ${D}${nonarch_base_libdir}/firmware/ath11k/QCA6390/hw2.0/board.bin
-
- install -m 0444 verinfo/Ver_Info.txt ${D}${nonarch_base_libdir}/firmware/qcom/sm8250
- cd ..
- else
- install -d ${D}${nonarch_base_libdir}/firmware/qcom/sm8250
- install -d ${D}${nonarch_base_libdir}/firmware/modem
-
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/lib-firmware-modem.service ${D}${systemd_system_unitdir}
-
- # Unfortunately Qualcomm firmware partition uses different layout there, so we have to symlink firmware to proper paths.
- # Bettere be safe than sorry. Install more links that are actually present there in case firmware is changed.
- for base in adsp cdsp slpi venus
- do
- for idx in $(seq 0 20)
- do
- ln -s ../../modem/image/$base.b`printf %02d $idx` ${D}${nonarch_base_libdir}/firmware/qcom/sm8250
- done
- ln -s ../../modem/image/${base}.mdt ${D}${nonarch_base_libdir}/firmware/qcom/sm8250
- done
- for img in adspr adspua cdspr
- do
- ln -s ../../modem/image/${img}.jsn ${D}${nonarch_base_libdir}/firmware/qcom/sm8250
- done
-
- install -d ${D}${nonarch_base_libdir}/firmware/ath11k/QCA6390/hw2.0/
- ln -s ../../../modem/image/bdwlan.e04 ${D}${nonarch_base_libdir}/firmware/ath11k/QCA6390/hw2.0/board.bin
- fi
-}
-
-inherit systemd
-
-FILES_${PN} += "${nonarch_base_libdir}/firmware/"
-INSANE_SKIP_${PN} += "arch"
-INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
-INHIBIT_PACKAGE_STRIP = "1"
-INHIBIT_DEFAULT_DEPS = "1"
-
-# We list firmware-qcom-rb5 in RRECOMMENDS, so we can not skip the recipe here
-# If firmware files are not provided, do not download/package anything
-python () {
- if d.getVar("NHLOS_URI") == "" and d.getVar("ADRENO_URI") == "":
- bb.warn("Not packaging RB5 firmware. Please update HNLOS_URI and ADRENO_URI")
-
- uri = d.getVar("NHLOS_URI")
- if uri != None and uri != "":
- d.appendVar("SRC_URI", " ${SRC_URI_NHLOS}")
- d.appendVarFlag('do_unpack', 'depends', ' unzip-native:do_populate_sysroot')
- else:
- d.appendVar("SRC_URI", " file://lib-firmware-modem.service")
- d.appendVar("SYSTEMD_SERVICE_" + d.getVar("PN"), " lib-firmware-modem.service")
-
- uri = d.getVar("ADRENO_URI")
- if uri != None and uri != "":
- d.appendVar("SRC_URI", " ${SRC_URI_ADRENO}")
- else:
- d.appendVar("SRC_URI", " file://lib-firmware-system.service")
- d.appendVar("SYSTEMD_SERVICE_" + d.getVar("PN"), " lib-firmware-system.service")
-}
diff --git a/recipes-bsp/firmware/firmware-qcom-rb5_20210118133815-v2.bb b/recipes-bsp/firmware/firmware-qcom-rb5_20210118133815-v2.bb
new file mode 100644
index 0000000..fbd7f4f
--- /dev/null
+++ b/recipes-bsp/firmware/firmware-qcom-rb5_20210118133815-v2.bb
@@ -0,0 +1,57 @@
+# Provide base URI of NHLOS_Binaries.zip and adreno_1.0_qrb5165_rb5.tar.gz
+# files. Use "file://" if those files are copied into
+# recipes-bsp/firmware/files/ directory.
+# NHLOS_URI ?= "file://"
+# ADRENO_URI ?= "file://"
+
+DESCRIPTION = "QCOM Firmware for Qualcomm Robotics RB5 platform"
+
+LICENSE = "Proprietary"
+LIC_FILES_CHKSUM = "file://LICENSE.qcom.txt;md5=cbbe399f2c983ad51768f4561587f000"
+
+SRC_URI = " \
+ http://releases.linaro.org/96boards/rb5/qualcomm/firmware/RB5_firmware_${PV}.zip;subdir=${BP} \
+"
+SRC_URI[md5sum] = "d9289f59fe4f93ce433707294c9286ca"
+SRC_URI[sha256sum] = "9d7b42916d83c8f721258175b8d7a9ed758ebe02228d36099e6ea1a2b2a556d3"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+VENUS_FW = "vpu-1.0"
+
+do_install() {
+ install -d ${D}${nonarch_base_libdir}/firmware/qcom/sm8250
+
+ install -m 0444 ./18-adreno-fw/a650_gmu.bin ${D}${nonarch_base_libdir}/firmware/qcom
+ install -m 0444 ./18-adreno-fw/a650_sqe.fw ${D}${nonarch_base_libdir}/firmware/qcom
+ install -m 0444 ./18-adreno-fw/a650_zap.elf ${D}${nonarch_base_libdir}/firmware/qcom/sm8250/a650_zap.mbn
+
+ install -m 0444 ./20-adsp_split/adsp.mbn ${D}${nonarch_base_libdir}/firmware/qcom/sm8250/
+ install -m 0444 ./21-cdsp_split/cdsp.mbn ${D}${nonarch_base_libdir}/firmware/qcom/sm8250/
+ install -m 0444 ./30-slpi_split/slpi.mbn ${D}${nonarch_base_libdir}/firmware/qcom/sm8250/
+
+ install -m 0444 ./39-jsn/*.jsn ${D}${nonarch_base_libdir}/firmware/qcom/sm8250/
+
+ install -d ${D}${nonarch_base_libdir}/firmware/qcom/${VENUS_FW}
+ install -m 0444 ./33-venus_split/venus.b* ./33-venus_split/venus.mdt ${D}${nonarch_base_libdir}/firmware/qcom/${VENUS_FW}
+
+ install -d ${D}${nonarch_base_libdir}/firmware/ath11k/QCA6390/hw2.0/
+ install -m 0444 ./38-bdwlan_split/bdwlan.e04 ${D}${nonarch_base_libdir}/firmware/ath11k/QCA6390/hw2.0/board.bin
+
+ install -d ${D}${sysconfdir}/
+ install -m 0644 LICENSE.qcom.txt ${D}${sysconfdir}/QCOM-LINUX-BOARD-SUPPORT-LICENSE-${PN}
+}
+
+FILES_${PN} += "${nonarch_base_libdir}/firmware/"
+INSANE_SKIP_${PN} += "arch"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_DEFAULT_DEPS = "1"
+
+RPROVIDES_${PN} += "linux-firmware-qcom-adreno-a650"
+RREPLACES_${PN} += "linux-firmware-qcom-adreno-a650"
+RCONFLICTS_${PN} += "linux-firmware-qcom-adreno-a650"
+
+RPROVIDES_${PN} += "linux-firmware-qcom-${VENUS_FW}"
+RREPLACES_${PN} += "linux-firmware-qcom-${VENUS_FW}"
+RCONFLICTS_${PN} += "linux-firmware-qcom-${VENUS_FW}"
diff --git a/recipes-kernel/linux/linux-linaro-qcomlt_5.10.bb b/recipes-kernel/linux/linux-linaro-qcomlt_5.10.bb
index 23e162e..0c4cdc1 100644
--- a/recipes-kernel/linux/linux-linaro-qcomlt_5.10.bb
+++ b/recipes-kernel/linux/linux-linaro-qcomlt_5.10.bb
@@ -10,6 +10,6 @@ require recipes-kernel/linux/linux-qcom-bootimg.inc
LOCALVERSION ?= "-linaro-lt-qcom"
SRCBRANCH = "release/qcomlt-5.10"
-SRCREV = "a58febc453b5bcbf154d3ceb3b6769956d90110b"
+SRCREV = "3f30f43cd449a911c7f304078aa8464ec5eb0903"
COMPATIBLE_MACHINE = "(apq8016|apq8096|sdm845|sm8250)"