Skip to content

Commit e3668ae

Browse files
authored
Improve firmware packaging (#890)
Simplify handling of board-specific firmware in preparation to handling tip versions of the firmware.
2 parents 11a1197 + f3c7425 commit e3668ae

10 files changed

+82
-79
lines changed

recipes-bsp/firmware-boot/firmware-qcom-boot-common.inc

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# Install NHLOS boot binaries in DEPLOY_DIR
22

3-
S = "${WORKDIR}/sources"
4-
UNPACKDIR = "${S}"
3+
S = "${UNPACKDIR}/${BOOTBINARIES}"
54

65
QCOM_BOOT_IMG_SUBDIR ?= ""
76

@@ -14,13 +13,13 @@ inherit deploy
1413

1514
do_deploy() {
1615
install -d ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR}
17-
find "${UNPACKDIR}/${BOOTBINARIES}" -maxdepth 1 -name 'gpt_*.bin' -delete
18-
find "${UNPACKDIR}/${BOOTBINARIES}" -maxdepth 1 -name 'zeros_*.bin' -delete
19-
find "${UNPACKDIR}/${BOOTBINARIES}" -maxdepth 1 -name '*.bin' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \;
20-
find "${UNPACKDIR}/${BOOTBINARIES}" -maxdepth 1 -name '*.elf' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \;
21-
find "${UNPACKDIR}/${BOOTBINARIES}" -maxdepth 1 -name '*.fv' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \;
22-
find "${UNPACKDIR}/${BOOTBINARIES}" -maxdepth 1 -name '*.mbn' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \;
23-
find "${UNPACKDIR}/${BOOTBINARIES}" -maxdepth 1 -name '*.melf' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \;
16+
find "${S}" -maxdepth 1 -name 'gpt_*.bin' -delete
17+
find "${S}" -maxdepth 1 -name 'zeros_*.bin' -delete
18+
find "${S}" -maxdepth 1 -name '*.bin' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \;
19+
find "${S}" -maxdepth 1 -name '*.elf' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \;
20+
find "${S}" -maxdepth 1 -name '*.fv' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \;
21+
find "${S}" -maxdepth 1 -name '*.mbn' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \;
22+
find "${S}" -maxdepth 1 -name '*.melf' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \;
2423

2524
find "${UNPACKDIR}" -name 'cdt*bin' -exec install -m 0644 {} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR} \;
2625
}

recipes-bsp/firmware-boot/firmware-qcom-boot-dragonboard410c-sdcard_17.09.bb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ SRC_URI = "https://releases.linaro.org/96boards/dragonboard410c/linaro/rescue/17
77
SRC_URI[md5sum] = "e15da2a623442d66587aea506599fb69"
88
SRC_URI[sha256sum] = "9885f915ebd4986432340cf1d03b8fd2bfdd97ad6a4a7466200fddbe41cdcf5c"
99

10-
BOOTBINARIES = ""
10+
BOOTBINARIES = "."
1111

1212
QCOM_BOOT_IMG_SUBDIR = "dragonboard410c"
1313

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
DESCRIPTION = "QCOM NHLOS Firmware for Qualcomm Robotics RB3Gen2 platform"
2+
LICENSE = "Proprietary"
3+
LIC_FILES_CHKSUM = "file://Qualcomm-Technologies-Inc.-Proprietary;md5=58d50a3d36f27f1a1e6089308a49b403"
4+
5+
FW_ARTIFACTORY = "softwarecenter.qualcomm.com/download/software/chip/qualcomm_linux-spf-1-0/qualcomm-linux-spf-1-0_test_device_public"
6+
FW_BUILD_ID = "r1.0_${PV}/qcm6490-le-1-0"
7+
FW_BIN_PATH = "common/build/ufs/bin"
8+
BOOTBINARIES = "QCM6490_bootbinaries"
9+
10+
SRC_URI = " \
11+
https://${FW_ARTIFACTORY}/${FW_BUILD_ID}/${FW_BIN_PATH}/${BOOTBINARIES}.zip;downloadfilename=${BOOTBINARIES}_r1.0_${PV}.zip;name=bootbinaries \
12+
https://artifacts.codelinaro.org/artifactory/codelinaro-le/Qualcomm_Linux/QCS6490/cdt/rb3gen2-core-kit.zip;downloadfilename=cdt-rb3gen2-core-kit_${PV}.zip;name=rb3gen2-core-kit \
13+
"
14+
SRC_URI[rb3gen2-core-kit.sha256sum] = "0fe1c0b4050cf54203203812b2c1f0d9698823d8defc8b6516414a4e5e0c557e"
15+
16+
QCOM_BOOT_IMG_SUBDIR = "qcm6490"
17+
18+
include firmware-qcom-boot-common.inc
Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
1-
DESCRIPTION = "QCOM NHLOS Firmware for Qualcomm Robotics RB3Gen2 platform"
2-
LICENSE = "Proprietary"
3-
LIC_FILES_CHKSUM = "file://${UNPACKDIR}/${BOOTBINARIES}/Qualcomm-Technologies-Inc.-Proprietary;md5=58d50a3d36f27f1a1e6089308a49b403"
1+
require recipes-bsp/firmware-boot/firmware-qcom-boot-qcs6490.inc
42

5-
FW_ARTIFACTORY = "softwarecenter.qualcomm.com/download/software/chip/qualcomm_linux-spf-1-0/qualcomm-linux-spf-1-0_test_device_public"
6-
FW_BUILD_ID = "r1.0_${PV}/qcm6490-le-1-0"
7-
FW_BIN_PATH = "common/build/ufs/bin"
8-
BOOTBINARIES = "QCM6490_bootbinaries"
9-
10-
SRC_URI = " \
11-
https://${FW_ARTIFACTORY}/${FW_BUILD_ID}/${FW_BIN_PATH}/${BOOTBINARIES}.zip;downloadfilename=${BOOTBINARIES}_r1.0_${PV}.zip;name=bootbinaries \
12-
https://artifacts.codelinaro.org/artifactory/codelinaro-le/Qualcomm_Linux/QCS6490/cdt/rb3gen2-core-kit.zip;downloadfilename=cdt-rb3gen2-core-kit_${PV}.zip;name=rb3gen2-core-kit \
13-
"
143
SRC_URI[bootbinaries.sha256sum] = "38e6f424e02a8f99b9edf953e9d62b02489cb936426c58c48daf399ec6d5b60c"
15-
SRC_URI[rb3gen2-core-kit.sha256sum] = "0fe1c0b4050cf54203203812b2c1f0d9698823d8defc8b6516414a4e5e0c557e"
16-
17-
QCOM_BOOT_IMG_SUBDIR = "qcm6490"
18-
19-
include firmware-qcom-boot-common.inc
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
DESCRIPTION = "QCOM NHLOS Firmware for Qualcomm QCS8300 platform"
2+
LICENSE = "Proprietary"
3+
LIC_FILES_CHKSUM = "file://Qualcomm-Technologies-Inc.-Proprietary;md5=58d50a3d36f27f1a1e6089308a49b403"
4+
5+
FW_ARTIFACTORY = "softwarecenter.qualcomm.com/download/software/chip/qualcomm_linux-spf-1-0/qualcomm-linux-spf-1-0_test_device_public"
6+
FW_BUILD_ID = "r1.0_${PV}/qcs8300-le-1-0"
7+
FW_BIN_PATH = "common/build/ufs/bin"
8+
BOOTBINARIES = "QCS8300_bootbinaries"
9+
10+
SRC_URI = " \
11+
https://${FW_ARTIFACTORY}/${FW_BUILD_ID}/${FW_BIN_PATH}/${BOOTBINARIES}.zip;downloadfilename=${BOOTBINARIES}_r1.0_${PV}.zip;name=bootbinaries \
12+
https://artifacts.codelinaro.org/artifactory/codelinaro-le/Qualcomm_Linux/QCS8300/cdt/ride-sx.zip;downloadfilename=cdt-qcs8300-ride-sx_${PV}.zip;name=qcs8300-ride-sx \
13+
"
14+
SRC_URI[qcs8300-ride-sx.sha256sum] = "d7fc667372b28383a36d586333097d84b9d9c104f4dd1845d33904e2d6b39f80"
15+
16+
QCOM_BOOT_IMG_SUBDIR = "qcs8300"
17+
18+
include firmware-qcom-boot-common.inc
Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
1-
DESCRIPTION = "QCOM NHLOS Firmware for Qualcomm QCS8300 platform"
2-
LICENSE = "Proprietary"
3-
LIC_FILES_CHKSUM = "file://${UNPACKDIR}/${BOOTBINARIES}/Qualcomm-Technologies-Inc.-Proprietary;md5=58d50a3d36f27f1a1e6089308a49b403"
1+
require firmware-qcom-boot-qcs8300.inc
42

5-
FW_ARTIFACTORY = "softwarecenter.qualcomm.com/download/software/chip/qualcomm_linux-spf-1-0/qualcomm-linux-spf-1-0_test_device_public"
6-
FW_BUILD_ID = "r1.0_${PV}/qcs8300-le-1-0"
7-
FW_BIN_PATH = "common/build/ufs/bin"
8-
BOOTBINARIES = "QCS8300_bootbinaries"
9-
10-
SRC_URI = " \
11-
https://${FW_ARTIFACTORY}/${FW_BUILD_ID}/${FW_BIN_PATH}/${BOOTBINARIES}.zip;downloadfilename=${BOOTBINARIES}_r1.0_${PV}.zip;name=bootbinaries \
12-
https://artifacts.codelinaro.org/artifactory/codelinaro-le/Qualcomm_Linux/QCS8300/cdt/ride-sx.zip;downloadfilename=cdt-qcs8300-ride-sx_${PV}.zip;name=qcs8300-ride-sx \
13-
"
143
SRC_URI[bootbinaries.sha256sum] = "826599d4ef60337f38de935f3049134489e3f703b874dd592996b013f8e9e40a"
15-
SRC_URI[qcs8300-ride-sx.sha256sum] = "d7fc667372b28383a36d586333097d84b9d9c104f4dd1845d33904e2d6b39f80"
16-
17-
QCOM_BOOT_IMG_SUBDIR = "qcs8300"
18-
19-
include firmware-qcom-boot-common.inc
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
DESCRIPTION = "QCOM NHLOS Firmware for Qualcomm QCS9100 platform"
2+
LICENSE = "Proprietary"
3+
LIC_FILES_CHKSUM = "file://Qualcomm-Technologies-Inc.-Proprietary;md5=58d50a3d36f27f1a1e6089308a49b403"
4+
5+
FW_ARTIFACTORY = "softwarecenter.qualcomm.com/download/software/chip/qualcomm_linux-spf-1-0/qualcomm-linux-spf-1-0_test_device_public"
6+
FW_BUILD_ID = "r1.0_${PV}/qcs9100-le-1-0"
7+
FW_BIN_PATH = "common/build/ufs/bin"
8+
BOOTBINARIES = "QCS9100_bootbinaries"
9+
10+
SRC_URI = " \
11+
https://${FW_ARTIFACTORY}/${FW_BUILD_ID}/${FW_BIN_PATH}/${BOOTBINARIES}.zip;downloadfilename=${BOOTBINARIES}_r1.0_${PV}.zip;name=bootbinaries \
12+
https://artifacts.codelinaro.org/artifactory/codelinaro-le/Qualcomm_Linux/QCS9100/cdt/ride-sx_v3.zip;downloadfilename=cdt-qcs9100-ride-sx-v3_${PV}.zip;name=qcs9100-ride-sx \
13+
https://artifacts.codelinaro.org/artifactory/codelinaro-le/Qualcomm_Linux/QCS9100/cdt/rb8_core_kit.zip;downloadfilename=cdt-qcs9100-rb8-core-kit_${PV}.zip;name=qcs9100-rb8-ck \
14+
"
15+
SRC_URI[qcs9100-rb8-ck.sha256sum] = "a252244f800d7c9e15883e12935af4113f9f2ecba6490e46cd9b943169f15bfa"
16+
SRC_URI[qcs9100-ride-sx.sha256sum] = "377a8405899ac82199deaf70bca3648c15b924a3fcef8f109555e661ed70f4b9"
17+
18+
QCOM_BOOT_IMG_SUBDIR = "qcs9100"
19+
20+
include firmware-qcom-boot-common.inc
21+
22+
do_deploy:append() {
23+
if [ -d "${UNPACKDIR}/${BOOTBINARIES}/sail_nor" ]; then
24+
SAIL_FILES="gpt_backup0.bin gpt_main0.bin prog_firehose_ddr.elf patch0.xml rawprogram0.xml sailfreertos.elf"
25+
26+
install -d ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR}/sail_nor
27+
for sail_file in ${SAIL_FILES}; do
28+
install -m 0644 ${UNPACKDIR}/${BOOTBINARIES}/sail_nor/${sail_file} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR}/sail_nor
29+
done
30+
fi
31+
}
Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,3 @@
1-
DESCRIPTION = "QCOM NHLOS Firmware for Qualcomm QCS9100 platform"
2-
LICENSE = "Proprietary"
3-
LIC_FILES_CHKSUM = "file://${UNPACKDIR}/${BOOTBINARIES}/Qualcomm-Technologies-Inc.-Proprietary;md5=58d50a3d36f27f1a1e6089308a49b403"
1+
require firmware-qcom-boot-qcs9100.inc
42

5-
FW_ARTIFACTORY = "softwarecenter.qualcomm.com/download/software/chip/qualcomm_linux-spf-1-0/qualcomm-linux-spf-1-0_test_device_public"
6-
FW_BUILD_ID = "r1.0_${PV}/qcs9100-le-1-0"
7-
FW_BIN_PATH = "common/build/ufs/bin"
8-
BOOTBINARIES = "QCS9100_bootbinaries"
9-
10-
SRC_URI = " \
11-
https://${FW_ARTIFACTORY}/${FW_BUILD_ID}/${FW_BIN_PATH}/${BOOTBINARIES}.zip;downloadfilename=${BOOTBINARIES}_r1.0_${PV}.zip;name=bootbinaries \
12-
https://artifacts.codelinaro.org/artifactory/codelinaro-le/Qualcomm_Linux/QCS9100/cdt/ride-sx_v3.zip;downloadfilename=cdt-qcs9100-ride-sx-v3_${PV}.zip;name=qcs9100-ride-sx \
13-
https://artifacts.codelinaro.org/artifactory/codelinaro-le/Qualcomm_Linux/QCS9100/cdt/rb8_core_kit.zip;downloadfilename=cdt-qcs9100-rb8-core-kit_${PV}.zip;name=qcs9100-rb8-ck \
14-
"
153
SRC_URI[bootbinaries.sha256sum] = "c8042ef4668761f75021886b931d678339ca9cbab936a20f951a6ba747a77303"
16-
SRC_URI[qcs9100-rb8-ck.sha256sum] = "a252244f800d7c9e15883e12935af4113f9f2ecba6490e46cd9b943169f15bfa"
17-
SRC_URI[qcs9100-ride-sx.sha256sum] = "377a8405899ac82199deaf70bca3648c15b924a3fcef8f109555e661ed70f4b9"
18-
19-
QCOM_BOOT_IMG_SUBDIR = "qcs9100"
20-
21-
include firmware-qcom-boot-common.inc
22-
23-
do_deploy:append() {
24-
if [ -d "${UNPACKDIR}/${BOOTBINARIES}/sail_nor" ]; then
25-
SAIL_FILES="gpt_backup0.bin gpt_main0.bin prog_firehose_ddr.elf patch0.xml rawprogram0.xml sailfreertos.elf"
26-
27-
install -d ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR}/sail_nor
28-
for sail_file in ${SAIL_FILES}; do
29-
install -m 0644 ${UNPACKDIR}/${BOOTBINARIES}/sail_nor/${sail_file} ${DEPLOYDIR}/${QCOM_BOOT_IMG_SUBDIR}/sail_nor
30-
done
31-
fi
32-
}

recipes-bsp/firmware-boot/firmware-qcom-boot-qrb2210-rb1_23.12.bb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
SUMMARY = "Prebuilt bootlader images for Qualcomm RB1"
22

33
LICENSE = "Proprietary"
4-
LIC_FILES_CHKSUM = "file://${UNPACKDIR}/${BOOTBINARIES}/LICENSE;md5=cbbe399f2c983ad51768f4561587f000"
4+
LIC_FILES_CHKSUM = "file://LICENSE;md5=cbbe399f2c983ad51768f4561587f000"
55

66
SRC_URI = "https://releases.linaro.org/96boards/rb1/linaro/rescue/23.12/rb1-bootloader-emmc-linux-47528.zip"
77
SRC_URI[sha256sum] = "c75b6c63eb24c8ca36dad08ba4d4e93f3f4cd7dce60cf1b6dfb5790dc181cc3d"

recipes-bsp/firmware/firmware-qcom.inc

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ FW_QCOM_SUBDIR ?= "${FW_QCOM_NAME}"
1212
FW_QCOM_BASE_PATH = "${nonarch_base_libdir}/firmware/qcom"
1313
FW_QCOM_PATH = "${FW_QCOM_BASE_PATH}/${FW_QCOM_SUBDIR}"
1414

15-
DSP_QCOM_BASE_PATH = "${datadir}/qcom"
16-
DSP_QCOM_PATH = "${DSP_QCOM_BASE_PATH}/${FW_QCOM_SUBDIR}"
17-
1815
SPLIT_FIRMWARE_PACKAGES ?= ""
1916

2017
PACKAGE_BEFORE_PN += "${SPLIT_FIRMWARE_PACKAGES}"
@@ -25,9 +22,10 @@ RRECOMMENDS:${PN} += "${@ ' '.join(filter(lambda p: not p.endswith('-split'), d.
2522
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-adreno = "${FW_QCOM_PATH}/*_zap.mbn"
2623
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-audio = "${FW_QCOM_PATH}/adsp.mbn ${FW_QCOM_PATH}/adsp_dtb.mbn ${FW_QCOM_PATH}/adsp*.jsn ${FW_QCOM_PATH}/battmgr.jsn"
2724
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-audio-split = "${FW_QCOM_PATH}/adsp.mdt ${FW_QCOM_PATH}/adsp.b*"
28-
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-compute = "${FW_QCOM_PATH}/cdsp.mbn ${FW_QCOM_PATH}/cdsp_dtb.mbn ${FW_QCOM_PATH}/cdsp*.jsn"
25+
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-compute = "${FW_QCOM_PATH}/cdsp*.mbn ${FW_QCOM_PATH}/cdsp_dtb.mbn ${FW_QCOM_PATH}/cdsp*.jsn"
2926
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-compute-split = "${FW_QCOM_PATH}/cdsp.mdt ${FW_QCOM_PATH}/cdsp.b*"
3027
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-dsps = "${FW_QCOM_PATH}/dsps.mbn"
28+
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-generalpurpose = "${FW_QCOM_PATH}/gpdsp*.mbn"
3129
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-gss = "${FW_QCOM_PATH}/gss.mbn"
3230
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-ipa = "${FW_QCOM_PATH}/ipa_fws.mbn ${FW_QCOM_PATH}/ipa_fws.elf"
3331
FILES:linux-firmware-qcom-${FW_QCOM_NAME}-modem = "${FW_QCOM_PATH}/mba.mbn ${FW_QCOM_PATH}/modem.mbn ${FW_QCOM_PATH}/modem*.jsn"

0 commit comments

Comments
 (0)