diff options
95 files changed, 5394 insertions, 399 deletions
diff --git a/backports/recipes-bsp/firmware-imx/firmware-imx-8.10.inc b/backports/recipes-bsp/firmware-imx/firmware-imx-8.10.1.inc index 6f1222a..582beb1 100644 --- a/backports/recipes-bsp/firmware-imx/firmware-imx-8.10.inc +++ b/backports/recipes-bsp/firmware-imx/firmware-imx-8.10.1.inc @@ -1,16 +1,16 @@ # Copyright (C) 2012-2016 Freescale Semiconductor -# Copyright (C) 2017-2020 NXP +# Copyright (C) 2017-2021 NXP # Copyright (C) 2018 O.S. Systems Software LTDA. SECTION = "base" LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://COPYING;md5=cf3f9b8d09bc3926b1004ea71f7a248a" +LIC_FILES_CHKSUM = "file://COPYING;md5=3c3fe2b904fd694f28d2f646ee16dddb" SRC_URI = " \ ${FSL_MIRROR}/firmware-imx-${PV}.bin;fsl-eula=true \ " -SRC_URI[md5sum] = "3f8c4661ca0f64ca30fd239f66b6a471" -SRC_URI[sha256sum] = "2b70f169d4065b2a7ac7a676afe24636128bd2dacc9f5230346758c3b146b2be" +SRC_URI[md5sum] = "1a9414928c3f30e7a911700fe83cd62e" +SRC_URI[sha256sum] = "da415c32063c08fce8f52734f198b19ab06bd7d4333a4df900f8831df562f8fc" S = "${WORKDIR}/firmware-imx-${PV}" diff --git a/backports/recipes-bsp/firmware-imx/firmware-imx-8_8.10.bb b/backports/recipes-bsp/firmware-imx/firmware-imx-8_8.10.1.bb index 650c1cf..650c1cf 100644 --- a/backports/recipes-bsp/firmware-imx/firmware-imx-8_8.10.bb +++ b/backports/recipes-bsp/firmware-imx/firmware-imx-8_8.10.1.bb diff --git a/backports/recipes-bsp/firmware-imx/firmware-imx-8m_8.10.bb b/backports/recipes-bsp/firmware-imx/firmware-imx-8m_8.10.1.bb index 44e9ff4..a48356e 100644 --- a/backports/recipes-bsp/firmware-imx/firmware-imx-8m_8.10.bb +++ b/backports/recipes-bsp/firmware-imx/firmware-imx-8m_8.10.1.bb @@ -21,4 +21,4 @@ addtask deploy after do_install before do_build PACKAGE_ARCH = "${MACHINE_SOCARCH}" -COMPATIBLE_MACHINE = "(mx8m)" +COMPATIBLE_MACHINE = "(mx8m|imx-boot-container)" diff --git a/backports/recipes-bsp/firmware-imx/firmware-imx_8.10.bb b/backports/recipes-bsp/firmware-imx/firmware-imx_8.10.1.bb index 84534a6..8ff4a32 100644 --- a/backports/recipes-bsp/firmware-imx/firmware-imx_8.10.bb +++ b/backports/recipes-bsp/firmware-imx/firmware-imx_8.10.1.bb @@ -16,6 +16,8 @@ do_install() { # SDMA Firmware section install -d ${D}${nonarch_base_libdir}/firmware/imx/sdma install -m 0644 ${S}/firmware/sdma/* ${D}${nonarch_base_libdir}/firmware/imx/sdma + rm -f ${D}${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx6q.bin + rm -f ${D}${nonarch_base_libdir}/firmware/imx/sdma/sdma-imx7d.bin # EASRC Firmware section install -d ${D}${nonarch_base_libdir}/firmware/imx/easrc diff --git a/backports/recipes-bsp/imx-mkimage/files/0001-iMX8M-soc.mak-use-native-mkimage-from-sysroot.patch b/backports/recipes-bsp/imx-mkimage/files/0001-iMX8M-soc.mak-use-native-mkimage-from-sysroot.patch new file mode 100644 index 0000000..ea5c058 --- /dev/null +++ b/backports/recipes-bsp/imx-mkimage/files/0001-iMX8M-soc.mak-use-native-mkimage-from-sysroot.patch @@ -0,0 +1,82 @@ +From e630c5809ad039efaaea0342b06306512eada53a Mon Sep 17 00:00:00 2001 +From: Andrey Zhizhikin <andrey.z@gmail.com> +Date: Tue, 22 Feb 2022 20:00:21 +0100 +Subject: [PATCH] iMX8M: soc.mak: use native mkimage from sysroot + +mkimage tool is provided as a part of sysroot from Yocto build. Current +implementation on the imx-mkimge on the other hand copies it locally in +order to invoke it from within the build folder. + +Since recent updates, mkimage requires openssl.so to be installed, which +when local copy is used causes the tool not to operate and fails the +build. + +Use it from the build sysroot, and do not pull the local version of it. + +Upstream-Status: Inappropriate [OE-specific] + +Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com> +--- + iMX8M/soc.mak | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/iMX8M/soc.mak b/iMX8M/soc.mak +index 30ecefd..5d568e7 100644 +--- a/iMX8M/soc.mak ++++ b/iMX8M/soc.mak +@@ -146,7 +146,7 @@ u-boot.itb: $(dtbs) + ./$(PAD_IMAGE) bl31.bin + ./$(PAD_IMAGE) u-boot-nodtb.bin $(dtbs) + DEK_BLOB_LOAD_ADDR=$(DEK_BLOB_LOAD_ADDR) TEE_LOAD_ADDR=$(TEE_LOAD_ADDR) ATF_LOAD_ADDR=$(ATF_LOAD_ADDR) ./mkimage_fit_atf.sh $(dtbs) > u-boot.its +- ./mkimage_uboot -E -p 0x3000 -f u-boot.its u-boot.itb ++ mkimage -E -p 0x3000 -f u-boot.its u-boot.itb + @rm -f u-boot.its $(dtbs) + + dtbs_ddr3l = valddr3l.dtb +@@ -158,7 +158,7 @@ u-boot-ddr3l.itb: $(dtbs_ddr3l) + ./$(PAD_IMAGE) bl31.bin + ./$(PAD_IMAGE) u-boot-nodtb.bin $(dtbs_ddr3l) + DEK_BLOB_LOAD_ADDR=$(DEK_BLOB_LOAD_ADDR) TEE_LOAD_ADDR=$(TEE_LOAD_ADDR) ATF_LOAD_ADDR=$(ATF_LOAD_ADDR) ./mkimage_fit_atf.sh $(dtbs_ddr3l) > u-boot-ddr3l.its +- ./mkimage_uboot -E -p 0x3000 -f u-boot-ddr3l.its u-boot-ddr3l.itb ++ mkimage -E -p 0x3000 -f u-boot-ddr3l.its u-boot-ddr3l.itb + @rm -f u-boot.its $(dtbs_ddr3l) + + dtbs_ddr3l_evk = evkddr3l.dtb +@@ -170,7 +170,7 @@ u-boot-ddr3l-evk.itb: $(dtbs_ddr3l_evk) + ./$(PAD_IMAGE) bl31.bin + ./$(PAD_IMAGE) u-boot-nodtb.bin $(dtbs_ddr3l_evk) + DEK_BLOB_LOAD_ADDR=$(DEK_BLOB_LOAD_ADDR) TEE_LOAD_ADDR=$(TEE_LOAD_ADDR) ATF_LOAD_ADDR=$(ATF_LOAD_ADDR) ./mkimage_fit_atf.sh $(dtbs_ddr3l_evk) > u-boot-ddr3l-evk.its +- ./mkimage_uboot -E -p 0x3000 -f u-boot-ddr3l-evk.its u-boot-ddr3l-evk.itb ++ mkimage -E -p 0x3000 -f u-boot-ddr3l-evk.its u-boot-ddr3l-evk.itb + @rm -f u-boot.its $(dtbs_ddr3l_evk) + + dtbs_ddr4 = valddr4.dtb +@@ -182,7 +182,7 @@ u-boot-ddr4.itb: $(dtbs_ddr4) + ./$(PAD_IMAGE) bl31.bin + ./$(PAD_IMAGE) u-boot-nodtb.bin $(dtbs_ddr4) + DEK_BLOB_LOAD_ADDR=$(DEK_BLOB_LOAD_ADDR) TEE_LOAD_ADDR=$(TEE_LOAD_ADDR) ATF_LOAD_ADDR=$(ATF_LOAD_ADDR) ./mkimage_fit_atf.sh $(dtbs_ddr4) > u-boot-ddr4.its +- ./mkimage_uboot -E -p 0x3000 -f u-boot-ddr4.its u-boot-ddr4.itb ++ mkimage -E -p 0x3000 -f u-boot-ddr4.its u-boot-ddr4.itb + @rm -f u-boot.its $(dtbs_ddr4) + + dtbs_ddr4_evk = evkddr4.dtb +@@ -194,7 +194,7 @@ u-boot-ddr4-evk.itb: $(dtbs_ddr4_evk) + ./$(PAD_IMAGE) bl31.bin + ./$(PAD_IMAGE) u-boot-nodtb.bin $(dtbs_ddr4_evk) + DEK_BLOB_LOAD_ADDR=$(DEK_BLOB_LOAD_ADDR) TEE_LOAD_ADDR=$(TEE_LOAD_ADDR) ATF_LOAD_ADDR=$(ATF_LOAD_ADDR) ./mkimage_fit_atf.sh $(dtbs_ddr4_evk) > u-boot-ddr4-evk.its +- ./mkimage_uboot -E -p 0x3000 -f u-boot-ddr4-evk.its u-boot-ddr4-evk.itb ++ mkimage -E -p 0x3000 -f u-boot-ddr4-evk.its u-boot-ddr4-evk.itb + @rm -f u-boot.its $(dtbs_ddr4_evk) + + ifeq ($(HDMI),yes) +@@ -310,7 +310,6 @@ nightly : + @$(WGET) -q $(SERVER)/$(DIR)/$(FW_DIR)/fsl-$(PLAT)-evk.dtb -O fsl-$(PLAT)-evk.dtb + @$(WGET) -q $(SERVER)/$(DIR)/$(FW_DIR)/signed_hdmi_imx8m.bin -O signed_hdmi_imx8m.bin + @$(WGET) -q $(SERVER)/$(DIR)/$(FW_DIR)/signed_dp_imx8m.bin -O signed_dp_imx8m.bin +- @$(WGET) -q $(SERVER)/$(DIR)/$(FW_DIR)/mkimage_uboot -O mkimage_uboot + + archive : + git ls-files --others --exclude-standard -z | xargs -0 tar rvf $(ARCHIVE_PATH)/$(ARCHIVE_NAME) +-- +2.25.1 + diff --git a/backports/recipes-bsp/imx-mkimage/files/0001-mkimage_fit_atf-fix-fit-generator-node-naming.patch b/backports/recipes-bsp/imx-mkimage/files/0001-mkimage_fit_atf-fix-fit-generator-node-naming.patch new file mode 100644 index 0000000..3c2842a --- /dev/null +++ b/backports/recipes-bsp/imx-mkimage/files/0001-mkimage_fit_atf-fix-fit-generator-node-naming.patch @@ -0,0 +1,166 @@ +From 9cf936493388897379f33b511ec869c6fa5409ce Mon Sep 17 00:00:00 2001 +From: Andrey Zhizhikin <andrey.z@gmail.com> +Date: Thu, 22 Apr 2021 12:20:28 +0000 +Subject: [PATCH] mkimage_fit_atf: fix fit generator node naming + +Since upstream commit 79af75f777 ("fit: Don't allow verification of images +with @ nodes") [1], unit addresses on the nodes are prohibited and nodes +that do contain those addresses are ignored during the ITS parsing. This +is done in an effort to cover the CVE-2021-27138, where nodes with unit +addresses can be mis-interpreted by libfdt. + +Correct FIT generator script and replace nodes with unit addresses to +plain node names with "-" instead of "@" to create a unique naming. + +In addition, extend sections which contains "firmware" in their types +with "os" parameter to conform to the latest FIT specification. + +Indicate that load and entry addresses are covered by one 32-bit value +by adding "address-cells" in the root node of the generated ITS. + +Upstream-Status: Inappropriate [script is imx-boot specific] +Link: [1] https://github.com/u-boot/u-boot/commit/79af75f7776fc20b0d7eb6afe1e27c00fdb4b9b4 +Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com> +Cc: Tom Hochstein <tom.hochstein@nxp.com> +--- + iMX8M/mkimage_fit_atf.sh | 40 ++++++++++++++++++++++------------------ + 1 file changed, 22 insertions(+), 18 deletions(-) + +diff --git a/iMX8M/mkimage_fit_atf.sh b/iMX8M/mkimage_fit_atf.sh +index 95749b1..10903ea 100755 +--- a/iMX8M/mkimage_fit_atf.sh ++++ b/iMX8M/mkimage_fit_atf.sh +@@ -23,7 +23,7 @@ else + fi + + BL32="tee.bin" +-LOADABLES="\"atf@1\"" ++LOADABLES="\"atf-1\"" + + if [ ! -f $BL32 ]; then + BL32=/dev/null +@@ -31,7 +31,7 @@ else + echo "Building with TEE support, make sure your bl31 is compiled with spd. If you do not want tee, please delete tee.bin" >&2 + echo "tee.bin size: " >&2 + ls -lct tee.bin | awk '{print $5}' >&2 +- LOADABLES="$LOADABLES, \"tee@1\"" ++ LOADABLES="$LOADABLES, \"tee-1\"" + fi + + BL33="u-boot-nodtb.bin" +@@ -41,7 +41,7 @@ if [ ! -f $DEK_BLOB ]; then + DEK_BLOB=/dev/null + else + echo "Building with encrypted boot support, make sure to replace DEK Blob in final image." >&2 +- LOADABLES="\"dek_blob@1\", $LOADABLES" ++ LOADABLES="\"dek_blob-1\", $LOADABLES" + fi + + if [ ! -f $BL33 ]; then +@@ -64,10 +64,12 @@ cat << __HEADER_EOF + + / { + description = "Configuration to load ATF before U-Boot"; ++ #address-cells = <1>; + + images { +- uboot@1 { ++ uboot-1 { + description = "U-Boot (64-bit)"; ++ os = "u-boot"; + data = /incbin/("$BL33"); + type = "standalone"; + arch = "arm64"; +@@ -80,7 +82,7 @@ cnt=1 + for dtname in $* + do + cat << __FDT_IMAGE_EOF +- fdt@$cnt { ++ fdt-$cnt { + description = "$(basename $dtname .dtb)"; + data = /incbin/("$dtname"); + type = "flat_dt"; +@@ -91,8 +93,9 @@ cnt=$((cnt+1)) + done + + cat << __HEADER_EOF +- atf@1 { ++ atf-1 { + description = "ARM Trusted Firmware"; ++ os = "arm-trusted-firmware"; + data = /incbin/("$BL31"); + type = "firmware"; + arch = "arm64"; +@@ -104,8 +107,9 @@ __HEADER_EOF + + if [ -f $BL32 ]; then + cat << __HEADER_EOF +- tee@1 { ++ tee-1 { + description = "TEE firmware"; ++ os = "op-tee-firmware"; + data = /incbin/("$BL32"); + type = "firmware"; + arch = "arm64"; +@@ -118,7 +122,7 @@ fi + + if [ -f $DEK_BLOB ]; then + cat << __HEADER_EOF +- dek_blob@1 { ++ dek_blob-1 { + description = "dek_blob"; + data = /incbin/("$DEK_BLOB"); + type = "script"; +@@ -131,7 +135,7 @@ fi + cat << __CONF_HEADER_EOF + }; + configurations { +- default = "config@1"; ++ default = "config-1"; + + __CONF_HEADER_EOF + +@@ -141,31 +145,31 @@ do + if [ -f $BL32 ]; then + if [ $ROLLBACK_INDEX_IN_FIT ]; then + cat << __CONF_SECTION_EOF +- config@$cnt { ++ config-$cnt { + description = "$(basename $dtname .dtb)"; +- firmware = "uboot@1"; ++ firmware = "uboot-1"; + loadables = $LOADABLES; +- fdt = "fdt@$cnt"; ++ fdt = "fdt-$cnt"; + rbindex = "$ROLLBACK_INDEX_IN_FIT"; + }; + __CONF_SECTION_EOF + else + cat << __CONF_SECTION_EOF +- config@$cnt { ++ config-$cnt { + description = "$(basename $dtname .dtb)"; +- firmware = "uboot@1"; ++ firmware = "uboot-1"; + loadables = $LOADABLES; +- fdt = "fdt@$cnt"; ++ fdt = "fdt-$cnt"; + }; + __CONF_SECTION_EOF + fi + else + cat << __CONF_SECTION1_EOF +- config@$cnt { ++ config-$cnt { + description = "$(basename $dtname .dtb)"; +- firmware = "uboot@1"; ++ firmware = "uboot-1"; + loadables = $LOADABLES; +- fdt = "fdt@$cnt"; ++ fdt = "fdt-$cnt"; + }; + __CONF_SECTION1_EOF + fi +-- +2.17.1 + diff --git a/backports/recipes-bsp/imx-mkimage/imx-mkimage_git.inc b/backports/recipes-bsp/imx-mkimage/imx-mkimage_git.inc index 1eba510..99c61df 100644 --- a/backports/recipes-bsp/imx-mkimage/imx-mkimage_git.inc +++ b/backports/recipes-bsp/imx-mkimage/imx-mkimage_git.inc @@ -3,8 +3,12 @@ DEPENDS = "zlib-native openssl-native" SRCBRANCH = "imx_5.4.70_2.3.0" -SRC_URI = "git://source.codeaurora.org/external/imx/imx-mkimage.git;protocol=https;branch=${SRCBRANCH}" -SRCREV = "8947fea369ab3932259630232cfb9f87b8f9dda1" +SRC_URI = "git://github.com/nxp-imx/imx-mkimage.git;protocol=https;branch=${SRCBRANCH} \ + file://0001-mkimage_fit_atf-fix-fit-generator-node-naming.patch \ + file://0001-iMX8M-soc.mak-use-native-mkimage-from-sysroot.patch \ +" + +SRCREV = "6a315dbc608f90d630bf34024679f682054a5bea" S = "${WORKDIR}/git" BOOT_TOOLS = "imx-boot-tools" diff --git a/backports/recipes-bsp/imx-seco/imx-seco-libs/0002-Makefile-Fix-install-to-clear-host-user-contaminated.patch b/backports/recipes-bsp/imx-seco/imx-seco-libs/0002-Makefile-Fix-install-to-clear-host-user-contaminated.patch new file mode 100644 index 0000000..757b9a6 --- /dev/null +++ b/backports/recipes-bsp/imx-seco/imx-seco-libs/0002-Makefile-Fix-install-to-clear-host-user-contaminated.patch @@ -0,0 +1,34 @@ +From 59608dcb0f0a6f6d8154b1d331c2403d7c1143eb Mon Sep 17 00:00:00 2001 +From: Cristinel Panfir <cristinel.panfir@nxp.com> +Date: Fri, 5 Feb 2021 19:27:00 +0200 +Subject: [PATCH] Makefile: Fix install to clear host-user-contaminated + warnings [HSM-483] + +WARNING: imx-seco-libs-git-r0 do_package_qa: QA Issue: +imx-seco-libs: /usr/lib/hsm_lib.a is owned by uid 26292, which is the same as the user running bitbake. This may be due to host contamination +imx-seco-libs: /usr/lib/she_lib.a is owned by uid 26292, which is the same as the user running bitbake. This may be due to host contamination +imx-seco-libs: /usr/lib/seco_nvm_manager.a is owned by uid 26292, which is the same as the user running bitbake. +This may be due to host contamination [host-user-contaminated] + +Upstream-Status: Pending + +Signed-off-by: Cristinel Panfir <cristinel.panfir@nxp.com> +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 492d700..25ad333 100644 +--- a/Makefile ++++ b/Makefile +@@ -63,7 +63,7 @@ hsm_doc: include/hsm/hsm_api.h + + install: hsm_test she_test she_lib.a seco_nvm_manager.a hsm_lib.a + mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(INCLUDEDIR) +- cp -a seco_nvm_manager.a hsm_lib.a she_lib.a $(DESTDIR)$(LIBDIR) ++ cp seco_nvm_manager.a hsm_lib.a she_lib.a $(DESTDIR)$(LIBDIR) + cp hsm_test she_test $(DESTDIR)$(BINDIR) + cp -a include/* $(DESTDIR)$(INCLUDEDIR) + +-- +2.25.1 diff --git a/backports/recipes-bsp/imx-seco/imx-seco-libs_git.bb b/backports/recipes-bsp/imx-seco/imx-seco-libs_git.bb index 220b4cc..dc37cdf 100644 --- a/backports/recipes-bsp/imx-seco/imx-seco-libs_git.bb +++ b/backports/recipes-bsp/imx-seco/imx-seco-libs_git.bb @@ -8,9 +8,10 @@ LIC_FILES_CHKSUM = "file://EULA.txt;md5=228c72f2a91452b8a03c4cab30f30ef9" DEPENDS = "zlib" -SRCBRANCH = "imx_5.4.70_2.3.0" -SRC_URI = "git://github.com/NXP/imx-seco-libs.git;protocol=https;branch=${SRCBRANCH}" -SRCREV = "b730ba5975644094f224faee20942f63d0d24ccd" +SRCBRANCH = "imx_5.4.70_2.3.1" +SRC_URI = "git://github.com/NXP/imx-seco-libs.git;protocol=https;branch=${SRCBRANCH} \ + file://0002-Makefile-Fix-install-to-clear-host-user-contaminated.patch" +SRCREV = "79e5fb5d096c61b1c3163c9fa8e42719509d95a0" S = "${WORKDIR}/git" diff --git a/backports/recipes-bsp/imx-seco/imx-seco_3.7.4.bb b/backports/recipes-bsp/imx-seco/imx-seco_3.8.6.bb index 142d115..2df50ae 100644 --- a/backports/recipes-bsp/imx-seco/imx-seco_3.7.4.bb +++ b/backports/recipes-bsp/imx-seco/imx-seco_3.8.6.bb @@ -4,18 +4,14 @@ SUMMARY = "NXP i.MX SECO firmware" DESCRIPTION = "NXP IMX SECO firmware" SECTION = "base" LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://COPYING;md5=cf3f9b8d09bc3926b1004ea71f7a248a" -FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V17 = "cf3f9b8d09bc3926b1004ea71f7a248a" -FSL_EULA_FILE_MD5SUMS_append = " \ - ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V17} \ -" +LIC_FILES_CHKSUM = "file://COPYING;md5=be5ff43682ed6c57dfcbeb97651c2829" inherit fsl-eula-unpack use-imx-security-controller-firmware deploy SRC_URI = "${FSL_MIRROR}/${BP}.bin;fsl-eula=true" -SRC_URI[md5sum] = "f0e20216f27f2f44ac809634c5291be5" -SRC_URI[sha256sum] = "2ed8177e48c8e33f742b3a642805be56a5ef56df78b1b29e10518552154da2bc" +SRC_URI[md5sum] = "2427a45069a89bb9b9b470642ce17f18" +SRC_URI[sha256sum] = "3bf3f4ae69f77fd8fe28a216f3927fb84e75461364ad332dd9b4605beadae59a" do_compile[noexec] = "1" diff --git a/backports/recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.3.0.bb b/backports/recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.3.0.bb index 22f620f..bd08789 100644 --- a/backports/recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.3.0.bb +++ b/backports/recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.3.0.bb @@ -13,4 +13,23 @@ S = "${WORKDIR}/${BPN}-${PV}" SRC_URI[md5sum] = "37c61718602ff08041b81319cfd6a8d9" SRC_URI[sha256sum] = "8425796fc63d7107f2f57c51497281c4d54c883b2670817347fbe55f39dc2b8c" +# SCR is the location and name of the Software Content Register file +# relative to ${D}${D_SUBDIR}. +SCR = "SCR.txt" + +do_install () { + install -d ${D}${D_SUBDIR} + cp -r ${S}/* ${D}${D_SUBDIR} + if [ -d "${D}/usr/lib" ] && [ "${D}/usr/lib" != "${D}${libdir}" ]; then + mv ${D}/usr/lib ${D}${libdir} + fi + rm ${D}${D_SUBDIR}/COPYING + if [ ! -f ${D}${D_SUBDIR}/${SCR} ]; then + bbfatal "Missing Software Content Register \"${D}${D_SUBDIR}/${SCR}\"" + fi + rm ${D}${D_SUBDIR}/${SCR} +} + +FILES_${PN} = "/" + COMPATIBLE_MACHINE = "(mx8mp)" diff --git a/backports/recipes-bsp/isp-imx/basler-camera_4.2.2.11.0.bb b/backports/recipes-bsp/isp-imx/basler-camera_4.2.2.11.0.bb new file mode 100644 index 0000000..afbbe17 --- /dev/null +++ b/backports/recipes-bsp/isp-imx/basler-camera_4.2.2.11.0.bb @@ -0,0 +1,28 @@ +# Copyright 2020-2021 NXP + +DESCRIPTION = "Basler camera binary drivers" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=3c3fe2b904fd694f28d2f646ee16dddb" + +inherit fsl-eula-unpack + +SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true" + +SRC_URI[md5sum] = "2e0bd011f8d72e1957c4d6da55364be5" +SRC_URI[sha256sum] = "4be5c4f26dc0f3f5e031c2d8ac295ff5768489e7e978aaa901030fd77b5209c2" + +do_install() { + dest_dir=${D}/opt/imx8-isp/bin + install -d ${D}/${libdir} + install -d $dest_dir + cp -r ${S}/opt/imx8-isp/bin/* $dest_dir + cp -r ${S}/usr/lib/* ${D}/${libdir} +} + +SYSTEMD_AUTO_ENABLE = "enable" + +FILES_${PN} = "${libdir} ${libdir}/.so /opt" +FILES_${PN}-dev = "" +INSANE_SKIP_${PN} = "file-rdeps already-stripped dev-so" + +COMPATIBLE_MACHINE = "(imx|use-nxp-bsp)" diff --git a/backports/recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-test-to-be-generic.patch b/backports/recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-test-to-be-generic.patch new file mode 100644 index 0000000..1b62afe --- /dev/null +++ b/backports/recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-test-to-be-generic.patch @@ -0,0 +1,41 @@ +From 708f25cfe522df162c3e2c7c56cbe2f7000cb5e4 Mon Sep 17 00:00:00 2001 +From: Gary Bisson <gary.bisson@boundarydevices.com> +Date: Mon, 14 Dec 2020 14:26:01 +0100 +Subject: [PATCH] start_isp.sh: fix test to be generic + +So that it works on EVK and any other i.MX 8M Plus platform. + +Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com> +--- + imx/start_isp.sh | 13 +++++-------- + 1 file changed, 5 insertions(+), 8 deletions(-) + +Index: isp-imx-4.2.2.11.0/imx/start_isp.sh +=================================================================== +--- isp-imx-4.2.2.11.0.orig/imx/start_isp.sh ++++ isp-imx-4.2.2.11.0/imx/start_isp.sh +@@ -8,6 +8,7 @@ + + RUNTIME_DIR="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + NR_DEVICE_TREE_BASLER=$(grep basler-camera-vvcam /sys/firmware/devicetree/base/soc@0/*/i2c@*/*/compatible -l | wc -l 2> /dev/null) ++DMESG_BASLER=`dmesg | grep Basler` + + # check if the basler device has been enabled in the device tree + if [ $NR_DEVICE_TREE_BASLER -eq 1 ]; then +@@ -28,8 +29,15 @@ elif [ $NR_DEVICE_TREE_BASLER -eq 2 ]; t + # Available configurations: dual_basler_1080p60, dual_basler_1080p60hdr + exec ./run.sh -c dual_basler_1080p60 -lm + ++elif [ ! -z "$DMESG_BASLER" ]; then ++ ++ echo "Starting isp_media_server for generic Basler" ++ ++ cd $RUNTIME_DIR ++ exec ./run.sh -c basler_1080p60 ++ + else + # no device tree found exit with code no device or address +- echo "No device tree found for Basler, check dtb file!" >&2 ++ echo "Basler camera not found!" >&2 + exit 6 + fi diff --git a/backports/recipes-bsp/isp-imx/isp-imx_4.2.2.11.0.bb b/backports/recipes-bsp/isp-imx/isp-imx_4.2.2.11.0.bb new file mode 100644 index 0000000..d82fa07 --- /dev/null +++ b/backports/recipes-bsp/isp-imx/isp-imx_4.2.2.11.0.bb @@ -0,0 +1,86 @@ +# Copyright 2020-2021 NXP + +DESCRIPTION = "i.MX Verisilicon Software ISP" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=3c3fe2b904fd694f28d2f646ee16dddb" +DEPENDS = "python3 libdrm virtual/libg2d" + +SRC_URI = "${FSL_MIRROR}/${BP}.bin;fsl-eula=true \ + file://0001-start_isp.sh-fix-test-to-be-generic.patch \ +" + +SRC_URI[md5sum] = "75f79ba556c47172b9a0cbc3a877e604" +SRC_URI[sha256sum] = "28e2ee909f29a256c4eac87ef8336932d90a88a2a183389ac0868212954af42c" + +inherit fsl-eula-unpack cmake systemd use-imx-headers + +# Build the sub-folder appshell +OECMAKE_SOURCEPATH = "${S}/appshell" + +# Use make instead of ninja +OECMAKE_GENERATOR = "Unix Makefiles" + +SYSTEMD_SERVICE_${PN} = "imx8-isp.service" + +EXTRA_OECMAKE += " \ + -DCMAKE_BUILD_TYPE=release \ + -DISP_VERSION=ISP8000NANO_V1802 \ + -DPLATFORM=ARM64 \ + -DAPPMODE=V4L2 \ + -DQTLESS=1 \ + -DFULL_SRC_COMPILE=1 \ + -DWITH_DRM=1 \ + -DWITH_DWE=1 \ + -DSERVER_LESS=1 \ + -DSUBDEV_V4L2=1 \ + -DENABLE_IRQ=1 \ + -DPARTITION_BUILD=0 \ + -D3A_SRC_BUILD=0 \ + -DIMX_G2D=ON \ + -Wno-dev \ +" + +do_configure_prepend() { + export SDKTARGETSYSROOT=${STAGING_DIR_HOST} +} + +do_install() { + install -d ${D}/${libdir} + install -d ${D}/${includedir} + install -d ${D}/opt/imx8-isp/bin + + cp -r ${WORKDIR}/build/generated/release/bin/*_test ${D}/opt/imx8-isp/bin + cp -r ${WORKDIR}/build/generated/release/bin/*2775* ${D}/opt/imx8-isp/bin + cp -r ${WORKDIR}/build/generated/release/bin/isp_media_server ${D}/opt/imx8-isp/bin + cp -r ${WORKDIR}/build/generated/release/bin/vvext ${D}/opt/imx8-isp/bin + cp -r ${WORKDIR}/${BP}/dewarp/dewarp_config/ ${D}/opt/imx8-isp/bin + cp -r ${WORKDIR}/build/generated/release/lib/*.so* ${D}/${libdir} + cp -r ${WORKDIR}/build/generated/release/include/* ${D}/${includedir} + + cp ${WORKDIR}/${BP}/imx/run.sh ${D}/opt/imx8-isp/bin + cp ${WORKDIR}/${BP}/imx/start_isp.sh ${D}/opt/imx8-isp/bin + + chmod +x ${D}/opt/imx8-isp/bin/run.sh + chmod +x ${D}/opt/imx8-isp/bin/start_isp.sh + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/${BP}/imx/imx8-isp.service ${D}${systemd_system_unitdir} + fi +} + +# The build contains a mix of versioned and unversioned libraries, so +# the default packaging configuration needs some modifications +FILES_SOLIBSDEV = "" +FILES_${PN} += "/opt ${libdir}/lib*${SOLIBSDEV}" +FILES_${PN}-dev += " \ + ${libdir}/libjsoncpp.so \ + ${libdir}/libos08a20.so \ + ${libdir}/libov2775.so \ +" + +INSANE_SKIP_${PN} = "rpaths" + +RDEPENDS_${PN} = "libdrm libpython3" + +COMPATIBLE_MACHINE = "(imx|use-nxp-bsp)" diff --git a/backports/recipes-fsl/packagegroups/packagegroup-fsl-isp.bb b/backports/recipes-fsl/packagegroups/packagegroup-fsl-isp.bb new file mode 100644 index 0000000..838017a --- /dev/null +++ b/backports/recipes-fsl/packagegroups/packagegroup-fsl-isp.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Add packages for ISP build" + +inherit packagegroup + +ISP_PKGS ?= "" +ISP_PKGS_mx8mp = " \ + isp-imx \ + basler-camera \ + kernel-module-isp-vvcam \ +" +RDEPENDS_${PN} = " \ + ${ISP_PKGS} \ +" diff --git a/backports/recipes-graphics/drm/libdrm_2.4.102.imx.bb b/backports/recipes-graphics/drm/libdrm_2.4.102.imx.bb index d246757..ab3b8b6 100644 --- a/backports/recipes-graphics/drm/libdrm_2.4.102.imx.bb +++ b/backports/recipes-graphics/drm/libdrm_2.4.102.imx.bb @@ -10,14 +10,15 @@ LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c5 PROVIDES = "drm" DEPENDS = "libpthread-stubs" -IMX_LIBDRM_SRC ?= "git://source.codeaurora.org/external/imx/libdrm-imx.git;protocol=https;nobranch=1" +IMX_LIBDRM_SRC ?= "git://github.com/nxp-imx/libdrm-imx.git;protocol=https;nobranch=1" IMX_LIBDRM_BRANCH ?= "libdrm-imx-2.4.102" SRC_URI = "${IMX_LIBDRM_SRC};branch=${IMX_LIBDRM_BRANCH} \ file://0001-meson-add-libdrm-vivante-to-the-meson-meta-data.patch " -SRCREV = "f525ae649cd6e81e5d4e459799b0f7a120c4e174" +SRCREV = "40ea53973b99b7df07f472318918a8c2b310e4a7" S = "${WORKDIR}/git" DEFAULT_PREFERENCE = "-1" +COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" inherit meson pkgconfig manpages @@ -68,3 +69,5 @@ RRECOMMENDS_${PN}-drivers_append_imxgpu = " ${PN}-vivante" FILES_${PN}-vivante = "${libdir}/libdrm_vivante.so.*" PACKAGECONFIG_append_imxgpu = " vivante" PACKAGECONFIG[vivante] = "-Dvivante=true,-Dvivante=false" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" diff --git a/backports/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.8.12.bb b/backports/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.8.14.bb index c407fb4..1176fa1 100644 --- a/backports/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.8.12.bb +++ b/backports/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.8.14.bb @@ -4,12 +4,12 @@ DESCRIPTION = "GPU G2D library and apps for i.MX with 2D GPU and DPU" LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://COPYING;md5=cf3f9b8d09bc3926b1004ea71f7a248a" +LIC_FILES_CHKSUM = "file://COPYING;md5=a632fefd1c359980434f9389833cab3a" PROVIDES += "virtual/libg2d" SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true" -SRC_URI[md5sum] = "18a4119f1f7b83a09f60381e5403bbab" -SRC_URI[sha256sum] = "ba7e219b3cee32e0ac305685de21c67f30e0e5a1a89b5ec441ae6b8484b3f964" +SRC_URI[md5sum] = "51b1a54f303bea31325549e9fb1f0d04" +SRC_URI[sha256sum] = "360012a32353bde233a548f25a8f99b18660059ea2655ab15335a967843ce3b9" inherit fsl-eula-unpack diff --git a/backports/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p1.0.bb b/backports/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p1.4.bb index ed11a54..257ecf1 100644 --- a/backports/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p1.0.bb +++ b/backports/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p1.4.bb @@ -5,7 +5,7 @@ DESCRIPTION = "GPU G2D library and apps for i.MX with 2D GPU and no DPU" LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://COPYING;md5=cf3f9b8d09bc3926b1004ea71f7a248a" +LIC_FILES_CHKSUM = "file://COPYING;md5=a632fefd1c359980434f9389833cab3a" DEPENDS += "libgal-imx" PROVIDES += "virtual/libg2d" @@ -13,10 +13,10 @@ PROVIDES += "virtual/libg2d" FSLBIN_NAME = "${PN}-${PV}-${TARGET_ARCH}" SRC_URI = "${FSL_MIRROR}/${FSLBIN_NAME}.bin;name=${TARGET_ARCH};fsl-eula=true" -SRC_URI[aarch64.md5sum] = "2c17220ff2c28701b5feca45b341961f" -SRC_URI[aarch64.sha256sum] = "47a39b171d83bced378b1b4f408be6304850fe2f25bf4577dd1ea78e22473f3d" -SRC_URI[arm.md5sum] = "968a7d324016376930579a0f904d6e69" -SRC_URI[arm.sha256sum] = "8d3b024151d4bdcc4f68cdbba9c4e5d126d55c9258de5821c43b393ae3f840b4" +SRC_URI[aarch64.md5sum] = "575eac63da712019bfe3ac4c616b2774" +SRC_URI[aarch64.sha256sum] = "017e8c40a51311bb384a427467ec6950f91879b9e36c48074dd29c6ca7db8c4f" +SRC_URI[arm.md5sum] = "9eab89a12949534a5a45050c24ba4cba" +SRC_URI[arm.sha256sum] = "a5ee498e47e52cbc56292d5ea8d71b5194775c750fa0415a43ea05ddb1acb08a" S = "${WORKDIR}/${FSLBIN_NAME}" diff --git a/backports/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc b/backports/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc index 5acf635..0417d15 100644 --- a/backports/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc +++ b/backports/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc @@ -6,7 +6,7 @@ DESCRIPTION = "GPU driver and apps for i.MX" SECTION = "libs" LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://COPYING;md5=cf3f9b8d09bc3926b1004ea71f7a248a" +LIC_FILES_CHKSUM = "file://COPYING;md5=a632fefd1c359980434f9389833cab3a" DEPENDS += " \ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \ @@ -275,7 +275,7 @@ do_install () { ALLOW_EMPTY_${PN} = "1" FILES_libclc-imx = "${libdir}/libCLC${SOLIBS}" -FILES_libclc-imx-dev = "${includedir}/CL ${libdir}/libCLC${SOLIBSDEV}" +FILES_libclc-imx-dev = "${libdir}/libCLC${SOLIBSDEV}" # libEGL.so is used by some demo apps from Freescale INSANE_SKIP_libegl-imx += "dev-so" @@ -284,9 +284,9 @@ FILES_libegl-imx-dev = "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/ FILES_libgal-imx = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}" FILES_libgal-imx-dev = "${libdir}/libGAL${SOLIBSDEV} ${includedir}/HAL" -RDEPENDS_libgal-imx += "kernel-module-imx-gpu-viv" RDEPENDS_libgal-imx += "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', 'valgrind', '', d)}" RPROVIDES_libgal-imx += "libgal-imx" +RRECOMMENDS_libgal-imx += "kernel-module-imx-gpu-viv" INSANE_SKIP_libgal-imx += "build-deps" FILES_libvsc-imx = "${libdir}/libVSC${SOLIBS}" @@ -331,7 +331,7 @@ FILES_libgles3-imx-dev = "${includedir}/GLES3" RDEPENDS_libgles2-imx-dev += "libgles3-imx-dev" FILES_libglslc-imx = "${libdir}/libGLSLC${SOLIBS}" -FILES_libglslc-imx-dev = "${includedir}/CL ${libdir}/libGLSLC${SOLIBSDEV}" +FILES_libglslc-imx-dev = "${libdir}/libGLSLC${SOLIBSDEV}" FILES_libopencl-imx = "${libdir}/libOpenCL${REALSOLIBS} \ ${libdir}/libVivanteOpenCL${SOLIBS} \ diff --git a/backports/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.0-aarch64.bb b/backports/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.0-aarch64.bb deleted file mode 100644 index 4db5479..0000000 --- a/backports/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.0-aarch64.bb +++ /dev/null @@ -1,6 +0,0 @@ -require imx-gpu-viv-6.inc - -SRC_URI[md5sum] = "72a212a1bd8102718f8b03d935f1dcbc" -SRC_URI[sha256sum] = "0505620c3851a980d2e08fee4b4fcd06eff92efac02d1646924bea86e4384ad4" - -COMPATIBLE_MACHINE = "(mx8)" diff --git a/backports/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.0-aarch32.bb b/backports/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch32.bb index 39eb1a1..e6c1f8a 100644 --- a/backports/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.0-aarch32.bb +++ b/backports/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch32.bb @@ -4,7 +4,7 @@ require imx-gpu-viv-6.inc -SRC_URI[md5sum] = "3ab06c5aa485c79c14e6c856ccfd8d82" -SRC_URI[sha256sum] = "9960fadbc1ea919f8b1b5c1e2e38a52b7293b70c906518d7fff2ada4140c59ea" +SRC_URI[md5sum] = "1270a84dcd0d0e985a8bfa9027988fb2" +SRC_URI[sha256sum] = "ecdd5355f6aa0d154c3ddf575fde28d0212767d852d2843f3a75aba10c65cd46" COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx7ulp)" diff --git a/backports/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch64.bb b/backports/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch64.bb new file mode 100644 index 0000000..b1b4bac --- /dev/null +++ b/backports/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch64.bb @@ -0,0 +1,6 @@ +require imx-gpu-viv-6.inc + +SRC_URI[md5sum] = "2493f1264458ac13572cf328ae78f280" +SRC_URI[sha256sum] = "5f1579ac846dad3464e2e7c7569ea59c89bd12bc61b79344c1210d80e1ea91e1" + +COMPATIBLE_MACHINE = "(mx8)" diff --git a/backports/recipes-graphics/wayland/wayland-protocols_1.20.imx.bb b/backports/recipes-graphics/wayland/wayland-protocols_1.20.imx.bb index 852b316..c8af730 100644 --- a/backports/recipes-graphics/wayland/wayland-protocols_1.20.imx.bb +++ b/backports/recipes-graphics/wayland/wayland-protocols_1.20.imx.bb @@ -9,7 +9,7 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \ file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53" -SRC_URI = "git://source.codeaurora.org/external/imx/wayland-protocols-imx.git;protocol=https;branch=wayland-protocols-imx-1.20" +SRC_URI = "git://github.com/nxp-imx/wayland-protocols-imx.git;protocol=https;branch=wayland-protocols-imx-1.20" SRCREV = "9cacf108d0ee5863c7a656da5d2271bc2396e43d" S = "${WORKDIR}/git" diff --git a/backports/recipes-graphics/wayland/weston_9.0.0.imx.bb b/backports/recipes-graphics/wayland/weston_9.0.0.imx.bb index 93ad31c..c29023f 100644 --- a/backports/recipes-graphics/wayland/weston_9.0.0.imx.bb +++ b/backports/recipes-graphics/wayland/weston_9.0.0.imx.bb @@ -149,7 +149,7 @@ SUMMARY = "Weston, a Wayland compositor, i.MX fork" DEFAULT_PREFERENCE = "-1" SRCBRANCH = "weston-imx-9.0" -SRC_URI = "git://source.codeaurora.org/external/imx/weston-imx.git;protocol=https;branch=${SRCBRANCH} \ +SRC_URI = "git://github.com/nxp-imx/weston-imx.git;protocol=https;branch=${SRCBRANCH} \ file://weston.png \ file://weston.desktop \ file://xwayland.weston-start \ @@ -157,7 +157,7 @@ SRC_URI = "git://source.codeaurora.org/external/imx/weston-imx.git;protocol=http file://0001-libweston-backend-fbdev-fbdev.c-don-t-destroy-output.patch \ file://0002-libweston-pixman-renderer.c-zero-freed-pointer.patch \ " -SRCREV = "a1823f20a1d6e24d2f56e98c5576eda34a94f567" +SRCREV = "230e9bc3d647e511e0601e3d45034f22495ed3c7" S = "${WORKDIR}/git" # Disable OpenGL for parts with GPU support for 2D but not 3D diff --git a/backports/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p1.0.bb b/backports/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p1.4.bb index 98cfb2b..e31aad3 100644 --- a/backports/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p1.0.bb +++ b/backports/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p1.4.bb @@ -8,8 +8,8 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" SRCBRANCH = "imx_5.4.70_2.3.0" -LOCALVERSION = "-${SRCBRANCH}" -KERNEL_SRC ?= "git://source.codeaurora.org/external/imx/linux-imx.git;protocol=https" +LOCALVERSION = "-imx_5.4.70_2.3.2" +KERNEL_SRC ?= "git://github.com/nxp-imx/linux-imx.git;protocol=https" SRC_URI = " \ ${KERNEL_SRC};branch=${SRCBRANCH};subpath=drivers/mxc/gpu-viv;destsuffix=git/src \ file://Add-makefile.patch \ diff --git a/backports/recipes-kernel/kernel-modules/kernel-module-isp-vvcam_4.2.2.11.0.bb b/backports/recipes-kernel/kernel-modules/kernel-module-isp-vvcam_4.2.2.11.0.bb new file mode 100644 index 0000000..364d675 --- /dev/null +++ b/backports/recipes-kernel/kernel-modules/kernel-module-isp-vvcam_4.2.2.11.0.bb @@ -0,0 +1,19 @@ +# Copyright 2020-2021 NXP + +DESCRIPTION = "Kernel loadable module for ISP" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://${WORKDIR}/git/vvcam/LICENSE;md5=64381a6ea83b48c39fe524c85f65fb44" + +SRCBRANCH = "imx_5.4.70_2.3.2" +ISP_KERNEL_SRC ?= "git://github.com/nxp-imx/isp-vvcam.git;protocol=https" + +SRC_URI = " \ + ${ISP_KERNEL_SRC};branch=${SRCBRANCH} \ +" +SRCREV = "6cbf264313b4859c985c8d66bae19b522996de6c" + +S = "${WORKDIR}/git/vvcam/v4l2" + +inherit module + +COMPATIBLE_MACHINE = "(imx|use-nxp-bsp)" diff --git a/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.imx.bb b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.imx.bb index 8064d43..259e1ca 100644 --- a/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.imx.bb +++ b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.imx.bb @@ -10,7 +10,7 @@ DEFAULT_PREFERENCE = "-1" PACKAGE_ARCH_imxpxp = "${MACHINE_SOCARCH}" PACKAGE_ARCH_mx8 = "${MACHINE_SOCARCH}" -GST1.0-PLUGINS-BAD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-bad.git;protocol=https" +GST1.0-PLUGINS-BAD_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-bad.git;protocol=https" SRCBRANCH = "MM_04.05.07_2011_L5.4.70" SRC_URI = " \ diff --git a/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.imx.bb b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.imx.bb index c965be9..2e29ee1 100644 --- a/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.imx.bb +++ b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.imx.bb @@ -4,7 +4,7 @@ LICENSE = "GPLv2+ & LGPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607" -GST1.0-PLUGINS-BASE_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-base.git;protocol=https" +GST1.0-PLUGINS-BASE_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-base.git;protocol=https" SRCBRANCH = "MM_04.05.06_2008_L5.4.47" SRCREV = "3c4aa2a58576d68f6e684efa58609665679c9969" SRC_URI = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} \ diff --git a/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.imx.bb b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.imx.bb index 8413bf1..314b134 100644 --- a/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.imx.bb +++ b/backports/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.imx.bb @@ -1,7 +1,7 @@ require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc -GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-good.git;protocol=https" +GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-good.git;protocol=https" SRCBRANCH = "MM_04.05.07_2011_L5.4.70" SRC_URI = " \ diff --git a/backports/recipes-multimedia/gstreamer/gstreamer1.0_1.16.imx.bb b/backports/recipes-multimedia/gstreamer/gstreamer1.0_1.16.imx.bb index 8bbc16c..3d558c6 100644 --- a/backports/recipes-multimedia/gstreamer/gstreamer1.0_1.16.imx.bb +++ b/backports/recipes-multimedia/gstreamer/gstreamer1.0_1.16.imx.bb @@ -14,7 +14,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" # Use i.MX fork of GST for customizations -GST1.0_SRC ?= "gitsm://source.codeaurora.org/external/imx/gstreamer.git;protocol=https" +GST1.0_SRC ?= "gitsm://github.com/nxp-imx/gstreamer.git;protocol=https" SRCBRANCH = "MM_04.05.06_2008_L5.4.47" SRC_URI = " \ diff --git a/backports/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.5.7.bb b/backports/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.5.7.bb index 5f434f1..d76eeb3 100644 --- a/backports/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.5.7.bb +++ b/backports/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.5.7.bb @@ -23,7 +23,7 @@ LIC_FILES_CHKSUM = "file://COPYING-LGPL-2;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ SRCBRANCH = "MM_04.05.07_2011_L5.4.70" SRC_URI = " \ - git://source.codeaurora.org/external/imx/imx-gst1.0-plugin.git;protocol=https;branch=${SRCBRANCH} \ + git://github.com/nxp-imx/imx-gst1.0-plugin.git;protocol=https;branch=${SRCBRANCH} \ " SRCREV = "659ec4947d6b1903d26e4ec9e40ae251a659935d" diff --git a/backports/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch b/backports/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch new file mode 100644 index 0000000..9e6a613 --- /dev/null +++ b/backports/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch @@ -0,0 +1,36 @@ +From 9b4959b97d2e95d4b49cf6ca2a3fce3cdb484f2d Mon Sep 17 00:00:00 2001 +From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> +Date: Thu, 31 Mar 2016 00:20:15 +0200 +Subject: [PATCH] 3rdparty/ippicv: Use pre-downloaded ipp + +Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> +Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com> + +--- + 3rdparty/ippicv/ippicv.cmake | 15 +-------------- + 1 file changed, 1 insertion(+), 14 deletions(-) + +diff --git a/3rdparty/ippicv/ippicv.cmake b/3rdparty/ippicv/ippicv.cmake +index 257af6fcc6..f88460450f 100644 +--- a/3rdparty/ippicv/ippicv.cmake ++++ b/3rdparty/ippicv/ippicv.cmake +@@ -34,18 +34,5 @@ function(download_ippicv root_var) + endif() + + set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv") +- ocv_download(FILENAME ${OPENCV_ICV_NAME} +- HASH ${OPENCV_ICV_HASH} +- URL +- "${OPENCV_IPPICV_URL}" +- "$ENV{OPENCV_IPPICV_URL}" +- "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/" +- DESTINATION_DIR "${THE_ROOT}" +- ID IPPICV +- STATUS res +- UNPACK RELATIVE_URL) +- +- if(res) +- set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE) +- endif() ++ set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE) + endfunction() diff --git a/backports/recipes-support/opencv/opencv/0001-Add-smaller-version-of-download_models.py.patch b/backports/recipes-support/opencv/opencv/0001-Add-smaller-version-of-download_models.py.patch new file mode 100644 index 0000000..0aabee2 --- /dev/null +++ b/backports/recipes-support/opencv/opencv/0001-Add-smaller-version-of-download_models.py.patch @@ -0,0 +1,179 @@ +From fca4d9eec289f22c081daa2c61a1110e3f268f92 Mon Sep 17 00:00:00 2001 +From: Tom Hochstein <tom.hochstein@nxp.com> +Date: Tue, 1 Sep 2020 14:57:07 -0500 +Subject: [PATCH] Add smaller version of download_models.py + +Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> +--- + testdata/dnn/download_models_basic.py | 159 ++++++++++++++++++++++++++ + 1 file changed, 159 insertions(+) + create mode 100644 testdata/dnn/download_models_basic.py + +diff --git a/testdata/dnn/download_models_basic.py b/testdata/dnn/download_models_basic.py +new file mode 100644 +index 0000000..5c8a616 +--- /dev/null ++++ b/testdata/dnn/download_models_basic.py +@@ -0,0 +1,159 @@ ++#!/usr/bin/env python ++ ++from __future__ import print_function ++import hashlib ++import sys ++import tarfile ++if sys.version_info[0] < 3: ++ from urllib2 import urlopen ++else: ++ from urllib.request import urlopen ++ ++ ++class Model: ++ MB = 1024*1024 ++ BUFSIZE = 10*MB ++ ++ def __init__(self, **kwargs): ++ self.name = kwargs.pop('name') ++ self.url = kwargs.pop('url', None) ++ self.filename = kwargs.pop('filename') ++ self.sha = kwargs.pop('sha', None) ++ self.archive = kwargs.pop('archive', None) ++ self.member = kwargs.pop('member', None) ++ ++ def __str__(self): ++ return 'Model <{}>'.format(self.name) ++ ++ def printRequest(self, r): ++ def getMB(r): ++ d = dict(r.info()) ++ for c in ['content-length', 'Content-Length']: ++ if c in d: ++ return int(d[c]) / self.MB ++ return '<unknown>' ++ print(' {} {} [{} Mb]'.format(r.getcode(), r.msg, getMB(r))) ++ ++ def verify(self): ++ if not self.sha: ++ return False ++ print(' expect {}'.format(self.sha)) ++ sha = hashlib.sha1() ++ try: ++ with open(self.filename, 'rb') as f: ++ while True: ++ buf = f.read(self.BUFSIZE) ++ if not buf: ++ break ++ sha.update(buf) ++ print(' actual {}'.format(sha.hexdigest())) ++ return self.sha == sha.hexdigest() ++ except Exception as e: ++ print(' catch {}'.format(e)) ++ ++ def get(self): ++ if self.verify(): ++ print(' hash match - skipping') ++ return True ++ ++ if self.archive or self.member: ++ assert(self.archive and self.member) ++ print(' hash check failed - extracting') ++ print(' get {}'.format(self.member)) ++ self.extract() ++ else: ++ assert(self.url) ++ print(' hash check failed - downloading') ++ print(' get {}'.format(self.url)) ++ self.download() ++ ++ print(' done') ++ print(' file {}'.format(self.filename)) ++ return self.verify() ++ ++ def download(self): ++ try: ++ r = urlopen(self.url, timeout=60) ++ self.printRequest(r) ++ self.save(r) ++ except Exception as e: ++ print(' catch {}'.format(e)) ++ ++ def extract(self): ++ try: ++ with tarfile.open(self.archive) as f: ++ assert self.member in f.getnames() ++ self.save(f.extractfile(self.member)) ++ except Exception as e: ++ print(' catch {}'.format(e)) ++ ++ def save(self, r): ++ with open(self.filename, 'wb') as f: ++ print(' progress ', end='') ++ sys.stdout.flush() ++ while True: ++ buf = r.read(self.BUFSIZE) ++ if not buf: ++ break ++ f.write(buf) ++ print('>', end='') ++ sys.stdout.flush() ++ ++models = [ ++ Model( ++ name='Fcn', ++ url='http://dl.caffe.berkeleyvision.org/fcn8s-heavy-pascal.caffemodel', ++ sha='c449ea74dd7d83751d1357d6a8c323fcf4038962', ++ filename='fcn8s-heavy-pascal.caffemodel'), ++ Model( ++ name='SqueezeNet_v1.1', ++ url='https://raw.githubusercontent.com/DeepScale/SqueezeNet/b5c3f1a23713c8b3fd7b801d229f6b04c64374a5/SqueezeNet_v1.1/squeezenet_v1.1.caffemodel', ++ sha='3397f026368a45ae236403ccc81cfcbe8ebe1bd0', ++ filename='squeezenet_v1.1.caffemodel'), ++ Model( ++ name='Colorization', ++ url='https://raw.githubusercontent.com/richzhang/colorization/master/models/colorization_deploy_v2.prototxt', ++ sha='f528334e386a69cbaaf237a7611d833bef8e5219', ++ filename='colorization_deploy_v2.prototxt'), ++ Model( ++ name='Colorization', ++ url='http://eecs.berkeley.edu/~rich.zhang/projects/2016_colorization/files/demo_v2/colorization_release_v2.caffemodel', ++ sha='21e61293a3fa6747308171c11b6dd18a68a26e7f', ++ filename='colorization_release_v2.caffemodel'), ++ Model( ++ name='OpenPose/pose/coco', # https://github.com/CMU-Perceptual-Computing-Lab/openpose ++ url='http://posefs1.perception.cs.cmu.edu/OpenPose/models/pose/coco/pose_iter_440000.caffemodel', ++ sha='ac7e97da66f3ab8169af2e601384c144e23a95c1', ++ filename='openpose_pose_coco.caffemodel'), ++ Model( ++ name='YOLOv3', # https://pjreddie.com/darknet/yolo/ ++ url='https://pjreddie.com/media/files/yolov3.weights', ++ sha='520878f12e97cf820529daea502acca380f1cb8e', ++ filename='yolov3.weights'), ++ Model( ++ name='EAST', # https://github.com/argman/EAST (a TensorFlow model), https://arxiv.org/abs/1704.03155v2 (a paper) ++ url='https://www.dropbox.com/s/r2ingd0l3zt8hxs/frozen_east_text_detection.tar.gz?dl=1', ++ sha='3ca8233d6edd748f7ed23246c8ca24cbf696bb94', ++ filename='frozen_east_text_detection.tar.gz'), ++ Model( ++ name='EAST', ++ archive='frozen_east_text_detection.tar.gz', ++ member='frozen_east_text_detection.pb', ++ sha='fffabf5ac36f37bddf68e34e84b45f5c4247ed06', ++ filename='frozen_east_text_detection.pb'), ++] ++ ++# Note: models will be downloaded to current working directory ++# expected working directory is opencv_extra/testdata/dnn ++if __name__ == '__main__': ++ failedModels = [] ++ for m in models: ++ print(m) ++ if not m.get(): ++ failedModels.append(m.filename) ++ ++ if failedModels: ++ print("Following models have not been downloaded:") ++ for f in failedModels: ++ print("* {}".format(f)) ++ exit(15) +-- +2.17.1 + diff --git a/backports/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch b/backports/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch new file mode 100644 index 0000000..948a80f --- /dev/null +++ b/backports/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch @@ -0,0 +1,28 @@ +From 66e50ee69fa9ee2469d349100e70d8b296c4b4dc Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 11 Sep 2018 00:21:18 -0700 +Subject: [PATCH] Dont use isystem + +clang really does not like it + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- + cmake/OpenCVPCHSupport.cmake | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/cmake/OpenCVPCHSupport.cmake b/cmake/OpenCVPCHSupport.cmake +index 08cd06def4..46c9c02da3 100644 +--- a/cmake/OpenCVPCHSupport.cmake ++++ b/cmake/OpenCVPCHSupport.cmake +@@ -18,6 +18,8 @@ IF(CV_GCC) + SET(PCHSupport_FOUND TRUE) + ENDIF() + ++ SET(CMAKE_INCLUDE_SYSTEM_FLAG_C "-I") ++ SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-I") + SET(_PCH_include_prefix "-I") + SET(_PCH_isystem_prefix "-isystem") + SET(_PCH_define_prefix "-D") diff --git a/backports/recipes-support/opencv/opencv/0001-Make-ts-module-external.patch b/backports/recipes-support/opencv/opencv/0001-Make-ts-module-external.patch new file mode 100644 index 0000000..d56b8ae --- /dev/null +++ b/backports/recipes-support/opencv/opencv/0001-Make-ts-module-external.patch @@ -0,0 +1,42 @@ +From 11bbf909e08594628bd757d989ae34cf1bfe200b Mon Sep 17 00:00:00 2001 +From: Mingli Yu <mingli.yu@windriver.com> +Date: Thu, 18 Jun 2020 05:51:38 +0000 +Subject: [PATCH] Make ts module external + +Make ts module external + +Reference: https://github.com/qbonnard/opencv/commit/6b229c5834cb9a0930425e762a6c7b03244d7abb + +Upstream-Status: Submitted [https://github.com/opencv/opencv/issues/8408] + +Signed-off-by: Mingli Yu <mingli.yu@windriver.com> +--- + modules/ts/CMakeLists.txt | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/modules/ts/CMakeLists.txt b/modules/ts/CMakeLists.txt +index f95bed0793..66f315bcca 100644 +--- a/modules/ts/CMakeLists.txt ++++ b/modules/ts/CMakeLists.txt +@@ -4,9 +4,6 @@ if(NOT BUILD_opencv_ts AND NOT BUILD_TESTS AND NOT BUILD_PERF_TESTS) + ocv_module_disable(ts) + endif() + +-set(OPENCV_MODULE_TYPE STATIC) +-set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE) +- + if(WINRT) + # WINRT doesn't have access to environment variables + # so adding corresponding macros during CMake run +@@ -16,7 +13,7 @@ endif() + + ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef) + +-ocv_add_module(ts INTERNAL opencv_core opencv_imgproc opencv_imgcodecs opencv_videoio opencv_highgui) ++ocv_add_module(ts opencv_core opencv_imgproc opencv_imgcodecs opencv_videoio opencv_highgui) + + ocv_glob_module_sources() + ocv_module_include_directories() +-- +2.24.1 + diff --git a/backports/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch b/backports/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch new file mode 100644 index 0000000..1e47f8b --- /dev/null +++ b/backports/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch @@ -0,0 +1,31 @@ +From e4ec6cea72da9e9ae5ba57140fa2f5c63f1f8295 Mon Sep 17 00:00:00 2001 +From: Jason Wessel <jason.wessel@windriver.com> +Date: Wed, 9 May 2018 13:33:59 -0700 +Subject: [PATCH] Temporarliy work around deprecated ffmpeg RAW function + compile failure until next uprev + +Signed-off-by: Jason Wessel <jason.wessel@windriver.com> + +--- + modules/videoio/src/cap_ffmpeg_impl.hpp | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/modules/videoio/src/cap_ffmpeg_impl.hpp b/modules/videoio/src/cap_ffmpeg_impl.hpp +index 6dca724a89..ae55dd4555 100644 +--- a/modules/videoio/src/cap_ffmpeg_impl.hpp ++++ b/modules/videoio/src/cap_ffmpeg_impl.hpp +@@ -774,6 +774,14 @@ struct ImplMutex::Impl + + #endif + ++/* NOTE This is deprecated in ffmpeg and the code should be removed */ ++#ifndef AVFMT_RAWPICTURE ++#define AVFMT_RAWPICTURE 0x0020 ++#endif /* AVFMT_RAWPICTURE */ ++#ifndef CODEC_FLAG_GLOBAL_HEADER ++#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER ++#endif ++ + void ImplMutex::init() + { + impl = new Impl(); diff --git a/backports/recipes-support/opencv/opencv/0001-Use-Os-to-compile-tinyxml2.cpp.patch b/backports/recipes-support/opencv/opencv/0001-Use-Os-to-compile-tinyxml2.cpp.patch new file mode 100644 index 0000000..c5a6438 --- /dev/null +++ b/backports/recipes-support/opencv/opencv/0001-Use-Os-to-compile-tinyxml2.cpp.patch @@ -0,0 +1,31 @@ +From 59fafe6e39759e193b5764b36b4c5a93da352123 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 18 Aug 2020 00:36:49 -0700 +Subject: [PATCH] Use -Os to compile tinyxml2.cpp + +This workarounds issue [1] seen on riscv with gcc + +[1] https://github.com/riscv/riscv-gnu-toolchain/issues/624 + +Upstream-Status: Inappropriate [ OE-Specific ] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + modules/datasets/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules/datasets/CMakeLists.txt b/modules/datasets/CMakeLists.txt +index 56ca9e310..99b7a33f6 100644 +--- a/modules/datasets/CMakeLists.txt ++++ b/modules/datasets/CMakeLists.txt +@@ -2,7 +2,7 @@ set(the_description "datasets framework") + + set(filter_srcs "${CMAKE_CURRENT_LIST_DIR}/src/tinyxml2/tinyxml2.cpp") + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") +- ocv_append_source_files_cxx_compiler_options(filter_srcs "-Wno-suggest-override") # GCC ++ ocv_append_source_files_cxx_compiler_options(filter_srcs "-Wno-suggest-override -Os") # GCC + elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + ocv_append_source_files_cxx_compiler_options(filter_srcs "-Wno-inconsistent-missing-override") # Clang + endif() +-- +2.28.0 + diff --git a/backports/recipes-support/opencv/opencv/0001-sfm-link-with-Glog_LIBS.patch b/backports/recipes-support/opencv/opencv/0001-sfm-link-with-Glog_LIBS.patch new file mode 100644 index 0000000..7b2c410 --- /dev/null +++ b/backports/recipes-support/opencv/opencv/0001-sfm-link-with-Glog_LIBS.patch @@ -0,0 +1,44 @@ +From ffe20fc4ec46c6b491eff29a38f90686d4d035f6 Mon Sep 17 00:00:00 2001 +From: Martin Jansa <Martin.Jansa@gmail.com> +Date: Mon, 12 Apr 2021 20:37:40 +0000 +Subject: [PATCH] sfm: link with Glog_LIBS + +* in 4.5.0 there was explicit linkage with GLOG_LIBRARY, but since 4.5.1 with: + https://github.com/opencv/opencv_contrib/commit/23ee62a19b7a3e50d6dbf295359d8b1aff2e03fd + + it's gone, probably because Glog_FOUND is already set from Ceres, + but then GLOG_LIBRARIES is empty in LIBMV_LIGHT_LIBS and build with gold fails: + +FAILED: bin/example_tutorial_perspective_correction +: && TOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/x86_64-oe-linux-g++ -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -ITOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0/git/include -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=TOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0=/usr/src/debug/opencv/4.5.2-r0 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0=/usr/src/debug/opencv/4.5.2-r0 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -ITOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0/git/include -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=TOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0/recipe-sysroot -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -mssse3 -DNDEBUG -DNDEBUG -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -ITOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0/git/include -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=TOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0/recipe-sysroot -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0=/usr/src/debug/opencv/4.5.2-r0 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0=/usr/src/debug/opencv/4.5.2-r0 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -ITOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0/git/include -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=TOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now -Wl,--gc-sections -Wl,--as-needed samples/cpp/CMakeFiles/example_tutorial_perspective_correction.dir/tutorial_code/features2D/Homography/perspective_correction.cpp.o -o bin/example_tutorial_perspective_correction -ldl -lm -lpthread -lrt lib/libopencv_gapi.so.4.5.2 lib/libopencv_stitching.so.4.5.2 lib/libopencv_ts.so.4.5.2 lib/libopencv_alphamat.so.4.5.2 lib/libopencv_aruco.so.4.5.2 lib/libopencv_bgsegm.so.4.5.2 lib/libopencv_bioinspired.so.4.5.2 lib/libopencv_ccalib.so.4.5.2 lib/libopencv_dnn_objdetect.so.4.5.2 lib/libopencv_dnn_superres.so.4.5.2 lib/libopencv_dpm.so.4.5.2 lib/libopencv_face.so.4.5.2 lib/libopencv_fuzzy.so.4.5.2 lib/libopencv_hfs.so.4.5.2 lib/libopencv_img_hash.so.4.5.2 lib/libopencv_intensity_transform.so.4.5.2 lib/libopencv_line_descriptor.so.4.5.2 lib/libopencv_mcc.so.4.5.2 lib/libopencv_quality.so.4.5.2 lib/libopencv_rapid.so.4.5.2 lib/libopencv_reg.so.4.5.2 lib/libopencv_rgbd.so.4.5.2 lib/libopencv_saliency.so.4.5.2 lib/libopencv_sfm.so.4.5.2 lib/libopencv_stereo.so.4.5.2 lib/libopencv_structured_light.so.4.5.2 lib/libopencv_superres.so.4.5.2 lib/libopencv_surface_matching.so.4.5.2 lib/libopencv_tracking.so.4.5.2 lib/libopencv_videostab.so.4.5.2 lib/libopencv_wechat_qrcode.so.4.5.2 lib/libopencv_xfeatures2d.so.4.5.2 lib/libopencv_xobjdetect.so.4.5.2 lib/libopencv_xphoto.so.4.5.2 lib/libopencv_shape.so.4.5.2 lib/libopencv_highgui.so.4.5.2 lib/libopencv_datasets.so.4.5.2 lib/libopencv_ml.so.4.5.2 lib/libopencv_plot.so.4.5.2 lib/libopencv_phase_unwrapping.so.4.5.2 lib/libopencv_optflow.so.4.5.2 lib/libopencv_ximgproc.so.4.5.2 lib/libopencv_videoio.so.4.5.2 lib/libopencv_video.so.4.5.2 lib/libopencv_dnn.so.4.5.2 lib/libopencv_imgcodecs.so.4.5.2 lib/libopencv_objdetect.so.4.5.2 lib/libopencv_calib3d.so.4.5.2 lib/libopencv_features2d.so.4.5.2 lib/libopencv_flann.so.4.5.2 lib/libopencv_photo.so.4.5.2 lib/libopencv_imgproc.so.4.5.2 lib/libopencv_core.so.4.5.2 -Wl,-rpath-link,TOPDIR/tmp-glibc/work/core2-64-oe-linux/opencv/4.5.2-r0/build/lib && : +lib/libopencv_sfm.so.4.5.2: error: undefined reference to 'google::LogMessage::LogMessage(char const*, int)' +lib/libopencv_sfm.so.4.5.2: error: undefined reference to 'google::LogMessage::stream()' +lib/libopencv_sfm.so.4.5.2: error: undefined reference to 'google::LogMessage::~LogMessage()' +lib/libopencv_sfm.so.4.5.2: error: undefined reference to 'google::kLogSiteUninitialized' +lib/libopencv_sfm.so.4.5.2: error: undefined reference to 'fLI::FLAGS_v' +lib/libopencv_sfm.so.4.5.2: error: undefined reference to 'google::InitVLOG3__(int**, int*, char const*, int)' +lib/libopencv_sfm.so.4.5.2: error: undefined reference to 'google::LogMessageFatal::LogMessageFatal(char const*, int)' +lib/libopencv_sfm.so.4.5.2: error: undefined reference to 'google::LogMessageFatal::~LogMessageFatal()' +collect2: error: ld returned 1 exit status + + Add Glog_LIBS which is set to the same value as GLOG_LIBRARIES used to be. + +Upstream-Status: Submitted [https://github.com/opencv/opencv_contrib/pull/2923] + +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> +--- + modules/sfm/CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/modules/sfm/CMakeLists.txt b/modules/sfm/CMakeLists.txt +index 045a1fe6e..ee7cecdac 100644 +--- a/modules/sfm/CMakeLists.txt ++++ b/modules/sfm/CMakeLists.txt +@@ -84,6 +84,7 @@ set(LIBMV_LIGHT_LIBS + multiview + numeric + ${GLOG_LIBRARIES} ++ ${Glog_LIBS} + ${GFLAGS_LIBRARIES} + ) + diff --git a/backports/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch b/backports/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch new file mode 100644 index 0000000..bb47ef2 --- /dev/null +++ b/backports/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch @@ -0,0 +1,70 @@ +From f42c9b8c7bafcadc7e95fb25a391707f970eb426 Mon Sep 17 00:00:00 2001 +From: Huang Qiyu <huangqy.fnst@cn.fujitsu.com> +Date: Fri, 19 May 2017 04:27:50 +0900 +Subject: [PATCH] To fix errors as following: + +"test_main.cpp:45: undefined reference to `parseCustomOptions(int, char**)'" +"perf_abs.cpp:13: undefined reference to `cvtest::param_seed'" +"test_superres.cpp:270: undefined reference to `checkIppStatus()'" + +Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com> + +Also add the visibility changes for certain OpenCL-related functions in +ts module. + +Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com> + +--- + modules/ts/include/opencv2/ts.hpp | 4 ++-- + modules/ts/include/opencv2/ts/ocl_test.hpp | 2 +- + modules/ts/include/opencv2/ts/ts_ext.hpp | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/modules/ts/include/opencv2/ts.hpp b/modules/ts/include/opencv2/ts.hpp +index ed7491a89a..80919d13ee 100644 +--- a/modules/ts/include/opencv2/ts.hpp ++++ b/modules/ts/include/opencv2/ts.hpp +@@ -728,7 +728,7 @@ protected: + } + }; + +-extern uint64 param_seed; ++CV_EXPORTS extern uint64 param_seed; + + struct DefaultRngAuto + { +@@ -791,7 +791,7 @@ private: + #endif + #endif + +-void parseCustomOptions(int argc, char **argv); ++CV_EXPORTS void parseCustomOptions(int argc, char **argv); + + #define CV_TEST_INIT0_NOOP (void)0 + +diff --git a/modules/ts/include/opencv2/ts/ocl_test.hpp b/modules/ts/include/opencv2/ts/ocl_test.hpp +index 11572e9f48..438112e2aa 100644 +--- a/modules/ts/include/opencv2/ts/ocl_test.hpp ++++ b/modules/ts/include/opencv2/ts/ocl_test.hpp +@@ -82,7 +82,7 @@ inline UMat ToUMat(InputArray src) + return dst; + } + +-extern int test_loop_times; ++CV_EXPORTS extern int test_loop_times; + + #define MAX_VALUE 357 + +diff --git a/modules/ts/include/opencv2/ts/ts_ext.hpp b/modules/ts/include/opencv2/ts/ts_ext.hpp +index b2a4cac241..b94c681c0c 100644 +--- a/modules/ts/include/opencv2/ts/ts_ext.hpp ++++ b/modules/ts/include/opencv2/ts/ts_ext.hpp +@@ -9,7 +9,7 @@ + #define OPENCV_TS_EXT_HPP + + namespace cvtest { +-void checkIppStatus(); ++CV_EXPORTS void checkIppStatus(); + extern bool skipUnstableTests; + extern bool runBigDataTests; + extern int testThreads; diff --git a/backports/recipes-support/opencv/opencv/OpenCV_DNN_examples.patch b/backports/recipes-support/opencv/opencv/OpenCV_DNN_examples.patch new file mode 100644 index 0000000..0e83e99 --- /dev/null +++ b/backports/recipes-support/opencv/opencv/OpenCV_DNN_examples.patch @@ -0,0 +1,139 @@ +From 3c4daafb54f961e376104a461ca7ec114ff0331a Mon Sep 17 00:00:00 2001 +From: Ludek Slosarcik <ludek.slosarcik@nxp.com> +Date: Fri, 14 Feb 2020 15:46:50 +0100 +Subject: [PATCH] opencv_dnn: added video device for 2 examples, and change text labels + +Signed-off-by: Ludek Slosarcik <ludek.slosarcik@nxp.com> + +Upstream-Status: Pending +--- + samples/cpp/logistic_regression.cpp | 2 +- + samples/dnn/classification.cpp | 7 ++++--- + samples/dnn/object_detection.cpp | 10 +++++----- + samples/dnn/segmentation.cpp | 2 +- + samples/dnn/text_detection.cpp | 5 +++-- + 5 files changed, 14 insertions(+), 12 deletions(-) + +Index: git/samples/cpp/logistic_regression.cpp +=================================================================== +--- git.orig/samples/cpp/logistic_regression.cpp ++++ git/samples/cpp/logistic_regression.cpp +@@ -28,7 +28,7 @@ static float calculateAccuracyPercent(co + + int main() + { +- const String filename = samples::findFile("data01.xml"); ++ const String filename = samples::findFile("../data/data01.xml"); + cout << "**********************************************************************" << endl; + cout << filename + << " contains digits 0 and 1 of 20 samples each, collected on an Android device" << endl; +Index: git/samples/dnn/classification.cpp +=================================================================== +--- git.orig/samples/dnn/classification.cpp ++++ git/samples/dnn/classification.cpp +@@ -11,6 +11,7 @@ std::string keys = + "{ help h | | Print help message. }" + "{ @alias | | An alias name of model to extract preprocessing parameters from models.yml file. }" + "{ zoo | models.yml | An optional path to file with preprocessing parameters }" ++ "{ device | 0 | camera device number. }" + "{ input i | | Path to input image or video file. Skip this argument to capture frames from a camera.}" + "{ initial_width | 0 | Preprocess input image by initial resizing to a specific width.}" + "{ initial_height | 0 | Preprocess input image by initial resizing to a specific height.}" +@@ -102,7 +103,7 @@ int main(int argc, char** argv) + if (parser.has("input")) + cap.open(parser.get<String>("input")); + else +- cap.open(0); ++ cap.open(parser.get<int>("device")); + //! [Open a video file or an image file or a camera stream] + + // Process frames. +@@ -151,13 +152,13 @@ int main(int argc, char** argv) + double freq = getTickFrequency() / 1000; + double t = net.getPerfProfile(layersTimes) / freq; + std::string label = format("Inference time: %.2f ms", t); +- putText(frame, label, Point(0, 15), FONT_HERSHEY_SIMPLEX, 0.5, Scalar(0, 255, 0)); ++ putText(frame, label, Point(0, 20), FONT_HERSHEY_SIMPLEX, 0.8, Scalar(0, 0, 255), 2, 8, false); + + // Print predicted class. + label = format("%s: %.4f", (classes.empty() ? format("Class #%d", classId).c_str() : + classes[classId].c_str()), + confidence); +- putText(frame, label, Point(0, 40), FONT_HERSHEY_SIMPLEX, 0.5, Scalar(0, 255, 0)); ++ putText(frame, label, Point(0, 45), FONT_HERSHEY_SIMPLEX, 0.8, Scalar(0, 0, 255), 2, 8, false); + + imshow(kWinName, frame); + } +Index: git/samples/dnn/object_detection.cpp +=================================================================== +--- git.orig/samples/dnn/object_detection.cpp ++++ git/samples/dnn/object_detection.cpp +@@ -251,13 +251,13 @@ int main(int argc, char** argv) + if (predictionsQueue.counter > 1) + { + std::string label = format("Camera: %.2f FPS", framesQueue.getFPS()); +- putText(frame, label, Point(0, 15), FONT_HERSHEY_SIMPLEX, 0.5, Scalar(0, 255, 0)); ++ putText(frame, label, Point(0, 20), FONT_HERSHEY_SIMPLEX, 0.8, Scalar(0, 0, 255), 2, 8, false); + + label = format("Network: %.2f FPS", predictionsQueue.getFPS()); +- putText(frame, label, Point(0, 30), FONT_HERSHEY_SIMPLEX, 0.5, Scalar(0, 255, 0)); ++ putText(frame, label, Point(0, 45), FONT_HERSHEY_SIMPLEX, 0.8, Scalar(0, 0, 255), 2, 8, false); + + label = format("Skipped frames: %d", framesQueue.counter - predictionsQueue.counter); +- putText(frame, label, Point(0, 45), FONT_HERSHEY_SIMPLEX, 0.5, Scalar(0, 255, 0)); ++ putText(frame, label, Point(0, 70), FONT_HERSHEY_SIMPLEX, 0.8, Scalar(0, 0, 255), 2, 8, false); + } + imshow(kWinName, frame); + } +@@ -293,7 +293,7 @@ int main(int argc, char** argv) + double freq = getTickFrequency() / 1000; + double t = net.getPerfProfile(layersTimes) / freq; + std::string label = format("Inference time: %.2f ms", t); +- putText(frame, label, Point(0, 15), FONT_HERSHEY_SIMPLEX, 0.5, Scalar(0, 255, 0)); ++ putText(frame, label, Point(0, 20), FONT_HERSHEY_SIMPLEX, 0.8, Scalar(0, 0, 255), 2, 8, false); + + imshow(kWinName, frame); + } +@@ -462,7 +462,7 @@ void drawPred(int classId, float conf, i + top = max(top, labelSize.height); + rectangle(frame, Point(left, top - labelSize.height), + Point(left + labelSize.width, top + baseLine), Scalar::all(255), FILLED); +- putText(frame, label, Point(left, top), FONT_HERSHEY_SIMPLEX, 0.5, Scalar()); ++ putText(frame, label, Point(left, top), FONT_HERSHEY_SIMPLEX, 0.8, Scalar()); + } + + void callback(int pos, void*) +Index: git/samples/dnn/segmentation.cpp +=================================================================== +--- git.orig/samples/dnn/segmentation.cpp ++++ git/samples/dnn/segmentation.cpp +@@ -157,7 +157,7 @@ int main(int argc, char** argv) + double freq = getTickFrequency() / 1000; + double t = net.getPerfProfile(layersTimes) / freq; + std::string label = format("Inference time: %.2f ms", t); +- putText(frame, label, Point(0, 15), FONT_HERSHEY_SIMPLEX, 0.5, Scalar(0, 255, 0)); ++ putText(frame, label, Point(0, 20), FONT_HERSHEY_SIMPLEX, 0.8, Scalar(0, 0, 255), 2, 8, false); + + imshow(kWinName, frame); + if (!classes.empty()) +Index: git/samples/dnn/text_detection.cpp +=================================================================== +--- git.orig/samples/dnn/text_detection.cpp ++++ git/samples/dnn/text_detection.cpp +@@ -30,6 +30,7 @@ using namespace cv::dnn; + const char* keys = + "{ help h | | Print help message. }" + "{ input i | | Path to input image or video file. Skip this argument to capture frames from a camera.}" ++ "{ device | 0 | camera device number. }" + "{ detModel dmp | | Path to a binary .pb file contains trained detector network.}" + "{ width | 320 | Preprocess input image by resizing to a specific width. It should be multiple by 32. }" + "{ height | 320 | Preprocess input image by resizing to a specific height. It should be multiple by 32. }" +@@ -106,7 +107,7 @@ int main(int argc, char** argv) + + // Open a video file or an image file or a camera stream. + VideoCapture cap; +- bool openSuccess = parser.has("input") ? cap.open(parser.get<String>("input")) : cap.open(0); ++ bool openSuccess = parser.has("input") ? cap.open(parser.get<String>("input")) : cap.open(parser.get<int>("device")); + CV_Assert(openSuccess); + + static const std::string kWinName = "EAST: An Efficient and Accurate Scene Text Detector"; diff --git a/backports/recipes-support/opencv/opencv/download.patch b/backports/recipes-support/opencv/opencv/download.patch new file mode 100644 index 0000000..33ac483 --- /dev/null +++ b/backports/recipes-support/opencv/opencv/download.patch @@ -0,0 +1,41 @@ +From b18a280fab06a680d9f831bf8b462647f3cb6214 Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.burton@intel.com> +Date: Thu, 9 Jan 2020 16:24:24 +0000 +Subject: [PATCH] opencv: abort configure if we need to download + +This CMake module will download files during do_configure. This is bad as it +means we can't do offline builds. + +Add an option to disallow downloads by emitting a fatal error. + +Upstream-Status: Pending +Signed-off-by: Ross Burton <ross.burton@intel.com> + +--- + cmake/OpenCVDownload.cmake | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/cmake/OpenCVDownload.cmake b/cmake/OpenCVDownload.cmake +index 63cf6d3238..4acf477f70 100644 +--- a/cmake/OpenCVDownload.cmake ++++ b/cmake/OpenCVDownload.cmake +@@ -14,6 +14,7 @@ + # RELATIVE_URL - if set, then URL is treated as a base, and FILENAME will be appended to it + # Note: uses OPENCV_DOWNLOAD_PATH folder as cache, default is <opencv>/.cache + ++set(OPENCV_ALLOW_DOWNLOADS ON CACHE BOOL "Allow downloads") + set(HELP_OPENCV_DOWNLOAD_PATH "Cache directory for downloaded files") + if(DEFINED ENV{OPENCV_DOWNLOAD_PATH}) + set(OPENCV_DOWNLOAD_PATH "$ENV{OPENCV_DOWNLOAD_PATH}" CACHE PATH "${HELP_OPENCV_DOWNLOAD_PATH}") +@@ -156,6 +157,11 @@ function(ocv_download) + + # Download + if(NOT EXISTS "${CACHE_CANDIDATE}") ++ if(NOT OPENCV_ALLOW_DOWNLOADS) ++ message(FATAL_ERROR "Not going to download ${DL_FILENAME}") ++ return() ++ endif() ++ + ocv_download_log("#cmake_download \"${CACHE_CANDIDATE}\" \"${DL_URL}\"") + foreach(try ${OPENCV_DOWNLOAD_TRIES_LIST}) + ocv_download_log("#try ${try}") diff --git a/backports/recipes-support/opencv/opencv_4.5.2.imx.bb b/backports/recipes-support/opencv/opencv_4.5.2.imx.bb new file mode 100644 index 0000000..0169aef --- /dev/null +++ b/backports/recipes-support/opencv/opencv_4.5.2.imx.bb @@ -0,0 +1,301 @@ +# This recipe is for the i.MX fork of opencv. For ease of +# maintenance, the top section is a verbatim copy of an OE-core +# recipe. The second section customizes the recipe for i.MX. + +########## meta-openembedded copy ########### + +SUMMARY = "Opencv : The Open Computer Vision Library" +HOMEPAGE = "http://opencv.org/" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + +DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp" + +SRCREV_opencv = "69357b1e88680658a07cffde7678a4d697469f03" +SRCREV_contrib = "f5d7f6712d4ff229ba4f45cf79dfd11c557d56fd" +SRCREV_ipp = "a56b6ac6f030c312b2dce17430eef13aed9af274" +SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26" +SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d" +SRCREV_face = "8afa57abc8229d611c4937165d20e2a2d9fc5a12" +SRCREV_wechat-qrcode = "a8b69ccc738421293254aec5ddb38bd523503252" + +def ipp_filename(d): + import re + arch = d.getVar('TARGET_ARCH') + if re.match("i.86$", arch): + return "ippicv_2020_lnx_ia32_20191018_general.tgz" + else: + return "ippicv_2020_lnx_intel64_20191018_general.tgz" + +def ipp_md5sum(d): + import re + arch = d.getVar('TARGET_ARCH') + if re.match("i.86$", arch): + return "ad189a940fb60eb71f291321322fe3e8" + else: + return "7421de0095c7a39162ae13a6098782f9" + +IPP_FILENAME = "${@ipp_filename(d)}" +IPP_MD5 = "${@ipp_md5sum(d)}" + +SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg" +SRC_URI = "git://github.com/opencv/opencv.git;name=opencv;branch=master;protocol=https \ + git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib;branch=master;protocol=https \ + git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20191018;destsuffix=ipp;name=ipp;protocol=https \ + git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc;protocol=https \ + git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg;protocol=https \ + git://github.com/opencv/opencv_3rdparty.git;branch=contrib_face_alignment_20170818;destsuffix=face;name=face;protocol=https \ + git://github.com/WeChatCV/opencv_3rdparty.git;branch=wechat_qrcode;destsuffix=wechat_qrcode;name=wechat-qrcode;protocol=https \ + file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \ + file://0003-To-fix-errors-as-following.patch \ + file://0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch \ + file://0001-Dont-use-isystem.patch \ + file://download.patch \ + file://0001-Make-ts-module-external.patch \ + file://0001-sfm-link-with-Glog_LIBS.patch;patchdir=../contrib \ + " +SRC_URI_append_riscv64 = " file://0001-Use-Os-to-compile-tinyxml2.cpp.patch;patchdir=../contrib" + +S = "${WORKDIR}/git" + +# OpenCV wants to download more files during configure. We download these in +# do_fetch and construct a source cache in the format it expects +OPENCV_DLDIR = "${WORKDIR}/downloads" + +do_unpack_extra() { + tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR} + + md5() { + # Return the MD5 of $1 + echo $(md5sum $1 | cut -d' ' -f1) + } + cache() { + TAG=$1 + shift + mkdir --parents ${OPENCV_DLDIR}/$TAG + for F in $*; do + DEST=${OPENCV_DLDIR}/$TAG/$(md5 $F)-$(basename $F) + test -e $DEST || ln -s $F $DEST + done + } + cache xfeatures2d/boostdesc ${WORKDIR}/boostdesc/*.i + cache xfeatures2d/vgg ${WORKDIR}/vgg/*.i + cache data ${WORKDIR}/face/*.dat + cache wechat_qrcode ${WORKDIR}/wechat_qrcode/*.caffemodel + cache wechat_qrcode ${WORKDIR}/wechat_qrcode/*.prototxt +} +addtask unpack_extra after do_unpack before do_patch + +CMAKE_VERBOSE = "VERBOSE=1" + +EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \ + -DWITH_1394=OFF \ + -DENABLE_PRECOMPILED_HEADERS=OFF \ + -DCMAKE_SKIP_RPATH=ON \ + -DOPENCV_ICV_HASH=${IPP_MD5} \ + -DIPPROOT=${WORKDIR}/ippicv_lnx \ + -DOPENCV_GENERATE_PKGCONFIG=ON \ + -DOPENCV_DOWNLOAD_PATH=${OPENCV_DLDIR} \ + -DOPENCV_ALLOW_DOWNLOADS=OFF \ + ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \ + ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \ + ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \ +" +EXTRA_OECMAKE_append_x86 = " -DX86=ON" + +PACKAGECONFIG ??= "gapi python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \ + ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}" + +PACKAGECONFIG[gapi] = "-DWITH_ADE=ON -Dade_DIR=${STAGING_LIBDIR},-DWITH_ADE=OFF,ade" +PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas," +PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft," +PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native," +PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog," +PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype," +PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2," +PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER=ON,-DWITH_GSTREAMER=OFF,gstreamer1.0 gstreamer1.0-plugins-base," +PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+3," +PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper," +PACKAGECONFIG[java] = "-DJAVA_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native fastjar-native openjdk-8-native," +PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg," +PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav," +PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils," +PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,opencl-headers virtual/opencl-icd," +PACKAGECONFIG[oracle-java] = "-DJAVA_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${ORACLE_JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native oracle-jse-jdk oracle-jse-jdk-native," +PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng," +PACKAGECONFIG[python2] = "-DPYTHON2_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python-numpy," +PACKAGECONFIG[python3] = "-DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python3-numpy," +PACKAGECONFIG[samples] = "-DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF,," +PACKAGECONFIG[tbb] = "-DWITH_TBB=ON,-DWITH_TBB=OFF,tbb," +PACKAGECONFIG[tests] = "-DBUILD_TESTS=ON,-DBUILD_TESTS=OFF,," +PACKAGECONFIG[text] = "-DBUILD_opencv_text=ON,-DBUILD_opencv_text=OFF,tesseract," +PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff," +PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils," + +inherit pkgconfig cmake + +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'distutils3-base', '', d)} +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'distutils-base', '', d)} + +export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}" +export PYTHON="${STAGING_BINDIR_NATIVE}/${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3', 'python', d)}" +export ORACLE_JAVA_HOME="${STAGING_DIR_NATIVE}/usr/bin/java" +export JAVA_HOME="${STAGING_DIR_NATIVE}/usr/lib/jvm/openjdk-8-native" +export ANT_DIR="${STAGING_DIR_NATIVE}/usr/share/ant/" + +TARGET_CC_ARCH += "-I${S}/include " + +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'samples', '${PN}-samples', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'oracle-java', '${PN}-java', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'java', '${PN}-java', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python-${BPN}', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)} \ + ${PN}-apps" + +python populate_packages_prepend () { + cv_libdir = d.expand('${libdir}') + do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True) + do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev') + do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev') + do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True) + + pn = d.getVar('PN') + metapkg = pn + '-dev' + d.setVar('ALLOW_EMPTY_' + metapkg, "1") + blacklist = [ metapkg ] + metapkg_rdepends = [ ] + packages = d.getVar('PACKAGES').split() + for pkg in packages[1:]: + if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'): + metapkg_rdepends.append(pkg) + d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends)) + + metapkg = pn + d.setVar('ALLOW_EMPTY_' + metapkg, "1") + blacklist = [ metapkg, "libopencv-ts" ] + metapkg_rdepends = [ ] + for pkg in packages[1:]: + if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale') and not pkg.endswith('-staticdev'): + metapkg_rdepends.append(pkg) + d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) +} + +PACKAGES_DYNAMIC += "^libopencv-.*" + +FILES_${PN} = "" +FILES_${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/*" +FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig ${libdir}/cmake/opencv4/*.cmake" +FILES_${PN}-staticdev += "${libdir}/opencv4/3rdparty/*.a" +FILES_${PN}-apps = "${bindir}/* ${datadir}/opencv4 ${datadir}/licenses" +FILES_${PN}-java = "${datadir}/OpenCV/java" +FILES_${PN}-samples = "${datadir}/opencv4/samples/" + +INSANE_SKIP_${PN}-java = "libdir" +INSANE_SKIP_${PN}-dbg = "libdir" + +ALLOW_EMPTY_${PN} = "1" + +SUMMARY_python-opencv = "Python bindings to opencv" +FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*" +RDEPENDS_python-opencv = "python-core python-numpy" + +SUMMARY_python3-opencv = "Python bindings to opencv" +FILES_python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*" +RDEPENDS_python3-opencv = "python3-core python3-numpy" + +RDEPENDS_${PN}-apps = "bash" + +do_compile_prepend() { + # remove the build host info to improve reproducibility + if [ -f ${WORKDIR}/build/modules/core/version_string.inc ]; then + sed -i "s#${WORKDIR}#/workdir#g" ${WORKDIR}/build/modules/core/version_string.inc + fi +} + +do_install_append() { + # Move Python files into correct library folder (for multilib build) + if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then + mv ${D}/usr/lib/* ${D}/${libdir}/ + rm -rf ${D}/usr/lib + fi + # remove build host path to improve reproducibility + if [ -f ${D}${libdir}/cmake/opencv4/OpenCVModules.cmake ]; then + sed -e 's@${STAGING_DIR_HOST}@@g' \ + -i ${D}${libdir}/cmake/opencv4/OpenCVModules.cmake + fi +} + +TOOLCHAIN = "gcc" + +########## End of meta-openembedded copy ########## + +########## i.MX overrides ########## + +SUMMARY = "Opencv : The Open Computer Vision Library, i.MX Fork" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +# Replace the opencv URL with the fork +SRCREV_opencv = "5423d53ae0d116ee5bbe52f8b5503f0cd8586998" +OPENCV_SRC ?= "git://github.com/nxp-imx/opencv-imx.git;protocol=https;branch=master" +SRCBRANCH = "4.5.2_imx" +SRC_URI_remove = "git://github.com/opencv/opencv.git;name=opencv;branch=master;protocol=https" +SRC_URI =+ "${OPENCV_SRC};branch=${SRCBRANCH};name=opencv" + +# Add opencv_extra +SRCREV_extra = "855c4528402e563283f86f28c6393f57eb5dcf62" +SRC_URI += " \ + git://github.com/opencv/opencv_extra.git;destsuffix=extra;name=extra;branch=master;protocol=https \ + file://0001-Add-smaller-version-of-download_models.py.patch;patchdir=../extra \ +" +SRCREV_FORMAT_append = "_extra" + +# Add tiny-dnn +SRC_URI[tinydnn.md5sum] = "adb1c512e09ca2c7a6faef36f9c53e59" +SRC_URI[tinydnn.sha256sum] = "e2c61ce8c5debaa644121179e9dbdcf83f497f39de853f8dd5175846505aa18b" +SRC_URI += " \ + https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz;destsuffix=git/3rdparty/tinydnn/tiny-dnn-1.0.0a3;name=tinydnn;unpack=false \ + file://OpenCV_DNN_examples.patch \ +" + +PACKAGECONFIG_remove = "eigen" +PACKAGECONFIG_append_mx8 = " dnn text" +PACKAGECONFIG_OPENCL = "" +PACKAGECONFIG_OPENCL_mx8 = "opencl" +PACKAGECONFIG_OPENCL_mx8dxl = "" +PACKAGECONFIG_OPENCL_mx8phantomdxl = "" +PACKAGECONFIG_OPENCL_mx8mm = "" +PACKAGECONFIG_OPENCL_mx8mnlite = "" +PACKAGECONFIG_append = " ${PACKAGECONFIG_OPENCL}" + +PACKAGECONFIG[openvx] = "-DWITH_OPENVX=ON -DOPENVX_ROOT=${STAGING_LIBDIR} -DOPENVX_LIB_CANDIDATES='OpenVX;OpenVXU',-DWITH_OPENVX=OFF,virtual/libopenvx," +PACKAGECONFIG[qt5] = "-DWITH_QT=ON -DOE_QMAKE_PATH_EXTERNAL_HOST_BINS=${STAGING_BINDIR_NATIVE} -DCMAKE_PREFIX_PATH=${STAGING_BINDIR_NATIVE}/cmake,-DWITH_QT=OFF,qtbase qtbase-native," +PACKAGECONFIG[tests-imx] = "-DINSTALL_TESTS=ON -DOPENCV_TEST_DATA_PATH=${S}/../extra/testdata, -DINSTALL_TESTS=OFF," + +do_unpack_extra_append() { + mkdir -p ${S}/3rdparty/tinydnn/ + tar xzf ${WORKDIR}/v1.0.0a3.tar.gz -C ${S}/3rdparty/tinydnn/ +} + +do_install_append() { + ln -sf opencv4/opencv2 ${D}${includedir}/opencv2 + install -d ${D}${datadir}/OpenCV/samples/data + cp -r ${S}/samples/data/* ${D}${datadir}/OpenCV/samples/data + install -d ${D}${datadir}/OpenCV/samples/bin/ + cp -f bin/example_* ${D}${datadir}/OpenCV/samples/bin/ + if ${@bb.utils.contains('PACKAGECONFIG', 'tests-imx', 'true', 'false', d)}; then + cp -r share/opencv4/testdata/cv/face/* ${D}${datadir}/opencv4/testdata/cv/face/ + fi +} + +FILES_${PN}-samples += "${datadir}/OpenCV/samples" + +COMPATIBLE_MACHINE = "(mx8)" + +########## End of i.MX overrides ########## diff --git a/conf/layer.conf b/conf/layer.conf index a9b910f..9d42e23 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -3,8 +3,10 @@ BBPATH .= ":${LAYERDIR}" # We have recipes-* directories, add to BBFILES BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend" -# Recipes which backport later versions of other layers are placed here -BBFILES += "${LAYERDIR}/backports/recipes-*/*/*.bb ${LAYERDIR}/backports/recipes-*/*/*.bbappend" +# Recipes which backport later versions of other layers are placed here. +# Only valid for Toradex distributions. +BACKPORT_BBFILES = "${LAYERDIR}/backports/recipes-*/*/*.bb ${LAYERDIR}/backports/recipes-*/*/*.bbappend" +BBFILES += "${@ d.getVar('BACKPORT_BBFILES') if 'tdx' in d.getVar('DISTROOVERRIDES').split(':') else ''}" BBFILE_COLLECTIONS += "toradex-nxp-layer" BBFILE_PATTERN_toradex-nxp-layer = "^${LAYERDIR}/" @@ -30,9 +32,35 @@ FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V13 = "1b4db4b25c3a1e422c0c0ed6 FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V15 = "983e4c77621568488dd902b27e0c2143" FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V16 = "e9e880185bda059c90c541d40ceca922" FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V17 = "cf3f9b8d09bc3926b1004ea71f7a248a" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V18 = "231e11849a4331fcbb19d7f4aab4a659" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V19 = "a632fefd1c359980434f9389833cab3a" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V22 = "3c3fe2b904fd694f28d2f646ee16dddb" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V23 = "85d06b38f17b935ca11784d67075b846" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V24 = "417b82f17fc02b88125331ed312f6f1b" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V24.1 = "b3b0bab6ff55420d043cf1652c52d788" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V25 = "f35df765ff17e69043ea21f350e3229c" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V27 = "e565271ec9a80ce47abbddc4bffe56fa" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V30 = "03bcadc8dc0a788f66ca9e2b89f56c6f" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V31 = "dedee5689786754f61ea3a76035c8a81" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V32 = "17d2319de7baa686e8a755ba58a9ebf5" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V33 = "e4098ac4459cb81b07d3f0c22b3e8370" +FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V34 = "be5ff43682ed6c57dfcbeb97651c2829" FSL_EULA_FILE_MD5SUMS_append = " \ ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V13} \ ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V15} \ ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V16} \ ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V17} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V18} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V19} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V22} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V23} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V24} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V24.1} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V25} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V27} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V30} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V31} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V32} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V33} \ + ${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V34} \ " diff --git a/conf/machine/apalis-imx8.conf b/conf/machine/apalis-imx8.conf index 55d981e..ce87c14 100644 --- a/conf/machine/apalis-imx8.conf +++ b/conf/machine/apalis-imx8.conf @@ -27,9 +27,16 @@ USE_VT = "0" KERNEL_DEVICETREE = " \ freescale/imx8qm-apalis-eval.dtb \ + freescale/imx8qm-apalis-eval-v1.2.dtb \ freescale/imx8qm-apalis-ixora-v1.1.dtb \ freescale/imx8qm-apalis-v1.1-eval.dtb \ + freescale/imx8qm-apalis-v1.1-eval-v1.2.dtb \ freescale/imx8qm-apalis-v1.1-ixora-v1.1.dtb \ + freescale/imx8qm-apalis-v1.1-ixora-v1.2.dtb \ + freescale/imx8qp-apalis-v1.1-eval.dtb \ + freescale/imx8qp-apalis-v1.1-eval-v1.2.dtb \ + freescale/imx8qp-apalis-v1.1-ixora-v1.1.dtb \ + freescale/imx8qp-apalis-v1.1-ixora-v1.2.dtb \ " KERNEL_IMAGETYPE_aarch64 = "Image.gz" @@ -38,7 +45,7 @@ UBOOT_SUFFIX = "bin" UBOOT_CONFIG ??= "sd" UBOOT_CONFIG[sd] = "apalis-imx8_defconfig,sdcard" -UBOOT_ENTRYPOINT = "0x80280000" +UBOOT_ENTRYPOINT = "0x96000000" UBOOT_DTB_LOADADDRESS = "0x83000000" UBOOT_DTBO_LOADADDRESS = "0x83100000" UBOOT_RD_LOADADDRESS = "0xA0000000" @@ -53,13 +60,12 @@ PREFERRED_PROVIDER_u-boot-default-script = "u-boot-distro-boot" PREFERRED_PROVIDER_virtual/kernel = "linux-toradex" PREFERRED_PROVIDER_virtual/kernel_preempt-rt = "linux-toradex" PREFERRED_PROVIDER_virtual/bootloader = "u-boot-toradex" +PREFERRED_PROVIDER_u-boot = "u-boot-toradex" # Currently we use the nxp 2020.04 downstream for mx8 as some features are # not yet available in 2020.07. PREFERRED_VERSION_u-boot-toradex = "2020.04%" -MACHINE_FIRMWARE_append = " linux-firmware-pcie8997" -MACHINE_FIRMWARE_append = " firmware-imx-vpu-imx8" -MACHINE_FIRMWARE_append = " firmware-imx-8" +MACHINE_FIRMWARE_append = " linux-firmware-pcie8997 firmware-imx-hdmi firmware-imx-vpu-imx8" IMXBOOT_TARGETS = "flash_b0" @@ -76,8 +82,10 @@ OFFSET_BOOTROM_PAYLOAD = "0" TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT = "apalis-imx8_hdmi_overlay.dtbo" -TORADEX_PRODUCT_IDS = "0037 0047 0048 0049" +TORADEX_PRODUCT_IDS = "0037 0047 0048 0049 0067" TORADEX_PRODUCT_IDS[0037] = "imx8qm-apalis-v1.1-eval.dtb" TORADEX_PRODUCT_IDS[0047] = "imx8qm-apalis-v1.1-eval.dtb" -TORADEX_PRODUCT_IDS[0048] = "imx8qm-apalis-v1.1-eval.dtb" -TORADEX_PRODUCT_IDS[0049] = "imx8qm-apalis-v1.1-eval.dtb" +TORADEX_PRODUCT_IDS[0048] = "imx8qp-apalis-v1.1-eval.dtb" +TORADEX_PRODUCT_IDS[0049] = "imx8qp-apalis-v1.1-eval.dtb" +TORADEX_PRODUCT_IDS[0067] = "imx8qm-apalis-v1.1-eval.dtb" + diff --git a/conf/machine/apalis-imx8x-v11a.conf b/conf/machine/apalis-imx8x-v11a.conf deleted file mode 100644 index 28aed93..0000000 --- a/conf/machine/apalis-imx8x-v11a.conf +++ /dev/null @@ -1,18 +0,0 @@ -#@TYPE: Machine -#@NAME: Toradex Apalis iMX8X with B0 silicon -#@DESCRIPTION: Toradex Apalis iMX8X powered by a i.MX 8X SoC (B0 silicon) as found on all V1.0 and V1.1A versions -#@MAINTAINER: Philippe Schenker <philippe.schenker@toradex.com> - -# for C0 silicon add mx8qxpc0:, -# for B0 silicon use empty string -SILICON-OVERRIDES = "" - -# keep the original machine as an override with high prio -MACHINEOVERRIDES =. "apalis-imx8x:" - -require conf/machine/apalis-imx8x.conf - -# reuse DISTRO_FLAVOUR to display special version exception in the -# Toradex Easy Installer application -DISTRO_FLAVOUR_append = " for V1.1A HW" -MACHINE_NAME = "Apalis-iMX8X-V11A" diff --git a/conf/machine/apalis-imx8x.conf b/conf/machine/apalis-imx8x.conf deleted file mode 100644 index 2d354c8..0000000 --- a/conf/machine/apalis-imx8x.conf +++ /dev/null @@ -1,79 +0,0 @@ -#@TYPE: Machine -#@NAME: Toradex Apalis iMX8X -#@DESCRIPTION: Toradex Apalis iMX8X powered by a i.MX 8X SoC -#@MAINTAINER: Philippe Schenker <philippe.schenker@toradex.com> - -MACHINE_NAME = "Apalis-iMX8X" - -# for C0 silicon add mx8qxpc0 to the right of mx8qxp -SILICON-OVERRIDES ?= "mx8qxpc0:" -MACHINEOVERRIDES =. "mx8:mx8x:mx8qxp:${SILICON-OVERRIDES}" - -IMX_DEFAULT_BSP = "nxp" - -require conf/machine/include/imx-base.inc -# if one wants cortexa35-crypto, set DEFAULTTUNE accordingly -DEFAULTTUNE_mx8qxp = "aarch64" -require conf/machine/include/tune-cortexa35.inc - -# Don't include kernels in standard images -RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" - -LOADADDR = "" - -# we do not want to have getty running on tty1 as we run -# auto-serial-console there -USE_VT = "0" - -KERNEL_DEVICETREE = " \ - freescale/imx8qxp-apalis-eval.dtb \ -" - -KERNEL_IMAGETYPE_aarch64 = "Image.gz" - -UBOOT_SUFFIX = "bin" -UBOOT_CONFIG ??= "sd" -UBOOT_CONFIG[sd] = "apalis-imx8x_defconfig,sdcard" - -UBOOT_ENTRYPOINT = "0x80280000" -UBOOT_DTB_LOADADDRESS = "0x83100000" -UBOOT_DTBO_LOADADDRESS = "0x83200000" -UBOOT_RD_LOADADDRESS = "0xA0000000" - -BOOT_SPACE = "65536" -IMX_BOOT_SEEK = "32" - -IMAGE_BOOT_FILES_append = " boot.scr-${MACHINE};boot.scr" -WKS_FILE_DEPENDS_append = " u-boot-default-script" -PREFERRED_PROVIDER_u-boot-default-script = "u-boot-distro-boot" - -PREFERRED_PROVIDER_virtual/kernel = "linux-toradex" -PREFERRED_PROVIDER_virtual/kernel_preempt-rt = "linux-toradex" -PREFERRED_PROVIDER_virtual/bootloader = "u-boot-toradex" -# Currently we use the nxp 2020.04 downstream for mx8 as some features are -# not yet available in 2020.07. -PREFERRED_VERSION_u-boot-toradex = "2020.04%" - -MACHINE_FIRMWARE_append = " linux-firmware-usb8997" -MACHINE_FIRMWARE_append = " firmware-imx-vpu-imx8" - -IMXBOOT_TARGETS = "flash" - -PREFERRED_PROVIDER_imx-sc-firmware = "imx-sc-firmware-toradex" -BOARD_TYPE = "apalis" - -IMAGE_CLASSES_append = " image_type_tezi" -IMAGE_FSTYPES += "teziimg" - -# The imx-boot container takes care for the i.MX 8 offset, so the container -# has to be flashed at offset 0 directly -UBOOT_BINARY_TEZI_EMMC = "imx-boot" -OFFSET_BOOTROM_PAYLOAD = "0" - -TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT = "apalis-imx8x_dsihdmi_overlay.dtbo apalis-imx8x_parallel-rgb_overlay.dtbo display-lt161010_overlay.dtbo apalis-imx8x_ad7879_overlay.dtbo" - -TORADEX_PRODUCT_IDS = "0046 0053 0054 2600" -TORADEX_PRODUCT_IDS[0046] = "imx8qxp-apalis-eval.dtb" -TORADEX_PRODUCT_IDS[0053] = "imx8qxp-apalis-eval.dtb" -TORADEX_PRODUCT_IDS[0054] = "imx8qxp-apalis-eval.dtb" -TORADEX_PRODUCT_IDS[2600] = "imx8qxp-apalis-eval.dtb" diff --git a/conf/machine/colibri-imx6ull-emmc.conf b/conf/machine/colibri-imx6ull-emmc.conf new file mode 100644 index 0000000..46a9b13 --- /dev/null +++ b/conf/machine/colibri-imx6ull-emmc.conf @@ -0,0 +1,49 @@ +#@TYPE: Machine +#@NAME: Toradex Colibri iMX6ULL 1GB (eMMC) +#@SOC: i.MX6ULL +#@DESCRIPTION: Machine configuration for Toradex Colibri iMX6 ULL 1GB (eMMC) SOM +#@MAINTAINER: Max Krummenacher <max.krummenacher@toradex.com> + +MACHINEOVERRIDES =. "mx6:mx6ul:mx6ull:" + +include conf/machine/include/imx-base.inc +include conf/machine/include/tune-cortexa7.inc + +PREFERRED_PROVIDER_virtual/kernel_use-nxp-bsp ?= "linux-toradex" +PREFERRED_PROVIDER_virtual/kernel_preempt-rt = "linux-toradex" + +PREFERRED_PROVIDER_virtual/kernel_use-mainline-bsp = "linux-toradex-mainline" +PREFERRED_PROVIDER_virtual/kernel_use-mainline-bsp_preempt-rt = "linux-toradex-mainline" +PREFERRED_PROVIDER_virtual/dtb_use-mainline-bsp = "device-tree-overlays-mainline" + +KERNEL_DEVICETREE_use-mainline-bsp = " \ + imx6ull-colibri-emmc-eval-v3.dtb \ +" +KERNEL_DEVICETREE_use-nxp-bsp = " \ + imx6ull-colibri-emmc-aster.dtb \ + imx6ull-colibri-emmc-eval-v3.dtb \ + imx6ull-colibri-emmc-iris.dtb \ + imx6ull-colibri-emmc-iris-v2.dtb \ +" + +KERNEL_IMAGETYPE = "zImage" +# The kernel lives in its own ubi volume. +RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" + +PREFERRED_PROVIDER_u-boot ?= "u-boot-toradex" +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-toradex" +PREFERRED_PROVIDER_u-boot-fw-utils ?= "u-boot-toradex-fw-utils" +PREFERRED_RPROVIDER_u-boot-fw-utils ?= "u-boot-toradex-fw-utils" +PREFERRED_PROVIDER_u-boot-default-script ?= "u-boot-script-toradex" + +UBOOT_MAKE_TARGET = "u-boot.imx" +UBOOT_MACHINE ?= "colibri-imx6ull-emmc_defconfig" + +IMAGE_FSTYPES += "tar.xz" +# wic support +IMAGE_BOOT_FILES_append = " boot.scr-${MACHINE};boot.scr" +WKS_FILE_DEPENDS_append = " u-boot-default-script" +WKS_FILE = "sdimage-bootpart.wks" + +MACHINE_FEATURES += "screen usbgadget usbhost vfat ext2 alsa touchscreen wifi bluetooth 3g" +MACHINE_FIRMWARE_remove = "firmware-imx-epdc" diff --git a/conf/machine/colibri-imx8x-v10b.conf b/conf/machine/colibri-imx8x-v10b.conf deleted file mode 100644 index 2049335..0000000 --- a/conf/machine/colibri-imx8x-v10b.conf +++ /dev/null @@ -1,18 +0,0 @@ -#@TYPE: Machine -#@NAME: Toradex Colibri iMX8X with B0 silicon -#@DESCRIPTION: Toradex Colibri iMX8X powered by a i.MX 8X SoC (B0 silicon) as found on older SoM Versions V1.0B -#@MAINTAINER: Max Krummenacher <max.krummenacherr@toradex.com> - -# for C0 silicon add mx8qxpc0:, -# for B0 silicon use empty string -SILICON-OVERRIDES = "" - -# keep the original machine as an override with high prio -MACHINEOVERRIDES =. "colibri-imx8x:" - -require conf/machine/colibri-imx8x.conf - -# reuse DISTRO_FLAVOUR to display special version exception in the -# Toradex Easy Installer application -DISTRO_FLAVOUR_append = " for V1.0B HW" -MACHINE_NAME = "Colibri-iMX8X-V10B" diff --git a/conf/machine/colibri-imx8x.conf b/conf/machine/colibri-imx8x.conf index e6a287d..8535431 100644 --- a/conf/machine/colibri-imx8x.conf +++ b/conf/machine/colibri-imx8x.conf @@ -26,9 +26,14 @@ LOADADDR = "" USE_VT = "0" KERNEL_DEVICETREE = " \ + freescale/imx8dx-colibri-aster.dtb \ + freescale/imx8dx-colibri-eval-v3.dtb \ + freescale/imx8dx-colibri-iris.dtb \ + freescale/imx8dx-colibri-iris-v2.dtb \ freescale/imx8qxp-colibri-aster.dtb \ - freescale/imx8qxp-colibri-dsihdmi-eval-v3.dtb \ freescale/imx8qxp-colibri-eval-v3.dtb \ + freescale/imx8qxp-colibri-iris.dtb \ + freescale/imx8qxp-colibri-iris-v2.dtb \ " KERNEL_DEVICETREE_use-mainline-bsp = "freescale/imx8qxp-colibri-eval-v3.dtb" @@ -38,7 +43,7 @@ UBOOT_SUFFIX = "bin" UBOOT_CONFIG ??= "sd" UBOOT_CONFIG[sd] = "colibri-imx8x_defconfig,sdcard" -UBOOT_ENTRYPOINT = "0x80280000" +UBOOT_ENTRYPOINT = "0x96000000" UBOOT_DTB_LOADADDRESS = "0x83100000" UBOOT_DTBO_LOADADDRESS = "0x83200000" UBOOT_RD_LOADADDRESS = "0xA0000000" @@ -57,6 +62,7 @@ PREFERRED_PROVIDER_virtual/kernel_use-mainline-bsp_preempt-rt = "linux-toradex-m PREFERRED_PROVIDER_virtual/dtb_use-mainline-bsp = "device-tree-overlays-mainline" PREFERRED_PROVIDER_virtual/bootloader = "u-boot-toradex" +PREFERRED_PROVIDER_u-boot = "u-boot-toradex" # Currently we use the nxp 2020.04 downstream for mx8 as some features are # not yet available in 2020.07. PREFERRED_VERSION_u-boot-toradex = "2020.04%" diff --git a/conf/machine/include/apalis-imx6.inc b/conf/machine/include/apalis-imx6.inc index c2ae376..a009260 100644 --- a/conf/machine/include/apalis-imx6.inc +++ b/conf/machine/include/apalis-imx6.inc @@ -1,15 +1,19 @@ IMAGE_CLASSES_append = " image_type_tezi" IMAGE_FSTYPES_append = " teziimg" -TORADEX_PRODUCT_IDS = "0027 0028 0029 0035" +TORADEX_PRODUCT_IDS = "0027 0028 0029 0035 0082 0083 0084 0085" # The payload offsets are given in number of 512 byte blocks. OFFSET_BOOTROM_PAYLOAD = "2" OFFSET_SPL_PAYLOAD = "138" MACHINE_NAME = "Apalis-iMX6" -KERNEL_DEVICETREE += "imx6q-apalis-ixora-v1.2.dtb" +KERNEL_DEVICETREE += " \ + imx6q-apalis-ixora-v1.2.dtb \ + imx6q-apalis-eval-v1.2.dtb \ +" KERNEL_DEVICETREE_use-mainline-bsp += " \ imx6q-apalis-eval.dtb \ + imx6q-apalis-eval-v1.2.dtb \ imx6q-apalis-ixora-v1.1.dtb \ " @@ -29,4 +33,4 @@ UBOOT_DTBO_LOADADDRESS_apalis-imx6 = "0x17000000" MACHINE_FIRMWARE_remove = "firmware-imx-epdc" TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT = "apalis-imx6_hdmi_overlay.dtbo" -TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT_use-mainline-bsp = "apalis-imx6_parallel-rgb_overlay.dtbo display-edt7_overlay.dtbo apalis-imx6_stmpe-ts_overlay.dtbo apalis-imx6_hdmi_overlay.dtbo" +TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT_use-mainline-bsp = "apalis-imx6_parallel-rgb_overlay.dtbo display-edt7_overlay.dtbo apalis-imx6_stmpe-ts_overlay.dtbo apalis-imx6_hdmi_overlay.dtbo apalis-imx6_vga_overlay.dtbo" diff --git a/conf/machine/include/colibri-imx6.inc b/conf/machine/include/colibri-imx6.inc index dac8b07..a06abbc 100644 --- a/conf/machine/include/colibri-imx6.inc +++ b/conf/machine/include/colibri-imx6.inc @@ -1,6 +1,6 @@ IMAGE_CLASSES_append = " image_type_tezi" IMAGE_FSTYPES_append = " teziimg" -TORADEX_PRODUCT_IDS = "0014 0015 0016 0017" +TORADEX_PRODUCT_IDS = "0014 0015 0016 0017 0077 0078 0079 0080" # The payload offsets are given in number of 512 byte blocks. OFFSET_BOOTROM_PAYLOAD = "2" OFFSET_SPL_PAYLOAD = "138" @@ -28,4 +28,4 @@ MACHINE_FIRMWARE_remove = "firmware-imx-epdc" UBOOT_ENTRYPOINT_colibri-imx6 = "0x11000000" UBOOT_DTB_LOADADDRESS_colibri-imx6 = "0x12100000" -UBOOT_DTBO_LOADADDRESS_colibri-imx6 = "0x12110000" +UBOOT_DTBO_LOADADDRESS_colibri-imx6 = "0x17000000" diff --git a/conf/machine/include/colibri-imx6ull-emmc.inc b/conf/machine/include/colibri-imx6ull-emmc.inc new file mode 100644 index 0000000..2f4c1e4 --- /dev/null +++ b/conf/machine/include/colibri-imx6ull-emmc.inc @@ -0,0 +1,26 @@ +IMAGE_CLASSES_append = " image_type_tezi" +IMAGE_FSTYPES_append = " teziimg" +# The payload offsets are given in number of 512 byte blocks. +OFFSET_BOOTROM_PAYLOAD = "2" +TORADEX_PRODUCT_IDS = "0062" +TORADEX_FLASH_TYPE = "emmc" + +WIC_CREATE_EXTRA_ARGS_append = " --no-fstab-update" + +MACHINE_NAME = "Colibri-iMX6ULL-eMMC" + +PREFERRED_PROVIDER_u-boot-default-script = "u-boot-distro-boot" + +UBOOT_MAKE_TARGET_colibri-imx6ull-emmc = "u-boot.imx" +UBOOT_ENTRYPOINT_colibri-imx6ull-emmc = "0x81000000" +UBOOT_DTB_LOADADDRESS_colibri-imx6ull-emmc = "0x82100000" +UBOOT_DTBO_LOADADDRESS_colibri-imx6ull-emmc = "0x87000000" + +TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT = "colibri-imx6ull_parallel-rgb_vga_overlay.dtbo colibri-imx6ull_ad7879_overlay.dtbo" +TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT_use-mainline-bsp = "colibri-imx6ull_parallel-rgb_overlay.dtbo colibri-imx6ull_ad7879_overlay.dtbo display-vga_overlay.dtbo" + +PREFERRED_PROVIDER_virtual/kernel = "linux-toradex" +PREFERRED_PROVIDER_virtual/kernel_preempt-rt = "linux-toradex" +PREFERRED_PROVIDER_virtual/kernel_use-mainline-bsp = "linux-toradex-mainline" +PREFERRED_PROVIDER_virtual/kernel_use-mainline-bsp_preempt-rt = "linux-toradex-mainline" +PREFERRED_PROVIDER_virtual/dtb_use-mainline-bsp = "device-tree-overlays-mainline" diff --git a/conf/machine/include/colibri-imx6ull.inc b/conf/machine/include/colibri-imx6ull.inc index 106fc88..b83da92 100644 --- a/conf/machine/include/colibri-imx6ull.inc +++ b/conf/machine/include/colibri-imx6ull.inc @@ -14,14 +14,14 @@ MACHINE_NAME = "Colibri-iMX6ULL" PREFERRED_PROVIDER_u-boot-default-script = "u-boot-distro-boot" UBOOT_ENTRYPOINT_colibri-imx6ull = "0x81000000" -MACHINEOVERRIDES_append_upstream = ":use-mainline-bsp" +MACHINE_FIRMWARE_remove_use-mainline-bsp = "firmware-imx-vpu-imx6q firmware-imx-vpu-imx6d" UBOOT_MAKE_TARGET_colibri-imx6ull = "u-boot.imx" UBOOT_ENTRYPOINT_colibri-imx6ull = "0x81000000" UBOOT_DTB_LOADADDRESS_colibri-imx6ull = "0x82100000" UBOOT_DTBO_LOADADDRESS_colibri-imx6ull = "0x87000000" -KERNEL_DEVICETREE_append_use_nxp_bsp = " \ +KERNEL_DEVICETREE_append_use-nxp-bsp = " \ imx6ull-colibri-aster.dtb \ imx6ull-colibri-iris.dtb \ imx6ull-colibri-iris-v2.dtb \ diff --git a/conf/machine/include/colibri-imx7-emmc.inc b/conf/machine/include/colibri-imx7-emmc.inc index 7a66037..a9577b2 100644 --- a/conf/machine/include/colibri-imx7-emmc.inc +++ b/conf/machine/include/colibri-imx7-emmc.inc @@ -7,9 +7,8 @@ TORADEX_FLASH_TYPE = "emmc" MACHINE_NAME = "Colibri-iMX7-eMMC" -MACHINEOVERRIDES_append_upstream = ":use-mainline-bsp" - MACHINE_FIRMWARE_remove = "firmware-imx-epdc" +MACHINE_FIRMWARE_remove_use-mainline-bsp = "firmware-imx-vpu-imx6q firmware-imx-vpu-imx6d" PREFERRED_PROVIDER_virtual/kernel = "linux-toradex" PREFERRED_PROVIDER_virtual/kernel_preempt-rt = "linux-toradex" @@ -32,4 +31,4 @@ TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT_use-mainline-bsp = "colibri-imx7_parallel-r UBOOT_ENTRYPOINT_colibri-imx7-emmc = "0x81000000" UBOOT_DTB_LOADADDRESS_colibri-imx7-emmc = "0x82000000" -UBOOT_DTBO_LOADADDRESS_colibri-imx7-emmc = "0x82010000" +UBOOT_DTBO_LOADADDRESS_colibri-imx7-emmc = "0x87000000" diff --git a/conf/machine/include/colibri-imx7.inc b/conf/machine/include/colibri-imx7.inc index 66bce6e..481511f 100644 --- a/conf/machine/include/colibri-imx7.inc +++ b/conf/machine/include/colibri-imx7.inc @@ -1,16 +1,16 @@ IMAGE_CLASSES_append = " image_type_tezi" IMAGE_FSTYPES_append = " teziimg" -TORADEX_PRODUCT_IDS = "0032 0033 0041" +TORADEX_PRODUCT_IDS = "0032 0033 0041 0081" TORADEX_PRODUCT_IDS[0032] = "imx7s-colibri-eval-v3.dtb" TORADEX_PRODUCT_IDS[0033] = "imx7d-colibri-eval-v3.dtb" TORADEX_PRODUCT_IDS[0041] = "imx7d-colibri-eval-v3.dtb" +TORADEX_PRODUCT_IDS[0081] = "imx7d-colibri-eval-v3.dtb" TORADEX_FLASH_TYPE = "rawnand" MACHINE_NAME = "Colibri-iMX7" -MACHINEOVERRIDES_append_upstream = ":use-mainline-bsp" - MACHINE_FIRMWARE_remove = "firmware-imx-epdc" +MACHINE_FIRMWARE_remove_use-mainline-bsp = "firmware-imx-vpu-imx6q firmware-imx-vpu-imx6d" KERNEL_DEVICETREE_append_use-nxp-bsp += " \ imx7d-colibri-iris.dtb \ @@ -34,4 +34,4 @@ PREFERRED_PROVIDER_u-boot-default-script = "u-boot-distro-boot" UBOOT_MAKE_TARGET_colibri-imx7 = "u-boot.imx" UBOOT_ENTRYPOINT_colibri-imx7 = "0x81000000" UBOOT_DTB_LOADADDRESS_colibri-imx7 = "0x82000000" -UBOOT_DTBO_LOADADDRESS_colibri-imx7 = "0x82010000" +UBOOT_DTBO_LOADADDRESS_colibri-imx7 = "0x87000000" diff --git a/conf/machine/verdin-imx8mm.conf b/conf/machine/verdin-imx8mm.conf index 350a457..b52681a 100644 --- a/conf/machine/verdin-imx8mm.conf +++ b/conf/machine/verdin-imx8mm.conf @@ -21,8 +21,10 @@ RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" KERNEL_DEVICETREE = " \ freescale/imx8mm-verdin-nonwifi-dahlia.dtb \ freescale/imx8mm-verdin-nonwifi-dev.dtb \ + freescale/imx8mm-verdin-nonwifi-yavia.dtb \ freescale/imx8mm-verdin-wifi-dahlia.dtb \ freescale/imx8mm-verdin-wifi-dev.dtb \ + freescale/imx8mm-verdin-wifi-yavia.dtb \ " KERNEL_IMAGETYPE_aarch64 = "Image.gz" @@ -30,9 +32,9 @@ UBOOT_CONFIG ??= "sd" UBOOT_CONFIG[sd] = "verdin-imx8mm_defconfig,sdcard" SPL_BINARY = "spl/u-boot-spl.bin" -UBOOT_ENTRYPOINT = "0x40280000" -UBOOT_DTB_LOADADDRESS = "0x43000000" -UBOOT_DTBO_LOADADDRESS = "0x46000000" +UBOOT_ENTRYPOINT_mx8mm = "0x40000000" +UBOOT_DTB_LOADADDRESS_mx8mm = "0x44000000" +UBOOT_DTBO_LOADADDRESS_mx8mm = "0x46000000" UBOOT_RD_LOADADDRESS = "0x60000000" # Set DDR FIRMWARE @@ -66,6 +68,7 @@ MACHINE_FIRMWARE_append = " linux-firmware-ath10k linux-firmware-imx-sdma-imx7d" PREFERRED_PROVIDER_virtual/kernel = "linux-toradex" PREFERRED_PROVIDER_virtual/kernel_preempt-rt = "linux-toradex" PREFERRED_PROVIDER_virtual/bootloader = "u-boot-toradex" +PREFERRED_PROVIDER_u-boot = "u-boot-toradex" # Currently we use the nxp 2020.04 downstream for mx8 as some features are # not yet available in 2020.07. PREFERRED_VERSION_u-boot-toradex = "2020.04%" @@ -83,8 +86,11 @@ OFFSET_BOOTROM_PAYLOAD = "2" TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT = "verdin-imx8mm_lt8912_overlay.dtbo" -TORADEX_PRODUCT_IDS = "0055 0057 0059 0060" +TORADEX_PRODUCT_IDS = "0055 0057 0059 0060 0068 0086 0087" TORADEX_PRODUCT_IDS[0055] = "imx8mm-verdin-wifi-v1.1-dev.dtb" TORADEX_PRODUCT_IDS[0057] = "imx8mm-verdin-nonwifi-v1.1-dev.dtb" TORADEX_PRODUCT_IDS[0059] = "imx8mm-verdin-nonwifi-v1.1-dev.dtb" TORADEX_PRODUCT_IDS[0060] = "imx8mm-verdin-wifi-v1.1-dev.dtb" +TORADEX_PRODUCT_IDS[0068] = "imx8mm-verdin-wifi-v1.1-dev.dtb" +TORADEX_PRODUCT_IDS[0086] = "imx8mm-verdin-nonwifi-v1.1-dev.dtb" +TORADEX_PRODUCT_IDS[0087] = "imx8mm-verdin-nonwifi-v1.1-dev.dtb" diff --git a/conf/machine/verdin-imx8mp.conf b/conf/machine/verdin-imx8mp.conf index 09b62bb..21997b4 100644 --- a/conf/machine/verdin-imx8mp.conf +++ b/conf/machine/verdin-imx8mp.conf @@ -21,8 +21,10 @@ RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" KERNEL_DEVICETREE = " \ freescale/imx8mp-verdin-nonwifi-dahlia.dtb \ freescale/imx8mp-verdin-nonwifi-dev.dtb \ + freescale/imx8mp-verdin-nonwifi-yavia.dtb \ freescale/imx8mp-verdin-wifi-dahlia.dtb \ freescale/imx8mp-verdin-wifi-dev.dtb \ + freescale/imx8mp-verdin-wifi-yavia.dtb \ " KERNEL_IMAGETYPE_aarch64 = "Image.gz" @@ -30,9 +32,9 @@ UBOOT_CONFIG ??= "sd" UBOOT_CONFIG[sd] = "verdin-imx8mp_defconfig,sdcard" SPL_BINARY = "spl/u-boot-spl.bin" -UBOOT_ENTRYPOINT = "0x40280000" -UBOOT_DTB_LOADADDRESS = "0x43000000" -UBOOT_DTBO_LOADADDRESS = "0x46000000" +UBOOT_ENTRYPOINT_mx8mp = "0x40000000" +UBOOT_DTB_LOADADDRESS_mx8mp = "0x44000000" +UBOOT_DTBO_LOADADDRESS_mx8mp = "0x46000000" UBOOT_RD_LOADADDRESS = "0x60000000" # Set u-boot DTB @@ -53,11 +55,6 @@ IMAGE_BOOTLOADER = "imx-boot" # Set imx-mkimage boot target IMXBOOT_TARGETS = "flash_evk_emmc_fastboot" -# Temporary until we have TEZI for installation on the eMMC -SOC_DEFAULT_WKS_FILE_verdin-imx8mp ?= "verdin-imx8mp-imx-boot-bootpart.wks.in" -# Add 1GB free space to the wic rootfs partition -IMAGE_ROOTFS_EXTRA_SPACE = "1048576" - IMAGE_BOOT_FILES_append = " boot.scr-${MACHINE};boot.scr" WKS_FILE_DEPENDS_append = " u-boot-default-script" PREFERRED_PROVIDER_u-boot-default-script = "u-boot-distro-boot" @@ -74,6 +71,7 @@ MACHINE_FEATURES += "3g bluetooth alsa ext2 pci screen touchscreen usbgadget usb PREFERRED_PROVIDER_virtual/kernel = "linux-toradex" PREFERRED_PROVIDER_virtual/kernel_preempt-rt = "linux-toradex" PREFERRED_PROVIDER_virtual/bootloader = "u-boot-toradex" +PREFERRED_PROVIDER_u-boot = "u-boot-toradex" # Currently we use the nxp 2020.04 downstream for mx8 as some features are # not yet available in 2020.07. PREFERRED_VERSION_u-boot-toradex = "2020.04%" @@ -88,8 +86,13 @@ IMAGE_FSTYPES += "teziimg" UBOOT_BINARY_TEZI_EMMC = "imx-boot" OFFSET_BOOTROM_PAYLOAD = "0" -TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT = "verdin-imx8mp_lt8912_overlay.dtbo" +TEZI_EXTERNAL_KERNEL_DEVICETREE_BOOT = "verdin-imx8mp_native-hdmi_overlay.dtbo verdin-imx8mp_lt8912_overlay.dtbo" -TORADEX_PRODUCT_IDS = "0058 0061" +TORADEX_PRODUCT_IDS = "0058 0061 0063 0064 0065 0066 0070" TORADEX_PRODUCT_IDS[0058] = "imx8mp-verdin-wifi-dev.dtb" TORADEX_PRODUCT_IDS[0061] = "imx8mp-verdin-nonwifi-dev.dtb" +TORADEX_PRODUCT_IDS[0063] = "imx8mp-verdin-nonwifi-dev.dtb" +TORADEX_PRODUCT_IDS[0064] = "imx8mp-verdin-wifi-dev.dtb" +TORADEX_PRODUCT_IDS[0065] = "imx8mp-verdin-nonwifi-dev.dtb" +TORADEX_PRODUCT_IDS[0066] = "imx8mp-verdin-wifi-dev.dtb" +TORADEX_PRODUCT_IDS[0070] = "imx8mp-verdin-wifi-dev.dtb" diff --git a/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend b/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend index 61956c0..1bbe9c5 100644 --- a/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend +++ b/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend @@ -1 +1 @@ -PACKAGECONFIG_remove = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland x11', 'xcomposite-egl xcomposite-glx', '', d)}"
\ No newline at end of file +PACKAGECONFIG_remove_tdx = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland x11', 'xcomposite-egl xcomposite-glx', '', d)}" diff --git a/recipes-bsp/alsa-state/alsa-state.bbappend b/recipes-bsp/alsa-state/alsa-state.bbappend index 05bfa70..5a1cef7 100644 --- a/recipes-bsp/alsa-state/alsa-state.bbappend +++ b/recipes-bsp/alsa-state/alsa-state.bbappend @@ -1,4 +1,40 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/alsa-state/:" -#make this machine specific, as we have different codecs with different settings -PACKAGE_ARCH = "${MACHINE_ARCH}" +# make this machine specific, as we have different codecs with different settings +PACKAGE_ARCH_tdx = "${MACHINE_ARCH}" + +SRC_URI_append_mx8m_tdx = " \ + file://asound-dev.conf \ + file://asound-dahlia.conf \ + file://asound-dev.state \ + file://asound-dahlia.state \ +" + +FILES_${PN} += "${sysconfdir}/asound-*.conf" + +do_install_append_mx8m_tdx () { + # Remove the default asound.conf, we need set up asound.conf dynamically + # at runtime to support both dev/dahlia boards. + rm -f ${D}${sysconfdir}/asound.conf + rm -f ${D}${localstatedir}/lib/alsa/asound.state + install -m 0644 ${WORKDIR}/asound-*.conf ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/asound-*.state ${D}${localstatedir}/lib/alsa +} + +# Invalidate the default pkg_postinst in oe-core, this ensures our ontarget +# postinst to be the only one to run during package installation. +pkg_postinst_${PN}_mx8m_tdx () { +} + +pkg_postinst_ontarget_${PN}_mx8m_tdx () { + if grep -q "Development" /proc/device-tree/model; then + board="dev" + else + board="dahlia" + fi + + mv /etc/asound-$board.conf /etc/asound.conf + mv /var/lib/alsa/asound-$board.state /var/lib/alsa/asound.state + rm -f /etc/asound-*.conf + rm -f /var/lib/alsa/asound-*.state +} diff --git a/recipes-bsp/alsa-state/alsa-state/colibri-imx7-emmc/asound.state b/recipes-bsp/alsa-state/alsa-state/colibri-imx7-emmc/asound.state index a578e3d..8497618 100644 --- a/recipes-bsp/alsa-state/alsa-state/colibri-imx7-emmc/asound.state +++ b/recipes-bsp/alsa-state/alsa-state/colibri-imx7-emmc/asound.state @@ -1,4 +1,4 @@ -state.imx7colibrisgtl { +state.imx7sgtl5000 { control.1 { iface MIXER name 'PCM Playback Volume' @@ -45,6 +45,16 @@ state.imx7colibrisgtl { } control.5 { iface MIXER + name 'Capture Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.6 { + iface MIXER name 'Headphone Playback Volume' value.0 103 value.1 103 @@ -59,7 +69,17 @@ state.imx7colibrisgtl { dbvalue.1 0 } } - control.6 { + control.7 { + iface MIXER + name 'Headphone Playback Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.8 { iface MIXER name 'Headphone Playback ZC Switch' value true @@ -69,7 +89,7 @@ state.imx7colibrisgtl { count 1 } } - control.7 { + control.9 { iface MIXER name 'Mic Volume' value 0 @@ -83,7 +103,202 @@ state.imx7colibrisgtl { dbvalue.0 0 } } - control.8 { + control.10 { + iface MIXER + name 'Lineout Playback Volume' + value.0 18 + value.1 18 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + dbmin -1550 + dbmax 0 + dbvalue.0 -650 + dbvalue.1 -650 + } + } + control.11 { + iface MIXER + name 'Lineout Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.12 { + iface MIXER + name 'DAP Main channel' + value 32768 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 65535' + dbmin 0 + dbmax 65535 + dbvalue.0 32768 + } + } + control.13 { + iface MIXER + name 'DAP Mix channel' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 65535' + dbmin 0 + dbmax 65535 + dbvalue.0 0 + } + } + control.14 { + iface MIXER + name 'AVC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.15 { + iface MIXER + name 'AVC Hard Limiter Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.16 { + iface MIXER + name 'AVC Max Gain Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 2' + dbmin 0 + dbmax 1200 + dbvalue.0 600 + } + } + control.17 { + iface MIXER + name 'AVC Integrator Response' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + } + } + control.18 { + iface MIXER + name 'AVC Threshold Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 96' + dbmin 0 + dbmax 9600 + dbvalue.0 1200 + } + } + control.19 { + iface MIXER + name 'BASS 0' + value 47 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 + } + } + control.20 { + iface MIXER + name 'BASS 1' + value 47 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 + } + } + control.21 { + iface MIXER + name 'BASS 2' + value 47 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 + } + } + control.22 { + iface MIXER + name 'BASS 3' + value 47 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 + } + } + control.23 { + iface MIXER + name 'BASS 4' + value 47 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 + } + } + control.24 { + iface MIXER + name 'Capture Mux' + value MIC_IN + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 MIC_IN + item.1 LINE_IN + } + } + control.25 { iface MIXER name 'Headphone Mux' value DAC @@ -95,16 +310,42 @@ state.imx7colibrisgtl { item.1 LINE_IN } } - control.9 { + control.26 { iface MIXER - name 'Capture Mux' - value MIC_IN + name 'Digital Input Mux' + value I2S comment { access 'read write' type ENUMERATED count 1 - item.0 MIC_IN - item.1 LINE_IN + item.0 ADC + item.1 I2S + item.2 Rsvrd + item.3 DAP + } + } + control.27 { + iface MIXER + name 'DAP Mux' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 I2S + } + } + control.28 { + iface MIXER + name 'DAP MIX Mux' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 I2S } } } diff --git a/recipes-bsp/alsa-state/alsa-state/colibri-imx7/asound.state b/recipes-bsp/alsa-state/alsa-state/colibri-imx7/asound.state index a578e3d..8497618 100644 --- a/recipes-bsp/alsa-state/alsa-state/colibri-imx7/asound.state +++ b/recipes-bsp/alsa-state/alsa-state/colibri-imx7/asound.state @@ -1,4 +1,4 @@ -state.imx7colibrisgtl { +state.imx7sgtl5000 { control.1 { iface MIXER name 'PCM Playback Volume' @@ -45,6 +45,16 @@ state.imx7colibrisgtl { } control.5 { iface MIXER + name 'Capture Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.6 { + iface MIXER name 'Headphone Playback Volume' value.0 103 value.1 103 @@ -59,7 +69,17 @@ state.imx7colibrisgtl { dbvalue.1 0 } } - control.6 { + control.7 { + iface MIXER + name 'Headphone Playback Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.8 { iface MIXER name 'Headphone Playback ZC Switch' value true @@ -69,7 +89,7 @@ state.imx7colibrisgtl { count 1 } } - control.7 { + control.9 { iface MIXER name 'Mic Volume' value 0 @@ -83,7 +103,202 @@ state.imx7colibrisgtl { dbvalue.0 0 } } - control.8 { + control.10 { + iface MIXER + name 'Lineout Playback Volume' + value.0 18 + value.1 18 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + dbmin -1550 + dbmax 0 + dbvalue.0 -650 + dbvalue.1 -650 + } + } + control.11 { + iface MIXER + name 'Lineout Playback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.12 { + iface MIXER + name 'DAP Main channel' + value 32768 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 65535' + dbmin 0 + dbmax 65535 + dbvalue.0 32768 + } + } + control.13 { + iface MIXER + name 'DAP Mix channel' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 65535' + dbmin 0 + dbmax 65535 + dbvalue.0 0 + } + } + control.14 { + iface MIXER + name 'AVC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.15 { + iface MIXER + name 'AVC Hard Limiter Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.16 { + iface MIXER + name 'AVC Max Gain Volume' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 2' + dbmin 0 + dbmax 1200 + dbvalue.0 600 + } + } + control.17 { + iface MIXER + name 'AVC Integrator Response' + value 1 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + } + } + control.18 { + iface MIXER + name 'AVC Threshold Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 96' + dbmin 0 + dbmax 9600 + dbvalue.0 1200 + } + } + control.19 { + iface MIXER + name 'BASS 0' + value 47 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 + } + } + control.20 { + iface MIXER + name 'BASS 1' + value 47 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 + } + } + control.21 { + iface MIXER + name 'BASS 2' + value 47 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 + } + } + control.22 { + iface MIXER + name 'BASS 3' + value 47 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 + } + } + control.23 { + iface MIXER + name 'BASS 4' + value 47 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 95' + dbmin -1175 + dbmax 1200 + dbvalue.0 0 + } + } + control.24 { + iface MIXER + name 'Capture Mux' + value MIC_IN + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 MIC_IN + item.1 LINE_IN + } + } + control.25 { iface MIXER name 'Headphone Mux' value DAC @@ -95,16 +310,42 @@ state.imx7colibrisgtl { item.1 LINE_IN } } - control.9 { + control.26 { iface MIXER - name 'Capture Mux' - value MIC_IN + name 'Digital Input Mux' + value I2S comment { access 'read write' type ENUMERATED count 1 - item.0 MIC_IN - item.1 LINE_IN + item.0 ADC + item.1 I2S + item.2 Rsvrd + item.3 DAP + } + } + control.27 { + iface MIXER + name 'DAP Mux' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 I2S + } + } + control.28 { + iface MIXER + name 'DAP MIX Mux' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 I2S } } } diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.conf b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.conf new file mode 100644 index 0000000..122f912 --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.conf @@ -0,0 +1,250 @@ +defaults.pcm.rate_converter "linear" + +pcm.default_card{ +type hw +card "imx8mmwm8904" +} + +pcm.dmix_48000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.dmix_44100{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.dmix_32000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.dmix_24000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.dmix_22050{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.dmix_16000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.dmix_12000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.dmix_11025{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.dmix_8000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.!dsnoop_48000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.!dsnoop_44100{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.!dsnoop_32000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.!dsnoop_24000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.!dsnoop_22050{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.!dsnoop_16000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.!dsnoop_12000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.!dsnoop_11025{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.!dsnoop_8000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.asymed{ +type asym +playback.pcm "dmix_44100" +capture.pcm "dsnoop_44100" +} + +pcm.dsp0{ +type plug +slave.pcm "asymed" +} + +pcm.!default{ +type plug +route_policy "average" +slave.pcm "asymed" +} + +ctl.!default{ +type hw +card "imx8mmwm8904" +} + +ctl.mixer0{ +type hw +card "imx8mmwm8904" +} + diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound.state b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.state index 1d3e09a..1d3e09a 100644 --- a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound.state +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dahlia.state diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.conf b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.conf new file mode 100644 index 0000000..c0789f6 --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.conf @@ -0,0 +1,250 @@ +defaults.pcm.rate_converter "linear" + +pcm.default_card{ +type hw +card "imx8mmnau8822" +} + +pcm.dmix_48000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.dmix_44100{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.dmix_32000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.dmix_24000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.dmix_22050{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.dmix_16000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.dmix_12000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.dmix_11025{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.dmix_8000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.!dsnoop_48000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.!dsnoop_44100{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.!dsnoop_32000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.!dsnoop_24000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.!dsnoop_22050{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.!dsnoop_16000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.!dsnoop_12000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.!dsnoop_11025{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.!dsnoop_8000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.asymed{ +type asym +playback.pcm "dmix_44100" +capture.pcm "dsnoop_44100" +} + +pcm.dsp0{ +type plug +slave.pcm "asymed" +} + +pcm.!default{ +type plug +route_policy "average" +slave.pcm "asymed" +} + +ctl.!default{ +type hw +card "imx8mmnau8822" +} + +ctl.mixer0{ +type hw +card "imx8mmnau8822" +} + diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.state b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.state new file mode 100644 index 0000000..878f82e --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mm/asound-dev.state @@ -0,0 +1,729 @@ +state.imx8mmnau8822 { + control.1 { + iface MIXER + name 'ADC Companding' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 NC + item.2 u-law + item.3 A-law + } + } + control.2 { + iface MIXER + name 'DAC Companding' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 NC + item.2 u-law + item.3 A-law + } + } + control.3 { + iface MIXER + name 'EQ Function' + value Playback + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Capture + item.1 Playback + } + } + control.4 { + iface MIXER + name 'EQ Parameters' + value '012c002c002c002c002c' + comment { + access 'read write' + type BYTES + count 10 + } + } + control.5 { + iface MIXER + name 'DAC Inversion Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.6 { + iface MIXER + name 'PCM Volume' + value.0 215 + value.1 215 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 -2000 + dbvalue.1 -2000 + } + } + control.7 { + iface MIXER + name 'High Pass Filter Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.8 { + iface MIXER + name 'High Pass Cut Off' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.9 { + iface MIXER + name 'ADC Inversion Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.10 { + iface MIXER + name 'ADC Volume' + value.0 255 + value.1 255 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.11 { + iface MIXER + name 'DAC Limiter Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.12 { + iface MIXER + name 'DAC Limiter Decay' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.13 { + iface MIXER + name 'DAC Limiter Attack' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.14 { + iface MIXER + name 'DAC Limiter Threshold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.15 { + iface MIXER + name 'DAC Limiter Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 12' + dbmin 0 + dbmax 1200 + dbvalue.0 0 + } + } + control.16 { + iface MIXER + name 'ALC Mode' + value Normal + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Normal + item.1 Limiter + } + } + control.17 { + iface MIXER + name 'ALC Enable Switch' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 Right + item.2 Left + item.3 Both + } + } + control.18 { + iface MIXER + name 'ALC Min Gain' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.19 { + iface MIXER + name 'ALC Max Gain' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.20 { + iface MIXER + name 'ALC Hold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.21 { + iface MIXER + name 'ALC Target' + value 11 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.22 { + iface MIXER + name 'ALC Decay' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.23 { + iface MIXER + name 'ALC Attack' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.24 { + iface MIXER + name 'ALC Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.25 { + iface MIXER + name 'ALC Noise Gate Threshold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.26 { + iface MIXER + name 'PGA ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.27 { + iface MIXER + name 'PGA Volume' + value.0 16 + value.1 16 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -1200 + dbmax 3525 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.28 { + iface MIXER + name 'Headphone ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.29 { + iface MIXER + name 'Headphone Playback Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.30 { + iface MIXER + name 'Headphone Volume' + value.0 57 + value.1 57 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.31 { + iface MIXER + name 'Speaker RInversion Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.32 { + iface MIXER + name 'Speaker ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.33 { + iface MIXER + name 'Speaker Playback Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.34 { + iface MIXER + name 'Speaker Volume' + value.0 57 + value.1 57 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.35 { + iface MIXER + name 'AUXOUT Playback Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.36 { + iface MIXER + name 'PGA Boost Volume' + value.0 1 + value.1 1 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 1' + dbmin 0 + dbmax 2000 + dbvalue.0 2000 + dbvalue.1 2000 + } + } + control.37 { + iface MIXER + name 'L2/R2 Boost Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + dbvalue.1 -9999999 + } + } + control.38 { + iface MIXER + name 'Aux Boost Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + dbvalue.1 -9999999 + } + } + control.39 { + iface MIXER + name 'DAC 128x Oversampling Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.40 { + iface MIXER + name 'ADC 128x Oversampling Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.41 { + iface MIXER + name 'Left Output Mixer LINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.42 { + iface MIXER + name 'Left Output Mixer LAUX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.43 { + iface MIXER + name 'Left Output Mixer LDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.44 { + iface MIXER + name 'Left Output Mixer RDAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.45 { + iface MIXER + name 'Right Output Mixer RINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.46 { + iface MIXER + name 'Right Output Mixer RAUX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.47 { + iface MIXER + name 'Right Output Mixer RDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.48 { + iface MIXER + name 'Right Output Mixer LDAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.49 { + iface MIXER + name 'AUX1 Output Mixer RDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.50 { + iface MIXER + name 'AUX1 Output Mixer RMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.51 { + iface MIXER + name 'AUX1 Output Mixer RINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.52 { + iface MIXER + name 'AUX1 Output Mixer LDAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.53 { + iface MIXER + name 'AUX1 Output Mixer LMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.54 { + iface MIXER + name 'AUX2 Output Mixer LDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.55 { + iface MIXER + name 'AUX2 Output Mixer LMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.56 { + iface MIXER + name 'AUX2 Output Mixer LINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.57 { + iface MIXER + name 'AUX2 Output Mixer AUX1MIX Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.58 { + iface MIXER + name 'Left Input Mixer L2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.59 { + iface MIXER + name 'Left Input Mixer MicN Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.60 { + iface MIXER + name 'Left Input Mixer MicP Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.61 { + iface MIXER + name 'Right Input Mixer R2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.62 { + iface MIXER + name 'Right Input Mixer MicN Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.63 { + iface MIXER + name 'Right Input Mixer MicP Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.64 { + iface MIXER + name 'Digital Loopback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } +} diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.conf b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.conf new file mode 100644 index 0000000..2289bd0 --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.conf @@ -0,0 +1,250 @@ +defaults.pcm.rate_converter "linear" + +pcm.default_card{ +type hw +card "imx8mpwm8904" +} + +pcm.dmix_48000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.dmix_44100{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.dmix_32000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.dmix_24000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.dmix_22050{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.dmix_16000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.dmix_12000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.dmix_11025{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.dmix_8000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.!dsnoop_48000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.!dsnoop_44100{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.!dsnoop_32000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.!dsnoop_24000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.!dsnoop_22050{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.!dsnoop_16000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.!dsnoop_12000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.!dsnoop_11025{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.!dsnoop_8000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.asymed{ +type asym +playback.pcm "dmix_44100" +capture.pcm "dsnoop_44100" +} + +pcm.dsp0{ +type plug +slave.pcm "asymed" +} + +pcm.!default{ +type plug +route_policy "average" +slave.pcm "asymed" +} + +ctl.!default{ +type hw +card "imx8mpwm8904" +} + +ctl.mixer0{ +type hw +card "imx8mpwm8904" +} + diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.state b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.state new file mode 100644 index 0000000..194c7bf --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dahlia.state @@ -0,0 +1,519 @@ +state.imx8mpwm8904 { + control.1 { + iface MIXER + name 'EQ1 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.2 { + iface MIXER + name 'EQ2 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.3 { + iface MIXER + name 'EQ3 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.4 { + iface MIXER + name 'EQ4 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.5 { + iface MIXER + name 'EQ5 Volume' + value 12 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 24' + dbmin -1200 + dbmax 1200 + dbvalue.0 0 + } + } + control.6 { + iface MIXER + name 'Digital Capture Volume' + value.0 96 + value.1 96 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 119' + dbmin -9999999 + dbmax 1725 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.7 { + iface MIXER + name 'Left Caputure Mode' + value Single-Ended + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Single-Ended + item.1 'Differential Line' + item.2 'Differential Mic' + } + } + control.8 { + iface MIXER + name 'Right Capture Mode' + value Single-Ended + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Single-Ended + item.1 'Differential Line' + item.2 'Differential Mic' + } + } + control.9 { + iface MIXER + name 'Capture Volume' + value.0 24 + value.1 24 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 31' + } + } + control.10 { + iface MIXER + name 'Capture Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.11 { + iface MIXER + name 'High Pass Filter Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.12 { + iface MIXER + name 'High Pass Filter Mode' + value Hi-fi + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Hi-fi + item.1 'Voice 1' + item.2 'Voice 2' + item.3 'Voice 3' + } + } + control.13 { + iface MIXER + name 'ADC 128x OSR Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.14 { + iface MIXER + name 'Digital Playback Boost Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 3' + dbmin 0 + dbmax 1800 + dbvalue.0 0 + } + } + control.15 { + iface MIXER + name 'Digital Playback Volume' + value.0 88 + value.1 88 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 96' + dbmin -9999999 + dbmax 0 + dbvalue.0 -600 + dbvalue.1 -600 + } + } + control.16 { + iface MIXER + name 'Headphone Volume' + value.0 43 + value.1 43 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 -1400 + dbvalue.1 -1400 + } + } + control.17 { + iface MIXER + name 'Headphone Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.18 { + iface MIXER + name 'Headphone ZC Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.19 { + iface MIXER + name 'Line Output Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 -5700 + dbvalue.1 -5700 + } + } + control.20 { + iface MIXER + name 'Line Output Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.21 { + iface MIXER + name 'Line Output ZC Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.22 { + iface MIXER + name 'EQ Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.23 { + iface MIXER + name 'DRC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.24 { + iface MIXER + name 'DRC Path' + value ADC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 ADC + item.1 DAC + } + } + control.25 { + iface MIXER + name 'DAC OSRx2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.26 { + iface MIXER + name 'DAC Deemphasis Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.27 { + iface MIXER + name 'Digital Sidetone Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 15' + dbmin -3600 + dbmax 900 + dbvalue.0 -3600 + dbvalue.1 -3600 + } + } + control.28 { + iface MIXER + name 'Left Capture Mux' + value IN1L + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 IN1L + item.1 IN2L + item.2 IN3L + } + } + control.29 { + iface MIXER + name 'Left Capture Inverting Mux' + value IN1L + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 IN1L + item.1 IN2L + item.2 IN3L + } + } + control.30 { + iface MIXER + name 'Right Capture Mux' + value IN1R + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 IN1R + item.1 IN2R + item.2 IN3R + } + } + control.31 { + iface MIXER + name 'Right Capture Inverting Mux' + value IN1R + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 IN1R + item.1 IN2R + item.2 IN3R + } + } + control.32 { + iface MIXER + name 'AIFOUTL Mux' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.33 { + iface MIXER + name 'AIFOUTR Mux' + value Right + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.34 { + iface MIXER + name 'DACL Mux' + value Left + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.35 { + iface MIXER + name 'DACR Mux' + value Right + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Left + item.1 Right + } + } + control.36 { + iface MIXER + name 'Left Sidetone' + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 Left + item.2 Right + } + } + control.37 { + iface MIXER + name 'Right Sidetone' + value None + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 None + item.1 Left + item.2 Right + } + } + control.38 { + iface MIXER + name 'HPL Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Bypass + } + } + control.39 { + iface MIXER + name 'HPR Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Bypass + } + } + control.40 { + iface MIXER + name 'LINEL Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Bypass + } + } + control.41 { + iface MIXER + name 'LINER Mux' + value DAC + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 DAC + item.1 Bypass + } + } +} diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.conf b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.conf new file mode 100644 index 0000000..54941e3 --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.conf @@ -0,0 +1,250 @@ +defaults.pcm.rate_converter "linear" + +pcm.default_card{ +type hw +card "imx8mpnau8822" +} + +pcm.dmix_48000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.dmix_44100{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.dmix_32000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.dmix_24000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.dmix_22050{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.dmix_16000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.dmix_12000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.dmix_11025{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.dmix_8000{ +type dmix +ipc_key 5678293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.!dsnoop_48000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 48000 +} +} + +pcm.!dsnoop_44100{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 44100 +} +} + +pcm.!dsnoop_32000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 32000 +} +} + +pcm.!dsnoop_24000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 24000 +} +} + +pcm.!dsnoop_22050{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 22050 +} +} + +pcm.!dsnoop_16000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 16000 +} +} + +pcm.!dsnoop_12000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 12000 +} +} + +pcm.!dsnoop_11025{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 11025 +} +} + +pcm.!dsnoop_8000{ +type dsnoop +ipc_key 5778293 +ipc_key_add_uid yes +slave{ +pcm "default_card" +period_time 40000 +format S16_LE +rate 8000 +} +} + +pcm.asymed{ +type asym +playback.pcm "dmix_44100" +capture.pcm "dsnoop_44100" +} + +pcm.dsp0{ +type plug +slave.pcm "asymed" +} + +pcm.!default{ +type plug +route_policy "average" +slave.pcm "asymed" +} + +ctl.!default{ +type hw +card "imx8mpnau8822" +} + +ctl.mixer0{ +type hw +card "imx8mpnau8822" +} + diff --git a/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.state b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.state new file mode 100644 index 0000000..125ddf7 --- /dev/null +++ b/recipes-bsp/alsa-state/alsa-state/verdin-imx8mp/asound-dev.state @@ -0,0 +1,729 @@ +state.imx8mpnau8822 { + control.1 { + iface MIXER + name 'ADC Companding' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 NC + item.2 u-law + item.3 A-law + } + } + control.2 { + iface MIXER + name 'DAC Companding' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 NC + item.2 u-law + item.3 A-law + } + } + control.3 { + iface MIXER + name 'EQ Function' + value Playback + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Capture + item.1 Playback + } + } + control.4 { + iface MIXER + name 'EQ Parameters' + value '012c002c002c002c002c' + comment { + access 'read write' + type BYTES + count 10 + } + } + control.5 { + iface MIXER + name 'DAC Inversion Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.6 { + iface MIXER + name 'PCM Volume' + value.0 215 + value.1 215 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 -2000 + dbvalue.1 -2000 + } + } + control.7 { + iface MIXER + name 'High Pass Filter Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.8 { + iface MIXER + name 'High Pass Cut Off' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.9 { + iface MIXER + name 'ADC Inversion Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.10 { + iface MIXER + name 'ADC Volume' + value.0 255 + value.1 255 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 255' + dbmin -9999999 + dbmax 0 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.11 { + iface MIXER + name 'DAC Limiter Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.12 { + iface MIXER + name 'DAC Limiter Decay' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.13 { + iface MIXER + name 'DAC Limiter Attack' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.14 { + iface MIXER + name 'DAC Limiter Threshold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.15 { + iface MIXER + name 'DAC Limiter Volume' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 12' + dbmin 0 + dbmax 1200 + dbvalue.0 0 + } + } + control.16 { + iface MIXER + name 'ALC Mode' + value Normal + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Normal + item.1 Limiter + } + } + control.17 { + iface MIXER + name 'ALC Enable Switch' + value Off + comment { + access 'read write' + type ENUMERATED + count 1 + item.0 Off + item.1 Right + item.2 Left + item.3 Both + } + } + control.18 { + iface MIXER + name 'ALC Min Gain' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.19 { + iface MIXER + name 'ALC Max Gain' + value 7 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.20 { + iface MIXER + name 'ALC Hold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.21 { + iface MIXER + name 'ALC Target' + value 11 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 15' + } + } + control.22 { + iface MIXER + name 'ALC Decay' + value 3 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.23 { + iface MIXER + name 'ALC Attack' + value 2 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 10' + } + } + control.24 { + iface MIXER + name 'ALC Noise Gate Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.25 { + iface MIXER + name 'ALC Noise Gate Threshold' + value 0 + comment { + access 'read write' + type INTEGER + count 1 + range '0 - 7' + } + } + control.26 { + iface MIXER + name 'PGA ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.27 { + iface MIXER + name 'PGA Volume' + value.0 16 + value.1 16 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -1200 + dbmax 3525 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.28 { + iface MIXER + name 'Headphone ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.29 { + iface MIXER + name 'Headphone Playback Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.30 { + iface MIXER + name 'Headphone Volume' + value.0 51 + value.1 51 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 -600 + dbvalue.1 -600 + } + } + control.31 { + iface MIXER + name 'Speaker RInversion Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.32 { + iface MIXER + name 'Speaker ZC Switch' + value.0 false + value.1 false + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.33 { + iface MIXER + name 'Speaker Playback Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.34 { + iface MIXER + name 'Speaker Volume' + value.0 57 + value.1 57 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 63' + dbmin -5700 + dbmax 600 + dbvalue.0 0 + dbvalue.1 0 + } + } + control.35 { + iface MIXER + name 'AUXOUT Playback Switch' + value.0 true + value.1 true + comment { + access 'read write' + type BOOLEAN + count 2 + } + } + control.36 { + iface MIXER + name 'PGA Boost Volume' + value.0 1 + value.1 1 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 1' + dbmin 0 + dbmax 2000 + dbvalue.0 2000 + dbvalue.1 2000 + } + } + control.37 { + iface MIXER + name 'L2/R2 Boost Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + dbvalue.1 -9999999 + } + } + control.38 { + iface MIXER + name 'Aux Boost Volume' + value.0 0 + value.1 0 + comment { + access 'read write' + type INTEGER + count 2 + range '0 - 7' + dbmin -9999999 + dbmax 600 + dbvalue.0 -9999999 + dbvalue.1 -9999999 + } + } + control.39 { + iface MIXER + name 'DAC 128x Oversampling Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.40 { + iface MIXER + name 'ADC 128x Oversampling Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.41 { + iface MIXER + name 'Left Output Mixer LINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.42 { + iface MIXER + name 'Left Output Mixer LAUX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.43 { + iface MIXER + name 'Left Output Mixer LDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.44 { + iface MIXER + name 'Left Output Mixer RDAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.45 { + iface MIXER + name 'Right Output Mixer RINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.46 { + iface MIXER + name 'Right Output Mixer RAUX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.47 { + iface MIXER + name 'Right Output Mixer RDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.48 { + iface MIXER + name 'Right Output Mixer LDAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.49 { + iface MIXER + name 'AUX1 Output Mixer RDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.50 { + iface MIXER + name 'AUX1 Output Mixer RMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.51 { + iface MIXER + name 'AUX1 Output Mixer RINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.52 { + iface MIXER + name 'AUX1 Output Mixer LDAC Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.53 { + iface MIXER + name 'AUX1 Output Mixer LMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.54 { + iface MIXER + name 'AUX2 Output Mixer LDAC Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.55 { + iface MIXER + name 'AUX2 Output Mixer LMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.56 { + iface MIXER + name 'AUX2 Output Mixer LINMIX Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.57 { + iface MIXER + name 'AUX2 Output Mixer AUX1MIX Output Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.58 { + iface MIXER + name 'Left Input Mixer L2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.59 { + iface MIXER + name 'Left Input Mixer MicN Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.60 { + iface MIXER + name 'Left Input Mixer MicP Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.61 { + iface MIXER + name 'Right Input Mixer R2 Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.62 { + iface MIXER + name 'Right Input Mixer MicN Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.63 { + iface MIXER + name 'Right Input Mixer MicP Switch' + value true + comment { + access 'read write' + type BOOLEAN + count 1 + } + } + control.64 { + iface MIXER + name 'Digital Loopback Switch' + value false + comment { + access 'read write' + type BOOLEAN + count 1 + } + } +} diff --git a/recipes-bsp/firmware-imx/firmware-imx-8_8.%.bbappend b/recipes-bsp/firmware-imx/firmware-imx-8_8.%.bbappend deleted file mode 100644 index 1766a7a..0000000 --- a/recipes-bsp/firmware-imx/firmware-imx-8_8.%.bbappend +++ /dev/null @@ -1,14 +0,0 @@ -FILES_${PN} += " \ - ${nonarch_base_libdir}/firmware/imx/hdmi/hdmitxfw.bin \ - ${nonarch_base_libdir}/firmware/imx/hdmi/hdmirxfw.bin \ - ${nonarch_base_libdir}/firmware/imx/hdmi/dpfw.bin \ -" - -unset do_install[noexec] - -do_install_append () { - install -d ${D}${nonarch_base_libdir}/firmware/imx/hdmi - install -m 0644 ${S}/firmware/hdmi/cadence/hdmitxfw.bin ${D}${nonarch_base_libdir}/firmware/imx/hdmi/ - install -m 0644 ${S}/firmware/hdmi/cadence/hdmirxfw.bin ${D}${nonarch_base_libdir}/firmware/imx/hdmi/ - install -m 0644 ${S}/firmware/hdmi/cadence/dpfw.bin ${D}${nonarch_base_libdir}/firmware/imx/hdmi/ -} diff --git a/recipes-bsp/imx-atf/imx-atf_%.bbappend b/recipes-bsp/imx-atf/imx-atf_%.bbappend index d4947ff..f39e541 100644 --- a/recipes-bsp/imx-atf/imx-atf_%.bbappend +++ b/recipes-bsp/imx-atf/imx-atf_%.bbappend @@ -1,10 +1,10 @@ -PV = "2.2+git${SRCPV}" -SRCBRANCH = "toradex_imx_5.4.70_2.3.0" -SRCREV = "7f1187ba31cc1624f7dadd98998e010cb229926a" -SRCREV_use-head-next = "${AUTOREV}" -SRC_URI = "git://git.toradex.com/imx-atf.git;protocol=https;branch=${SRCBRANCH}" +PV_tdx = "2.2+git${SRCPV}" +SRCBRANCH_tdx = "toradex_imx_5.4.70_2.3.0" +SRCREV_tdx = "2fa8c6349e9a1d965757d44f05a6c72687850b77" +SRCREV_use-head-next_tdx = "${AUTOREV}" +SRC_URI_tdx = "git://git.toradex.com/imx-atf.git;protocol=https;branch=${SRCBRANCH}" -EXTRA_OEMAKE_append = " \ +EXTRA_OEMAKE_append_tdx = " \ BUILD_STRING="${SRCBRANCH}-g${@'${SRCPV}'.replace('AUTOINC+', '')}" \ " EXTRA_OEMAKE_append_verdin-imx8mm = " \ diff --git a/recipes-bsp/imx-mkimage/imx-boot_%.bbappend b/recipes-bsp/imx-mkimage/imx-boot_%.bbappend deleted file mode 100644 index bd97840..0000000 --- a/recipes-bsp/imx-mkimage/imx-boot_%.bbappend +++ /dev/null @@ -1,8 +0,0 @@ -# Create symbolic link rather than copying mkimage_uboot -compile_mx8m_prepend() { - rm -rf ${BOOT_STAGING}/mkimage_uboot -} -compile_mx8m_append() { - rm -rf ${BOOT_STAGING}/mkimage_uboot - lnr ${STAGING_DIR_NATIVE}/${bindir}/mkimage ${BOOT_STAGING}/mkimage_uboot -} diff --git a/recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.7.0.bb b/recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.7.0.bb index 16495b3..da7e101 100644 --- a/recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.7.0.bb +++ b/recipes-bsp/imx-sc-firmware/imx-sc-firmware-toradex_1.7.0.bb @@ -11,8 +11,7 @@ inherit deploy SRC_URI = "git://github.com/toradex/i.MX-System-Controller-Firmware.git;branch=master;protocol=https;fsl-eula=true" -SRCREV = "bad4eef87700c1834f8510bdf72bd18826b87cd7" -SRCREV_use-head-next = "${AUTOREV}" +SRCREV = "4b69cbb6cba9a097334233086a314b9e0718381c" S = "${WORKDIR}/git" diff --git a/recipes-bsp/u-boot/files/0001-colibri_imx7-boot-linux-kernel-in-non-secure-mode.patch b/recipes-bsp/u-boot/files/0001-colibri_imx7-boot-linux-kernel-in-non-secure-mode.patch index 20e7e98..8573807 100644 --- a/recipes-bsp/u-boot/files/0001-colibri_imx7-boot-linux-kernel-in-non-secure-mode.patch +++ b/recipes-bsp/u-boot/files/0001-colibri_imx7-boot-linux-kernel-in-non-secure-mode.patch @@ -1,5 +1,4 @@ -From 9bdb801953e4a81c59fc358cc5bf91811b0d514f Mon Sep 17 00:00:00 2001 -Message-Id: <9bdb801953e4a81c59fc358cc5bf91811b0d514f.1601476897.git.marcel.ziswiler@toradex.com> +From 3192378a0bd7cfbadf752a770545e7c879f3e603 Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler <marcel.ziswiler@toradex.com> Date: Wed, 30 Sep 2020 16:37:54 +0200 Subject: [PATCH] colibri_imx7: boot linux kernel in non-secure mode @@ -9,23 +8,21 @@ mode mainline/upstream requires non-secure mode instead, as it properly uses PSCI to control further cores. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> + --- include/configs/colibri_imx7.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/configs/colibri_imx7.h b/include/configs/colibri_imx7.h -index 1b50dac83c..be33f1bdf9 100644 +index b48172ab19..b796fba3e2 100644 --- a/include/configs/colibri_imx7.h +++ b/include/configs/colibri_imx7.h -@@ -140,7 +140,7 @@ - UBOOT_UPDATE \ - "boot_script_dhcp=boot.scr\0" \ +@@ -161,7 +161,7 @@ + "boot_scripts=" BOOT_SCRIPT "\0" \ + "boot_script_dhcp=" BOOT_SCRIPT "\0" \ "boot_file=zImage\0" \ - "bootm_boot_mode=sec\0" \ + "bootm_boot_mode=nonsec\0" \ "bootubipart=ubi\0" \ "console=ttymxc0\0" \ "defargs=\0" \ --- -2.29.0 - diff --git a/recipes-bsp/u-boot/files/0001-tools-image-host-fix-wrong-return-value.patch b/recipes-bsp/u-boot/files/0001-tools-image-host-fix-wrong-return-value.patch new file mode 100644 index 0000000..5e58173 --- /dev/null +++ b/recipes-bsp/u-boot/files/0001-tools-image-host-fix-wrong-return-value.patch @@ -0,0 +1,41 @@ +From 77fe3ad2ab2953ccdf6e9417cbecc060b45d3e55 Mon Sep 17 00:00:00 2001 +From: Ming Liu <liu.ming50@gmail.com> +Date: Sun, 30 May 2021 10:32:08 +0200 +Subject: [PATCH] tools: image-host: fix wrong return value + +Upstream-Status: Submitted [ Sent to u-boot@lists.denx.de on 2021-05-31 ] + +The return value '-ENOSPC' of fit_set_timestamp function does not match +the caller fit_image_write_sig's expection which is '-FDT_ERR_NOSPACE'. + +Fix it by not calling fit_set_timestamp, but call fdt_setprop instead. + +This fixes a following mkimage error: +| Can't write signature for 'signature@1' signature node in +| 'conf@imx6ull-colibri-wifi-eval-v3.dtb' conf node: <unknown error> +| mkimage Can't add hashes to FIT blob: -1 + +Signed-off-by: Ming Liu <liu.ming50@gmail.com> +--- + tools/image-host.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/tools/image-host.c b/tools/image-host.c +index 270d36fe45..73095461a7 100644 +--- a/tools/image-host.c ++++ b/tools/image-host.c +@@ -132,8 +132,10 @@ static int fit_image_write_sig(void *fit, int noffset, uint8_t *value, + if (!ret) { + time_t timestamp = imagetool_get_source_date(cmdname, + time(NULL)); ++ uint32_t t = cpu_to_uimage(timestamp); + +- ret = fit_set_timestamp(fit, noffset, timestamp); ++ ret = fdt_setprop(fit, noffset, FIT_TIMESTAMP_PROP, &t, ++ sizeof(uint32_t)); + } + if (region_prop && !ret) { + uint32_t strdata[2]; +-- +2.29.0 + diff --git a/recipes-bsp/u-boot/u-boot-tools_%.bbappend b/recipes-bsp/u-boot/u-boot-tools_%.bbappend new file mode 100644 index 0000000..a2f2625 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-tools_%.bbappend @@ -0,0 +1,5 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" + +SRC_URI_append = " \ + file://0001-tools-image-host-fix-wrong-return-value.patch \ +" diff --git a/recipes-bsp/u-boot/u-boot-toradex-common.inc b/recipes-bsp/u-boot/u-boot-toradex-common.inc index f00a856..32c4083 100644 --- a/recipes-bsp/u-boot/u-boot-toradex-common.inc +++ b/recipes-bsp/u-boot/u-boot-toradex-common.inc @@ -12,7 +12,7 @@ inherit toradex-u-boot-localversion # We use the revision in order to avoid having to fetch it from the # repo during parse -SRCREV = "2a68bb1926d61ee0f15877ce76d615fd1bc88fe3" +SRCREV = "4baed786463e78727265420bf36df440b0a9ac92" SRCBRANCH = "toradex_2020.07" SRCREV_use-head-next = "${AUTOREV}" diff --git a/recipes-bsp/u-boot/u-boot-toradex-common_2020.04.inc b/recipes-bsp/u-boot/u-boot-toradex-common_2020.04.inc index 30fd029..9da1c42 100644 --- a/recipes-bsp/u-boot/u-boot-toradex-common_2020.04.inc +++ b/recipes-bsp/u-boot/u-boot-toradex-common_2020.04.inc @@ -10,7 +10,7 @@ SRC_URI = " \ file://fw_env.config \ " -SRCREV = "76fd4496a40b9dd7271ceb9ff330982c954fe8e9" +SRCREV = "e72d2f7c00a195a6db25c1d1d9249999bcf51fc9" SRCREV_use-head-next = "${AUTOREV}" SRCBRANCH = "toradex_imx_v2020.04_5.4.70_2.3.0" diff --git a/recipes-bsp/u-boot/u-boot-toradex_2020.07.bb b/recipes-bsp/u-boot/u-boot-toradex_2020.07.bb index 4add74e..bc6405a 100644 --- a/recipes-bsp/u-boot/u-boot-toradex_2020.07.bb +++ b/recipes-bsp/u-boot/u-boot-toradex_2020.07.bb @@ -31,6 +31,14 @@ nand_padding () { dd bs=1024 count=1 if=/dev/zero | cat - ${PADDING_DIR}/u-boot.imx.zero-padded > ${PADDING_DIR}/u-boot-nand.imx } +deploy_uboot_with_spl () { + for config in ${UBOOT_MACHINE}; do + if [ -f "${B}/${config}/u-boot-with-spl.imx" ]; then + install -D -m 644 ${B}/${config}/u-boot-with-spl.imx ${DEPLOYDIR}/u-boot-with-spl.imx + fi + done +} + do_compile_append_colibri-imx6ull () { nand_padding } @@ -38,3 +46,15 @@ do_compile_append_colibri-imx6ull () { do_compile_append_colibri-imx7 () { nand_padding } + +do_compile_append_colibri-vf () { + nand_padding +} + +do_deploy_append_colibri-imx6 () { + deploy_uboot_with_spl +} + +do_deploy_append_apalis-imx6 () { + deploy_uboot_with_spl +} diff --git a/recipes-graphics/drm/libdrm_2.4.102.imx.bbappend b/recipes-graphics/drm/libdrm_2.4.102.imx.bbappend index 0589710..688a02f 100644 --- a/recipes-graphics/drm/libdrm_2.4.102.imx.bbappend +++ b/recipes-graphics/drm/libdrm_2.4.102.imx.bbappend @@ -1 +1 @@ -RDEPENDS_${PN}_append_imxgpu = " ${PN}-etnaviv ${PN}-vivante" +RDEPENDS_${PN}_append_imxgpu_tdx = " ${PN}-etnaviv ${PN}-vivante" diff --git a/recipes-graphics/wayland/weston-init.bbappend b/recipes-graphics/wayland/weston-init.bbappend index c92a3c6..0fdba76 100644 --- a/recipes-graphics/wayland/weston-init.bbappend +++ b/recipes-graphics/wayland/weston-init.bbappend @@ -1,8 +1,3 @@ -INI_UNCOMMENT_ASSIGNMENTS_append_mx8 = " \ - use-g2d=1 \ -" - - uncomment() { # already uncommented, do nothing if ! (grep "^$1" $2); then @@ -12,3 +7,38 @@ uncomment() { sed -i -e 's,^#'"$1"','"$1"',g' $2 fi } + + +configure_noidle() { + sed -i '/idle-time=0/d' ${D}${sysconfdir}/xdg/weston/weston.ini + sed -i '/^\[core\]/a idle-time=0' ${D}${sysconfdir}/xdg/weston/weston.ini +} + +# Prevent weston from going to sleep +do_install_append_upstream() { + configure_noidle +} + +configure_pixman() { + sed -i '/use-pixman=true/d' ${D}${sysconfdir}/xdg/weston/weston.ini + sed -i '/^\[core\]/a use-pixman=true' ${D}${sysconfdir}/xdg/weston/weston.ini +} + +# With upstream weston and modules without GPU weston uses a lot of +# cpu time and becomes very unresponsive. Setting use-pixman=true works +# around it. +do_install_append_upstream_colibri-imx6ull() { + configure_pixman +} + +do_install_append_upstream_colibri-imx6ull-emmc() { + configure_pixman +} + +do_install_append_upstream_colibri-imx7() { + configure_pixman +} + +do_install_append_upstream_colibri-imx7-emmc() { + configure_pixman +} diff --git a/recipes-kernel/linux-firmware/linux-firmware_%.bbappend b/recipes-kernel/linux-firmware/linux-firmware_%.bbappend new file mode 100644 index 0000000..0e02d99 --- /dev/null +++ b/recipes-kernel/linux-firmware/linux-firmware_%.bbappend @@ -0,0 +1,29 @@ +IMX_FIRMWARE_SRC ?= "git://github.com/NXP/imx-firmware.git;protocol=https" +SRCBRANCH_imx-firmware = "lf-5.10.72_2.2.0" +SRC_URI += " \ + ${IMX_FIRMWARE_SRC};branch=${SRCBRANCH_imx-firmware};destsuffix=imx-firmware;name=imx-firmware \ +" + +SRCREV_imx-firmware = "a312213179f671cecba5f32aa839cc752a3e817f" + +SRCREV_FORMAT = "default_imx-firmware" + +do_install_append () { + # Install NXP Connectivity SDIO8997 firmware + install -d ${D}${nonarch_base_libdir}/firmware/nxp + install -m 0644 ${WORKDIR}/imx-firmware/nxp/wifi_mod_para.conf ${D}${nonarch_base_libdir}/firmware/nxp + install -m 0644 ${WORKDIR}/imx-firmware/nxp/FwImage_8997_SD/ed_mac_ctrl_V3_8997.conf ${D}${nonarch_base_libdir}/firmware/nxp + install -m 0644 ${WORKDIR}/imx-firmware/nxp/FwImage_8997_SD/sdiouart8997_combo_v4.bin ${D}${nonarch_base_libdir}/firmware/nxp + install -m 0644 ${WORKDIR}/imx-firmware/nxp/FwImage_8997_SD/txpwrlimit_cfg_8997.conf ${D}${nonarch_base_libdir}/firmware/nxp + + # Upstream SDIO8997 driver firmware is located elsewhere + install -d ${D}${nonarch_base_libdir}/firmware/mrvl + lnr ${D}${nonarch_base_libdir}/firmware/nxp/sdiouart8997_combo_v4.bin ${D}${nonarch_base_libdir}/firmware/mrvl/sdiouart8997_combo_v4.bin +} + +PACKAGES =+ " ${PN}-nxp89xx" + +FILES_${PN}-nxp89xx = " \ + ${nonarch_base_libdir}/firmware/nxp/* \ + ${nonarch_base_libdir}/firmware/mrvl/sdiouart8997_combo_v4.bin \ +" diff --git a/recipes-kernel/linux/device-tree-overlays_git.bb b/recipes-kernel/linux/device-tree-overlays_git.bb index 68df30f..9ce7664 100644 --- a/recipes-kernel/linux/device-tree-overlays_git.bb +++ b/recipes-kernel/linux/device-tree-overlays_git.bb @@ -1,7 +1,7 @@ inherit toradex-devicetree SRCBRANCH = "toradex_5.4-2.3.x-imx" -SRCREV = "ffc4fcbf04b03c328a786b0bb6812f565109f8fd" +SRCREV = "d5905ae8af38f9b715f6605f239e53cc04f3e087" SRCREV_use-head-next = "${AUTOREV}" # we have dtbo's in arm and arm64 architecture, set the include paths diff --git a/recipes-kernel/linux/linux-imx-headers_5.4%.bbappend b/recipes-kernel/linux/linux-imx-headers_5.4%.bbappend index eae6592..6f85f34 100644 --- a/recipes-kernel/linux/linux-imx-headers_5.4%.bbappend +++ b/recipes-kernel/linux/linux-imx-headers_5.4%.bbappend @@ -1,6 +1,6 @@ -LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" -SRCBRANCH = "toradex_5.4-2.1.x-imx" -LOCALVERSION = "-${SRCBRANCH}" -SRC_URI = "git://git.toradex.com/linux-toradex.git;protocol=https;branch=${SRCBRANCH}" +LIC_FILES_CHKSUM_tdx = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" +SRCBRANCH_tdx = "toradex_5.4-2.1.x-imx" +LOCALVERSION_tdx = "-2.3.2" +SRC_URI_tdx = "git://git.toradex.com/linux-toradex.git;protocol=https;branch=${SRCBRANCH}" # Keep that one stable, i.e. use the exact git hash from the NXP BSP. -SRCREV = "dea2fede7e024ee7029b13e8d82a00ec14427777" +SRCREV_tdx = "dea2fede7e024ee7029b13e8d82a00ec14427777" diff --git a/recipes-kernel/linux/linux-toradex_5.4-2.3.x.bb b/recipes-kernel/linux/linux-toradex_5.4-2.3.x.bb index b46b227..677f87e 100644 --- a/recipes-kernel/linux/linux-toradex_5.4-2.3.x.bb +++ b/recipes-kernel/linux/linux-toradex_5.4-2.3.x.bb @@ -14,7 +14,7 @@ SRC_URI = " \ KERNEL_MODULE_AUTOLOAD += "${@bb.utils.contains('COMBINED_FEATURES', 'usbgadget', ' libcomposite', '',d)}" inherit toradex-kernel-localversion -LINUX_VERSION = "5.4.91" +LINUX_VERSION = "5.4.193" # skip, as with use-head-next LINUX_VERSION might be set wrongly KERNEL_VERSION_SANITY_SKIP_use-head-next = "1" @@ -22,7 +22,7 @@ KERNEL_VERSION_SANITY_SKIP_use-head-next = "1" LOCALVERSION = "-${TDX_VERSION}" SRCBRANCH = "toradex_5.4-2.3.x-imx" -SRCREV_machine = "6afb048a71e32dec0105cb9b1b23810438796730" +SRCREV_machine = "cf754d7aaa943974fa97b26d641da26f13a02bd6" SRCREV_machine_use-head-next = "${AUTOREV}" DEPENDS += "lzop-native bc-native" @@ -31,9 +31,12 @@ COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" KBUILD_DEFCONFIG_apalis-imx6 ?= "apalis_imx6_defconfig" KBUILD_DEFCONFIG_colibri-imx6 ?= "colibri_imx6_defconfig" KBUILD_DEFCONFIG_colibri-imx6ull ?= "colibri-imx6ull_defconfig" +KBUILD_DEFCONFIG_colibri-imx6ull-emmc ?= "colibri-imx6ull_defconfig" KBUILD_DEFCONFIG_mx7 ?= "colibri_imx7_defconfig" KBUILD_DEFCONFIG_mx8 ?= "toradex_defconfig" +export DTC_FLAGS = "-@" + ############################################################################### # Apply the RT patch and change the configuration to use PREMPT_RT when the # preempt-rt override is set. @@ -43,7 +46,7 @@ KBUILD_DEFCONFIG_mx8 ?= "toradex_defconfig" # both possible storage locations. MIRRORS_append_preempt-rt = "${KERNELORG_MIRROR}/linux/kernel/projects/rt/5.4/older/ ${KERNELORG_MIRROR}/linux/kernel/projects/rt/5.4/" SRC_URI_append_preempt-rt = " \ - ${KERNELORG_MIRROR}/linux/kernel/projects/rt/5.4/older/patch-5.4.91-rt50.patch.xz;name=rt-patch \ + ${KERNELORG_MIRROR}/linux/kernel/projects/rt/5.4/older/patch-5.4.193-rt74.patch.xz;name=rt-patch \ file://preempt-rt.scc \ file://preempt-rt-less-latency.scc \ " @@ -53,4 +56,4 @@ SRC_URI_append_preempt-rt = " \ # file://0002-ddr-perf-prevent-BUG-with-rt-patch.patch \ # -SRC_URI[rt-patch.sha256sum] = "3152fac82ee4357f89035736de707545b36b1816536d17cc76bd830b488a2923" +SRC_URI[rt-patch.sha256sum] = "821d7bf3015d90e86eace5869d5596eacc9e4b5bd80644d40207817c4b8cc4be" diff --git a/recipes-kernel/perf/perf.bbappend b/recipes-kernel/perf/perf.bbappend new file mode 100644 index 0000000..87a8b28 --- /dev/null +++ b/recipes-kernel/perf/perf.bbappend @@ -0,0 +1,2 @@ +# perf with a 4.4 kernel no longer compiles +COMPATIBLE_MACHINE_use-nxp-bsp_colibri-vf = "(^$)" diff --git a/recipes-multimedia/gstreamer/gst-plugins-package.inc b/recipes-multimedia/gstreamer/gst-plugins-package.inc deleted file mode 100644 index 6781e98..0000000 --- a/recipes-multimedia/gstreamer/gst-plugins-package.inc +++ /dev/null @@ -1,56 +0,0 @@ -PACKAGESPLITFUNCS_prepend = " split_gstreamer10_packages " -PACKAGESPLITFUNCS_append = " set_metapkg_rdepends " - -python split_gstreamer10_packages () { - gst_libdir = d.expand('${libdir}/gstreamer-${LIBV}') - postinst = d.getVar('plugin_postinst') - glibdir = d.getVar('libdir') - - do_split_packages(d, glibdir, r'^lib(.*)\.so\.*', 'lib%s', 'gstreamer %s library', extra_depends='', allow_links=True) - do_split_packages(d, gst_libdir, r'libgst(.*)\.so$', d.expand('${PN}-%s'), 'GStreamer plugin for %s', postinst=postinst, extra_depends='') - do_split_packages(d, glibdir+'/girepository-1.0', r'Gst(.*)-1.0\.typelib$', d.expand('${PN}-%s-typelib'), 'GStreamer typelib file for %s', postinst=postinst, extra_depends='') - do_split_packages(d, gst_libdir, r'libgst(.*)\.la$', d.expand('${PN}-%s-dev'), 'GStreamer plugin for %s (development files)', extra_depends='${PN}-dev') - do_split_packages(d, gst_libdir, r'libgst(.*)\.a$', d.expand('${PN}-%s-staticdev'), 'GStreamer plugin for %s (static development files)', extra_depends='${PN}-staticdev') -} - -python set_metapkg_rdepends () { - import os - import oe.utils - - pn = d.getVar('PN') - metapkg = pn + '-meta' - d.setVar('ALLOW_EMPTY_' + metapkg, "1") - d.setVar('FILES_' + metapkg, "") - blacklist = [ pn, pn + '-meta' ] - metapkg_rdepends = [] - pkgdest = d.getVar('PKGDEST') - for pkg in oe.utils.packages_filter_out_system(d): - if pkg not in blacklist and pkg not in metapkg_rdepends: - # See if the package is empty by looking at the contents of its PKGDEST subdirectory. - # If this subdirectory is empty, then the package is. - # Empty packages do not get added to the meta package's RDEPENDS - pkgdir = os.path.join(pkgdest, pkg) - if os.path.exists(pkgdir): - dir_contents = os.listdir(pkgdir) or [] - else: - dir_contents = [] - is_empty = len(dir_contents) == 0 - if not is_empty: - metapkg_rdepends.append(pkg) - d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) - d.setVar('DESCRIPTION_' + metapkg, pn + ' meta package') -} - -# each plugin-dev depends on PN-dev, plugin-staticdev on PN-staticdev -# so we need them even when empty (like in gst-plugins-good case) -ALLOW_EMPTY_${PN} = "1" -ALLOW_EMPTY_${PN}-dev = "1" -ALLOW_EMPTY_${PN}-staticdev = "1" - -PACKAGES += "${PN}-apps ${PN}-meta ${PN}-glib" - -FILES_${PN} = "" -FILES_${PN}-apps = "${bindir}" -FILES_${PN}-glib = "${datadir}/glib-2.0" - -RRECOMMENDS_${PN} += "${PN}-meta" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_%.bbappend b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_%.bbappend deleted file mode 100644 index c73790e..0000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_%.bbappend +++ /dev/null @@ -1 +0,0 @@ -EXTRA_OECONF += "--libdir=${libdir}" diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc b/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc deleted file mode 100644 index bc24b05..0000000 --- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc +++ /dev/null @@ -1,41 +0,0 @@ -SUMMARY = "Plugins for the GStreamer multimedia framework 1.x" -HOMEPAGE = "http://gstreamer.freedesktop.org/" -BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" -SECTION = "multimedia" - -DEPENDS = "gstreamer1.0 glib-2.0-native" - -SRC_URI_append = " file://gtk-doc-tweaks.patch" - -inherit autotools pkgconfig upstream-version-is-even gtk-doc - -acpaths = "-I ${S}/common/m4 -I ${S}/m4" - -LIBV = "1.0" -require gst-plugins-package.inc - -# Orc enables runtime JIT compilation of data processing routines from Orc -# bytecode to SIMD instructions for various architectures (currently SSE, MMX, -# MIPS, Altivec and NEON are supported). - -GSTREAMER_ORC ?= "orc" - -PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" -PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc orc-native" -PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind" - -export ORCC = "${STAGING_DIR_NATIVE}${bindir}/orcc" - -EXTRA_OECONF = " \ - --disable-examples \ -" - -delete_pkg_m4_file() { - # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection - rm "${S}/common/m4/pkg.m4" || true - rm -f "${S}/common/m4/gtk-doc.m4" -} - -do_configure[prefuncs] += " delete_pkg_m4_file" - -PACKAGES_DYNAMIC = "^${PN}-.*" diff --git a/recipes-support/bmode-usb/bmode-usb_1.0.bb b/recipes-support/bmode-usb/bmode-usb_1.0.bb index 752c09b..62d48b4 100644 --- a/recipes-support/bmode-usb/bmode-usb_1.0.bb +++ b/recipes-support/bmode-usb/bmode-usb_1.0.bb @@ -8,6 +8,7 @@ DEFINE = "NO_MACHINE" DEFINE_apalis-imx6 = "MX6" DEFINE_colibri-imx6 = "MX6" DEFINE_colibri-imx6ull = "MX6ULL" +DEFINE_colibri-imx6ull-emmc = "MX6ULL" do_compile() { ${CC} -o bmode_usb bmode_usb.c ${CFLAGS} ${LDFLAGS} -D ${DEFINE} diff --git a/recipes-support/btuart/btuart.bb b/recipes-support/btuart/btuart.bb new file mode 100644 index 0000000..5cc4066 --- /dev/null +++ b/recipes-support/btuart/btuart.bb @@ -0,0 +1,37 @@ +SUMMARY = "Initialize Bluetooth UART" +DESCRIPTION = "At runtime on target make sure appropriate firmware is used and initialize Bluetooth UART" +LICENSE = "PD" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +RRECOMMENDS_${PN} = "bluez5" + +SRC_URI = " \ + file://btuart.sh \ + file://btuart.service \ + file://COPYING \ +" + +LIC_FILES_CHKSUM = "file://${WORKDIR}/COPYING;md5=1c3a7fb45253c11c74434676d84fe7dd" + +do_install () { + install -d ${D}/${sbindir} + install -m 0755 ${WORKDIR}/*.sh ${D}/${sbindir} + + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/btuart.service ${D}${systemd_unitdir}/system +} + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "btuart.service" + +inherit allarch systemd + +pkg_postinst_ontarget_${PN}_verdin-imx8mp () { + # only BT UART modules need our service + if fgrep -q V1.0 /proc/device-tree/toradex,board-rev || ! fgrep -q toradex,verdin-imx8mp-wifi /proc/device-tree/compatible; then + /bin/systemctl disable btuart.service + /bin/systemctl stop btuart.service + exit 0 + fi +} diff --git a/recipes-support/btuart/files/COPYING b/recipes-support/btuart/files/COPYING new file mode 100644 index 0000000..040e990 --- /dev/null +++ b/recipes-support/btuart/files/COPYING @@ -0,0 +1,5 @@ +This piece is software is provided by Toradex AG as sample code. +There is no warranty for the program. +Toradex AG put this program in public domain, uncopyrighted. + +Renens, Swizterland, 2008-10-23 diff --git a/recipes-support/btuart/files/btuart.service b/recipes-support/btuart/files/btuart.service new file mode 100644 index 0000000..547f6be --- /dev/null +++ b/recipes-support/btuart/files/btuart.service @@ -0,0 +1,13 @@ +[Unit] +Description=Initialize Bluetooth UART +Wants=bluetooth.service +Before=bluetooth.service +After=sys-subsystem-net-devices-mlan0.device +After=dev-ttymxc3.device + +[Service] +Type=forking +ExecStart=/usr/sbin/btuart.sh + +[Install] +WantedBy=multi-user.target diff --git a/recipes-support/btuart/files/btuart.sh b/recipes-support/btuart/files/btuart.sh new file mode 100755 index 0000000..c4f53c1 --- /dev/null +++ b/recipes-support/btuart/files/btuart.sh @@ -0,0 +1,8 @@ +#!/bin/sh +sleep 5 +/usr/bin/hciattach /dev/ttymxc3 any 115200 flow +/usr/sbin/rfkill unblock bluetooth +/usr/bin/hciconfig hci0 up +# Change BT UART baudrate to a higher speed, for example 921600 +/usr/bin/hcitool -i hci0 cmd 0x3F 0x09 0x00 0x10 0x0e 0x00 +/bin/stty -F /dev/ttymxc3 921600 diff --git a/wic/verdin-imx8mp-imx-boot-bootpart.wks.in b/wic/verdin-imx8mp-imx-boot-bootpart.wks.in deleted file mode 100644 index b498a1a..0000000 --- a/wic/verdin-imx8mp-imx-boot-bootpart.wks.in +++ /dev/null @@ -1,20 +0,0 @@ -# short-description: Create SD card image with a boot partition -# long-description: -# Create an image that can be written onto a SD card using dd for use -# with i.MX SoC family -# It uses u-boot + other binaries gathered together on imx-boot file -# -# The disk layout used is: -# - ---------- -------------- -------------- -# | | imx-boot | boot | rootfs | -# - ---------- -------------- -------------- -# ^ ^ ^ ^ ^ -# | | | | | -# 0 | 8MiB 72MiB 72MiB + rootfs + IMAGE_EXTRA_SPACE (default 10MiB) -# ${IMX_BOOT_SEEK} 32 or 33kiB, see reference manual -# -part u-boot --source rawcopy --sourceparams="file=imx-boot" --ondisk mmcblk --no-table --align ${IMX_BOOT_SEEK} -part /boot --source bootimg-partition --ondisk mmcblk --fstype=vfat --label BOOT --active --align 8192 --size 64 -part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 8192 - -bootloader --ptable msdos |