diff options
8 files changed, 55 insertions, 44 deletions
diff --git a/conf/machine/dragonboard-410c.conf b/conf/machine/dragonboard-410c.conf index ffb5a21..6ecfc60 100644 --- a/conf/machine/dragonboard-410c.conf +++ b/conf/machine/dragonboard-410c.conf @@ -14,9 +14,10 @@ SERIAL_CONSOLE ?= "115200 ttyMSM0" MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ kernel-modules \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-msm', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'linux-firmware-qcom-adreno-a3xx mesa-driver-msm', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5-noinst-tools', '', d)} \ firmware-qcom-dragonboard410c \ + linux-firmware-qcom-venus-1.8 \ " QCOM_BOOTIMG_ROOTFS ?= "mmcblk0p14" diff --git a/conf/machine/dragonboard-820c.conf b/conf/machine/dragonboard-820c.conf index 8e3670e..347d2e1 100644 --- a/conf/machine/dragonboard-820c.conf +++ b/conf/machine/dragonboard-820c.conf @@ -14,8 +14,9 @@ SERIAL_CONSOLE ?= "115200 ttyMSM0" MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ firmware-qcom-dragonboard820c \ kernel-modules \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-msm', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'linux-firmware-qcom-adreno-a530 mesa-driver-msm', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'linux-firmware-ath10k', '', d)} \ + linux-firmware-qcom-venus-4.2 \ " QCOM_BOOTIMG_ROOTFS ?= "sda1" diff --git a/conf/machine/dragonboard-845c.conf b/conf/machine/dragonboard-845c.conf index 9effb74..b9dde33 100644 --- a/conf/machine/dragonboard-845c.conf +++ b/conf/machine/dragonboard-845c.conf @@ -14,8 +14,11 @@ SERIAL_CONSOLE ?= "115200 ttyMSM0" MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ firmware-qcom-dragonboard845c \ kernel-modules \ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'linux-firmware-qca', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-msm', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'linux-firmware-ath10k linux-firmware-qcom-sdm845-modem', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'linux-firmware-qca linux-firmware-qcom-sdm845-modem', '', d)} \ + linux-firmware-qcom-sdm845-audio \ + linux-firmware-qcom-sdm845-compute \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'linux-firmware-qcom-adreno-a630 mesa-driver-msm', '', d)} \ " # /dev/sda1 is 'rootfs' partition after installing the latest bootloader package from linaro diff --git a/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1034.2.1.bb b/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1034.2.1.bb index 62e5bf4..ecdbed9 100644 --- a/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1034.2.1.bb +++ b/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1034.2.1.bb @@ -20,37 +20,25 @@ do_compile() { do_install() { install -d ${D}${nonarch_base_libdir}/firmware/ + install -d ${D}/boot - cp -r ./proprietary-linux/* ${D}${nonarch_base_libdir}/firmware/ cp ./efs-seed/fs_image_linux.tar.gz.mbn.img ${D}/boot/modem_fsg + cp -r ./proprietary-linux/wlan ${D}${nonarch_base_libdir}/firmware/ + install -d ${D}${nonarch_base_libdir}/firmware/qcom/msm8916 MTOOLS_SKIP_CHECK=1 mcopy -i ./bootloaders-linux/NON-HLOS.bin \ ::image/modem.* ::image/mba.mbn ::image/wcnss.* ${D}${nonarch_base_libdir}/firmware/qcom/msm8916 - # Venus firmware have been merged in linux-firmware in a different location than - # what we've been using for now. Let's add symlinks for now, until we switch to linux-firmware - install -d ${D}${nonarch_base_libdir}/firmware/qcom/venus-1.8/ - for f in ${D}${nonarch_base_libdir}/firmware/venus.*; do - f=$(basename $f) - ln -s ${nonarch_base_libdir}/firmware/$f ${D}${nonarch_base_libdir}/firmware/qcom/venus-1.8/$f - done - install -d ${D}${sysconfdir}/ install -m 0644 LICENSE ${D}${sysconfdir}/QCOM-LINUX-BOARD-SUPPORT-LICENSE } -FILES_${PN} += "${nonarch_base_libdir}/firmware/*" FILES_${PN} += "/boot/modem_fsg" -INSANE_SKIP_${PN} += "arch" - -RPROVIDES_${PN} += "linux-firmware-qcom-adreno-a3xx" -RREPLACES_${PN} += "linux-firmware-qcom-adreno-a3xx" -RCONFLICTS_${PN} += "linux-firmware-qcom-adreno-a3xx" +FILES_${PN} += "${nonarch_base_libdir}/firmware/wlan/*" +FILES_${PN} += "${nonarch_base_libdir}/firmware/qcom/msm8916/*" -RPROVIDES_${PN} += "linux-firmware-qcom-venus-1.8" -RREPLACES_${PN} += "linux-firmware-qcom-venus-1.8" -RCONFLICTS_${PN} += "linux-firmware-qcom-venus-1.8" +INSANE_SKIP_${PN} += "arch" RPROVIDES_${PN} += "linux-firmware-qcom-license" RREPLACES_${PN} += "linux-firmware-qcom-license" diff --git a/recipes-bsp/firmware/firmware-qcom-dragonboard820c_01700.1.bb b/recipes-bsp/firmware/firmware-qcom-dragonboard820c_01700.1.bb index c33cecb..952f574 100644 --- a/recipes-bsp/firmware/firmware-qcom-dragonboard820c_01700.1.bb +++ b/recipes-bsp/firmware/firmware-qcom-dragonboard820c_01700.1.bb @@ -18,12 +18,9 @@ do_compile() { do_install() { install -d ${D}${nonarch_base_libdir}/firmware/ - install -d ${D}${nonarch_base_libdir}/firmware/qcom/venus-4.2/ install -d ${D}${nonarch_base_libdir}/firmware/qcom/msm8996/ - install -m 0444 ./proprietary-linux/a530*.* ${D}${nonarch_base_libdir}/firmware/ - install -m 0444 ./proprietary-linux/venus.* ${D}${nonarch_base_libdir}/firmware/qcom/venus-4.2/ - install -m 0444 ./proprietary-linux/adsp.* ${D}${nonarch_base_libdir}/firmware/qcom/msm8996/ + install -m 0444 ./proprietary-linux/adsp*.* ${D}${nonarch_base_libdir}/firmware/qcom/msm8996/ install -d ${D}${sysconfdir}/ install -m 0644 LICENSE ${D}${sysconfdir}/QCOM-LINUX-BOARD-SUPPORT-LICENSE @@ -32,14 +29,6 @@ do_install() { FILES_${PN} += "${nonarch_base_libdir}/firmware/*" INSANE_SKIP_${PN} += "arch" -RPROVIDES_${PN} += "linux-firmware-qcom-adreno-a530" -RREPLACES_${PN} += "linux-firmware-qcom-adreno-a530" -RCONFLICTS_${PN} += "linux-firmware-qcom-adreno-a530" - -RPROVIDES_${PN} += "linux-firmware-qcom-venus-4.2" -RREPLACES_${PN} += "linux-firmware-qcom-venus-4.2" -RCONFLICTS_${PN} += "linux-firmware-qcom-venus-4.2" - RPROVIDES_${PN} += "linux-firmware-qcom-license" RREPLACES_${PN} += "linux-firmware-qcom-license" RCONFLICTS_${PN} += "linux-firmware-qcom-license" diff --git a/recipes-bsp/firmware/firmware-qcom-dragonboard845c/generate_board-2_json.sh b/recipes-bsp/firmware/firmware-qcom-dragonboard845c/generate_board-2_json.sh new file mode 100644 index 0000000..3a1d532 --- /dev/null +++ b/recipes-bsp/firmware/firmware-qcom-dragonboard845c/generate_board-2_json.sh @@ -0,0 +1,23 @@ +JSON="$2" + +iter=0 +echo "[" > "${JSON}" +for file in $1/bdwlan.*; do + [[ $file == *.txt ]] && continue + + iter=$((iter+1)) + [ $iter -ne 1 ] && echo " }," >> "${JSON}" + + echo " {" >> "${JSON}" + echo " \"data\": \"$file\"," >> "${JSON}" + if [[ $file == */bdwlan.bin ]]; then + file_ext="ff" + else + file_ext="$(printf '%x\n' "$(basename "${file}" | sed -E 's:^.*\.b?([0-9a-f]*)$:0x\1:')")" + fi + echo " \"names\": [\"bus=snoc,qmi-board-id=${file_ext}\"]" >> "${JSON}" +done + +echo " }" >> "${JSON}" +echo "]" >> "${JSON}" + diff --git a/recipes-bsp/firmware/firmware-qcom-dragonboard845c_20190529180356-v4.bb b/recipes-bsp/firmware/firmware-qcom-dragonboard845c_20190529180356-v4.bb index c27bbbc..88a1a6c 100644 --- a/recipes-bsp/firmware/firmware-qcom-dragonboard845c_20190529180356-v4.bb +++ b/recipes-bsp/firmware/firmware-qcom-dragonboard845c_20190529180356-v4.bb @@ -3,17 +3,26 @@ DESCRIPTION = "QCOM Firmware for DragonBoard 845c" LICENSE = "Proprietary" LIC_FILES_CHKSUM = "file://LICENSE.qcom.txt;md5=cbbe399f2c983ad51768f4561587f000" -SRC_URI = "https://releases.linaro.org/96boards/dragonboard845c/qualcomm/firmware/RB3_firmware_${PV}.zip" +SRC_URI = "https://releases.linaro.org/96boards/dragonboard845c/qualcomm/firmware/RB3_firmware_${PV}.zip \ + git://github.com/alimon/qca-swiss-army-knife \ + file://generate_board-2_json.sh" SRC_URI[md5sum] = "ad69855a1275547b16d94a1b5405ac62" SRC_URI[sha256sum] = "4289d2f2a7124b104d0274879e702aae9b1e50c42eec3747f8584c6744ef65e3" +SRCREV = "0c01a2abc3e9855b71f0fbea2c335011104d9ec0" COMPATIBLE_MACHINE = "(dragonboard-845c)" PACKAGE_ARCH = "${MACHINE_ARCH}" +DEPENDS += "bash-native" +inherit python3native S = "${WORKDIR}" do_compile() { - : + # Build board-2.bin needed by WiFi + mkdir -p bdf + cp ./38-bdwlan_split/bdwlan*.* bdf + bash generate_board-2_json.sh bdf board-2.json + python3 git/tools/scripts/ath10k/ath10k-bdencoder -c board-2.json -o board-2.bin } do_install() { @@ -22,12 +31,13 @@ do_install() { install -d ${D}${nonarch_base_libdir}/firmware/qcom/sdm845 install -m 0444 ./17-USB3-201-202-FW/K2026090.mem ${D}${nonarch_base_libdir}/firmware/ - install -m 0444 ./18-adreno-fw/a630*.* ${D}${nonarch_base_libdir}/firmware/ + install -m 0444 ./18-adreno-fw/a630_zap*.* ${D}${nonarch_base_libdir}/firmware/qcom/ install -m 0444 ./20-adsp_split/firmware/adsp*.* ${D}${nonarch_base_libdir}/firmware/qcom/sdm845 install -m 0444 ./21-cdsp_split/firmware/cdsp*.* ${D}${nonarch_base_libdir}/firmware/qcom/sdm845 install -m 0444 ./33-venus_split/venus.* ${D}${nonarch_base_libdir}/firmware/qcom/venus-5.2/ - install -m 0444 ./37-wlan_FW/wlanmdsp.mbn ${D}${nonarch_base_libdir}/firmware/ - install -m 0444 ./38-bdwlan_split/bdwlan*.* ${D}${nonarch_base_libdir}/firmware/ + + install -d ${D}${nonarch_base_libdir}/firmware/ath10k/WCN3990/hw1.0/ + install -m 0444 ./board-2.bin ${D}${nonarch_base_libdir}/firmware/ath10k/WCN3990/hw1.0/ install -d ${D}${sysconfdir}/ install -m 0644 LICENSE.qcom.txt ${D}${sysconfdir}/QCOM-LINUX-BOARD-SUPPORT-LICENSE @@ -36,10 +46,6 @@ do_install() { FILES_${PN} += "${nonarch_base_libdir}/firmware/*" INSANE_SKIP_${PN} += "arch" -RPROVIDES_${PN} += "linux-firmware-qcom-adreno-a630" -RREPLACES_${PN} += "linux-firmware-qcom-adreno-a630" -RCONFLICTS_${PN} += "linux-firmware-qcom-adreno-a630" - RPROVIDES_${PN} += "linux-firmware-qcom-venus-5.2" RREPLACES_${PN} += "linux-firmware-qcom-venus-5.2" RCONFLICTS_${PN} += "linux-firmware-qcom-venus-5.2" diff --git a/recipes-kernel/linux/linux-linaro-qcomlt_5.4.bb b/recipes-kernel/linux/linux-linaro-qcomlt_5.4.bb index 130cfb3..83074c1 100644 --- a/recipes-kernel/linux/linux-linaro-qcomlt_5.4.bb +++ b/recipes-kernel/linux/linux-linaro-qcomlt_5.4.bb @@ -9,7 +9,7 @@ require recipes-kernel/linux/linux-qcom-bootimg.inc LOCALVERSION ?= "-linaro-lt-qcom" SRCBRANCH ?= "release/qcomlt-5.4" -SRCREV ?= "8c79b3d123550fde184d9ef6b3d5e2e530abe0bd" +SRCREV ?= "e2db8e82634bd73bce5ce1e447720756777ca432" COMPATIBLE_MACHINE = "(apq8016|apq8096|sdm845)" |