summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--classes/fsl-eula-unpack.bbclass4
-rw-r--r--classes/fsl-u-boot-localversion.bbclass2
-rw-r--r--classes/fsl-vivante-kernel-driver-handler.bbclass8
-rw-r--r--classes/image_types_fsl.bbclass6
-rw-r--r--classes/imx-boot-container.bbclass4
-rw-r--r--classes/kernel-imximage.bbclass4
-rw-r--r--classes/kernel-itbimage.bbclass2
-rw-r--r--classes/machine-overrides-extender.bbclass8
-rw-r--r--classes/mfgtool-initramfs-image.bbclass2
-rw-r--r--classes/qoriq_build_64bit_kernel.bbclass6
-rw-r--r--classes/use-imx-headers.bbclass8
-rw-r--r--classes/use-imx-security-controller-firmware.bbclass6
-rw-r--r--conf/layer.conf2
-rw-r--r--conf/machine/imx23evk.conf2
-rw-r--r--conf/machine/imx25pdk.conf2
-rw-r--r--conf/machine/imx28evk.conf2
-rw-r--r--conf/machine/imx51evk.conf2
-rw-r--r--conf/machine/imx53ard.conf2
-rw-r--r--conf/machine/imx53qsb.conf2
-rw-r--r--conf/machine/imx6qdlsabreauto.conf34
-rw-r--r--conf/machine/imx6qdlsabresd.conf31
-rw-r--r--conf/machine/imx6slevk.conf4
-rw-r--r--conf/machine/imx6sllevk.conf4
-rw-r--r--conf/machine/imx6sxsabreauto.conf6
-rw-r--r--conf/machine/imx6sxsabresd.conf6
-rw-r--r--conf/machine/imx6ulevk.conf14
-rw-r--r--conf/machine/imx6ullevk.conf4
-rw-r--r--conf/machine/imx6ulz-14x14-evk.conf4
-rw-r--r--conf/machine/imx7dsabresd.conf4
-rw-r--r--conf/machine/imx7ulpevk.conf6
-rw-r--r--conf/machine/imx8dxl-lpddr4-evk.conf2
-rw-r--r--conf/machine/imx8mm-ddr4-evk.conf2
-rw-r--r--conf/machine/imx8mm-lpddr4-evk.conf2
-rw-r--r--conf/machine/imx8mn-ddr4-evk.conf2
-rw-r--r--conf/machine/imx8mn-lpddr4-evk.conf2
-rw-r--r--conf/machine/imx8mp-ddr4-evk.conf2
-rw-r--r--conf/machine/imx8mp-lpddr4-evk.conf2
-rw-r--r--conf/machine/imx8mq-evk.conf21
-rw-r--r--conf/machine/imx8qm-mek.conf12
-rw-r--r--conf/machine/imx8qxp-mek.conf2
-rw-r--r--conf/machine/include/e500mc.inc2
-rw-r--r--conf/machine/include/e500v2.inc2
-rw-r--r--conf/machine/include/e5500-64b.inc4
-rw-r--r--conf/machine/include/e5500.inc2
-rw-r--r--conf/machine/include/e6500-64b.inc4
-rw-r--r--conf/machine/include/e6500.inc4
-rw-r--r--conf/machine/include/imx-base.inc365
-rw-r--r--conf/machine/include/imx8dxl-evk.inc8
-rw-r--r--conf/machine/include/imx8mm-evk.inc35
-rw-r--r--conf/machine/include/imx8mn-evk.inc33
-rw-r--r--conf/machine/include/imx8mp-evk.inc31
-rw-r--r--conf/machine/include/imx8x-mek.inc10
-rw-r--r--conf/machine/include/qoriq-base.inc10
-rw-r--r--conf/machine/include/utilities.inc2
-rw-r--r--conf/machine/ls1021atwr.conf2
-rw-r--r--conf/machine/ls1028ardb.conf2
-rw-r--r--conf/machine/ls1043ardb.conf2
-rw-r--r--conf/machine/ls1046afrwy.conf2
-rw-r--r--conf/machine/ls1046ardb.conf2
-rw-r--r--dynamic-layers/aglprofilegraphical/recipes-graphics/wayland/weston-init.bbappend2
-rw-r--r--dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-imx.inc4
-rw-r--r--dynamic-layers/filesystem-layer/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bbappend2
-rw-r--r--dynamic-layers/gnome-layer/recipes-graphics/clutter/clutter-1.0_%.bbappend2
-rw-r--r--dynamic-layers/gnome-layer/recipes-graphics/cogl/cogl-1.0_%.bbappend2
-rw-r--r--dynamic-layers/ivi/recipes-graphics/wayland/weston-init.bbappend2
-rw-r--r--dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend6
-rw-r--r--dynamic-layers/openembedded-layer/recipes-devtools/luajit/luajit_%.bbappend4
-rw-r--r--dynamic-layers/openembedded-layer/recipes-dpaa/fmc/fmc_git.bb18
-rw-r--r--dynamic-layers/openembedded-layer/recipes-graphics/xserver-common/xserver-common_%.bbappend6
-rw-r--r--dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-imx-support.inc12
-rw-r--r--dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend26
-rw-r--r--dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend8
-rw-r--r--dynamic-layers/virtualization-layer/recipes-extended/libvirt/libvirt_%.bbappend8
-rw-r--r--recipes-bsp/alsa-state/alsa-state.bbappend16
-rw-r--r--recipes-bsp/atf/qoriq-atf_1.5.bb20
-rw-r--r--recipes-bsp/atf/qoriq-atf_2.3.bb6
-rw-r--r--recipes-bsp/boot-format/boot-format_git.bb2
-rw-r--r--recipes-bsp/ddr-phy/ddr-phy_git.bb2
-rw-r--r--recipes-bsp/dp-firmware-cadence/dp-firmware-cadence_20.04.bb2
-rw-r--r--recipes-bsp/firmware-imx/firmware-imx-8_8.12.bb4
-rw-r--r--recipes-bsp/firmware-imx/firmware-imx_8.12.bb6
-rw-r--r--recipes-bsp/firmware-imx/firmware-nxp-wifi_1.0.bb6
-rw-r--r--recipes-bsp/firmware-imx/firmware-sof-imx_1.5.0-3.bb2
-rw-r--r--recipes-bsp/firmware-qca/firmware-qca.inc15
-rw-r--r--recipes-bsp/firmware-qca/firmware-qca6174_3.0.2.bb27
-rw-r--r--recipes-bsp/firmware-qca/firmware-qca9377_3.0.2.bb27
-rw-r--r--recipes-bsp/firmware-qca/qca-tools_3.0.2.bb20
-rw-r--r--recipes-bsp/formfactor/formfactor_%.bbappend2
-rw-r--r--recipes-bsp/imx-atf/imx-atf_2.4.bb2
-rw-r--r--recipes-bsp/imx-lib/imx-lib_git.bb18
-rw-r--r--recipes-bsp/imx-mkimage/imx-boot_1.0.bb22
-rw-r--r--recipes-bsp/imx-sc-firmware/imx-sc-firmware_1.9.0.bb8
-rw-r--r--recipes-bsp/imx-test/imx-test_00.00.00.bb2
-rw-r--r--recipes-bsp/imx-test/imx-test_git.bb34
-rw-r--r--recipes-bsp/imx-uuc/imx-uuc_git.bb2
-rw-r--r--recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.4.0.bb2
-rw-r--r--recipes-bsp/imx-vpu-hantro/imx-vpu-hantro-daemon_1.0.0.bb8
-rw-r--r--recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.22.0.bb10
-rw-r--r--recipes-bsp/imx-vpu/imx-vpu_5.4.39.3.bb2
-rw-r--r--recipes-bsp/inphi/inphi_git.bb2
-rw-r--r--recipes-bsp/isp-imx/basler-camera_4.2.2.13.0.bb4
-rw-r--r--recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-NR_DEVICE_TREE_BASLER-variable.patch53
-rw-r--r--recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-test-to-be-generic.patch41
-rw-r--r--recipes-bsp/isp-imx/isp-imx_4.2.2.13.0.bb14
-rw-r--r--recipes-bsp/libimxdmabuffer/libimxdmabuffer_1.0.1.bb14
-rw-r--r--recipes-bsp/ls2-phy/ls2-phy_git.bb2
-rw-r--r--recipes-bsp/mc-utils/mc-utils_git.bb10
-rw-r--r--recipes-bsp/ppfe-firmware/ppfe-firmware_git.bb4
-rw-r--r--recipes-bsp/qe-ucode/qe-ucode_git.bb2
-rw-r--r--recipes-bsp/rcw/rcw_git.bb8
-rw-r--r--recipes-bsp/u-boot/libubootenv_%.bbappend4
-rw-r--r--recipes-bsp/u-boot/u-boot-fslc-common_2021.07.inc2
-rw-r--r--recipes-bsp/u-boot/u-boot-fslc-mfgtool_2021.07.bb2
-rw-r--r--recipes-bsp/u-boot/u-boot-fslc-mxsboot_2021.07.bb8
-rw-r--r--recipes-bsp/u-boot/u-boot-fslc_2021.07.bb44
-rw-r--r--recipes-bsp/u-boot/u-boot-imx-mfgtool_2021.04.bb2
-rw-r--r--recipes-bsp/u-boot/u-boot-imx_2021.04.bb2
-rw-r--r--recipes-bsp/u-boot/u-boot-qoriq_2020.04.bb20
-rw-r--r--recipes-bsp/uefi/uefi_git.bb2
-rw-r--r--recipes-connectivity/iproute2/iproute2_%.bbappend2
-rw-r--r--recipes-connectivity/openssl/openssl_%.bbappend6
-rw-r--r--recipes-core/init-ifupdown/init-ifupdown_%.bbappend2
-rw-r--r--recipes-core/packagegroup/nativesdk-packagegroup-sdk-host.bbappend2
-rw-r--r--recipes-core/udev/udev-rules-qoriq.bb16
-rw-r--r--recipes-devtools/cst/cst_git.bb6
-rw-r--r--recipes-devtools/qemu/qemu-qoriq_4.1.0.bb18
-rw-r--r--recipes-devtools/qemu/qemu.inc22
-rw-r--r--recipes-dpaa/flib/flib_git.bb2
-rw-r--r--recipes-dpaa/fm-ucode/fm-ucode_git.bb16
-rw-r--r--recipes-dpaa/fmlib/fmlib_git.bb16
-rw-r--r--recipes-dpaa2/aiopsl/aiopsl_git.bb6
-rw-r--r--recipes-dpaa2/dce/dce_git.bb2
-rw-r--r--recipes-dpaa2/management-complex/management-complex_10.14.1.bb8
-rw-r--r--recipes-dpaa2/management-complex/management-complex_10.20.4.bb8
-rw-r--r--recipes-dpaa2/management-complex/management-complex_10.24.0.bb10
-rw-r--r--recipes-dpaa2/restool/restool_git.bb2
-rw-r--r--recipes-extended/crconf/crconf_git.bb2
-rw-r--r--recipes-extended/dpdk/dpdk.inc30
-rw-r--r--recipes-extended/dpdk/dpdk_19.11-20.12.bb2
-rw-r--r--recipes-extended/ipc-ust/ipc-ust_git.bb10
-rw-r--r--recipes-extended/jailhouse/jailhouse_0.12.bb16
-rw-r--r--recipes-extended/libpkcs11/libpkcs11_git.bb4
-rw-r--r--recipes-extended/merge-files/merge-files_1.0.bb6
-rw-r--r--recipes-extended/odp/odp-counters_git.bb2
-rw-r--r--recipes-extended/odp/odp-module_git.bb4
-rw-r--r--recipes-extended/odp/odp.inc2
-rw-r--r--recipes-extended/odp/odp_git.bb26
-rw-r--r--recipes-extended/ofp/ofp_git.bb4
-rw-r--r--recipes-extended/ovs-dpdk/ovs-dpdk_2.13.0.bb4
-rw-r--r--recipes-extended/pktgen-dpdk/pktgen-dpdk_19.12.0.bb2
-rw-r--r--recipes-extended/procps/procps_%.bbappend2
-rw-r--r--recipes-extended/secure-obj/secure-obj.inc6
-rw-r--r--recipes-extended/secure-obj/secure-obj_git.bb12
-rw-r--r--recipes-extended/testfloat/testfloat_2a.bb4
-rw-r--r--recipes-extended/tsntool/tsntool_git.bb6
-rw-r--r--recipes-fsl/packagegroups/packagegroup-fsl-isp.bb4
-rw-r--r--recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bb6
-rw-r--r--recipes-fsl/packagegroups/packagegroup-fsl-opencv-imx.bb2
-rw-r--r--recipes-fsl/packagegroups/packagegroup-fsl-qca6174.bb13
-rw-r--r--recipes-fsl/packagegroups/packagegroup-fsl-qca9377.bb12
-rw-r--r--recipes-graphics/cairo/cairo_%.bbappend4
-rw-r--r--recipes-graphics/drm/libdrm_2.4.102.imx.bb32
-rw-r--r--recipes-graphics/gtk+/gtk+3_%.bbappend4
-rw-r--r--recipes-graphics/images/core-image-weston.bbappend2
-rw-r--r--recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.9.2.bb (renamed from recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.8.14.bb)18
-rw-r--r--recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace/0001-dlsym-workaround-glibc-2.34-build-failure.patch33
-rw-r--r--recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace_9.0.0.bb14
-rw-r--r--recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p2.0.bb (renamed from recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p1.4.bb)20
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc185
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch64.bb6
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p2.0-aarch32.bb (renamed from recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch32.bb)4
-rw-r--r--recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p2.0-aarch64.bb6
-rw-r--r--recipes-graphics/libepoxy/libepoxy_1.5.%.bbappend2
-rw-r--r--recipes-graphics/libsdl2/libsdl2_%.bbappend4
-rw-r--r--recipes-graphics/mesa/mesa-demos_%.bbappend16
-rw-r--r--recipes-graphics/mesa/mesa-etnaviv-env_0.1.bb4
-rw-r--r--recipes-graphics/mesa/mesa-gl_%.bbappend2
-rw-r--r--recipes-graphics/mesa/mesa/0001-dri-add-createImageWithModifiers2-interface.patch67
-rw-r--r--recipes-graphics/mesa/mesa/0002-dri-add-loader_dri_create_image-helper.patch336
-rw-r--r--recipes-graphics/mesa/mesa/0003-loader-dri3-convert-to-loader_dri_create_image.patch93
-rw-r--r--recipes-graphics/mesa/mesa/0004-loader-dri-hook-up-createImageWithModifiers2.patch42
-rw-r--r--recipes-graphics/mesa/mesa/0005-gallium-dri-copy-image-use-in-dup_image.patch30
-rw-r--r--recipes-graphics/mesa/mesa/0006-dri-don-t-call-modifier-interfaces-when-modifiers_co.patch36
-rw-r--r--recipes-graphics/mesa/mesa/0007-frontend-dri-add-EXPLICIT_FLUSH-hint-in-dri2_resourc.patch46
-rw-r--r--recipes-graphics/mesa/mesa/0008-etnaviv-remove-double-assigment-of-surface-texture.patch31
-rw-r--r--recipes-graphics/mesa/mesa/0009-etnaviv-flush-used-render-buffers-on-context-flush-w.patch168
-rw-r--r--recipes-graphics/mesa/mesa_%.bbappend33
-rw-r--r--recipes-graphics/vulkan/vulkan-loader_%.bbappend2
-rw-r--r--recipes-graphics/waffle/waffle_%.bbappend10
-rw-r--r--recipes-graphics/wayland/wayland-protocols_1.20.imx.bb2
-rw-r--r--recipes-graphics/wayland/weston-init.bbappend26
-rw-r--r--recipes-graphics/wayland/weston_9.0.0.imx.bb48
-rw-r--r--recipes-graphics/xinput-calibrator/pointercal-xinput_%.bbappend2
-rw-r--r--recipes-graphics/xorg-driver/xf86-video-imx-vivante_6.4.0.p0.0.bb12
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend2
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0001-xfree86-define-FOURCC_NV12-and-XVIMAGE_NV12.patch47
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0002-glamor-add-support-for-GL_RG.patch116
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0003-glamor-add-support-for-NV12-in-Xv.patch322
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0004-glamor-Remove-unused-format_for_pixmap-helper.patch31
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0005-glamor-Stop-trying-to-store-the-pixmap-s-format-in-g.patch132
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0006-glamor-Plumb-the-pixmap-through-fbo-creation-instead.patch265
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch287
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg/0008-glamor-Introduce-a-central-place-for-our-pixmap-form.patch669
-rw-r--r--recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend22
-rw-r--r--recipes-graphics/xwayland/xwayland_%.bbappend6
-rw-r--r--recipes-kernel/ceetm/ceetm_git.bb4
-rw-r--r--recipes-kernel/kernel-modules/kernel-module-ar_git.bb6
-rw-r--r--recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p2.0.bb (renamed from recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p1.4.bb)8
-rw-r--r--recipes-kernel/kernel-modules/kernel-module-ipc-multi_git.bb4
-rw-r--r--recipes-kernel/kernel-modules/kernel-module-ipc-single_git.bb4
-rw-r--r--recipes-kernel/kernel-modules/kernel-module-ipc.inc2
-rw-r--r--recipes-kernel/kernel-modules/kernel-module-qca6174_3.0.bb14
-rw-r--r--recipes-kernel/kernel-modules/kernel-module-qca9377_3.1.bb17
-rw-r--r--recipes-kernel/kernel-modules/kernel-module-qcacld-lea.inc23
-rw-r--r--recipes-kernel/linux/linux-fslc-imx_5.4.bb6
-rw-r--r--recipes-kernel/linux/linux-fslc-lts-mfgtool_5.10.bb2
-rw-r--r--recipes-kernel/linux/linux-fslc-lts_5.10.bb4
-rw-r--r--recipes-kernel/linux/linux-fslc-mfgtool_5.14.bb (renamed from recipes-kernel/linux/linux-fslc-mfgtool_5.12.bb)2
-rw-r--r--recipes-kernel/linux/linux-fslc/armv8a/defconfig56
-rw-r--r--recipes-kernel/linux/linux-fslc_5.14.bb (renamed from recipes-kernel/linux/linux-fslc_5.12.bb)6
-rw-r--r--recipes-kernel/linux/linux-imx-headers_5.10.bb4
-rw-r--r--recipes-kernel/linux/linux-imx-mfgtool_5.10.bb2
-rw-r--r--recipes-kernel/linux/linux-qoriq.inc20
-rw-r--r--recipes-kernel/skmm-host/skmm-host_git.bb2
-rw-r--r--recipes-multimedia/alsa/alsa-lib_%.bbappend6
-rw-r--r--recipes-multimedia/alsa/imx-alsa-plugins_1.0.26.bb14
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb70
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.0.bb24
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.0.imx.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.3.imx.bb)46
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gst-libs-gst-gl-wayland-fix-meson-build.patch36
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch220
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch34
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-viv-fb-code-must-link-against-libg2d.patch44
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch233
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-viv-fb-Make-sure-config.h-is-included.patch)2
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-glimagesink-Downrank-to-marginal.patch (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0009-glimagesink-Downrank-to-marginal.patch)2
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch48
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.%.bbappend5
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.%.bbappend5
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.0.imx.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.2.imx.bb)46
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.%.bbappend3
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.0.imx.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.3.imx.bb)12
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_2.0.0.bb22
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.0.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb)14
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc23
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.0.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb)8
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch58
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch112
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch36
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-valgrind-feature.patch74
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch32
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch257
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch36
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch110
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch48
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch58
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch37
-rwxr-xr-xrecipes-multimedia/gstreamer/gstreamer1.0/run-ptest2
-rw-r--r--recipes-multimedia/gstreamer/gstreamer1.0_1.18.0.imx.bb (renamed from recipes-multimedia/gstreamer/gstreamer1.0_1.16.2.imx.bb)50
-rw-r--r--recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.5.7.bb84
-rw-r--r--recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.6.1.bb81
-rw-r--r--recipes-multimedia/imx-codec/imx-codec_4.5.7.bb42
-rw-r--r--recipes-multimedia/imx-dspc-asrc/imx-dspc-asrc_1.0.1.bb2
-rw-r--r--recipes-multimedia/imx-parser/imx-parser_4.5.7.bb10
-rw-r--r--recipes-multimedia/imx-sw-pdm/imx-sw-pdm_1.0.1.bb4
-rw-r--r--recipes-multimedia/imx-vpuwrap/imx-vpuwrap_4.5.7.bb4
-rw-r--r--recipes-multimedia/libimxvpuapi/libimxvpuapi2_2.2.0.bb8
-rw-r--r--recipes-multimedia/pulseaudio/pulseaudio_%.bbappend18
-rwxr-xr-xrecipes-multimedia/tinycompress/tinycompress/0001-tinycompress-Add-id3-decoding.patch1001
-rwxr-xr-xrecipes-multimedia/tinycompress/tinycompress/0002-cplay-Support-wave-file.patch215
-rwxr-xr-xrecipes-multimedia/tinycompress/tinycompress/0003-cplay-Add-pause-feature.patch146
-rwxr-xr-xrecipes-multimedia/tinycompress/tinycompress/0004-tinycompress-pass-NULL-buffer-with-0-size-to-driver.patch40
-rwxr-xr-xrecipes-multimedia/tinycompress/tinycompress/0005-cplay-Support-aac-streams.patch251
-rw-r--r--recipes-multimedia/tinycompress/tinycompress_1.1.6.bb16
-rw-r--r--recipes-security/optee-imx/optee-client_3.10.0.imx.bb16
-rw-r--r--recipes-security/optee-imx/optee-os_3.10.0.imx.bb38
-rw-r--r--recipes-security/optee-imx/optee-test_3.10.0.imx.bb10
-rw-r--r--recipes-security/optee/optee-os-qoriq_3.8.0.bb20
-rw-r--r--recipes-security/optee/optee-test-qoriq_3.8.0.bb2
-rw-r--r--recipes-support/opencv/opencv_4.5.2.imx.bb80
280 files changed, 5521 insertions, 3515 deletions
diff --git a/classes/fsl-eula-unpack.bbclass b/classes/fsl-eula-unpack.bbclass
index 498d7826..5690898c 100644
--- a/classes/fsl-eula-unpack.bbclass
+++ b/classes/fsl-eula-unpack.bbclass
@@ -79,11 +79,11 @@ FSL_EULA_FILE_MD5SUM ?= \
79 79
80LIC_FILES_CHKSUM_LAYER ?= "file://${FSL_EULA_FILE};md5=${FSL_EULA_FILE_MD5SUM}" 80LIC_FILES_CHKSUM_LAYER ?= "file://${FSL_EULA_FILE};md5=${FSL_EULA_FILE_MD5SUM}"
81LIC_FILES_CHKSUM_LAYER[vardepsexclude] += "FSL_EULA_FILE" 81LIC_FILES_CHKSUM_LAYER[vardepsexclude] += "FSL_EULA_FILE"
82LIC_FILES_CHKSUM_append = " ${LIC_FILES_CHKSUM_LAYER}" 82LIC_FILES_CHKSUM:append = " ${LIC_FILES_CHKSUM_LAYER}"
83 83
84LIC_FILES_CHKSUM[vardepsexclude] += "FSL_EULA_FILE" 84LIC_FILES_CHKSUM[vardepsexclude] += "FSL_EULA_FILE"
85 85
86do_fetch_prepend() { 86do_fetch:prepend() {
87 if "Proprietary" not in d.getVar("LICENSE"): 87 if "Proprietary" not in d.getVar("LICENSE"):
88 bb.fatal("The recipe LICENSE should include Proprietary but is " + d.getVar("LICENSE") + ".") 88 bb.fatal("The recipe LICENSE should include Proprietary but is " + d.getVar("LICENSE") + ".")
89} 89}
diff --git a/classes/fsl-u-boot-localversion.bbclass b/classes/fsl-u-boot-localversion.bbclass
index 617aae1d..ebde8ea7 100644
--- a/classes/fsl-u-boot-localversion.bbclass
+++ b/classes/fsl-u-boot-localversion.bbclass
@@ -14,7 +14,7 @@ LOCALVERSION ??= "+fslc"
14 14
15UBOOT_LOCALVERSION = "${LOCALVERSION}" 15UBOOT_LOCALVERSION = "${LOCALVERSION}"
16 16
17do_compile_prepend() { 17do_compile:prepend() {
18 if [ "${SCMVERSION}" = "y" ]; then 18 if [ "${SCMVERSION}" = "y" ]; then
19 # Add GIT revision to the local version 19 # Add GIT revision to the local version
20 head=`cd ${S} ; git rev-parse --verify --short HEAD 2> /dev/null` 20 head=`cd ${S} ; git rev-parse --verify --short HEAD 2> /dev/null`
diff --git a/classes/fsl-vivante-kernel-driver-handler.bbclass b/classes/fsl-vivante-kernel-driver-handler.bbclass
index 8ac8a334..54954aab 100644
--- a/classes/fsl-vivante-kernel-driver-handler.bbclass
+++ b/classes/fsl-vivante-kernel-driver-handler.bbclass
@@ -41,15 +41,15 @@ python fsl_vivante_kernel_driver_handler () {
41 return 41 return
42 42
43 if use_vivante_kernel_driver_module != "1": 43 if use_vivante_kernel_driver_module != "1":
44 e.data.appendVar('RPROVIDES_${KERNEL_PACKAGE_NAME}-base', ' kernel-module-imx-gpu-viv') 44 e.data.appendVar('RPROVIDES:${KERNEL_PACKAGE_NAME}-base', ' kernel-module-imx-gpu-viv')
45 e.data.appendVar('RREPLACES_${KERNEL_PACKAGE_NAME}-base', ' kernel-module-imx-gpu-viv') 45 e.data.appendVar('RREPLACES:${KERNEL_PACKAGE_NAME}-base', ' kernel-module-imx-gpu-viv')
46 e.data.appendVar('RCONFLICTS_${KERNEL_PACKAGE_NAME}-base', ' kernel-module-imx-gpu-viv') 46 e.data.appendVar('RCONFLICTS:${KERNEL_PACKAGE_NAME}-base', ' kernel-module-imx-gpu-viv')
47} 47}
48 48
49addhandler fsl_vivante_kernel_driver_handler 49addhandler fsl_vivante_kernel_driver_handler
50fsl_vivante_kernel_driver_handler[eventmask] = "bb.event.RecipePreFinalise" 50fsl_vivante_kernel_driver_handler[eventmask] = "bb.event.RecipePreFinalise"
51 51
52do_configure_append () { 52do_configure:append () {
53 if [ "${MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT}" = "1" ]; then 53 if [ "${MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT}" = "1" ]; then
54 config="${B}/.config" 54 config="${B}/.config"
55 55
diff --git a/classes/image_types_fsl.bbclass b/classes/image_types_fsl.bbclass
index c49c51b7..cdd16a66 100644
--- a/classes/image_types_fsl.bbclass
+++ b/classes/image_types_fsl.bbclass
@@ -11,7 +11,7 @@ MXSBOOT_NAND_ARGS ?= ""
11# U-Boot mxsboot generation for uSD 11# U-Boot mxsboot generation for uSD
12do_image_uboot_mxsboot_sdcard[depends] += "u-boot-mxsboot-native:do_populate_sysroot \ 12do_image_uboot_mxsboot_sdcard[depends] += "u-boot-mxsboot-native:do_populate_sysroot \
13 u-boot:do_deploy" 13 u-boot:do_deploy"
14IMAGE_CMD_uboot-mxsboot-sdcard() { 14IMAGE_CMD:uboot-mxsboot-sdcard() {
15 mxsboot sd ${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.${UBOOT_SUFFIX} \ 15 mxsboot sd ${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.${UBOOT_SUFFIX} \
16 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.uboot-mxsboot-sdcard 16 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.uboot-mxsboot-sdcard
17 ln -sf ${IMAGE_NAME}.rootfs.uboot-mxsboot-sdcard \ 17 ln -sf ${IMAGE_NAME}.rootfs.uboot-mxsboot-sdcard \
@@ -21,7 +21,7 @@ IMAGE_CMD_uboot-mxsboot-sdcard() {
21# U-Boot mxsboot generation for NAND 21# U-Boot mxsboot generation for NAND
22do_image_uboot_mxsboot_nand[depends] += "u-boot-mxsboot-native:do_populate_sysroot \ 22do_image_uboot_mxsboot_nand[depends] += "u-boot-mxsboot-native:do_populate_sysroot \
23 u-boot:do_deploy" 23 u-boot:do_deploy"
24IMAGE_CMD_uboot-mxsboot-nand() { 24IMAGE_CMD:uboot-mxsboot-nand() {
25 mxsboot ${MXSBOOT_NAND_ARGS} nand \ 25 mxsboot ${MXSBOOT_NAND_ARGS} nand \
26 ${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.${UBOOT_SUFFIX} \ 26 ${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.${UBOOT_SUFFIX} \
27 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.uboot-mxsboot-nand 27 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.uboot-mxsboot-nand
@@ -37,7 +37,7 @@ do_image_wic[depends] += " \
37" 37"
38 38
39# We need to apply a fixup inside of the partition table 39# We need to apply a fixup inside of the partition table
40IMAGE_CMD_wic_append_mxs() { 40IMAGE_CMD:wic:append:mxs() {
41 # Change partition type for mxs processor family 41 # Change partition type for mxs processor family
42 bbnote "Setting partition type to 0x53 as required for mxs' SoC family." 42 bbnote "Setting partition type to 0x53 as required for mxs' SoC family."
43 echo -n S | dd of=$out${IMAGE_NAME_SUFFIX}.wic bs=1 count=1 seek=450 conv=notrunc 43 echo -n S | dd of=$out${IMAGE_NAME_SUFFIX}.wic bs=1 count=1 seek=450 conv=notrunc
diff --git a/classes/imx-boot-container.bbclass b/classes/imx-boot-container.bbclass
index 3f788900..3ffa7cbd 100644
--- a/classes/imx-boot-container.bbclass
+++ b/classes/imx-boot-container.bbclass
@@ -23,7 +23,7 @@
23 23
24# Define ATF binary file to be deployed to the U-Boot build folder 24# Define ATF binary file to be deployed to the U-Boot build folder
25ATF_MACHINE_NAME = "bl31-${ATF_PLATFORM}.bin" 25ATF_MACHINE_NAME = "bl31-${ATF_PLATFORM}.bin"
26ATF_MACHINE_NAME_append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '-optee', '', d)}" 26ATF_MACHINE_NAME:append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '-optee', '', d)}"
27 27
28# This package aggregates output deployed by other packages, so set the 28# This package aggregates output deployed by other packages, so set the
29# appropriate dependencies for populate binaries task 29# appropriate dependencies for populate binaries task
@@ -76,7 +76,7 @@ addtask do_resolve_and_populate_binaries before do_compile after do_configure
76# This effectively would allow the usage of the same WKS file for those 76# This effectively would allow the usage of the same WKS file for those
77# derivatives that are using the boot container from U-Boot and those 77# derivatives that are using the boot container from U-Boot and those
78# that are not yet have support for it enabled. 78# that are not yet have support for it enabled.
79do_deploy_append() { 79do_deploy:append() {
80 # Deploy the resulted flash.bin for WIC to pick it up 80 # Deploy the resulted flash.bin for WIC to pick it up
81 if [ -n "${UBOOT_CONFIG}" ]; then 81 if [ -n "${UBOOT_CONFIG}" ]; then
82 for config in ${UBOOT_MACHINE}; do 82 for config in ${UBOOT_MACHINE}; do
diff --git a/classes/kernel-imximage.bbclass b/classes/kernel-imximage.bbclass
index 234cc00d..ccf7ec53 100644
--- a/classes/kernel-imximage.bbclass
+++ b/classes/kernel-imximage.bbclass
@@ -17,7 +17,7 @@
17# 17#
18# Copyright 2017 (C) O.S. Systems Software LTDA. 18# Copyright 2017 (C) O.S. Systems Software LTDA.
19 19
20DEPENDS_append = ' u-boot-mkimage-native' 20DEPENDS:append = ' u-boot-mkimage-native'
21 21
22IMXIMAGE_ENTRYPOINT ?= "${UBOOT_ENTRYPOINT}" 22IMXIMAGE_ENTRYPOINT ?= "${UBOOT_ENTRYPOINT}"
23 23
@@ -55,6 +55,6 @@ gen_imximage() {
55 done 55 done
56} 56}
57 57
58do_deploy_append() { 58do_deploy:append() {
59 gen_imximage 59 gen_imximage
60} 60}
diff --git a/classes/kernel-itbimage.bbclass b/classes/kernel-itbimage.bbclass
index 84262879..51a87319 100644
--- a/classes/kernel-itbimage.bbclass
+++ b/classes/kernel-itbimage.bbclass
@@ -459,7 +459,7 @@ addtask assemble_fitimage_initramfs before do_deploy after do_install
459 459
460 460
461kernel_do_deploy[vardepsexclude] = "DATETIME" 461kernel_do_deploy[vardepsexclude] = "DATETIME"
462kernel_do_deploy_append() { 462kernel_do_deploy:append() {
463 # Update deploy directory 463 # Update deploy directory
464 if echo ${KERNEL_IMAGETYPES} | grep -wq "itbImage"; then 464 if echo ${KERNEL_IMAGETYPES} | grep -wq "itbImage"; then
465 cd ${B} 465 cd ${B}
diff --git a/classes/machine-overrides-extender.bbclass b/classes/machine-overrides-extender.bbclass
index 4b7d66d5..876ddd10 100644
--- a/classes/machine-overrides-extender.bbclass
+++ b/classes/machine-overrides-extender.bbclass
@@ -5,12 +5,12 @@
5# 5#
6# To indicate that a SoC contains following set of overrides, you can use: 6# To indicate that a SoC contains following set of overrides, you can use:
7# 7#
8# MACHINEOVERRIDES_EXTENDER_soc = "group1:group2" 8# MACHINEOVERRIDES_EXTENDER:soc = "group1:group2"
9# 9#
10# However to indicate that an override replaces a set of other 10# However to indicate that an override replaces a set of other
11# overrides, you can use: 11# overrides, you can use:
12# 12#
13# MACHINEOVERRIDES_EXTENDER_FILTER_OUT_override = "group1 group2" 13# MACHINEOVERRIDES_EXTENDER_FILTER_OUT:override = "group1 group2"
14# 14#
15# Copyright 2016-2018 (C) O.S. Systems Software LTDA. 15# Copyright 2016-2018 (C) O.S. Systems Software LTDA.
16 16
@@ -20,13 +20,13 @@ def machine_overrides_extender(d):
20 # Gather the list of overrides to filter out 20 # Gather the list of overrides to filter out
21 machine_overrides_filter_out = [] 21 machine_overrides_filter_out = []
22 for override in machine_overrides: 22 for override in machine_overrides:
23 machine_overrides_filter_out += (d.getVar('MACHINEOVERRIDES_EXTENDER_FILTER_OUT_%s' % override) or '').split() 23 machine_overrides_filter_out += (d.getVar('MACHINEOVERRIDES_EXTENDER_FILTER_OUT:%s' % override) or '').split()
24 24
25 # Drop any overrides of filter_out prior extending 25 # Drop any overrides of filter_out prior extending
26 machine_overrides = [o for o in machine_overrides if o not in machine_overrides_filter_out] 26 machine_overrides = [o for o in machine_overrides if o not in machine_overrides_filter_out]
27 27
28 for override in machine_overrides: 28 for override in machine_overrides:
29 extender = d.getVar('MACHINEOVERRIDES_EXTENDER_%s' % override) 29 extender = d.getVar('MACHINEOVERRIDES_EXTENDER:%s' % override)
30 30
31 if extender: 31 if extender:
32 extender = extender.split(':') 32 extender = extender.split(':')
diff --git a/classes/mfgtool-initramfs-image.bbclass b/classes/mfgtool-initramfs-image.bbclass
index 65028b8f..1d4c5513 100644
--- a/classes/mfgtool-initramfs-image.bbclass
+++ b/classes/mfgtool-initramfs-image.bbclass
@@ -13,7 +13,7 @@ FEATURE_PACKAGES_extfs = "packagegroup-fsl-mfgtool-extfs"
13FEATURE_PACKAGES_f2fs = "packagegroup-fsl-mfgtool-f2fs" 13FEATURE_PACKAGES_f2fs = "packagegroup-fsl-mfgtool-f2fs"
14 14
15IMAGE_FSTYPES = "cpio.gz.u-boot" 15IMAGE_FSTYPES = "cpio.gz.u-boot"
16IMAGE_FSTYPES_mxs = "cpio.gz.u-boot" 16IMAGE_FSTYPES:mxs = "cpio.gz.u-boot"
17IMAGE_ROOTFS_SIZE ?= "8192" 17IMAGE_ROOTFS_SIZE ?= "8192"
18 18
19# Filesystems enabled by default 19# Filesystems enabled by default
diff --git a/classes/qoriq_build_64bit_kernel.bbclass b/classes/qoriq_build_64bit_kernel.bbclass
index 93b4d412..5186c2a4 100644
--- a/classes/qoriq_build_64bit_kernel.bbclass
+++ b/classes/qoriq_build_64bit_kernel.bbclass
@@ -1,13 +1,13 @@
1inherit features_check 1inherit features_check
2REQUIRED_DISTRO_FEATURES_e6500 += "multiarch" 2REQUIRED_DISTRO_FEATURES:e6500 += "multiarch"
3 3
4python () { 4python () {
5 promote_kernel = d.getVar('BUILD_64BIT_KERNEL', False) 5 promote_kernel = d.getVar('BUILD_64BIT_KERNEL', False)
6 if promote_kernel == "1": 6 if promote_kernel == "1":
7 sys_multilib = 'powerpc64' + d.getVar('TARGET_VENDOR', False) + 'mllib64-' + d.getVar('HOST_OS', False) 7 sys_multilib = 'powerpc64' + d.getVar('TARGET_VENDOR', False) + 'mllib64-' + d.getVar('HOST_OS', False)
8 tc_options = d.getVar('TOOLCHAIN_OPTIONS', False) + '/../lib64-' + d.getVar("MACHINE", False) 8 tc_options = d.getVar('TOOLCHAIN_OPTIONS', False) + '/../lib64-' + d.getVar("MACHINE", False)
9 d.setVar('DEPENDS_append', ' lib64-gcc-cross-powerpc64 lib64-libgcc') 9 d.setVar('DEPENDS:append', ' lib64-gcc-cross-powerpc64 lib64-libgcc')
10 d.setVar('PATH_append', ':' + d.getVar('STAGING_BINDIR_NATIVE', False) + '/' + sys_multilib) 10 d.setVar('PATH:append', ':' + d.getVar('STAGING_BINDIR_NATIVE', False) + '/' + sys_multilib)
11 d.setVar('KERNEL_CC', d.getVar('CCACHE', False) + sys_multilib + '-' + 'gcc' + d.getVar('HOST_CC_KERNEL_ARCH', False) + tc_options) 11 d.setVar('KERNEL_CC', d.getVar('CCACHE', False) + sys_multilib + '-' + 'gcc' + d.getVar('HOST_CC_KERNEL_ARCH', False) + tc_options)
12 d.setVar('KERNEL_LD', d.getVar('CCACHE', False) + sys_multilib + '-' + 'ld.bfd' + d.getVar('HOST_LD_KERNEL_ARCH', False) + tc_options) 12 d.setVar('KERNEL_LD', d.getVar('CCACHE', False) + sys_multilib + '-' + 'ld.bfd' + d.getVar('HOST_LD_KERNEL_ARCH', False) + tc_options)
13 d.setVar('KERNEL_AR', d.getVar('CCACHE', False) + sys_multilib + '-' + 'ar' + d.getVar('HOST_AR_KERNEL_ARCH', False)) 13 d.setVar('KERNEL_AR', d.getVar('CCACHE', False) + sys_multilib + '-' + 'ar' + d.getVar('HOST_AR_KERNEL_ARCH', False))
diff --git a/classes/use-imx-headers.bbclass b/classes/use-imx-headers.bbclass
index fcec68c8..c6c7f043 100644
--- a/classes/use-imx-headers.bbclass
+++ b/classes/use-imx-headers.bbclass
@@ -13,14 +13,14 @@
13# 13#
14# Copyright 2018 (C) O.S. Systems Software LTDA. 14# Copyright 2018 (C) O.S. Systems Software LTDA.
15 15
16DEPENDS_append_imx = " linux-imx-headers" 16DEPENDS:append:imx = " linux-imx-headers"
17 17
18# Set runtime dependency of -dev for package inheriting this class to 18# Set runtime dependency of -dev for package inheriting this class to
19# linux-imx-headers-dev package. This is required in order to propagate 19# linux-imx-headers-dev package. This is required in order to propagate
20# headers into the SDK 20# headers into the SDK
21RDEPENDS_${PN}-dev += "linux-imx-headers-dev" 21RDEPENDS:${PN}-dev += "linux-imx-headers-dev"
22 22
23PACKAGE_ARCH_imx ?= "${MACHINE_SOCARCH}" 23PACKAGE_ARCH:imx ?= "${MACHINE_SOCARCH}"
24 24
25STAGING_INCDIR_IMX = "${STAGING_INCDIR}/imx" 25STAGING_INCDIR_IMX = "${STAGING_INCDIR}/imx"
26 26
@@ -34,4 +34,4 @@ STAGING_INCDIR_IMX = "${STAGING_INCDIR}/imx"
34# Typical example here would be imx-vpu-hantro recipe, which requires NXP 34# Typical example here would be imx-vpu-hantro recipe, which requires NXP
35# BSP and is not compatible with mainline. 35# BSP and is not compatible with mainline.
36COMPATIBLE_HOST = '(null)' 36COMPATIBLE_HOST = '(null)'
37COMPATIBLE_HOST_use-nxp-bsp = '.*' 37COMPATIBLE_HOST:use-nxp-bsp = '.*'
diff --git a/classes/use-imx-security-controller-firmware.bbclass b/classes/use-imx-security-controller-firmware.bbclass
index 7c79fc62..9650059b 100644
--- a/classes/use-imx-security-controller-firmware.bbclass
+++ b/classes/use-imx-security-controller-firmware.bbclass
@@ -18,11 +18,11 @@
18 18
19SECO_FIRMWARE_NAME ?= "" 19SECO_FIRMWARE_NAME ?= ""
20 20
21SECO_FIRMWARE_NAME_mx8qm = "mx8qmb0-ahab-container.img" 21SECO_FIRMWARE_NAME:mx8qm = "mx8qmb0-ahab-container.img"
22SECO_FIRMWARE_NAME_mx8qxp = \ 22SECO_FIRMWARE_NAME:mx8qxp = \
23 "${@bb.utils.contains('MACHINE_FEATURES', 'soc-revb0', 'mx8qxb0-ahab-container.img', \ 23 "${@bb.utils.contains('MACHINE_FEATURES', 'soc-revb0', 'mx8qxb0-ahab-container.img', \
24 'mx8qxc0-ahab-container.img', d)}" 24 'mx8qxc0-ahab-container.img', d)}"
25SECO_FIRMWARE_NAME_mx8dxl = "mx8dxla1-ahab-container.img" 25SECO_FIRMWARE_NAME:mx8dxl = "mx8dxla1-ahab-container.img"
26 26
27python () { 27python () {
28 if "mx8m" in d.getVar('MACHINEOVERRIDES').split(":"): 28 if "mx8m" in d.getVar('MACHINEOVERRIDES').split(":"):
diff --git a/conf/layer.conf b/conf/layer.conf
index e07b65ab..77e704ed 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -8,7 +8,7 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
8BBFILE_COLLECTIONS += "freescale-layer" 8BBFILE_COLLECTIONS += "freescale-layer"
9BBFILE_PATTERN_freescale-layer := "^${LAYERDIR}/" 9BBFILE_PATTERN_freescale-layer := "^${LAYERDIR}/"
10BBFILE_PRIORITY_freescale-layer = "5" 10BBFILE_PRIORITY_freescale-layer = "5"
11LAYERSERIES_COMPAT_freescale-layer = "gatesgarth hardknott" 11LAYERSERIES_COMPAT_freescale-layer = "honister"
12 12
13# Add the Freescale-specific licenses into the metadata 13# Add the Freescale-specific licenses into the metadata
14LICENSE_PATH += "${LAYERDIR}/custom-licenses" 14LICENSE_PATH += "${LAYERDIR}/custom-licenses"
diff --git a/conf/machine/imx23evk.conf b/conf/machine/imx23evk.conf
index 8abc5a95..5e8be1e9 100644
--- a/conf/machine/imx23evk.conf
+++ b/conf/machine/imx23evk.conf
@@ -7,7 +7,7 @@
7MACHINEOVERRIDES =. "mxs:mx23:" 7MACHINEOVERRIDES =. "mxs:mx23:"
8 8
9include conf/machine/include/imx-base.inc 9include conf/machine/include/imx-base.inc
10include conf/machine/include/tune-arm926ejs.inc 10include conf/machine/include/arm/armv5/tune-arm926ejs.inc
11 11
12# This machine is not supported by u-boot-imx as it is not tested by NXP on this 12# This machine is not supported by u-boot-imx as it is not tested by NXP on this
13# board. So we force it to use u-boot-fslc which is based on mainline here. 13# board. So we force it to use u-boot-fslc which is based on mainline here.
diff --git a/conf/machine/imx25pdk.conf b/conf/machine/imx25pdk.conf
index 5721e845..2abadb25 100644
--- a/conf/machine/imx25pdk.conf
+++ b/conf/machine/imx25pdk.conf
@@ -7,7 +7,7 @@
7MACHINEOVERRIDES =. "mx25:" 7MACHINEOVERRIDES =. "mx25:"
8 8
9include conf/machine/include/imx-base.inc 9include conf/machine/include/imx-base.inc
10include conf/machine/include/tune-arm926ejs.inc 10include conf/machine/include/arm/armv5/tune-arm926ejs.inc
11 11
12# This machine is not supported by u-boot-imx as it is not tested by NXP on this 12# This machine is not supported by u-boot-imx as it is not tested by NXP on this
13# board. So we force it to use u-boot-fslc which is based on mainline here. 13# board. So we force it to use u-boot-fslc which is based on mainline here.
diff --git a/conf/machine/imx28evk.conf b/conf/machine/imx28evk.conf
index 4f69dae4..9763a396 100644
--- a/conf/machine/imx28evk.conf
+++ b/conf/machine/imx28evk.conf
@@ -7,7 +7,7 @@
7MACHINEOVERRIDES =. "mxs:mx28:" 7MACHINEOVERRIDES =. "mxs:mx28:"
8 8
9include conf/machine/include/imx-base.inc 9include conf/machine/include/imx-base.inc
10include conf/machine/include/tune-arm926ejs.inc 10include conf/machine/include/arm/armv5/tune-arm926ejs.inc
11 11
12# This machine is not supported by u-boot-imx as it is not tested by NXP on this 12# This machine is not supported by u-boot-imx as it is not tested by NXP on this
13# board. So we force it to use u-boot-fslc which is based on mainline here. 13# board. So we force it to use u-boot-fslc which is based on mainline here.
diff --git a/conf/machine/imx51evk.conf b/conf/machine/imx51evk.conf
index 80d7b386..7c66435d 100644
--- a/conf/machine/imx51evk.conf
+++ b/conf/machine/imx51evk.conf
@@ -7,7 +7,7 @@
7MACHINEOVERRIDES =. "mx5:mx51:" 7MACHINEOVERRIDES =. "mx5:mx51:"
8 8
9include conf/machine/include/imx-base.inc 9include conf/machine/include/imx-base.inc
10include conf/machine/include/tune-cortexa8.inc 10include conf/machine/include/arm/armv7a/tune-cortexa8.inc
11 11
12KERNEL_DEVICETREE = "imx51-babbage.dtb" 12KERNEL_DEVICETREE = "imx51-babbage.dtb"
13 13
diff --git a/conf/machine/imx53ard.conf b/conf/machine/imx53ard.conf
index af5aeb3b..b2c65b84 100644
--- a/conf/machine/imx53ard.conf
+++ b/conf/machine/imx53ard.conf
@@ -7,7 +7,7 @@
7MACHINEOVERRIDES =. "mx5:mx53:" 7MACHINEOVERRIDES =. "mx5:mx53:"
8 8
9include conf/machine/include/imx-base.inc 9include conf/machine/include/imx-base.inc
10include conf/machine/include/tune-cortexa8.inc 10include conf/machine/include/arm/armv7a/tune-cortexa8.inc
11 11
12# Disable perf features as 2.6.35.3 fails to build otherwise 12# Disable perf features as 2.6.35.3 fails to build otherwise
13PERF_FEATURES_ENABLE = "" 13PERF_FEATURES_ENABLE = ""
diff --git a/conf/machine/imx53qsb.conf b/conf/machine/imx53qsb.conf
index 06d4a756..0d6a7b22 100644
--- a/conf/machine/imx53qsb.conf
+++ b/conf/machine/imx53qsb.conf
@@ -7,7 +7,7 @@
7MACHINEOVERRIDES =. "mx5:mx53:" 7MACHINEOVERRIDES =. "mx5:mx53:"
8 8
9include conf/machine/include/imx-base.inc 9include conf/machine/include/imx-base.inc
10include conf/machine/include/tune-cortexa8.inc 10include conf/machine/include/arm/armv7a/tune-cortexa8.inc
11 11
12KERNEL_DEVICETREE = "imx53-qsb.dtb imx53-qsrb.dtb" 12KERNEL_DEVICETREE = "imx53-qsb.dtb imx53-qsrb.dtb"
13 13
diff --git a/conf/machine/imx6qdlsabreauto.conf b/conf/machine/imx6qdlsabreauto.conf
index b7aec8c2..171b9f00 100644
--- a/conf/machine/imx6qdlsabreauto.conf
+++ b/conf/machine/imx6qdlsabreauto.conf
@@ -14,7 +14,7 @@
14MACHINEOVERRIDES =. "mx6:mx6q:mx6dl:" 14MACHINEOVERRIDES =. "mx6:mx6q:mx6dl:"
15 15
16require conf/machine/include/imx-base.inc 16require conf/machine/include/imx-base.inc
17require conf/machine/include/tune-cortexa9.inc 17require conf/machine/include/arm/armv7a/tune-cortexa9.inc
18 18
19KERNEL_DEVICETREE = " \ 19KERNEL_DEVICETREE = " \
20 imx6qp-sabreauto.dtb imx6qp-sabreauto-ecspi.dtb imx6qp-sabreauto-flexcan1.dtb \ 20 imx6qp-sabreauto.dtb imx6qp-sabreauto-ecspi.dtb imx6qp-sabreauto-flexcan1.dtb \
@@ -26,34 +26,46 @@ KERNEL_DEVICETREE = " \
26 imx6dl-sabreauto.dtb imx6dl-sabreauto-gpmi-weim.dtb imx6dl-sabreauto-ecspi.dtb \ 26 imx6dl-sabreauto.dtb imx6dl-sabreauto-gpmi-weim.dtb imx6dl-sabreauto-ecspi.dtb \
27 imx6dl-sabreauto-flexcan1.dtb imx6dl-sabreauto-enetirq.dtb \ 27 imx6dl-sabreauto-flexcan1.dtb imx6dl-sabreauto-enetirq.dtb \
28" 28"
29KERNEL_DEVICETREE_use-mainline-bsp = " \ 29KERNEL_DEVICETREE:use-mainline-bsp = " \
30 imx6qp-sabreauto.dtb \ 30 imx6qp-sabreauto.dtb \
31 imx6q-sabreauto.dtb \ 31 imx6q-sabreauto.dtb \
32 imx6dl-sabreauto.dtb \ 32 imx6dl-sabreauto.dtb \
33" 33"
34 34
35### u-boot-fslc settings ### 35### u-boot-fslc settings ###
36 36SPL_BINARY:pn-u-boot-fslc = "SPL"
37SPL_BINARY_pn-u-boot-fslc = "SPL" 37UBOOT_CONFIG:pn-u-boot-fslc ??= "sd-fslc"
38UBOOT_MACHINE_pn-u-boot-fslc ?= "mx6sabreauto_defconfig" 38UBOOT_SUFFIX:pn-u-boot-fslc = "img"
39UBOOT_SUFFIX_pn-u-boot-fslc = "img"
40 39
41### u-boot-imx settings ### 40### u-boot-imx settings ###
41SPL_BINARY:pn-u-boot-imx = ""
42UBOOT_CONFIG:pn-u-boot-imx ??= " \
43 sd-imx \
44 ${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'sd-optee-imx', '', d)} \
45"
46UBOOT_MAKE_TARGET:pn-u-boot-imx = "u-boot.imx"
47UBOOT_SUFFIX:pn-u-boot-imx = "imx"
42 48
43# The u-boot-imx does not provide unified functionality for DL/Q/QP SoC 49# The u-boot-imx does not provide unified functionality for DL/Q/QP SoC
44# variants. Change the defconfig to the targeted SoC variant. 50# variants. Change the defconfig to the targeted SoC variant.
45SPL_BINARY_pn-u-boot-imx = "" 51UBOOT_CONFIG[sd-fslc] = "mx6sabreauto_defconfig,sdcard"
46UBOOT_MACHINE_pn-u-boot-imx = "mx6qsabreauto_defconfig" 52UBOOT_CONFIG[sd-imx] = "mx6qpsabreauto_defconfig,sdcard"
47UBOOT_MAKE_TARGET_pn-u-boot-imx = "u-boot.imx" 53UBOOT_CONFIG[sd-optee-imx] = "mx6qpsabreauto_optee_defconfig,sdcard"
48UBOOT_SUFFIX_pn-u-boot-imx = "imx" 54UBOOT_CONFIG[eimnor-imx] = "mx6qpsabreauto_eimnor_defconfig"
55UBOOT_CONFIG[nand-imx] = "mx6qpsabreauto_nand_defconfig,ubifs"
56UBOOT_CONFIG[spinor-imx] = "mx6qpsabreauto_spinor_defconfig"
57UBOOT_CONFIG[sata-imx] = "mx6qpsabreauto_sata_defconfig"
58UBOOT_CONFIG[mfgtool-imx] = "mx6qpsabreauto_defconfig"
49 59
50WKS_FILE = " \ 60WKS_FILE = " \
51 ${@bb.utils.contains('IMX_DEFAULT_BOOTLOADER', \ 61 ${@bb.utils.contains('IMX_DEFAULT_BOOTLOADER', \
52 'u-boot-fslc', 'imx-uboot-spl-bootpart.wks.in', \ 62 'u-boot-fslc', 'imx-uboot-spl-bootpart.wks.in', \
53 'imx-uboot-bootpart.wks.in', d)}" 63 'imx-uboot-bootpart.wks.in', d)}"
54 64
65OPTEE_BIN_EXT = "6qpauto"
66
55SERIAL_CONSOLES = "115200;ttymxc3" 67SERIAL_CONSOLES = "115200;ttymxc3"
56 68
57MACHINE_FIRMWARE_append_mx6 = " linux-firmware-ath6k" 69MACHINE_FIRMWARE:append:mx6 = " linux-firmware-ath6k"
58 70
59MACHINE_FEATURES += " pci wifi bluetooth" 71MACHINE_FEATURES += " pci wifi bluetooth"
diff --git a/conf/machine/imx6qdlsabresd.conf b/conf/machine/imx6qdlsabresd.conf
index b3d09e93..a5133625 100644
--- a/conf/machine/imx6qdlsabresd.conf
+++ b/conf/machine/imx6qdlsabresd.conf
@@ -14,7 +14,7 @@
14MACHINEOVERRIDES =. "mx6:mx6q:mx6dl:" 14MACHINEOVERRIDES =. "mx6:mx6q:mx6dl:"
15 15
16require conf/machine/include/imx-base.inc 16require conf/machine/include/imx-base.inc
17require conf/machine/include/tune-cortexa9.inc 17require conf/machine/include/arm/armv7a/tune-cortexa9.inc
18 18
19KERNEL_DEVICETREE = " \ 19KERNEL_DEVICETREE = " \
20 imx6qp-sabresd-btwifi.dtb \ 20 imx6qp-sabresd-btwifi.dtb \
@@ -35,34 +35,43 @@ KERNEL_DEVICETREE = " \
35 imx6dl-sabresd-hdcp.dtb \ 35 imx6dl-sabresd-hdcp.dtb \
36 imx6dl-sabresd-ldo.dtb \ 36 imx6dl-sabresd-ldo.dtb \
37" 37"
38KERNEL_DEVICETREE_use-mainline-bsp = " \ 38KERNEL_DEVICETREE:use-mainline-bsp = " \
39 imx6qp-sabresd.dtb \ 39 imx6qp-sabresd.dtb \
40 imx6q-sabresd.dtb \ 40 imx6q-sabresd.dtb \
41 imx6dl-sabresd.dtb \ 41 imx6dl-sabresd.dtb \
42" 42"
43 43
44### u-boot-fslc settings ### 44### u-boot-fslc settings ###
45 45SPL_BINARY:pn-u-boot-fslc = "SPL"
46SPL_BINARY_pn-u-boot-fslc = "SPL" 46UBOOT_CONFIG:pn-u-boot-fslc ??= "sd-fslc"
47UBOOT_MACHINE_pn-u-boot-fslc ?= "mx6sabresd_defconfig" 47UBOOT_SUFFIX:pn-u-boot-fslc = "img"
48UBOOT_SUFFIX_pn-u-boot-fslc = "img"
49 48
50### u-boot-imx settings ### 49### u-boot-imx settings ###
50SPL_BINARY:pn-u-boot-imx = ""
51UBOOT_CONFIG:pn-u-boot-imx ??= " \
52 sd-imx \
53 ${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'sd-optee-imx', '', d)} \
54"
55UBOOT_MAKE_TARGET:pn-u-boot-imx = "u-boot.imx"
56UBOOT_SUFFIX:pn-u-boot-imx = "imx"
51 57
52# The u-boot-imx does not provide unified functionality for DL/Q/QP SoC 58# The u-boot-imx does not provide unified functionality for DL/Q/QP SoC
53# variants. Change the defconfig to the targeted SoC variant. 59# variants. Change the defconfig to the targeted SoC variant.
54SPL_BINARY_pn-u-boot-imx = "" 60UBOOT_CONFIG[sd-fslc] = "mx6sabresd_defconfig,sdcard"
55UBOOT_MACHINE_pn-u-boot-imx ?= "mx6qsabresd_defconfig" 61UBOOT_CONFIG[sd-imx] = "mx6qsabresd_defconfig,sdcard"
56UBOOT_MAKE_TARGET_pn-u-boot-imx = "u-boot.imx" 62UBOOT_CONFIG[sd-optee-imx] = "mx6qsabresd_optee_defconfig,sdcard"
57UBOOT_SUFFIX_pn-u-boot-imx = "imx" 63UBOOT_CONFIG[sata-imx] = "mx6qsabresd_sata_defconfig"
64UBOOT_CONFIG[mfgtool-imx] = "mx6qsabresd_defconfig"
58 65
59WKS_FILE = " \ 66WKS_FILE = " \
60 ${@bb.utils.contains('IMX_DEFAULT_BOOTLOADER', \ 67 ${@bb.utils.contains('IMX_DEFAULT_BOOTLOADER', \
61 'u-boot-fslc', 'imx-uboot-spl-bootpart.wks.in', \ 68 'u-boot-fslc', 'imx-uboot-spl-bootpart.wks.in', \
62 'imx-uboot-bootpart.wks.in', d)}" 69 'imx-uboot-bootpart.wks.in', d)}"
63 70
71OPTEE_BIN_EXT = "6qsdb"
72
64SERIAL_CONSOLES = "115200;ttymxc0" 73SERIAL_CONSOLES = "115200;ttymxc0"
65 74
66MACHINE_FIRMWARE_append_mx6 = " linux-firmware-ath6k" 75MACHINE_FIRMWARE:append:mx6 = " linux-firmware-ath6k"
67 76
68MACHINE_FEATURES += " pci wifi bluetooth" 77MACHINE_FEATURES += " pci wifi bluetooth"
diff --git a/conf/machine/imx6slevk.conf b/conf/machine/imx6slevk.conf
index 1e8c403b..b25182ba 100644
--- a/conf/machine/imx6slevk.conf
+++ b/conf/machine/imx6slevk.conf
@@ -7,10 +7,10 @@
7MACHINEOVERRIDES =. "mx6:mx6sl:" 7MACHINEOVERRIDES =. "mx6:mx6sl:"
8 8
9include conf/machine/include/imx-base.inc 9include conf/machine/include/imx-base.inc
10include conf/machine/include/tune-cortexa9.inc 10require conf/machine/include/arm/armv7a/tune-cortexa9.inc
11 11
12KERNEL_DEVICETREE = "imx6sl-evk.dtb" 12KERNEL_DEVICETREE = "imx6sl-evk.dtb"
13KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 13KERNEL_DEVICETREE:append:use-nxp-bsp = " \
14 imx6sl-evk-btwifi.dtb \ 14 imx6sl-evk-btwifi.dtb \
15 imx6sl-evk-csi.dtb \ 15 imx6sl-evk-csi.dtb \
16 imx6sl-evk-ldo.dtb \ 16 imx6sl-evk-ldo.dtb \
diff --git a/conf/machine/imx6sllevk.conf b/conf/machine/imx6sllevk.conf
index 30b537f1..ea525845 100644
--- a/conf/machine/imx6sllevk.conf
+++ b/conf/machine/imx6sllevk.conf
@@ -7,7 +7,7 @@
7MACHINEOVERRIDES =. "mx6:mx6sll:" 7MACHINEOVERRIDES =. "mx6:mx6sll:"
8 8
9include conf/machine/include/imx-base.inc 9include conf/machine/include/imx-base.inc
10include conf/machine/include/tune-cortexa9.inc 10require conf/machine/include/arm/armv7a/tune-cortexa9.inc
11 11
12KERNEL_DEVICETREE = "imx6sll-evk.dtb" 12KERNEL_DEVICETREE = "imx6sll-evk.dtb"
13 13
@@ -23,7 +23,7 @@ UBOOT_CONFIG[sd-optee] = "mx6sllevk_optee_config,sdcard"
23UBOOT_CONFIG[epdc] = "mx6sllevk_epdc_config" 23UBOOT_CONFIG[epdc] = "mx6sllevk_epdc_config"
24UBOOT_CONFIG[mfgtool] = "mx6sllevk_config" 24UBOOT_CONFIG[mfgtool] = "mx6sllevk_config"
25 25
26OPTEE_BIN_EXT_imx6sllevk = "6sllevk" 26OPTEE_BIN_EXT:imx6sllevk = "6sllevk"
27 27
28SERIAL_CONSOLES = "115200;ttymxc0" 28SERIAL_CONSOLES = "115200;ttymxc0"
29 29
diff --git a/conf/machine/imx6sxsabreauto.conf b/conf/machine/imx6sxsabreauto.conf
index f7031ccb..9e83c458 100644
--- a/conf/machine/imx6sxsabreauto.conf
+++ b/conf/machine/imx6sxsabreauto.conf
@@ -7,10 +7,10 @@
7MACHINEOVERRIDES =. "mx6:mx6sx:" 7MACHINEOVERRIDES =. "mx6:mx6sx:"
8 8
9require conf/machine/include/imx-base.inc 9require conf/machine/include/imx-base.inc
10require conf/machine/include/tune-cortexa9.inc 10require conf/machine/include/arm/armv7a/tune-cortexa9.inc
11 11
12KERNEL_DEVICETREE = "imx6sx-sabreauto.dtb" 12KERNEL_DEVICETREE = "imx6sx-sabreauto.dtb"
13KERNEL_DEVICETREE_use-mainline-bsp = "imx6sx-sabreauto.dtb" 13KERNEL_DEVICETREE:use-mainline-bsp = "imx6sx-sabreauto.dtb"
14 14
15UBOOT_MAKE_TARGET = "u-boot.imx" 15UBOOT_MAKE_TARGET = "u-boot.imx"
16UBOOT_SUFFIX = "imx" 16UBOOT_SUFFIX = "imx"
@@ -29,6 +29,6 @@ OPTEE_BIN_EXT = "6sxauto"
29 29
30SERIAL_CONSOLES = "115200;ttymxc3" 30SERIAL_CONSOLES = "115200;ttymxc3"
31 31
32MACHINE_FIRMWARE_append_mx6 = " linux-firmware-ath6k" 32MACHINE_FIRMWARE:append:mx6 = " linux-firmware-ath6k"
33 33
34MACHINE_FEATURES += " pci wifi bluetooth" 34MACHINE_FEATURES += " pci wifi bluetooth"
diff --git a/conf/machine/imx6sxsabresd.conf b/conf/machine/imx6sxsabresd.conf
index ff7d6ae6..d0a89596 100644
--- a/conf/machine/imx6sxsabresd.conf
+++ b/conf/machine/imx6sxsabresd.conf
@@ -7,14 +7,14 @@
7MACHINEOVERRIDES =. "mx6:mx6sx:" 7MACHINEOVERRIDES =. "mx6:mx6sx:"
8 8
9require conf/machine/include/imx-base.inc 9require conf/machine/include/imx-base.inc
10require conf/machine/include/tune-cortexa9.inc 10require conf/machine/include/arm/armv7a/tune-cortexa9.inc
11 11
12KERNEL_DEVICETREE = " \ 12KERNEL_DEVICETREE = " \
13 imx6sx-sdb.dtb \ 13 imx6sx-sdb.dtb \
14 imx6sx-sdb-reva.dtb \ 14 imx6sx-sdb-reva.dtb \
15 imx6sx-sdb-sai.dtb \ 15 imx6sx-sdb-sai.dtb \
16" 16"
17KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 17KERNEL_DEVICETREE:append:use-nxp-bsp = " \
18 imx6sx-sdb-btwifi.dtb \ 18 imx6sx-sdb-btwifi.dtb \
19 imx6sx-sdb-emmc.dtb \ 19 imx6sx-sdb-emmc.dtb \
20 imx6sx-sdb-lcdif1.dtb \ 20 imx6sx-sdb-lcdif1.dtb \
@@ -43,6 +43,6 @@ OPTEE_BIN_EXT = "6sxsdb"
43 43
44SERIAL_CONSOLES = "115200;ttymxc0" 44SERIAL_CONSOLES = "115200;ttymxc0"
45 45
46MACHINE_FIRMWARE_append_mx6 = " linux-firmware-ath6k" 46MACHINE_FIRMWARE:append:mx6 = " linux-firmware-ath6k"
47 47
48MACHINE_FEATURES += "pci wifi bluetooth bcm4339 bcm43455" 48MACHINE_FEATURES += "pci wifi bluetooth bcm4339 bcm43455"
diff --git a/conf/machine/imx6ulevk.conf b/conf/machine/imx6ulevk.conf
index f7c5d8ae..09d64b4e 100644
--- a/conf/machine/imx6ulevk.conf
+++ b/conf/machine/imx6ulevk.conf
@@ -7,7 +7,7 @@
7MACHINEOVERRIDES =. "mx6:mx6ul:" 7MACHINEOVERRIDES =. "mx6:mx6ul:"
8 8
9include conf/machine/include/imx-base.inc 9include conf/machine/include/imx-base.inc
10include conf/machine/include/tune-cortexa7.inc 10include conf/machine/include/arm/armv7a/tune-cortexa7.inc
11 11
12MACHINE_FEATURES += "wifi bluetooth bcm4339 bcm43455" 12MACHINE_FEATURES += "wifi bluetooth bcm4339 bcm43455"
13 13
@@ -21,19 +21,19 @@ KERNEL_DEVICETREE = " \
21 imx6ul-14x14-evk-emmc.dtb \ 21 imx6ul-14x14-evk-emmc.dtb \
22 imx6ul-14x14-evk-gpmi-weim.dtb \ 22 imx6ul-14x14-evk-gpmi-weim.dtb \
23" 23"
24KERNEL_DEVICETREE_use-mainline-bsp = "imx6ul-14x14-evk.dtb" 24KERNEL_DEVICETREE:use-mainline-bsp = "imx6ul-14x14-evk.dtb"
25 25
26### u-boot-fslc settings ### 26### u-boot-fslc settings ###
27 27
28SPL_BINARY_pn-u-boot-fslc = "SPL" 28SPL_BINARY:pn-u-boot-fslc = "SPL"
29UBOOT_SUFFIX_pn-u-boot-fslc = "img" 29UBOOT_SUFFIX:pn-u-boot-fslc = "img"
30 30
31### u-boot-imx settings ### 31### u-boot-imx settings ###
32 32
33# The u-boot-imx does not provide SPL support 33# The u-boot-imx does not provide SPL support
34SPL_BINARY_pn-u-boot-imx = "" 34SPL_BINARY:pn-u-boot-imx = ""
35UBOOT_MAKE_TARGET_pn-u-boot-imx = "u-boot.imx" 35UBOOT_MAKE_TARGET:pn-u-boot-imx = "u-boot.imx"
36UBOOT_SUFFIX_pn-u-boot-imx = "imx" 36UBOOT_SUFFIX:pn-u-boot-imx = "imx"
37 37
38WKS_FILE = " \ 38WKS_FILE = " \
39 ${@bb.utils.contains('IMX_DEFAULT_BOOTLOADER', \ 39 ${@bb.utils.contains('IMX_DEFAULT_BOOTLOADER', \
diff --git a/conf/machine/imx6ullevk.conf b/conf/machine/imx6ullevk.conf
index bd592a20..e71e34e4 100644
--- a/conf/machine/imx6ullevk.conf
+++ b/conf/machine/imx6ullevk.conf
@@ -7,7 +7,7 @@
7MACHINEOVERRIDES =. "mx6:mx6ull:" 7MACHINEOVERRIDES =. "mx6:mx6ull:"
8 8
9include conf/machine/include/imx-base.inc 9include conf/machine/include/imx-base.inc
10include conf/machine/include/tune-cortexa7.inc 10include conf/machine/include/arm/armv7a/tune-cortexa7.inc
11 11
12MACHINE_FEATURES += "wifi bluetooth bcm4339 bcm43455" 12MACHINE_FEATURES += "wifi bluetooth bcm4339 bcm43455"
13 13
@@ -15,7 +15,7 @@ KERNEL_DEVICETREE = " \
15 imx6ull-14x14-evk.dtb \ 15 imx6ull-14x14-evk.dtb \
16" 16"
17 17
18KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 18KERNEL_DEVICETREE:append:use-nxp-bsp = " \
19 imx6ull-14x14-evk-btwifi.dtb \ 19 imx6ull-14x14-evk-btwifi.dtb \
20 imx6ull-14x14-evk-btwifi-oob.dtb \ 20 imx6ull-14x14-evk-btwifi-oob.dtb \
21 imx6ull-14x14-evk-emmc.dtb \ 21 imx6ull-14x14-evk-emmc.dtb \
diff --git a/conf/machine/imx6ulz-14x14-evk.conf b/conf/machine/imx6ulz-14x14-evk.conf
index 7b794e7c..a47c08f8 100644
--- a/conf/machine/imx6ulz-14x14-evk.conf
+++ b/conf/machine/imx6ulz-14x14-evk.conf
@@ -7,14 +7,14 @@
7MACHINEOVERRIDES =. "mx6:mx6ul:mx6ull:mx6ulz:" 7MACHINEOVERRIDES =. "mx6:mx6ul:mx6ull:mx6ulz:"
8 8
9include conf/machine/include/imx-base.inc 9include conf/machine/include/imx-base.inc
10include conf/machine/include/tune-cortexa7.inc 10include conf/machine/include/arm/armv7a/tune-cortexa7.inc
11 11
12MACHINE_FEATURES += "wifi bluetooth bcm4339 bcm43455" 12MACHINE_FEATURES += "wifi bluetooth bcm4339 bcm43455"
13 13
14KERNEL_DEVICETREE = " \ 14KERNEL_DEVICETREE = " \
15 imx6ulz-14x14-evk.dtb \ 15 imx6ulz-14x14-evk.dtb \
16" 16"
17KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 17KERNEL_DEVICETREE:append:use-nxp-bsp = " \
18 imx6ulz-14x14-evk-btwifi.dtb \ 18 imx6ulz-14x14-evk-btwifi.dtb \
19 imx6ulz-14x14-evk-emmc.dtb \ 19 imx6ulz-14x14-evk-emmc.dtb \
20 imx6ulz-14x14-evk-gpmi-weim.dtb \ 20 imx6ulz-14x14-evk-gpmi-weim.dtb \
diff --git a/conf/machine/imx7dsabresd.conf b/conf/machine/imx7dsabresd.conf
index e848f294..7183d6f9 100644
--- a/conf/machine/imx7dsabresd.conf
+++ b/conf/machine/imx7dsabresd.conf
@@ -7,12 +7,12 @@
7MACHINEOVERRIDES =. "mx7:mx7d:" 7MACHINEOVERRIDES =. "mx7:mx7d:"
8 8
9require conf/machine/include/imx-base.inc 9require conf/machine/include/imx-base.inc
10require conf/machine/include/tune-cortexa7.inc 10include conf/machine/include/arm/armv7a/tune-cortexa7.inc
11 11
12MACHINE_FEATURES += "pci wifi bluetooth bcm4339 bcm43455" 12MACHINE_FEATURES += "pci wifi bluetooth bcm4339 bcm43455"
13 13
14KERNEL_DEVICETREE = "imx7d-sdb.dtb" 14KERNEL_DEVICETREE = "imx7d-sdb.dtb"
15KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 15KERNEL_DEVICETREE:append:use-nxp-bsp = " \
16 imx7d-sdb-epdc.dtb \ 16 imx7d-sdb-epdc.dtb \
17 imx7d-sdb-gpmi-weim.dtb \ 17 imx7d-sdb-gpmi-weim.dtb \
18 imx7d-sdb-m4.dtb \ 18 imx7d-sdb-m4.dtb \
diff --git a/conf/machine/imx7ulpevk.conf b/conf/machine/imx7ulpevk.conf
index a587f44b..e0961240 100644
--- a/conf/machine/imx7ulpevk.conf
+++ b/conf/machine/imx7ulpevk.conf
@@ -7,17 +7,17 @@
7MACHINEOVERRIDES =. "mx7:mx7ulp:" 7MACHINEOVERRIDES =. "mx7:mx7ulp:"
8 8
9require conf/machine/include/imx-base.inc 9require conf/machine/include/imx-base.inc
10require conf/machine/include/tune-cortexa7.inc 10include conf/machine/include/arm/armv7a/tune-cortexa7.inc
11 11
12MACHINE_FEATURES += "pci wifi bluetooth bcm43430" 12MACHINE_FEATURES += "pci wifi bluetooth bcm43430"
13 13
14KERNEL_DEVICETREE = " \ 14KERNEL_DEVICETREE = " \
15 imx7ulp-evk.dtb \ 15 imx7ulp-evk.dtb \
16" 16"
17KERNEL_DEVICETREE_append_use-mainline-bsp = " \ 17KERNEL_DEVICETREE:append:use-mainline-bsp = " \
18 imx7ulp-com.dtb \ 18 imx7ulp-com.dtb \
19" 19"
20KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 20KERNEL_DEVICETREE:append:use-nxp-bsp = " \
21 imx7ulp-evk-ft5416.dtb \ 21 imx7ulp-evk-ft5416.dtb \
22 imx7ulp-evk-mipi.dtb \ 22 imx7ulp-evk-mipi.dtb \
23 imx7ulp-evkb.dtb \ 23 imx7ulp-evkb.dtb \
diff --git a/conf/machine/imx8dxl-lpddr4-evk.conf b/conf/machine/imx8dxl-lpddr4-evk.conf
index 1ea5260b..d44a4732 100644
--- a/conf/machine/imx8dxl-lpddr4-evk.conf
+++ b/conf/machine/imx8dxl-lpddr4-evk.conf
@@ -5,7 +5,7 @@
5 5
6require conf/machine/include/imx8dxl-evk.inc 6require conf/machine/include/imx8dxl-evk.inc
7KERNEL_DEVICETREE_BASENAME = "imx8dxl-evk" 7KERNEL_DEVICETREE_BASENAME = "imx8dxl-evk"
8KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 8KERNEL_DEVICETREE:append:use-nxp-bsp = " \
9 freescale/${KERNEL_DEVICETREE_BASENAME}-enet0.dtb \ 9 freescale/${KERNEL_DEVICETREE_BASENAME}-enet0.dtb \
10 freescale/${KERNEL_DEVICETREE_BASENAME}-enet0-tja1100.dtb \ 10 freescale/${KERNEL_DEVICETREE_BASENAME}-enet0-tja1100.dtb \
11 freescale/${KERNEL_DEVICETREE_BASENAME}-inmate.dtb \ 11 freescale/${KERNEL_DEVICETREE_BASENAME}-inmate.dtb \
diff --git a/conf/machine/imx8mm-ddr4-evk.conf b/conf/machine/imx8mm-ddr4-evk.conf
index 3901bb92..f21cc381 100644
--- a/conf/machine/imx8mm-ddr4-evk.conf
+++ b/conf/machine/imx8mm-ddr4-evk.conf
@@ -7,7 +7,7 @@
7require include/imx8mm-evk.inc 7require include/imx8mm-evk.inc
8 8
9KERNEL_DEVICETREE_BASENAME = "${MACHINE}" 9KERNEL_DEVICETREE_BASENAME = "${MACHINE}"
10KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 10KERNEL_DEVICETREE:append:use-nxp-bsp = " \
11 freescale/${KERNEL_DEVICETREE_BASENAME}-revb-rm67191.dtb \ 11 freescale/${KERNEL_DEVICETREE_BASENAME}-revb-rm67191.dtb \
12 freescale/${KERNEL_DEVICETREE_BASENAME}-revb.dtb \ 12 freescale/${KERNEL_DEVICETREE_BASENAME}-revb.dtb \
13" 13"
diff --git a/conf/machine/imx8mm-lpddr4-evk.conf b/conf/machine/imx8mm-lpddr4-evk.conf
index 6007c540..0a85ed20 100644
--- a/conf/machine/imx8mm-lpddr4-evk.conf
+++ b/conf/machine/imx8mm-lpddr4-evk.conf
@@ -8,7 +8,7 @@ require include/imx8mm-evk.inc
8 8
9# The device tree name is implicit for LPDDR4, so can't use MACHINE here 9# The device tree name is implicit for LPDDR4, so can't use MACHINE here
10KERNEL_DEVICETREE_BASENAME = "imx8mm-evk" 10KERNEL_DEVICETREE_BASENAME = "imx8mm-evk"
11KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 11KERNEL_DEVICETREE:append:use-nxp-bsp = " \
12 freescale/${KERNEL_DEVICETREE_BASENAME}-8mic-revE.dtb \ 12 freescale/${KERNEL_DEVICETREE_BASENAME}-8mic-revE.dtb \
13 freescale/${KERNEL_DEVICETREE_BASENAME}-8mic-swpdm.dtb \ 13 freescale/${KERNEL_DEVICETREE_BASENAME}-8mic-swpdm.dtb \
14 freescale/${KERNEL_DEVICETREE_BASENAME}-ak4497.dtb \ 14 freescale/${KERNEL_DEVICETREE_BASENAME}-ak4497.dtb \
diff --git a/conf/machine/imx8mn-ddr4-evk.conf b/conf/machine/imx8mn-ddr4-evk.conf
index 442afdbd..d004d2ae 100644
--- a/conf/machine/imx8mn-ddr4-evk.conf
+++ b/conf/machine/imx8mn-ddr4-evk.conf
@@ -7,7 +7,7 @@
7require include/imx8mn-evk.inc 7require include/imx8mn-evk.inc
8 8
9KERNEL_DEVICETREE_BASENAME = "${MACHINE}" 9KERNEL_DEVICETREE_BASENAME = "${MACHINE}"
10KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 10KERNEL_DEVICETREE:append:use-nxp-bsp = " \
11 freescale/${KERNEL_DEVICETREE_BASENAME}-usd-wifi.dtb \ 11 freescale/${KERNEL_DEVICETREE_BASENAME}-usd-wifi.dtb \
12" 12"
13UBOOT_CONFIG_BASENAME = "imx8mn_ddr4_evk" 13UBOOT_CONFIG_BASENAME = "imx8mn_ddr4_evk"
diff --git a/conf/machine/imx8mn-lpddr4-evk.conf b/conf/machine/imx8mn-lpddr4-evk.conf
index 7c58bc19..2e5e6be9 100644
--- a/conf/machine/imx8mn-lpddr4-evk.conf
+++ b/conf/machine/imx8mn-lpddr4-evk.conf
@@ -8,7 +8,7 @@ require include/imx8mn-evk.inc
8 8
9# The device tree name is implicit for LPDDR4, so can't use MACHINE here 9# The device tree name is implicit for LPDDR4, so can't use MACHINE here
10KERNEL_DEVICETREE_BASENAME = "imx8mn-evk" 10KERNEL_DEVICETREE_BASENAME = "imx8mn-evk"
11KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 11KERNEL_DEVICETREE:append:use-nxp-bsp = " \
12 freescale/${KERNEL_DEVICETREE_BASENAME}-8mic-revE.dtb \ 12 freescale/${KERNEL_DEVICETREE_BASENAME}-8mic-revE.dtb \
13" 13"
14UBOOT_CONFIG_BASENAME = "imx8mn_evk" 14UBOOT_CONFIG_BASENAME = "imx8mn_evk"
diff --git a/conf/machine/imx8mp-ddr4-evk.conf b/conf/machine/imx8mp-ddr4-evk.conf
index 09517769..78e0c160 100644
--- a/conf/machine/imx8mp-ddr4-evk.conf
+++ b/conf/machine/imx8mp-ddr4-evk.conf
@@ -8,7 +8,7 @@ require include/imx8mp-evk.inc
8 8
9# FIXME: This machine is not yet supported by u-boot-fslc, so for now 9# FIXME: This machine is not yet supported by u-boot-fslc, so for now
10# use u-boot-imx for mainline. 10# use u-boot-imx for mainline.
11IMX_DEFAULT_BOOTLOADER_use-mainline-bsp = "u-boot-imx" 11IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-imx"
12 12
13KERNEL_DEVICETREE_BASENAME = "${MACHINE}" 13KERNEL_DEVICETREE_BASENAME = "${MACHINE}"
14 14
diff --git a/conf/machine/imx8mp-lpddr4-evk.conf b/conf/machine/imx8mp-lpddr4-evk.conf
index cf926c08..76a1f449 100644
--- a/conf/machine/imx8mp-lpddr4-evk.conf
+++ b/conf/machine/imx8mp-lpddr4-evk.conf
@@ -11,7 +11,7 @@ KERNEL_DEVICETREE_BASENAME = "imx8mp-evk"
11 11
12# NXP kernel has additional DTB files for various board configuration and 12# NXP kernel has additional DTB files for various board configuration and
13# derivates. Include them here for NXP BSP only 13# derivates. Include them here for NXP BSP only
14KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 14KERNEL_DEVICETREE:append:use-nxp-bsp = " \
15 freescale/imx8mp-ab2.dtb \ 15 freescale/imx8mp-ab2.dtb \
16 freescale/imx8mp-evk-basler.dtb \ 16 freescale/imx8mp-evk-basler.dtb \
17 freescale/imx8mp-evk-basler-ov2775.dtb \ 17 freescale/imx8mp-evk-basler-ov2775.dtb \
diff --git a/conf/machine/imx8mq-evk.conf b/conf/machine/imx8mq-evk.conf
index 9907ef4b..cea44ed1 100644
--- a/conf/machine/imx8mq-evk.conf
+++ b/conf/machine/imx8mq-evk.conf
@@ -7,19 +7,19 @@
7MACHINEOVERRIDES =. "mx8:mx8m:mx8mq:" 7MACHINEOVERRIDES =. "mx8:mx8m:mx8mq:"
8 8
9require conf/machine/include/imx-base.inc 9require conf/machine/include/imx-base.inc
10require conf/machine/include/tune-cortexa53.inc 10require conf/machine/include/arm/armv8a/tune-cortexa53.inc
11 11
12IMX_DEFAULT_BSP = "nxp" 12IMX_DEFAULT_BSP = "nxp"
13 13
14MACHINE_FEATURES += "pci wifi bluetooth optee bcm43455 bcm4356" 14MACHINE_FEATURES += "pci wifi bluetooth optee bcm43455 bcm4356"
15MACHINE_FEATURES_append_use-nxp-bsp = " bcm4359" 15MACHINE_FEATURES:append:use-nxp-bsp = " bcm4359"
16 16
17MACHINE_SOCARCH_FILTER_append_mx8mq = " virtual/libopenvg virtual/libgles1 virtual/libgles2 virtual/egl virtual/mesa virtual/libgl virtual/libg2d" 17MACHINE_SOCARCH_FILTER:append:mx8mq = " virtual/libopenvg virtual/libgles1 virtual/libgles2 virtual/egl virtual/mesa virtual/libgl virtual/libg2d"
18 18
19KERNEL_DEVICETREE = " \ 19KERNEL_DEVICETREE = " \
20 freescale/imx8mq-evk.dtb \ 20 freescale/imx8mq-evk.dtb \
21" 21"
22KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 22KERNEL_DEVICETREE:append:use-nxp-bsp = " \
23 freescale/imx8mq-evk-ak4497.dtb \ 23 freescale/imx8mq-evk-ak4497.dtb \
24 freescale/imx8mq-evk-audio-tdm.dtb \ 24 freescale/imx8mq-evk-audio-tdm.dtb \
25 freescale/imx8mq-evk-dcss-adv7535.dtb \ 25 freescale/imx8mq-evk-dcss-adv7535.dtb \
@@ -40,8 +40,8 @@ KERNEL_DEVICETREE_append_use-nxp-bsp = " \
40 freescale/imx8mq-evk-usdhc2-m2.dtb \ 40 freescale/imx8mq-evk-usdhc2-m2.dtb \
41" 41"
42 42
43IMX_DEFAULT_BOOTLOADER_use-nxp-bsp = "u-boot-imx" 43IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
44IMX_DEFAULT_BOOTLOADER_use-mainline-bsp = "u-boot-fslc" 44IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
45 45
46UBOOT_SUFFIX = "bin" 46UBOOT_SUFFIX = "bin"
47 47
@@ -77,11 +77,4 @@ IMX_BOOT_SEEK = "33"
77OPTEE_BIN_EXT = "8mq" 77OPTEE_BIN_EXT = "8mq"
78 78
79# Add additional firmware 79# Add additional firmware
80MACHINE_FIRMWARE_append = " linux-firmware-ath10k" 80MACHINE_FIRMWARE:append = " linux-firmware-ath10k"
81
82# Use gstreamer 1.16 from meta-freescale
83PREFERRED_VERSION_gstreamer1.0 ?= "1.16.imx"
84PREFERRED_VERSION_gstreamer1.0-plugins-base ?= "1.16.imx"
85PREFERRED_VERSION_gstreamer1.0-plugins-good ?= "1.16.imx"
86PREFERRED_VERSION_gstreamer1.0-plugins-bad ?= "1.16.imx"
87PREFERRED_VERSION_gstreamer1.0-libav ?= "1.16.0"
diff --git a/conf/machine/imx8qm-mek.conf b/conf/machine/imx8qm-mek.conf
index 5ceb6b8b..c2e450ce 100644
--- a/conf/machine/imx8qm-mek.conf
+++ b/conf/machine/imx8qm-mek.conf
@@ -6,15 +6,15 @@
6MACHINEOVERRIDES =. "mx8:mx8qm:" 6MACHINEOVERRIDES =. "mx8:mx8qm:"
7 7
8require conf/machine/include/imx-base.inc 8require conf/machine/include/imx-base.inc
9require conf/machine/include/tune-cortexa72-cortexa53.inc 9require conf/machine/include/arm/armv8a/tune-cortexa72-cortexa53.inc
10 10
11IMX_DEFAULT_BSP = "nxp" 11IMX_DEFAULT_BSP = "nxp"
12 12
13MACHINE_FEATURES += "pci optee bcm43455 bcm4356" 13MACHINE_FEATURES += "pci optee bcm43455 bcm4356"
14MACHINE_FEATURES_append_use-nxp-bsp = " bcm4359" 14MACHINE_FEATURES:append:use-nxp-bsp = " bcm4359"
15 15
16# Don't include kernels in standard images 16# Don't include kernels in standard images
17RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" 17RDEPENDS:${KERNEL_PACKAGE_NAME}-base = ""
18 18
19LOADADDR = "" 19LOADADDR = ""
20 20
@@ -55,8 +55,8 @@ UBOOT_MAKE_TARGET = \
55SPL_BINARY = \ 55SPL_BINARY = \
56 "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'spl/u-boot-spl.bin', \ 56 "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'spl/u-boot-spl.bin', \
57 '', d)}" 57 '', d)}"
58IMX_DEFAULT_BOOTLOADER_use-nxp-bsp = "u-boot-imx" 58IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
59IMX_DEFAULT_BOOTLOADER_use-mainline-bsp = "u-boot-fslc" 59IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
60 60
61UBOOT_SUFFIX = "bin" 61UBOOT_SUFFIX = "bin"
62 62
@@ -86,4 +86,4 @@ IMX_BOOT_SOC_TARGET = "iMX8QM"
86BOARD_TYPE = "mek" 86BOARD_TYPE = "mek"
87 87
88# Add additional firmware 88# Add additional firmware
89MACHINE_FIRMWARE_append = " linux-firmware-ath10k" 89MACHINE_FIRMWARE:append = " linux-firmware-ath10k"
diff --git a/conf/machine/imx8qxp-mek.conf b/conf/machine/imx8qxp-mek.conf
index 5b29138f..29412cc3 100644
--- a/conf/machine/imx8qxp-mek.conf
+++ b/conf/machine/imx8qxp-mek.conf
@@ -8,7 +8,7 @@ MACHINEOVERRIDES =. "mx8qxp:"
8require include/imx8x-mek.inc 8require include/imx8x-mek.inc
9 9
10KERNEL_DEVICETREE_BASENAME = "${MACHINE}" 10KERNEL_DEVICETREE_BASENAME = "${MACHINE}"
11KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 11KERNEL_DEVICETREE:append:use-nxp-bsp = " \
12 freescale/${KERNEL_DEVICETREE_BASENAME}-a0.dtb \ 12 freescale/${KERNEL_DEVICETREE_BASENAME}-a0.dtb \
13 freescale/${KERNEL_DEVICETREE_BASENAME}-dom0.dtb \ 13 freescale/${KERNEL_DEVICETREE_BASENAME}-dom0.dtb \
14 freescale/${KERNEL_DEVICETREE_BASENAME}-dpu-lcdif.dtb \ 14 freescale/${KERNEL_DEVICETREE_BASENAME}-dpu-lcdif.dtb \
diff --git a/conf/machine/include/e500mc.inc b/conf/machine/include/e500mc.inc
index a33485be..aa60d95e 100644
--- a/conf/machine/include/e500mc.inc
+++ b/conf/machine/include/e500mc.inc
@@ -1,6 +1,6 @@
1TARGET_FPU = "hard" 1TARGET_FPU = "hard"
2 2
3require conf/machine/include/tune-ppce500mc.inc 3require conf/machine/include/powerpc/tune-ppce500mc.inc
4require conf/machine/include/qoriq-ppc.inc 4require conf/machine/include/qoriq-ppc.inc
5 5
6MACHINEOVERRIDES =. "e500mc:" 6MACHINEOVERRIDES =. "e500mc:"
diff --git a/conf/machine/include/e500v2.inc b/conf/machine/include/e500v2.inc
index 420f0343..a9af67cd 100644
--- a/conf/machine/include/e500v2.inc
+++ b/conf/machine/include/e500v2.inc
@@ -1,4 +1,4 @@
1require conf/machine/include/tune-ppce500v2.inc 1require conf/machine/include/powerpc/tune-ppce500v2.inc
2 2
3MACHINEOVERRIDES =. "e500v2:" 3MACHINEOVERRIDES =. "e500v2:"
4require conf/machine/include/qoriq-ppc.inc 4require conf/machine/include/qoriq-ppc.inc
diff --git a/conf/machine/include/e5500-64b.inc b/conf/machine/include/e5500-64b.inc
index 72b958cd..42acb2f2 100644
--- a/conf/machine/include/e5500-64b.inc
+++ b/conf/machine/include/e5500-64b.inc
@@ -1,11 +1,11 @@
1TARGET_FPU = "hard" 1TARGET_FPU = "hard"
2DEFAULTTUNE ?= "ppc64e5500" 2DEFAULTTUNE ?= "ppc64e5500"
3 3
4require conf/machine/include/tune-ppce5500.inc 4require conf/machine/include/powerpc/tune-ppce5500.inc
5require conf/machine/include/qoriq-ppc.inc 5require conf/machine/include/qoriq-ppc.inc
6 6
7MACHINEOVERRIDES =. "e5500-64b:" 7MACHINEOVERRIDES =. "e5500-64b:"
8 8
9require conf/multilib.conf 9require conf/multilib.conf
10MULTILIBS ?= "multilib:lib32" 10MULTILIBS ?= "multilib:lib32"
11DEFAULTTUNE_virtclass-multilib-lib32 ?= "ppce5500" 11DEFAULTTUNE:virtclass-multilib-lib32 ?= "ppce5500"
diff --git a/conf/machine/include/e5500.inc b/conf/machine/include/e5500.inc
index 364ffac4..c6709c16 100644
--- a/conf/machine/include/e5500.inc
+++ b/conf/machine/include/e5500.inc
@@ -1,6 +1,6 @@
1TARGET_FPU = "hard" 1TARGET_FPU = "hard"
2 2
3require conf/machine/include/tune-ppce5500.inc 3require conf/machine/include/powerpc/tune-ppce5500.inc
4require conf/machine/include/qoriq-ppc.inc 4require conf/machine/include/qoriq-ppc.inc
5 5
6MACHINEOVERRIDES =. "e5500:" 6MACHINEOVERRIDES =. "e5500:"
diff --git a/conf/machine/include/e6500-64b.inc b/conf/machine/include/e6500-64b.inc
index e0e04dbc..3611d51a 100644
--- a/conf/machine/include/e6500-64b.inc
+++ b/conf/machine/include/e6500-64b.inc
@@ -1,11 +1,11 @@
1TARGET_FPU = "hard" 1TARGET_FPU = "hard"
2DEFAULTTUNE ?= "ppc64e6500" 2DEFAULTTUNE ?= "ppc64e6500"
3 3
4require conf/machine/include/tune-ppce6500.inc 4require conf/machine/include/powerpc/tune-ppce6500.inc
5require conf/machine/include/qoriq-ppc.inc 5require conf/machine/include/qoriq-ppc.inc
6 6
7MACHINEOVERRIDES =. "e6500-64b:" 7MACHINEOVERRIDES =. "e6500-64b:"
8 8
9require conf/multilib.conf 9require conf/multilib.conf
10MULTILIBS ?= "multilib:lib32" 10MULTILIBS ?= "multilib:lib32"
11DEFAULTTUNE_virtclass-multilib-lib32 ?= "ppce6500" 11DEFAULTTUNE:virtclass-multilib-lib32 ?= "ppce6500"
diff --git a/conf/machine/include/e6500.inc b/conf/machine/include/e6500.inc
index 8d773b6e..565b75ee 100644
--- a/conf/machine/include/e6500.inc
+++ b/conf/machine/include/e6500.inc
@@ -1,6 +1,6 @@
1TARGET_FPU = "hard" 1TARGET_FPU = "hard"
2 2
3require conf/machine/include/tune-ppce6500.inc 3require conf/machine/include/powerpc/tune-ppce6500.inc
4require conf/machine/include/qoriq-ppc.inc 4require conf/machine/include/qoriq-ppc.inc
5 5
6MACHINEOVERRIDES =. "e6500:" 6MACHINEOVERRIDES =. "e6500:"
@@ -9,4 +9,4 @@ BUILD_64BIT_KERNEL = "1"
9 9
10require conf/multilib.conf 10require conf/multilib.conf
11MULTILIBS ?= "multilib:lib64" 11MULTILIBS ?= "multilib:lib64"
12DEFAULTTUNE_virtclass-multilib-lib64 ?= "ppc64e6500" 12DEFAULTTUNE:virtclass-multilib-lib64 ?= "ppc64e6500"
diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc
index f92a08af..217415f5 100644
--- a/conf/machine/include/imx-base.inc
+++ b/conf/machine/include/imx-base.inc
@@ -13,8 +13,8 @@ require conf/machine/include/utilities.inc
13IMX_DEFAULT_BSP ?= "mainline" 13IMX_DEFAULT_BSP ?= "mainline"
14 14
15# Those are SoC families we'd like to force the use of mainline BSP. 15# Those are SoC families we'd like to force the use of mainline BSP.
16IMX_DEFAULT_BSP_mxs ?= "mainline" 16IMX_DEFAULT_BSP:mxs ?= "mainline"
17IMX_DEFAULT_BSP_mx5 ?= "mainline" 17IMX_DEFAULT_BSP:mx5 ?= "mainline"
18 18
19MACHINEOVERRIDES =. "use-${IMX_DEFAULT_BSP}-bsp:" 19MACHINEOVERRIDES =. "use-${IMX_DEFAULT_BSP}-bsp:"
20 20
@@ -32,16 +32,16 @@ UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}"
32# ,----[ imx6qdlsabresd.conf ] 32# ,----[ imx6qdlsabresd.conf ]
33# | ### u-boot-fslc settings ### 33# | ### u-boot-fslc settings ###
34# | 34# |
35# | SPL_BINARY_pn-u-boot-fslc = "SPL" 35# | SPL_BINARY:pn-u-boot-fslc = "SPL"
36# | UBOOT_MACHINE_pn-u-boot-fslc ?= "mx6sabresd_defconfig" 36# | UBOOT_MACHINE:pn-u-boot-fslc ?= "mx6sabresd_defconfig"
37# | UBOOT_SUFFIX_pn-u-boot-fslc = "img" 37# | UBOOT_SUFFIX:pn-u-boot-fslc = "img"
38# | 38# |
39# | ### u-boot-imx settings ### 39# | ### u-boot-imx settings ###
40# | 40# |
41# | # The u-boot-imx does not provide unified functionality for DL/Q/QP SoC 41# | # The u-boot-imx does not provide unified functionality for DL/Q/QP SoC
42# | # variants. Change the defconfig to the targeted SoC variant. 42# | # variants. Change the defconfig to the targeted SoC variant.
43# | UBOOT_MACHINE_pn-u-boot-imx ?= "mx6qsabresd_defconfig" 43# | UBOOT_MACHINE:pn-u-boot-imx ?= "mx6qsabresd_defconfig"
44# | UBOOT_SUFFIX_pn-u-boot-imx = "imx" 44# | UBOOT_SUFFIX:pn-u-boot-imx = "imx"
45# `---- 45# `----
46# 46#
47# As result, the 'UBOOT_SUFFIX' is dynamically set based on the preferred U-Boot 47# As result, the 'UBOOT_SUFFIX' is dynamically set based on the preferred U-Boot
@@ -61,7 +61,7 @@ UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}"
61# | UBOOT_MACHINE = "mx53loco_config" 61# | UBOOT_MACHINE = "mx53loco_config"
62# `---- 62# `----
63IMX_DEFAULT_BOOTLOADER ??= "u-boot-fslc" 63IMX_DEFAULT_BOOTLOADER ??= "u-boot-fslc"
64UBOOT_SUFFIX ?= "${UBOOT_SUFFIX_pn-${IMX_DEFAULT_BOOTLOADER}}" 64UBOOT_SUFFIX ?= "${UBOOT_SUFFIX:pn-${IMX_DEFAULT_BOOTLOADER}}"
65 65
66# We need to export the original variable to allow it to be used when generating 66# We need to export the original variable to allow it to be used when generating
67# wic based images. 67# wic based images.
@@ -75,33 +75,33 @@ PREFERRED_PROVIDER_virtual/bootloader ??= "${IMX_DEFAULT_BOOTLOADER}"
75 75
76PREFERRED_PROVIDER_u-boot-mxsboot-native ??= "u-boot-fslc-mxsboot-native" 76PREFERRED_PROVIDER_u-boot-mxsboot-native ??= "u-boot-fslc-mxsboot-native"
77 77
78UBOOT_ENTRYPOINT_mxs = "0x40008000" 78UBOOT_ENTRYPOINT:mxs = "0x40008000"
79UBOOT_ENTRYPOINT_mx51 = "0x90008000" 79UBOOT_ENTRYPOINT:mx51 = "0x90008000"
80UBOOT_ENTRYPOINT_mx53 = "0x70008000" 80UBOOT_ENTRYPOINT:mx53 = "0x70008000"
81UBOOT_ENTRYPOINT_mx6 = "0x10008000" 81UBOOT_ENTRYPOINT:mx6 = "0x10008000"
82UBOOT_ENTRYPOINT_mx6sl = "0x80008000" 82UBOOT_ENTRYPOINT:mx6sl = "0x80008000"
83UBOOT_ENTRYPOINT_mx6sll = "0x80008000" 83UBOOT_ENTRYPOINT:mx6sll = "0x80008000"
84UBOOT_ENTRYPOINT_mx6sx = "0x80008000" 84UBOOT_ENTRYPOINT:mx6sx = "0x80008000"
85UBOOT_ENTRYPOINT_mx6ul = "0x80008000" 85UBOOT_ENTRYPOINT:mx6ul = "0x80008000"
86UBOOT_ENTRYPOINT_mx6ull = "0x80008000" 86UBOOT_ENTRYPOINT:mx6ull = "0x80008000"
87UBOOT_ENTRYPOINT_mx6ulz = "0x80008000" 87UBOOT_ENTRYPOINT:mx6ulz = "0x80008000"
88UBOOT_ENTRYPOINT_mx7 = "0x80008000" 88UBOOT_ENTRYPOINT:mx7 = "0x80008000"
89UBOOT_ENTRYPOINT_mx7ulp = "0x60008000" 89UBOOT_ENTRYPOINT:mx7ulp = "0x60008000"
90UBOOT_ENTRYPOINT_mx8m = "0x40480000" 90UBOOT_ENTRYPOINT:mx8m = "0x40480000"
91UBOOT_ENTRYPOINT_vf = "0x80008000" 91UBOOT_ENTRYPOINT:vf = "0x80008000"
92 92
93# Some derivates can utilize the boot container provided by U-Boot, 93# Some derivates can utilize the boot container provided by U-Boot,
94# below variable sets that those machines which have a imx-boot-container 94# below variable sets that those machines which have a imx-boot-container
95# in their MACHINEOVERRIDES can inherit a imx-boot-container class 95# in their MACHINEOVERRIDES can inherit a imx-boot-container class
96UBOOT_PROVIDES_BOOT_CONTAINER = "0" 96UBOOT_PROVIDES_BOOT_CONTAINER = "0"
97UBOOT_PROVIDES_BOOT_CONTAINER_imx-boot-container = "1" 97UBOOT_PROVIDES_BOOT_CONTAINER:imx-boot-container = "1"
98 98
99PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg" 99PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg"
100XSERVER_DRIVER = "xf86-video-fbdev" 100XSERVER_DRIVER = "xf86-video-fbdev"
101XSERVER_DRIVER_imxgpu2d = "xf86-video-imx-vivante" 101XSERVER_DRIVER:imxgpu2d = "xf86-video-imx-vivante"
102XSERVER_DRIVER_vf = "xf86-video-modesetting" 102XSERVER_DRIVER:vf = "xf86-video-modesetting"
103XSERVER_DRIVER_append_mx8 = " xf86-video-modesetting" 103XSERVER_DRIVER:append:mx8 = " xf86-video-modesetting"
104XSERVER_DRIVER_use-mainline-bsp = " \ 104XSERVER_DRIVER:use-mainline-bsp = " \
105 xf86-video-fbdev \ 105 xf86-video-fbdev \
106 xf86-video-modesetting \ 106 xf86-video-modesetting \
107 xserver-xorg-extension-glx \ 107 xserver-xorg-extension-glx \
@@ -118,41 +118,41 @@ MACHINE_EXTRA_RRECOMMENDS = "kernel-modules"
118# ARM_INSTRUCTION_SET = "thumb" 118# ARM_INSTRUCTION_SET = "thumb"
119# 119#
120# handled by software 120# handled by software
121# DEFAULTTUNE_mx6 ?= "cortexa9t-neon" 121# DEFAULTTUNE:mx6 ?= "cortexa9t-neon"
122# handled by hardware 122# handled by hardware
123DEFAULTTUNE_mx6 ?= "cortexa9thf-neon" 123DEFAULTTUNE:mx6 ?= "cortexa9thf-neon"
124DEFAULTTUNE_mx6ul ?= "cortexa7thf-neon" 124DEFAULTTUNE:mx6ul ?= "cortexa7thf-neon"
125DEFAULTTUNE_mx6ull ?= "cortexa7thf-neon" 125DEFAULTTUNE:mx6ull ?= "cortexa7thf-neon"
126DEFAULTTUNE_mx6ulz ?= "cortexa7thf-neon" 126DEFAULTTUNE:mx6ulz ?= "cortexa7thf-neon"
127DEFAULTTUNE_mx7 ?= "cortexa7thf-neon" 127DEFAULTTUNE:mx7 ?= "cortexa7thf-neon"
128DEFAULTTUNE_vf ?= "cortexa5thf-neon" 128DEFAULTTUNE:vf ?= "cortexa5thf-neon"
129 129
130DEFAULTTUNE_mx8m ?= "cortexa53-crypto" 130DEFAULTTUNE:mx8m ?= "cortexa53-crypto"
131DEFAULTTUNE_mx8qm ?= "cortexa72-cortexa53-crypto" 131DEFAULTTUNE:mx8qm ?= "cortexa72-cortexa53-crypto"
132DEFAULTTUNE_mx8qxp ?= "cortexa35-crypto" 132DEFAULTTUNE:mx8qxp ?= "cortexa35-crypto"
133 133
134INHERIT += "machine-overrides-extender" 134INHERIT += "machine-overrides-extender"
135 135
136MACHINEOVERRIDES_EXTENDER_mx25 = "use-mainline-bsp" 136MACHINEOVERRIDES_EXTENDER:mx25 = "use-mainline-bsp"
137MACHINEOVERRIDES_EXTENDER_mx6q = "imxfbdev:imxipu:imxvpu:imxgpu:imxgpu2d:imxgpu3d" 137MACHINEOVERRIDES_EXTENDER:mx6q = "imxfbdev:imxipu:imxvpu:imxgpu:imxgpu2d:imxgpu3d"
138MACHINEOVERRIDES_EXTENDER_mx6dl = "imxfbdev:imxpxp:imxipu:imxvpu:imxgpu:imxgpu2d:imxgpu3d:imxepdc" 138MACHINEOVERRIDES_EXTENDER:mx6dl = "imxfbdev:imxpxp:imxipu:imxvpu:imxgpu:imxgpu2d:imxgpu3d:imxepdc"
139MACHINEOVERRIDES_EXTENDER_mx6sx = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxgpu3d" 139MACHINEOVERRIDES_EXTENDER:mx6sx = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxgpu3d"
140MACHINEOVERRIDES_EXTENDER_mx6sl = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxepdc" 140MACHINEOVERRIDES_EXTENDER:mx6sl = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxepdc"
141MACHINEOVERRIDES_EXTENDER_mx6sll = "imxfbdev:imxpxp:imxepdc" 141MACHINEOVERRIDES_EXTENDER:mx6sll = "imxfbdev:imxpxp:imxepdc"
142MACHINEOVERRIDES_EXTENDER_mx6ul = "imxfbdev:imxpxp" 142MACHINEOVERRIDES_EXTENDER:mx6ul = "imxfbdev:imxpxp"
143MACHINEOVERRIDES_EXTENDER_mx6ull = "imxfbdev:imxpxp:imxepdc" 143MACHINEOVERRIDES_EXTENDER:mx6ull = "imxfbdev:imxpxp:imxepdc"
144MACHINEOVERRIDES_EXTENDER_mx6ulz = "imxfbdev:imxpxp:imxepdc" 144MACHINEOVERRIDES_EXTENDER:mx6ulz = "imxfbdev:imxpxp:imxepdc"
145MACHINEOVERRIDES_EXTENDER_mx7d = "imxfbdev:imxpxp:imxepdc" 145MACHINEOVERRIDES_EXTENDER:mx7d = "imxfbdev:imxpxp:imxepdc"
146MACHINEOVERRIDES_EXTENDER_mx7ulp = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxgpu3d" 146MACHINEOVERRIDES_EXTENDER:mx7ulp = "imxfbdev:imxpxp:imxgpu:imxgpu2d:imxgpu3d"
147MACHINEOVERRIDES_EXTENDER_mx8qm = "imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d" 147MACHINEOVERRIDES_EXTENDER:mx8qm = "imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d"
148MACHINEOVERRIDES_EXTENDER_mx8mm = "imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d" 148MACHINEOVERRIDES_EXTENDER:mx8mm = "imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d"
149MACHINEOVERRIDES_EXTENDER_mx8mn = "imxdrm:imxgpu:imxgpu3d" 149MACHINEOVERRIDES_EXTENDER:mx8mn = "imxdrm:imxgpu:imxgpu3d"
150MACHINEOVERRIDES_EXTENDER_mx8mp = "imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d" 150MACHINEOVERRIDES_EXTENDER:mx8mp = "imxdrm:imxvpu:imxgpu:imxgpu2d:imxgpu3d"
151MACHINEOVERRIDES_EXTENDER_mx8mq = "imxdrm:imxvpu:imxgpu:imxgpu3d" 151MACHINEOVERRIDES_EXTENDER:mx8mq = "imxdrm:imxvpu:imxgpu:imxgpu3d"
152MACHINEOVERRIDES_EXTENDER_mx8qxp = "imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d" 152MACHINEOVERRIDES_EXTENDER:mx8qxp = "imxdrm:imxdpu:imxgpu:imxgpu2d:imxgpu3d"
153MACHINEOVERRIDES_EXTENDER_mx8dxl = "imxfbdev" 153MACHINEOVERRIDES_EXTENDER:mx8dxl = "imxfbdev"
154 154
155MACHINEOVERRIDES_EXTENDER_FILTER_OUT_use-mainline-bsp = " \ 155MACHINEOVERRIDES_EXTENDER_FILTER_OUT:use-mainline-bsp = " \
156 imx \ 156 imx \
157 \ 157 \
158 mx6 \ 158 mx6 \
@@ -182,40 +182,40 @@ MACHINEOVERRIDES_EXTENDER_FILTER_OUT_use-mainline-bsp = " \
182 182
183# Sub-architecture support 183# Sub-architecture support
184MACHINE_SOCARCH_SUFFIX ?= "" 184MACHINE_SOCARCH_SUFFIX ?= ""
185MACHINE_SOCARCH_SUFFIX_mx6q = "-mx6qdl" 185MACHINE_SOCARCH_SUFFIX:mx6q = "-mx6qdl"
186MACHINE_SOCARCH_SUFFIX_mx6dl = "-mx6qdl" 186MACHINE_SOCARCH_SUFFIX:mx6dl = "-mx6qdl"
187MACHINE_SOCARCH_SUFFIX_mx6sx = "-mx6sx" 187MACHINE_SOCARCH_SUFFIX:mx6sx = "-mx6sx"
188MACHINE_SOCARCH_SUFFIX_mx6sl = "-mx6sl" 188MACHINE_SOCARCH_SUFFIX:mx6sl = "-mx6sl"
189MACHINE_SOCARCH_SUFFIX_mx6sll= "-mx6sll" 189MACHINE_SOCARCH_SUFFIX:mx6sll= "-mx6sll"
190MACHINE_SOCARCH_SUFFIX_mx7d = "-mx7d" 190MACHINE_SOCARCH_SUFFIX:mx7d = "-mx7d"
191MACHINE_SOCARCH_SUFFIX_mx7ulp = "-mx7ulp" 191MACHINE_SOCARCH_SUFFIX:mx7ulp = "-mx7ulp"
192MACHINE_SOCARCH_SUFFIX_vf60 = "-vf60" 192MACHINE_SOCARCH_SUFFIX:vf60 = "-vf60"
193MACHINE_SOCARCH_SUFFIX_vf50 = "-vf50" 193MACHINE_SOCARCH_SUFFIX:vf50 = "-vf50"
194MACHINE_SOCARCH_SUFFIX_mx6ul = "-mx6ul" 194MACHINE_SOCARCH_SUFFIX:mx6ul = "-mx6ul"
195MACHINE_SOCARCH_SUFFIX_mx6ull = "-mx6ul" 195MACHINE_SOCARCH_SUFFIX:mx6ull = "-mx6ul"
196MACHINE_SOCARCH_SUFFIX_mx6ulz = "-mx6ul" 196MACHINE_SOCARCH_SUFFIX:mx6ulz = "-mx6ul"
197MACHINE_SOCARCH_SUFFIX_mx8qm = "-mx8" 197MACHINE_SOCARCH_SUFFIX:mx8qm = "-mx8"
198MACHINE_SOCARCH_SUFFIX_mx8mm = "-mx8mm" 198MACHINE_SOCARCH_SUFFIX:mx8mm = "-mx8mm"
199MACHINE_SOCARCH_SUFFIX_mx8mn = "-mx8mn" 199MACHINE_SOCARCH_SUFFIX:mx8mn = "-mx8mn"
200MACHINE_SOCARCH_SUFFIX_mx8mp = "-mx8mp" 200MACHINE_SOCARCH_SUFFIX:mx8mp = "-mx8mp"
201MACHINE_SOCARCH_SUFFIX_mx8mq = "-mx8m" 201MACHINE_SOCARCH_SUFFIX:mx8mq = "-mx8m"
202MACHINE_SOCARCH_SUFFIX_mx8qxp = "-mx8" 202MACHINE_SOCARCH_SUFFIX:mx8qxp = "-mx8"
203MACHINE_SOCARCH_SUFFIX_mx8dxl = "-mx8dxl" 203MACHINE_SOCARCH_SUFFIX:mx8dxl = "-mx8dxl"
204MACHINE_SOCARCH_SUFFIX_use-mainline-bsp = "-imx" 204MACHINE_SOCARCH_SUFFIX:use-mainline-bsp = "-imx"
205 205
206MACHINE_ARCH_FILTER = "virtual/kernel" 206MACHINE_ARCH_FILTER = "virtual/kernel"
207MACHINE_SOCARCH_FILTER_append_imx = " \ 207MACHINE_SOCARCH_FILTER:append:imx = " \
208 alsa-lib \ 208 alsa-lib \
209 gstreamer1.0 \ 209 gstreamer1.0 \
210 weston \ 210 weston \
211" 211"
212MACHINE_SOCARCH_FILTER_append_imxvpu = " \ 212MACHINE_SOCARCH_FILTER:append:imxvpu = " \
213 imx-codec \ 213 imx-codec \
214 imx-vpuwrap \ 214 imx-vpuwrap \
215 libimxvpuapi \ 215 libimxvpuapi \
216 virtual/imxvpu \ 216 virtual/imxvpu \
217" 217"
218MACHINE_SOCARCH_FILTER_append_imxgpu = " \ 218MACHINE_SOCARCH_FILTER:append:imxgpu = " \
219 virtual/egl \ 219 virtual/egl \
220 virtual/mesa \ 220 virtual/mesa \
221 virtual/libopenvg \ 221 virtual/libopenvg \
@@ -225,15 +225,15 @@ MACHINE_SOCARCH_FILTER_append_imxgpu = " \
225 opencv \ 225 opencv \
226 pango \ 226 pango \
227" 227"
228MACHINE_SOCARCH_FILTER_append_imxgpu2d = " \ 228MACHINE_SOCARCH_FILTER:append:imxgpu2d = " \
229 virtual/libg2d \ 229 virtual/libg2d \
230" 230"
231MACHINE_SOCARCH_FILTER_append_imxgpu3d = " \ 231MACHINE_SOCARCH_FILTER:append:imxgpu3d = " \
232 virtual/libgl \ 232 virtual/libgl \
233 virtual/libgles1 \ 233 virtual/libgles1 \
234 virtual/libgles2 \ 234 virtual/libgles2 \
235" 235"
236MACHINE_SOCARCH_FILTER_append_use-mainline-bsp = " \ 236MACHINE_SOCARCH_FILTER:append:use-mainline-bsp = " \
237 virtual/egl \ 237 virtual/egl \
238 virtual/libopenvg \ 238 virtual/libopenvg \
239 virtual/libg2d \ 239 virtual/libg2d \
@@ -245,23 +245,23 @@ MACHINE_SOCARCH_FILTER_append_use-mainline-bsp = " \
245 pango \ 245 pango \
246 qtbase \ 246 qtbase \
247" 247"
248MACHINE_SOCARCH_FILTER_append_mx6q = " \ 248MACHINE_SOCARCH_FILTER:append:mx6q = " \
249 opencl-icd-loader \ 249 opencl-icd-loader \
250 opencl-clhpp \ 250 opencl-clhpp \
251 opencl-headers \ 251 opencl-headers \
252" 252"
253MACHINE_SOCARCH_FILTER_append_mx8 = " \ 253MACHINE_SOCARCH_FILTER:append:mx8 = " \
254 opencl-icd-loader \ 254 opencl-icd-loader \
255 opencl-clhpp \ 255 opencl-clhpp \
256 opencl-headers \ 256 opencl-headers \
257" 257"
258MACHINE_SOCARCH_FILTER_append_mx8qm = " \ 258MACHINE_SOCARCH_FILTER:append:mx8qm = " \
259 virtual/libopenvx \ 259 virtual/libopenvx \
260" 260"
261 261
262INHERIT += "fsl-dynamic-packagearch" 262INHERIT += "fsl-dynamic-packagearch"
263 263
264SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS_append = " \ 264SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS:append = " \
265 imx-gpu-viv->kernel-module-imx-gpu-viv \ 265 imx-gpu-viv->kernel-module-imx-gpu-viv \
266 libimxvpuapi->virtual/imxvpu \ 266 libimxvpuapi->virtual/imxvpu \
267 imx-vpuwrap->virtual/imxvpu \ 267 imx-vpuwrap->virtual/imxvpu \
@@ -271,44 +271,44 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS_append = " \
271 271
272# Firmware 272# Firmware
273MACHINE_FIRMWARE ?= "" 273MACHINE_FIRMWARE ?= ""
274MACHINE_FIRMWARE_append_mx25 = " firmware-imx-sdma-imx25" 274MACHINE_FIRMWARE:append:mx25 = " firmware-imx-sdma-imx25"
275MACHINE_FIRMWARE_append_mx27 = " firmware-imx-vpu-imx27" 275MACHINE_FIRMWARE:append:mx27 = " firmware-imx-vpu-imx27"
276MACHINE_FIRMWARE_append_mx7d = " linux-firmware-imx-sdma-imx7d firmware-imx-epdc" 276MACHINE_FIRMWARE:append:mx7d = " linux-firmware-imx-sdma-imx7d firmware-imx-epdc"
277MACHINE_FIRMWARE_append_mx6 = " linux-firmware-imx-sdma-imx6q" 277MACHINE_FIRMWARE:append:mx6 = " linux-firmware-imx-sdma-imx6q"
278MACHINE_FIRMWARE_append_mx6q = " firmware-imx-vpu-imx6q" 278MACHINE_FIRMWARE:append:mx6q = " firmware-imx-vpu-imx6q"
279MACHINE_FIRMWARE_append_mx6dl = " firmware-imx-vpu-imx6d firmware-imx-epdc" 279MACHINE_FIRMWARE:append:mx6dl = " firmware-imx-vpu-imx6d firmware-imx-epdc"
280MACHINE_FIRMWARE_append_mx6sl = " firmware-imx-epdc" 280MACHINE_FIRMWARE:append:mx6sl = " firmware-imx-epdc"
281MACHINE_FIRMWARE_append_mx6sll = " firmware-imx-epdc" 281MACHINE_FIRMWARE:append:mx6sll = " firmware-imx-epdc"
282MACHINE_FIRMWARE_append_mx6ull = " firmware-imx-epdc" 282MACHINE_FIRMWARE:append:mx6ull = " firmware-imx-epdc"
283MACHINE_FIRMWARE_append_mx53 = " firmware-imx-vpu-imx53 firmware-imx-sdma-imx53" 283MACHINE_FIRMWARE:append:mx53 = " firmware-imx-vpu-imx53 firmware-imx-sdma-imx53"
284MACHINE_FIRMWARE_append_mx51 = " firmware-imx-vpu-imx51 firmware-imx-sdma-imx51" 284MACHINE_FIRMWARE:append:mx51 = " firmware-imx-vpu-imx51 firmware-imx-sdma-imx51"
285MACHINE_FIRMWARE_append_mx8mm = " linux-firmware-imx-sdma-imx7d" 285MACHINE_FIRMWARE:append:mx8mm = " linux-firmware-imx-sdma-imx7d"
286MACHINE_FIRMWARE_append_mx8mn = " linux-firmware-imx-sdma-imx7d" 286MACHINE_FIRMWARE:append:mx8mn = " linux-firmware-imx-sdma-imx7d"
287MACHINE_FIRMWARE_append_mx8mp = " linux-firmware-imx-sdma-imx7d firmware-imx-easrc-imx8mn firmware-imx-xcvr-imx8mp firmware-sof-imx" 287MACHINE_FIRMWARE:append:mx8mp = " linux-firmware-imx-sdma-imx7d firmware-imx-easrc-imx8mn firmware-imx-xcvr-imx8mp firmware-sof-imx"
288MACHINE_FIRMWARE_append_mx8mq = " linux-firmware-imx-sdma-imx7d" 288MACHINE_FIRMWARE:append:mx8mq = " linux-firmware-imx-sdma-imx7d"
289MACHINE_FIRMWARE_append_mx8qm = " firmware-imx-vpu-imx8" 289MACHINE_FIRMWARE:append:mx8qm = " firmware-imx-vpu-imx8"
290MACHINE_FIRMWARE_append_mx8qxp = " firmware-imx-vpu-imx8" 290MACHINE_FIRMWARE:append:mx8qxp = " firmware-imx-vpu-imx8"
291MACHINE_FIRMWARE_append_use-mainline-bsp = " linux-firmware-imx-sdma-imx6q linux-firmware-imx-sdma-imx7d firmware-imx-vpu-imx6q firmware-imx-vpu-imx6d" 291MACHINE_FIRMWARE:append:use-mainline-bsp = " linux-firmware-imx-sdma-imx6q linux-firmware-imx-sdma-imx7d firmware-imx-vpu-imx6q firmware-imx-vpu-imx6d"
292 292
293MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}" 293MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}"
294 294
295# Extra audio support 295# Extra audio support
296IMX_ALSA_EXTRA = "" 296IMX_ALSA_EXTRA = ""
297IMX_ALSA_EXTRA_use-nxp-bsp = "imx-alsa-plugins" 297IMX_ALSA_EXTRA:use-nxp-bsp = "imx-alsa-plugins"
298MACHINE_EXTRA_RRECOMMENDS_append_mx6 = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', '${IMX_ALSA_EXTRA}', '', d)}" 298MACHINE_EXTRA_RRECOMMENDS:append:mx6 = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', '${IMX_ALSA_EXTRA}', '', d)}"
299MACHINE_EXTRA_RRECOMMENDS_append_mx7 = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', '${IMX_ALSA_EXTRA}', '', d)}" 299MACHINE_EXTRA_RRECOMMENDS:append:mx7 = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', '${IMX_ALSA_EXTRA}', '', d)}"
300MACHINE_EXTRA_RRECOMMENDS_append_mx8 = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', '${IMX_ALSA_EXTRA}', '', d)}" 300MACHINE_EXTRA_RRECOMMENDS:append:mx8 = " ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', '${IMX_ALSA_EXTRA}', '', d)}"
301 301
302# Extra Cypress Wi-Fi and BTW firmware (Murata) 302# Extra Cypress Wi-Fi and BTW firmware (Murata)
303MACHINE_FIRMWARE_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4339', 'linux-firmware-bcm4339', '', d)}" 303MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4339', 'linux-firmware-bcm4339', '', d)}"
304MACHINE_FIRMWARE_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm43430', 'linux-firmware-bcm43430', '', d)}" 304MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm43430', 'linux-firmware-bcm43430', '', d)}"
305MACHINE_FIRMWARE_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm43455', 'linux-firmware-bcm43455', '', d)}" 305MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm43455', 'linux-firmware-bcm43455', '', d)}"
306MACHINE_FIRMWARE_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4356', 'linux-firmware-bcm4356-pcie', '', d)}" 306MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4356', 'linux-firmware-bcm4356-pcie', '', d)}"
307MACHINE_FIRMWARE_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4359', 'linux-firmware-bcm4359-pcie', '', d)}" 307MACHINE_FIRMWARE:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'bcm4359', 'linux-firmware-bcm4359-pcie', '', d)}"
308 308
309# Extra QCA Wi-Fi & BTE driver and firmware 309# Extra QCA Wi-Fi & BTE driver and firmware
310MACHINE_EXTRA_RRECOMMENDS_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'qca6174', 'packagegroup-fsl-qca6174', '', d)}" 310MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'qca6174', 'packagegroup-fsl-qca6174', '', d)}"
311MACHINE_EXTRA_RRECOMMENDS_append = " ${@bb.utils.contains('MACHINE_FEATURES', 'qca9377', 'packagegroup-fsl-qca9377', '', d)}" 311MACHINE_EXTRA_RRECOMMENDS:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'qca9377', 'packagegroup-fsl-qca9377', '', d)}"
312 312
313# Extra udev rules 313# Extra udev rules
314MACHINE_EXTRA_RRECOMMENDS += "udev-rules-imx" 314MACHINE_EXTRA_RRECOMMENDS += "udev-rules-imx"
@@ -320,29 +320,31 @@ MACHINE_EXTRA_RRECOMMENDS += " \
320 320
321# GStreamer 1.0 plugins 321# GStreamer 1.0 plugins
322MACHINE_GSTREAMER_1_0_PLUGIN ?= "" 322MACHINE_GSTREAMER_1_0_PLUGIN ?= ""
323MACHINE_GSTREAMER_1_0_PLUGIN_mx6dl ?= "gstreamer1.0-plugins-imx-meta" 323MACHINE_GSTREAMER_1_0_PLUGIN:mx6dl ?= "gstreamer1.0-plugins-imx-meta"
324MACHINE_GSTREAMER_1_0_PLUGIN_mx6q ?= "gstreamer1.0-plugins-imx-meta" 324MACHINE_GSTREAMER_1_0_PLUGIN:mx6q ?= "gstreamer1.0-plugins-imx-meta"
325MACHINE_GSTREAMER_1_0_PLUGIN_mx6sl ?= "gstreamer1.0-plugins-imx-meta" 325MACHINE_GSTREAMER_1_0_PLUGIN:mx6sl ?= "gstreamer1.0-plugins-imx-meta"
326MACHINE_GSTREAMER_1_0_PLUGIN_mx6sx ?= "gstreamer1.0-plugins-imx-meta" 326MACHINE_GSTREAMER_1_0_PLUGIN:mx6sx ?= "gstreamer1.0-plugins-imx-meta"
327MACHINE_GSTREAMER_1_0_PLUGIN_mx6ul ?= "gstreamer1.0-plugins-imx-meta" 327MACHINE_GSTREAMER_1_0_PLUGIN:mx6ul ?= "gstreamer1.0-plugins-imx-meta"
328MACHINE_GSTREAMER_1_0_PLUGIN_mx6ull ?= "gstreamer1.0-plugins-imx-meta" 328MACHINE_GSTREAMER_1_0_PLUGIN:mx6ull ?= "gstreamer1.0-plugins-imx-meta"
329MACHINE_GSTREAMER_1_0_PLUGIN_mx7d ?= "gstreamer1.0-plugins-imx-meta" 329MACHINE_GSTREAMER_1_0_PLUGIN:mx7d ?= "gstreamer1.0-plugins-imx-meta"
330MACHINE_GSTREAMER_1_0_PLUGIN_mx8mm ?= "imx-gst1.0-plugin" 330MACHINE_GSTREAMER_1_0_PLUGIN:mx8mm ?= "imx-gst1.0-plugin"
331MACHINE_GSTREAMER_1_0_PLUGIN_mx8mn ?= "imx-gst1.0-plugin" 331MACHINE_GSTREAMER_1_0_PLUGIN:mx8mn ?= "imx-gst1.0-plugin"
332MACHINE_GSTREAMER_1_0_PLUGIN_mx8mp ?= "imx-gst1.0-plugin" 332MACHINE_GSTREAMER_1_0_PLUGIN:mx8mp ?= "imx-gst1.0-plugin"
333MACHINE_GSTREAMER_1_0_PLUGIN_mx8mq ?= "imx-gst1.0-plugin" 333MACHINE_GSTREAMER_1_0_PLUGIN:mx8mq ?= "imx-gst1.0-plugin"
334MACHINE_GSTREAMER_1_0_PLUGIN_mx8qm ?= "imx-gst1.0-plugin" 334MACHINE_GSTREAMER_1_0_PLUGIN:mx8qm ?= "imx-gst1.0-plugin"
335MACHINE_GSTREAMER_1_0_PLUGIN_mx8qxp ?= "imx-gst1.0-plugin" 335MACHINE_GSTREAMER_1_0_PLUGIN:mx8qxp ?= "imx-gst1.0-plugin"
336 336
337PREFERRED_VERSION_gstreamer1.0_mx8 ?= "1.16.2.imx" 337PREFERRED_VERSION_gstreamer1.0:mx8 ?= "1.18.0.imx"
338PREFERRED_VERSION_gstreamer1.0-plugins-base_mx8 ?= "1.16.2.imx" 338PREFERRED_VERSION_gstreamer1.0-plugins-base:mx8 ?= "1.18.0.imx"
339PREFERRED_VERSION_gstreamer1.0-plugins-good_mx8 ?= "1.16.3.imx" 339PREFERRED_VERSION_gstreamer1.0-plugins-good:mx8 ?= "1.18.0.imx"
340PREFERRED_VERSION_gstreamer1.0-plugins-bad_mx8 ?= "1.16.3.imx" 340PREFERRED_VERSION_gstreamer1.0-plugins-bad:mx8 ?= "1.18.0.imx"
341PREFERRED_VERSION_gstreamer1.0-libav_mx8 ?= "1.16.0" 341PREFERRED_VERSION_gstreamer1.0-plugins-ugly:mx8 ?= "1.18.0"
342PREFERRED_VERSION_gstreamer1.0-libav:mx8 ?= "1.18.0"
343PREFERRED_VERSION_gstreamer1.0-rtsp-server:mx8 ?= "1.18.0"
342 344
343# Determines if the SoC has support for Vivante kernel driver 345# Determines if the SoC has support for Vivante kernel driver
344SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT = "0" 346SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT = "0"
345SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT_imxgpu = "1" 347SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT:imxgpu = "1"
346 348
347# Handle Vivante kernel driver setting: 349# Handle Vivante kernel driver setting:
348# 0 - machine does not have Vivante GPU driver support 350# 0 - machine does not have Vivante GPU driver support
@@ -355,59 +357,60 @@ PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
355PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa" 357PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
356PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa" 358PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
357 359
358PREFERRED_PROVIDER_virtual/egl_imxgpu ?= "imx-gpu-viv" 360PREFERRED_PROVIDER_virtual/egl:imxgpu ?= "imx-gpu-viv"
359PREFERRED_PROVIDER_virtual/libgl_imxgpu3d ?= "imx-gpu-viv" 361PREFERRED_PROVIDER_virtual/libgl:imxgpu3d ?= "imx-gpu-viv"
360PREFERRED_PROVIDER_virtual/libgles1_imxgpu3d ?= "imx-gpu-viv" 362PREFERRED_PROVIDER_virtual/libgles1:imxgpu3d ?= "imx-gpu-viv"
361PREFERRED_PROVIDER_virtual/libgles2_imxgpu3d ?= "imx-gpu-viv" 363PREFERRED_PROVIDER_virtual/libgles2:imxgpu3d ?= "imx-gpu-viv"
362PREFERRED_PROVIDER_virtual/libg2d ?= "imx-gpu-g2d" 364PREFERRED_PROVIDER_virtual/libg2d ?= "imx-gpu-g2d"
363PREFERRED_PROVIDER_virtual/libg2d_imxdpu ?= "imx-dpu-g2d" 365PREFERRED_PROVIDER_virtual/libg2d:imxdpu ?= "imx-dpu-g2d"
364PREFERRED_PROVIDER_opencl-clhpp_imxgpu ?= "imx-gpu-viv" 366PREFERRED_PROVIDER_opencl-clhpp:imxgpu ?= "imx-gpu-viv"
365PREFERRED_PROVIDER_opencl-headers_imxgpu ?= "imx-gpu-viv" 367PREFERRED_PROVIDER_opencl-headers:imxgpu ?= "imx-gpu-viv"
366PREFERRED_PROVIDER_opencl-icd-loader_imxgpu ?= "imx-gpu-viv" 368PREFERRED_PROVIDER_opencl-icd-loader:imxgpu ?= "imx-gpu-viv"
367 369
368PREFERRED_VERSION_weston_imx ?= "9.0.0.imx" 370PREFERRED_VERSION_weston:imx ?= "9.0.0.imx"
369PREFERRED_VERSION_weston_use-mainline-bsp = "" 371PREFERRED_VERSION_weston:use-mainline-bsp = ""
370 372
371PREFERRED_VERSION_wayland-protocols_mx6 ?= "1.20.imx" 373PREFERRED_VERSION_wayland-protocols:mx6 ?= "1.20.imx"
372PREFERRED_VERSION_wayland-protocols_mx7 ?= "1.20.imx" 374PREFERRED_VERSION_wayland-protocols:mx7 ?= "1.20.imx"
373PREFERRED_VERSION_wayland-protocols_mx8 ?= "1.20.imx" 375PREFERRED_VERSION_wayland-protocols:mx8 ?= "1.20.imx"
374 376
375# Use i.MX libdrm Version 377# Use i.MX libdrm Version
376PREFERRED_VERSION_libdrm_mx6 ?= "2.4.102.imx" 378PREFERRED_VERSION_libdrm:mx6 ?= "2.4.102.imx"
377PREFERRED_VERSION_libdrm_mx7 ?= "2.4.102.imx" 379PREFERRED_VERSION_libdrm:mx7 ?= "2.4.102.imx"
378PREFERRED_VERSION_libdrm_mx8 ?= "2.4.102.imx" 380PREFERRED_VERSION_libdrm:mx8 ?= "2.4.102.imx"
379 381
380# Use i.MX optee Version 382# Use i.MX optee Version
381PREFERRED_VERSION_optee-os_mx8 ?= "3.10.0.imx" 383PREFERRED_VERSION_optee-os:mx8 ?= "3.10.0.imx"
382PREFERRED_VERSION_optee-client_mx8 ?= "3.10.0.imx" 384PREFERRED_VERSION_optee-client:mx8 ?= "3.10.0.imx"
383PREFERRED_VERSION_optee-test_mx8 ?= "3.10.0.imx" 385PREFERRED_VERSION_optee-test:mx8 ?= "3.10.0.imx"
384 386
385#Use i.MX opencv Version for mx8 387#Use i.MX opencv Version for mx8
386PREFERRED_VERSION_opencv_mx8 ?= "4.5.2.imx" 388PREFERRED_VERSION_opencv:mx8 ?= "4.5.2.imx"
387 389
388# Handle default kernel 390# Handle default kernel
389IMX_DEFAULT_KERNEL = "linux-fslc-imx" 391IMX_DEFAULT_KERNEL = "linux-fslc-imx"
390IMX_DEFAULT_KERNEL_mxs = "linux-fslc" 392IMX_DEFAULT_KERNEL:mxs = "linux-fslc"
391IMX_DEFAULT_KERNEL_mx5 = "linux-fslc" 393IMX_DEFAULT_KERNEL:mx5 = "linux-fslc"
392IMX_DEFAULT_KERNEL_mx6 = "linux-fslc-imx" 394IMX_DEFAULT_KERNEL:mx6 = "linux-fslc-imx"
393IMX_DEFAULT_KERNEL_mx7 = "linux-fslc-imx" 395IMX_DEFAULT_KERNEL:mx7 = "linux-fslc-imx"
394IMX_DEFAULT_KERNEL_mx8 = "linux-fslc-imx" 396IMX_DEFAULT_KERNEL:mx8 = "linux-fslc-imx"
395IMX_DEFAULT_KERNEL_mx7ulp = "linux-fslc-imx" 397IMX_DEFAULT_KERNEL:mx7ulp = "linux-fslc-imx"
396IMX_DEFAULT_KERNEL_mx6sll = "linux-fslc-imx" 398IMX_DEFAULT_KERNEL:mx6sll = "linux-fslc-imx"
397IMX_DEFAULT_KERNEL_mx6ul = "linux-fslc-imx" 399IMX_DEFAULT_KERNEL:mx6ul = "linux-fslc-imx"
398IMX_DEFAULT_KERNEL_mx6ull = "linux-fslc-imx" 400IMX_DEFAULT_KERNEL:mx6ull = "linux-fslc-imx"
399IMX_DEFAULT_KERNEL_use-mainline-bsp = "linux-fslc" 401IMX_DEFAULT_KERNEL:use-mainline-bsp = "linux-fslc"
400 402
401PREFERRED_PROVIDER_virtual/kernel ??= "${IMX_DEFAULT_KERNEL}" 403PREFERRED_PROVIDER_virtual/kernel ??= "${IMX_DEFAULT_KERNEL}"
402 404
403SOC_DEFAULT_IMAGE_FSTYPES = "wic.bmap wic.gz" 405SOC_DEFAULT_IMAGE_FSTYPES = "wic.bmap wic.gz"
404SOC_DEFAULT_IMAGE_FSTYPES_mxs = "uboot-mxsboot-sdcard wic.bmap wic.gz" 406SOC_DEFAULT_IMAGE_FSTYPES:mxs = "uboot-mxsboot-sdcard wic.bmap wic.gz"
405 407
406# Do not update fstab file when using wic images 408# Do not update fstab file when using wic images
407WIC_CREATE_EXTRA_ARGS ?= "--no-fstab-update" 409WIC_CREATE_EXTRA_ARGS ?= "--no-fstab-update"
408 410
409OPTEE_BOOT_IMAGE = "uTee" 411OPTEE_BIN_EXT ??= ""
410OPTEE_BOOT_IMAGE_aarch64 = "" 412OPTEE_BOOT_IMAGE = "tee.bin uTee-${OPTEE_BIN_EXT}"
413OPTEE_BOOT_IMAGE:aarch64 = "tee.bin"
411 414
412IMAGE_FSTYPES ?= "${SOC_DEFAULT_IMAGE_FSTYPES}" 415IMAGE_FSTYPES ?= "${SOC_DEFAULT_IMAGE_FSTYPES}"
413 416
@@ -419,7 +422,7 @@ IMAGE_BOOT_FILES ?= " \
419 422
420### wic default support 423### wic default support
421OPTEE_WKS_FILE_DEPENDS = "optee-os" 424OPTEE_WKS_FILE_DEPENDS = "optee-os"
422OPTEE_WKS_FILE_DEPENDS_aarch64 = "" 425OPTEE_WKS_FILE_DEPENDS:aarch64 = ""
423 426
424WKS_FILE_DEPENDS ?= " \ 427WKS_FILE_DEPENDS ?= " \
425 virtual/bootloader \ 428 virtual/bootloader \
@@ -429,8 +432,8 @@ WKS_FILE_DEPENDS ?= " \
429 ${@bb.utils.contains('MACHINE_FEATURES', 'optee', '${OPTEE_WKS_FILE_DEPENDS}', '', d)} \ 432 ${@bb.utils.contains('MACHINE_FEATURES', 'optee', '${OPTEE_WKS_FILE_DEPENDS}', '', d)} \
430" 433"
431 434
432WKS_FILE_DEPENDS_append_mx8 = " imx-boot" 435WKS_FILE_DEPENDS:append:mx8 = " imx-boot"
433WKS_FILE_DEPENDS_append_mx8m = " imx-boot" 436WKS_FILE_DEPENDS:append:mx8m = " imx-boot"
434 437
435# We need to restrict the append so we don't add this for other i.MX SoC's. 438# We need to restrict the append so we don't add this for other i.MX SoC's.
436# Derivatives that are not yet adopted the usage of boot container provided 439# Derivatives that are not yet adopted the usage of boot container provided
@@ -444,15 +447,15 @@ WKS_FILE_DEPENDS_append_mx8m = " imx-boot"
444# deployment task extesion execution defined in imx-boot-container class. 447# deployment task extesion execution defined in imx-boot-container class.
445# For NXP BSP: rename is done in 'imx-boot' recipe at the execution of compile 448# For NXP BSP: rename is done in 'imx-boot' recipe at the execution of compile
446# task. 449# task.
447WKS_FILE_DEPENDS_append_use-mainline-bsp_aarch64 = " \ 450WKS_FILE_DEPENDS:append:use-mainline-bsp:aarch64 = " \
448 ${@oe.utils.ifelse(d.getVar('UBOOT_PROVIDES_BOOT_CONTAINER') == '0', 'imx-boot', '')} \ 451 ${@oe.utils.ifelse(d.getVar('UBOOT_PROVIDES_BOOT_CONTAINER') == '0', 'imx-boot', '')} \
449" 452"
450 453
451SOC_DEFAULT_WKS_FILE ?= "imx-uboot-bootpart.wks.in" 454SOC_DEFAULT_WKS_FILE ?= "imx-uboot-bootpart.wks.in"
452SOC_DEFAULT_WKS_FILE_mx8m ?= "imx-imx-boot-bootpart.wks.in" 455SOC_DEFAULT_WKS_FILE:mx8m ?= "imx-imx-boot-bootpart.wks.in"
453 456
454SOC_DEFAULT_WKS_FILE_mx8 ?= "imx-imx-boot-bootpart.wks.in" 457SOC_DEFAULT_WKS_FILE:mx8 ?= "imx-imx-boot-bootpart.wks.in"
455SOC_DEFAULT_WKS_FILE_mxs ?= "imx-uboot-mxs-bootpart.wks.in" 458SOC_DEFAULT_WKS_FILE:mxs ?= "imx-uboot-mxs-bootpart.wks.in"
456 459
457# Boot container built as a part of mainline U-Boot uses different WKS 460# Boot container built as a part of mainline U-Boot uses different WKS
458# file as the entire mx8m series, as U-Boot versions later than 2021.04 are 461# file as the entire mx8m series, as U-Boot versions later than 2021.04 are
@@ -462,19 +465,19 @@ SOC_DEFAULT_WKS_FILE_mxs ?= "imx-uboot-mxs-bootpart.wks.in"
462# replacement of imx-boot from NXP. 465# replacement of imx-boot from NXP.
463# Creation of those binary files is controlled by UBOOT_PROVIDES_BOOT_CONTAINER 466# Creation of those binary files is controlled by UBOOT_PROVIDES_BOOT_CONTAINER
464# variable defined above. 467# variable defined above.
465SOC_DEFAULT_WKS_FILE_imx-boot-container ?= "imx-boot-container-bootpart.wks.in" 468SOC_DEFAULT_WKS_FILE:imx-boot-container ?= "imx-boot-container-bootpart.wks.in"
466 469
467WKS_FILE ?= "${SOC_DEFAULT_WKS_FILE}" 470WKS_FILE ?= "${SOC_DEFAULT_WKS_FILE}"
468 471
469SERIAL_CONSOLES = "115200;ttymxc0" 472SERIAL_CONSOLES = "115200;ttymxc0"
470SERIAL_CONSOLES_mxs = "115200;ttyAMA0" 473SERIAL_CONSOLES:mxs = "115200;ttyAMA0"
471 474
472KERNEL_IMAGETYPE = "zImage" 475KERNEL_IMAGETYPE = "zImage"
473KERNEL_IMAGETYPE_aarch64 = "Image" 476KERNEL_IMAGETYPE:aarch64 = "Image"
474 477
475MACHINE_FEATURES = "usbgadget usbhost vfat alsa touchscreen" 478MACHINE_FEATURES = "usbgadget usbhost vfat alsa touchscreen"
476 479
477# Add the ability to specify _imx machines 480# Add the ability to specify imx machines
478MACHINEOVERRIDES =. "imx:" 481MACHINEOVERRIDES =. "imx:"
479 482
480HOSTTOOLS_NONFATAL_append_mx8 = " sha384sum" 483HOSTTOOLS_NONFATAL:append:mx8 = " sha384sum"
diff --git a/conf/machine/include/imx8dxl-evk.inc b/conf/machine/include/imx8dxl-evk.inc
index 2868b4d6..a0006399 100644
--- a/conf/machine/include/imx8dxl-evk.inc
+++ b/conf/machine/include/imx8dxl-evk.inc
@@ -1,15 +1,15 @@
1MACHINEOVERRIDES =. "mx8:mx8x:mx8dxl:" 1MACHINEOVERRIDES =. "mx8:mx8x:mx8dxl:"
2 2
3require conf/machine/include/imx-base.inc 3require conf/machine/include/imx-base.inc
4require conf/machine/include/tune-cortexa35.inc 4require conf/machine/include/arm/armv8a/tune-cortexa35.inc
5 5
6IMX_DEFAULT_BSP = "nxp" 6IMX_DEFAULT_BSP = "nxp"
7 7
8MACHINE_FEATURES += "pci bcm43455 bcm4356" 8MACHINE_FEATURES += "pci bcm43455 bcm4356"
9MACHINE_FEATURES_append_use-nxp-bsp = " bcm4359" 9MACHINE_FEATURES:append:use-nxp-bsp = " bcm4359"
10 10
11# Don't include kernels in standard images 11# Don't include kernels in standard images
12RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" 12RDEPENDS:${KERNEL_PACKAGE_NAME}-base = ""
13 13
14LOADADDR = "" 14LOADADDR = ""
15 15
@@ -23,7 +23,7 @@ USE_VT = "0"
23KERNEL_DEVICETREE = " \ 23KERNEL_DEVICETREE = " \
24 freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \ 24 freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
25" 25"
26KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 26KERNEL_DEVICETREE:append:use-nxp-bsp = " \
27 freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \ 27 freescale/${KERNEL_DEVICETREE_BASENAME}-rpmsg.dtb \
28" 28"
29 29
diff --git a/conf/machine/include/imx8mm-evk.inc b/conf/machine/include/imx8mm-evk.inc
index f458c56d..85419a45 100644
--- a/conf/machine/include/imx8mm-evk.inc
+++ b/conf/machine/include/imx8mm-evk.inc
@@ -1,29 +1,34 @@
1MACHINEOVERRIDES =. "imx-boot-container:mx8:mx8m:mx8mm:" 1MACHINEOVERRIDES =. "imx-boot-container:mx8:mx8m:mx8mm:"
2 2
3require conf/machine/include/imx-base.inc 3require conf/machine/include/imx-base.inc
4require conf/machine/include/tune-cortexa53.inc 4require conf/machine/include/arm/armv8a/tune-cortexa53.inc
5
6# Mainline BSP defaults to "generic" cortexa53 configuration,
7# adjust it here to include crypto extension which enables
8# inline NEON and FPU code generation
9DEFAULTTUNE:use-mainline-bsp = "cortexa53-crypto"
5 10
6MACHINE_FEATURES += "pci wifi bluetooth bcm43455 bcm4356" 11MACHINE_FEATURES += "pci wifi bluetooth bcm43455 bcm4356"
7 12
8# NXP BSP can consume proprietary jailhouse, BCM4359, and QCA9377 driver and firmware 13# NXP BSP can consume proprietary jailhouse and BCM4359 firmware
9# Since the firmware is not available publicly, and rather distributed 14# Since the firmware is not available publicly, and rather distributed
10# under "Proprietary" license - we opt-out from using it in all BSPs 15# under "Proprietary" license - we opt-out from using it in all BSPs
11# and pin it to NXP BSP only 16# and pin it to NXP BSP only
12# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have 17# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have
13# a full support for it yet. 18# a full support for it yet.
14MACHINE_FEATURES_append_use-nxp-bsp = " optee jailhouse bcm4359 qca9377" 19MACHINE_FEATURES:append:use-nxp-bsp = " optee jailhouse bcm4359"
15 20
16KERNEL_DEVICETREE = " \ 21KERNEL_DEVICETREE = " \
17 freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \ 22 freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
18" 23"
19KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 24KERNEL_DEVICETREE:append:use-nxp-bsp = " \
20 freescale/${KERNEL_DEVICETREE_BASENAME}-pcie-ep.dtb \ 25 freescale/${KERNEL_DEVICETREE_BASENAME}-pcie-ep.dtb \
21 freescale/${KERNEL_DEVICETREE_BASENAME}-rm67191.dtb \ 26 freescale/${KERNEL_DEVICETREE_BASENAME}-rm67191.dtb \
22" 27"
23UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb" 28UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb"
24 29
25IMX_DEFAULT_BOOTLOADER_use-nxp-bsp = "u-boot-imx" 30IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
26IMX_DEFAULT_BOOTLOADER_use-mainline-bsp = "u-boot-fslc" 31IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
27 32
28UBOOT_SUFFIX = "bin" 33UBOOT_SUFFIX = "bin"
29 34
@@ -51,18 +56,18 @@ SERIAL_CONSOLES = "115200;ttymxc1"
51# to be used to define the boot process. 56# to be used to define the boot process.
52# We opt-in for Syslinux, since it is designated as a preferred 57# We opt-in for Syslinux, since it is designated as a preferred
53# distro boot mode according to the U-Boot documentation. 58# distro boot mode according to the U-Boot documentation.
54UBOOT_EXTLINUX_use-mainline-bsp = "1" 59UBOOT_EXTLINUX:use-mainline-bsp = "1"
55UBOOT_EXTLINUX_LABELS_use-mainline-bsp = "default" 60UBOOT_EXTLINUX_LABELS:use-mainline-bsp = "default"
56UBOOT_EXTLINUX_DEFAULT_LABEL_use-mainline-bsp = "i.MX8M Mini EVK" 61UBOOT_EXTLINUX_DEFAULT_LABEL:use-mainline-bsp = "i.MX8M Mini EVK"
57 62
58UBOOT_EXTLINUX_MENU_DESCRIPTION_default_use-mainline-bsp = "i.MX8M Mini EVK" 63UBOOT_EXTLINUX_MENU_DESCRIPTION:default:use-mainline-bsp = "i.MX8M Mini EVK"
59UBOOT_EXTLINUX_FDT_default_use-mainline-bsp = "../${KERNEL_DEVICETREE_BASENAME}.dtb" 64UBOOT_EXTLINUX_FDT:default:use-mainline-bsp = "../${KERNEL_DEVICETREE_BASENAME}.dtb"
60UBOOT_EXTLINUX_CONSOLE_default_use-mainline-bsp = "console=${console}" 65UBOOT_EXTLINUX_CONSOLE:default:use-mainline-bsp = "console=${console}"
61UBOOT_EXTLINUX_ROOT_default_use-mainline-bsp = "root=/dev/mmcblk1p2" 66UBOOT_EXTLINUX_ROOT:default:use-mainline-bsp = "root=/dev/mmcblk1p2"
62 67
63# Add extlinux.conf to the lis of files, which are deployed onto the 68# Add extlinux.conf to the lis of files, which are deployed onto the
64# boot partition 69# boot partition
65IMAGE_BOOT_FILES_append_use-mainline-bsp = " extlinux.conf;extlinux/extlinux.conf" 70IMAGE_BOOT_FILES:append:use-mainline-bsp = " extlinux.conf;extlinux/extlinux.conf"
66 71
67LOADADDR = "" 72LOADADDR = ""
68UBOOT_SUFFIX = "bin" 73UBOOT_SUFFIX = "bin"
@@ -73,4 +78,4 @@ OPTEE_BIN_EXT = "8mm"
73TEE_LOAD_ADDR = "0xbe000000" 78TEE_LOAD_ADDR = "0xbe000000"
74 79
75# Add additional firmware 80# Add additional firmware
76MACHINE_FIRMWARE_append = " linux-firmware-ath10k" 81MACHINE_FIRMWARE:append = " linux-firmware-ath10k"
diff --git a/conf/machine/include/imx8mn-evk.inc b/conf/machine/include/imx8mn-evk.inc
index a0e39857..4f897349 100644
--- a/conf/machine/include/imx8mn-evk.inc
+++ b/conf/machine/include/imx8mn-evk.inc
@@ -1,19 +1,24 @@
1MACHINEOVERRIDES =. "imx-boot-container:mx8:mx8m:mx8mn:" 1MACHINEOVERRIDES =. "imx-boot-container:mx8:mx8m:mx8mn:"
2 2
3require conf/machine/include/imx-base.inc 3require conf/machine/include/imx-base.inc
4require conf/machine/include/tune-cortexa53.inc 4require conf/machine/include/arm/armv8a/tune-cortexa53.inc
5
6# Mainline BSP defaults to "generic" cortexa53 configuration,
7# adjust it here to include crypto extension which enables
8# inline NEON and FPU code generation
9DEFAULTTUNE:use-mainline-bsp = "cortexa53-crypto"
5 10
6MACHINE_FEATURES += "wifi bluetooth bcm43455 bcm4356" 11MACHINE_FEATURES += "wifi bluetooth bcm43455 bcm4356"
7 12
8# NXP BSP can consume proprietary jailhouse and Broadcom drivers 13# NXP BSP can consume proprietary jailhouse and Broadcom drivers
9# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have 14# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have
10# a full support for it yet. 15# a full support for it yet.
11MACHINE_FEATURES_append_use-nxp-bsp = " optee jailhouse bcm4359" 16MACHINE_FEATURES:append:use-nxp-bsp = " optee jailhouse bcm4359"
12 17
13KERNEL_DEVICETREE = " \ 18KERNEL_DEVICETREE = " \
14 freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \ 19 freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
15" 20"
16KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 21KERNEL_DEVICETREE:append:use-nxp-bsp = " \
17 freescale/${KERNEL_DEVICETREE_BASENAME}-ak5558.dtb \ 22 freescale/${KERNEL_DEVICETREE_BASENAME}-ak5558.dtb \
18 freescale/${KERNEL_DEVICETREE_BASENAME}-inmate.dtb \ 23 freescale/${KERNEL_DEVICETREE_BASENAME}-inmate.dtb \
19 freescale/${KERNEL_DEVICETREE_BASENAME}-rm67191.dtb \ 24 freescale/${KERNEL_DEVICETREE_BASENAME}-rm67191.dtb \
@@ -22,8 +27,8 @@ KERNEL_DEVICETREE_append_use-nxp-bsp = " \
22" 27"
23UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb" 28UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb"
24 29
25IMX_DEFAULT_BOOTLOADER_use-nxp-bsp = "u-boot-imx" 30IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
26IMX_DEFAULT_BOOTLOADER_use-mainline-bsp = "u-boot-fslc" 31IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
27 32
28UBOOT_SUFFIX = "bin" 33UBOOT_SUFFIX = "bin"
29 34
@@ -52,18 +57,18 @@ SERIAL_CONSOLES = "115200;ttymxc1"
52# to be used to define the boot process. 57# to be used to define the boot process.
53# We opt-in for Syslinux, since it is designated as a preferred 58# We opt-in for Syslinux, since it is designated as a preferred
54# distro boot mode according to the U-Boot documentation. 59# distro boot mode according to the U-Boot documentation.
55UBOOT_EXTLINUX_use-mainline-bsp = "1" 60UBOOT_EXTLINUX:use-mainline-bsp = "1"
56UBOOT_EXTLINUX_LABELS_use-mainline-bsp = "default" 61UBOOT_EXTLINUX_LABELS:use-mainline-bsp = "default"
57UBOOT_EXTLINUX_DEFAULT_LABEL_use-mainline-bsp = "i.MX8M Nano EVK" 62UBOOT_EXTLINUX_DEFAULT_LABEL:use-mainline-bsp = "i.MX8M Nano EVK"
58 63
59UBOOT_EXTLINUX_MENU_DESCRIPTION_default_use-mainline-bsp = "i.MX8M Nano EVK" 64UBOOT_EXTLINUX_MENU_DESCRIPTION:default:use-mainline-bsp = "i.MX8M Nano EVK"
60UBOOT_EXTLINUX_FDT_default_use-mainline-bsp = "../${KERNEL_DEVICETREE_BASENAME}.dtb" 65UBOOT_EXTLINUX_FDT:default:use-mainline-bsp = "../${KERNEL_DEVICETREE_BASENAME}.dtb"
61UBOOT_EXTLINUX_CONSOLE_default_use-mainline-bsp = "console=${console}" 66UBOOT_EXTLINUX_CONSOLE:default:use-mainline-bsp = "console=${console}"
62UBOOT_EXTLINUX_ROOT_default_use-mainline-bsp = "root=/dev/mmcblk1p2" 67UBOOT_EXTLINUX_ROOT:default:use-mainline-bsp = "root=/dev/mmcblk1p2"
63 68
64# Add extlinux.conf to the lis of files, which are deployed onto the 69# Add extlinux.conf to the lis of files, which are deployed onto the
65# boot partition 70# boot partition
66IMAGE_BOOT_FILES_append_use-mainline-bsp = " extlinux.conf;extlinux/extlinux.conf" 71IMAGE_BOOT_FILES:append:use-mainline-bsp = " extlinux.conf;extlinux/extlinux.conf"
67 72
68BOOT_SPACE = "65536" 73BOOT_SPACE = "65536"
69LOADADDR = "" 74LOADADDR = ""
@@ -79,4 +84,4 @@ OPTEE_BIN_EXT = "8mn"
79TEE_LOAD_ADDR = "0x56000000" 84TEE_LOAD_ADDR = "0x56000000"
80 85
81# Add additional firmware 86# Add additional firmware
82MACHINE_FIRMWARE_append = " linux-firmware-ath10k" 87MACHINE_FIRMWARE:append = " linux-firmware-ath10k"
diff --git a/conf/machine/include/imx8mp-evk.inc b/conf/machine/include/imx8mp-evk.inc
index d070831f..7635d08c 100644
--- a/conf/machine/include/imx8mp-evk.inc
+++ b/conf/machine/include/imx8mp-evk.inc
@@ -1,14 +1,19 @@
1MACHINEOVERRIDES =. "imx-boot-container:mx8:mx8m:mx8mp:" 1MACHINEOVERRIDES =. "imx-boot-container:mx8:mx8m:mx8mp:"
2 2
3require conf/machine/include/imx-base.inc 3require conf/machine/include/imx-base.inc
4require conf/machine/include/tune-cortexa53.inc 4require conf/machine/include/arm/armv8a/tune-cortexa53.inc
5
6# Mainline BSP defaults to "generic" cortexa53 configuration,
7# adjust it here to include crypto extension which enables
8# inline NEON and FPU code generation
9DEFAULTTUNE:use-mainline-bsp = "cortexa53-crypto"
5 10
6MACHINE_FEATURES += "pci wifi bluetooth" 11MACHINE_FEATURES += "pci wifi bluetooth"
7 12
8# NXP BSP can consume proprietary jailhouse and Marvell drivers 13# NXP BSP can consume proprietary jailhouse and Marvell drivers
9# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have 14# OP-TEE is also applicable to NXP BSP, mainline BSP seems not to have
10# a full support for it yet. 15# a full support for it yet.
11MACHINE_FEATURES_append_use-nxp-bsp = " optee jailhouse mrvl8997" 16MACHINE_FEATURES:append:use-nxp-bsp = " optee jailhouse mrvl8997"
12 17
13# Mainline kernel contains only one DTB file for 18# Mainline kernel contains only one DTB file for
14# imx8mpevk machine 19# imx8mpevk machine
@@ -18,8 +23,8 @@ KERNEL_DEVICETREE = " \
18 23
19UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb" 24UBOOT_DTB_NAME = "${KERNEL_DEVICETREE_BASENAME}.dtb"
20 25
21IMX_DEFAULT_BOOTLOADER_use-nxp-bsp = "u-boot-imx" 26IMX_DEFAULT_BOOTLOADER:use-nxp-bsp = "u-boot-imx"
22IMX_DEFAULT_BOOTLOADER_use-mainline-bsp = "u-boot-fslc" 27IMX_DEFAULT_BOOTLOADER:use-mainline-bsp = "u-boot-fslc"
23 28
24UBOOT_SUFFIX = "bin" 29UBOOT_SUFFIX = "bin"
25 30
@@ -50,18 +55,18 @@ SERIAL_CONSOLES = "115200;ttymxc1"
50# to be used to define the boot process. 55# to be used to define the boot process.
51# We opt-in for Syslinux, since it is designated as a preferred 56# We opt-in for Syslinux, since it is designated as a preferred
52# distro boot mode according to the U-Boot documentation. 57# distro boot mode according to the U-Boot documentation.
53UBOOT_EXTLINUX_use-mainline-bsp = "1" 58UBOOT_EXTLINUX:use-mainline-bsp = "1"
54UBOOT_EXTLINUX_LABELS_use-mainline-bsp = "default" 59UBOOT_EXTLINUX_LABELS:use-mainline-bsp = "default"
55UBOOT_EXTLINUX_DEFAULT_LABEL_use-mainline-bsp = "i.MX8M Plus EVK" 60UBOOT_EXTLINUX_DEFAULT_LABEL:use-mainline-bsp = "i.MX8M Plus EVK"
56 61
57UBOOT_EXTLINUX_MENU_DESCRIPTION_default_use-mainline-bsp = "i.MX8M Plus EVK" 62UBOOT_EXTLINUX_MENU_DESCRIPTION:default:use-mainline-bsp = "i.MX8M Plus EVK"
58UBOOT_EXTLINUX_FDT_default_use-mainline-bsp = "../${KERNEL_DEVICETREE_BASENAME}.dtb" 63UBOOT_EXTLINUX_FDT:default:use-mainline-bsp = "../${KERNEL_DEVICETREE_BASENAME}.dtb"
59UBOOT_EXTLINUX_CONSOLE_default_use-mainline-bsp = "console=${console}" 64UBOOT_EXTLINUX_CONSOLE:default:use-mainline-bsp = "console=${console}"
60UBOOT_EXTLINUX_ROOT_default_use-mainline-bsp = "root=/dev/mmcblk1p2" 65UBOOT_EXTLINUX_ROOT:default:use-mainline-bsp = "root=/dev/mmcblk1p2"
61 66
62# Add extlinux.conf to the lis of files, which are deployed onto the 67# Add extlinux.conf to the lis of files, which are deployed onto the
63# boot partition 68# boot partition
64IMAGE_BOOT_FILES_append_use-mainline-bsp = " extlinux.conf;extlinux/extlinux.conf" 69IMAGE_BOOT_FILES:append:use-mainline-bsp = " extlinux.conf;extlinux/extlinux.conf"
65 70
66LOADADDR = "" 71LOADADDR = ""
67UBOOT_SUFFIX = "bin" 72UBOOT_SUFFIX = "bin"
@@ -72,4 +77,4 @@ OPTEE_BIN_EXT = "8mp"
72TEE_LOAD_ADDR = "0x56000000" 77TEE_LOAD_ADDR = "0x56000000"
73 78
74# Add additional firmware 79# Add additional firmware
75MACHINE_FIRMWARE_append = " linux-firmware-ath10k" 80MACHINE_FIRMWARE:append = " linux-firmware-ath10k"
diff --git a/conf/machine/include/imx8x-mek.inc b/conf/machine/include/imx8x-mek.inc
index 55a28c87..e6f4f058 100644
--- a/conf/machine/include/imx8x-mek.inc
+++ b/conf/machine/include/imx8x-mek.inc
@@ -1,15 +1,15 @@
1MACHINEOVERRIDES =. "mx8:mx8x:" 1MACHINEOVERRIDES =. "mx8:mx8x:"
2 2
3require conf/machine/include/imx-base.inc 3require conf/machine/include/imx-base.inc
4require conf/machine/include/tune-cortexa35.inc 4require conf/machine/include/arm/armv8a/tune-cortexa35.inc
5 5
6IMX_DEFAULT_BSP = "nxp" 6IMX_DEFAULT_BSP = "nxp"
7 7
8MACHINE_FEATURES += "pci optee bcm43455 bcm4356" 8MACHINE_FEATURES += "pci optee bcm43455 bcm4356"
9MACHINE_FEATURES_append_use-nxp-bsp = " bcm4359" 9MACHINE_FEATURES:append:use-nxp-bsp = " bcm4359"
10 10
11# Don't include kernels in standard images 11# Don't include kernels in standard images
12RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" 12RDEPENDS:${KERNEL_PACKAGE_NAME}-base = ""
13 13
14LOADADDR = "" 14LOADADDR = ""
15 15
@@ -23,7 +23,7 @@ USE_VT = "0"
23KERNEL_DEVICETREE = " \ 23KERNEL_DEVICETREE = " \
24 freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \ 24 freescale/${KERNEL_DEVICETREE_BASENAME}.dtb \
25" 25"
26KERNEL_DEVICETREE_append_use-nxp-bsp = " \ 26KERNEL_DEVICETREE:append:use-nxp-bsp = " \
27 freescale/${KERNEL_DEVICETREE_BASENAME}-dsi-rm67191.dtb \ 27 freescale/${KERNEL_DEVICETREE_BASENAME}-dsi-rm67191.dtb \
28 freescale/${KERNEL_DEVICETREE_BASENAME}-dsi-rm67191-rpmsg.dtb \ 28 freescale/${KERNEL_DEVICETREE_BASENAME}-dsi-rm67191-rpmsg.dtb \
29 freescale/${KERNEL_DEVICETREE_BASENAME}-dsp.dtb \ 29 freescale/${KERNEL_DEVICETREE_BASENAME}-dsp.dtb \
@@ -71,4 +71,4 @@ IMXBOOT_TARGETS = \
71BOARD_TYPE = "mek" 71BOARD_TYPE = "mek"
72 72
73# Add additional firmware 73# Add additional firmware
74MACHINE_FIRMWARE_append = " linux-firmware-ath10k" 74MACHINE_FIRMWARE:append = " linux-firmware-ath10k"
diff --git a/conf/machine/include/qoriq-base.inc b/conf/machine/include/qoriq-base.inc
index 0a42160f..0d8978e3 100644
--- a/conf/machine/include/qoriq-base.inc
+++ b/conf/machine/include/qoriq-base.inc
@@ -9,8 +9,8 @@ PREFERRED_PROVIDER_nativesdk-u-boot-mkimage ??= "nativesdk-u-boot-tools"
9PREFERRED_VERSION_testfloat = "2a" 9PREFERRED_VERSION_testfloat = "2a"
10 10
11SOC_DEFAULT_IMAGE_FSTYPES = "tar.gz" 11SOC_DEFAULT_IMAGE_FSTYPES = "tar.gz"
12SOC_DEFAULT_IMAGE_FSTYPES_append_ls1043a = " wic.bz2" 12SOC_DEFAULT_IMAGE_FSTYPES:append:ls1043a = " wic.bz2"
13SOC_DEFAULT_IMAGE_FSTYPES_append_ls1046a = " wic.bz2" 13SOC_DEFAULT_IMAGE_FSTYPES:append:ls1046a = " wic.bz2"
14IMAGE_FSTYPES ?= "${SOC_DEFAULT_IMAGE_FSTYPES}" 14IMAGE_FSTYPES ?= "${SOC_DEFAULT_IMAGE_FSTYPES}"
15 15
16# Composite Image Layout (in KBytes) 16# Composite Image Layout (in KBytes)
@@ -31,8 +31,8 @@ IMAGE_BOOT_FILES ?= " \
31" 31"
32 32
33SOC_DEFAULT_WKS_FILE ?= "" 33SOC_DEFAULT_WKS_FILE ?= ""
34SOC_DEFAULT_WKS_FILE_ls1043a ?= "ls104x-uboot-bootpart.wks.in" 34SOC_DEFAULT_WKS_FILE:ls1043a ?= "ls104x-uboot-bootpart.wks.in"
35SOC_DEFAULT_WKS_FILE_ls1046a ?= "ls104x-uboot-bootpart.wks.in" 35SOC_DEFAULT_WKS_FILE:ls1046a ?= "ls104x-uboot-bootpart.wks.in"
36 36
37WKS_FILE ?= "${SOC_DEFAULT_WKS_FILE}" 37WKS_FILE ?= "${SOC_DEFAULT_WKS_FILE}"
38 38
@@ -54,7 +54,7 @@ MACHINEOVERRIDES =. "use-${QORIQ_DEFAULT_BSP}-bsp:"
54 54
55# Sub-architecture support 55# Sub-architecture support
56MACHINE_SOCARCH_SUFFIX ?= "" 56MACHINE_SOCARCH_SUFFIX ?= ""
57MACHINE_SOCARCH_SUFFIX_qoriq = "-qoriq" 57MACHINE_SOCARCH_SUFFIX:qoriq = "-qoriq"
58 58
59MACHINE_ARCH_FILTER = "virtual/kernel" 59MACHINE_ARCH_FILTER = "virtual/kernel"
60 60
diff --git a/conf/machine/include/utilities.inc b/conf/machine/include/utilities.inc
index f11b588b..34ce7abc 100644
--- a/conf/machine/include/utilities.inc
+++ b/conf/machine/include/utilities.inc
@@ -23,6 +23,6 @@ def make_dtb_boot_files(d):
23 23
24def get_spl_binary(d): 24def get_spl_binary(d):
25 imx_default_bootloader = d.get('IMX_DEFAULT_BOOTLOADER') 25 imx_default_bootloader = d.get('IMX_DEFAULT_BOOTLOADER')
26 spl_binary = d.getVar("SPL_BINARY_pn-%s" % imx_default_bootloader) 26 spl_binary = d.getVar("SPL_BINARY:pn-%s" % imx_default_bootloader)
27 27
28 return spl_binary or "" 28 return spl_binary or ""
diff --git a/conf/machine/ls1021atwr.conf b/conf/machine/ls1021atwr.conf
index e4bfb79c..dff6767c 100644
--- a/conf/machine/ls1021atwr.conf
+++ b/conf/machine/ls1021atwr.conf
@@ -8,7 +8,7 @@
8MACHINEOVERRIDES =. "ls102xa:" 8MACHINEOVERRIDES =. "ls102xa:"
9 9
10require conf/machine/include/qoriq-arm.inc 10require conf/machine/include/qoriq-arm.inc
11require conf/machine/include/tune-cortexa7.inc 11require conf/machine/include/arm/armv7a/tune-cortexa7.inc
12 12
13MACHINE_FEATURES += "optee" 13MACHINE_FEATURES += "optee"
14 14
diff --git a/conf/machine/ls1028ardb.conf b/conf/machine/ls1028ardb.conf
index 63f3802f..d70a5a61 100644
--- a/conf/machine/ls1028ardb.conf
+++ b/conf/machine/ls1028ardb.conf
@@ -22,7 +22,7 @@ UBOOT_CONFIG[tfa-secure-boot] = "ls1028ardb_tfa_SECURE_BOOT_defconfig"
22UBOOT_CONFIG[tfa] = "ls1028ardb_tfa_defconfig" 22UBOOT_CONFIG[tfa] = "ls1028ardb_tfa_defconfig"
23 23
24KERNEL_DEVICETREE ?= "freescale/fsl-ls1028a-rdb.dtb freescale/fsl-ls1028a-qds.dtb" 24KERNEL_DEVICETREE ?= "freescale/fsl-ls1028a-rdb.dtb freescale/fsl-ls1028a-qds.dtb"
25KERNEL_DEVICETREE_append_use-nxp-bsp = "\ 25KERNEL_DEVICETREE:append:use-nxp-bsp = "\
26 freescale/fsl-ls1028a-rdb-dpdk.dtb \ 26 freescale/fsl-ls1028a-rdb-dpdk.dtb \
27" 27"
28KERNEL_DEFCONFIG ?= "defconfig" 28KERNEL_DEFCONFIG ?= "defconfig"
diff --git a/conf/machine/ls1043ardb.conf b/conf/machine/ls1043ardb.conf
index fa8ab615..4ff3c0ac 100644
--- a/conf/machine/ls1043ardb.conf
+++ b/conf/machine/ls1043ardb.conf
@@ -27,7 +27,7 @@ KERNEL_DEVICETREE ?= "\
27 freescale/fsl-ls1043a-qds.dtb \ 27 freescale/fsl-ls1043a-qds.dtb \
28" 28"
29# usdpaa dtb is used for dpdk. TODO: rename in kernel 29# usdpaa dtb is used for dpdk. TODO: rename in kernel
30KERNEL_DEVICETREE_prepend_use-nxp-bsp = "\ 30KERNEL_DEVICETREE:prepend:use-nxp-bsp = "\
31 freescale/fsl-ls1043a-rdb-sdk.dtb \ 31 freescale/fsl-ls1043a-rdb-sdk.dtb \
32 freescale/fsl-ls1043a-rdb-usdpaa.dtb \ 32 freescale/fsl-ls1043a-rdb-usdpaa.dtb \
33 freescale/fsl-ls1043a-qds-sdk.dtb \ 33 freescale/fsl-ls1043a-qds-sdk.dtb \
diff --git a/conf/machine/ls1046afrwy.conf b/conf/machine/ls1046afrwy.conf
index e6eabc0f..eb3c0bb6 100644
--- a/conf/machine/ls1046afrwy.conf
+++ b/conf/machine/ls1046afrwy.conf
@@ -25,7 +25,7 @@ KERNEL_DEVICETREE ?= "\
25 freescale/fsl-ls1046a-frwy.dtb \ 25 freescale/fsl-ls1046a-frwy.dtb \
26" 26"
27# usdpaa dtb is used for dpdk. TODO: rename in kernel 27# usdpaa dtb is used for dpdk. TODO: rename in kernel
28KERNEL_DEVICETREE_prepend_use-nxp-bsp = "\ 28KERNEL_DEVICETREE:prepend:use-nxp-bsp = "\
29 freescale/fsl-ls1046a-frwy-sdk.dtb \ 29 freescale/fsl-ls1046a-frwy-sdk.dtb \
30 freescale/fsl-ls1046a-frwy-usdpaa.dtb \ 30 freescale/fsl-ls1046a-frwy-usdpaa.dtb \
31" 31"
diff --git a/conf/machine/ls1046ardb.conf b/conf/machine/ls1046ardb.conf
index 97fb1e29..8e815295 100644
--- a/conf/machine/ls1046ardb.conf
+++ b/conf/machine/ls1046ardb.conf
@@ -26,7 +26,7 @@ KERNEL_DEVICETREE ?= "\
26 freescale/fsl-ls1046a-qds.dtb \ 26 freescale/fsl-ls1046a-qds.dtb \
27" 27"
28# usdpaa dtb is used for dpdk. TODO: rename in kernel 28# usdpaa dtb is used for dpdk. TODO: rename in kernel
29KERNEL_DEVICETREE_prepend_use-nxp-bsp = "\ 29KERNEL_DEVICETREE:prepend:use-nxp-bsp = "\
30 freescale/fsl-ls1046a-rdb-sdk.dtb \ 30 freescale/fsl-ls1046a-rdb-sdk.dtb \
31 freescale/fsl-ls1046a-rdb-usdpaa.dtb \ 31 freescale/fsl-ls1046a-rdb-usdpaa.dtb \
32 freescale/fsl-ls1046a-qds-sdk.dtb \ 32 freescale/fsl-ls1046a-qds-sdk.dtb \
diff --git a/dynamic-layers/aglprofilegraphical/recipes-graphics/wayland/weston-init.bbappend b/dynamic-layers/aglprofilegraphical/recipes-graphics/wayland/weston-init.bbappend
index 10b66c0e..b7bf3298 100644
--- a/dynamic-layers/aglprofilegraphical/recipes-graphics/wayland/weston-init.bbappend
+++ b/dynamic-layers/aglprofilegraphical/recipes-graphics/wayland/weston-init.bbappend
@@ -1,3 +1,3 @@
1do_install_append() { 1do_install:append() {
2 rm -f ${D}${sysconfdir}/xdg/weston/weston.ini 2 rm -f ${D}${sysconfdir}/xdg/weston/weston.ini
3} 3}
diff --git a/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-imx.inc b/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-imx.inc
index cdd0f08f..7d8065f9 100644
--- a/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-imx.inc
+++ b/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-imx.inc
@@ -1,4 +1,4 @@
1DEPENDS_append_imxvpu = " imx-vpuwrap" 1DEPENDS:append:imxvpu = " imx-vpuwrap"
2 2
3# Additional imx code and patches are included in the chromium-imx git repository. 3# Additional imx code and patches are included in the chromium-imx git repository.
4# The code below fetches this repository, copies the extra source over to the main 4# The code below fetches this repository, copies the extra source over to the main
@@ -26,7 +26,7 @@ do_patch[prefuncs] =+ "add_chromium_imx_patches"
26# * Lost context problems are not known to happen with Vivante GPUs, 26# * Lost context problems are not known to happen with Vivante GPUs,
27# so it is safe to use ignore-lost-context 27# so it is safe to use ignore-lost-context
28# * Proprietary codecs need to be enabled for h.264 and MP4 support 28# * Proprietary codecs need to be enabled for h.264 and MP4 support
29PACKAGECONFIG_append = " ignore-lost-context proprietary-codecs" 29PACKAGECONFIG:append = " ignore-lost-context proprietary-codecs"
30 30
31copy_chromium_imx_files() { 31copy_chromium_imx_files() {
32 # sources in src/ are already organized in a manner 32 # sources in src/ are already organized in a manner
diff --git a/dynamic-layers/filesystem-layer/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bbappend b/dynamic-layers/filesystem-layer/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bbappend
index 1080a9f5..563c9e76 100644
--- a/dynamic-layers/filesystem-layer/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bbappend
+++ b/dynamic-layers/filesystem-layer/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bbappend
@@ -4,7 +4,7 @@ PACKAGES += " \
4 ${PN}-f2fs \ 4 ${PN}-f2fs \
5" 5"
6 6
7RDEPENDS_${PN}-f2fs = " \ 7RDEPENDS:${PN}-f2fs = " \
8 ${PN}-base \ 8 ${PN}-base \
9 f2fs-tools \ 9 f2fs-tools \
10" 10"
diff --git a/dynamic-layers/gnome-layer/recipes-graphics/clutter/clutter-1.0_%.bbappend b/dynamic-layers/gnome-layer/recipes-graphics/clutter/clutter-1.0_%.bbappend
index 0b4c4861..fb90c73e 100644
--- a/dynamic-layers/gnome-layer/recipes-graphics/clutter/clutter-1.0_%.bbappend
+++ b/dynamic-layers/gnome-layer/recipes-graphics/clutter/clutter-1.0_%.bbappend
@@ -1,4 +1,4 @@
1PACKAGECONFIG_imxgpu3d ??= " \ 1PACKAGECONFIG:imxgpu3d ??= " \
2 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', \ 2 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', \
3 bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11', \ 3 bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11', \
4 '', d), d)} \ 4 '', d), d)} \
diff --git a/dynamic-layers/gnome-layer/recipes-graphics/cogl/cogl-1.0_%.bbappend b/dynamic-layers/gnome-layer/recipes-graphics/cogl/cogl-1.0_%.bbappend
index afbaee43..e07d0d54 100644
--- a/dynamic-layers/gnome-layer/recipes-graphics/cogl/cogl-1.0_%.bbappend
+++ b/dynamic-layers/gnome-layer/recipes-graphics/cogl/cogl-1.0_%.bbappend
@@ -1,4 +1,4 @@
1PACKAGECONFIG_imxgpu3d ??= " \ 1PACKAGECONFIG:imxgpu3d ??= " \
2 cogl-pango gles2 \ 2 cogl-pango gles2 \
3 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'egl-wayland', \ 3 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'egl-wayland', \
4 bb.utils.contains('DISTRO_FEATURES', 'x11', 'egl-x11', \ 4 bb.utils.contains('DISTRO_FEATURES', 'x11', 'egl-x11', \
diff --git a/dynamic-layers/ivi/recipes-graphics/wayland/weston-init.bbappend b/dynamic-layers/ivi/recipes-graphics/wayland/weston-init.bbappend
index 72d991c7..4fc41d05 100644
--- a/dynamic-layers/ivi/recipes-graphics/wayland/weston-init.bbappend
+++ b/dynamic-layers/ivi/recipes-graphics/wayland/weston-init.bbappend
@@ -1 +1 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
diff --git a/dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend b/dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend
index 2e648ba3..998d11f7 100644
--- a/dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend
+++ b/dynamic-layers/openembedded-layer/recipes-benchmark/glmark2/glmark2_%.bbappend
@@ -1,4 +1,4 @@
1# Only _mx8 machine do provide virtual/libgbm required for any drm* flavour 1# Only _mx8 machine do provide virtual/libgbm required for any drm* flavour
2DRM-REMOVE_imxgpu = "drm-gl drm-gles2" 2DRM-REMOVE:imxgpu = "drm-gl drm-gles2"
3DRM-REMOVE_imxgpu_mx8 = "" 3DRM-REMOVE:imxgpu:mx8 = ""
4PACKAGECONFIG_remove = "${DRM-REMOVE}" 4PACKAGECONFIG:remove = "${DRM-REMOVE}"
diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/luajit/luajit_%.bbappend b/dynamic-layers/openembedded-layer/recipes-devtools/luajit/luajit_%.bbappend
index 8c6138c5..d07f8ae1 100644
--- a/dynamic-layers/openembedded-layer/recipes-devtools/luajit/luajit_%.bbappend
+++ b/dynamic-layers/openembedded-layer/recipes-devtools/luajit/luajit_%.bbappend
@@ -1,4 +1,4 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" 1FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
2 2
3SRC_URI_append_qoriq-ppc = " file://ppc-fixplt.patch " 3SRC_URI:append:qoriq-ppc = " file://ppc-fixplt.patch "
4 4
diff --git a/dynamic-layers/openembedded-layer/recipes-dpaa/fmc/fmc_git.bb b/dynamic-layers/openembedded-layer/recipes-dpaa/fmc/fmc_git.bb
index 1793ec06..9c6be782 100644
--- a/dynamic-layers/openembedded-layer/recipes-dpaa/fmc/fmc_git.bb
+++ b/dynamic-layers/openembedded-layer/recipes-dpaa/fmc/fmc_git.bb
@@ -19,15 +19,15 @@ EXTRA_OEMAKE_virtclass-native = 'FMCHOSTMODE=1 FMD_USPACE_HEADER_PATH="${STAGING
19 TCLAP_HEADER_PATH="${STAGING_INCDIR}" ' 19 TCLAP_HEADER_PATH="${STAGING_INCDIR}" '
20 20
21EXTRA_OEMAKE_PLATFORM ?= "" 21EXTRA_OEMAKE_PLATFORM ?= ""
22EXTRA_OEMAKE_PLATFORM_ls1043a = "ls1043" 22EXTRA_OEMAKE_PLATFORM:ls1043a = "ls1043"
23EXTRA_OEMAKE_PLATFORM_ls1046a = "ls1046" 23EXTRA_OEMAKE_PLATFORM:ls1046a = "ls1046"
24EXTRA_OEMAKE_PLATFORM_ls1088a = "ls1088" 24EXTRA_OEMAKE_PLATFORM:ls1088a = "ls1088"
25EXTRA_OEMAKE_PLATFORM_p1020 = "p4080ds" 25EXTRA_OEMAKE_PLATFORM:p1020 = "p4080ds"
26EXTRA_OEMAKE_PLATFORM_p2020 = "p4080ds" 26EXTRA_OEMAKE_PLATFORM:p2020 = "p4080ds"
27EXTRA_OEMAKE_PLATFORM_p2041 = "p4080ds" 27EXTRA_OEMAKE_PLATFORM:p2041 = "p4080ds"
28EXTRA_OEMAKE_PLATFORM_p3041 = "p4080ds" 28EXTRA_OEMAKE_PLATFORM:p3041 = "p4080ds"
29EXTRA_OEMAKE_PLATFORM_p4080 = "p4080ds" 29EXTRA_OEMAKE_PLATFORM:p4080 = "p4080ds"
30EXTRA_OEMAKE_PLATFORM_p5040 = "p4080ds" 30EXTRA_OEMAKE_PLATFORM:p5040 = "p4080ds"
31 31
32 32
33do_compile () { 33do_compile () {
diff --git a/dynamic-layers/openembedded-layer/recipes-graphics/xserver-common/xserver-common_%.bbappend b/dynamic-layers/openembedded-layer/recipes-graphics/xserver-common/xserver-common_%.bbappend
index f4f43504..be694574 100644
--- a/dynamic-layers/openembedded-layer/recipes-graphics/xserver-common/xserver-common_%.bbappend
+++ b/dynamic-layers/openembedded-layer/recipes-graphics/xserver-common/xserver-common_%.bbappend
@@ -1,8 +1,8 @@
1# i.MX extra configuration 1# i.MX extra configuration
2FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 2FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
3 3
4SRC_URI_append_imxgpu3d = " \ 4SRC_URI:append:imxgpu3d = " \
5 file://0016-xserver-common-enable-iglx-module.patch \ 5 file://0016-xserver-common-enable-iglx-module.patch \
6" 6"
7 7
8PACKAGE_ARCH_imxgpu3d = "${MACHINE_SOCARCH}" 8PACKAGE_ARCH:imxgpu3d = "${MACHINE_SOCARCH}"
diff --git a/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-imx-support.inc b/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-imx-support.inc
index 187681a8..8950c151 100644
--- a/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-imx-support.inc
+++ b/dynamic-layers/qt4-layer/recipes-qt4/qt4/qt4-imx-support.inc
@@ -1,4 +1,4 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/qt4:" 1FILESEXTRAPATHS:prepend := "${THISDIR}/qt4:"
2 2
3python __anonymous () { 3python __anonymous () {
4 families = ['mx6'] 4 families = ['mx6']
@@ -8,21 +8,21 @@ python __anonymous () {
8 d.appendVarFlag('do_configure', 'depends', ' virtual/kernel:do_shared_workdir') 8 d.appendVarFlag('do_configure', 'depends', ' virtual/kernel:do_shared_workdir')
9} 9}
10 10
11SRC_URI_append_imxgpu2d += " \ 11SRC_URI:append:imxgpu2d += " \
12 file://0001-Add-support-for-i.MX-codecs-to-phonon.patch \ 12 file://0001-Add-support-for-i.MX-codecs-to-phonon.patch \
13 file://0002-i.MX-video-renderer-Allow-v4l-device-from-environmen.patch \ 13 file://0002-i.MX-video-renderer-Allow-v4l-device-from-environmen.patch \
14 file://0003-i.MX6-force-egl-visual-ID-33.patch \ 14 file://0003-i.MX6-force-egl-visual-ID-33.patch \
15" 15"
16 16
17DEPENDS_append_imxgpu2d = " virtual/kernel virtual/libgles2" 17DEPENDS:append:imxgpu2d = " virtual/kernel virtual/libgles2"
18QT_GLFLAGS_imxgpu2d = "-opengl es2 -openvg" 18QT_GLFLAGS:imxgpu2d = "-opengl es2 -openvg"
19QT_CONFIG_FLAGS_append_imxgpu2d = " -I${STAGING_KERNEL_DIR}/include/uapi \ 19QT_CONFIG_FLAGS:append:imxgpu2d = " -I${STAGING_KERNEL_DIR}/include/uapi \
20 -I${STAGING_KERNEL_DIR}/include/ \ 20 -I${STAGING_KERNEL_DIR}/include/ \
21 -DLINUX=1 -DEGL_API_FB=1 \ 21 -DLINUX=1 -DEGL_API_FB=1 \
22 -DQT_QPA_EXPERIMENTAL_TOUCHEVENT=1" 22 -DQT_QPA_EXPERIMENTAL_TOUCHEVENT=1"
23 23
24# The QT_CONFIG_FLAGS can pollute *.la files with -Dxxx 24# The QT_CONFIG_FLAGS can pollute *.la files with -Dxxx
25do_compile_append_mx6 () { 25do_compile:append:mx6 () {
26 find lib -name "*.la" | xargs -n1 sed -i 's/-D.*=1//g' 26 find lib -name "*.la" | xargs -n1 sed -i 's/-D.*=1//g'
27} 27}
28 28
diff --git a/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend b/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
index bf3fb66e..0d5897ad 100644
--- a/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
+++ b/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
@@ -3,35 +3,35 @@
3# Copyright (C) 2016, 2017 O.S. Systems Software LTDA. 3# Copyright (C) 2016, 2017 O.S. Systems Software LTDA.
4# Copyright (C) 2017-2018 NXP 4# Copyright (C) 2017-2018 NXP
5 5
6FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 6FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
7 7
8SRC_URI_append_imxgpu = " \ 8SRC_URI:append:imxgpu = " \
9 file://0014-Add-IMX-GPU-support.patch \ 9 file://0014-Add-IMX-GPU-support.patch \
10 file://0001-egl.prf-Fix-build-error-when-egl-headers-need-platfo.patch \ 10 file://0001-egl.prf-Fix-build-error-when-egl-headers-need-platfo.patch \
11" 11"
12 12
13PACKAGECONFIG_GL_IMX_GPU = "" 13PACKAGECONFIG_GL_IMX_GPU = ""
14PACKAGECONFIG_GL_IMX_GPU_mx8 = "gbm kms" 14PACKAGECONFIG_GL_IMX_GPU:mx8 = "gbm kms"
15 15
16PACKAGECONFIG_GL_imxpxp = "gles2" 16PACKAGECONFIG_GL:imxpxp = "gles2"
17PACKAGECONFIG_GL_imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' gl', '', d)} \ 17PACKAGECONFIG_GL:imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' gl', '', d)} \
18 ${PACKAGECONFIG_GL_IMX_GPU}" 18 ${PACKAGECONFIG_GL_IMX_GPU}"
19PACKAGECONFIG_GL_imxgpu3d = "gles2 \ 19PACKAGECONFIG_GL:imxgpu3d = "gles2 \
20 ${PACKAGECONFIG_GL_IMX_GPU}" 20 ${PACKAGECONFIG_GL_IMX_GPU}"
21PACKAGECONFIG_GL_use-mainline-bsp ?= "gles2 gbm kms" 21PACKAGECONFIG_GL:use-mainline-bsp ?= "gles2 gbm kms"
22 22
23PACKAGECONFIG_PLATFORM = "" 23PACKAGECONFIG_PLATFORM = ""
24PACKAGECONFIG_PLATFORM_imxgpu2d = "no-opengl linuxfb" 24PACKAGECONFIG_PLATFORM:imxgpu2d = "no-opengl linuxfb"
25PACKAGECONFIG_PLATFORM_imxgpu3d = " \ 25PACKAGECONFIG_PLATFORM:imxgpu3d = " \
26 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', \ 26 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', \
27 bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \ 27 bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \
28 'eglfs', d), d)}" 28 'eglfs', d), d)}"
29PACKAGECONFIG_PLATFORM_use-mainline-bsp = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'eglfs', d)}" 29PACKAGECONFIG_PLATFORM:use-mainline-bsp = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'eglfs', d)}"
30PACKAGECONFIG += "${PACKAGECONFIG_PLATFORM}" 30PACKAGECONFIG += "${PACKAGECONFIG_PLATFORM}"
31 31
32PACKAGECONFIG_VULKAN_IMX_GPU = "" 32PACKAGECONFIG_VULKAN_IMX_GPU = ""
33PACKAGECONFIG_VULKAN_IMX_GPU_mx8 = "vulkan" 33PACKAGECONFIG_VULKAN_IMX_GPU:mx8 = "vulkan"
34PACKAGECONFIG_VULKAN_IMX_GPU_mx8mm = "" 34PACKAGECONFIG_VULKAN_IMX_GPU:mx8mm = ""
35PACKAGECONFIG_VULKAN = "" 35PACKAGECONFIG_VULKAN = ""
36PACKAGECONFIG_VULKAN_imxgpu = "${PACKAGECONFIG_VULKAN_IMX_GPU}" 36PACKAGECONFIG_VULKAN:imxgpu = "${PACKAGECONFIG_VULKAN_IMX_GPU}"
37PACKAGECONFIG += "${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', '${PACKAGECONFIG_VULKAN}', '', d)}" 37PACKAGECONFIG += "${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', '${PACKAGECONFIG_VULKAN}', '', d)}"
diff --git a/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend b/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend
index 168db095..c1594e05 100644
--- a/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend
+++ b/dynamic-layers/qt5-layer/recipes-qt/qt5/qtwayland_%.bbappend
@@ -1,8 +1,8 @@
1# etnaviv mesa does not have glx 1# etnaviv mesa does not have glx
2PACKAGECONFIG_remove_use-mainline-bsp = "xcomposite-glx" 2PACKAGECONFIG:remove:use-mainline-bsp = "xcomposite-glx"
3 3
4PACKAGECONFIG_remove_mx6 = "xcomposite-egl xcomposite-glx" 4PACKAGECONFIG:remove:mx6 = "xcomposite-egl xcomposite-glx"
5PACKAGECONFIG_remove_mx7 = "xcomposite-egl xcomposite-glx" 5PACKAGECONFIG:remove:mx7 = "xcomposite-egl xcomposite-glx"
6 6
7# i.MX8 does never provide native x11, so required dependencies are not met 7# i.MX8 does never provide native x11, so required dependencies are not met
8PACKAGECONFIG_remove_mx8 = "xcomposite-egl xcomposite-glx" 8PACKAGECONFIG:remove:mx8 = "xcomposite-egl xcomposite-glx"
diff --git a/dynamic-layers/virtualization-layer/recipes-extended/libvirt/libvirt_%.bbappend b/dynamic-layers/virtualization-layer/recipes-extended/libvirt/libvirt_%.bbappend
index c7e6d32e..f64637bd 100644
--- a/dynamic-layers/virtualization-layer/recipes-extended/libvirt/libvirt_%.bbappend
+++ b/dynamic-layers/virtualization-layer/recipes-extended/libvirt/libvirt_%.bbappend
@@ -1,9 +1,9 @@
1PACKAGECONFIG_qoriq-ppc = "qemu yajl lxc test remote macvtap libvirtd netcf udev python" 1PACKAGECONFIG:qoriq-ppc = "qemu yajl lxc test remote macvtap libvirtd netcf udev python"
2 2
3FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" 3FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
4SRC_URI_append_qoriq-ppc = " file://qemu.conf" 4SRC_URI:append:qoriq-ppc = " file://qemu.conf"
5 5
6do_install_append_qoriq-ppc() { 6do_install:append:qoriq-ppc() {
7 install -m 0644 ${WORKDIR}/qemu.conf ${D}${sysconfdir}/libvirt/qemu.conf 7 install -m 0644 ${WORKDIR}/qemu.conf ${D}${sysconfdir}/libvirt/qemu.conf
8} 8}
9 9
diff --git a/recipes-bsp/alsa-state/alsa-state.bbappend b/recipes-bsp/alsa-state/alsa-state.bbappend
index 3a398b22..94331307 100644
--- a/recipes-bsp/alsa-state/alsa-state.bbappend
+++ b/recipes-bsp/alsa-state/alsa-state.bbappend
@@ -1,10 +1,10 @@
1# Append path for freescale layer to include alsa-state asound.conf 1# Append path for freescale layer to include alsa-state asound.conf
2FILESEXTRAPATHS_prepend_mx6 := "${THISDIR}/${PN}/imx:" 2FILESEXTRAPATHS:prepend:mx6 := "${THISDIR}/${PN}/imx:"
3FILESEXTRAPATHS_prepend_mx7 := "${THISDIR}/${PN}/imx:" 3FILESEXTRAPATHS:prepend:mx7 := "${THISDIR}/${PN}/imx:"
4FILESEXTRAPATHS_prepend_mx8 := "${THISDIR}/${PN}/imx:" 4FILESEXTRAPATHS:prepend:mx8 := "${THISDIR}/${PN}/imx:"
5FILESEXTRAPATHS_prepend_use-mainline-bsp := "${THISDIR}/${PN}/imx:" 5FILESEXTRAPATHS:prepend:use-mainline-bsp := "${THISDIR}/${PN}/imx:"
6 6
7PACKAGE_ARCH_mx6 = "${MACHINE_ARCH}" 7PACKAGE_ARCH:mx6 = "${MACHINE_ARCH}"
8PACKAGE_ARCH_mx7 = "${MACHINE_ARCH}" 8PACKAGE_ARCH:mx7 = "${MACHINE_ARCH}"
9PACKAGE_ARCH_mx8 = "${MACHINE_ARCH}" 9PACKAGE_ARCH:mx8 = "${MACHINE_ARCH}"
10PACKAGE_ARCH_use-mainline-bsp = "${MACHINE_ARCH}" 10PACKAGE_ARCH:use-mainline-bsp = "${MACHINE_ARCH}"
diff --git a/recipes-bsp/atf/qoriq-atf_1.5.bb b/recipes-bsp/atf/qoriq-atf_1.5.bb
index 19208334..f2657726 100644
--- a/recipes-bsp/atf/qoriq-atf_1.5.bb
+++ b/recipes-bsp/atf/qoriq-atf_1.5.bb
@@ -8,7 +8,7 @@ PV = "1.5+git${SRCPV}"
8inherit deploy 8inherit deploy
9 9
10DEPENDS += "u-boot-mkimage-native u-boot openssl openssl-native mbedtls rcw cst-native" 10DEPENDS += "u-boot-mkimage-native u-boot openssl openssl-native mbedtls rcw cst-native"
11DEPENDS_append_lx2160a = " ddr-phy" 11DEPENDS:append:lx2160a = " ddr-phy"
12do_compile[depends] += "u-boot:do_deploy rcw:do_deploy uefi:do_deploy" 12do_compile[depends] += "u-boot:do_deploy rcw:do_deploy uefi:do_deploy"
13 13
14S = "${WORKDIR}/git" 14S = "${WORKDIR}/git"
@@ -21,12 +21,12 @@ COMPATIBLE_MACHINE = "(qoriq)"
21PACKAGE_ARCH = "${MACHINE_ARCH}" 21PACKAGE_ARCH = "${MACHINE_ARCH}"
22 22
23PLATFORM = "${MACHINE}" 23PLATFORM = "${MACHINE}"
24PLATFORM_ls1088ardb-pb = "ls1088ardb" 24PLATFORM:ls1088ardb-pb = "ls1088ardb"
25PLATFORM_ADDITIONAL_TARGET ??= "" 25PLATFORM_ADDITIONAL_TARGET ??= ""
26PLATFORM_ADDITIONAL_TARGET_ls1012afrwy = "ls1012afrwy_512mb" 26PLATFORM_ADDITIONAL_TARGET:ls1012afrwy = "ls1012afrwy_512mb"
27 27
28RCW_FOLDER ?= "${MACHINE}" 28RCW_FOLDER ?= "${MACHINE}"
29RCW_FOLDER_ls1088ardb-pb = "ls1088ardb" 29RCW_FOLDER:ls1088ardb-pb = "ls1088ardb"
30 30
31# requires CROSS_COMPILE set by hand as there is no configure script 31# requires CROSS_COMPILE set by hand as there is no configure script
32export CROSS_COMPILE="${TARGET_PREFIX}" 32export CROSS_COMPILE="${TARGET_PREFIX}"
@@ -56,16 +56,16 @@ PACKAGECONFIG[optee] = ",,optee-os-qoriq"
56uboot_boot_sec ?= "${DEPLOY_DIR_IMAGE}/u-boot.bin-tfa-secure-boot" 56uboot_boot_sec ?= "${DEPLOY_DIR_IMAGE}/u-boot.bin-tfa-secure-boot"
57uboot_boot ?= "${DEPLOY_DIR_IMAGE}/u-boot.bin-tfa" 57uboot_boot ?= "${DEPLOY_DIR_IMAGE}/u-boot.bin-tfa"
58rcw ?= "" 58rcw ?= ""
59rcw_ls1012a = "_default" 59rcw:ls1012a = "_default"
60rcwsec ?= "_sben" 60rcwsec ?= "_sben"
61 61
62chassistype ?= "ls2088_1088" 62chassistype ?= "ls2088_1088"
63chassistype_ls1012a = "ls104x_1012" 63chassistype:ls1012a = "ls104x_1012"
64chassistype_ls1043a = "ls104x_1012" 64chassistype:ls1043a = "ls104x_1012"
65chassistype_ls1046a = "ls104x_1012" 65chassistype:ls1046a = "ls104x_1012"
66 66
67ddrphyopt ?= "" 67ddrphyopt ?= ""
68ddrphyopt_lx2160a = "fip_ddr_sec" 68ddrphyopt:lx2160a = "fip_ddr_sec"
69 69
70do_configure[noexec] = "1" 70do_configure[noexec] = "1"
71 71
@@ -242,5 +242,5 @@ do_deploy() {
242 fi 242 fi
243} 243}
244addtask deploy after do_install 244addtask deploy after do_install
245FILES_${PN} += "/boot" 245FILES:${PN} += "/boot"
246BBCLASSEXTEND = "native nativesdk" 246BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-bsp/atf/qoriq-atf_2.3.bb b/recipes-bsp/atf/qoriq-atf_2.3.bb
index aed32851..f2922c91 100644
--- a/recipes-bsp/atf/qoriq-atf_2.3.bb
+++ b/recipes-bsp/atf/qoriq-atf_2.3.bb
@@ -47,7 +47,7 @@ do_compile() {
47 if [ "${NXP_COT}" = "true" -a "${ARM_COT}" = "true" ]; then 47 if [ "${NXP_COT}" = "true" -a "${ARM_COT}" = "true" ]; then
48 bbfatal " \ 48 bbfatal " \
49 Error!, Both ARM CoT and NXP CoT are enabled. Only one CoT is built in a yocto build, \ 49 Error!, Both ARM CoT and NXP CoT are enabled. Only one CoT is built in a yocto build, \
50 Don't add nxp-cot and arm-cot into DISTRO_FEATURES_append at the same time." 50 Don't add nxp-cot and arm-cot into DISTRO_FEATURES:append at the same time."
51 fi 51 fi
52 52
53 if [ "${NXP_COT}" = "true" ]; then 53 if [ "${NXP_COT}" = "true" ]; then
@@ -160,7 +160,7 @@ do_install() {
160 160
161do_deploy() { 161do_deploy() {
162 if [ "${ARM_COT}" = "true" ]; then 162 if [ "${ARM_COT}" = "true" ]; then
163 outputdir="atf_arm-cot" 163 outputdir="atf:arm-cot"
164 elif [ "${NXP_COT}" = "true" ]; then 164 elif [ "${NXP_COT}" = "true" ]; then
165 outputdir="atf_nxp-cot" 165 outputdir="atf_nxp-cot"
166 else 166 else
@@ -171,5 +171,5 @@ do_deploy() {
171 cp -fr ${D}/boot/atf/* ${DEPLOYDIR}/${outputdir}/ 171 cp -fr ${D}/boot/atf/* ${DEPLOYDIR}/${outputdir}/
172} 172}
173addtask deploy after do_install 173addtask deploy after do_install
174FILES_${PN} += "/boot" 174FILES:${PN} += "/boot"
175COMPATIBLE_MACHINE = "(lx2160a|lx2162a)" 175COMPATIBLE_MACHINE = "(lx2160a|lx2162a)"
diff --git a/recipes-bsp/boot-format/boot-format_git.bb b/recipes-bsp/boot-format/boot-format_git.bb
index 92ec8307..584c5c68 100644
--- a/recipes-bsp/boot-format/boot-format_git.bb
+++ b/recipes-bsp/boot-format/boot-format_git.bb
@@ -15,6 +15,6 @@ do_install(){
15} 15}
16 16
17PACKAGES =+ "${PN}-config" 17PACKAGES =+ "${PN}-config"
18FILES_${PN}-config += "${datadir}/*" 18FILES:${PN}-config += "${datadir}/*"
19 19
20BBCLASSEXTEND = "native nativesdk" 20BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-bsp/ddr-phy/ddr-phy_git.bb b/recipes-bsp/ddr-phy/ddr-phy_git.bb
index fa8833fd..6e68bd02 100644
--- a/recipes-bsp/ddr-phy/ddr-phy_git.bb
+++ b/recipes-bsp/ddr-phy/ddr-phy_git.bb
@@ -38,7 +38,7 @@ do_deploy () {
38addtask deploy before do_populate_sysroot after do_install 38addtask deploy before do_populate_sysroot after do_install
39 39
40PACKAGES += "${PN}-image" 40PACKAGES += "${PN}-image"
41FILES_${PN}-image += "/boot" 41FILES:${PN}-image += "/boot"
42 42
43COMPATIBLE_MACHINE = "(lx2160a|lx2162a)" 43COMPATIBLE_MACHINE = "(lx2160a|lx2162a)"
44PACKAGE_ARCH = "${MACHINE_ARCH}" 44PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/recipes-bsp/dp-firmware-cadence/dp-firmware-cadence_20.04.bb b/recipes-bsp/dp-firmware-cadence/dp-firmware-cadence_20.04.bb
index e8db5456..7b77e6f8 100644
--- a/recipes-bsp/dp-firmware-cadence/dp-firmware-cadence_20.04.bb
+++ b/recipes-bsp/dp-firmware-cadence/dp-firmware-cadence_20.04.bb
@@ -23,7 +23,7 @@ do_deploy () {
23addtask deploy before do_build after do_install 23addtask deploy before do_build after do_install
24 24
25PACKAGES += "${PN}-image" 25PACKAGES += "${PN}-image"
26FILES_${PN}-image += "/boot" 26FILES:${PN}-image += "/boot"
27 27
28COMPATIBLE_MACHINE = "(qoriq-arm64)" 28COMPATIBLE_MACHINE = "(qoriq-arm64)"
29PACKAGE_ARCH = "${MACHINE_ARCH}" 29PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/recipes-bsp/firmware-imx/firmware-imx-8_8.12.bb b/recipes-bsp/firmware-imx/firmware-imx-8_8.12.bb
index 650c1cfd..6ea16d5b 100644
--- a/recipes-bsp/firmware-imx/firmware-imx-8_8.12.bb
+++ b/recipes-bsp/firmware-imx/firmware-imx-8_8.12.bb
@@ -19,5 +19,5 @@ addtask deploy after do_install before do_build
19PACKAGE_ARCH = "${MACHINE_SOCARCH}" 19PACKAGE_ARCH = "${MACHINE_SOCARCH}"
20 20
21COMPATIBLE_MACHINE = "(mx8)" 21COMPATIBLE_MACHINE = "(mx8)"
22COMPATIBLE_MACHINE_mx8m = "(^$)" 22COMPATIBLE_MACHINE:mx8m = "(^$)"
23COMPATIBLE_MACHINE_mx8x = "(^$)" 23COMPATIBLE_MACHINE:mx8x = "(^$)"
diff --git a/recipes-bsp/firmware-imx/firmware-imx_8.12.bb b/recipes-bsp/firmware-imx/firmware-imx_8.12.bb
index 8ff4a321..68539a61 100644
--- a/recipes-bsp/firmware-imx/firmware-imx_8.12.bb
+++ b/recipes-bsp/firmware-imx/firmware-imx_8.12.bb
@@ -65,7 +65,7 @@ do_install() {
65# as second one, and for every file match - it creates a separate package, 65# as second one, and for every file match - it creates a separate package,
66# which contains only files that matches the pattern. 66# which contains only files that matches the pattern.
67# 67#
68python populate_packages_prepend() { 68python populate_packages:prepend() {
69 easrcdir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/easrc', d) 69 easrcdir = bb.data.expand('${nonarch_base_libdir}/firmware/imx/easrc', d)
70 do_split_packages(d, easrcdir, '^easrc-([^_]*).*\.bin', 70 do_split_packages(d, easrcdir, '^easrc-([^_]*).*\.bin',
71 output_pattern='firmware-imx-easrc-%s', 71 output_pattern='firmware-imx-easrc-%s',
@@ -123,7 +123,7 @@ PACKAGES_DYNAMIC = "${PN}-vpu-* ${PN}-sdma-* ${PN}-easrc-* ${PN}-xcvr-* ${PN}-xu
123# files it makes no sense. 123# files it makes no sense.
124PACKAGES = "${PN} ${PN}-epdc ${PN}-hdmi" 124PACKAGES = "${PN} ${PN}-epdc ${PN}-hdmi"
125 125
126FILES_${PN}-epdc = "${nonarch_base_libdir}/firmware/imx/epdc/" 126FILES:${PN}-epdc = "${nonarch_base_libdir}/firmware/imx/epdc/"
127FILES_${PN}-hdmi = "${nonarch_base_libdir}/firmware/imx/hdmi/" 127FILES:${PN}-hdmi = "${nonarch_base_libdir}/firmware/imx/hdmi/"
128 128
129COMPATIBLE_MACHINE = "(imx|use-mainline-bsp)" 129COMPATIBLE_MACHINE = "(imx|use-mainline-bsp)"
diff --git a/recipes-bsp/firmware-imx/firmware-nxp-wifi_1.0.bb b/recipes-bsp/firmware-imx/firmware-nxp-wifi_1.0.bb
index 0f0a2af0..287b1cff 100644
--- a/recipes-bsp/firmware-imx/firmware-nxp-wifi_1.0.bb
+++ b/recipes-bsp/firmware-imx/firmware-nxp-wifi_1.0.bb
@@ -18,7 +18,7 @@ S = "${WORKDIR}/git"
18inherit allarch 18inherit allarch
19 19
20CLEANBROKEN = "1" 20CLEANBROKEN = "1"
21ALLOW_EMPTY_${PN} = "1" 21ALLOW_EMPTY:${PN} = "1"
22 22
23do_compile() { 23do_compile() {
24 : 24 :
@@ -38,9 +38,9 @@ PACKAGES =+ " \
38 ${PN}-bcm4359-pcie \ 38 ${PN}-bcm4359-pcie \
39" 39"
40 40
41FILES_${PN}-bcm4359-pcie = " \ 41FILES:${PN}-bcm4359-pcie = " \
42 ${nonarch_base_libdir}/firmware/brcm/brcmfmac4359-pcie.* \ 42 ${nonarch_base_libdir}/firmware/brcm/brcmfmac4359-pcie.* \
43 ${sysconfdir}/firmware/BCM4349B1_*.hcd \ 43 ${sysconfdir}/firmware/BCM4349B1_*.hcd \
44" 44"
45 45
46RPROVIDES_${PN}-bcm4359-pcie = "linux-firmware-bcm4359-pcie" 46RPROVIDES:${PN}-bcm4359-pcie = "linux-firmware-bcm4359-pcie"
diff --git a/recipes-bsp/firmware-imx/firmware-sof-imx_1.5.0-3.bb b/recipes-bsp/firmware-imx/firmware-sof-imx_1.5.0-3.bb
index 22f4c25f..2ce98344 100644
--- a/recipes-bsp/firmware-imx/firmware-sof-imx_1.5.0-3.bb
+++ b/recipes-bsp/firmware-imx/firmware-sof-imx_1.5.0-3.bb
@@ -21,4 +21,4 @@ do_install() {
21 cp -r sof* ${D}${nonarch_base_libdir}/firmware/imx/ 21 cp -r sof* ${D}${nonarch_base_libdir}/firmware/imx/
22} 22}
23 23
24FILES_${PN} = "${nonarch_base_libdir}/firmware/imx" 24FILES:${PN} = "${nonarch_base_libdir}/firmware/imx"
diff --git a/recipes-bsp/firmware-qca/firmware-qca.inc b/recipes-bsp/firmware-qca/firmware-qca.inc
deleted file mode 100644
index f33f4eb9..00000000
--- a/recipes-bsp/firmware-qca/firmware-qca.inc
+++ /dev/null
@@ -1,15 +0,0 @@
1# Copyright (C) 2018-2020 NXP
2
3SUMMARY = "Qualcomm Wi-Fi and Bluetooth firmware"
4SECTION = "base"
5LICENSE = "Proprietary"
6LIC_FILES_CHKSUM = "file://COPYING;md5=fd4b227530cd88a82af6a5982cfb724d \
7 file://QUALCOMM_ATHEROS_LICENSE_AGREEMENT.pdf;md5=e629669cf17f6a2a6872e067582986e3 \
8"
9
10SRC_URI = " ${FSL_MIRROR}/firmware-qca-${PV}.bin;fsl-eula=true"
11SRC_URI[md5sum] = "75b1b2a8dea8f81609ccfc072d42fa86"
12SRC_URI[sha256sum] = "6ad56ac1df841e252ac6db0a8966082715a3cb6dc7189426bade13333a16fd9d"
13S = "${WORKDIR}/firmware-qca-${PV}"
14
15inherit fsl-eula-unpack
diff --git a/recipes-bsp/firmware-qca/firmware-qca6174_3.0.2.bb b/recipes-bsp/firmware-qca/firmware-qca6174_3.0.2.bb
deleted file mode 100644
index 47b289af..00000000
--- a/recipes-bsp/firmware-qca/firmware-qca6174_3.0.2.bb
+++ /dev/null
@@ -1,27 +0,0 @@
1# Copyright (C) 2019-2020 NXP
2
3require firmware-qca.inc
4
5SUMMARY = "Qualcomm Wi-Fi and Bluetooth firmware"
6DESCRIPTION = "Qualcomm Wi-Fi and Bluetooth firmware for modules such as QCA6174A"
7SECTION = "base"
8LICENSE = "Proprietary"
9
10inherit allarch
11
12do_install () {
13 # Install firmware.conf for QCA modules
14 install -d ${D}${sysconfdir}/bluetooth
15 install -m 644 ${S}/1CQ_QCA6174A_LEA_2.0/etc/bluetooth/firmware.conf ${D}${sysconfdir}/bluetooth
16
17 # Install firmware files
18 install -d ${D}${base_libdir}
19 cp -r ${S}/1CQ_QCA6174A_LEA_2.0/lib/firmware ${D}${base_libdir}
20}
21
22FILES_${PN} = " \
23 ${sysconfdir}/bluetooth/firmware.conf \
24 ${base_libdir}/firmware/qca6174 \
25 ${base_libdir}/firmware/wlan \
26 ${base_libdir}/firmware/* \
27"
diff --git a/recipes-bsp/firmware-qca/firmware-qca9377_3.0.2.bb b/recipes-bsp/firmware-qca/firmware-qca9377_3.0.2.bb
deleted file mode 100644
index 26c41d50..00000000
--- a/recipes-bsp/firmware-qca/firmware-qca9377_3.0.2.bb
+++ /dev/null
@@ -1,27 +0,0 @@
1# Copyright (C) 2018-2020 NXP
2
3require firmware-qca.inc
4
5SUMMARY = "Qualcomm Wi-Fi and Bluetooth firmware"
6DESCRIPTION = "Qualcomm Wi-Fi and Bluetooth firmware for modules such as QCA9377-3"
7SECTION = "base"
8LICENSE = "Proprietary"
9
10inherit allarch
11
12do_install () {
13 # Install firmware.conf for QCA modules
14 install -d ${D}${sysconfdir}/bluetooth
15 install -m 644 ${S}/1PJ_QCA9377-3_LEA_3.0/etc/bluetooth/firmware.conf ${D}${sysconfdir}/bluetooth
16
17 # Install firmware files
18 install -d ${D}${base_libdir}
19 cp -r ${S}/1PJ_QCA9377-3_LEA_3.0/lib/firmware ${D}${base_libdir}
20}
21
22FILES_${PN} = " \
23 ${sysconfdir}/bluetooth/firmware.conf \
24 ${base_libdir}/firmware/qca \
25 ${base_libdir}/firmware/qca9377 \
26 ${base_libdir}/firmware/wlan \
27"
diff --git a/recipes-bsp/firmware-qca/qca-tools_3.0.2.bb b/recipes-bsp/firmware-qca/qca-tools_3.0.2.bb
deleted file mode 100644
index e996c62d..00000000
--- a/recipes-bsp/firmware-qca/qca-tools_3.0.2.bb
+++ /dev/null
@@ -1,20 +0,0 @@
1# Copyright (C) 2018-2020 NXP
2
3require firmware-qca.inc
4
5SUMMARY = "Qualcomm Wi-Fi and Bluetooth tools"
6DESCRIPTION = "Qualcomm Wi-Fi and Bluetooth tools for modules such as QCA6174A and QCA9377"
7LICENSE = "Proprietary"
8
9DEPENDS = "libnl zlib"
10
11FCC_TOOLS_FOLDER ?= "qca9377_qca6174_arm32"
12FCC_TOOLS_FOLDER_aarch64 = "qca9377_qca6174_arm64"
13
14do_install() {
15 install -d ${D}${sbindir}/fcc_tools
16 cp -r ${S}/fcc_tools/${FCC_TOOLS_FOLDER} ${D}${sbindir}/fcc_tools
17}
18
19COMPATIBLE_HOST = '(aarch64|arm).*-linux'
20COMPATIBLE_HOST_libc-musl = 'null'
diff --git a/recipes-bsp/formfactor/formfactor_%.bbappend b/recipes-bsp/formfactor/formfactor_%.bbappend
index 15f8f4e8..83cce131 100644
--- a/recipes-bsp/formfactor/formfactor_%.bbappend
+++ b/recipes-bsp/formfactor/formfactor_%.bbappend
@@ -1,2 +1,2 @@
1# Append path for i.MX custom matchconfig 1# Append path for i.MX custom matchconfig
2FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 2FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
diff --git a/recipes-bsp/imx-atf/imx-atf_2.4.bb b/recipes-bsp/imx-atf/imx-atf_2.4.bb
index f4db002b..536a0a73 100644
--- a/recipes-bsp/imx-atf/imx-atf_2.4.bb
+++ b/recipes-bsp/imx-atf/imx-atf_2.4.bb
@@ -27,7 +27,7 @@ EXTRA_OEMAKE += " \
27 27
28BUILD_OPTEE = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'true', 'false', d)}" 28BUILD_OPTEE = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'true', 'false', d)}"
29 29
30CFLAGS_remove_mx8mq = "-O2" 30CFLAGS:remove:mx8mq = "-O2"
31 31
32do_compile() { 32do_compile() {
33 # Clear LDFLAGS to avoid the option -Wl recognize issue 33 # Clear LDFLAGS to avoid the option -Wl recognize issue
diff --git a/recipes-bsp/imx-lib/imx-lib_git.bb b/recipes-bsp/imx-lib/imx-lib_git.bb
index c5619070..a296b185 100644
--- a/recipes-bsp/imx-lib/imx-lib_git.bb
+++ b/recipes-bsp/imx-lib/imx-lib_git.bb
@@ -20,15 +20,15 @@ S = "${WORKDIR}/git"
20 20
21inherit use-imx-headers 21inherit use-imx-headers
22 22
23PLATFORM_mx6q = "IMX6Q" 23PLATFORM:mx6q = "IMX6Q"
24PLATFORM_mx6dl = "IMX6Q" 24PLATFORM:mx6dl = "IMX6Q"
25PLATFORM_mx6sl = "IMX6S" 25PLATFORM:mx6sl = "IMX6S"
26PLATFORM_mx6sll = "IMX6UL" 26PLATFORM:mx6sll = "IMX6UL"
27PLATFORM_mx6sx = "IMX6S" 27PLATFORM:mx6sx = "IMX6S"
28PLATFORM_mx6ul = "IMX6UL" 28PLATFORM:mx6ul = "IMX6UL"
29PLATFORM_mx6ull = "IMX6UL" 29PLATFORM:mx6ull = "IMX6UL"
30PLATFORM_mx7d = "IMX7" 30PLATFORM:mx7d = "IMX7"
31PLATFORM_mx7ulp = "IMX7" 31PLATFORM:mx7ulp = "IMX7"
32 32
33PARALLEL_MAKE="-j 1" 33PARALLEL_MAKE="-j 1"
34EXTRA_OEMAKE = "" 34EXTRA_OEMAKE = ""
diff --git a/recipes-bsp/imx-mkimage/imx-boot_1.0.bb b/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
index 422670be..1425c5a3 100644
--- a/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
+++ b/recipes-bsp/imx-mkimage/imx-boot_1.0.bb
@@ -10,8 +10,8 @@ SECTION = "BSP"
10inherit use-imx-security-controller-firmware 10inherit use-imx-security-controller-firmware
11 11
12IMX_EXTRA_FIRMWARE = "firmware-imx-8 imx-sc-firmware imx-seco" 12IMX_EXTRA_FIRMWARE = "firmware-imx-8 imx-sc-firmware imx-seco"
13IMX_EXTRA_FIRMWARE_mx8m = "firmware-imx-8m" 13IMX_EXTRA_FIRMWARE:mx8m = "firmware-imx-8m"
14IMX_EXTRA_FIRMWARE_mx8x = "imx-sc-firmware imx-seco" 14IMX_EXTRA_FIRMWARE:mx8x = "imx-sc-firmware imx-seco"
15DEPENDS += " \ 15DEPENDS += " \
16 u-boot \ 16 u-boot \
17 ${IMX_EXTRA_FIRMWARE} \ 17 ${IMX_EXTRA_FIRMWARE} \
@@ -20,7 +20,7 @@ DEPENDS += " \
20" 20"
21# xxd is a dependency of fspi_packer.sh 21# xxd is a dependency of fspi_packer.sh
22DEPENDS += "xxd-native" 22DEPENDS += "xxd-native"
23DEPENDS_append_mx8m = " u-boot-mkimage-native dtc-native" 23DEPENDS:append:mx8m = " u-boot-mkimage-native dtc-native"
24BOOT_NAME = "imx-boot" 24BOOT_NAME = "imx-boot"
25PROVIDES = "${BOOT_NAME}" 25PROVIDES = "${BOOT_NAME}"
26 26
@@ -41,7 +41,7 @@ do_compile[depends] += " \
41SC_FIRMWARE_NAME ?= "scfw_tcm.bin" 41SC_FIRMWARE_NAME ?= "scfw_tcm.bin"
42 42
43ATF_MACHINE_NAME ?= "bl31-${ATF_PLATFORM}.bin" 43ATF_MACHINE_NAME ?= "bl31-${ATF_PLATFORM}.bin"
44ATF_MACHINE_NAME_append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '-optee', '', d)}" 44ATF_MACHINE_NAME:append = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '-optee', '', d)}"
45 45
46UBOOT_NAME = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}" 46UBOOT_NAME = "u-boot-${MACHINE}.bin-${UBOOT_CONFIG}"
47BOOT_CONFIG_MACHINE = "${BOOT_NAME}-${MACHINE}-${UBOOT_CONFIG}.bin" 47BOOT_CONFIG_MACHINE = "${BOOT_NAME}-${MACHINE}-${UBOOT_CONFIG}.bin"
@@ -58,16 +58,16 @@ IMXBOOT_TARGETS ?= \
58 'flash_multi_cores flash_dcd', d), d)}" 58 'flash_multi_cores flash_dcd', d), d)}"
59 59
60BOOT_STAGING = "${S}/${IMX_BOOT_SOC_TARGET}" 60BOOT_STAGING = "${S}/${IMX_BOOT_SOC_TARGET}"
61BOOT_STAGING_mx8m = "${S}/iMX8M" 61BOOT_STAGING:mx8m = "${S}/iMX8M"
62BOOT_STAGING_mx8dx = "${S}/iMX8QX" 62BOOT_STAGING:mx8dx = "${S}/iMX8QX"
63 63
64SOC_FAMILY = "INVALID" 64SOC_FAMILY = "INVALID"
65SOC_FAMILY_mx8 = "mx8" 65SOC_FAMILY:mx8 = "mx8"
66SOC_FAMILY_mx8m = "mx8m" 66SOC_FAMILY:mx8m = "mx8m"
67SOC_FAMILY_mx8x = "mx8x" 67SOC_FAMILY:mx8x = "mx8x"
68 68
69REV_OPTION ?= "" 69REV_OPTION ?= ""
70REV_OPTION_mx8qxp = \ 70REV_OPTION:mx8qxp = \
71 "${@bb.utils.contains('MACHINE_FEATURES', 'soc-revb0', '', \ 71 "${@bb.utils.contains('MACHINE_FEATURES', 'soc-revb0', '', \
72 'REV=C0', d)}" 72 'REV=C0', d)}"
73 73
@@ -199,6 +199,6 @@ do_deploy() {
199addtask deploy before do_build after do_compile 199addtask deploy before do_build after do_compile
200 200
201PACKAGE_ARCH = "${MACHINE_ARCH}" 201PACKAGE_ARCH = "${MACHINE_ARCH}"
202FILES_${PN} = "/boot" 202FILES:${PN} = "/boot"
203 203
204COMPATIBLE_MACHINE = "(mx8)" 204COMPATIBLE_MACHINE = "(mx8)"
diff --git a/recipes-bsp/imx-sc-firmware/imx-sc-firmware_1.9.0.bb b/recipes-bsp/imx-sc-firmware/imx-sc-firmware_1.9.0.bb
index b8c3d3c3..6eb65b81 100644
--- a/recipes-bsp/imx-sc-firmware/imx-sc-firmware_1.9.0.bb
+++ b/recipes-bsp/imx-sc-firmware/imx-sc-firmware_1.9.0.bb
@@ -15,10 +15,10 @@ SRC_URI[sha256sum] = "df0fe17c93e4c2835542d6b1b2557524f034e378b643100cd838225e82
15 15
16BOARD_TYPE ?= "mek" 16BOARD_TYPE ?= "mek"
17SC_FIRMWARE_NAME ?= "INVALID" 17SC_FIRMWARE_NAME ?= "INVALID"
18SC_FIRMWARE_NAME_mx8qm = "mx8qm-${BOARD_TYPE}-scfw-tcm.bin" 18SC_FIRMWARE_NAME:mx8qm = "mx8qm-${BOARD_TYPE}-scfw-tcm.bin"
19SC_FIRMWARE_NAME_mx8qxp = "mx8qx-${BOARD_TYPE}-scfw-tcm.bin" 19SC_FIRMWARE_NAME:mx8qxp = "mx8qx-${BOARD_TYPE}-scfw-tcm.bin"
20SC_FIRMWARE_NAME_mx8dxl = "mx8dxl-${BOARD_TYPE}-scfw-tcm.bin" 20SC_FIRMWARE_NAME:mx8dxl = "mx8dxl-${BOARD_TYPE}-scfw-tcm.bin"
21SC_FIRMWARE_NAME_mx8dx = "mx8dx-${BOARD_TYPE}-scfw-tcm.bin" 21SC_FIRMWARE_NAME:mx8dx = "mx8dx-${BOARD_TYPE}-scfw-tcm.bin"
22 22
23symlink_name = "scfw_tcm.bin" 23symlink_name = "scfw_tcm.bin"
24 24
diff --git a/recipes-bsp/imx-test/imx-test_00.00.00.bb b/recipes-bsp/imx-test/imx-test_00.00.00.bb
index c29e6a62..070fbd30 100644
--- a/recipes-bsp/imx-test/imx-test_00.00.00.bb
+++ b/recipes-bsp/imx-test/imx-test_00.00.00.bb
@@ -4,7 +4,7 @@ SECTION = "base"
4LICENSE = "MIT" 4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" 5LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
6 6
7ALLOW_EMPTY_${PN} = "1" 7ALLOW_EMPTY:${PN} = "1"
8 8
9PACKAGE_ARCH = "${MACHINE_ARCH}" 9PACKAGE_ARCH = "${MACHINE_ARCH}"
10COMPATIBLE_MACHINE = "(mxs|mx5|mx6|vf50|vf60)" 10COMPATIBLE_MACHINE = "(mxs|mx5|mx6|vf50|vf60)"
diff --git a/recipes-bsp/imx-test/imx-test_git.bb b/recipes-bsp/imx-test/imx-test_git.bb
index 118590d5..a5f33d83 100644
--- a/recipes-bsp/imx-test/imx-test_git.bb
+++ b/recipes-bsp/imx-test/imx-test_git.bb
@@ -9,9 +9,9 @@ LICENSE = "GPLv2+"
9LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-or-later;md5=fed54355545ffd980b814dab4a3b312c" 9LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-or-later;md5=fed54355545ffd980b814dab4a3b312c"
10 10
11DEPENDS = "alsa-lib libdrm" 11DEPENDS = "alsa-lib libdrm"
12DEPENDS_append_mx6 = " imx-lib" 12DEPENDS:append:mx6 = " imx-lib"
13DEPENDS_append_mx7 = " imx-lib" 13DEPENDS:append:mx7 = " imx-lib"
14DEPENDS_append_imxvpu = " virtual/imxvpu" 14DEPENDS:append:imxvpu = " virtual/imxvpu"
15 15
16PE = "1" 16PE = "1"
17PV = "7.0+${SRCPV}" 17PV = "7.0+${SRCPV}"
@@ -29,22 +29,22 @@ inherit module-base use-imx-headers
29INHIBIT_PACKAGE_STRIP = "1" 29INHIBIT_PACKAGE_STRIP = "1"
30INHIBIT_PACKAGE_DEBUG_SPLIT = "1" 30INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
31 31
32PLATFORM_mx6q = "IMX6Q" 32PLATFORM:mx6q = "IMX6Q"
33PLATFORM_mx6dl = "IMX6Q" 33PLATFORM:mx6dl = "IMX6Q"
34PLATFORM_mx6sl = "IMX6SL" 34PLATFORM:mx6sl = "IMX6SL"
35PLATFORM_mx6sll = "IMX6SL" 35PLATFORM:mx6sll = "IMX6SL"
36PLATFORM_mx6sx = "IMX6SX" 36PLATFORM:mx6sx = "IMX6SX"
37PLATFORM_mx6ul = "IMX6UL" 37PLATFORM:mx6ul = "IMX6UL"
38PLATFORM_mx7d = "IMX7D" 38PLATFORM:mx7d = "IMX7D"
39PLATFORM_mx7ulp = "IMX7D" 39PLATFORM:mx7ulp = "IMX7D"
40PLATFORM_mx8 = "IMX8" 40PLATFORM:mx8 = "IMX8"
41 41
42PARALLEL_MAKE = "-j 1" 42PARALLEL_MAKE = "-j 1"
43EXTRA_OEMAKE += "${PACKAGECONFIG_CONFARGS}" 43EXTRA_OEMAKE += "${PACKAGECONFIG_CONFARGS}"
44 44
45PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" 45PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
46PACKAGECONFIG_append_imxvpu = " vpu" 46PACKAGECONFIG:append:imxvpu = " vpu"
47PACKAGECONFIG_append_mx8m = " swpdm" 47PACKAGECONFIG:append:mx8m = " swpdm"
48 48
49PACKAGECONFIG[x11] = ",,libx11 libxdamage libxrender libxrandr" 49PACKAGECONFIG[x11] = ",,libx11 libxdamage libxrender libxrandr"
50PACKAGECONFIG[vpu] = "HAS_VPU=true,HAS_VPU=false,virtual/imxvpu" 50PACKAGECONFIG[vpu] = "HAS_VPU=true,HAS_VPU=false,virtual/imxvpu"
@@ -76,7 +76,7 @@ do_install() {
76 install -m 0644 ${WORKDIR}/memtool_profile ${D}/home/root/.profile 76 install -m 0644 ${WORKDIR}/memtool_profile ${D}/home/root/.profile
77} 77}
78 78
79FILES_${PN} += "/unit_tests /home/root/.profile" 79FILES:${PN} += "/unit_tests /home/root/.profile"
80RDEPENDS_${PN} = "bash" 80RDEPENDS:${PN} = "bash"
81 81
82FILES_${PN}-dbg += "/unit_tests/.debug" 82FILES:${PN}-dbg += "/unit_tests/.debug"
diff --git a/recipes-bsp/imx-uuc/imx-uuc_git.bb b/recipes-bsp/imx-uuc/imx-uuc_git.bb
index bfa6607b..02331a80 100644
--- a/recipes-bsp/imx-uuc/imx-uuc_git.bb
+++ b/recipes-bsp/imx-uuc/imx-uuc_git.bb
@@ -16,6 +16,6 @@ SRCREV = "d6afb27e55d73d7ad08cd2dd51c784d8ec9694dc"
16 16
17S = "${WORKDIR}/git" 17S = "${WORKDIR}/git"
18 18
19FILES_${PN} += "/linuxrc /fat" 19FILES:${PN} += "/linuxrc /fat"
20 20
21COMPATIBLE_MACHINE = "(imx|use-mainline-bsp)" 21COMPATIBLE_MACHINE = "(imx|use-mainline-bsp)"
diff --git a/recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.4.0.bb b/recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.4.0.bb
index 58a140b4..33208bdf 100644
--- a/recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.4.0.bb
+++ b/recipes-bsp/imx-vpu-hantro-vc/imx-vpu-hantro-vc_1.4.0.bb
@@ -30,6 +30,6 @@ do_install () {
30 rm ${D}${D_SUBDIR}/${SCR} 30 rm ${D}${D_SUBDIR}/${SCR}
31} 31}
32 32
33FILES_${PN} = "/" 33FILES:${PN} = "/"
34 34
35COMPATIBLE_MACHINE = "(mx8mp)" 35COMPATIBLE_MACHINE = "(mx8mp)"
diff --git a/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro-daemon_1.0.0.bb b/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro-daemon_1.0.0.bb
index 88b9ee0e..d362fce3 100644
--- a/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro-daemon_1.0.0.bb
+++ b/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro-daemon_1.0.0.bb
@@ -4,7 +4,7 @@ LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cd8bc2a79509c22fc9c1782a151210b1" 4LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cd8bc2a79509c22fc9c1782a151210b1"
5 5
6DEPENDS = "imx-vpu-hantro" 6DEPENDS = "imx-vpu-hantro"
7DEPENDS_append_mx8mp = " imx-vpu-hantro-vc" 7DEPENDS:append:mx8mp = " imx-vpu-hantro-vc"
8 8
9SRC_URI = " \ 9SRC_URI = " \
10 ${FSL_MIRROR}/${BP}.tar.gz \ 10 ${FSL_MIRROR}/${BP}.tar.gz \
@@ -13,9 +13,9 @@ SRC_URI = " \
13SRC_URI[md5sum] = "65417710ef22214523c37f50f34b6ab2" 13SRC_URI[md5sum] = "65417710ef22214523c37f50f34b6ab2"
14SRC_URI[sha256sum] = "897d174c4c0818f31012d8a60ed51fc83fdfc55fca2d2b0fc24a0db3e9f3b6e8" 14SRC_URI[sha256sum] = "897d174c4c0818f31012d8a60ed51fc83fdfc55fca2d2b0fc24a0db3e9f3b6e8"
15 15
16PLATFORM_mx8mm = "IMX8MM" 16PLATFORM:mx8mm = "IMX8MM"
17PLATFORM_mx8mq = "IMX8MQ" 17PLATFORM:mx8mq = "IMX8MQ"
18PLATFORM_mx8mp = "IMX8MP" 18PLATFORM:mx8mp = "IMX8MP"
19 19
20EXTRA_OEMAKE = " \ 20EXTRA_OEMAKE = " \
21 CROSS_COMPILE="${HOST_PREFIX}" \ 21 CROSS_COMPILE="${HOST_PREFIX}" \
diff --git a/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.22.0.bb b/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.22.0.bb
index 20ac87c7..2ecb1e4b 100644
--- a/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.22.0.bb
+++ b/recipes-bsp/imx-vpu-hantro/imx-vpu-hantro_1.22.0.bb
@@ -14,9 +14,9 @@ inherit fsl-eula-unpack use-imx-headers
14 14
15PARALLEL_MAKE="-j 1" 15PARALLEL_MAKE="-j 1"
16 16
17PLATFORM_mx8mm = "IMX8MM" 17PLATFORM:mx8mm = "IMX8MM"
18PLATFORM_mx8mq = "IMX8MQ" 18PLATFORM:mx8mq = "IMX8MQ"
19PLATFORM_mx8mp = "IMX8MP" 19PLATFORM:mx8mp = "IMX8MP"
20 20
21EXTRA_OEMAKE = " \ 21EXTRA_OEMAKE = " \
22 CROSS_COMPILE="${HOST_PREFIX}" \ 22 CROSS_COMPILE="${HOST_PREFIX}" \
@@ -28,8 +28,8 @@ do_install () {
28 oe_runmake install DEST_DIR="${D}" 28 oe_runmake install DEST_DIR="${D}"
29} 29}
30 30
31FILES_${PN} += "/unit_tests" 31FILES:${PN} += "/unit_tests"
32 32
33RDEPENDS_${PN} += "imx-vpu-hantro-daemon" 33RDEPENDS:${PN} += "imx-vpu-hantro-daemon"
34 34
35COMPATIBLE_MACHINE = "(mx8mq|mx8mm|mx8mp)" 35COMPATIBLE_MACHINE = "(mx8mq|mx8mm|mx8mp)"
diff --git a/recipes-bsp/imx-vpu/imx-vpu_5.4.39.3.bb b/recipes-bsp/imx-vpu/imx-vpu_5.4.39.3.bb
index 8c6492c5..95252dae 100644
--- a/recipes-bsp/imx-vpu/imx-vpu_5.4.39.3.bb
+++ b/recipes-bsp/imx-vpu/imx-vpu_5.4.39.3.bb
@@ -7,7 +7,7 @@ LICENSE = "Proprietary"
7LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9" 7LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9"
8 8
9PROVIDES = "virtual/imxvpu" 9PROVIDES = "virtual/imxvpu"
10RPROVIDES_${PN} = "virtual/imxvpu" 10RPROVIDES:${PN} = "virtual/imxvpu"
11 11
12PE = "1" 12PE = "1"
13 13
diff --git a/recipes-bsp/inphi/inphi_git.bb b/recipes-bsp/inphi/inphi_git.bb
index 3f3c5f28..314f09d4 100644
--- a/recipes-bsp/inphi/inphi_git.bb
+++ b/recipes-bsp/inphi/inphi_git.bb
@@ -21,7 +21,7 @@ do_deploy () {
21addtask deploy before do_build after do_install 21addtask deploy before do_build after do_install
22 22
23PACKAGES += "${PN}-image" 23PACKAGES += "${PN}-image"
24FILES_${PN}-image += "/boot" 24FILES:${PN}-image += "/boot"
25 25
26COMPATIBLE_MACHINE = "(qoriq-arm64)" 26COMPATIBLE_MACHINE = "(qoriq-arm64)"
27PACKAGE_ARCH = "${MACHINE_ARCH}" 27PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/recipes-bsp/isp-imx/basler-camera_4.2.2.13.0.bb b/recipes-bsp/isp-imx/basler-camera_4.2.2.13.0.bb
index e7d4b652..dc6e2d7e 100644
--- a/recipes-bsp/isp-imx/basler-camera_4.2.2.13.0.bb
+++ b/recipes-bsp/isp-imx/basler-camera_4.2.2.13.0.bb
@@ -21,7 +21,7 @@ do_install() {
21 21
22SYSTEMD_AUTO_ENABLE = "enable" 22SYSTEMD_AUTO_ENABLE = "enable"
23 23
24FILES_${PN} = "${libdir} /opt" 24FILES:${PN} = "${libdir} /opt"
25INSANE_SKIP_${PN} = "file-rdeps already-stripped" 25INSANE_SKIP:${PN} = "file-rdeps already-stripped"
26 26
27COMPATIBLE_MACHINE = "(mx8mp)" 27COMPATIBLE_MACHINE = "(mx8mp)"
diff --git a/recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-NR_DEVICE_TREE_BASLER-variable.patch b/recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-NR_DEVICE_TREE_BASLER-variable.patch
new file mode 100644
index 00000000..950098cd
--- /dev/null
+++ b/recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-NR_DEVICE_TREE_BASLER-variable.patch
@@ -0,0 +1,53 @@
1From 9c65e20b82cfd9e82b849b3140eec7b8c18922dc Mon Sep 17 00:00:00 2001
2From: Chris Dimich <Chris.Dimich@boundarydevices.com>
3Date: Mon, 13 Sep 2021 17:56:02 -0700
4Subject: [PATCH 1/1] start_isp.sh: fix NR_DEVICE_TREE_BASLER variable
5
6Also remove uneeded -lm option from run.sh script.
7
8Signed-off-by: Chris Dimich <Chris.Dimich@boundarydevices.com>
9---
10 imx/start_isp.sh | 8 ++++----
11 1 file changed, 4 insertions(+), 4 deletions(-)
12
13diff --git a/imx/start_isp.sh b/imx/start_isp.sh
14index 6daabc59c..250226935 100755
15--- a/imx/start_isp.sh
16+++ b/imx/start_isp.sh
17@@ -7,7 +7,7 @@
18 #
19
20 RUNTIME_DIR="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
21-NR_DEVICE_TREE_BASLER=$(grep basler-camera-vvcam /sys/firmware/devicetree/base/soc@0/*/i2c@*/*/compatible -l | wc -l 2> /dev/null)
22+NR_DEVICE_TREE_BASLER=$(grep basler-camera-vvcam `find /sys/firmware/devicetree/base/soc@0/ -name compatible | grep i2c` -l | wc -l 2> /dev/null)
23 NR_DEVICE_TREE_OV5640=$(grep ov5640 /sys/firmware/devicetree/base/soc@0/*/i2c@*/*/compatible -l | wc -l 2> /dev/null)
24
25 # check if the basler device has been enabled in the device tree
26@@ -21,13 +21,13 @@ if [ $NR_DEVICE_TREE_BASLER -eq 1 ]; then
27
28 # Default configuration for Basler daA3840-30mc: basler_4k
29 # Available configurations: basler_4k, basler_1080p60, basler_4khdr, basler_1080p60hdr
30- exec ./run.sh -c basler_4k -lm
31+ exec ./run.sh -c basler_4k
32
33 elif [ $NR_DEVICE_TREE_OV5640 -eq 1 ]; then
34
35 # Default configuration for Basler daA3840-30mc: basler_1080p60
36 # Available configurations: basler_1080p60, basler_1080p60hdr
37- exec ./run.sh -c basler_1080p60 -lm
38+ exec ./run.sh -c basler_1080p60
39
40 fi
41
42@@ -38,7 +38,7 @@ elif [ $NR_DEVICE_TREE_BASLER -eq 2 ]; then
43 cd $RUNTIME_DIR
44 # Default configuration for Basler daA3840-30mc: dual_basler_1080p60
45 # Available configurations: dual_basler_1080p60, dual_basler_1080p60hdr, dual_basler_1080p25hdr
46- exec ./run.sh -c dual_basler_1080p60 -lm
47+ exec ./run.sh -c dual_basler_1080p60
48
49 else
50 # no device tree found exit with code no device or address
51--
522.31.1
53
diff --git a/recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-test-to-be-generic.patch b/recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-test-to-be-generic.patch
deleted file mode 100644
index be2e1c61..00000000
--- a/recipes-bsp/isp-imx/isp-imx/0001-start_isp.sh-fix-test-to-be-generic.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1From 708f25cfe522df162c3e2c7c56cbe2f7000cb5e4 Mon Sep 17 00:00:00 2001
2From: Gary Bisson <gary.bisson@boundarydevices.com>
3Date: Mon, 14 Dec 2020 14:26:01 +0100
4Subject: [PATCH] start_isp.sh: fix test to be generic
5
6So that it works on EVK and any other i.MX 8M Plus platform.
7
8Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
9---
10 imx/start_isp.sh | 13 +++++--------
11 1 file changed, 5 insertions(+), 8 deletions(-)
12
13Index: isp-imx-4.2.2.13.0/imx/start_isp.sh
14===================================================================
15--- isp-imx-4.2.2.13.0.orig/imx/start_isp.sh
16+++ isp-imx-4.2.2.13.0/imx/start_isp.sh
17@@ -9,6 +9,7 @@
18 RUNTIME_DIR="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
19 NR_DEVICE_TREE_BASLER=$(grep basler-camera-vvcam /sys/firmware/devicetree/base/soc@0/*/i2c@*/*/compatible -l | wc -l 2> /dev/null)
20 NR_DEVICE_TREE_OV5640=$(grep ov5640 /sys/firmware/devicetree/base/soc@0/*/i2c@*/*/compatible -l | wc -l 2> /dev/null)
21+DMESG_BASLER=`dmesg | grep Basler`
22
23 # check if the basler device has been enabled in the device tree
24 if [ $NR_DEVICE_TREE_BASLER -eq 1 ]; then
25@@ -40,8 +41,15 @@ elif [ $NR_DEVICE_TREE_BASLER -eq 2 ]; t
26 # Available configurations: dual_basler_1080p60, dual_basler_1080p60hdr, dual_basler_1080p25hdr
27 exec ./run.sh -c dual_basler_1080p60 -lm
28
29+elif [ ! -z "$DMESG_BASLER" ]; then
30+
31+ echo "Starting isp_media_server for generic Basler"
32+
33+ cd $RUNTIME_DIR
34+ exec ./run.sh -c basler_1080p60
35+
36 else
37 # no device tree found exit with code no device or address
38- echo "No device tree found for Basler, check dtb file!" >&2
39+ echo "Basler camera not found!" >&2
40 exit 6
41 fi
diff --git a/recipes-bsp/isp-imx/isp-imx_4.2.2.13.0.bb b/recipes-bsp/isp-imx/isp-imx_4.2.2.13.0.bb
index ad44065a..b15d0b9e 100644
--- a/recipes-bsp/isp-imx/isp-imx_4.2.2.13.0.bb
+++ b/recipes-bsp/isp-imx/isp-imx_4.2.2.13.0.bb
@@ -7,7 +7,7 @@ DEPENDS = "python3 libdrm virtual/libg2d"
7 7
8SRC_URI = " \ 8SRC_URI = " \
9 ${FSL_MIRROR}/${BP}.bin;fsl-eula=true \ 9 ${FSL_MIRROR}/${BP}.bin;fsl-eula=true \
10 file://0001-start_isp.sh-fix-test-to-be-generic.patch \ 10 file://0001-start_isp.sh-fix-NR_DEVICE_TREE_BASLER-variable.patch \
11 file://0001-isp-imx-drop-use-of-__TIME__-__DATE__.patch \ 11 file://0001-isp-imx-drop-use-of-__TIME__-__DATE__.patch \
12" 12"
13 13
@@ -22,7 +22,7 @@ OECMAKE_SOURCEPATH = "${S}/appshell"
22# Use make instead of ninja 22# Use make instead of ninja
23OECMAKE_GENERATOR = "Unix Makefiles" 23OECMAKE_GENERATOR = "Unix Makefiles"
24 24
25SYSTEMD_SERVICE_${PN} = "imx8-isp.service" 25SYSTEMD_SERVICE:${PN} = "imx8-isp.service"
26 26
27EXTRA_OECMAKE += " \ 27EXTRA_OECMAKE += " \
28 -DCMAKE_BUILD_TYPE=release \ 28 -DCMAKE_BUILD_TYPE=release \
@@ -42,7 +42,7 @@ EXTRA_OECMAKE += " \
42 -Wno-dev \ 42 -Wno-dev \
43" 43"
44 44
45do_configure_prepend() { 45do_configure:prepend() {
46 export SDKTARGETSYSROOT=${STAGING_DIR_HOST} 46 export SDKTARGETSYSROOT=${STAGING_DIR_HOST}
47} 47}
48 48
@@ -74,15 +74,15 @@ do_install() {
74# The build contains a mix of versioned and unversioned libraries, so 74# The build contains a mix of versioned and unversioned libraries, so
75# the default packaging configuration needs some modifications 75# the default packaging configuration needs some modifications
76FILES_SOLIBSDEV = "" 76FILES_SOLIBSDEV = ""
77FILES_${PN} += "/opt ${libdir}/lib*${SOLIBSDEV}" 77FILES:${PN} += "/opt ${libdir}/lib*${SOLIBSDEV}"
78FILES_${PN}-dev += " \ 78FILES:${PN}-dev += " \
79 ${libdir}/libjsoncpp.so \ 79 ${libdir}/libjsoncpp.so \
80 ${libdir}/libos08a20.so \ 80 ${libdir}/libos08a20.so \
81 ${libdir}/libov2775.so \ 81 ${libdir}/libov2775.so \
82" 82"
83 83
84INSANE_SKIP_${PN} = "rpaths" 84INSANE_SKIP:${PN} = "rpaths"
85 85
86RDEPENDS_${PN} = "libdrm libpython3" 86RDEPENDS:${PN} = "libdrm libpython3"
87 87
88COMPATIBLE_MACHINE = "(mx8mp)" 88COMPATIBLE_MACHINE = "(mx8mp)"
diff --git a/recipes-bsp/libimxdmabuffer/libimxdmabuffer_1.0.1.bb b/recipes-bsp/libimxdmabuffer/libimxdmabuffer_1.0.1.bb
index 726b1e16..e57a4273 100644
--- a/recipes-bsp/libimxdmabuffer/libimxdmabuffer_1.0.1.bb
+++ b/recipes-bsp/libimxdmabuffer/libimxdmabuffer_1.0.1.bb
@@ -26,15 +26,15 @@ EXTRA_OECONF = "--imx-linux-headers-path=${STAGING_INCDIR_IMX} \
26# libg2d. However, that implementation's g2d_alloc() function 26# libg2d. However, that implementation's g2d_alloc() function
27# is broken, so we cannot use it. 27# is broken, so we cannot use it.
28LIBG2D_PACKAGECONFIG = "g2d" 28LIBG2D_PACKAGECONFIG = "g2d"
29LIBG2D_PACKAGECONFIG_imxdpu = "" 29LIBG2D_PACKAGECONFIG:imxdpu = ""
30 30
31PACKAGECONFIG ?= " " 31PACKAGECONFIG ?= " "
32PACKAGECONFIG_append_imxgpu2d = " ${LIBG2D_PACKAGECONFIG}" 32PACKAGECONFIG:append:imxgpu2d = " ${LIBG2D_PACKAGECONFIG}"
33PACKAGECONFIG_append_imxipu = " ipu" 33PACKAGECONFIG:append:imxipu = " ipu"
34PACKAGECONFIG_append_imxpxp = " pxp" 34PACKAGECONFIG:append:imxpxp = " pxp"
35PACKAGECONFIG_append_mx8m = " ion dwl" 35PACKAGECONFIG:append:mx8m = " ion dwl"
36PACKAGECONFIG_append_mx8qm = " ion" 36PACKAGECONFIG:append:mx8qm = " ion"
37PACKAGECONFIG_append_mx8qxp = " ion" 37PACKAGECONFIG:append:mx8qxp = " ion"
38 38
39HANTRO_CONF = "--hantro-headers-path=${STAGING_INCDIR}/hantro_dec --hantro-decoder-version=G2" 39HANTRO_CONF = "--hantro-headers-path=${STAGING_INCDIR}/hantro_dec --hantro-decoder-version=G2"
40 40
diff --git a/recipes-bsp/ls2-phy/ls2-phy_git.bb b/recipes-bsp/ls2-phy/ls2-phy_git.bb
index a1c412be..dd5f8fc0 100644
--- a/recipes-bsp/ls2-phy/ls2-phy_git.bb
+++ b/recipes-bsp/ls2-phy/ls2-phy_git.bb
@@ -21,7 +21,7 @@ do_deploy () {
21addtask deploy before do_build after do_install 21addtask deploy before do_build after do_install
22 22
23PACKAGES += "${PN}-image" 23PACKAGES += "${PN}-image"
24FILES_${PN}-image += "/boot" 24FILES:${PN}-image += "/boot"
25 25
26COMPATIBLE_MACHINE = "(qoriq)" 26COMPATIBLE_MACHINE = "(qoriq)"
27PACKAGE_ARCH = "${MACHINE_ARCH}" 27PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/recipes-bsp/mc-utils/mc-utils_git.bb b/recipes-bsp/mc-utils/mc-utils_git.bb
index b3c79b99..fa7d3600 100644
--- a/recipes-bsp/mc-utils/mc-utils_git.bb
+++ b/recipes-bsp/mc-utils/mc-utils_git.bb
@@ -15,13 +15,13 @@ SRCREV = "8e0b863693fc2ccbc62a62c79b4e3db6da88c16e"
15S = "${WORKDIR}/git" 15S = "${WORKDIR}/git"
16 16
17MC_CFG ?= "" 17MC_CFG ?= ""
18MC_CFG_ls1088a = "ls1088a" 18MC_CFG:ls1088a = "ls1088a"
19MC_CFG_ls2088a = "ls2088a" 19MC_CFG_ls2088a = "ls2088a"
20MC_CFG_lx2160a = "lx2160a" 20MC_CFG:lx2160a = "lx2160a"
21MC_CFG_lx2162aqds = "lx2162aqds" 21MC_CFG:lx2162aqds = "lx2162aqds"
22 22
23MC_FLAVOUR ?= "RDB" 23MC_FLAVOUR ?= "RDB"
24MC_FLAVOUR_lx2162a = "" 24MC_FLAVOUR:lx2162a = ""
25 25
26do_compile () { 26do_compile () {
27 oe_runmake -C config 27 oe_runmake -C config
@@ -47,5 +47,5 @@ do_deploy () {
47addtask deploy after do_install 47addtask deploy after do_install
48 48
49PACKAGES += "${PN}-image" 49PACKAGES += "${PN}-image"
50FILES_${PN}-image += "/boot" 50FILES:${PN}-image += "/boot"
51COMPATIBLE_MACHINE = "(qoriq-arm64)" 51COMPATIBLE_MACHINE = "(qoriq-arm64)"
diff --git a/recipes-bsp/ppfe-firmware/ppfe-firmware_git.bb b/recipes-bsp/ppfe-firmware/ppfe-firmware_git.bb
index 24bb8d9f..5c97486e 100644
--- a/recipes-bsp/ppfe-firmware/ppfe-firmware_git.bb
+++ b/recipes-bsp/ppfe-firmware/ppfe-firmware_git.bb
@@ -27,8 +27,8 @@ do_deploy () {
27 27
28addtask deploy after do_install 28addtask deploy after do_install
29 29
30FILES_${PN} += "/lib/firmware /boot/" 30FILES:${PN} += "/lib/firmware /boot/"
31INSANE_SKIP_${PN} += "arch already-stripped" 31INSANE_SKIP:${PN} += "arch already-stripped"
32INHIBIT_PACKAGE_STRIP = "1" 32INHIBIT_PACKAGE_STRIP = "1"
33INHIBIT_SYSROOT_STRIP = "1" 33INHIBIT_SYSROOT_STRIP = "1"
34 34
diff --git a/recipes-bsp/qe-ucode/qe-ucode_git.bb b/recipes-bsp/qe-ucode/qe-ucode_git.bb
index cecd5903..19cb79e0 100644
--- a/recipes-bsp/qe-ucode/qe-ucode_git.bb
+++ b/recipes-bsp/qe-ucode/qe-ucode_git.bb
@@ -22,7 +22,7 @@ do_deploy () {
22addtask deploy before do_build after do_install 22addtask deploy before do_build after do_install
23 23
24PACKAGES += "${PN}-image" 24PACKAGES += "${PN}-image"
25FILES_${PN}-image += "/boot/*" 25FILES:${PN}-image += "/boot/*"
26 26
27COMPATIBLE_MACHINE = "(qoriq)" 27COMPATIBLE_MACHINE = "(qoriq)"
28PACKAGE_ARCH = "${MACHINE_SOCARCH}" 28PACKAGE_ARCH = "${MACHINE_SOCARCH}"
diff --git a/recipes-bsp/rcw/rcw_git.bb b/recipes-bsp/rcw/rcw_git.bb
index 69350615..88b7b995 100644
--- a/recipes-bsp/rcw/rcw_git.bb
+++ b/recipes-bsp/rcw/rcw_git.bb
@@ -17,9 +17,9 @@ export PYTHON = "${USRBINPATH}/python3"
17M="${@d.getVar('MACHINE').replace('-64b','').replace('-32b','').replace('-${SITEINFO_ENDIANNESS}','')}" 17M="${@d.getVar('MACHINE').replace('-64b','').replace('-32b','').replace('-${SITEINFO_ENDIANNESS}','')}"
18 18
19BOARD_TARGETS="${M}" 19BOARD_TARGETS="${M}"
20BOARD_TARGETS_ls2088ardb="${M} ${M}_rev1.1" 20BOARD_TARGETS:ls2088ardb="${M} ${M}_rev1.1"
21BOARD_TARGETS_ls1088ardb-pb="ls1088ardb" 21BOARD_TARGETS:ls1088ardb-pb="ls1088ardb"
22BOARD_TARGETS_lx2160ardb = "${M} ${M}_rev2" 22BOARD_TARGETS:lx2160ardb = "${M} ${M}_rev2"
23 23
24do_compile () { 24do_compile () {
25 oe_runmake BOARDS="${BOARD_TARGETS}" DESTDIR=${D}/boot/rcw/ 25 oe_runmake BOARDS="${BOARD_TARGETS}" DESTDIR=${D}/boot/rcw/
@@ -36,7 +36,7 @@ do_deploy () {
36addtask deploy after do_install 36addtask deploy after do_install
37 37
38PACKAGES += "${PN}-image" 38PACKAGES += "${PN}-image"
39FILES_${PN}-image += "/boot" 39FILES:${PN}-image += "/boot"
40 40
41COMPATIBLE_MACHINE = "(qoriq)" 41COMPATIBLE_MACHINE = "(qoriq)"
42PACKAGE_ARCH = "${MACHINE_ARCH}" 42PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/recipes-bsp/u-boot/libubootenv_%.bbappend b/recipes-bsp/u-boot/libubootenv_%.bbappend
index 2633c344..619b510e 100644
--- a/recipes-bsp/u-boot/libubootenv_%.bbappend
+++ b/recipes-bsp/u-boot/libubootenv_%.bbappend
@@ -29,8 +29,8 @@ def fixup_uboot_config_dependency(d):
29 # | Signed-off-by: Ming Liu <liu.ming50@gmail.com> 29 # | Signed-off-by: Ming Liu <liu.ming50@gmail.com>
30 # | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> 30 # | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
31 # `---- 31 # `----
32 ubootmachine = d.getVar("UBOOT_MACHINE_pn-%s" % imx_default_bootloader) 32 ubootmachine = d.getVar("UBOOT_MACHINE:pn-%s" % imx_default_bootloader)
33 ubootconfig = (d.getVar("UBOOT_CONFIG_pn-%s" % imx_default_bootloader) or "").split() 33 ubootconfig = (d.getVar("UBOOT_CONFIG:pn-%s" % imx_default_bootloader) or "").split()
34 34
35 d.setVar("UBOOT_CONFIG", ubootconfig) 35 d.setVar("UBOOT_CONFIG", ubootconfig)
36 d.setVar("UBOOT_MACHINE", ubootmachine) 36 d.setVar("UBOOT_MACHINE", ubootmachine)
diff --git a/recipes-bsp/u-boot/u-boot-fslc-common_2021.07.inc b/recipes-bsp/u-boot/u-boot-fslc-common_2021.07.inc
index 839a503d..3c56a8f2 100644
--- a/recipes-bsp/u-boot/u-boot-fslc-common_2021.07.inc
+++ b/recipes-bsp/u-boot/u-boot-fslc-common_2021.07.inc
@@ -10,7 +10,7 @@ DEPENDS += "flex-native bison-native"
10 10
11SRC_URI = "git://github.com/Freescale/u-boot-fslc.git;branch=${SRCBRANCH}" 11SRC_URI = "git://github.com/Freescale/u-boot-fslc.git;branch=${SRCBRANCH}"
12 12
13SRCREV = "587e796995604fb669a3552daae682b4d6d346d9" 13SRCREV = "691e634bfd317ede487d2b864a126847ffeb4aa7"
14SRCBRANCH = "2021.07+fslc" 14SRCBRANCH = "2021.07+fslc"
15 15
16PV = "v2021.07+git${SRCPV}" 16PV = "v2021.07+git${SRCPV}"
diff --git a/recipes-bsp/u-boot/u-boot-fslc-mfgtool_2021.07.bb b/recipes-bsp/u-boot/u-boot-fslc-mfgtool_2021.07.bb
index 7f02746b..2e79166b 100644
--- a/recipes-bsp/u-boot/u-boot-fslc-mfgtool_2021.07.bb
+++ b/recipes-bsp/u-boot/u-boot-fslc-mfgtool_2021.07.bb
@@ -2,7 +2,7 @@
2# Copyright (C) 2014-2016 Freescale Semiconductor 2# Copyright (C) 2014-2016 Freescale Semiconductor
3# Copyright 2017-2019 NXP 3# Copyright 2017-2019 NXP
4 4
5FILESEXTRAPATHS_prepend := "${THISDIR}/u-boot-fslc:" 5FILESEXTRAPATHS:prepend := "${THISDIR}/u-boot-fslc:"
6 6
7require u-boot-fslc_${PV}.bb 7require u-boot-fslc_${PV}.bb
8require u-boot-mfgtool.inc 8require u-boot-mfgtool.inc
diff --git a/recipes-bsp/u-boot/u-boot-fslc-mxsboot_2021.07.bb b/recipes-bsp/u-boot/u-boot-fslc-mxsboot_2021.07.bb
index 2492f450..a3a732ef 100644
--- a/recipes-bsp/u-boot/u-boot-fslc-mxsboot_2021.07.bb
+++ b/recipes-bsp/u-boot/u-boot-fslc-mxsboot_2021.07.bb
@@ -7,9 +7,9 @@ DEPENDS = "bison-native dtc openssl"
7 7
8PROVIDES = "u-boot-mxsboot" 8PROVIDES = "u-boot-mxsboot"
9 9
10EXTRA_OEMAKE_class-target = 'CROSS_COMPILE="${TARGET_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1 CONFIG_MX28=y' 10EXTRA_OEMAKE:class-target = 'CROSS_COMPILE="${TARGET_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1 CONFIG_MX28=y'
11EXTRA_OEMAKE_class-native = 'CC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1 CONFIG_MX28=y' 11EXTRA_OEMAKE:class-native = 'CC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1 CONFIG_MX28=y'
12EXTRA_OEMAKE_class-nativesdk = 'CROSS_COMPILE="${HOST_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1 CONFIG_MX28=y' 12EXTRA_OEMAKE:class-nativesdk = 'CROSS_COMPILE="${HOST_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1 CONFIG_MX28=y'
13 13
14do_compile () { 14do_compile () {
15 oe_runmake -C ${S} O=${B} sandbox_defconfig 15 oe_runmake -C ${S} O=${B} sandbox_defconfig
@@ -27,6 +27,6 @@ do_install () {
27 ln -sf uboot-mxsboot ${D}${bindir}/mxsboot 27 ln -sf uboot-mxsboot ${D}${bindir}/mxsboot
28} 28}
29 29
30COMPATIBLE_MACHINE_class-target = "(mxs|mx5|mx6|mx7|vf|use-mainline-bsp)" 30COMPATIBLE_MACHINE:class-target = "(mxs|mx5|mx6|mx7|vf|use-mainline-bsp)"
31 31
32BBCLASSEXTEND = "native nativesdk" 32BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-bsp/u-boot/u-boot-fslc_2021.07.bb b/recipes-bsp/u-boot/u-boot-fslc_2021.07.bb
index 4f97c722..fa219325 100644
--- a/recipes-bsp/u-boot/u-boot-fslc_2021.07.bb
+++ b/recipes-bsp/u-boot/u-boot-fslc_2021.07.bb
@@ -12,7 +12,7 @@ DEPENDS += "bc-native dtc-native python3-setuptools-native"
12 12
13# Location known to imx-boot component, where U-Boot artifacts 13# Location known to imx-boot component, where U-Boot artifacts
14# should be additionally deployed. 14# should be additionally deployed.
15# See below note above do_deploy_append_mx8m for the purpose of 15# See below note above do_deploy:append:mx8m for the purpose of
16# this delopyment location 16# this delopyment location
17BOOT_TOOLS = "imx-boot-tools" 17BOOT_TOOLS = "imx-boot-tools"
18 18
@@ -27,47 +27,5 @@ EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CPPFLAGS}" \
27 HOSTLDFLAGS="${BUILD_LDFLAGS}" \ 27 HOSTLDFLAGS="${BUILD_LDFLAGS}" \
28 HOSTSTRIP=true' 28 HOSTSTRIP=true'
29 29
30#
31# imx8m machines require additional deployment tasks to be
32# carried out due to the fact that final boot image is constructed
33# using imx-boot recipe. It produces a boot binary image, which is
34# constructed from various binary components (u-boot with separate
35# dtb, atf, DDR firmware and optional op-tee) into a single image
36# using FIT format. This image is then parsed and loaded either via
37# SPL directly (imx8mm), or using bootrom code (imx8mn and imx8mp).
38#
39# In order for imx-boot to construct the final binary boot image,
40# it is required that the U-Boot dtb files are to be deployed into
41# a location known by imx-boot so they could be picked up and
42# inserted into the boot container.
43#
44# NOTE: This is only applicable to those derivatives of mx8m family,
45# which did not adopt the boot container mechanism provided by U-Boot
46# build system itself. U-Boot is capable of producing a result binary,
47# which includes all those deployed pieces below, hence once derivative
48# starts to use it - below append would not be necessary.
49# Once all mx8m derivatives are migrated to use the 'flash.bin' boot
50# container - this append can be dropped completely.
51do_deploy_append_mx8m() {
52 # Deploy the mkimage, u-boot-nodtb.bin and fsl-imx8m*-XX.dtb for mkimage to generate boot binary
53 if [ -n "${UBOOT_CONFIG}" ]; then
54 for config in ${UBOOT_MACHINE}; do
55 i=$(expr $i + 1);
56 for type in ${UBOOT_CONFIG}; do
57 j=$(expr $j + 1);
58 if [ $j -eq $i ]
59 then
60 install -d ${DEPLOYDIR}/${BOOT_TOOLS}
61 install -m 0777 ${B}/${config}/arch/arm/dts/${UBOOT_DTB_NAME} ${DEPLOYDIR}/${BOOT_TOOLS}
62 install -m 0777 ${B}/${config}/u-boot-nodtb.bin ${DEPLOYDIR}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${UBOOT_CONFIG}
63 fi
64 done
65 unset j
66 done
67 unset i
68 fi
69}
70
71
72PACKAGE_ARCH = "${MACHINE_ARCH}" 30PACKAGE_ARCH = "${MACHINE_ARCH}"
73COMPATIBLE_MACHINE = "(mxs|mx5|mx6|mx7|vf|use-mainline-bsp)" 31COMPATIBLE_MACHINE = "(mxs|mx5|mx6|mx7|vf|use-mainline-bsp)"
diff --git a/recipes-bsp/u-boot/u-boot-imx-mfgtool_2021.04.bb b/recipes-bsp/u-boot/u-boot-imx-mfgtool_2021.04.bb
index 2b296c19..af502889 100644
--- a/recipes-bsp/u-boot/u-boot-imx-mfgtool_2021.04.bb
+++ b/recipes-bsp/u-boot/u-boot-imx-mfgtool_2021.04.bb
@@ -2,7 +2,7 @@
2# Copyright (C) 2014-2016 Freescale Semiconductor 2# Copyright (C) 2014-2016 Freescale Semiconductor
3# Copyright 2017-2019 NXP 3# Copyright 2017-2019 NXP
4 4
5FILESEXTRAPATHS_prepend := "${THISDIR}/u-boot-imx:" 5FILESEXTRAPATHS:prepend := "${THISDIR}/u-boot-imx:"
6 6
7require u-boot-imx_${PV}.bb 7require u-boot-imx_${PV}.bb
8require u-boot-mfgtool.inc 8require u-boot-mfgtool.inc
diff --git a/recipes-bsp/u-boot/u-boot-imx_2021.04.bb b/recipes-bsp/u-boot/u-boot-imx_2021.04.bb
index 6a279a12..bb5809e2 100644
--- a/recipes-bsp/u-boot/u-boot-imx_2021.04.bb
+++ b/recipes-bsp/u-boot/u-boot-imx_2021.04.bb
@@ -7,7 +7,7 @@ require u-boot-imx-common_${PV}.inc
7 7
8PROVIDES += "u-boot" 8PROVIDES += "u-boot"
9 9
10do_deploy_append_mx8m() { 10do_deploy:append:mx8m() {
11 # Deploy u-boot-nodtb.bin and fsl-imx8m*-XX.dtb for mkimage to generate boot binary 11 # Deploy u-boot-nodtb.bin and fsl-imx8m*-XX.dtb for mkimage to generate boot binary
12 if [ -n "${UBOOT_CONFIG}" ] 12 if [ -n "${UBOOT_CONFIG}" ]
13 then 13 then
diff --git a/recipes-bsp/u-boot/u-boot-qoriq_2020.04.bb b/recipes-bsp/u-boot/u-boot-qoriq_2020.04.bb
index 57f27803..69b03de1 100644
--- a/recipes-bsp/u-boot/u-boot-qoriq_2020.04.bb
+++ b/recipes-bsp/u-boot/u-boot-qoriq_2020.04.bb
@@ -19,14 +19,14 @@ SRCREV= "f46a944f715f284aff1d42c009680ffe0be4058f"
19 19
20S = "${WORKDIR}/git" 20S = "${WORKDIR}/git"
21B = "${WORKDIR}/build" 21B = "${WORKDIR}/build"
22PV_append = "+fslgit" 22PV:append = "+fslgit"
23LOCALVERSION = "+fsl" 23LOCALVERSION = "+fsl"
24 24
25INHIBIT_DEFAULT_DEPS = "1" 25INHIBIT_DEFAULT_DEPS = "1"
26DEPENDS = "libgcc virtual/${TARGET_PREFIX}gcc bison-native bc-native swig-native python3-native" 26DEPENDS = "libgcc virtual/${TARGET_PREFIX}gcc bison-native bc-native swig-native python3-native"
27DEPENDS_append_qoriq-arm64 = " dtc-native" 27DEPENDS:append:qoriq-arm64 = " dtc-native"
28DEPENDS_append_qoriq-arm = " dtc-native" 28DEPENDS:append:qoriq-arm = " dtc-native"
29DEPENDS_append_qoriq-ppc = " boot-format-native" 29DEPENDS:append:qoriq-ppc = " boot-format-native"
30 30
31python () { 31python () {
32 if d.getVar("TCMODE") == "external-fsl": 32 if d.getVar("TCMODE") == "external-fsl":
@@ -41,8 +41,8 @@ python () {
41 sys_multilib = d.getVar('TARGET_VENDOR') + 'mllib32-linux' 41 sys_multilib = d.getVar('TARGET_VENDOR') + 'mllib32-linux'
42 sys_original = d.getVar('TARGET_VENDOR') + '-' + d.getVar('TARGET_OS') 42 sys_original = d.getVar('TARGET_VENDOR') + '-' + d.getVar('TARGET_OS')
43 workdir = d.getVar('WORKDIR') 43 workdir = d.getVar('WORKDIR')
44 d.setVar('DEPENDS_append', ' lib32-gcc-cross-powerpc lib32-libgcc') 44 d.setVar('DEPENDS:append', ' lib32-gcc-cross-powerpc lib32-libgcc')
45 d.setVar('PATH_append', ':' + d.getVar('STAGING_BINDIR_NATIVE') + '/powerpc' + sys_multilib) 45 d.setVar('PATH:append', ':' + d.getVar('STAGING_BINDIR_NATIVE') + '/powerpc' + sys_multilib)
46 d.setVar('TOOLCHAIN_OPTIONS', '--sysroot=' + workdir + '/lib32-recipe-sysroot') 46 d.setVar('TOOLCHAIN_OPTIONS', '--sysroot=' + workdir + '/lib32-recipe-sysroot')
47 d.setVar("WRAP_TARGET_PREFIX", 'powerpc' + sys_multilib + '-') 47 d.setVar("WRAP_TARGET_PREFIX", 'powerpc' + sys_multilib + '-')
48 elif "fsl-lsch2-32b:" in arch: 48 elif "fsl-lsch2-32b:" in arch:
@@ -51,8 +51,8 @@ python () {
51 sys_multilib = d.getVar('TARGET_VENDOR') + 'mllib64-linux' 51 sys_multilib = d.getVar('TARGET_VENDOR') + 'mllib64-linux'
52 sys_original = d.getVar('TARGET_VENDOR') + '-' + d.getVar('TARGET_OS') 52 sys_original = d.getVar('TARGET_VENDOR') + '-' + d.getVar('TARGET_OS')
53 workdir = d.getVar('WORKDIR') 53 workdir = d.getVar('WORKDIR')
54 d.setVar('DEPENDS_append', ' lib64-gcc-cross-aarch64 lib64-libgcc') 54 d.setVar('DEPENDS:append', ' lib64-gcc-cross-aarch64 lib64-libgcc')
55 d.setVar('PATH_append', ':' + d.getVar('STAGING_BINDIR_NATIVE') + '/aarch64' + sys_multilib) 55 d.setVar('PATH:append', ':' + d.getVar('STAGING_BINDIR_NATIVE') + '/aarch64' + sys_multilib)
56 d.setVar('TOOLCHAIN_OPTIONS', '--sysroot=' + workdir + '/lib64-recipe-sysroot') 56 d.setVar('TOOLCHAIN_OPTIONS', '--sysroot=' + workdir + '/lib64-recipe-sysroot')
57 d.setVar("WRAP_TARGET_PREFIX", 'aarch64' + sys_multilib + '-') 57 d.setVar("WRAP_TARGET_PREFIX", 'aarch64' + sys_multilib + '-')
58} 58}
@@ -66,7 +66,7 @@ EXTRA_OEMAKE = 'CROSS_COMPILE=${WRAP_TARGET_PREFIX} CC="${WRAP_TARGET_PREFIX}gcc
66EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"' 66EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"'
67EXTRA_OEMAKE += 'STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}' 67EXTRA_OEMAKE += 'STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}'
68 68
69do_compile_append_qoriq() { 69do_compile:append:qoriq() {
70 unset i j k 70 unset i j k
71 for config in ${UBOOT_MACHINE}; do 71 for config in ${UBOOT_MACHINE}; do
72 i=`expr $i + 1`; 72 i=`expr $i + 1`;
@@ -94,5 +94,5 @@ do_compile_append_qoriq() {
94 94
95 95
96PACKAGES += "${PN}-images" 96PACKAGES += "${PN}-images"
97FILES_${PN}-images += "/boot" 97FILES:${PN}-images += "/boot"
98COMPATIBLE_MACHINE = "(qoriq)" 98COMPATIBLE_MACHINE = "(qoriq)"
diff --git a/recipes-bsp/uefi/uefi_git.bb b/recipes-bsp/uefi/uefi_git.bb
index 6351577e..df77b420 100644
--- a/recipes-bsp/uefi/uefi_git.bb
+++ b/recipes-bsp/uefi/uefi_git.bb
@@ -28,7 +28,7 @@ do_deploy () {
28addtask deploy before do_build after do_install 28addtask deploy before do_build after do_install
29 29
30PACKAGES += "${PN}-image" 30PACKAGES += "${PN}-image"
31FILES_${PN}-image += "/uefi/*" 31FILES:${PN}-image += "/uefi/*"
32 32
33PACKAGE_ARCH = "${MACHINE_SOCARCH}" 33PACKAGE_ARCH = "${MACHINE_SOCARCH}"
34 34
diff --git a/recipes-connectivity/iproute2/iproute2_%.bbappend b/recipes-connectivity/iproute2/iproute2_%.bbappend
index 4426eca5..0f9b5a87 100644
--- a/recipes-connectivity/iproute2/iproute2_%.bbappend
+++ b/recipes-connectivity/iproute2/iproute2_%.bbappend
@@ -1,4 +1,4 @@
1do_install_append () { 1do_install:append () {
2 install -d ${D}/usr/include/tc 2 install -d ${D}/usr/include/tc
3 cp -a ${B}/include ${D}/usr/include 3 cp -a ${B}/include ${D}/usr/include
4 cp -a ${B}/tc/*.h ${D}/usr/include/tc 4 cp -a ${B}/tc/*.h ${D}/usr/include/tc
diff --git a/recipes-connectivity/openssl/openssl_%.bbappend b/recipes-connectivity/openssl/openssl_%.bbappend
index ce4ff276..e88de361 100644
--- a/recipes-connectivity/openssl/openssl_%.bbappend
+++ b/recipes-connectivity/openssl/openssl_%.bbappend
@@ -1,8 +1,8 @@
1FILESEXTRAPATHS_append := "${THISDIR}/${PN}-qoriq:" 1FILESEXTRAPATHS:append := "${THISDIR}/${PN}-qoriq:"
2 2
3SRC_URI_append_qoriq = " \ 3SRC_URI:append:qoriq = " \
4 file://0001-eng_devcrypto-add-support-for-TLS-algorithms-offload.patch \ 4 file://0001-eng_devcrypto-add-support-for-TLS-algorithms-offload.patch \
5 file://0002-eng_devcrypto-add-support-for-TLS1.2-algorithms-offl.patch \ 5 file://0002-eng_devcrypto-add-support-for-TLS1.2-algorithms-offl.patch \
6" 6"
7 7
8PACKAGECONFIG_append_qoriq = " cryptodev-linux" 8PACKAGECONFIG:append:qoriq = " cryptodev-linux"
diff --git a/recipes-core/init-ifupdown/init-ifupdown_%.bbappend b/recipes-core/init-ifupdown/init-ifupdown_%.bbappend
index 00057874..46dfc124 100644
--- a/recipes-core/init-ifupdown/init-ifupdown_%.bbappend
+++ b/recipes-core/init-ifupdown/init-ifupdown_%.bbappend
@@ -1,2 +1,2 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" 1FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
2 2
diff --git a/recipes-core/packagegroup/nativesdk-packagegroup-sdk-host.bbappend b/recipes-core/packagegroup/nativesdk-packagegroup-sdk-host.bbappend
index d0c26c2a..5c492725 100644
--- a/recipes-core/packagegroup/nativesdk-packagegroup-sdk-host.bbappend
+++ b/recipes-core/packagegroup/nativesdk-packagegroup-sdk-host.bbappend
@@ -1,4 +1,4 @@
1RDEPENDS_${PN} += " \ 1RDEPENDS:${PN} += " \
2 nativesdk-mxsldr \ 2 nativesdk-mxsldr \
3 nativesdk-u-boot-mkimage \ 3 nativesdk-u-boot-mkimage \
4 nativesdk-imx-usb-loader \ 4 nativesdk-imx-usb-loader \
diff --git a/recipes-core/udev/udev-rules-qoriq.bb b/recipes-core/udev/udev-rules-qoriq.bb
index c328f4cc..525e642e 100644
--- a/recipes-core/udev/udev-rules-qoriq.bb
+++ b/recipes-core/udev/udev-rules-qoriq.bb
@@ -12,17 +12,17 @@ SRC_URI = "\
12S = "${WORKDIR}" 12S = "${WORKDIR}"
13 13
14RULE = "71-fsl-dpaa-persistent-networking.rules" 14RULE = "71-fsl-dpaa-persistent-networking.rules"
15RULE_e6500 = "72-fsl-dpaa-persistent-networking.rules" 15RULE:e6500 = "72-fsl-dpaa-persistent-networking.rules"
16RULE_e6500-64b = "72-fsl-dpaa-persistent-networking.rules" 16RULE:e6500-64b = "72-fsl-dpaa-persistent-networking.rules"
17RULE_t1024 = "72-fsl-dpaa-persistent-networking.rules" 17RULE:t1024 = "72-fsl-dpaa-persistent-networking.rules"
18RULE_qoriq-arm64 = "73-fsl-dpaa-persistent-networking.rules \ 18RULE:qoriq-arm64 = "73-fsl-dpaa-persistent-networking.rules \
19 73-fsl-enetc-networking.rules \ 19 73-fsl-enetc-networking.rules \
20" 20"
21RULE_ls1046a = "73-fsl-dpaa-persistent-networking.rules \ 21RULE:ls1046a = "73-fsl-dpaa-persistent-networking.rules \
22 74-ls1046a-xfi2-networking.rules \ 22 74-ls1046a-xfi2-networking.rules \
23" 23"
24RULE_ls1012a = "" 24RULE:ls1012a = ""
25RULE_ls2080a = "" 25RULE:ls2080a = ""
26 26
27do_install () { 27do_install () {
28 install -d ${D}${sysconfdir}/udev/rules.d/ 28 install -d ${D}${sysconfdir}/udev/rules.d/
@@ -31,7 +31,7 @@ do_install () {
31 done 31 done
32} 32}
33 33
34ALLOW_EMPTY_${PN} = "1" 34ALLOW_EMPTY:${PN} = "1"
35 35
36COMPATIBLE_MACHINE = "(qoriq)" 36COMPATIBLE_MACHINE = "(qoriq)"
37PACKAGE_ARCH = "${MACHINE_SOCARCH}" 37PACKAGE_ARCH = "${MACHINE_SOCARCH}"
diff --git a/recipes-devtools/cst/cst_git.bb b/recipes-devtools/cst/cst_git.bb
index 9091350b..71df0a35 100644
--- a/recipes-devtools/cst/cst_git.bb
+++ b/recipes-devtools/cst/cst_git.bb
@@ -5,10 +5,10 @@ LICENSE = "BSD"
5LIC_FILES_CHKSUM = "file://COPYING;md5=e959d5d617e33779d0e90ce1d9043eff" 5LIC_FILES_CHKSUM = "file://COPYING;md5=e959d5d617e33779d0e90ce1d9043eff"
6 6
7DEPENDS += "openssl cst-native" 7DEPENDS += "openssl cst-native"
8RDEPENDS_${PN} = "bash" 8RDEPENDS:${PN} = "bash"
9 9
10GENKEYS ?= "${STAGING_BINDIR_NATIVE}/cst/gen_keys" 10GENKEYS ?= "${STAGING_BINDIR_NATIVE}/cst/gen_keys"
11GENKEYS_class-native = "./gen_keys" 11GENKEYS:class-native = "./gen_keys"
12 12
13inherit kernel-arch 13inherit kernel-arch
14 14
@@ -38,5 +38,5 @@ do_install () {
38 fi 38 fi
39} 39}
40 40
41FILES_${PN}-dbg += "${bindir}/cst/.debug" 41FILES:${PN}-dbg += "${bindir}/cst/.debug"
42BBCLASSEXTEND = "native nativesdk" 42BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-devtools/qemu/qemu-qoriq_4.1.0.bb b/recipes-devtools/qemu/qemu-qoriq_4.1.0.bb
index dfd7fdcf..26c78639 100644
--- a/recipes-devtools/qemu/qemu-qoriq_4.1.0.bb
+++ b/recipes-devtools/qemu/qemu-qoriq_4.1.0.bb
@@ -25,18 +25,18 @@ python() {
25 pkgs = d.getVar('PACKAGES').split() 25 pkgs = d.getVar('PACKAGES').split()
26 for p in pkgs: 26 for p in pkgs:
27 if '-qoriq' in p: 27 if '-qoriq' in p:
28 d.appendVar('RPROVIDES_' + p, ' ' + p.replace('-qoriq', '')) 28 d.appendVar('RPROVIDES:' + p, ' ' + p.replace('-qoriq', ''))
29 d.appendVar('RCONFLICTS_' + p, ' ' + p.replace('-qoriq', '')) 29 d.appendVar('RCONFLICTS:' + p, ' ' + p.replace('-qoriq', ''))
30 d.appendVar('RREPLACES_' + p, ' ' + p.replace('-qoriq', '')) 30 d.appendVar('RREPLACES:' + p, ' ' + p.replace('-qoriq', ''))
31} 31}
32 32
33RDEPENDS_${PN}_class-target += "bash" 33RDEPENDS:${PN}:class-target += "bash"
34 34
35EXTRA_OECONF_append_class-target = " --target-list=${@get_qemu_target_list(d)}" 35EXTRA_OECONF:append:class-target = " --target-list=${@get_qemu_target_list(d)}"
36EXTRA_OECONF_append_class-target_mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}" 36EXTRA_OECONF:append:class-target:mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}"
37EXTRA_OECONF_append_class-nativesdk = " --target-list=${@get_qemu_target_list(d)}" 37EXTRA_OECONF:append:class-nativesdk = " --target-list=${@get_qemu_target_list(d)}"
38 38
39do_install_append_class-nativesdk() { 39do_install:append:class-nativesdk() {
40 ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)} 40 ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)}
41} 41}
42 42
@@ -56,7 +56,7 @@ PACKAGECONFIG ??= " \
56 fdt sdl kvm aio libusb vhost \ 56 fdt sdl kvm aio libusb vhost \
57 ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \ 57 ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \
58" 58"
59PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm" 59PACKAGECONFIG:class-nativesdk ??= "fdt sdl kvm"
60 60
61PACKAGECONFIG[xkbcommon] = ",," 61PACKAGECONFIG[xkbcommon] = ",,"
62PACKAGECONFIG[libudev] = ",," 62PACKAGECONFIG[libudev] = ",,"
diff --git a/recipes-devtools/qemu/qemu.inc b/recipes-devtools/qemu/qemu.inc
index bf05da9a..532bcf6d 100644
--- a/recipes-devtools/qemu/qemu.inc
+++ b/recipes-devtools/qemu/qemu.inc
@@ -6,7 +6,7 @@ a variety of guest operating systems"
6HOMEPAGE = "http://qemu.org" 6HOMEPAGE = "http://qemu.org"
7LICENSE = "GPLv2 & LGPLv2.1" 7LICENSE = "GPLv2 & LGPLv2.1"
8 8
9RDEPENDS_${PN}-ptest = "bash make" 9RDEPENDS:${PN}-ptest = "bash make"
10 10
11require qemu-targets.inc 11require qemu-targets.inc
12inherit pkgconfig ptest 12inherit pkgconfig ptest
@@ -45,14 +45,14 @@ UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
45 45
46SRC_URI[sha256sum] = "c9174eb5933d9eb5e61f541cd6d1184cd3118dfe4c5c4955bc1bdc4d390fa4e5" 46SRC_URI[sha256sum] = "c9174eb5933d9eb5e61f541cd6d1184cd3118dfe4c5c4955bc1bdc4d390fa4e5"
47 47
48COMPATIBLE_HOST_mipsarchn32 = "null" 48COMPATIBLE_HOST:mipsarchn32 = "null"
49COMPATIBLE_HOST_mipsarchn64 = "null" 49COMPATIBLE_HOST:mipsarchn64 = "null"
50 50
51# Per https://lists.nongnu.org/archive/html/qemu-devel/2020-09/msg03873.html 51# Per https://lists.nongnu.org/archive/html/qemu-devel/2020-09/msg03873.html
52# upstream states qemu doesn't work without optimization 52# upstream states qemu doesn't work without optimization
53DEBUG_BUILD = "0" 53DEBUG_BUILD = "0"
54 54
55do_install_append() { 55do_install:append() {
56 # Prevent QA warnings about installed ${localstatedir}/run 56 # Prevent QA warnings about installed ${localstatedir}/run
57 if [ -d ${D}${localstatedir}/run ]; then rmdir ${D}${localstatedir}/run; fi 57 if [ -d ${D}${localstatedir}/run ]; then rmdir ${D}${localstatedir}/run; fi
58} 58}
@@ -101,9 +101,9 @@ export LIBTOOL="${HOST_SYS}-libtool"
101 101
102B = "${WORKDIR}/build" 102B = "${WORKDIR}/build"
103 103
104EXTRA_OECONF_append = " --python=${HOSTTOOLS_DIR}/python3" 104EXTRA_OECONF:append = " --python=${HOSTTOOLS_DIR}/python3"
105 105
106do_configure_prepend_class-native() { 106do_configure:prepend:class-native() {
107 # Append build host pkg-config paths for native target since the host may provide sdl 107 # Append build host pkg-config paths for native target since the host may provide sdl
108 BHOST_PKGCONFIG_PATH=$(PATH=/usr/bin:/bin pkg-config --variable pc_path pkg-config || echo "") 108 BHOST_PKGCONFIG_PATH=$(PATH=/usr/bin:/bin pkg-config --variable pc_path pkg-config || echo "")
109 if [ ! -z "$BHOST_PKGCONFIG_PATH" ]; then 109 if [ ! -z "$BHOST_PKGCONFIG_PATH" ]; then
@@ -127,7 +127,7 @@ do_install () {
127# This will trigger a MMU access fault in the virtual CPU. With this change, 127# This will trigger a MMU access fault in the virtual CPU. With this change,
128# the qemu-mips works fine. 128# the qemu-mips works fine.
129# IMPORTANT: This piece needs to be removed once the root cause is fixed! 129# IMPORTANT: This piece needs to be removed once the root cause is fixed!
130do_install_append() { 130do_install:append() {
131 if [ -e "${D}/${bindir}/qemu-mips" ]; then 131 if [ -e "${D}/${bindir}/qemu-mips" ]; then
132 create_wrapper ${D}/${bindir}/qemu-mips \ 132 create_wrapper ${D}/${bindir}/qemu-mips \
133 QEMU_RESERVED_VA=0x0 133 QEMU_RESERVED_VA=0x0
@@ -147,8 +147,8 @@ make_qemu_wrapper() {
147} 147}
148 148
149# Disable kvm/virgl/mesa on targets that do not support it 149# Disable kvm/virgl/mesa on targets that do not support it
150PACKAGECONFIG_remove_darwin = "kvm virglrenderer glx gtk+" 150PACKAGECONFIG:remove:darwin = "kvm virglrenderer glx gtk+"
151PACKAGECONFIG_remove_mingw32 = "kvm virglrenderer glx gtk+" 151PACKAGECONFIG:remove:mingw32 = "kvm virglrenderer glx gtk+"
152 152
153PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl2" 153PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl2"
154PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr --enable-cap-ng,--disable-virtfs,libcap-ng attr," 154PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr --enable-cap-ng,--disable-virtfs,libcap-ng attr,"
@@ -193,6 +193,6 @@ PACKAGECONFIG[vhost] = "--enable-vhost-net,--disable-vhost-net,,"
193PACKAGECONFIG[ust] = "--enable-trace-backend=ust,--enable-trace-backend=nop,lttng-ust," 193PACKAGECONFIG[ust] = "--enable-trace-backend=ust,--enable-trace-backend=nop,lttng-ust,"
194PACKAGECONFIG[pie] = "--enable-pie,--disable-pie,," 194PACKAGECONFIG[pie] = "--enable-pie,--disable-pie,,"
195 195
196INSANE_SKIP_${PN} = "arch" 196INSANE_SKIP:${PN} = "arch"
197 197
198FILES_${PN} += "${datadir}/icons" 198FILES:${PN} += "${datadir}/icons"
diff --git a/recipes-dpaa/flib/flib_git.bb b/recipes-dpaa/flib/flib_git.bb
index 3ae05889..645efdb3 100644
--- a/recipes-dpaa/flib/flib_git.bb
+++ b/recipes-dpaa/flib/flib_git.bb
@@ -12,4 +12,4 @@ do_install(){
12 oe_runmake install DESTDIR=${D} 12 oe_runmake install DESTDIR=${D}
13} 13}
14 14
15ALLOW_EMPTY_${PN} = "1" 15ALLOW_EMPTY:${PN} = "1"
diff --git a/recipes-dpaa/fm-ucode/fm-ucode_git.bb b/recipes-dpaa/fm-ucode/fm-ucode_git.bb
index 39e4f9d0..966ee94c 100644
--- a/recipes-dpaa/fm-ucode/fm-ucode_git.bb
+++ b/recipes-dpaa/fm-ucode/fm-ucode_git.bb
@@ -13,13 +13,13 @@ SRCREV = "c275e91392e2adab1ed22f3867b8269ca3c54014"
13S = "${WORKDIR}/git" 13S = "${WORKDIR}/git"
14 14
15REGLEX ?= "${MACHINE}" 15REGLEX ?= "${MACHINE}"
16REGLEX_t1023 = "t1024" 16REGLEX:t1023 = "t1024"
17REGLEX_t1040 = "t1040" 17REGLEX:t1040 = "t1040"
18REGLEX_t1042 = "t1040" 18REGLEX:t1042 = "t1040"
19REGLEX_b4420 = "b4860" 19REGLEX_b4420 = "b4860"
20REGLEX_t4160 = "t4240" 20REGLEX:t4160 = "t4240"
21REGLEX_ls1043a = "ls1043" 21REGLEX:ls1043a = "ls1043"
22REGLEX_ls1046a = "ls1046" 22REGLEX:ls1046a = "ls1046"
23 23
24do_install () { 24do_install () {
25 UCODE=`echo ${REGLEX} | sed -e 's,-.*$,,' -e 's,[a-zA-Z]*$,,'` 25 UCODE=`echo ${REGLEX} | sed -e 's,-.*$,,' -e 's,[a-zA-Z]*$,,'`
@@ -35,8 +35,8 @@ do_deploy () {
35addtask deploy before do_build after do_install 35addtask deploy before do_build after do_install
36 36
37PACKAGES += "${PN}-image" 37PACKAGES += "${PN}-image"
38FILES_${PN}-image += "/boot" 38FILES:${PN}-image += "/boot"
39ALLOW_EMPTY_${PN} = "1" 39ALLOW_EMPTY:${PN} = "1"
40 40
41COMPATIBLE_MACHINE = "(e500mc|e5500|e5500-64b|e6500|e6500-64b|fsl-lsch2)" 41COMPATIBLE_MACHINE = "(e500mc|e5500|e5500-64b|e6500|e6500-64b|fsl-lsch2)"
42PACKAGE_ARCH = "${MACHINE_SOCARCH}" 42PACKAGE_ARCH = "${MACHINE_SOCARCH}"
diff --git a/recipes-dpaa/fmlib/fmlib_git.bb b/recipes-dpaa/fmlib/fmlib_git.bb
index 880d768b..f4b6cc20 100644
--- a/recipes-dpaa/fmlib/fmlib_git.bb
+++ b/recipes-dpaa/fmlib/fmlib_git.bb
@@ -14,15 +14,15 @@ EXTRA_OEMAKE = "DESTDIR=${D} PREFIX=${prefix} LIB_DEST_DIR=${libdir} \
14 CROSS_COMPILE=${TARGET_PREFIX} KERNEL_SRC=${STAGING_KERNEL_DIR}" 14 CROSS_COMPILE=${TARGET_PREFIX} KERNEL_SRC=${STAGING_KERNEL_DIR}"
15 15
16TARGET_ARCH_FMLIB = "${DEFAULTTUNE}" 16TARGET_ARCH_FMLIB = "${DEFAULTTUNE}"
17TARGET_ARCH_FMLIB_qoriq-arm = "arm" 17TARGET_ARCH_FMLIB:qoriq-arm = "arm"
18TARGET_ARCH_FMLIB_qoriq-arm64 = "arm" 18TARGET_ARCH_FMLIB:qoriq-arm64 = "arm"
19TARGET_ARCH_FMLIB_e5500 = "ppc32e5500" 19TARGET_ARCH_FMLIB:e5500 = "ppc32e5500"
20TARGET_ARCH_FMLIB_e6500 = "ppc32e6500" 20TARGET_ARCH_FMLIB:e6500 = "ppc32e6500"
21TARGET_ARCH_FMLIB_e500mc = "ppce500mc" 21TARGET_ARCH_FMLIB:e500mc = "ppce500mc"
22TARGET_ARCH_FMLIB_e500v2 = "ppce500v2" 22TARGET_ARCH_FMLIB:e500v2 = "ppce500v2"
23 23
24FMLIB_TARGET = "libfm-${TARGET_ARCH_FMLIB}" 24FMLIB_TARGET = "libfm-${TARGET_ARCH_FMLIB}"
25FMLIB_TARGET_t1 = "libfm-${TARGET_ARCH_FMLIB}-fmv3l" 25FMLIB_TARGET:t1 = "libfm-${TARGET_ARCH_FMLIB}-fmv3l"
26 26
27do_compile () { 27do_compile () {
28 oe_runmake ${FMLIB_TARGET}.a 28 oe_runmake ${FMLIB_TARGET}.a
@@ -34,7 +34,7 @@ do_install () {
34 34
35do_compile[depends] += "virtual/kernel:do_shared_workdir" 35do_compile[depends] += "virtual/kernel:do_shared_workdir"
36 36
37ALLOW_EMPTY_${PN} = "1" 37ALLOW_EMPTY:${PN} = "1"
38 38
39PACKAGE_ARCH = "${MACHINE_ARCH}" 39PACKAGE_ARCH = "${MACHINE_ARCH}"
40 40
diff --git a/recipes-dpaa2/aiopsl/aiopsl_git.bb b/recipes-dpaa2/aiopsl/aiopsl_git.bb
index a1b00289..e679c488 100644
--- a/recipes-dpaa2/aiopsl/aiopsl_git.bb
+++ b/recipes-dpaa2/aiopsl/aiopsl_git.bb
@@ -14,7 +14,7 @@ do_configure[noexec] = "1"
14do_compile[noexec] = "1" 14do_compile[noexec] = "1"
15 15
16DEMOS_PATH_ls2088a = "LS2088A" 16DEMOS_PATH_ls2088a = "LS2088A"
17DEMOS_PATH_ls1088a = "LS1088A" 17DEMOS_PATH:ls1088a = "LS1088A"
18 18
19do_install () { 19do_install () {
20 install -d ${D}/usr/aiop/bin 20 install -d ${D}/usr/aiop/bin
@@ -24,8 +24,8 @@ do_install () {
24 cp -rf ${S}/misc/setup/traffic_files/ ${D}/usr/aiop/ 24 cp -rf ${S}/misc/setup/traffic_files/ ${D}/usr/aiop/
25} 25}
26 26
27FILES_${PN} += "/usr/aiop/*" 27FILES:${PN} += "/usr/aiop/*"
28INSANE_SKIP_${PN} += "arch" 28INSANE_SKIP:${PN} += "arch"
29INHIBIT_PACKAGE_STRIP = "1" 29INHIBIT_PACKAGE_STRIP = "1"
30INHIBIT_PACKAGE_DEBUG_SPLIT = "1" 30INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
31COMPATIBLE_MACHINE = "(ls2088a|ls1088a)" 31COMPATIBLE_MACHINE = "(ls2088a|ls1088a)"
diff --git a/recipes-dpaa2/dce/dce_git.bb b/recipes-dpaa2/dce/dce_git.bb
index 9984f080..24b39a0b 100644
--- a/recipes-dpaa2/dce/dce_git.bb
+++ b/recipes-dpaa2/dce/dce_git.bb
@@ -17,5 +17,5 @@ do_install () {
17 oe_runmake install DESTDIR=${D} 17 oe_runmake install DESTDIR=${D}
18} 18}
19 19
20INSANE_SKIP_${PN} = "ldflags" 20INSANE_SKIP:${PN} = "ldflags"
21COMPATIBLE_MACHINE = "(qoriq-arm64)" 21COMPATIBLE_MACHINE = "(qoriq-arm64)"
diff --git a/recipes-dpaa2/management-complex/management-complex_10.14.1.bb b/recipes-dpaa2/management-complex/management-complex_10.14.1.bb
index ddb305c1..456455ec 100644
--- a/recipes-dpaa2/management-complex/management-complex_10.14.1.bb
+++ b/recipes-dpaa2/management-complex/management-complex_10.14.1.bb
@@ -12,9 +12,9 @@ SRCREV = "408110ee632f6291545b0b156cd74e7e3b4612cc"
12S = "${WORKDIR}/git" 12S = "${WORKDIR}/git"
13 13
14REGLEX_ls2088a = "ls2088a" 14REGLEX_ls2088a = "ls2088a"
15REGLEX_ls2080a = "ls2080a" 15REGLEX:ls2080a = "ls2080a"
16REGLEX_ls1088a = "ls1088a" 16REGLEX:ls1088a = "ls1088a"
17REGLEX_lx2160a = "lx2160a" 17REGLEX:lx2160a = "lx2160a"
18 18
19do_install () { 19do_install () {
20 install -d ${D}/boot 20 install -d ${D}/boot
@@ -32,7 +32,7 @@ do_deploy () {
32addtask deploy before do_build after do_install 32addtask deploy before do_build after do_install
33 33
34PACKAGES += "${PN}-image" 34PACKAGES += "${PN}-image"
35FILES_${PN}-image += "/boot" 35FILES:${PN}-image += "/boot"
36 36
37INHIBIT_PACKAGE_STRIP = "1" 37INHIBIT_PACKAGE_STRIP = "1"
38 38
diff --git a/recipes-dpaa2/management-complex/management-complex_10.20.4.bb b/recipes-dpaa2/management-complex/management-complex_10.20.4.bb
index 3e14a26e..d50cacdc 100644
--- a/recipes-dpaa2/management-complex/management-complex_10.20.4.bb
+++ b/recipes-dpaa2/management-complex/management-complex_10.20.4.bb
@@ -12,9 +12,9 @@ SRCREV = "f73683596a7b72124d67b62e64f3dc2bb36b9321"
12S = "${WORKDIR}/git" 12S = "${WORKDIR}/git"
13 13
14REGLEX_ls2088a = "ls2088a" 14REGLEX_ls2088a = "ls2088a"
15REGLEX_ls2080a = "ls2080a" 15REGLEX:ls2080a = "ls2080a"
16REGLEX_ls1088a = "ls1088a" 16REGLEX:ls1088a = "ls1088a"
17REGLEX_lx2160a = "lx2160a" 17REGLEX:lx2160a = "lx2160a"
18 18
19do_install () { 19do_install () {
20 install -d ${D}/boot 20 install -d ${D}/boot
@@ -32,7 +32,7 @@ do_deploy () {
32addtask deploy before do_build after do_install 32addtask deploy before do_build after do_install
33 33
34PACKAGES += "${PN}-image" 34PACKAGES += "${PN}-image"
35FILES_${PN}-image += "/boot" 35FILES:${PN}-image += "/boot"
36 36
37INHIBIT_PACKAGE_STRIP = "1" 37INHIBIT_PACKAGE_STRIP = "1"
38 38
diff --git a/recipes-dpaa2/management-complex/management-complex_10.24.0.bb b/recipes-dpaa2/management-complex/management-complex_10.24.0.bb
index 17049a15..fd41c36d 100644
--- a/recipes-dpaa2/management-complex/management-complex_10.24.0.bb
+++ b/recipes-dpaa2/management-complex/management-complex_10.24.0.bb
@@ -12,10 +12,10 @@ SRCREV = "324817697a4c89a9a940fb7dba1b18909913ee20"
12S = "${WORKDIR}/git" 12S = "${WORKDIR}/git"
13 13
14REGLEX_ls2088a = "ls2088a" 14REGLEX_ls2088a = "ls2088a"
15REGLEX_ls2080a = "ls2080a" 15REGLEX:ls2080a = "ls2080a"
16REGLEX_ls1088a = "ls1088a" 16REGLEX:ls1088a = "ls1088a"
17REGLEX_lx2160a = "lx216xa" 17REGLEX:lx2160a = "lx216xa"
18REGLEX_lx2162a = "lx216xa" 18REGLEX:lx2162a = "lx216xa"
19 19
20do_install () { 20do_install () {
21 install -d ${D}/boot 21 install -d ${D}/boot
@@ -33,7 +33,7 @@ do_deploy () {
33addtask deploy before do_build after do_install 33addtask deploy before do_build after do_install
34 34
35PACKAGES += "${PN}-image" 35PACKAGES += "${PN}-image"
36FILES_${PN}-image += "/boot" 36FILES:${PN}-image += "/boot"
37 37
38INHIBIT_PACKAGE_STRIP = "1" 38INHIBIT_PACKAGE_STRIP = "1"
39 39
diff --git a/recipes-dpaa2/restool/restool_git.bb b/recipes-dpaa2/restool/restool_git.bb
index 66cea7ef..5376d8f7 100644
--- a/recipes-dpaa2/restool/restool_git.bb
+++ b/recipes-dpaa2/restool/restool_git.bb
@@ -2,7 +2,7 @@ SUMMARY = "DPAA2 Resource Manager Tool"
2LICENSE = "BSD" 2LICENSE = "BSD"
3LIC_FILES_CHKSUM = "file://COPYING;md5=ec8d84e9cd4de287e290275d09db27f0" 3LIC_FILES_CHKSUM = "file://COPYING;md5=ec8d84e9cd4de287e290275d09db27f0"
4 4
5RDEPENDS_${PN} += "bash dtc" 5RDEPENDS:${PN} += "bash dtc"
6 6
7SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/restool;nobranch=1" 7SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/restool;nobranch=1"
8SRCREV = "8ddbe4c9559ffad5d7e5dd3cd5f00ceeff7f05d4" 8SRCREV = "8ddbe4c9559ffad5d7e5dd3cd5f00ceeff7f05d4"
diff --git a/recipes-extended/crconf/crconf_git.bb b/recipes-extended/crconf/crconf_git.bb
index f8f88d20..1727888a 100644
--- a/recipes-extended/crconf/crconf_git.bb
+++ b/recipes-extended/crconf/crconf_git.bb
@@ -14,4 +14,4 @@ do_install () {
14 oe_runmake install DESTDIR=${D} 14 oe_runmake install DESTDIR=${D}
15} 15}
16 16
17FILES_${PN} += "/share/man/* ${libdir}/* ${sbindir}/*" 17FILES:${PN} += "/share/man/* ${libdir}/* ${sbindir}/*"
diff --git a/recipes-extended/dpdk/dpdk.inc b/recipes-extended/dpdk/dpdk.inc
index 61c02ae7..f4c932ea 100644
--- a/recipes-extended/dpdk/dpdk.inc
+++ b/recipes-extended/dpdk/dpdk.inc
@@ -1,25 +1,25 @@
1DESCRIPTION = "Data Plane Development Kit" 1DESCRIPTION = "Data Plane Development Kit"
2HOMEPAGE = "http://dpdk.org" 2HOMEPAGE = "http://dpdk.org"
3 3
4RDEPENDS_${PN} += "python3-core" 4RDEPENDS:${PN} += "python3-core"
5DEPENDS = "virtual/kernel openssl" 5DEPENDS = "virtual/kernel openssl"
6DEPENDS_append_x86-64 = " numactl" 6DEPENDS:append:x86-64 = " numactl"
7do_configure[depends] += "virtual/kernel:do_shared_workdir" 7do_configure[depends] += "virtual/kernel:do_shared_workdir"
8 8
9inherit module 9inherit module
10 10
11COMPATIBLE_HOST = '(aarch64|arm|i.86|x86_64).*-linux' 11COMPATIBLE_HOST = '(aarch64|arm|i.86|x86_64).*-linux'
12COMPATIBLE_HOST_libc-musl = 'null' 12COMPATIBLE_HOST:libc-musl = 'null'
13COMPATIBLE_HOST_armv4 = 'null' 13COMPATIBLE_HOST:armv4 = 'null'
14COMPATIBLE_HOST_armv5 = 'null' 14COMPATIBLE_HOST:armv5 = 'null'
15COMPATIBLE_HOST_armv6 = 'null' 15COMPATIBLE_HOST:armv6 = 'null'
16 16
17COMPATIBLE_MACHINE = "(imx|qoriq)" 17COMPATIBLE_MACHINE = "(imx|qoriq)"
18 18
19DPDK_RTE_TARGET_x86-64 = "x86_64-native-linuxapp-gcc" 19DPDK_RTE_TARGET:x86-64 = "x86_64-native-linuxapp-gcc"
20DPDK_RTE_TARGET_x86 = "i686-native-linuxapp-gcc" 20DPDK_RTE_TARGET:x86 = "i686-native-linuxapp-gcc"
21DPDK_RTE_TARGET_armv7a = "${ARCH}-armv7a-linuxapp-gcc" 21DPDK_RTE_TARGET:armv7a = "${ARCH}-armv7a-linuxapp-gcc"
22DPDK_RTE_TARGET_armv7ve = "${ARCH}-armv7a-linuxapp-gcc" 22DPDK_RTE_TARGET:armv7ve = "${ARCH}-armv7a-linuxapp-gcc"
23DPDK_RTE_TARGET ?= "${ARCH}-dpaa-linuxapp-gcc" 23DPDK_RTE_TARGET ?= "${ARCH}-dpaa-linuxapp-gcc"
24 24
25export RTE_TARGET = "${DPDK_RTE_TARGET}" 25export RTE_TARGET = "${DPDK_RTE_TARGET}"
@@ -93,13 +93,13 @@ do_install () {
93 93
94PACKAGES += "${PN}-examples" 94PACKAGES += "${PN}-examples"
95 95
96FILES_${PN}-dbg += " \ 96FILES:${PN}-dbg += " \
97 ${datadir}/dpdk/.debug \ 97 ${datadir}/dpdk/.debug \
98 ${datadir}/dpdk/examples/*/.debug \ 98 ${datadir}/dpdk/examples/*/.debug \
99 " 99 "
100FILES_${PN}-staticdev += "${datadir}/dpdk/cmdif/lib/*.a \ 100FILES:${PN}-staticdev += "${datadir}/dpdk/cmdif/lib/*.a \
101" 101"
102FILES_${PN}-dev += " \ 102FILES:${PN}-dev += " \
103 ${datadir}/dpdk/${RTE_TARGET}/.config \ 103 ${datadir}/dpdk/${RTE_TARGET}/.config \
104 ${includedir} \ 104 ${includedir} \
105 ${includedir}/exec-env \ 105 ${includedir}/exec-env \
@@ -109,11 +109,11 @@ FILES_${PN}-dev += " \
109 ${datadir}/dpdk/mk \ 109 ${datadir}/dpdk/mk \
110 " 110 "
111 111
112FILES_${PN} += " ${datadir}/ \ 112FILES:${PN} += " ${datadir}/ \
113 ${prefix}/sbin/ \ 113 ${prefix}/sbin/ \
114 ${prefix}/bin/ \ 114 ${prefix}/bin/ \
115 ${libdir}/ \ 115 ${libdir}/ \
116 " 116 "
117FILES_${PN}-examples += " \ 117FILES:${PN}-examples += " \
118 ${datadir}/examples/* \ 118 ${datadir}/examples/* \
119 " 119 "
diff --git a/recipes-extended/dpdk/dpdk_19.11-20.12.bb b/recipes-extended/dpdk/dpdk_19.11-20.12.bb
index 426713c2..37582124 100644
--- a/recipes-extended/dpdk/dpdk_19.11-20.12.bb
+++ b/recipes-extended/dpdk/dpdk_19.11-20.12.bb
@@ -13,7 +13,7 @@ SRCREV = "7071c27f6f5aefb57de1cffab3484707b1e82e2b"
13 13
14include dpdk.inc 14include dpdk.inc
15 15
16do_install_append () { 16do_install:append () {
17 # Remove the unneeded dir 17 # Remove the unneeded dir
18 rm -rf ${D}/${datadir}/${RTE_TARGET}/app 18 rm -rf ${D}/${datadir}/${RTE_TARGET}/app
19} 19}
diff --git a/recipes-extended/ipc-ust/ipc-ust_git.bb b/recipes-extended/ipc-ust/ipc-ust_git.bb
index df496c28..f307816e 100644
--- a/recipes-extended/ipc-ust/ipc-ust_git.bb
+++ b/recipes-extended/ipc-ust/ipc-ust_git.bb
@@ -40,12 +40,12 @@ do_install () {
40 install ${S}/fsl_shm/lib/*.h ${D}${includedir}/ipc/fsl_shm/lib 40 install ${S}/fsl_shm/lib/*.h ${D}${includedir}/ipc/fsl_shm/lib
41} 41}
42 42
43FILES_${PN} += "${base_libdir}/*.so /ipc/*" 43FILES:${PN} += "${base_libdir}/*.so /ipc/*"
44FILES_${PN}-dev = "${includedir}" 44FILES:${PN}-dev = "${includedir}"
45FILES_${PN}-dbg += "/ipc/.debug" 45FILES:${PN}-dbg += "/ipc/.debug"
46 46
47INSANE_SKIP_${PN} += "file-rdeps" 47INSANE_SKIP:${PN} += "file-rdeps"
48INSANE_SKIP_${PN}-dev += "dev-elf" 48INSANE_SKIP:${PN}-dev += "dev-elf"
49 49
50COMPATIBLE_MACHINE = "(b4860qds|b4420qds)" 50COMPATIBLE_MACHINE = "(b4860qds|b4420qds)"
51PACKAGE_ARCH = "${MACHINE_ARCH}" 51PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/recipes-extended/jailhouse/jailhouse_0.12.bb b/recipes-extended/jailhouse/jailhouse_0.12.bb
index c49d7f5b..43b4cdf5 100644
--- a/recipes-extended/jailhouse/jailhouse_0.12.bb
+++ b/recipes-extended/jailhouse/jailhouse_0.12.bb
@@ -39,9 +39,9 @@ CELLCONF_DIR ?= "${JH_DATADIR}/configs"
39INMATES_DIR ?= "${JH_DATADIR}/inmates" 39INMATES_DIR ?= "${JH_DATADIR}/inmates"
40 40
41JH_CONFIG ?= "${S}/ci/jailhouse-config-x86.h" 41JH_CONFIG ?= "${S}/ci/jailhouse-config-x86.h"
42JH_CONFIG_x86 ?= "${S}/ci/jailhouse-config-x86.h" 42JH_CONFIG:x86 ?= "${S}/ci/jailhouse-config-x86.h"
43JH_CONFIG_x86-64 ?= "${S}/ci/jailhouse-config-x86.h" 43JH_CONFIG:x86-64 ?= "${S}/ci/jailhouse-config-x86.h"
44JH_CONFIG_arm ?= "${S}/ci/jailhouse-config-banana-pi.h" 44JH_CONFIG:arm ?= "${S}/ci/jailhouse-config-banana-pi.h"
45 45
46do_configure() { 46do_configure() {
47 if [ -d ${STAGING_DIR_HOST}/${CELLCONF_DIR} ]; 47 if [ -d ${STAGING_DIR_HOST}/${CELLCONF_DIR} ];
@@ -101,22 +101,22 @@ do_install() {
101 101
102PACKAGE_BEFORE_PN = "kernel-module-jailhouse pyjailhouse" 102PACKAGE_BEFORE_PN = "kernel-module-jailhouse pyjailhouse"
103 103
104FILES_${PN} += "${nonarch_base_libdir}/firmware ${libexecdir} ${sbindir} ${JH_DATADIR}" 104FILES:${PN} += "${nonarch_base_libdir}/firmware ${libexecdir} ${sbindir} ${JH_DATADIR}"
105FILES_pyjailhouse = "${PYTHON_SITEPACKAGES_DIR}/pyjailhouse" 105FILES:pyjailhouse = "${PYTHON_SITEPACKAGES_DIR}/pyjailhouse"
106 106
107RDEPENDS_${PN} += " \ 107RDEPENDS:${PN} += " \
108 python3-curses \ 108 python3-curses \
109 python3-datetime \ 109 python3-datetime \
110 python3-mmap \ 110 python3-mmap \
111" 111"
112 112
113RDEPENDS_pyjailhouse = " \ 113RDEPENDS:pyjailhouse = " \
114 python3-core \ 114 python3-core \
115 python3-ctypes \ 115 python3-ctypes \
116 python3-fcntl \ 116 python3-fcntl \
117 python3-shell \ 117 python3-shell \
118" 118"
119 119
120INSANE_SKIP_${PN} = "ldflags" 120INSANE_SKIP:${PN} = "ldflags"
121 121
122COMPATIBLE_MACHINE = "(mx8m)" 122COMPATIBLE_MACHINE = "(mx8m)"
diff --git a/recipes-extended/libpkcs11/libpkcs11_git.bb b/recipes-extended/libpkcs11/libpkcs11_git.bb
index 30f33a20..5496b09c 100644
--- a/recipes-extended/libpkcs11/libpkcs11_git.bb
+++ b/recipes-extended/libpkcs11/libpkcs11_git.bb
@@ -34,6 +34,6 @@ do_install(){
34} 34}
35 35
36PARALLEL_MAKE = "" 36PARALLEL_MAKE = ""
37INSANE_SKIP_${PN} = "ldflags dev-deps" 37INSANE_SKIP:${PN} = "ldflags dev-deps"
38INSANE_SKIP_${PN}-dev = "ldflags dev-elf" 38INSANE_SKIP:${PN}-dev = "ldflags dev-elf"
39COMPATIBLE_MACHINE = "(qoriq-arm64)" 39COMPATIBLE_MACHINE = "(qoriq-arm64)"
diff --git a/recipes-extended/merge-files/merge-files_1.0.bb b/recipes-extended/merge-files/merge-files_1.0.bb
index 6fe5b637..5b3ca7ed 100644
--- a/recipes-extended/merge-files/merge-files_1.0.bb
+++ b/recipes-extended/merge-files/merge-files_1.0.bb
@@ -17,6 +17,6 @@ do_install () {
17do_configure[noexec] = "1" 17do_configure[noexec] = "1"
18do_compile[noexec] = "1" 18do_compile[noexec] = "1"
19 19
20FILES_${PN} = "/*" 20FILES:${PN} = "/*"
21ALLOW_EMPTY_${PN} = "1" 21ALLOW_EMPTY:${PN} = "1"
22INSANE_SKIP_${PN} = "debug-files dev-so" 22INSANE_SKIP:${PN} = "debug-files dev-so"
diff --git a/recipes-extended/odp/odp-counters_git.bb b/recipes-extended/odp/odp-counters_git.bb
index 860dd5fa..9d88ea43 100644
--- a/recipes-extended/odp/odp-counters_git.bb
+++ b/recipes-extended/odp/odp-counters_git.bb
@@ -2,7 +2,7 @@ require odp.inc
2 2
3inherit module 3inherit module
4 4
5do_compile_prepend () { 5do_compile:prepend () {
6 export KERNEL_PATH="${STAGING_KERNEL_DIR}" 6 export KERNEL_PATH="${STAGING_KERNEL_DIR}"
7 export KERNEL_CFG_PATH="${STAGING_KERNEL_BUILDDIR}" 7 export KERNEL_CFG_PATH="${STAGING_KERNEL_BUILDDIR}"
8 cd ${S}/test/debug/perf_counters 8 cd ${S}/test/debug/perf_counters
diff --git a/recipes-extended/odp/odp-module_git.bb b/recipes-extended/odp/odp-module_git.bb
index 46b89654..0748e5bf 100644
--- a/recipes-extended/odp/odp-module_git.bb
+++ b/recipes-extended/odp/odp-module_git.bb
@@ -2,7 +2,7 @@ require odp.inc
2 2
3inherit module 3inherit module
4 4
5do_compile_prepend () { 5do_compile:prepend () {
6 export KERNEL_PATH="${STAGING_KERNEL_DIR}" 6 export KERNEL_PATH="${STAGING_KERNEL_DIR}"
7 export KERNEL_CFG_PATH="${STAGING_KERNEL_BUILDDIR}" 7 export KERNEL_CFG_PATH="${STAGING_KERNEL_BUILDDIR}"
8 cd ${S}/kern 8 cd ${S}/kern
@@ -13,4 +13,4 @@ do_install () {
13 install -m 755 ${S}/kern/odpfsl_kni.ko ${D}/lib/modules/${KERNEL_VERSION}/odp 13 install -m 755 ${S}/kern/odpfsl_kni.ko ${D}/lib/modules/${KERNEL_VERSION}/odp
14} 14}
15 15
16PKG_${PN} = "kernel-module-${PN}" 16PKG:${PN} = "kernel-module-${PN}"
diff --git a/recipes-extended/odp/odp.inc b/recipes-extended/odp/odp.inc
index 129f77ae..d1e10b0f 100644
--- a/recipes-extended/odp/odp.inc
+++ b/recipes-extended/odp/odp.inc
@@ -6,7 +6,7 @@ SECTION = "console/network"
6LICENSE = "BSD-3-Clause" 6LICENSE = "BSD-3-Clause"
7LIC_FILES_CHKSUM = "file://LICENSE;md5=ca6103dc75397fb6bec596187d6b7829" 7LIC_FILES_CHKSUM = "file://LICENSE;md5=ca6103dc75397fb6bec596187d6b7829"
8 8
9FILESEXTRAPATHS_prepend := "${THISDIR}/odp:" 9FILESEXTRAPATHS:prepend := "${THISDIR}/odp:"
10 10
11SRC_URI = " \ 11SRC_URI = " \
12git://source.codeaurora.org/external/qoriq/qoriq-components/odp;nobranch=1 \ 12git://source.codeaurora.org/external/qoriq/qoriq-components/odp;nobranch=1 \
diff --git a/recipes-extended/odp/odp_git.bb b/recipes-extended/odp/odp_git.bb
index 00575e24..9c94e432 100644
--- a/recipes-extended/odp/odp_git.bb
+++ b/recipes-extended/odp/odp_git.bb
@@ -6,17 +6,17 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
6 6
7DEPENDS = "openssl cunit libxml2" 7DEPENDS = "openssl cunit libxml2"
8 8
9RDEPENDS_${PN} = "bash libcrypto libssl odp-module odp-counters" 9RDEPENDS:${PN} = "bash libcrypto libssl odp-module odp-counters"
10 10
11ODP_SOC ?= "" 11ODP_SOC ?= ""
12ODP_SOC_ls1043ardb = "LS1043" 12ODP_SOC:ls1043ardb = "LS1043"
13ODP_SOC_ls1046ardb = "LS1046" 13ODP_SOC:ls1046ardb = "LS1046"
14ODP_PLATFORM ?= "linux-dpaa2" 14ODP_PLATFORM ?= "linux-dpaa2"
15ODP_BUILD_TYPE ?= "ls2088" 15ODP_BUILD_TYPE ?= "ls2088"
16ODP_BUILD_TYPE_ls1043ardb = "ls1043" 16ODP_BUILD_TYPE:ls1043ardb = "ls1043"
17ODP_BUILD_TYPE_ls1046ardb = "ls1046" 17ODP_BUILD_TYPE:ls1046ardb = "ls1046"
18ODP_BUILD_TYPE_ls2080ardb = "ls2080" 18ODP_BUILD_TYPE:ls2080ardb = "ls2080"
19ODP_BUILD_TYPE_ls1088ardb = "ls1088" 19ODP_BUILD_TYPE:ls1088ardb = "ls1088"
20 20
21EXTRA_OECONF = "--with-platform=${ODP_PLATFORM} \ 21EXTRA_OECONF = "--with-platform=${ODP_PLATFORM} \
22 --enable-test-vald \ 22 --enable-test-vald \
@@ -34,17 +34,17 @@ CFLAGS += "-Wno-format-truncation -Wno-maybe-uninitialized -Wno-implicit-fallthr
34 34
35PACKAGECONFIG[perf] = "--enable-test-perf,,," 35PACKAGECONFIG[perf] = "--enable-test-perf,,,"
36 36
37do_configure_prepend () { 37do_configure:prepend () {
38 export SOC=${ODP_SOC} 38 export SOC=${ODP_SOC}
39 ${S}/bootstrap 39 ${S}/bootstrap
40} 40}
41 41
42do_compile_prepend () { 42do_compile:prepend () {
43 export SOC=${ODP_SOC} 43 export SOC=${ODP_SOC}
44 export ARCH=${TUNE_ARCH} 44 export ARCH=${TUNE_ARCH}
45} 45}
46 46
47do_install_append () { 47do_install:append () {
48 install -d ${D}${includedir}/odp/kni 48 install -d ${D}${includedir}/odp/kni
49 install -d ${D}${includedir}/odp/kern 49 install -d ${D}${includedir}/odp/kern
50 install -d ${D}${includedir}/odp/flib/mc 50 install -d ${D}${includedir}/odp/flib/mc
@@ -58,6 +58,6 @@ do_install_append () {
58 sed -i -e 's#platform/linux-dpaa2/##g' ${D}${includedir}/odp/kern/*.h 58 sed -i -e 's#platform/linux-dpaa2/##g' ${D}${includedir}/odp/kern/*.h
59} 59}
60 60
61FILES_${PN}-staticdev += "${datadir}/opendataplane/*.la" 61FILES:${PN}-staticdev += "${datadir}/opendataplane/*.la"
62FILES_${PN} += "/usr/odp/bin /usr/odp/scripts /usr/odp/debug /usr/odp/test/validation /usr/odp/test/performance /usr/odp/test/miscellaneous /usr/odp/test/api_test" 62FILES:${PN} += "/usr/odp/bin /usr/odp/scripts /usr/odp/debug /usr/odp/test/validation /usr/odp/test/performance /usr/odp/test/miscellaneous /usr/odp/test/api_test"
63FILES_${PN}-dbg += "/usr/odp/bin/.debug /usr/odp/debug/.debug /usr/odp/test/validation/.debug /usr/odp/test/performance/.debug /usr/odp/test/miscellaneous/.debug /usr/odp/test/api_test/.debug" 63FILES:${PN}-dbg += "/usr/odp/bin/.debug /usr/odp/debug/.debug /usr/odp/test/validation/.debug /usr/odp/test/performance/.debug /usr/odp/test/miscellaneous/.debug /usr/odp/test/api_test/.debug"
diff --git a/recipes-extended/ofp/ofp_git.bb b/recipes-extended/ofp/ofp_git.bb
index c76eafd7..ec7328c8 100644
--- a/recipes-extended/ofp/ofp_git.bb
+++ b/recipes-extended/ofp/ofp_git.bb
@@ -32,6 +32,6 @@ do_configure () {
32 ${S}/configure ${EXTRA_OECONF} 32 ${S}/configure ${EXTRA_OECONF}
33} 33}
34 34
35FILES_${PN} += "/usr/ofp/bin" 35FILES:${PN} += "/usr/ofp/bin"
36FILES_${PN}-dbg += "/usr/ofp/bin/.debug" 36FILES:${PN}-dbg += "/usr/ofp/bin/.debug"
37COMPATIBLE_MACHINE = "(ls2088a|ls1088a)" 37COMPATIBLE_MACHINE = "(ls2088a|ls1088a)"
diff --git a/recipes-extended/ovs-dpdk/ovs-dpdk_2.13.0.bb b/recipes-extended/ovs-dpdk/ovs-dpdk_2.13.0.bb
index 9e817579..f9d32773 100644
--- a/recipes-extended/ovs-dpdk/ovs-dpdk_2.13.0.bb
+++ b/recipes-extended/ovs-dpdk/ovs-dpdk_2.13.0.bb
@@ -3,7 +3,7 @@ LICENSE = "BSD"
3LIC_FILES_CHKSUM = "file://LICENSE;md5=1ce5d23a6429dff345518758f13aaeab" 3LIC_FILES_CHKSUM = "file://LICENSE;md5=1ce5d23a6429dff345518758f13aaeab"
4 4
5DEPENDS = "dpdk python3-six-native coreutils-native" 5DEPENDS = "dpdk python3-six-native coreutils-native"
6RDEPENDS_${PN} = "bash libcrypto libssl python3" 6RDEPENDS:${PN} = "bash libcrypto libssl python3"
7 7
8inherit python3native 8inherit python3native
9 9
@@ -42,7 +42,7 @@ do_install() {
42 chmod 777 -R ${D}${bindir}/ovs-dpdk/* 42 chmod 777 -R ${D}${bindir}/ovs-dpdk/*
43} 43}
44 44
45ALLOW_EMPTY_${PN} = "1" 45ALLOW_EMPTY:${PN} = "1"
46INHIBIT_PACKAGE_STRIP = "1" 46INHIBIT_PACKAGE_STRIP = "1"
47PACKAGE_ARCH = "${MACHINE_ARCH}" 47PACKAGE_ARCH = "${MACHINE_ARCH}"
48COMPATIBLE_MACHINE = "(qoriq-arm64)" 48COMPATIBLE_MACHINE = "(qoriq-arm64)"
diff --git a/recipes-extended/pktgen-dpdk/pktgen-dpdk_19.12.0.bb b/recipes-extended/pktgen-dpdk/pktgen-dpdk_19.12.0.bb
index f3a73c35..6a039129 100644
--- a/recipes-extended/pktgen-dpdk/pktgen-dpdk_19.12.0.bb
+++ b/recipes-extended/pktgen-dpdk/pktgen-dpdk_19.12.0.bb
@@ -26,7 +26,7 @@ do_install() {
26 cp -f ${S}/Pktgen.lua ${D}${bindir}/ 26 cp -f ${S}/Pktgen.lua ${D}${bindir}/
27} 27}
28 28
29INSANE_SKIP_${PN} = "ldflags" 29INSANE_SKIP:${PN} = "ldflags"
30INHIBIT_PACKAGE_STRIP = "1" 30INHIBIT_PACKAGE_STRIP = "1"
31PACKAGE_ARCH = "${MACHINE_ARCH}" 31PACKAGE_ARCH = "${MACHINE_ARCH}"
32PARALLEL_MAKE = "" 32PARALLEL_MAKE = ""
diff --git a/recipes-extended/procps/procps_%.bbappend b/recipes-extended/procps/procps_%.bbappend
index face0ccc..43fb349b 100644
--- a/recipes-extended/procps/procps_%.bbappend
+++ b/recipes-extended/procps/procps_%.bbappend
@@ -1,4 +1,4 @@
1do_install_append_qoriq-ppc() { 1do_install:append:qoriq-ppc() {
2 for keyword in \ 2 for keyword in \
3 net.ipv4.conf.default.rp_filter \ 3 net.ipv4.conf.default.rp_filter \
4 net.ipv4.conf.all.rp_filter \ 4 net.ipv4.conf.all.rp_filter \
diff --git a/recipes-extended/secure-obj/secure-obj.inc b/recipes-extended/secure-obj/secure-obj.inc
index 8a62d9cb..55f20ed5 100644
--- a/recipes-extended/secure-obj/secure-obj.inc
+++ b/recipes-extended/secure-obj/secure-obj.inc
@@ -2,7 +2,7 @@ DESCRIPTION = "Secure Object"
2LICENSE = "BSD" 2LICENSE = "BSD"
3 3
4DEPENDS = "openssl optee-os-qoriq optee-client-qoriq" 4DEPENDS = "openssl optee-os-qoriq optee-client-qoriq"
5RDEPENDS_${PN} = "bash libcrypto libssl" 5RDEPENDS:${PN} = "bash libcrypto libssl"
6 6
7DEPENDS += "python3-pycryptodomex-native" 7DEPENDS += "python3-pycryptodomex-native"
8 8
@@ -20,9 +20,9 @@ export OPTEE_CLIENT_EXPORT = "${RECIPE_SYSROOT}/usr"
20 20
21EXTRA_OEMAKE = 'CC="${CC}" LD="${CC}"' 21EXTRA_OEMAKE = 'CC="${CC}" LD="${CC}"'
22 22
23ALLOW_EMPTY_${PN} = "1" 23ALLOW_EMPTY:${PN} = "1"
24INHIBIT_PACKAGE_STRIP = "1" 24INHIBIT_PACKAGE_STRIP = "1"
25PARALLEL_MAKE = "" 25PARALLEL_MAKE = ""
26INSANE_SKIP_${PN} = "ldflags" 26INSANE_SKIP:${PN} = "ldflags"
27COMPATIBLE_MACHINE = "(qoriq-arm64)" 27COMPATIBLE_MACHINE = "(qoriq-arm64)"
28DEBUG_BUILD = "1" 28DEBUG_BUILD = "1"
diff --git a/recipes-extended/secure-obj/secure-obj_git.bb b/recipes-extended/secure-obj/secure-obj_git.bb
index 2d723738..1fd1fea3 100644
--- a/recipes-extended/secure-obj/secure-obj_git.bb
+++ b/recipes-extended/secure-obj/secure-obj_git.bb
@@ -4,15 +4,15 @@ LIC_FILES_CHKSUM = "file://README;md5=82b72e88f23cded9dd23f0fb1790b8d2"
4 4
5S = "${WORKDIR}/git" 5S = "${WORKDIR}/git"
6 6
7RDEPENDS_{PN} += "secure-obj-module" 7RDEPENDS:{PN} += "secure-obj-module"
8 8
9WRAP_TARGET_PREFIX ?= "${TARGET_PREFIX}" 9WRAP_TARGET_PREFIX ?= "${TARGET_PREFIX}"
10export SECURE_STORAGE_PATH = "${S}/secure_storage_ta/ta/" 10export SECURE_STORAGE_PATH = "${S}/secure_storage_ta/ta/"
11export OPTEE_CLIENT_EXPORT = "${RECIPE_SYSROOT}/usr" 11export OPTEE_CLIENT_EXPORT = "${RECIPE_SYSROOT}/usr"
12export CROSS_COMPILE_HOST = "${CROSS_COMPILE}" 12export CROSS_COMPILE_HOST = "${CROSS_COMPILE}"
13export CROSS_COMPILE_TA = "${CROSS_COMPILE}" 13export CROSS_COMPILE_TA = "${CROSS_COMPILE}"
14ARCH_qoriq-arm64 = "aarch64" 14ARCH:qoriq-arm64 = "aarch64"
15ARCH_qoriq-arm = "arm" 15ARCH:qoriq-arm = "arm"
16 16
17do_compile() { 17do_compile() {
18 unset LDFLAGS 18 unset LDFLAGS
@@ -41,6 +41,6 @@ do_install() {
41 rm -rf ${D}${bindir}/test 41 rm -rf ${D}${bindir}/test
42} 42}
43 43
44FILES_${PN} += "${base_libdir}/optee_armtz ${libdir}/${ARCH}-linux-gnu/openssl-1.0.0/engines" 44FILES:${PN} += "${base_libdir}/optee_armtz ${libdir}/${ARCH}-linux-gnu/openssl-1.0.0/engines"
45INSANE_SKIP_${PN} = "dev-deps ldflags" 45INSANE_SKIP:${PN} = "dev-deps ldflags"
46INSANE_SKIP_${PN}-dev = "ldflags dev-elf" 46INSANE_SKIP:${PN}-dev = "ldflags dev-elf"
diff --git a/recipes-extended/testfloat/testfloat_2a.bb b/recipes-extended/testfloat/testfloat_2a.bb
index 800cef3d..4ed2ceb3 100644
--- a/recipes-extended/testfloat/testfloat_2a.bb
+++ b/recipes-extended/testfloat/testfloat_2a.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://testfloat/testfloat.txt;beginline=87;endline=95;md5=b
6SRC_URI = " http://www.jhauser.us/arithmetic/TestFloat-2a.tar.Z;name=TestFloat \ 6SRC_URI = " http://www.jhauser.us/arithmetic/TestFloat-2a.tar.Z;name=TestFloat \
7 http://www.jhauser.us/arithmetic/SoftFloat-2b.tar.Z;name=SoftFloat \ 7 http://www.jhauser.us/arithmetic/SoftFloat-2b.tar.Z;name=SoftFloat \
8 " 8 "
9SRC_URI_append_qoriq-ppc = " file://SoftFloat-powerpc-1.patch \ 9SRC_URI:append:qoriq-ppc = " file://SoftFloat-powerpc-1.patch \
10 file://TestFloat-powerpc-E500v2-SPE-1.patch \ 10 file://TestFloat-powerpc-E500v2-SPE-1.patch \
11 file://Yocto-replace-COMPILE_PREFIX-gcc.patch \ 11 file://Yocto-replace-COMPILE_PREFIX-gcc.patch \
12 " 12 "
@@ -40,6 +40,6 @@ do_install(){
40 install testfloat/powerpc-linux-gcc/testsoftfloat ${D}/${bindir} 40 install testfloat/powerpc-linux-gcc/testsoftfloat ${D}/${bindir}
41} 41}
42 42
43COMPATIBLE_HOST_e500v2 = ".*" 43COMPATIBLE_HOST:e500v2 = ".*"
44COMPATIBLE_HOST ?= "(none)" 44COMPATIBLE_HOST ?= "(none)"
45 45
diff --git a/recipes-extended/tsntool/tsntool_git.bb b/recipes-extended/tsntool/tsntool_git.bb
index 8ef79d27..f4f10938 100644
--- a/recipes-extended/tsntool/tsntool_git.bb
+++ b/recipes-extended/tsntool/tsntool_git.bb
@@ -14,7 +14,7 @@ S = "${WORKDIR}/git"
14 14
15do_configure[depends] += "virtual/kernel:do_shared_workdir" 15do_configure[depends] += "virtual/kernel:do_shared_workdir"
16 16
17do_compile_prepend() { 17do_compile:prepend() {
18 mkdir -p ${S}/include/linux 18 mkdir -p ${S}/include/linux
19 cp -r ${STAGING_KERNEL_DIR}/include/uapi/linux/tsn.h ${S}/include/linux 19 cp -r ${STAGING_KERNEL_DIR}/include/uapi/linux/tsn.h ${S}/include/linux
20} 20}
@@ -25,7 +25,7 @@ do_install() {
25} 25}
26 26
27PACKAGES = "${PN}-dbg ${PN}" 27PACKAGES = "${PN}-dbg ${PN}"
28FILES_${PN} = "${libdir}/libtsn.so ${bindir}/*" 28FILES:${PN} = "${libdir}/libtsn.so ${bindir}/*"
29INSANE_SKIP_${PN} += "file-rdeps rpaths dev-so" 29INSANE_SKIP:${PN} += "file-rdeps rpaths dev-so"
30COMPATIBLE_MACHINE = "(qoriq)" 30COMPATIBLE_MACHINE = "(qoriq)"
31PARALLEL_MAKE = "" 31PARALLEL_MAKE = ""
diff --git a/recipes-fsl/packagegroups/packagegroup-fsl-isp.bb b/recipes-fsl/packagegroups/packagegroup-fsl-isp.bb
index 4ad257ee..cfcf2897 100644
--- a/recipes-fsl/packagegroups/packagegroup-fsl-isp.bb
+++ b/recipes-fsl/packagegroups/packagegroup-fsl-isp.bb
@@ -3,12 +3,12 @@ DESCRIPTION = "Add packages for ISP build"
3inherit packagegroup 3inherit packagegroup
4 4
5ISP_PKGS ?= "" 5ISP_PKGS ?= ""
6ISP_PKGS_mx8mp = " \ 6ISP_PKGS:mx8mp = " \
7 isp-imx \ 7 isp-imx \
8 basler-camera \ 8 basler-camera \
9 basler-camera-dev \ 9 basler-camera-dev \
10 kernel-module-isp-vvcam \ 10 kernel-module-isp-vvcam \
11" 11"
12RDEPENDS_${PN} = " \ 12RDEPENDS:${PN} = " \
13 ${ISP_PKGS} \ 13 ${ISP_PKGS} \
14" 14"
diff --git a/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bb b/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bb
index 968642bf..59f58976 100644
--- a/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bb
+++ b/recipes-fsl/packagegroups/packagegroup-fsl-mfgtool.bb
@@ -20,7 +20,7 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
20# Distro can override the following VIRTUAL-RUNTIME providers: 20# Distro can override the following VIRTUAL-RUNTIME providers:
21VIRTUAL-RUNTIME_keymaps ?= "keymaps" 21VIRTUAL-RUNTIME_keymaps ?= "keymaps"
22 22
23RDEPENDS_${PN}-base = " \ 23RDEPENDS:${PN}-base = " \
24 bash \ 24 bash \
25 imx-uuc \ 25 imx-uuc \
26 util-linux \ 26 util-linux \
@@ -34,14 +34,14 @@ RDEPENDS_${PN}-base = " \
34 ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS} \ 34 ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS} \
35" 35"
36 36
37RDEPENDS_${PN}-mtd = " \ 37RDEPENDS:${PN}-mtd = " \
38 ${PN}-base \ 38 ${PN}-base \
39 imx-kobs \ 39 imx-kobs \
40 mtd-utils \ 40 mtd-utils \
41 mtd-utils-ubifs \ 41 mtd-utils-ubifs \
42" 42"
43 43
44RDEPENDS_${PN}-extfs = " \ 44RDEPENDS:${PN}-extfs = " \
45 ${PN}-base \ 45 ${PN}-base \
46 e2fsprogs-mke2fs \ 46 e2fsprogs-mke2fs \
47 e2fsprogs-e2fsck \ 47 e2fsprogs-e2fsck \
diff --git a/recipes-fsl/packagegroups/packagegroup-fsl-opencv-imx.bb b/recipes-fsl/packagegroups/packagegroup-fsl-opencv-imx.bb
index 8eb5b89a..724d0ff5 100644
--- a/recipes-fsl/packagegroups/packagegroup-fsl-opencv-imx.bb
+++ b/recipes-fsl/packagegroups/packagegroup-fsl-opencv-imx.bb
@@ -7,6 +7,6 @@ OPENCV_PKGS = " \
7 opencv-samples \ 7 opencv-samples \
8 python3-opencv \ 8 python3-opencv \
9" 9"
10RDEPENDS_${PN} = " \ 10RDEPENDS:${PN} = " \
11 ${OPENCV_PKGS} \ 11 ${OPENCV_PKGS} \
12" 12"
diff --git a/recipes-fsl/packagegroups/packagegroup-fsl-qca6174.bb b/recipes-fsl/packagegroups/packagegroup-fsl-qca6174.bb
deleted file mode 100644
index aeba7623..00000000
--- a/recipes-fsl/packagegroups/packagegroup-fsl-qca6174.bb
+++ /dev/null
@@ -1,13 +0,0 @@
1# Copyright 2019 NXP
2
3SUMMARY = "Qualcomm Wi-Fi support"
4
5inherit packagegroup
6
7RDEPENDS_${PN} = " \
8 kernel-module-qca6174 \
9 firmware-qca6174 \
10"
11
12COMPATIBLE_HOST = '(aarch64|arm).*-linux'
13COMPATIBLE_HOST_libc-musl = 'null'
diff --git a/recipes-fsl/packagegroups/packagegroup-fsl-qca9377.bb b/recipes-fsl/packagegroups/packagegroup-fsl-qca9377.bb
deleted file mode 100644
index 43df5a70..00000000
--- a/recipes-fsl/packagegroups/packagegroup-fsl-qca9377.bb
+++ /dev/null
@@ -1,12 +0,0 @@
1# Copyright 2019 NXP
2
3SUMMARY = "Qualcomm Wi-Fi support"
4
5inherit packagegroup
6
7RDEPENDS_${PN} = " \
8 kernel-module-qca9377 \
9 firmware-qca9377 \
10"
11COMPATIBLE_HOST = '(aarch64|arm).*-linux'
12COMPATIBLE_HOST_libc-musl = 'null'
diff --git a/recipes-graphics/cairo/cairo_%.bbappend b/recipes-graphics/cairo/cairo_%.bbappend
index 5b1562ab..2c73c7f3 100644
--- a/recipes-graphics/cairo/cairo_%.bbappend
+++ b/recipes-graphics/cairo/cairo_%.bbappend
@@ -1,2 +1,2 @@
1PACKAGECONFIG_append_imxgpu3d = " egl glesv2" 1PACKAGECONFIG:append:imxgpu3d = " egl glesv2"
2PACKAGECONFIG_remove_imxgpu3d = "opengl" 2PACKAGECONFIG:remove:imxgpu3d = "opengl"
diff --git a/recipes-graphics/drm/libdrm_2.4.102.imx.bb b/recipes-graphics/drm/libdrm_2.4.102.imx.bb
index 6935b782..bffef407 100644
--- a/recipes-graphics/drm/libdrm_2.4.102.imx.bb
+++ b/recipes-graphics/drm/libdrm_2.4.102.imx.bb
@@ -42,32 +42,32 @@ PACKAGECONFIG[cairo-tests] = "-Dcairo-tests=true,-Dcairo-tests=false"
42PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,udev" 42PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,udev"
43PACKAGECONFIG[manpages] = "-Dman-pages=true,-Dman-pages=false,libxslt-native xmlto-native" 43PACKAGECONFIG[manpages] = "-Dman-pages=true,-Dman-pages=false,libxslt-native xmlto-native"
44 44
45ALLOW_EMPTY_${PN}-drivers = "1" 45ALLOW_EMPTY:${PN}-drivers = "1"
46PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \ 46PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \
47 ${PN}-intel ${PN}-exynos ${PN}-kms ${PN}-freedreno ${PN}-amdgpu \ 47 ${PN}-intel ${PN}-exynos ${PN}-kms ${PN}-freedreno ${PN}-amdgpu \
48 ${PN}-etnaviv" 48 ${PN}-etnaviv"
49 49
50RRECOMMENDS_${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \ 50RRECOMMENDS:${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \
51 ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \ 51 ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \
52 ${PN}-etnaviv" 52 ${PN}-etnaviv"
53 53
54FILES_${PN}-tests = "${bindir}/*" 54FILES:${PN}-tests = "${bindir}/*"
55FILES_${PN}-radeon = "${libdir}/libdrm_radeon.so.*" 55FILES:${PN}-radeon = "${libdir}/libdrm_radeon.so.*"
56FILES_${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*" 56FILES:${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*"
57FILES_${PN}-omap = "${libdir}/libdrm_omap.so.*" 57FILES:${PN}-omap = "${libdir}/libdrm_omap.so.*"
58FILES_${PN}-intel = "${libdir}/libdrm_intel.so.*" 58FILES:${PN}-intel = "${libdir}/libdrm_intel.so.*"
59FILES_${PN}-exynos = "${libdir}/libdrm_exynos.so.*" 59FILES:${PN}-exynos = "${libdir}/libdrm_exynos.so.*"
60FILES_${PN}-kms = "${libdir}/libkms*.so.*" 60FILES:${PN}-kms = "${libdir}/libkms*.so.*"
61FILES_${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*" 61FILES:${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*"
62FILES_${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.* ${datadir}/${PN}/amdgpu.ids" 62FILES:${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.* ${datadir}/${PN}/amdgpu.ids"
63FILES_${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*" 63FILES:${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*"
64 64
65BBCLASSEXTEND = "native nativesdk" 65BBCLASSEXTEND = "native nativesdk"
66 66
67PACKAGES_prepend_imxgpu = "${PN}-vivante " 67PACKAGES:prepend:imxgpu = "${PN}-vivante "
68RRECOMMENDS_${PN}-drivers_append_imxgpu = " ${PN}-vivante" 68RRECOMMENDS:${PN}-drivers:append:imxgpu = " ${PN}-vivante"
69FILES_${PN}-vivante = "${libdir}/libdrm_vivante.so.*" 69FILES:${PN}-vivante = "${libdir}/libdrm_vivante.so.*"
70PACKAGECONFIG_append_imxgpu = " vivante" 70PACKAGECONFIG:append:imxgpu = " vivante"
71PACKAGECONFIG[vivante] = "-Dvivante=true,-Dvivante=false" 71PACKAGECONFIG[vivante] = "-Dvivante=true,-Dvivante=false"
72 72
73PACKAGE_ARCH = "${MACHINE_SOCARCH}" 73PACKAGE_ARCH = "${MACHINE_SOCARCH}"
diff --git a/recipes-graphics/gtk+/gtk+3_%.bbappend b/recipes-graphics/gtk+/gtk+3_%.bbappend
index be2bac75..2f108a27 100644
--- a/recipes-graphics/gtk+/gtk+3_%.bbappend
+++ b/recipes-graphics/gtk+/gtk+3_%.bbappend
@@ -1,5 +1,5 @@
1DEPENDS_append_imxgpu2d = " virtual/egl" 1DEPENDS:append:imxgpu2d = " virtual/egl"
2 2
3PACKAGECONFIG_remove_imxgpu2d = " \ 3PACKAGECONFIG:remove:imxgpu2d = " \
4 ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "x11", "", d)} \ 4 ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "x11", "", d)} \
5" 5"
diff --git a/recipes-graphics/images/core-image-weston.bbappend b/recipes-graphics/images/core-image-weston.bbappend
index 2a3cde69..77d2fe74 100644
--- a/recipes-graphics/images/core-image-weston.bbappend
+++ b/recipes-graphics/images/core-image-weston.bbappend
@@ -1,3 +1,3 @@
1# FIXME: i.MX6SL cannot use mesa for Graphics and it lacks GL support, 1# FIXME: i.MX6SL cannot use mesa for Graphics and it lacks GL support,
2# so for now we skip it. 2# so for now we skip it.
3CORE_IMAGE_BASE_INSTALL_remove_mx6sl = "clutter-1.0-examples" 3CORE_IMAGE_BASE_INSTALL:remove:mx6sl = "clutter-1.0-examples"
diff --git a/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.8.14.bb b/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.9.2.bb
index 1176fa1a..e4baefb5 100644
--- a/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.8.14.bb
+++ b/recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.9.2.bb
@@ -1,15 +1,15 @@
1# Copyright (C) 2016 Freescale Semiconductor 1# Copyright (C) 2016 Freescale Semiconductor
2# Copyright 2017-2019 NXP 2# Copyright 2017-2021 NXP
3# Released under the MIT license (see COPYING.MIT for the terms) 3# Released under the MIT license (see COPYING.MIT for the terms)
4 4
5DESCRIPTION = "GPU G2D library and apps for i.MX with 2D GPU and DPU" 5DESCRIPTION = "GPU G2D library and apps for i.MX with 2D GPU and DPU"
6LICENSE = "Proprietary" 6LICENSE = "Proprietary"
7LIC_FILES_CHKSUM = "file://COPYING;md5=a632fefd1c359980434f9389833cab3a" 7LIC_FILES_CHKSUM = "file://COPYING;md5=417b82f17fc02b88125331ed312f6f1b"
8PROVIDES += "virtual/libg2d" 8PROVIDES += "virtual/libg2d"
9 9
10SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true" 10SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true"
11SRC_URI[md5sum] = "51b1a54f303bea31325549e9fb1f0d04" 11SRC_URI[md5sum] = "a267c87677d600ecf07d4c8f42941532"
12SRC_URI[sha256sum] = "360012a32353bde233a548f25a8f99b18660059ea2655ab15335a967843ce3b9" 12SRC_URI[sha256sum] = "02e4e649f2af6c867cb666df10f032af48b0907e1529fa6c5958dad7e38aebbe"
13 13
14inherit fsl-eula-unpack 14inherit fsl-eula-unpack
15 15
@@ -21,15 +21,15 @@ do_install () {
21 cp -r ${S}/gpu-demos/opt ${D} 21 cp -r ${S}/gpu-demos/opt ${D}
22} 22}
23 23
24FILES_${PN} = "${libdir}/libg2d* /opt" 24FILES:${PN} = "${libdir}/libg2d* /opt"
25FILES_${PN}-dev = "${libdir}/libg2d${SOLIBSDEV} ${includedir}" 25FILES:${PN}-dev = "${libdir}/libg2d${SOLIBSDEV} ${includedir}"
26INSANE_SKIP_${PN} += "ldflags" 26INSANE_SKIP:${PN} += "ldflags"
27 27
28RDEPENDS_${PN} = "libgal-imx libdrm" 28RDEPENDS:${PN} = "libgal-imx libdrm"
29 29
30# This is required to provide support for VPU Amphion HEVC tile format 30# This is required to provide support for VPU Amphion HEVC tile format
31# From NXP [MGS-5547] (commit e175d6b4f78deab24d319b852998bef55cdecc99): 31# From NXP [MGS-5547] (commit e175d6b4f78deab24d319b852998bef55cdecc99):
32# VPU Amphion HEVC tile support was added using OpenCL, so add a dependency on libopencl-imx. 32# VPU Amphion HEVC tile support was added using OpenCL, so add a dependency on libopencl-imx.
33RDEPENDS_${PN} += "libopencl-imx" 33RDEPENDS:${PN} += "libopencl-imx"
34 34
35COMPATIBLE_MACHINE = "(imxdpu)" 35COMPATIBLE_MACHINE = "(imxdpu)"
diff --git a/recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace/0001-dlsym-workaround-glibc-2.34-build-failure.patch b/recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace/0001-dlsym-workaround-glibc-2.34-build-failure.patch
new file mode 100644
index 00000000..9f3410d7
--- /dev/null
+++ b/recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace/0001-dlsym-workaround-glibc-2.34-build-failure.patch
@@ -0,0 +1,33 @@
1From d11884c88eac803c174f759414d0162154450b6a Mon Sep 17 00:00:00 2001
2From: Andrey Zhizhikin <andrey.z@gmail.com>
3Date: Thu, 2 Sep 2021 09:43:33 +0000
4Subject: [PATCH] dlsym: workaround glibc 2.34 build failure
5
6As suggested in [1], upstream component does not have a solution for the
7issue, and therefore for glibc version >= 2.34 dlsym wrappers should be
8skipped.
9
10Link: [1]: https://github.com/apitrace/apitrace/issues/756
11
12Upstream-Status: Pending
13Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
14---
15 wrappers/dlsym.cpp | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18diff --git a/wrappers/dlsym.cpp b/wrappers/dlsym.cpp
19index cdf5cfdb..4061afc4 100644
20--- a/wrappers/dlsym.cpp
21+++ b/wrappers/dlsym.cpp
22@@ -34,7 +34,7 @@
23 #include "os.hpp"
24
25
26-#ifdef __GLIBC__
27+#if defined(__GLIBC__) && !(__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34)
28
29
30 #include <dlfcn.h>
31--
322.17.1
33
diff --git a/recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace_9.0.0.bb b/recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace_9.0.0.bb
index 65ce9cd5..dfa8dde7 100644
--- a/recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace_9.0.0.bb
+++ b/recipes-graphics/imx-gpu-apitrace/imx-gpu-apitrace_9.0.0.bb
@@ -4,23 +4,25 @@ LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=aeb969185a143c3c25130bc2c3ef9a50" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=aeb969185a143c3c25130bc2c3ef9a50"
5DEPENDS = "imx-gpu-viv zlib libpng procps" 5DEPENDS = "imx-gpu-viv zlib libpng procps"
6 6
7SRC_URI = "git://source.codeaurora.org/external/imx/apitrace-imx.git;protocol=https;branch=imx_9.0" 7SRC_URI = "git://source.codeaurora.org/external/imx/apitrace-imx.git;protocol=https;branch=imx_9.0 \
8 file://0001-dlsym-workaround-glibc-2.34-build-failure.patch \
9"
8SRCREV = "c50e6a954e44998f2e3793a8de863e961f8008c6" 10SRCREV = "c50e6a954e44998f2e3793a8de863e961f8008c6"
9 11
10S = "${WORKDIR}/git" 12S = "${WORKDIR}/git"
11 13
12inherit cmake pkgconfig perlnative python3native 14inherit cmake pkgconfig perlnative python3native
13 15
14PACKAGECONFIG_BACKEND_mx6 = " \ 16PACKAGECONFIG_BACKEND:mx6 = " \
15 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'waffle', \ 17 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'waffle', \
16 bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \ 18 bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \
17 '', d), d)} \ 19 '', d), d)} \
18" 20"
19PACKAGECONFIG_BACKEND_mx7 = "${PACKAGECONFIG_BACKEND_mx6}" 21PACKAGECONFIG_BACKEND:mx7 = "${PACKAGECONFIG_BACKEND:mx6}"
20PACKAGECONFIG_BACKEND_mx8 = "waffle" 22PACKAGECONFIG_BACKEND:mx8 = "waffle"
21 23
22PACKAGECONFIG_GPU2D = "" 24PACKAGECONFIG_GPU2D = ""
23PACKAGECONFIG_GPU2D_imxgpu2d = "vivante" 25PACKAGECONFIG_GPU2D:imxgpu2d = "vivante"
24 26
25PACKAGECONFIG ??= " \ 27PACKAGECONFIG ??= " \
26 egl \ 28 egl \
@@ -37,7 +39,7 @@ PACKAGECONFIG[vivante] = "-DENABLE_VIVANTE=ON,-DENABLE_VIVANTE=OFF,virtual/libg2
37 39
38SOLIBS = ".so" 40SOLIBS = ".so"
39FILES_SOLIBSDEV = "" 41FILES_SOLIBSDEV = ""
40FILES_${PN} += " \ 42FILES:${PN} += " \
41 ${libdir}/apitrace/scripts/* \ 43 ${libdir}/apitrace/scripts/* \
42 ${libdir}/apitrace/wrappers/* \ 44 ${libdir}/apitrace/wrappers/* \
43" 45"
diff --git a/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p1.4.bb b/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p2.0.bb
index 257ecf16..011901bb 100644
--- a/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p1.4.bb
+++ b/recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.4.3.p2.0.bb
@@ -1,11 +1,11 @@
1# Copyright (C) 2016 Freescale Semiconductor 1# Copyright (C) 2016 Freescale Semiconductor
2# Copyright 2017-2018 NXP 2# Copyright 2017-2021 NXP
3# Copyright 2018 (C) O.S. Systems Software LTDA. 3# Copyright 2018 (C) O.S. Systems Software LTDA.
4# Released under the MIT license (see COPYING.MIT for the terms) 4# Released under the MIT license (see COPYING.MIT for the terms)
5 5
6DESCRIPTION = "GPU G2D library and apps for i.MX with 2D GPU and no DPU" 6DESCRIPTION = "GPU G2D library and apps for i.MX with 2D GPU and no DPU"
7LICENSE = "Proprietary" 7LICENSE = "Proprietary"
8LIC_FILES_CHKSUM = "file://COPYING;md5=a632fefd1c359980434f9389833cab3a" 8LIC_FILES_CHKSUM = "file://COPYING;md5=417b82f17fc02b88125331ed312f6f1b"
9 9
10DEPENDS += "libgal-imx" 10DEPENDS += "libgal-imx"
11PROVIDES += "virtual/libg2d" 11PROVIDES += "virtual/libg2d"
@@ -13,10 +13,10 @@ PROVIDES += "virtual/libg2d"
13FSLBIN_NAME = "${PN}-${PV}-${TARGET_ARCH}" 13FSLBIN_NAME = "${PN}-${PV}-${TARGET_ARCH}"
14 14
15SRC_URI = "${FSL_MIRROR}/${FSLBIN_NAME}.bin;name=${TARGET_ARCH};fsl-eula=true" 15SRC_URI = "${FSL_MIRROR}/${FSLBIN_NAME}.bin;name=${TARGET_ARCH};fsl-eula=true"
16SRC_URI[aarch64.md5sum] = "575eac63da712019bfe3ac4c616b2774" 16SRC_URI[aarch64.md5sum] = "baef64e3779f50098b7191e5246ce19f"
17SRC_URI[aarch64.sha256sum] = "017e8c40a51311bb384a427467ec6950f91879b9e36c48074dd29c6ca7db8c4f" 17SRC_URI[aarch64.sha256sum] = "2642a49e088daae4cf568a150d01e7c095995e8a6ff1883c02c3fa6d26d254b3"
18SRC_URI[arm.md5sum] = "9eab89a12949534a5a45050c24ba4cba" 18SRC_URI[arm.md5sum] = "865a92ddf68509a3cff5469536ff201a"
19SRC_URI[arm.sha256sum] = "a5ee498e47e52cbc56292d5ea8d71b5194775c750fa0415a43ea05ddb1acb08a" 19SRC_URI[arm.sha256sum] = "39fe307916e19a0892a514621121086e276a43858af90230372a1344852116a2"
20 20
21S = "${WORKDIR}/${FSLBIN_NAME}" 21S = "${WORKDIR}/${FSLBIN_NAME}"
22 22
@@ -30,10 +30,10 @@ do_install () {
30 cp -r ${S}/gpu-demos/opt ${D} 30 cp -r ${S}/gpu-demos/opt ${D}
31} 31}
32 32
33FILES_${PN} = "${libdir}/libg2d* /opt" 33FILES:${PN} = "${libdir}/libg2d* /opt"
34FILES_${PN}-dev = "${includedir}" 34FILES:${PN}-dev = "${includedir}"
35INSANE_SKIP_${PN} = "ldflags" 35INSANE_SKIP:${PN} = "ldflags"
36 36
37RDEPENDS_${PN} = "libgal-imx" 37RDEPENDS:${PN} = "libgal-imx"
38 38
39COMPATIBLE_MACHINE = "(imxgpu2d)" 39COMPATIBLE_MACHINE = "(imxgpu2d)"
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc b/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
index 91a5542b..7afa0950 100644
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
@@ -1,12 +1,12 @@
1# Copyright (C) 2012-2016 Freescale Semiconductor 1# Copyright (C) 2012-2016 Freescale Semiconductor
2# Copyright (C) 2012-2018 O.S. Systems Software LTDA. 2# Copyright (C) 2012-2018 O.S. Systems Software LTDA.
3# Copyright 2017-2020 NXP 3# Copyright 2017-2021 NXP
4# Released under the MIT license (see COPYING.MIT for the terms) 4# Released under the MIT license (see COPYING.MIT for the terms)
5 5
6DESCRIPTION = "GPU driver and apps for i.MX" 6DESCRIPTION = "GPU driver and apps for i.MX"
7SECTION = "libs" 7SECTION = "libs"
8LICENSE = "Proprietary" 8LICENSE = "Proprietary"
9LIC_FILES_CHKSUM = "file://COPYING;md5=a632fefd1c359980434f9389833cab3a" 9LIC_FILES_CHKSUM = "file://COPYING;md5=417b82f17fc02b88125331ed312f6f1b"
10 10
11DEPENDS += " \ 11DEPENDS += " \
12 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \ 12 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \
@@ -17,8 +17,8 @@ DEPENDS += " \
17 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcb libxshmfence libxxf86vm', \ 17 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcb libxshmfence libxxf86vm', \
18 '', d)} \ 18 '', d)} \
19" 19"
20DEPENDS_append_imxdrm = " libdrm wayland" 20DEPENDS:append:imxdrm = " libdrm wayland"
21DEPENDS_append_mx8 = " patchelf-native" 21DEPENDS:append:mx8 = " patchelf-native"
22 22
23# imx-gpu-viv does not provide everything it needs to for virtual/libgl 23# imx-gpu-viv does not provide everything it needs to for virtual/libgl
24# on x11 backend or on Wayland backend with XWayland support. 24# on x11 backend or on Wayland backend with XWayland support.
@@ -26,19 +26,17 @@ DEPENDS_append_mx8 = " patchelf-native"
26DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa', '', d)}" 26DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa', '', d)}"
27 27
28EXTRA_PROVIDES = "" 28EXTRA_PROVIDES = ""
29EXTRA_PROVIDES_append_imxgpu3d = " \ 29EXTRA_PROVIDES:append:imxgpu3d = " \
30 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'virtual/libgl', \ 30 virtual/libgl \
31 bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libgl', \
32 '', d), d)} \
33 virtual/libgles1 \ 31 virtual/libgles1 \
34 virtual/libgles2 \ 32 virtual/libgles2 \
35" 33"
36EXTRA_PROVIDES_append_mx8 = " \ 34EXTRA_PROVIDES:append:mx8 = " \
37 virtual/libgbm \ 35 virtual/libgbm \
38" 36"
39PROVIDES_OPENVX = "" 37PROVIDES_OPENVX = ""
40PROVIDES_OPENVX_mx8 = "virtual/libopenvx" 38PROVIDES_OPENVX:mx8 = "virtual/libopenvx"
41PROVIDES_OPENVX_mx8mm = "" 39PROVIDES_OPENVX:mx8mm = ""
42PROVIDES += " \ 40PROVIDES += " \
43 imx-gpu-viv \ 41 imx-gpu-viv \
44 libgal-imx \ 42 libgal-imx \
@@ -52,13 +50,13 @@ PROVIDES += " \
52 ${EXTRA_PROVIDES} \ 50 ${EXTRA_PROVIDES} \
53" 51"
54 52
55RPROVIDES_${PN}_imxgpu3d += "imx-gpu-viv" 53RPROVIDES:${PN}:imxgpu3d += "imx-gpu-viv"
56 54
57PE = "1" 55PE = "1"
58 56
59inherit fsl-eula-unpack features_check 57inherit fsl-eula-unpack features_check
60 58
61REQUIRED_DISTRO_FEATURES_mx8 = "wayland" 59REQUIRED_DISTRO_FEATURES:mx8 = "wayland"
62 60
63SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true" 61SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true"
64 62
@@ -69,7 +67,7 @@ PACKAGECONFIG[valgrind] = ""
69 67
70# Note : If you add a package here, to prevent a naming conflict see the python_anonymous() futher below 68# Note : If you add a package here, to prevent a naming conflict see the python_anonymous() futher below
71IMX_PACKAGES_GBM = "" 69IMX_PACKAGES_GBM = ""
72IMX_PACKAGES_GBM_mx8 = "libgbm-imx libgbm-imx-dev" 70IMX_PACKAGES_GBM:mx8 = "libgbm-imx libgbm-imx-dev"
73PACKAGES =+ "libclc-imx libclc-imx-dev \ 71PACKAGES =+ "libclc-imx libclc-imx-dev \
74 libgl-imx libgl-imx-dev \ 72 libgl-imx libgl-imx-dev \
75 libgles1-imx libgles1-imx-dev \ 73 libgles1-imx libgles1-imx-dev \
@@ -84,13 +82,11 @@ PACKAGES =+ "libclc-imx libclc-imx-dev \
84 libvivante-dri-imx \ 82 libvivante-dri-imx \
85 libvsc-imx \ 83 libvsc-imx \
86 ${IMX_PACKAGES_GBM} \ 84 ${IMX_PACKAGES_GBM} \
87 libwayland-viv-imx libwayland-viv-imx-dev \
88 libgc-wayland-protocol-imx libgc-wayland-protocol-imx-dev \
89 imx-gpu-viv-tools \ 85 imx-gpu-viv-tools \
90 imx-gpu-viv-demos \ 86 imx-gpu-viv-demos \
91 libvulkan-imx libvulkan-imx-dev \ 87 libvulkan-imx libvulkan-imx-dev \
92 libopenvx-imx libopenvx-imx-dev \ 88 libopenvx-imx libopenvx-imx-dev \
93 libnn-imx libnn-imx-dev \ 89 libnn-imx \
94" 90"
95python __anonymous () { 91python __anonymous () {
96 has_vivante_kernel_driver_support = (d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT') or '0') 92 has_vivante_kernel_driver_support = (d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT') or '0')
@@ -101,10 +97,11 @@ python __anonymous () {
101USE_X11 = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "yes", "no", d)}" 97USE_X11 = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
102USE_WL = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "yes", "no", d)}" 98USE_WL = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "yes", "no", d)}"
103 99
104# Inhibit warnings about files being stripped. 100# The packaged binaries have been stripped of debug info, so disable
105INHIBIT_PACKAGE_STRIP = "1" 101# operations accordingly.
106INHIBIT_PACKAGE_DEBUG_SPLIT = "1" 102INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
107INSANE_SKIP_${BPN} += "already-stripped" 103INHIBIT_PACKAGE_STRIP = "1"
104INHIBIT_SYSROOT_STRIP = "1"
108 105
109# FIXME: The provided binary doesn't provide soname. If in future BSP 106# FIXME: The provided binary doesn't provide soname. If in future BSP
110# release the libraries are fixed, we can drop this hack. 107# release the libraries are fixed, we can drop this hack.
@@ -116,7 +113,7 @@ python __anonymous() {
116 # the source we cannot fix it. Disable the insane check for now. 113 # the source we cannot fix it. Disable the insane check for now.
117 packages = d.getVar('PACKAGES').split() 114 packages = d.getVar('PACKAGES').split()
118 for p in packages: 115 for p in packages:
119 d.appendVar("INSANE_SKIP_%s" % p, " ldflags") 116 d.appendVar("INSANE_SKIP:%s" % p, " ldflags")
120 117
121 # For the packages that make up the OpenGL interfaces, inject variables so that 118 # For the packages that make up the OpenGL interfaces, inject variables so that
122 # they don't get Debian-renamed (which would remove the -imx suffix). 119 # they don't get Debian-renamed (which would remove the -imx suffix).
@@ -125,36 +122,36 @@ python __anonymous() {
125 ("libgles3",), ("libgbm",)): 122 ("libgles3",), ("libgbm",)):
126 fullp = p[0] + "-imx" 123 fullp = p[0] + "-imx"
127 pkgs = "".join(' %s' % i for i in p) 124 pkgs = "".join(' %s' % i for i in p)
128 d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1") 125 d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
129 d.appendVar("RREPLACES_" + fullp, pkgs) 126 d.appendVar("RREPLACES:" + fullp, pkgs)
130 d.appendVar("RPROVIDES_" + fullp, pkgs) 127 d.appendVar("RPROVIDES:" + fullp, pkgs)
131 d.appendVar("RCONFLICTS_" + fullp, pkgs) 128 d.appendVar("RCONFLICTS:" + fullp, pkgs)
132 129
133 # For -dev, the first element is both the Debian and original name 130 # For -dev, the first element is both the Debian and original name
134 fullp += "-dev" 131 fullp += "-dev"
135 pkgs = p[0] + "-dev" 132 pkgs = p[0] + "-dev"
136 d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1") 133 d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
137 d.appendVar("RREPLACES_" + fullp, pkgs) 134 d.appendVar("RREPLACES:" + fullp, pkgs)
138 d.appendVar("RPROVIDES_" + fullp, pkgs) 135 d.appendVar("RPROVIDES:" + fullp, pkgs)
139 d.appendVar("RCONFLICTS_" + fullp, pkgs) 136 d.appendVar("RCONFLICTS:" + fullp, pkgs)
140} 137}
141 138
142IS_MX6SL = "0" 139IS_MX6SL = "0"
143IS_MX6SL_mx6sl = "1" 140IS_MX6SL:mx6sl = "1"
144 141
145IS_MX8 = "0" 142IS_MX8 = "0"
146IS_MX8_mx8 = "1" 143IS_MX8:mx8 = "1"
147 144
148PACKAGE_FP_TYPE = "hardfp" 145PACKAGE_FP_TYPE = "hardfp"
149 146
150HAS_GBM = "false" 147HAS_GBM = "false"
151HAS_GBM_mx8 = "true" 148HAS_GBM:mx8 = "true"
152 149
153GLES3_HEADER_REMOVALS = "gl31.h gl32.h" 150GLES3_HEADER_REMOVALS = "gl31.h gl32.h"
154GLES3_HEADER_REMOVALS_mx8m = "gl32.h" 151GLES3_HEADER_REMOVALS:mx8m = "gl32.h"
155GLES3_HEADER_REMOVALS_mx8mm = "gl31.h gl32.h" 152GLES3_HEADER_REMOVALS:mx8mm = "gl31.h gl32.h"
156GLES3_HEADER_REMOVALS_mx8qxp = "" 153GLES3_HEADER_REMOVALS:mx8qxp = ""
157GLES3_HEADER_REMOVALS_mx8qm = "" 154GLES3_HEADER_REMOVALS:mx8qm = ""
158 155
159do_install () { 156do_install () {
160 install -d ${D}${libdir} 157 install -d ${D}${libdir}
@@ -240,12 +237,6 @@ do_install () {
240 rm -f ${D}${includedir}/GLES3/${header} 237 rm -f ${D}${includedir}/GLES3/${header}
241 done 238 done
242 239
243 # skip packaging wayland libraries if no support is requested
244 if [ "${USE_WL}" = "no" ]; then
245 find ${D}${libdir} -name "libgc_wayland_protocol.*" -exec rm '{}' ';'
246 find ${D}${libdir} -name "libwayland-viv.*" -exec rm '{}' ';'
247 fi
248
249 # FIXME: MX6SL does not have 3D support; hack it for now 240 # FIXME: MX6SL does not have 3D support; hack it for now
250 if [ "${IS_MX6SL}" = "1" ]; then 241 if [ "${IS_MX6SL}" = "1" ]; then
251 rm -rf ${D}${libdir}/libCLC* ${D}${includedir}/CL \ 242 rm -rf ${D}${libdir}/libCLC* ${D}${includedir}/CL \
@@ -272,98 +263,88 @@ do_install () {
272 chown -R root:root "${D}" 263 chown -R root:root "${D}"
273} 264}
274 265
275ALLOW_EMPTY_${PN} = "1" 266ALLOW_EMPTY:${PN} = "1"
276 267
277FILES_libclc-imx = "${libdir}/libCLC${SOLIBS}" 268FILES:libclc-imx = "${libdir}/libCLC${SOLIBS} ${includedir}/CL/cl_viv_vx_ext.h"
278FILES_libclc-imx-dev = "${includedir}/CL ${libdir}/libCLC${SOLIBSDEV}" 269FILES:libclc-imx-dev = "${includedir}/CL ${libdir}/libCLC${SOLIBSDEV}"
279 270
280# libEGL.so is used by some demo apps from Freescale 271# libEGL.so is used by some demo apps from Freescale
281INSANE_SKIP_libegl-imx += "dev-so" 272INSANE_SKIP:libegl-imx += "dev-so"
282FILES_libegl-imx = "${libdir}/libEGL${REALSOLIBS} ${libdir}/libEGL${SOLIBSDEV} " 273FILES:libegl-imx = "${libdir}/libEGL${REALSOLIBS} ${libdir}/libEGL${SOLIBSDEV} "
283FILES_libegl-imx-dev = "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc" 274FILES:libegl-imx-dev = "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
284 275
285FILES_libgal-imx = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}" 276FILES:libgal-imx = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}"
286FILES_libgal-imx-dev = "${libdir}/libGAL${SOLIBSDEV} ${includedir}/HAL" 277FILES:libgal-imx-dev = "${libdir}/libGAL${SOLIBSDEV} ${includedir}/HAL"
287RDEPENDS_libgal-imx += "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', 'valgrind', '', d)}" 278RDEPENDS:libgal-imx += "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', 'valgrind', '', d)}"
288RPROVIDES_libgal-imx += "libgal-imx" 279RPROVIDES:libgal-imx += "libgal-imx"
289RRECOMMENDS_libgal-imx += "kernel-module-imx-gpu-viv" 280RRECOMMENDS:libgal-imx += "kernel-module-imx-gpu-viv"
290INSANE_SKIP_libgal-imx += "build-deps" 281INSANE_SKIP:libgal-imx += "build-deps"
291 282
292FILES_libvsc-imx = "${libdir}/libVSC${SOLIBS}" 283FILES:libvsc-imx = "${libdir}/libVSC${SOLIBS}"
293 284
294FILES_libgbm-imx_mx8 = "${libdir}/libgbm*${REALSOLIBS} ${libdir}/libgbm${SOLIBSDEV} ${libdir}/libgbm_viv${SOLIBSDEV}" 285FILES:libgbm-imx:mx8 = "${libdir}/libgbm*${REALSOLIBS} ${libdir}/libgbm${SOLIBSDEV} ${libdir}/libgbm_viv${SOLIBSDEV}"
295FILES_libgbm-imx-dev_mx8 = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h" 286FILES:libgbm-imx-dev:mx8 = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h"
296RDEPENDS_libgbm-imx_append_mx8 = " libdrm" 287RDEPENDS:libgbm-imx:append:mx8 = " libdrm"
297INSANE_SKIP_libgbm-imx += "dev-so" 288INSANE_SKIP:libgbm-imx += "dev-so"
298 289
299FILES_libvulkan-imx = "${libdir}/libvulkan_VSI${REALSOLIBS} ${libdir}/libSPIRV_viv${SOLIBS}" 290FILES:libvulkan-imx = "${libdir}/libvulkan_VSI${REALSOLIBS} ${libdir}/libSPIRV_viv${SOLIBS}"
300FILES_libvulkan-imx-dev = "${includedir}/vulkan ${libdir}/libvulkan_VSI${SOLIBSDEV}" 291FILES:libvulkan-imx-dev = "${includedir}/vulkan ${libdir}/libvulkan_VSI${SOLIBSDEV}"
301 292
302FILES_libopenvx-imx = " \ 293FILES:libopenvx-imx = " \
303 ${libdir}/libOpenVX${REALSOLIBS} \ 294 ${libdir}/libOpenVX${REALSOLIBS} \
304 ${libdir}/libOpenVXC${SOLIBS} \ 295 ${libdir}/libOpenVXC${SOLIBS} \
305 ${libdir}/libOpenVXU${SOLIBS} \ 296 ${libdir}/libOpenVXU${SOLIBS} \
306 ${libdir}/libOvx*${SOLIBS} \ 297 ${libdir}/libOvx*${SOLIBS} \
307 ${libdir}/libArchModelSw${SOLIBS} \ 298 ${libdir}/libArchModelSw${SOLIBS} \
308" 299"
309FILES_libopenvx-imx-dev = "${includedir}/VX ${libdir}/libOpenVX${SOLIBSDEV}" 300FILES:libopenvx-imx-dev = "${includedir}/VX ${libdir}/libOpenVX${SOLIBSDEV}"
310RDEPENDS_libopenvx-imx = "libnn-imx" 301RDEPENDS:libopenvx-imx = "libnn-imx"
311 302
312FILES_libgl-imx = "${libdir}/libGL${REALSOLIBS}" 303FILES:libgl-imx = "${libdir}/libGL${REALSOLIBS}"
313FILES_libgl-imx-dev = "${libdir}/libGL${SOLIBSDEV} ${includedir}/GL" 304FILES:libgl-imx-dev = "${libdir}/libGL${SOLIBSDEV} ${includedir}/GL"
314 305
315# libEGL needs to open libGLESv1.so 306# libEGL needs to open libGLESv1.so
316INSANE_SKIP_libgles1-imx += "dev-so" 307INSANE_SKIP:libgles1-imx += "dev-so"
317FILES_libgles1-imx = "${libdir}/libGLESv1*${REALSOLIBS} ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${REALSOLIBS} ${libdir}/libGLES_*${SOLIBS}" 308FILES:libgles1-imx = "${libdir}/libGLESv1*${REALSOLIBS} ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${REALSOLIBS} ${libdir}/libGLES_*${SOLIBS}"
318FILES_libgles1-imx-dev = "${includedir}/GLES ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${SOLIBSDEV} ${libdir}/pkgconfig/glesv1_cm.pc" 309FILES:libgles1-imx-dev = "${includedir}/GLES ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${SOLIBSDEV} ${libdir}/pkgconfig/glesv1_cm.pc"
319RPROVIDES_libgles1-imx = "libgles-imx" 310RPROVIDES:libgles1-imx = "libgles-imx"
320RPROVIDES_libgles1-imx-dev = "libgles-imx-dev" 311RPROVIDES:libgles1-imx-dev = "libgles-imx-dev"
321 312
322# libEGL needs to open libGLESv2.so 313# libEGL needs to open libGLESv2.so
323INSANE_SKIP_libgles2-imx += "dev-so" 314INSANE_SKIP:libgles2-imx += "dev-so"
324FILES_libgles2-imx = "${libdir}/libGLESv2${REALSOLIBS} ${libdir}/libGLESv2${SOLIBS}" 315FILES:libgles2-imx = "${libdir}/libGLESv2${REALSOLIBS} ${libdir}/libGLESv2${SOLIBS}"
325FILES_libgles2-imx-dev = "${includedir}/GLES2 ${libdir}/libGLESv2${SOLIBSDEV} ${libdir}/pkgconfig/glesv2.pc" 316FILES:libgles2-imx-dev = "${includedir}/GLES2 ${libdir}/libGLESv2${SOLIBSDEV} ${libdir}/pkgconfig/glesv2.pc"
326RDEPENDS_libgles2-imx = "libglslc-imx" 317RDEPENDS:libgles2-imx = "libglslc-imx"
327 318
328FILES_libgles3-imx-dev = "${includedir}/GLES3" 319FILES:libgles3-imx-dev = "${includedir}/GLES3"
329# as long as there is no libgles3: ship libgles3-dev along with 320# as long as there is no libgles3: ship libgles3-dev along with
330# libgles2-dev - otherwise GLES3 headers have to be added manually 321# libgles2-dev - otherwise GLES3 headers have to be added manually
331RDEPENDS_libgles2-imx-dev += "libgles3-imx-dev" 322RDEPENDS:libgles2-imx-dev += "libgles3-imx-dev"
332 323
333FILES_libglslc-imx = "${libdir}/libGLSLC${SOLIBS}" 324FILES:libglslc-imx = "${libdir}/libGLSLC${SOLIBS}"
334FILES_libglslc-imx-dev = "${includedir}/CL ${libdir}/libGLSLC${SOLIBSDEV}" 325FILES:libglslc-imx-dev = "${includedir}/CL ${libdir}/libGLSLC${SOLIBSDEV}"
335 326
336FILES_libopencl-imx = "${libdir}/libOpenCL${REALSOLIBS} \ 327FILES:libopencl-imx = "${libdir}/libOpenCL${REALSOLIBS} \
337 ${libdir}/libVivanteOpenCL${SOLIBS} \ 328 ${libdir}/libVivanteOpenCL${SOLIBS} \
338 ${libdir}/libLLVM_viv${SOLIBS} \ 329 ${libdir}/libLLVM_viv${SOLIBS} \
339 ${sysconfdir}/OpenCL/vendors/Vivante.icd" 330 ${sysconfdir}/OpenCL/vendors/Vivante.icd"
340FILES_libopencl-imx-dev = "${includedir}/CL ${libdir}/libOpenCL${SOLIBSDEV}" 331FILES:libopencl-imx-dev = "${includedir}/CL ${libdir}/libOpenCL${SOLIBSDEV}"
341RDEPENDS_libopencl-imx= "libclc-imx" 332RDEPENDS:libopencl-imx= "libclc-imx"
342
343FILES_libopenvg-imx = "${libdir}/libOpenVG*${REALSOLIBS}"
344FILES_libopenvg-imx-dev = "${includedir}/VG ${libdir}/libOpenVG*${SOLIBSDEV} ${libdir}/pkgconfig/vg.pc"
345
346FILES_libvdk-imx = "${libdir}/libVDK*${REALSOLIBS}"
347FILES_libvdk-imx-dev = "${includedir}/*vdk*.h ${libdir}/libVDK${SOLIBSDEV}"
348 333
349FILES_libvivante-dri-imx = "${libdir}/dri/vivante_dri.so" 334FILES:libopenvg-imx = "${libdir}/libOpenVG*${REALSOLIBS}"
350RDEPENDS_libvivante-dri-imx = "libdrm" 335FILES:libopenvg-imx-dev = "${includedir}/VG ${libdir}/libOpenVG*${SOLIBSDEV} ${libdir}/pkgconfig/vg.pc"
351 336
352INSANE_SKIP_libwayland-viv-imx += "dev-so" 337FILES:libvdk-imx = "${libdir}/libVDK*${REALSOLIBS}"
353FILES_libwayland-viv-imx = "${libdir}/libwayland-viv${REALSOLIBS} ${libdir}/libwayland-viv${SOLIBS}" 338FILES:libvdk-imx-dev = "${includedir}/*vdk*.h ${libdir}/libVDK${SOLIBSDEV}"
354FILES_libwayland-viv-imx-dev = "${includedir}/wayland-viv ${libdir})/libwayland-viv${SOLIBSDEV} ${libdir}/pkgconfig/wayland-viv.pc"
355RPROVIDES_libwayland-viv-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'xf86-video-imx-vivante', '', d)}"
356 339
357INSANE_SKIP_libgc-wayland-protocol-imx += "dev-so" 340FILES:libvivante-dri-imx = "${libdir}/dri/vivante_dri.so"
358FILES_libgc-wayland-protocol-imx = "${libdir}/libgc_wayland_protocol${REALSOLIBS} ${libdir}/libgc_wayland_protocol${SOLIBS}" 341RDEPENDS:libvivante-dri-imx = "libdrm"
359FILES_libgc-wayland-protocol-imx-dev = "${libdir}/libgc_wayland_protocol${SOLIBSDEV} ${libdir}/pkgconfig/gc_wayland_protocol.pc"
360 342
361FILES_imx-gpu-viv-tools = "${bindir}/gmem_info" 343FILES:imx-gpu-viv-tools = "${bindir}/gmem_info"
362 344
363FILES_imx-gpu-viv-demos = "/opt" 345FILES:imx-gpu-viv-demos = "/opt"
364INSANE_SKIP_imx-gpu-viv-demos += "rpaths dev-deps" 346INSANE_SKIP:imx-gpu-viv-demos += "rpaths dev-deps"
365 347
366FILES_libnn-imx = "${libdir}/libNN*${SOLIBS} ${libdir}/libnn*${SOLIBS} ${libdir}/libneuralnetworks${SOLIBS}" 348FILES:libnn-imx = "${libdir}/libNN*${SOLIBS}"
367FILES_libnn-imx-dev = "${includedir}/nnrt"
368 349
369# COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx8)" 350# COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx8)"
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch64.bb b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch64.bb
deleted file mode 100644
index b1b4bace..00000000
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch64.bb
+++ /dev/null
@@ -1,6 +0,0 @@
1require imx-gpu-viv-6.inc
2
3SRC_URI[md5sum] = "2493f1264458ac13572cf328ae78f280"
4SRC_URI[sha256sum] = "5f1579ac846dad3464e2e7c7569ea59c89bd12bc61b79344c1210d80e1ea91e1"
5
6COMPATIBLE_MACHINE = "(mx8)"
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch32.bb b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p2.0-aarch32.bb
index e6c1f8a3..e534f4e7 100644
--- a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p1.4-aarch32.bb
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p2.0-aarch32.bb
@@ -4,7 +4,7 @@
4 4
5require imx-gpu-viv-6.inc 5require imx-gpu-viv-6.inc
6 6
7SRC_URI[md5sum] = "1270a84dcd0d0e985a8bfa9027988fb2" 7SRC_URI[md5sum] = "a5c945615c8145ca4aa3d9a69bfdd2f7"
8SRC_URI[sha256sum] = "ecdd5355f6aa0d154c3ddf575fde28d0212767d852d2843f3a75aba10c65cd46" 8SRC_URI[sha256sum] = "1324b1aaf190110b80ad9a6f6533f4f50dce9e9ab8d49d8503f59764b151d219"
9 9
10COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx7ulp)" 10COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx7ulp)"
diff --git a/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p2.0-aarch64.bb b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p2.0-aarch64.bb
new file mode 100644
index 00000000..ff7f95f5
--- /dev/null
+++ b/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.3.p2.0-aarch64.bb
@@ -0,0 +1,6 @@
1require imx-gpu-viv-6.inc
2
3SRC_URI[md5sum] = "ff63b1fb889ae9fe41f0cca14d62b69c"
4SRC_URI[sha256sum] = "003c30baefb1655790b475c3cdfa5cefbf81ea89ef37c6649b64f151dd23a52e"
5
6COMPATIBLE_MACHINE = "(mx8)"
diff --git a/recipes-graphics/libepoxy/libepoxy_1.5.%.bbappend b/recipes-graphics/libepoxy/libepoxy_1.5.%.bbappend
index 5b82b3f4..71baa53d 100644
--- a/recipes-graphics/libepoxy/libepoxy_1.5.%.bbappend
+++ b/recipes-graphics/libepoxy/libepoxy_1.5.%.bbappend
@@ -1,5 +1,5 @@
1# Append EGL_CFLAGS to CFLAGS 1# Append EGL_CFLAGS to CFLAGS
2CFLAGS_append_imxgpu = " \ 2CFLAGS:append:imxgpu = " \
3 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_API_FB', d)} \ 3 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_API_FB', d)} \
4 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '-DWL_EGL_PLATFORM', '', d)} \ 4 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '-DWL_EGL_PLATFORM', '', d)} \
5" 5"
diff --git a/recipes-graphics/libsdl2/libsdl2_%.bbappend b/recipes-graphics/libsdl2/libsdl2_%.bbappend
index 303ea63a..af9c97bb 100644
--- a/recipes-graphics/libsdl2/libsdl2_%.bbappend
+++ b/recipes-graphics/libsdl2/libsdl2_%.bbappend
@@ -1,8 +1,8 @@
1# what vivante driver does libsdl2 mean? Anyway it fails with missing functions as 1# what vivante driver does libsdl2 mean? Anyway it fails with missing functions as
2# VIVANTE_Create VIVANTE_GLES_GetProcAddress VIVANTE_GLES_UnloadLibrary ... 2# VIVANTE_Create VIVANTE_GLES_GetProcAddress VIVANTE_GLES_UnloadLibrary ...
3EXTRA_OECONF_append_imxgpu2d = " --disable-video-vivante" 3EXTRA_OECONF:append:imxgpu2d = " --disable-video-vivante"
4 4
5CFLAGS_append_imxgpu = " -DLINUX \ 5CFLAGS:append:imxgpu = " -DLINUX \
6 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_API_FB', d)} \ 6 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_API_FB', d)} \
7 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '-DWL_EGL_PLATFORM', '', d)} \ 7 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '-DWL_EGL_PLATFORM', '', d)} \
8" 8"
diff --git a/recipes-graphics/mesa/mesa-demos_%.bbappend b/recipes-graphics/mesa/mesa-demos_%.bbappend
index 301f1b59..4b518185 100644
--- a/recipes-graphics/mesa/mesa-demos_%.bbappend
+++ b/recipes-graphics/mesa/mesa-demos_%.bbappend
@@ -1,26 +1,26 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 1FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
2 2
3SRC_URI_append_imxgpu = " file://Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch \ 3SRC_URI:append:imxgpu = " file://Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch \
4 file://fix-clear-build-break.patch \ 4 file://fix-clear-build-break.patch \
5 file://Add-OpenVG-demos-to-support-wayland.patch" 5 file://Add-OpenVG-demos-to-support-wayland.patch"
6 6
7PACKAGECONFIG_REMOVE_IF_2D_ONLY = "" 7PACKAGECONFIG_REMOVE_IF_2D_ONLY = ""
8PACKAGECONFIG_REMOVE_IF_2D_ONLY_imxgpu2d = "gles1 gles2" 8PACKAGECONFIG_REMOVE_IF_2D_ONLY:imxgpu2d = "gles1 gles2"
9PACKAGECONFIG_REMOVE_IF_2D_ONLY_imxgpu3d = "" 9PACKAGECONFIG_REMOVE_IF_2D_ONLY:imxgpu3d = ""
10PACKAGECONFIG_REMOVE_IF_GPU = "" 10PACKAGECONFIG_REMOVE_IF_GPU = ""
11PACKAGECONFIG_REMOVE_IF_GPU_imxgpu = " \ 11PACKAGECONFIG_REMOVE_IF_GPU:imxgpu = " \
12 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'glu x11', '', d)} \ 12 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'glu x11', '', d)} \
13" 13"
14PACKAGECONFIG_remove = " \ 14PACKAGECONFIG:remove = " \
15 ${PACKAGECONFIG_REMOVE_IF_2D_ONLY} \ 15 ${PACKAGECONFIG_REMOVE_IF_2D_ONLY} \
16 ${PACKAGECONFIG_REMOVE_IF_GPU} \ 16 ${PACKAGECONFIG_REMOVE_IF_GPU} \
17" 17"
18 18
19PACKAGECONFIG_APPEND_IF_GPU = "" 19PACKAGECONFIG_APPEND_IF_GPU = ""
20PACKAGECONFIG_APPEND_IF_GPU_imxgpu = " \ 20PACKAGECONFIG_APPEND_IF_GPU:imxgpu = " \
21 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland vg', '', d)} \ 21 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland vg', '', d)} \
22 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glut', '', d)} \ 22 ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glut', '', d)} \
23" 23"
24PACKAGECONFIG_append = " \ 24PACKAGECONFIG:append = " \
25 ${PACKAGECONFIG_APPEND_IF_GPU} \ 25 ${PACKAGECONFIG_APPEND_IF_GPU} \
26" 26"
diff --git a/recipes-graphics/mesa/mesa-etnaviv-env_0.1.bb b/recipes-graphics/mesa/mesa-etnaviv-env_0.1.bb
index 2a32c448..87d05365 100644
--- a/recipes-graphics/mesa/mesa-etnaviv-env_0.1.bb
+++ b/recipes-graphics/mesa/mesa-etnaviv-env_0.1.bb
@@ -12,7 +12,7 @@ SRC_URI = "\
12do_configure[noexec] = "1" 12do_configure[noexec] = "1"
13do_compile[noexec] = "1" 13do_compile[noexec] = "1"
14 14
15do_install_use-mainline-bsp() { 15do_install:use-mainline-bsp() {
16 # MESA global envirronment variables 16 # MESA global envirronment variables
17 17
18 # systemd 18 # systemd
@@ -28,4 +28,4 @@ do_install_use-mainline-bsp() {
28 fi 28 fi
29} 29}
30 30
31ALLOW_EMPTY_${PN} = "1" 31ALLOW_EMPTY:${PN} = "1"
diff --git a/recipes-graphics/mesa/mesa-gl_%.bbappend b/recipes-graphics/mesa/mesa-gl_%.bbappend
index ca1c8f46..dafd27f0 100644
--- a/recipes-graphics/mesa/mesa-gl_%.bbappend
+++ b/recipes-graphics/mesa/mesa-gl_%.bbappend
@@ -1 +1 @@
COMPATIBLE_MACHINE_imxgpu = "(-)" COMPATIBLE_MACHINE:imxgpu = "(-)"
diff --git a/recipes-graphics/mesa/mesa/0001-dri-add-createImageWithModifiers2-interface.patch b/recipes-graphics/mesa/mesa/0001-dri-add-createImageWithModifiers2-interface.patch
deleted file mode 100644
index 261c54cc..00000000
--- a/recipes-graphics/mesa/mesa/0001-dri-add-createImageWithModifiers2-interface.patch
+++ /dev/null
@@ -1,67 +0,0 @@
1From afd8b2f498a417de6ecdbd13045d97c9ecf4391b Mon Sep 17 00:00:00 2001
2From: Simon Ser <contact@emersion.fr>
3Date: Mon, 14 Dec 2020 18:32:47 +0100
4Subject: [PATCH] dri: add createImageWithModifiers2 interface
5
6With the addition of createImageWithModifiers usage flags were
7dropped, as it was believed at the time that modifers will be a
8full replacement for the usage flags. This has turned out to be
9untrue, as modifiers are not able to describe buffer placement.
10
11Add a new version of the interface, that allows to specifiy
12use flags in addition to the modifier.
13
14Signed-off-by: Simon Ser <contact@emersion.fr>
15Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
16Reviewed-by: Daniel Stone <daniels@collabora.com>
17Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106>
18Upstream-Status: Applied [https://gitlab.freedesktop.org/mesa/mesa/-/commit/afd8b2f498a417de6ecdbd13045d97c9ecf4391b]
19---
20 include/GL/internal/dri_interface.h | 24 +++++++++++++++++++++++-
21 1 file changed, 23 insertions(+), 1 deletion(-)
22
23diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
24index 9b85e67ce49..a7d9903f94e 100644
25--- a/include/GL/internal/dri_interface.h
26+++ b/include/GL/internal/dri_interface.h
27@@ -1328,7 +1328,7 @@ struct __DRIdri2ExtensionRec {
28 * extensions.
29 */
30 #define __DRI_IMAGE "DRI_IMAGE"
31-#define __DRI_IMAGE_VERSION 18
32+#define __DRI_IMAGE_VERSION 19
33
34 /**
35 * These formats correspond to the similarly named MESA_FORMAT_*
36@@ -1803,6 +1803,28 @@ struct __DRIimageExtensionRec {
37 uint32_t flags,
38 unsigned *error,
39 void *loaderPrivate);
40+
41+ /**
42+ * Creates an image with implementation's favorite modifiers and the
43+ * provided usage flags.
44+ *
45+ * This acts like createImageWithModifiers except usage is also specified.
46+ *
47+ * The created image should be destroyed with destroyImage().
48+ *
49+ * Returns the new DRIimage. The chosen modifier can be obtained later on
50+ * and passed back to things like the kernel's AddFB2 interface.
51+ *
52+ * \sa __DRIimageRec::createImage
53+ *
54+ * \since 19
55+ */
56+ __DRIimage *(*createImageWithModifiers2)(__DRIscreen *screen,
57+ int width, int height, int format,
58+ const uint64_t *modifiers,
59+ const unsigned int modifier_count,
60+ unsigned int use,
61+ void *loaderPrivate);
62 };
63
64
65--
662.31.1
67
diff --git a/recipes-graphics/mesa/mesa/0002-dri-add-loader_dri_create_image-helper.patch b/recipes-graphics/mesa/mesa/0002-dri-add-loader_dri_create_image-helper.patch
deleted file mode 100644
index 1e5d0f69..00000000
--- a/recipes-graphics/mesa/mesa/0002-dri-add-loader_dri_create_image-helper.patch
+++ /dev/null
@@ -1,336 +0,0 @@
1From cb9ae4273d680ab34fc2ca933c4f960e7f086275 Mon Sep 17 00:00:00 2001
2From: Lucas Stach <l.stach@pengutronix.de>
3Date: Tue, 15 Dec 2020 14:39:32 +0100
4Subject: [PATCH] dri: add loader_dri_create_image helper
5
6The DRI image extension already has two different ways to allocate an
7image (with and without a modifier) and will soon grow a third one.
8Add a helper, which handles calling the appropriate implementation to
9get rid of code duplication in the winsys.
10
11This convert the two obvious call sites (GBM dri and EGL wayland)
12that profit from the code dedup.
13
14Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
15Reviewed-by: Daniel Stone <daniels@collabora.com>
16Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106>
17Upstream-Status: Applied [https://gitlab.freedesktop.org/mesa/mesa/-/commit/cb9ae4273d680ab34fc2ca933c4f960e7f086275]
18---
19 src/egl/drivers/dri2/platform_wayland.c | 60 +++++++---------------
20 src/gbm/backends/dri/gbm_dri.c | 53 +++++--------------
21 src/loader/Makefile.sources | 2 +
22 src/loader/loader_dri_helper.c | 68 +++++++++++++++++++++++++
23 src/loader/loader_dri_helper.h | 33 ++++++++++++
24 src/loader/meson.build | 2 +-
25 6 files changed, 134 insertions(+), 84 deletions(-)
26 create mode 100644 src/loader/loader_dri_helper.c
27 create mode 100644 src/loader/loader_dri_helper.h
28
29diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
30index 26b6711952c..180380b4c4c 100644
31--- a/src/egl/drivers/dri2/platform_wayland.c
32+++ b/src/egl/drivers/dri2/platform_wayland.c
33@@ -40,6 +40,7 @@
34 #include <sys/mman.h>
35
36 #include "egl_dri2.h"
37+#include "loader_dri_helper.h"
38 #include "loader.h"
39 #include "util/u_vector.h"
40 #include "util/anon_file.h"
41@@ -578,28 +579,16 @@ get_back_bo(struct dri2_egl_surface *dri2_surf)
42 dri2_surf->back->linear_copy == NULL) {
43 /* The LINEAR modifier should be a perfect alias of the LINEAR use
44 * flag; try the new interface first before the old, then fall back. */
45- if (dri2_dpy->image->base.version >= 15 &&
46- dri2_dpy->image->createImageWithModifiers) {
47- uint64_t linear_mod = DRM_FORMAT_MOD_LINEAR;
48-
49- dri2_surf->back->linear_copy =
50- dri2_dpy->image->createImageWithModifiers(dri2_dpy->dri_screen,
51- dri2_surf->base.Width,
52- dri2_surf->base.Height,
53- linear_dri_image_format,
54- &linear_mod,
55- 1,
56- NULL);
57- } else {
58- dri2_surf->back->linear_copy =
59- dri2_dpy->image->createImage(dri2_dpy->dri_screen,
60- dri2_surf->base.Width,
61- dri2_surf->base.Height,
62- linear_dri_image_format,
63- use_flags |
64- __DRI_IMAGE_USE_LINEAR,
65- NULL);
66- }
67+ uint64_t linear_mod = DRM_FORMAT_MOD_LINEAR;
68+
69+ dri2_surf->back->linear_copy =
70+ loader_dri_create_image(dri2_dpy->dri_screen, dri2_dpy->image,
71+ dri2_surf->base.Width,
72+ dri2_surf->base.Height,
73+ linear_dri_image_format,
74+ use_flags | __DRI_IMAGE_USE_LINEAR,
75+ &linear_mod, 1, NULL);
76+
77 if (dri2_surf->back->linear_copy == NULL)
78 return -1;
79 }
80@@ -609,26 +598,13 @@ get_back_bo(struct dri2_egl_surface *dri2_surf)
81 * createImageWithModifiers, then fall back to the old createImage,
82 * and hope it allocates an image which is acceptable to the winsys.
83 */
84- if (num_modifiers && dri2_dpy->image->base.version >= 15 &&
85- dri2_dpy->image->createImageWithModifiers) {
86- dri2_surf->back->dri_image =
87- dri2_dpy->image->createImageWithModifiers(dri2_dpy->dri_screen,
88- dri2_surf->base.Width,
89- dri2_surf->base.Height,
90- dri_image_format,
91- modifiers,
92- num_modifiers,
93- NULL);
94- } else {
95- dri2_surf->back->dri_image =
96- dri2_dpy->image->createImage(dri2_dpy->dri_screen,
97- dri2_surf->base.Width,
98- dri2_surf->base.Height,
99- dri_image_format,
100- dri2_dpy->is_different_gpu ?
101- 0 : use_flags,
102- NULL);
103- }
104+ dri2_surf->back->dri_image =
105+ loader_dri_create_image(dri2_dpy->dri_screen, dri2_dpy->image,
106+ dri2_surf->base.Width,
107+ dri2_surf->base.Height,
108+ dri_image_format,
109+ dri2_dpy->is_different_gpu ? 0 : use_flags,
110+ modifiers, num_modifiers, NULL);
111
112 dri2_surf->back->age = 0;
113 }
114diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c
115index 751b2e56497..dff0b3c7ecf 100644
116--- a/src/gbm/backends/dri/gbm_dri.c
117+++ b/src/gbm/backends/dri/gbm_dri.c
118@@ -47,6 +47,7 @@
119 #include "gbm_driint.h"
120
121 #include "gbmint.h"
122+#include "loader_dri_helper.h"
123 #include "loader.h"
124 #include "util/debug.h"
125 #include "util/macros.h"
126@@ -1151,8 +1152,7 @@ gbm_dri_bo_create(struct gbm_device *gbm,
127 struct gbm_dri_device *dri = gbm_dri_device(gbm);
128 struct gbm_dri_bo *bo;
129 int dri_format;
130- unsigned dri_use = 0, i;
131- bool has_valid_modifier;
132+ unsigned dri_use = 0;
133
134 /* Callers of this may specify a modifier, or a dri usage, but not both. The
135 * newer modifier interface deprecates the older usage flags.
136@@ -1191,50 +1191,21 @@ gbm_dri_bo_create(struct gbm_device *gbm,
137 /* Gallium drivers requires shared in order to get the handle/stride */
138 dri_use |= __DRI_IMAGE_USE_SHARE;
139
140- if (modifiers) {
141- if (!dri->image || dri->image->base.version < 14 ||
142- !dri->image->createImageWithModifiers) {
143- errno = ENOSYS;
144- goto failed;
145- }
146-
147- /* It's acceptable to create an image with INVALID modifier in the list,
148- * but it cannot be on the only modifier (since it will certainly fail
149- * later). While we could easily catch this after modifier creation, doing
150- * the check here is a convenient debug check likely pointing at whatever
151- * interface the client is using to build its modifier list.
152- */
153- has_valid_modifier = false;
154- for (i = 0; i < count; i++) {
155- if (modifiers[i] != DRM_FORMAT_MOD_INVALID) {
156- has_valid_modifier = true;
157- break;
158- }
159- }
160- if (!has_valid_modifier) {
161- errno = EINVAL;
162- goto failed;
163- }
164-
165- bo->image =
166- dri->image->createImageWithModifiers(dri->screen,
167- width, height,
168- dri_format,
169- modifiers, count,
170- bo);
171-
172- if (bo->image) {
173- /* The client passed in a list of invalid modifiers */
174- assert(gbm_dri_bo_get_modifier(&bo->base) != DRM_FORMAT_MOD_INVALID);
175- }
176- } else {
177- bo->image = dri->image->createImage(dri->screen, width, height,
178- dri_format, dri_use, bo);
179+ if (modifiers && (dri->image->base.version < 14 ||
180+ !dri->image->createImageWithModifiers)) {
181+ errno = ENOSYS;
182+ return NULL;
183 }
184
185+ bo->image = loader_dri_create_image(dri->screen, dri->image, width, height,
186+ dri_format, dri_use, modifiers, count,
187+ bo);
188 if (bo->image == NULL)
189 goto failed;
190
191+ if (modifiers)
192+ assert(gbm_dri_bo_get_modifier(&bo->base) != DRM_FORMAT_MOD_INVALID);
193+
194 dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_HANDLE,
195 &bo->base.handle.s32);
196 dri->image->queryImage(bo->image, __DRI_IMAGE_ATTRIB_STRIDE,
197diff --git a/src/loader/Makefile.sources b/src/loader/Makefile.sources
198index b61ef1cd943..6627222ac30 100644
199--- a/src/loader/Makefile.sources
200+++ b/src/loader/Makefile.sources
201@@ -1,4 +1,6 @@
202 LOADER_C_FILES := \
203+ loader_dri_helper.c \
204+ loader_dri_helper.h \
205 loader.c \
206 loader.h \
207 pci_id_driver_map.c \
208diff --git a/src/loader/loader_dri_helper.c b/src/loader/loader_dri_helper.c
209new file mode 100644
210index 00000000000..21419f087d6
211--- /dev/null
212+++ b/src/loader/loader_dri_helper.c
213@@ -0,0 +1,68 @@
214+/*
215+ * Permission to use, copy, modify, distribute, and sell this software and its
216+ * documentation for any purpose is hereby granted without fee, provided that
217+ * the above copyright notice appear in all copies and that both that copyright
218+ * notice and this permission notice appear in supporting documentation, and
219+ * that the name of the copyright holders not be used in advertising or
220+ * publicity pertaining to distribution of the software without specific,
221+ * written prior permission. The copyright holders make no representations
222+ * about the suitability of this software for any purpose. It is provided "as
223+ * is" without express or implied warranty.
224+ *
225+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
226+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
227+ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
228+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
229+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
230+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
231+ * OF THIS SOFTWARE.
232+ */
233+
234+#include <errno.h>
235+#include <stdbool.h>
236+#include <stdio.h>
237+#include <sys/types.h>
238+
239+#include <GL/gl.h> /* dri_interface needs GL types */
240+#include <GL/internal/dri_interface.h>
241+
242+#include "drm-uapi/drm_fourcc.h"
243+#include "loader_dri_helper.h"
244+
245+__DRIimage *loader_dri_create_image(__DRIscreen *screen,
246+ const __DRIimageExtension *image,
247+ uint32_t width, uint32_t height,
248+ uint32_t dri_format, uint32_t dri_usage,
249+ const uint64_t *modifiers,
250+ unsigned int modifiers_count,
251+ void *loaderPrivate)
252+{
253+ if (modifiers &&
254+ image->base.version > 14 && image->createImageWithModifiers) {
255+ bool has_valid_modifier = false;
256+ int i;
257+
258+ /* It's acceptable to create an image with INVALID modifier in the list,
259+ * but it cannot be on the only modifier (since it will certainly fail
260+ * later). While we could easily catch this after modifier creation, doing
261+ * the check here is a convenient debug check likely pointing at whatever
262+ * interface the client is using to build its modifier list.
263+ */
264+ for (i = 0; i < modifiers_count; i++) {
265+ if (modifiers[i] != DRM_FORMAT_MOD_INVALID) {
266+ has_valid_modifier = true;
267+ break;
268+ }
269+ }
270+ if (!has_valid_modifier)
271+ return NULL;
272+
273+ return image->createImageWithModifiers(screen, width, height,
274+ dri_format, modifiers,
275+ modifiers_count, loaderPrivate);
276+ }
277+
278+ /* No modifier given or fallback to the legacy createImage allowed */
279+ return image->createImage(screen, width, height, dri_format, dri_usage,
280+ loaderPrivate);
281+}
282diff --git a/src/loader/loader_dri_helper.h b/src/loader/loader_dri_helper.h
283new file mode 100644
284index 00000000000..e0aae69477b
285--- /dev/null
286+++ b/src/loader/loader_dri_helper.h
287@@ -0,0 +1,33 @@
288+/*
289+ * Permission to use, copy, modify, distribute, and sell this software and its
290+ * documentation for any purpose is hereby granted without fee, provided that
291+ * the above copyright notice appear in all copies and that both that copyright
292+ * notice and this permission notice appear in supporting documentation, and
293+ * that the name of the copyright holders not be used in advertising or
294+ * publicity pertaining to distribution of the software without specific,
295+ * written prior permission. The copyright holders make no representations
296+ * about the suitability of this software for any purpose. It is provided "as
297+ * is" without express or implied warranty.
298+ *
299+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
300+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
301+ * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
302+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
303+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
304+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
305+ * OF THIS SOFTWARE.
306+ */
307+
308+#include <stdbool.h>
309+#include <sys/types.h>
310+
311+#include <GL/gl.h> /* dri_interface needs GL types */
312+#include <GL/internal/dri_interface.h>
313+
314+__DRIimage *loader_dri_create_image(__DRIscreen *screen,
315+ const __DRIimageExtension *image,
316+ uint32_t width, uint32_t height,
317+ uint32_t dri_format, uint32_t dri_usage,
318+ const uint64_t *modifiers,
319+ unsigned int modifiers_count,
320+ void *loaderPrivate);
321diff --git a/src/loader/meson.build b/src/loader/meson.build
322index 34a43e33f09..57a93c3aa17 100644
323--- a/src/loader/meson.build
324+++ b/src/loader/meson.build
325@@ -47,7 +47,7 @@ endif
326
327 libloader = static_library(
328 'loader',
329- ['loader.c', 'pci_id_driver_map.c'],
330+ ['loader_dri_helper.c', 'loader.c', 'pci_id_driver_map.c'],
331 c_args : loader_c_args,
332 gnu_symbol_visibility : 'hidden',
333 include_directories : [inc_include, inc_src, inc_util],
334--
3352.31.1
336
diff --git a/recipes-graphics/mesa/mesa/0003-loader-dri3-convert-to-loader_dri_create_image.patch b/recipes-graphics/mesa/mesa/0003-loader-dri3-convert-to-loader_dri_create_image.patch
deleted file mode 100644
index daba1a50..00000000
--- a/recipes-graphics/mesa/mesa/0003-loader-dri3-convert-to-loader_dri_create_image.patch
+++ /dev/null
@@ -1,93 +0,0 @@
1From 8fd5b16efc60ad666b05ec745109d0a482b6157b Mon Sep 17 00:00:00 2001
2From: Lucas Stach <l.stach@pengutronix.de>
3Date: Tue, 15 Dec 2020 14:52:28 +0100
4Subject: [PATCH] loader/dri3: convert to loader_dri_create_image
5
6Get rid of the code duplication and makes it easier to hook in a
7new createImageWithModifiers2, but obscures the code flow a bit.
8
9Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
10Reviewed-by: Daniel Stone <daniels@collabora.com>
11Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106>
12Upstream-Status: Applied [https://gitlab.freedesktop.org/mesa/mesa/-/commit/8fd5b16efc60ad666b05ec745109d0a482b6157b]
13---
14 src/loader/loader_dri3_helper.c | 40 ++++++++++-----------------------
15 1 file changed, 12 insertions(+), 28 deletions(-)
16
17diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c
18index 6c4b704ae5b..c5e340e6942 100644
19--- a/src/loader/loader_dri3_helper.c
20+++ b/src/loader/loader_dri3_helper.c
21@@ -34,6 +34,7 @@
22
23 #include <X11/Xlib-xcb.h>
24
25+#include "loader_dri_helper.h"
26 #include "loader_dri3_helper.h"
27 #include "util/macros.h"
28 #include "drm-uapi/drm_fourcc.h"
29@@ -1314,6 +1315,8 @@ dri3_alloc_render_buffer(struct loader_dri3_drawable *draw, unsigned int format,
30 struct xshmfence *shm_fence;
31 int buffer_fds[4], fence_fd;
32 int num_planes = 0;
33+ uint64_t *modifiers = NULL;
34+ uint32_t count = 0;
35 int i, mod;
36 int ret;
37
38@@ -1348,8 +1351,6 @@ dri3_alloc_render_buffer(struct loader_dri3_drawable *draw, unsigned int format,
39 xcb_dri3_get_supported_modifiers_cookie_t mod_cookie;
40 xcb_dri3_get_supported_modifiers_reply_t *mod_reply;
41 xcb_generic_error_t *error = NULL;
42- uint64_t *modifiers = NULL;
43- uint32_t count = 0;
44
45 mod_cookie = xcb_dri3_get_supported_modifiers(draw->conn,
46 draw->window,
47@@ -1395,34 +1396,17 @@ dri3_alloc_render_buffer(struct loader_dri3_drawable *draw, unsigned int format,
48 }
49
50 free(mod_reply);
51-
52- /* don't use createImageWithModifiers() if we have no
53- * modifiers, other things depend on the use flags when
54- * there are no modifiers to know that a buffer can be
55- * shared.
56- */
57- if (modifiers) {
58- buffer->image = draw->ext->image->createImageWithModifiers(draw->dri_screen,
59- width, height,
60- format,
61- modifiers,
62- count,
63- buffer);
64- }
65-
66- free(modifiers);
67 }
68 #endif
69- if (!buffer->image)
70- buffer->image = draw->ext->image->createImage(draw->dri_screen,
71- width, height,
72- format,
73- __DRI_IMAGE_USE_SHARE |
74- __DRI_IMAGE_USE_SCANOUT |
75- __DRI_IMAGE_USE_BACKBUFFER |
76- (draw->is_protected_content ?
77- __DRI_IMAGE_USE_PROTECTED : 0),
78- buffer);
79+ buffer->image = loader_dri_create_image(draw->dri_screen, draw->ext->image,
80+ width, height, format,
81+ __DRI_IMAGE_USE_SHARE |
82+ __DRI_IMAGE_USE_SCANOUT |
83+ __DRI_IMAGE_USE_BACKBUFFER |
84+ (draw->is_protected_content ?
85+ __DRI_IMAGE_USE_PROTECTED : 0),
86+ modifiers, count, buffer);
87+ free(modifiers);
88
89 pixmap_buffer = buffer->image;
90
91--
922.31.1
93
diff --git a/recipes-graphics/mesa/mesa/0004-loader-dri-hook-up-createImageWithModifiers2.patch b/recipes-graphics/mesa/mesa/0004-loader-dri-hook-up-createImageWithModifiers2.patch
deleted file mode 100644
index c80978a7..00000000
--- a/recipes-graphics/mesa/mesa/0004-loader-dri-hook-up-createImageWithModifiers2.patch
+++ /dev/null
@@ -1,42 +0,0 @@
1From c03e79d7831f253b16d6f52f2fb959eb02257a8b Mon Sep 17 00:00:00 2001
2From: Lucas Stach <l.stach@pengutronix.de>
3Date: Tue, 15 Dec 2020 14:59:21 +0100
4Subject: [PATCH] loader/dri: hook up createImageWithModifiers2
5
6Call into the new modifiers with usage createImage variant when available
7to provide the DRI implementation with more context about the allocation.
8
9Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
10Reviewed-by: Daniel Stone <daniels@collabora.com>
11Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106>
12Upstream-Status: Applied [https://gitlab.freedesktop.org/mesa/mesa/-/commit/c03e79d7831f253b16d6f52f2fb959eb02257a8b]
13---
14 src/loader/loader_dri_helper.c | 12 +++++++++---
15 1 file changed, 9 insertions(+), 3 deletions(-)
16
17diff --git a/src/loader/loader_dri_helper.c b/src/loader/loader_dri_helper.c
18index 21419f087d6..972ca2da26a 100644
19--- a/src/loader/loader_dri_helper.c
20+++ b/src/loader/loader_dri_helper.c
21@@ -57,9 +57,15 @@ __DRIimage *loader_dri_create_image(__DRIscreen *screen,
22 if (!has_valid_modifier)
23 return NULL;
24
25- return image->createImageWithModifiers(screen, width, height,
26- dri_format, modifiers,
27- modifiers_count, loaderPrivate);
28+ if (image->base.version >= 19 && image->createImageWithModifiers2)
29+ return image->createImageWithModifiers2(screen, width, height,
30+ dri_format, modifiers,
31+ modifiers_count, dri_usage,
32+ loaderPrivate);
33+ else
34+ return image->createImageWithModifiers(screen, width, height,
35+ dri_format, modifiers,
36+ modifiers_count, loaderPrivate);
37 }
38
39 /* No modifier given or fallback to the legacy createImage allowed */
40--
412.31.1
42
diff --git a/recipes-graphics/mesa/mesa/0005-gallium-dri-copy-image-use-in-dup_image.patch b/recipes-graphics/mesa/mesa/0005-gallium-dri-copy-image-use-in-dup_image.patch
deleted file mode 100644
index 57251ed7..00000000
--- a/recipes-graphics/mesa/mesa/0005-gallium-dri-copy-image-use-in-dup_image.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From 3701cb9439058e71c1981bd80c5a9e1383815b08 Mon Sep 17 00:00:00 2001
2From: Lucas Stach <l.stach@pengutronix.de>
3Date: Fri, 13 Nov 2020 14:26:23 +0100
4Subject: [PATCH] gallium/dri: copy image use in dup_image
5
6Don't lose the use flags when dup'ing an image.
7
8Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
9Reviewed-by: Daniel Stone <daniels@collabora.com>
10Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8106>
11Upstream-Status: Applied [https://gitlab.freedesktop.org/mesa/mesa/-/commit/3701cb9439058e71c1981bd80c5a9e1383815b08]
12---
13 src/gallium/frontends/dri/dri2.c | 1 +
14 1 file changed, 1 insertion(+)
15
16diff --git a/src/gallium/frontends/dri/dri2.c b/src/gallium/frontends/dri/dri2.c
17index 9999b31b022..08a9ed9693c 100644
18--- a/src/gallium/frontends/dri/dri2.c
19+++ b/src/gallium/frontends/dri/dri2.c
20@@ -1326,6 +1326,7 @@ dri2_dup_image(__DRIimage *image, void *loaderPrivate)
21 img->dri_format = image->dri_format;
22 /* This should be 0 for sub images, but dup is also used for base images. */
23 img->dri_components = image->dri_components;
24+ img->use = image->use;
25 img->loader_private = loaderPrivate;
26 img->sPriv = image->sPriv;
27
28--
292.31.1
30
diff --git a/recipes-graphics/mesa/mesa/0006-dri-don-t-call-modifier-interfaces-when-modifiers_co.patch b/recipes-graphics/mesa/mesa/0006-dri-don-t-call-modifier-interfaces-when-modifiers_co.patch
deleted file mode 100644
index 765cc0ac..00000000
--- a/recipes-graphics/mesa/mesa/0006-dri-don-t-call-modifier-interfaces-when-modifiers_co.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From 77fcf700826d6637e4e407c73c209f3b1718a26e Mon Sep 17 00:00:00 2001
2From: Lucas Stach <l.stach@pengutronix.de>
3Date: Thu, 20 May 2021 18:07:12 +0200
4Subject: [PATCH] dri: don't call modifier interfaces when modifiers_count is 0
5
6The wayland EGL platform sets the modifier count to 0 in some cases
7to signal that modifiers should not be used, even if a list of modifiers
8is present. The loader_dri_create_image helper didn't handle this case
9properly and called the modifierful driver interface with a 0 modifier
10count, leading to the obvious outcome of the driver being unable to
11allocate an image.
12
13Fixes: cb9ae4273d68 ("dri: add loader_dri_create_image helper")
14Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
15Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10903>
16Upstream-Status: Applied [https://gitlab.freedesktop.org/mesa/mesa/-/commit/77fcf700826d6637e4e407c73c209f3b1718a26e]
17---
18 src/loader/loader_dri_helper.c | 2 +-
19 1 file changed, 1 insertion(+), 1 deletion(-)
20
21diff --git a/src/loader/loader_dri_helper.c b/src/loader/loader_dri_helper.c
22index 972ca2da26a..ff6ce35953f 100644
23--- a/src/loader/loader_dri_helper.c
24+++ b/src/loader/loader_dri_helper.c
25@@ -37,7 +37,7 @@ __DRIimage *loader_dri_create_image(__DRIscreen *screen,
26 unsigned int modifiers_count,
27 void *loaderPrivate)
28 {
29- if (modifiers &&
30+ if (modifiers && modifiers_count > 0 &&
31 image->base.version > 14 && image->createImageWithModifiers) {
32 bool has_valid_modifier = false;
33 int i;
34--
352.31.1
36
diff --git a/recipes-graphics/mesa/mesa/0007-frontend-dri-add-EXPLICIT_FLUSH-hint-in-dri2_resourc.patch b/recipes-graphics/mesa/mesa/0007-frontend-dri-add-EXPLICIT_FLUSH-hint-in-dri2_resourc.patch
deleted file mode 100644
index 43bd86bd..00000000
--- a/recipes-graphics/mesa/mesa/0007-frontend-dri-add-EXPLICIT_FLUSH-hint-in-dri2_resourc.patch
+++ /dev/null
@@ -1,46 +0,0 @@
1From 3824429da0e0e68b78534b1e0ab7e386bcb2b2e2 Mon Sep 17 00:00:00 2001
2From: Lucas Stach <l.stach@pengutronix.de>
3Date: Fri, 13 Nov 2020 14:59:52 +0100
4Subject: [PATCH] frontend/dri: add EXPLICIT_FLUSH hint in
5 dri2_resource_get_param
6
7dri2_resource_get_param() is called from two different places right now.
8Only one of them adds the EXPLICIT_FLUSH hint to the handle usage, which
9may disable the optimizations provided by this hint without a reason.
10
11Make sure to always add this hint when appropriate.
12
13Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
14Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7603>
15Upstream-Status: Applied [https://gitlab.freedesktop.org/mesa/mesa/-/commit/3824429da0e0e68b78534b1e0ab7e386bcb2b2e2]
16---
17 src/gallium/frontends/dri/dri2.c | 6 +++---
18 1 file changed, 3 insertions(+), 3 deletions(-)
19
20diff --git a/src/gallium/frontends/dri/dri2.c b/src/gallium/frontends/dri/dri2.c
21index 0220513368e..8ed47c25825 100644
22--- a/src/gallium/frontends/dri/dri2.c
23+++ b/src/gallium/frontends/dri/dri2.c
24@@ -1252,6 +1252,9 @@ dri2_resource_get_param(__DRIimage *image, enum pipe_resource_param param,
25 if (!pscreen->resource_get_param)
26 return false;
27
28+ if (image->use & __DRI_IMAGE_USE_BACKBUFFER)
29+ handle_usage |= PIPE_HANDLE_USAGE_EXPLICIT_FLUSH;
30+
31 return pscreen->resource_get_param(pscreen, NULL, image->texture,
32 image->plane, 0, 0, param, handle_usage,
33 value);
34@@ -1296,9 +1299,6 @@ dri2_query_image_by_resource_param(__DRIimage *image, int attrib, int *value)
35
36 handle_usage = PIPE_HANDLE_USAGE_FRAMEBUFFER_WRITE;
37
38- if (image->use & __DRI_IMAGE_USE_BACKBUFFER)
39- handle_usage |= PIPE_HANDLE_USAGE_EXPLICIT_FLUSH;
40-
41 if (!dri2_resource_get_param(image, param, handle_usage, &res_param))
42 return false;
43
44--
452.31.1
46
diff --git a/recipes-graphics/mesa/mesa/0008-etnaviv-remove-double-assigment-of-surface-texture.patch b/recipes-graphics/mesa/mesa/0008-etnaviv-remove-double-assigment-of-surface-texture.patch
deleted file mode 100644
index 7f43be10..00000000
--- a/recipes-graphics/mesa/mesa/0008-etnaviv-remove-double-assigment-of-surface-texture.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From 1c539bbb06f318d2bd0f93701b532f77894e391d Mon Sep 17 00:00:00 2001
2From: Lucas Stach <l.stach@pengutronix.de>
3Date: Fri, 13 Nov 2020 15:03:37 +0100
4Subject: [PATCH] etnaviv: remove double assigment of surface->texture
5
6surf->base.texture is already assigned earlier via a proper
7pipe_resource_reference call. Remove the superfluous assignement.
8
9Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
10Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
11Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7603>
12Upstream-Status: Applied [https://gitlab.freedesktop.org/mesa/mesa/-/commit/1c539bbb06f318d2bd0f93701b532f77894e391d]
13---
14 src/gallium/drivers/etnaviv/etnaviv_surface.c | 1 -
15 1 file changed, 1 deletion(-)
16
17diff --git a/src/gallium/drivers/etnaviv/etnaviv_surface.c b/src/gallium/drivers/etnaviv/etnaviv_surface.c
18index c78973bdb09..52a937652d2 100644
19--- a/src/gallium/drivers/etnaviv/etnaviv_surface.c
20+++ b/src/gallium/drivers/etnaviv/etnaviv_surface.c
21@@ -112,7 +112,6 @@ etna_create_surface(struct pipe_context *pctx, struct pipe_resource *prsc,
22 etna_screen_resource_alloc_ts(pctx->screen, rsc);
23 }
24
25- surf->base.texture = &rsc->base;
26 surf->base.format = templat->format;
27 surf->base.width = rsc->levels[level].width;
28 surf->base.height = rsc->levels[level].height;
29--
302.31.1
31
diff --git a/recipes-graphics/mesa/mesa/0009-etnaviv-flush-used-render-buffers-on-context-flush-w.patch b/recipes-graphics/mesa/mesa/0009-etnaviv-flush-used-render-buffers-on-context-flush-w.patch
deleted file mode 100644
index 4534cd5a..00000000
--- a/recipes-graphics/mesa/mesa/0009-etnaviv-flush-used-render-buffers-on-context-flush-w.patch
+++ /dev/null
@@ -1,168 +0,0 @@
1From 7b9d8d1936d72af6fd1bfd30afed354bb76b4c0c Mon Sep 17 00:00:00 2001
2From: Lucas Stach <l.stach@pengutronix.de>
3Date: Fri, 13 Nov 2020 15:05:55 +0100
4Subject: [PATCH] etnaviv: flush used render buffers on context flush when
5 neccessary
6
7Some resources like backbuffers are explicitly flushed by the frontend
8at the appropriate time, others however won't get flushed explicitly.
9Remember those resources when they get emitted as a render buffer and
10flush them on a context flush to make their content visible to other
11entities sharing the buffer.
12
13We still keep the optimized path for most resources where the frontend
14promises to do the flushing for us and only enable implicit flushing
15when a buffer handle is exported/imported without the
16PIPE_HANDLE_USAGE_EXPLICIT_FLUSH flag set.
17
18Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
19Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
20Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7603>
21Upstream-Status: Applied [https://gitlab.freedesktop.org/mesa/mesa/-/commit/7b9d8d1936d72af6fd1bfd30afed354bb76b4c0c]
22---
23 src/gallium/drivers/etnaviv/etnaviv_context.c | 16 ++++++++++++++++
24 src/gallium/drivers/etnaviv/etnaviv_context.h | 3 +++
25 src/gallium/drivers/etnaviv/etnaviv_resource.c | 7 +++++++
26 src/gallium/drivers/etnaviv/etnaviv_resource.h | 2 ++
27 src/gallium/drivers/etnaviv/etnaviv_state.c | 18 ++++++++++++++++++
28 5 files changed, 46 insertions(+)
29
30diff --git a/src/gallium/drivers/etnaviv/etnaviv_context.c b/src/gallium/drivers/etnaviv/etnaviv_context.c
31index 4dd9e427ea1..581edc78d2f 100644
32--- a/src/gallium/drivers/etnaviv/etnaviv_context.c
33+++ b/src/gallium/drivers/etnaviv/etnaviv_context.c
34@@ -129,6 +129,9 @@ etna_context_destroy(struct pipe_context *pctx)
35 _mesa_set_destroy(ctx->used_resources_write, NULL);
36
37 }
38+ if (ctx->flush_resources)
39+ _mesa_set_destroy(ctx->flush_resources, NULL);
40+
41 mtx_unlock(&ctx->lock);
42
43 if (ctx->dummy_desc_bo)
44@@ -490,6 +493,14 @@ etna_flush(struct pipe_context *pctx, struct pipe_fence_handle **fence,
45 list_for_each_entry(struct etna_acc_query, aq, &ctx->active_acc_queries, node)
46 etna_acc_query_suspend(aq, ctx);
47
48+ /* flush all resources that need an implicit flush */
49+ set_foreach(ctx->flush_resources, entry) {
50+ struct pipe_resource *prsc = (struct pipe_resource *)entry->key;
51+
52+ pctx->flush_resource(pctx, prsc);
53+ }
54+ _mesa_set_clear(ctx->flush_resources, NULL);
55+
56 etna_cmd_stream_flush(ctx->stream, ctx->in_fence_fd,
57 (flags & PIPE_FLUSH_FENCE_FD) ? &out_fence_fd : NULL);
58
59@@ -596,6 +607,11 @@ etna_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags)
60 if (!ctx->used_resources_write)
61 goto fail;
62
63+ ctx->flush_resources = _mesa_set_create(NULL, _mesa_hash_pointer,
64+ _mesa_key_pointer_equal);
65+ if (!ctx->flush_resources)
66+ goto fail;
67+
68 mtx_init(&ctx->lock, mtx_recursive);
69
70 /* context ctxate setup */
71diff --git a/src/gallium/drivers/etnaviv/etnaviv_context.h b/src/gallium/drivers/etnaviv/etnaviv_context.h
72index 72000f2122b..21e4d3f33ca 100644
73--- a/src/gallium/drivers/etnaviv/etnaviv_context.h
74+++ b/src/gallium/drivers/etnaviv/etnaviv_context.h
75@@ -206,6 +206,9 @@ struct etna_context {
76 struct set *used_resources_read;
77 struct set *used_resources_write;
78
79+ /* resources that must be flushed implicitly at the context flush time */
80+ struct set *flush_resources;
81+
82 mtx_t lock;
83 };
84
85diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.c b/src/gallium/drivers/etnaviv/etnaviv_resource.c
86index ae4f24b9b44..0c8c28e66aa 100644
87--- a/src/gallium/drivers/etnaviv/etnaviv_resource.c
88+++ b/src/gallium/drivers/etnaviv/etnaviv_resource.c
89@@ -265,6 +265,7 @@ etna_resource_alloc(struct pipe_screen *pscreen, unsigned layout,
90 rsc->base.nr_samples = nr_samples;
91 rsc->layout = layout;
92 rsc->halign = halign;
93+ rsc->explicit_flush = true;
94
95 pipe_reference_init(&rsc->base.reference, 1);
96 util_range_init(&rsc->valid_buffer_range);
97@@ -519,6 +520,9 @@ etna_resource_from_handle(struct pipe_screen *pscreen,
98 rsc->layout = modifier_to_layout(handle->modifier);
99 rsc->halign = TEXTURE_HALIGN_FOUR;
100
101+ if (usage & PIPE_HANDLE_USAGE_EXPLICIT_FLUSH)
102+ rsc->explicit_flush = true;
103+
104 level->width = tmpl->width0;
105 level->height = tmpl->height0;
106 level->depth = tmpl->depth0;
107@@ -584,6 +588,9 @@ etna_resource_get_handle(struct pipe_screen *pscreen,
108 handle->offset = rsc->levels[0].offset;
109 handle->modifier = layout_to_modifier(rsc->layout);
110
111+ if (!(usage & PIPE_HANDLE_USAGE_EXPLICIT_FLUSH))
112+ rsc->explicit_flush = false;
113+
114 if (handle->type == WINSYS_HANDLE_TYPE_SHARED) {
115 return etna_bo_get_name(rsc->bo, &handle->handle) == 0;
116 } else if (handle->type == WINSYS_HANDLE_TYPE_KMS) {
117diff --git a/src/gallium/drivers/etnaviv/etnaviv_resource.h b/src/gallium/drivers/etnaviv/etnaviv_resource.h
118index cb83e891d34..167cf4ed069 100644
119--- a/src/gallium/drivers/etnaviv/etnaviv_resource.h
120+++ b/src/gallium/drivers/etnaviv/etnaviv_resource.h
121@@ -93,6 +93,8 @@ struct etna_resource {
122 struct pipe_resource *texture;
123 /* for when PE doesn't support the base layout */
124 struct pipe_resource *render;
125+ /* frontend flushes resource via an explicit call to flush_resource */
126+ bool explicit_flush;
127
128 enum etna_resource_status status;
129
130diff --git a/src/gallium/drivers/etnaviv/etnaviv_state.c b/src/gallium/drivers/etnaviv/etnaviv_state.c
131index 44b1c4f8fab..1ad839799f2 100644
132--- a/src/gallium/drivers/etnaviv/etnaviv_state.c
133+++ b/src/gallium/drivers/etnaviv/etnaviv_state.c
134@@ -753,6 +753,21 @@ etna_update_zsa(struct etna_context *ctx)
135 return true;
136 }
137
138+static bool
139+etna_record_flush_resources(struct etna_context *ctx)
140+{
141+ struct pipe_framebuffer_state *fb = &ctx->framebuffer_s;
142+
143+ if (fb->nr_cbufs > 0) {
144+ struct etna_surface *surf = etna_surface(fb->cbufs[0]);
145+
146+ if (!etna_resource(surf->prsc)->explicit_flush)
147+ _mesa_set_add(ctx->flush_resources, surf->prsc);
148+ }
149+
150+ return true;
151+}
152+
153 struct etna_state_updater {
154 bool (*update)(struct etna_context *ctx);
155 uint32_t dirty;
156@@ -780,6 +795,9 @@ static const struct etna_state_updater etna_state_updates[] = {
157 },
158 {
159 etna_update_zsa, ETNA_DIRTY_ZSA | ETNA_DIRTY_SHADER,
160+ },
161+ {
162+ etna_record_flush_resources, ETNA_DIRTY_FRAMEBUFFER,
163 }
164 };
165
166--
1672.31.1
168
diff --git a/recipes-graphics/mesa/mesa_%.bbappend b/recipes-graphics/mesa/mesa_%.bbappend
index 423ee63e..acddfbc6 100644
--- a/recipes-graphics/mesa/mesa_%.bbappend
+++ b/recipes-graphics/mesa/mesa_%.bbappend
@@ -1,21 +1,8 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" 1PROVIDES:remove:imxgpu = "virtual/egl"
2SRC_URI_append_use-mainline-bsp = " \ 2PROVIDES:remove:imxgpu3d = "virtual/libgl virtual/libgles1 virtual/libgles2"
3 file://0001-dri-add-createImageWithModifiers2-interface.patch \ 3
4 file://0002-dri-add-loader_dri_create_image-helper.patch \ 4PACKAGECONFIG:remove:imxgpu = "egl gbm"
5 file://0003-loader-dri3-convert-to-loader_dri_create_image.patch \ 5PACKAGECONFIG:remove:imxgpu3d = "gles"
6 file://0004-loader-dri-hook-up-createImageWithModifiers2.patch \
7 file://0005-gallium-dri-copy-image-use-in-dup_image.patch \
8 file://0006-dri-don-t-call-modifier-interfaces-when-modifiers_co.patch \
9 file://0007-frontend-dri-add-EXPLICIT_FLUSH-hint-in-dri2_resourc.patch \
10 file://0008-etnaviv-remove-double-assigment-of-surface-texture.patch \
11 file://0009-etnaviv-flush-used-render-buffers-on-context-flush-w.patch \
12"
13
14PROVIDES_remove_imxgpu = "virtual/egl"
15PROVIDES_remove_imxgpu3d = "virtual/libgl virtual/libgles1 virtual/libgles2"
16
17PACKAGECONFIG_remove_imxgpu = "egl gbm"
18PACKAGECONFIG_remove_imxgpu3d = "gles"
19 6
20# FIXME: mesa should support 'x11-no-tls' option 7# FIXME: mesa should support 'x11-no-tls' option
21python () { 8python () {
@@ -28,13 +15,13 @@ python () {
28} 15}
29 16
30# Enable Etnaviv and Freedreno support 17# Enable Etnaviv and Freedreno support
31PACKAGECONFIG_append_use-mainline-bsp = " gallium etnaviv kmsro freedreno" 18PACKAGECONFIG:append:use-mainline-bsp = " gallium etnaviv kmsro freedreno"
32 19
33# For NXP BSP, GPU drivers don't support dri 20# For NXP BSP, GPU drivers don't support dri
34PACKAGECONFIG_remove_imxgpu_use-nxp-bsp = "dri" 21PACKAGECONFIG:remove:imxgpu:use-nxp-bsp = "dri"
35 22
36# mainline/etnaviv: 23# mainline/etnaviv:
37RRECOMMENDS_${PN}-megadriver_append_use-mainline-bsp = " libdrm-etnaviv mesa-etnaviv-env" 24RRECOMMENDS:${PN}-megadriver:append:use-mainline-bsp = " libdrm-etnaviv mesa-etnaviv-env"
38 25
39BACKEND = \ 26BACKEND = \
40 "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \ 27 "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \
@@ -42,7 +29,7 @@ BACKEND = \
42 'fb', d), d)}" 29 'fb', d), d)}"
43 30
44# FIXME: Dirty hack to allow use of Vivante GPU libGL binary 31# FIXME: Dirty hack to allow use of Vivante GPU libGL binary
45do_install_append_imxgpu3d () { 32do_install:append:imxgpu3d () {
46 rm -f ${D}${libdir}/libGL.* \ 33 rm -f ${D}${libdir}/libGL.* \
47 ${D}${includedir}/GL/gl.h \ 34 ${D}${includedir}/GL/gl.h \
48 ${D}${includedir}/GL/glcorearb.h \ 35 ${D}${includedir}/GL/glcorearb.h \
@@ -54,6 +41,6 @@ do_install_append_imxgpu3d () {
54 fi 41 fi
55} 42}
56 43
57do_install_append_imxgpu () { 44do_install:append:imxgpu () {
58 rm -rf ${D}${includedir}/KHR 45 rm -rf ${D}${includedir}/KHR
59} 46}
diff --git a/recipes-graphics/vulkan/vulkan-loader_%.bbappend b/recipes-graphics/vulkan/vulkan-loader_%.bbappend
index 28e1dc32..90776168 100644
--- a/recipes-graphics/vulkan/vulkan-loader_%.bbappend
+++ b/recipes-graphics/vulkan/vulkan-loader_%.bbappend
@@ -1,3 +1,3 @@
1# The i.MX implementation is dynamically loaded, so it requires an 1# The i.MX implementation is dynamically loaded, so it requires an
2# explicit runtime dependency. 2# explicit runtime dependency.
3RRECOMMENDS_${PN}_append_imxgpu = " libvulkan-imx" 3RRECOMMENDS:${PN}:append:imxgpu = " libvulkan-imx"
diff --git a/recipes-graphics/waffle/waffle_%.bbappend b/recipes-graphics/waffle/waffle_%.bbappend
index 9d090bcf..380273a8 100644
--- a/recipes-graphics/waffle/waffle_%.bbappend
+++ b/recipes-graphics/waffle/waffle_%.bbappend
@@ -1,4 +1,4 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 1FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
2 2
3SRC_URI += " \ 3SRC_URI += " \
4 file://0001-meson-Add-missing-wayland-dependency-on-EGL.patch \ 4 file://0001-meson-Add-missing-wayland-dependency-on-EGL.patch \
@@ -6,11 +6,11 @@ SRC_URI += " \
6" 6"
7 7
8PACKAGECONFIG_IMXGPU_X11 = "" 8PACKAGECONFIG_IMXGPU_X11 = ""
9PACKAGECONFIG_IMXGPU_X11_imxgpu3d = "x11-egl glx" 9PACKAGECONFIG_IMXGPU_X11:imxgpu3d = "x11-egl glx"
10PACKAGECONFIG_IMXGPU_GBM = "gbm" 10PACKAGECONFIG_IMXGPU_GBM = "gbm"
11PACKAGECONFIG_IMXGPU_GBM_mx6 = "" 11PACKAGECONFIG_IMXGPU_GBM:mx6 = ""
12PACKAGECONFIG_IMXGPU_GBM_mx7 = "" 12PACKAGECONFIG_IMXGPU_GBM:mx7 = ""
13PACKAGECONFIG_imxgpu = " \ 13PACKAGECONFIG:imxgpu = " \
14 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \ 14 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \
15 bb.utils.contains('DISTRO_FEATURES', 'x11', '${PACKAGECONFIG_IMXGPU_X11}', \ 15 bb.utils.contains('DISTRO_FEATURES', 'x11', '${PACKAGECONFIG_IMXGPU_X11}', \
16 '', d), d)} \ 16 '', d), d)} \
diff --git a/recipes-graphics/wayland/wayland-protocols_1.20.imx.bb b/recipes-graphics/wayland/wayland-protocols_1.20.imx.bb
index 852b3160..0d1f4726 100644
--- a/recipes-graphics/wayland/wayland-protocols_1.20.imx.bb
+++ b/recipes-graphics/wayland/wayland-protocols_1.20.imx.bb
@@ -16,7 +16,7 @@ S = "${WORKDIR}/git"
16inherit autotools pkgconfig 16inherit autotools pkgconfig
17 17
18PACKAGES = "${PN}" 18PACKAGES = "${PN}"
19FILES_${PN} += "${datadir}/pkgconfig/wayland-protocols.pc" 19FILES:${PN} += "${datadir}/pkgconfig/wayland-protocols.pc"
20 20
21PACKAGE_ARCH = "${MACHINE_SOCARCH}" 21PACKAGE_ARCH = "${MACHINE_SOCARCH}"
22COMPATIBLE_MACHINE = "(imxfbdev|imxgpu)" 22COMPATIBLE_MACHINE = "(imxfbdev|imxgpu)"
diff --git a/recipes-graphics/wayland/weston-init.bbappend b/recipes-graphics/wayland/weston-init.bbappend
index ebd98268..5710e9b5 100644
--- a/recipes-graphics/wayland/weston-init.bbappend
+++ b/recipes-graphics/wayland/weston-init.bbappend
@@ -1,24 +1,24 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 1FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
2 2
3# OpenGL is not required for parts with GPU support for 2D but not 3D 3# OpenGL is not required for parts with GPU support for 2D but not 3D
4IMX_REQUIRED_DISTRO_FEATURES_REMOVE = "" 4IMX_REQUIRED_DISTRO_FEATURES_REMOVE = ""
5IMX_REQUIRED_DISTRO_FEATURES_REMOVE_imxgpu2d = "opengl" 5IMX_REQUIRED_DISTRO_FEATURES_REMOVE:imxgpu2d = "opengl"
6IMX_REQUIRED_DISTRO_FEATURES_REMOVE_imxgpu3d = "" 6IMX_REQUIRED_DISTRO_FEATURES_REMOVE:imxgpu3d = ""
7REQUIRED_DISTRO_FEATURES_remove = "${IMX_REQUIRED_DISTRO_FEATURES_REMOVE}" 7REQUIRED_DISTRO_FEATURES:remove = "${IMX_REQUIRED_DISTRO_FEATURES_REMOVE}"
8 8
9SRC_URI_append_mx6sl = " file://weston.config" 9SRC_URI:append:mx6sl = " file://weston.config"
10 10
11# To customize weston.ini, start by setting the desired assignment in weston.ini, 11# To customize weston.ini, start by setting the desired assignment in weston.ini,
12# commented out. For example: 12# commented out. For example:
13# #xwayland=true 13# #xwayland=true
14# Then add the assignment to INI_UNCOMMENT_ASSIGNMENTS. 14# Then add the assignment to INI_UNCOMMENT_ASSIGNMENTS.
15INI_UNCOMMENT_ASSIGNMENTS_append_imx = " \ 15INI_UNCOMMENT_ASSIGNMENTS:append:imx = " \
16 ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland=true', '', d)} \ 16 ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland=true', '', d)} \
17" 17"
18INI_UNCOMMENT_ASSIGNMENTS_append_mx8 = " \ 18INI_UNCOMMENT_ASSIGNMENTS:append:mx8 = " \
19 repaint-window=16 \ 19 repaint-window=16 \
20" 20"
21INI_UNCOMMENT_ASSIGNMENTS_append_mx8mq = " \ 21INI_UNCOMMENT_ASSIGNMENTS:append:mx8mq = " \
22 gbm-format=argb8888 \ 22 gbm-format=argb8888 \
23 \\[shell\\] \ 23 \\[shell\\] \
24 size=1920x1080 \ 24 size=1920x1080 \
@@ -27,10 +27,10 @@ INI_UNCOMMENT_ASSIGNMENTS_append_mx8mq = " \
27# FIXME: The 8QM and 8QXP SoCs have better performance without G2D so don't enable it 27# FIXME: The 8QM and 8QXP SoCs have better performance without G2D so don't enable it
28# Ideally, this should be seamless and Vivante ought to handle it internally and take the fastest 28# Ideally, this should be seamless and Vivante ought to handle it internally and take the fastest
29# rendering code. 29# rendering code.
30INI_UNCOMMENT_USE_G2D_imxgpu2d ?= "use-g2d=1" 30INI_UNCOMMENT_USE_G2D:imxgpu2d ?= "use-g2d=1"
31INI_UNCOMMENT_USE_G2D_mx8qm = "" 31INI_UNCOMMENT_USE_G2D:mx8qm = ""
32INI_UNCOMMENT_USE_G2D_mx8qxp = "" 32INI_UNCOMMENT_USE_G2D:mx8qxp = ""
33INI_UNCOMMENT_ASSIGNMENTS_append_imxgpu2d = " \ 33INI_UNCOMMENT_ASSIGNMENTS:append:imxgpu2d = " \
34 ${INI_UNCOMMENT_USE_G2D} \ 34 ${INI_UNCOMMENT_USE_G2D} \
35" 35"
36 36
@@ -41,7 +41,7 @@ uncomment() {
41 sed -i -e 's,^#'"$1"','"$1"',g' $2 41 sed -i -e 's,^#'"$1"','"$1"',g' $2
42} 42}
43 43
44do_install_append() { 44do_install:append() {
45 if [ -f "${WORKDIR}/weston.config" ]; then 45 if [ -f "${WORKDIR}/weston.config" ]; then
46 install -Dm0755 ${WORKDIR}/weston.config ${D}${sysconfdir}/default/weston 46 install -Dm0755 ${WORKDIR}/weston.config ${D}${sysconfdir}/default/weston
47 fi 47 fi
diff --git a/recipes-graphics/wayland/weston_9.0.0.imx.bb b/recipes-graphics/wayland/weston_9.0.0.imx.bb
index 026f27ce..76296c8e 100644
--- a/recipes-graphics/wayland/weston_9.0.0.imx.bb
+++ b/recipes-graphics/wayland/weston_9.0.0.imx.bb
@@ -20,7 +20,7 @@ SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
20 file://0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch \ 20 file://0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch \
21" 21"
22 22
23SRC_URI_append_libc-musl = " file://dont-use-plane-add-prop.patch " 23SRC_URI:append:libc-musl = " file://dont-use-plane-add-prop.patch "
24 24
25SRC_URI[sha256sum] = "5cf5d6ce192e0eb15c1fc861a436bf21b5bb3b91dbdabbdebe83e1f83aa098fe" 25SRC_URI[sha256sum] = "5cf5d6ce192e0eb15c1fc861a436bf21b5bb3b91dbdabbdebe83e1f83aa098fe"
26 26
@@ -97,7 +97,7 @@ PACKAGECONFIG[shell-ivi] = "-Dshell-ivi=true,-Dshell-ivi=false"
97# JPEG image loading support 97# JPEG image loading support
98PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg" 98PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg"
99 99
100do_install_append() { 100do_install:append() {
101 # Weston doesn't need the .la files to load modules, so wipe them 101 # Weston doesn't need the .la files to load modules, so wipe them
102 rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la 102 rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la
103 103
@@ -122,23 +122,23 @@ do_install_append() {
122PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \ 122PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \
123 libweston-${WESTON_MAJOR_VERSION} ${PN}-examples" 123 libweston-${WESTON_MAJOR_VERSION} ${PN}-examples"
124 124
125FILES_${PN}-dev += "${libdir}/${BPN}/libexec_weston.so" 125FILES:${PN}-dev += "${libdir}/${BPN}/libexec_weston.so"
126FILES_${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so* ${datadir}" 126FILES:${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so* ${datadir}"
127 127
128FILES_libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so" 128FILES:libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so"
129SUMMARY_libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'." 129SUMMARY:libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'."
130 130
131FILES_${PN}-examples = "${bindir}/*" 131FILES:${PN}-examples = "${bindir}/*"
132 132
133FILES_${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so" 133FILES:${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so"
134RDEPENDS_${PN}-xwayland += "xwayland" 134RDEPENDS:${PN}-xwayland += "xwayland"
135 135
136RDEPENDS_${PN} += "xkeyboard-config" 136RDEPENDS:${PN} += "xkeyboard-config"
137RRECOMMENDS_${PN} = "weston-init liberation-fonts" 137RRECOMMENDS:${PN} = "weston-init liberation-fonts"
138RRECOMMENDS_${PN}-dev += "wayland-protocols" 138RRECOMMENDS:${PN}-dev += "wayland-protocols"
139 139
140USERADD_PACKAGES = "${PN}" 140USERADD_PACKAGES = "${PN}"
141GROUPADD_PARAM_${PN} = "--system weston-launch" 141GROUPADD_PARAM:${PN} = "--system weston-launch"
142 142
143########### End of OE-core copy ########### 143########### End of OE-core copy ###########
144 144
@@ -160,23 +160,23 @@ S = "${WORKDIR}/git"
160 160
161# Disable OpenGL for parts with GPU support for 2D but not 3D 161# Disable OpenGL for parts with GPU support for 2D but not 3D
162REQUIRED_DISTRO_FEATURES = "opengl" 162REQUIRED_DISTRO_FEATURES = "opengl"
163REQUIRED_DISTRO_FEATURES_imxgpu2d = "" 163REQUIRED_DISTRO_FEATURES:imxgpu2d = ""
164REQUIRED_DISTRO_FEATURES_imxgpu3d = "opengl" 164REQUIRED_DISTRO_FEATURES:imxgpu3d = "opengl"
165PACKAGECONFIG_OPENGL = "opengl" 165PACKAGECONFIG_OPENGL = "opengl"
166PACKAGECONFIG_OPENGL_imxgpu2d = "" 166PACKAGECONFIG_OPENGL:imxgpu2d = ""
167PACKAGECONFIG_OPENGL_imxgpu3d = "opengl" 167PACKAGECONFIG_OPENGL:imxgpu3d = "opengl"
168 168
169PACKAGECONFIG_remove = "wayland x11" 169PACKAGECONFIG:remove = "wayland x11"
170PACKAGECONFIG_append = " ${@bb.utils.filter('DISTRO_FEATURES', '${PACKAGECONFIG_OPENGL}', d)}" 170PACKAGECONFIG:append = " ${@bb.utils.filter('DISTRO_FEATURES', '${PACKAGECONFIG_OPENGL}', d)}"
171 171
172PACKAGECONFIG_remove_imxfbdev = "kms" 172PACKAGECONFIG:remove:imxfbdev = "kms"
173PACKAGECONFIG_append_imxfbdev = " fbdev clients" 173PACKAGECONFIG:append:imxfbdev = " fbdev clients"
174PACKAGECONFIG_append_imxgpu = " imxgpu" 174PACKAGECONFIG:append:imxgpu = " imxgpu"
175PACKAGECONFIG_append_imxgpu2d = " imxg2d" 175PACKAGECONFIG:append:imxgpu2d = " imxg2d"
176 176
177# Clients support 177# Clients support
178SIMPLE_CLIENTS = "all" 178SIMPLE_CLIENTS = "all"
179SIMPLE_CLIENTS_imxfbdev = "damage,im,egl,shm,touch,dmabuf-v4l" 179SIMPLE_CLIENTS:imxfbdev = "damage,im,egl,shm,touch,dmabuf-v4l"
180PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false,libxcursor" 180PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false,libxcursor"
181PACKAGECONFIG[clients] = "-Dsimple-clients=${SIMPLE_CLIENTS} -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false" 181PACKAGECONFIG[clients] = "-Dsimple-clients=${SIMPLE_CLIENTS} -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false"
182# Weston with i.MX GPU support 182# Weston with i.MX GPU support
diff --git a/recipes-graphics/xinput-calibrator/pointercal-xinput_%.bbappend b/recipes-graphics/xinput-calibrator/pointercal-xinput_%.bbappend
index a9c60f3e..d112b274 100644
--- a/recipes-graphics/xinput-calibrator/pointercal-xinput_%.bbappend
+++ b/recipes-graphics/xinput-calibrator/pointercal-xinput_%.bbappend
@@ -1,2 +1,2 @@
1# Append path for freescale layer to include bsp pointercal.xinput 1# Append path for freescale layer to include bsp pointercal.xinput
2FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 2FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
diff --git a/recipes-graphics/xorg-driver/xf86-video-imx-vivante_6.4.0.p0.0.bb b/recipes-graphics/xorg-driver/xf86-video-imx-vivante_6.4.0.p0.0.bb
index 069008c0..6944184f 100644
--- a/recipes-graphics/xorg-driver/xf86-video-imx-vivante_6.4.0.p0.0.bb
+++ b/recipes-graphics/xorg-driver/xf86-video-imx-vivante_6.4.0.p0.0.bb
@@ -34,7 +34,7 @@ TARGET_CC_ARCH += "${LDFLAGS}"
34 34
35PACKAGES =+ "xserver-xorg-extension-viv-autohdmi" 35PACKAGES =+ "xserver-xorg-extension-viv-autohdmi"
36 36
37do_install_append () { 37do_install:append () {
38 install -d ${D}${includedir} 38 install -d ${D}${includedir}
39 cp -axr ${S}/EXA/src/vivante_gal/vivante_priv.h ${D}${includedir} 39 cp -axr ${S}/EXA/src/vivante_gal/vivante_priv.h ${D}${includedir}
40 cp -axr ${S}/EXA/src/vivante_gal/vivante_gal.h ${D}${includedir} 40 cp -axr ${S}/EXA/src/vivante_gal/vivante_gal.h ${D}${includedir}
@@ -45,7 +45,7 @@ do_install_append () {
45 find ${D}${includedir} -type f -exec chmod 660 {} \; 45 find ${D}${includedir} -type f -exec chmod 660 {} \;
46} 46}
47 47
48RDEPENDS_${PN} += "libvivante-dri-imx \ 48RDEPENDS:${PN} += "libvivante-dri-imx \
49 xserver-xorg-module-exa \ 49 xserver-xorg-module-exa \
50 mesa-driver-swrast \ 50 mesa-driver-swrast \
51 xserver-xorg-extension-dri \ 51 xserver-xorg-extension-dri \
@@ -55,11 +55,11 @@ RDEPENDS_${PN} += "libvivante-dri-imx \
55REALSOLIBS := "${SOLIBS}" 55REALSOLIBS := "${SOLIBS}"
56SOLIBS = "${SOLIBSDEV}" 56SOLIBS = "${SOLIBSDEV}"
57 57
58FILES_${PN} = "${libdir}/*/*/*/vivante_drv${SOLIBS}" 58FILES:${PN} = "${libdir}/*/*/*/vivante_drv${SOLIBS}"
59FILES_${PN}-dev = "${includedir} /usr/src ${libdir}/libfsl_x11_ext${SOLIBSDEV}" 59FILES:${PN}-dev = "${includedir} /usr/src ${libdir}/libfsl_x11_ext${SOLIBSDEV}"
60FILES_${PN}-dbg = "${libdir}/*/*/*/.debug ${libdir}/.debug/libfsl_x11_ext${SOLIBS} ${exec_prefix}/bin/.debug/autohdmi" 60FILES:${PN}-dbg = "${libdir}/*/*/*/.debug ${libdir}/.debug/libfsl_x11_ext${SOLIBS} ${exec_prefix}/bin/.debug/autohdmi"
61 61
62FILES_xserver-xorg-extension-viv-autohdmi = " ${libdir}/libfsl_x11_ext${SOLIBS} ${exec_prefix}/bin/autohdmi ${sysconfdir}/init.d/rc.autohdmi" 62FILES:xserver-xorg-extension-viv-autohdmi = " ${libdir}/libfsl_x11_ext${SOLIBS} ${exec_prefix}/bin/autohdmi ${sysconfdir}/init.d/rc.autohdmi"
63 63
64PACKAGE_ARCH = "${MACHINE_SOCARCH}" 64PACKAGE_ARCH = "${MACHINE_SOCARCH}"
65COMPATIBLE_MACHINE = "(mx6|mx7ulp)" 65COMPATIBLE_MACHINE = "(mx6|mx7ulp)"
diff --git a/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend b/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend
index ceb438e3..3fe677b3 100644
--- a/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend
+++ b/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend
@@ -1,2 +1,2 @@
1# Append path for freescale layer to include bsp xorg.conf 1# Append path for freescale layer to include bsp xorg.conf
2FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 2FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0001-xfree86-define-FOURCC_NV12-and-XVIMAGE_NV12.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0001-xfree86-define-FOURCC_NV12-and-XVIMAGE_NV12.patch
new file mode 100644
index 00000000..e0958558
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0001-xfree86-define-FOURCC_NV12-and-XVIMAGE_NV12.patch
@@ -0,0 +1,47 @@
1From 3a6fe85a5f123f53319b5be8a69666174cad09cf Mon Sep 17 00:00:00 2001
2From: Julien Isorce <julien.isorce@gmail.com>
3Date: Thu, 6 Sep 2018 15:38:13 -0700
4Subject: [PATCH 1/8] xfree86: define FOURCC_NV12 and XVIMAGE_NV12
5
6Useful for glamor.
7
8Upstream-Status: Backport
9Signed-off-by: Julien Isorce <jisorce@oblong.com>
10Tested-by: Olivier Fourdan <ofourdan@redhat.com>
11Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12---
13 hw/xfree86/common/fourcc.h | 20 ++++++++++++++++++++
14 1 file changed, 20 insertions(+)
15
16diff --git a/hw/xfree86/common/fourcc.h b/hw/xfree86/common/fourcc.h
17index e6126b7fe..a19e6869e 100644
18--- a/hw/xfree86/common/fourcc.h
19+++ b/hw/xfree86/common/fourcc.h
20@@ -156,4 +156,24 @@
21 XvTopToBottom \
22 }
23
24+#define FOURCC_NV12 0x3231564e
25+#define XVIMAGE_NV12 \
26+ { \
27+ FOURCC_NV12, \
28+ XvYUV, \
29+ LSBFirst, \
30+ {'N','V','1','2', \
31+ 0x00,0x00,0x00,0x10,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71}, \
32+ 12, \
33+ XvPlanar, \
34+ 2, \
35+ 0, 0, 0, 0, \
36+ 8, 8, 8, \
37+ 1, 2, 2, \
38+ 1, 2, 2, \
39+ {'Y','U','V', \
40+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, \
41+ XvTopToBottom \
42+ }
43+
44 #endif /* _XF86_FOURCC_H_ */
45--
462.17.1
47
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0002-glamor-add-support-for-GL_RG.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0002-glamor-add-support-for-GL_RG.patch
new file mode 100644
index 00000000..78988373
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0002-glamor-add-support-for-GL_RG.patch
@@ -0,0 +1,116 @@
1From 7f46b31e3d80ca769f68a4ffb201d0fc4801ea93 Mon Sep 17 00:00:00 2001
2From: Julien Isorce <julien.isorce@gmail.com>
3Date: Thu, 6 Sep 2018 15:38:14 -0700
4Subject: [PATCH 2/8] glamor: add support for GL_RG
5
6Allow to upload the CbCr plane of an NV12 image into a GL texture.
7
8Upstream-Status: Backport
9Signed-off-by: Julien Isorce <jisorce@oblong.com>
10Tested-by: Olivier Fourdan <ofourdan@redhat.com>
11Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12---
13 glamor/glamor.c | 2 ++
14 glamor/glamor.h | 1 +
15 glamor/glamor_priv.h | 4 +++-
16 glamor/glamor_transfer.c | 10 ++++++++--
17 glamor/glamor_utils.h | 4 ++++
18 5 files changed, 18 insertions(+), 3 deletions(-)
19
20diff --git a/glamor/glamor.c b/glamor/glamor.c
21index abefef614..3e9cf284c 100644
22--- a/glamor/glamor.c
23+++ b/glamor/glamor.c
24@@ -222,6 +222,8 @@ glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
25
26 pixmap_priv = glamor_get_pixmap_private(pixmap);
27
28+ pixmap_priv->is_cbcr = (usage == GLAMOR_CREATE_FORMAT_CBCR);
29+
30 format = gl_iformat_for_pixmap(pixmap);
31
32 pitch = (((w * pixmap->drawable.bitsPerPixel + 7) / 8) + 3) & ~3;
33diff --git a/glamor/glamor.h b/glamor/glamor.h
34index be04bf858..e5992aa56 100644
35--- a/glamor/glamor.h
36+++ b/glamor/glamor.h
37@@ -129,6 +129,7 @@ extern _X_EXPORT Bool glamor_destroy_pixmap(PixmapPtr pixmap);
38 #define GLAMOR_CREATE_FBO_NO_FBO 0x103
39 #define GLAMOR_CREATE_NO_LARGE 0x105
40 #define GLAMOR_CREATE_PIXMAP_NO_TEXTURE 0x106
41+#define GLAMOR_CREATE_FORMAT_CBCR 0x107
42
43 /* @glamor_egl_exchange_buffers: Exchange the underlying buffers(KHR image,fbo).
44 *
45diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h
46index 4353a99f1..a14aaf624 100644
47--- a/glamor/glamor_priv.h
48+++ b/glamor/glamor_priv.h
49@@ -380,6 +380,8 @@ typedef struct glamor_pixmap_private {
50 * names.
51 */
52 glamor_pixmap_fbo **fbo_array;
53+
54+ Bool is_cbcr;
55 } glamor_pixmap_private;
56
57 extern DevPrivateKeyRec glamor_pixmap_private_key;
58@@ -902,7 +904,7 @@ int glamor_xv_put_image(glamor_port_private *port_priv,
59 Bool sync,
60 RegionPtr clipBoxes);
61 void glamor_xv_core_init(ScreenPtr screen);
62-void glamor_xv_render(glamor_port_private *port_priv);
63+void glamor_xv_render(glamor_port_private *port_priv, int id);
64
65 #include "glamor_utils.h"
66
67diff --git a/glamor/glamor_transfer.c b/glamor/glamor_transfer.c
68index ebb5101d1..421ed3a5f 100644
69--- a/glamor/glamor_transfer.c
70+++ b/glamor/glamor_transfer.c
71@@ -27,6 +27,7 @@
72 void
73 glamor_format_for_pixmap(PixmapPtr pixmap, GLenum *format, GLenum *type)
74 {
75+ glamor_pixmap_private *priv = glamor_get_pixmap_private(pixmap);
76 switch (pixmap->drawable.depth) {
77 case 24:
78 case 32:
79@@ -38,8 +39,13 @@ glamor_format_for_pixmap(PixmapPtr pixmap, GLenum *format, GLenum *type)
80 *type = GL_UNSIGNED_INT_2_10_10_10_REV;
81 break;
82 case 16:
83- *format = GL_RGB;
84- *type = GL_UNSIGNED_SHORT_5_6_5;
85+ if (priv->is_cbcr) {
86+ *format = priv->fbo->format;
87+ *type = GL_UNSIGNED_BYTE;
88+ } else {
89+ *format = GL_RGB;
90+ *type = GL_UNSIGNED_SHORT_5_6_5;
91+ }
92 break;
93 case 15:
94 *format = GL_BGRA;
95diff --git a/glamor/glamor_utils.h b/glamor/glamor_utils.h
96index 0d5674d63..1890c1fe5 100644
97--- a/glamor/glamor_utils.h
98+++ b/glamor/glamor_utils.h
99@@ -613,10 +613,14 @@ gl_iformat_for_pixmap(PixmapPtr pixmap)
100 {
101 glamor_screen_private *glamor_priv =
102 glamor_get_screen_private((pixmap)->drawable.pScreen);
103+ glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(pixmap);
104
105 if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
106 ((pixmap)->drawable.depth == 1 || (pixmap)->drawable.depth == 8)) {
107 return glamor_priv->one_channel_format;
108+ } else if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
109+ (pixmap)->drawable.depth == 16 && pixmap_priv->is_cbcr) {
110+ return GL_RG;
111 } else if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
112 (pixmap)->drawable.depth == 30) {
113 return GL_RGB10_A2;
114--
1152.17.1
116
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0003-glamor-add-support-for-NV12-in-Xv.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0003-glamor-add-support-for-NV12-in-Xv.patch
new file mode 100644
index 00000000..855d1938
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0003-glamor-add-support-for-NV12-in-Xv.patch
@@ -0,0 +1,322 @@
1From 17a3528162304f1586329aabd606d3498bfe48a5 Mon Sep 17 00:00:00 2001
2From: Julien Isorce <julien.isorce@gmail.com>
3Date: Tue, 11 Sep 2018 10:28:33 -0700
4Subject: [PATCH 3/8] glamor: add support for NV12 in Xv
5
6Useful when video decoders only output NV12. Currently
7glamor Xv only supports I420 and YV12.
8
9Note that Intel's sna supports I420, YV12, YUY2, UYVY, NV12.
10
11Test: xvinfo | grep NV12
12Test: gst-launch-1.0 videotestsrc ! video/x-raw, format=NV12 ! xvimagesink
13
14v2: Combine the two texture2Ds on u_sampler.
15
16Upstream-Status: Backport
17Signed-off-by: Julien Isorce <jisorce@oblong.com>
18Tested-by: Olivier Fourdan <ofourdan@redhat.com>
19Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
20---
21 glamor/glamor_xv.c | 180 ++++++++++++++++++++++++++++++++++++++-------
22 1 file changed, 155 insertions(+), 25 deletions(-)
23
24diff --git a/glamor/glamor_xv.c b/glamor/glamor_xv.c
25index 62fc4fff5..6fef6ed0d 100644
26--- a/glamor/glamor_xv.c
27+++ b/glamor/glamor_xv.c
28@@ -59,8 +59,40 @@ typedef struct tagREF_TRANSFORM {
29 #define RTFContrast(a) (1.0 + ((a)*1.0)/1000.0)
30 #define RTFHue(a) (((a)*3.1416)/1000.0)
31
32-static const glamor_facet glamor_facet_xv_planar = {
33- .name = "xv_planar",
34+static const glamor_facet glamor_facet_xv_planar_2 = {
35+ .name = "xv_planar_2",
36+
37+ .version = 120,
38+
39+ .source_name = "v_texcoord0",
40+ .vs_vars = ("attribute vec2 position;\n"
41+ "attribute vec2 v_texcoord0;\n"
42+ "varying vec2 tcs;\n"),
43+ .vs_exec = (GLAMOR_POS(gl_Position, position)
44+ " tcs = v_texcoord0;\n"),
45+
46+ .fs_vars = ("uniform sampler2D y_sampler;\n"
47+ "uniform sampler2D u_sampler;\n"
48+ "uniform vec4 offsetyco;\n"
49+ "uniform vec4 ucogamma;\n"
50+ "uniform vec4 vco;\n"
51+ "varying vec2 tcs;\n"),
52+ .fs_exec = (
53+ " float sample;\n"
54+ " vec2 sample_uv;\n"
55+ " vec4 temp1;\n"
56+ " sample = texture2D(y_sampler, tcs).w;\n"
57+ " temp1.xyz = offsetyco.www * vec3(sample) + offsetyco.xyz;\n"
58+ " sample_uv = texture2D(u_sampler, tcs).xy;\n"
59+ " temp1.xyz = ucogamma.xyz * vec3(sample_uv.x) + temp1.xyz;\n"
60+ " temp1.xyz = clamp(vco.xyz * vec3(sample_uv.y) + temp1.xyz, 0.0, 1.0);\n"
61+ " temp1.w = 1.0;\n"
62+ " gl_FragColor = temp1;\n"
63+ ),
64+};
65+
66+static const glamor_facet glamor_facet_xv_planar_3 = {
67+ .name = "xv_planar_3",
68
69 .version = 120,
70
71@@ -110,26 +142,50 @@ Atom glamorBrightness, glamorContrast, glamorSaturation, glamorHue,
72 XvImageRec glamor_xv_images[] = {
73 XVIMAGE_YV12,
74 XVIMAGE_I420,
75+ XVIMAGE_NV12
76 };
77 int glamor_xv_num_images = ARRAY_SIZE(glamor_xv_images);
78
79 static void
80-glamor_init_xv_shader(ScreenPtr screen)
81+glamor_init_xv_shader(ScreenPtr screen, int id)
82 {
83 glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
84 GLint sampler_loc;
85+ const glamor_facet *glamor_facet_xv_planar = NULL;
86+
87+ switch (id) {
88+ case FOURCC_YV12:
89+ case FOURCC_I420:
90+ glamor_facet_xv_planar = &glamor_facet_xv_planar_3;
91+ break;
92+ case FOURCC_NV12:
93+ glamor_facet_xv_planar = &glamor_facet_xv_planar_2;
94+ break;
95+ default:
96+ break;
97+ }
98
99 glamor_build_program(screen,
100 &glamor_priv->xv_prog,
101- &glamor_facet_xv_planar, NULL, NULL, NULL);
102+ glamor_facet_xv_planar, NULL, NULL, NULL);
103
104 glUseProgram(glamor_priv->xv_prog.prog);
105 sampler_loc = glGetUniformLocation(glamor_priv->xv_prog.prog, "y_sampler");
106 glUniform1i(sampler_loc, 0);
107 sampler_loc = glGetUniformLocation(glamor_priv->xv_prog.prog, "u_sampler");
108 glUniform1i(sampler_loc, 1);
109- sampler_loc = glGetUniformLocation(glamor_priv->xv_prog.prog, "v_sampler");
110- glUniform1i(sampler_loc, 2);
111+
112+ switch (id) {
113+ case FOURCC_YV12:
114+ case FOURCC_I420:
115+ sampler_loc = glGetUniformLocation(glamor_priv->xv_prog.prog, "v_sampler");
116+ glUniform1i(sampler_loc, 2);
117+ break;
118+ case FOURCC_NV12:
119+ break;
120+ default:
121+ break;
122+ }
123
124 }
125
126@@ -227,6 +283,21 @@ glamor_xv_query_image_attributes(int id,
127 offsets[2] = size;
128 size += tmp;
129 break;
130+ case FOURCC_NV12:
131+ *w = ALIGN(*w, 2);
132+ *h = ALIGN(*h, 2);
133+ size = ALIGN(*w, 4);
134+ if (pitches)
135+ pitches[0] = size;
136+ size *= *h;
137+ if (offsets)
138+ offsets[1] = offsets[2] = size;
139+ tmp = ALIGN(*w, 4);
140+ if (pitches)
141+ pitches[1] = pitches[2] = tmp;
142+ tmp *= (*h >> 1);
143+ size += tmp;
144+ break;
145 }
146 return size;
147 }
148@@ -240,7 +311,7 @@ static REF_TRANSFORM trans[2] = {
149 };
150
151 void
152-glamor_xv_render(glamor_port_private *port_priv)
153+glamor_xv_render(glamor_port_private *port_priv, int id)
154 {
155 ScreenPtr screen = port_priv->pPixmap->drawable.pScreen;
156 glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
157@@ -264,7 +335,7 @@ glamor_xv_render(glamor_port_private *port_priv)
158 int dst_box_index;
159
160 if (!glamor_priv->xv_prog.prog)
161- glamor_init_xv_shader(screen);
162+ glamor_init_xv_shader(screen, id);
163
164 cont = RTFContrast(port_priv->contrast);
165 bright = RTFBrightness(port_priv->brightness);
166@@ -293,6 +364,8 @@ glamor_xv_render(glamor_port_private *port_priv)
167 glamor_get_pixmap_private(port_priv->src_pix[i]);
168 pixmap_priv_get_scale(src_pixmap_priv[i], &src_xscale[i],
169 &src_yscale[i]);
170+ } else {
171+ src_pixmap_priv[i] = NULL;
172 }
173 }
174 glamor_make_current(glamor_priv);
175@@ -319,12 +392,21 @@ glamor_xv_render(glamor_port_private *port_priv)
176 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
177 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
178
179- glActiveTexture(GL_TEXTURE2);
180- glBindTexture(GL_TEXTURE_2D, src_pixmap_priv[2]->fbo->tex);
181- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
182- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
183- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
184- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
185+ switch (id) {
186+ case FOURCC_YV12:
187+ case FOURCC_I420:
188+ glActiveTexture(GL_TEXTURE2);
189+ glBindTexture(GL_TEXTURE_2D, src_pixmap_priv[2]->fbo->tex);
190+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
191+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
192+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
193+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
194+ break;
195+ case FOURCC_NV12:
196+ break;
197+ default:
198+ break;
199+ }
200
201 glEnableVertexAttribArray(GLAMOR_VERTEX_POS);
202 glEnableVertexAttribArray(GLAMOR_VERTEX_SOURCE);
203@@ -336,7 +418,7 @@ glamor_xv_render(glamor_port_private *port_priv)
204 /* Set up a single primitive covering the area being drawn. We'll
205 * clip it to port_priv->clip using GL scissors instead of just
206 * emitting a GL_QUAD per box, because this way we hopefully avoid
207- * diagonal tearing between the two trangles used to rasterize a
208+ * diagonal tearing between the two triangles used to rasterize a
209 * GL_QUAD.
210 */
211 i = 0;
212@@ -417,6 +499,7 @@ glamor_xv_put_image(glamor_port_private *port_priv,
213 RegionPtr clipBoxes)
214 {
215 ScreenPtr pScreen = pDrawable->pScreen;
216+ glamor_screen_private *glamor_priv = glamor_get_screen_private(pScreen);
217 int srcPitch, srcPitch2;
218 int top, nlines;
219 int s2offset, s3offset, tmp;
220@@ -425,9 +508,16 @@ glamor_xv_put_image(glamor_port_private *port_priv,
221 s2offset = s3offset = srcPitch2 = 0;
222
223 if (!port_priv->src_pix[0] ||
224- (width != port_priv->src_pix_w || height != port_priv->src_pix_h)) {
225+ (width != port_priv->src_pix_w || height != port_priv->src_pix_h) ||
226+ (port_priv->src_pix[2] && id == FOURCC_NV12) ||
227+ (!port_priv->src_pix[2] && id != FOURCC_NV12)) {
228 int i;
229
230+ if (glamor_priv->xv_prog.prog) {
231+ glDeleteProgram(glamor_priv->xv_prog.prog);
232+ glamor_priv->xv_prog.prog = 0;
233+ }
234+
235 for (i = 0; i < 3; i++)
236 if (port_priv->src_pix[i])
237 glamor_destroy_pixmap(port_priv->src_pix[i]);
238@@ -435,17 +525,34 @@ glamor_xv_put_image(glamor_port_private *port_priv,
239 port_priv->src_pix[0] =
240 glamor_create_pixmap(pScreen, width, height, 8,
241 GLAMOR_CREATE_FBO_NO_FBO);
242- port_priv->src_pix[1] =
243- glamor_create_pixmap(pScreen, width >> 1, height >> 1, 8,
244- GLAMOR_CREATE_FBO_NO_FBO);
245- port_priv->src_pix[2] =
246- glamor_create_pixmap(pScreen, width >> 1, height >> 1, 8,
247- GLAMOR_CREATE_FBO_NO_FBO);
248+
249+ switch (id) {
250+ case FOURCC_YV12:
251+ case FOURCC_I420:
252+ port_priv->src_pix[1] =
253+ glamor_create_pixmap(pScreen, width >> 1, height >> 1, 8,
254+ GLAMOR_CREATE_FBO_NO_FBO);
255+ port_priv->src_pix[2] =
256+ glamor_create_pixmap(pScreen, width >> 1, height >> 1, 8,
257+ GLAMOR_CREATE_FBO_NO_FBO);
258+ if (!port_priv->src_pix[2])
259+ return BadAlloc;
260+ break;
261+ case FOURCC_NV12:
262+ port_priv->src_pix[1] =
263+ glamor_create_pixmap(pScreen, width >> 1, height >> 1, 16,
264+ GLAMOR_CREATE_FBO_NO_FBO |
265+ GLAMOR_CREATE_FORMAT_CBCR);
266+ port_priv->src_pix[2] = NULL;
267+ break;
268+ default:
269+ return BadMatch;
270+ }
271+
272 port_priv->src_pix_w = width;
273 port_priv->src_pix_h = height;
274
275- if (!port_priv->src_pix[0] || !port_priv->src_pix[1] ||
276- !port_priv->src_pix[2])
277+ if (!port_priv->src_pix[0] || !port_priv->src_pix[1])
278 return BadAlloc;
279 }
280
281@@ -489,6 +596,29 @@ glamor_xv_put_image(glamor_port_private *port_priv,
282 0, 0, 0, 0,
283 buf + s3offset, srcPitch2);
284 break;
285+ case FOURCC_NV12:
286+ srcPitch = ALIGN(width, 4);
287+ s2offset = srcPitch * height;
288+ s2offset += ((top >> 1) * srcPitch);
289+
290+ full_box.x1 = 0;
291+ full_box.y1 = 0;
292+ full_box.x2 = width;
293+ full_box.y2 = nlines;
294+
295+ half_box.x1 = 0;
296+ half_box.y1 = 0;
297+ half_box.x2 = width;
298+ half_box.y2 = (nlines + 1) >> 1;
299+
300+ glamor_upload_boxes(port_priv->src_pix[0], &full_box, 1,
301+ 0, 0, 0, 0,
302+ buf + (top * srcPitch), srcPitch);
303+
304+ glamor_upload_boxes(port_priv->src_pix[1], &half_box, 1,
305+ 0, 0, 0, 0,
306+ buf + s2offset, srcPitch);
307+ break;
308 default:
309 return BadMatch;
310 }
311@@ -511,7 +641,7 @@ glamor_xv_put_image(glamor_port_private *port_priv,
312 port_priv->w = width;
313 port_priv->h = height;
314 port_priv->pDraw = pDrawable;
315- glamor_xv_render(port_priv);
316+ glamor_xv_render(port_priv, id);
317 return Success;
318 }
319
320--
3212.17.1
322
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0004-glamor-Remove-unused-format_for_pixmap-helper.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0004-glamor-Remove-unused-format_for_pixmap-helper.patch
new file mode 100644
index 00000000..c116576f
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0004-glamor-Remove-unused-format_for_pixmap-helper.patch
@@ -0,0 +1,31 @@
1From 69892ca6a623057ed4e3be0c22cb7fd812425024 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com>
3Date: Wed, 19 Dec 2018 10:11:22 +0100
4Subject: [PATCH 4/8] glamor: Remove unused format_for_pixmap helper
5
6Upstream-Status: Backport
7Reviewed-by: Eric Anholt <eric@anholt.net>
8---
9 glamor/glamor_utils.h | 6 ------
10 1 file changed, 6 deletions(-)
11
12diff --git a/glamor/glamor_utils.h b/glamor/glamor_utils.h
13index 1890c1fe5..8a147ca7e 100644
14--- a/glamor/glamor_utils.h
15+++ b/glamor/glamor_utils.h
16@@ -629,12 +629,6 @@ gl_iformat_for_pixmap(PixmapPtr pixmap)
17 }
18 }
19
20-static inline CARD32
21-format_for_pixmap(PixmapPtr pixmap)
22-{
23- return format_for_depth((pixmap)->drawable.depth);
24-}
25-
26 #define REVERT_NONE 0
27 #define REVERT_NORMAL 1
28 #define REVERT_UPLOADING_A1 3
29--
302.17.1
31
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0005-glamor-Stop-trying-to-store-the-pixmap-s-format-in-g.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0005-glamor-Stop-trying-to-store-the-pixmap-s-format-in-g.patch
new file mode 100644
index 00000000..9a0aa7ab
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0005-glamor-Stop-trying-to-store-the-pixmap-s-format-in-g.patch
@@ -0,0 +1,132 @@
1From 2498f6712c3b551c4d8104628aff78246b5cd6c8 Mon Sep 17 00:00:00 2001
2From: Eric Anholt <eric@anholt.net>
3Date: Tue, 26 Mar 2019 15:58:59 -0700
4Subject: [PATCH 5/8] glamor: Stop trying to store the pixmap's "format" in
5 glamor_pixmap_fbo.
6
7"format" is a bit of a confused term (internalformat vs GL format),
8and all we really needed was "is this GL_RED?"
9
10Upstream-Status: Backport
11Signed-off-by: Eric Anholt <eric@anholt.net>
12---
13 glamor/glamor.c | 3 +--
14 glamor/glamor_fbo.c | 7 ++++---
15 glamor/glamor_priv.h | 13 ++-----------
16 glamor/glamor_render.c | 2 +-
17 glamor/glamor_transfer.c | 2 +-
18 5 files changed, 9 insertions(+), 18 deletions(-)
19
20diff --git a/glamor/glamor.c b/glamor/glamor.c
21index 3e9cf284c..c36b6ea74 100644
22--- a/glamor/glamor.c
23+++ b/glamor/glamor.c
24@@ -184,8 +184,7 @@ glamor_bind_texture(glamor_screen_private *glamor_priv, GLenum texture,
25 /* Is the operand a GL_RED fbo?
26 */
27
28- if (glamor_fbo_red_is_alpha(glamor_priv, fbo)) {
29-
30+ if (fbo->is_red) {
31 /* If destination is also GL_RED, then preserve the bits in
32 * the R channel */
33
34diff --git a/glamor/glamor_fbo.c b/glamor/glamor_fbo.c
35index f939a6c2f..58eb97bf4 100644
36--- a/glamor/glamor_fbo.c
37+++ b/glamor/glamor_fbo.c
38@@ -95,7 +95,7 @@ glamor_pixmap_ensure_fb(glamor_screen_private *glamor_priv,
39
40 glamor_pixmap_fbo *
41 glamor_create_fbo_from_tex(glamor_screen_private *glamor_priv,
42- int w, int h, GLenum format, GLint tex, int flag)
43+ int w, int h, Bool is_red, GLint tex, int flag)
44 {
45 glamor_pixmap_fbo *fbo;
46
47@@ -106,7 +106,7 @@ glamor_create_fbo_from_tex(glamor_screen_private *glamor_priv,
48 fbo->tex = tex;
49 fbo->width = w;
50 fbo->height = h;
51- fbo->format = format;
52+ fbo->is_red = is_red;
53
54 if (flag != GLAMOR_CREATE_FBO_NO_FBO) {
55 if (glamor_pixmap_ensure_fb(glamor_priv, fbo) != 0) {
56@@ -163,7 +163,8 @@ glamor_create_fbo(glamor_screen_private *glamor_priv,
57 if (!tex) /* Texture creation failed due to GL_OUT_OF_MEMORY */
58 return NULL;
59
60- return glamor_create_fbo_from_tex(glamor_priv, w, h, format, tex, flag);
61+ return glamor_create_fbo_from_tex(glamor_priv, w, h, format == GL_RED,
62+ tex, flag);
63 }
64
65 /**
66diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h
67index a14aaf624..e70d349da 100644
68--- a/glamor/glamor_priv.h
69+++ b/glamor/glamor_priv.h
70@@ -317,8 +317,7 @@ typedef struct glamor_pixmap_fbo {
71 GLuint fb; /**< GL FBO name */
72 int width; /**< width in pixels */
73 int height; /**< height in pixels */
74- GLenum format; /**< GL format used to create the texture. */
75- GLenum type; /**< GL type used to create the texture. */
76+ Bool is_red;
77 } glamor_pixmap_fbo;
78
79 typedef struct glamor_pixmap_clipped_regions {
80@@ -533,7 +532,7 @@ glamor_pixmap_fbo *glamor_pixmap_detach_fbo(glamor_pixmap_private *
81 void glamor_pixmap_attach_fbo(PixmapPtr pixmap, glamor_pixmap_fbo *fbo);
82 glamor_pixmap_fbo *glamor_create_fbo_from_tex(glamor_screen_private *
83 glamor_priv, int w, int h,
84- GLenum format, GLint tex,
85+ Bool is_red, GLint tex,
86 int flag);
87 glamor_pixmap_fbo *glamor_create_fbo(glamor_screen_private *glamor_priv, int w,
88 int h, GLenum format, int flag);
89@@ -549,14 +548,6 @@ static inline Bool glamor_picture_is_alpha(PicturePtr picture)
90 return picture->format == PICT_a1 || picture->format == PICT_a8;
91 }
92
93-/* Return whether 'fbo' is storing alpha bits in the red channel */
94-static inline Bool
95-glamor_fbo_red_is_alpha(glamor_screen_private *glamor_priv, glamor_pixmap_fbo *fbo)
96-{
97- /* True when the format is GL_RED (that can only happen when our one channel format is GL_RED */
98- return fbo->format == GL_RED;
99-}
100-
101 /* Return whether 'picture' is storing alpha bits in the red channel */
102 static inline Bool
103 glamor_picture_red_is_alpha(PicturePtr picture)
104diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c
105index d5737018f..6db6bfbc3 100644
106--- a/glamor/glamor_render.c
107+++ b/glamor/glamor_render.c
108@@ -529,7 +529,7 @@ glamor_set_composite_texture(glamor_screen_private *glamor_priv, int unit,
109 * sometimes get zero bits in the R channel, which is harmless.
110 */
111 glamor_bind_texture(glamor_priv, GL_TEXTURE0 + unit, fbo,
112- glamor_fbo_red_is_alpha(glamor_priv, dest_priv->fbo));
113+ dest_priv->fbo->is_red);
114 repeat_type = picture->repeatType;
115 switch (picture->repeatType) {
116 case RepeatNone:
117diff --git a/glamor/glamor_transfer.c b/glamor/glamor_transfer.c
118index 421ed3a5f..215752d7b 100644
119--- a/glamor/glamor_transfer.c
120+++ b/glamor/glamor_transfer.c
121@@ -40,7 +40,7 @@ glamor_format_for_pixmap(PixmapPtr pixmap, GLenum *format, GLenum *type)
122 break;
123 case 16:
124 if (priv->is_cbcr) {
125- *format = priv->fbo->format;
126+ *format = GL_RG;
127 *type = GL_UNSIGNED_BYTE;
128 } else {
129 *format = GL_RGB;
130--
1312.17.1
132
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0006-glamor-Plumb-the-pixmap-through-fbo-creation-instead.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0006-glamor-Plumb-the-pixmap-through-fbo-creation-instead.patch
new file mode 100644
index 00000000..66d2877c
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0006-glamor-Plumb-the-pixmap-through-fbo-creation-instead.patch
@@ -0,0 +1,265 @@
1From 3c14a16e1b4277aa00a2b23d5758d99dc20ca819 Mon Sep 17 00:00:00 2001
2From: Eric Anholt <eric@anholt.net>
3Date: Tue, 26 Mar 2019 16:57:24 -0700
4Subject: [PATCH 6/8] glamor: Plumb the pixmap through fbo creation instead of
5 a "format"
6
7For GLES, we're going to need a lot more logic for picking the
8iformat/format/type of texture setup, so we'll want the pixmap's depth
9and is_cbcr flag.
10
11Upstream-Status: Backport
12Signed-off-by: Eric Anholt <eric@anholt.net>
13---
14 glamor/glamor.c | 20 +++++++-------------
15 glamor/glamor_fbo.c | 33 +++++++++++++++++++--------------
16 glamor/glamor_picture.c | 2 +-
17 glamor/glamor_priv.h | 12 ++++++------
18 4 files changed, 33 insertions(+), 34 deletions(-)
19
20diff --git a/glamor/glamor.c b/glamor/glamor.c
21index c36b6ea74..f618c2128 100644
22--- a/glamor/glamor.c
23+++ b/glamor/glamor.c
24@@ -106,7 +106,6 @@ glamor_set_pixmap_texture(PixmapPtr pixmap, unsigned int tex)
25 glamor_pixmap_private *pixmap_priv;
26 glamor_screen_private *glamor_priv;
27 glamor_pixmap_fbo *fbo;
28- GLenum format;
29
30 glamor_priv = glamor_get_screen_private(screen);
31 pixmap_priv = glamor_get_pixmap_private(pixmap);
32@@ -116,9 +115,9 @@ glamor_set_pixmap_texture(PixmapPtr pixmap, unsigned int tex)
33 glamor_destroy_fbo(glamor_priv, fbo);
34 }
35
36- format = gl_iformat_for_pixmap(pixmap);
37- fbo = glamor_create_fbo_from_tex(glamor_priv, pixmap->drawable.width,
38- pixmap->drawable.height, format, tex, 0);
39+ fbo = glamor_create_fbo_from_tex(glamor_priv, pixmap,
40+ pixmap->drawable.width,
41+ pixmap->drawable.height, tex, 0);
42
43 if (fbo == NULL) {
44 ErrorF("XXX fail to create fbo.\n");
45@@ -204,7 +203,6 @@ glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
46 glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
47 glamor_pixmap_fbo *fbo = NULL;
48 int pitch;
49- GLenum format;
50
51 if (w > 32767 || h > 32767)
52 return NullPixmap;
53@@ -223,8 +221,6 @@ glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
54
55 pixmap_priv->is_cbcr = (usage == GLAMOR_CREATE_FORMAT_CBCR);
56
57- format = gl_iformat_for_pixmap(pixmap);
58-
59 pitch = (((w * pixmap->drawable.bitsPerPixel + 7) / 8) + 3) & ~3;
60 screen->ModifyPixmapHeader(pixmap, w, h, 0, 0, pitch, NULL);
61
62@@ -238,12 +234,12 @@ glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
63 glamor_check_fbo_size(glamor_priv, w, h))
64 {
65 glamor_init_pixmap_private_small(pixmap, pixmap_priv);
66- fbo = glamor_create_fbo(glamor_priv, w, h, format, usage);
67+ fbo = glamor_create_fbo(glamor_priv, pixmap, w, h, usage);
68 } else {
69 int tile_size = glamor_priv->max_fbo_size;
70 DEBUGF("Create LARGE pixmap %p width %d height %d, tile size %d\n",
71 pixmap, w, h, tile_size);
72- fbo = glamor_create_fbo_array(glamor_priv, w, h, format, usage,
73+ fbo = glamor_create_fbo_array(glamor_priv, pixmap, usage,
74 tile_size, tile_size, pixmap_priv);
75 }
76
77@@ -860,8 +856,7 @@ _glamor_fds_from_pixmap(ScreenPtr screen, PixmapPtr pixmap, int *fds,
78 switch (pixmap_priv->type) {
79 case GLAMOR_TEXTURE_DRM:
80 case GLAMOR_TEXTURE_ONLY:
81- if (!glamor_pixmap_ensure_fbo(pixmap, pixmap->drawable.depth == 30 ?
82- GL_RGB10_A2 : GL_RGBA, 0))
83+ if (!glamor_pixmap_ensure_fbo(pixmap, 0))
84 return 0;
85
86 if (modifier) {
87@@ -937,8 +932,7 @@ glamor_name_from_pixmap(PixmapPtr pixmap, CARD16 *stride, CARD32 *size)
88 switch (pixmap_priv->type) {
89 case GLAMOR_TEXTURE_DRM:
90 case GLAMOR_TEXTURE_ONLY:
91- if (!glamor_pixmap_ensure_fbo(pixmap, pixmap->drawable.depth == 30 ?
92- GL_RGB10_A2 : GL_RGBA, 0))
93+ if (!glamor_pixmap_ensure_fbo(pixmap, 0))
94 return -1;
95 return glamor_egl_fd_name_from_pixmap(pixmap->drawable.pScreen,
96 pixmap, stride, size);
97diff --git a/glamor/glamor_fbo.c b/glamor/glamor_fbo.c
98index 58eb97bf4..75f7e2baa 100644
99--- a/glamor/glamor_fbo.c
100+++ b/glamor/glamor_fbo.c
101@@ -95,8 +95,9 @@ glamor_pixmap_ensure_fb(glamor_screen_private *glamor_priv,
102
103 glamor_pixmap_fbo *
104 glamor_create_fbo_from_tex(glamor_screen_private *glamor_priv,
105- int w, int h, Bool is_red, GLint tex, int flag)
106+ PixmapPtr pixmap, int w, int h, GLint tex, int flag)
107 {
108+ GLenum format = gl_iformat_for_pixmap(pixmap);
109 glamor_pixmap_fbo *fbo;
110
111 fbo = calloc(1, sizeof(*fbo));
112@@ -106,7 +107,7 @@ glamor_create_fbo_from_tex(glamor_screen_private *glamor_priv,
113 fbo->tex = tex;
114 fbo->width = w;
115 fbo->height = h;
116- fbo->is_red = is_red;
117+ fbo->is_red = format == GL_RED;
118
119 if (flag != GLAMOR_CREATE_FBO_NO_FBO) {
120 if (glamor_pixmap_ensure_fb(glamor_priv, fbo) != 0) {
121@@ -120,13 +121,15 @@ glamor_create_fbo_from_tex(glamor_screen_private *glamor_priv,
122
123 static int
124 _glamor_create_tex(glamor_screen_private *glamor_priv,
125- int w, int h, GLenum format)
126+ PixmapPtr pixmap, int w, int h)
127 {
128+ GLenum iformat = gl_iformat_for_pixmap(pixmap);
129+ GLenum format = iformat;
130 unsigned int tex;
131- GLenum iformat = format;
132
133 if (format == GL_RGB10_A2)
134 format = GL_RGBA;
135+
136 glamor_make_current(glamor_priv);
137 glGenTextures(1, &tex);
138 glBindTexture(GL_TEXTURE_2D, tex);
139@@ -156,14 +159,14 @@ _glamor_create_tex(glamor_screen_private *glamor_priv,
140
141 glamor_pixmap_fbo *
142 glamor_create_fbo(glamor_screen_private *glamor_priv,
143- int w, int h, GLenum format, int flag)
144+ PixmapPtr pixmap, int w, int h, int flag)
145 {
146- GLint tex = _glamor_create_tex(glamor_priv, w, h, format);
147+ GLint tex = _glamor_create_tex(glamor_priv, pixmap, w, h);
148
149 if (!tex) /* Texture creation failed due to GL_OUT_OF_MEMORY */
150 return NULL;
151
152- return glamor_create_fbo_from_tex(glamor_priv, w, h, format == GL_RED,
153+ return glamor_create_fbo_from_tex(glamor_priv, pixmap, w, h,
154 tex, flag);
155 }
156
157@@ -173,10 +176,12 @@ glamor_create_fbo(glamor_screen_private *glamor_priv,
158 */
159 glamor_pixmap_fbo *
160 glamor_create_fbo_array(glamor_screen_private *glamor_priv,
161- int w, int h, GLenum format, int flag,
162+ PixmapPtr pixmap, int flag,
163 int block_w, int block_h,
164 glamor_pixmap_private *priv)
165 {
166+ int w = pixmap->drawable.width;
167+ int h = pixmap->drawable.height;
168 int block_wcnt;
169 int block_hcnt;
170 glamor_pixmap_fbo **fbo_array;
171@@ -216,8 +221,8 @@ glamor_create_fbo_array(glamor_screen_private *glamor_priv,
172 box_array[i * block_wcnt + j].x2 - box_array[i * block_wcnt +
173 j].x1;
174 fbo_array[i * block_wcnt + j] = glamor_create_fbo(glamor_priv,
175+ pixmap,
176 fbo_w, fbo_h,
177- format,
178 GLAMOR_CREATE_PIXMAP_FIXUP);
179 if (fbo_array[i * block_wcnt + j] == NULL)
180 goto cleanup;
181@@ -315,7 +320,7 @@ glamor_pixmap_destroy_fbo(PixmapPtr pixmap)
182 }
183
184 Bool
185-glamor_pixmap_ensure_fbo(PixmapPtr pixmap, GLenum format, int flag)
186+glamor_pixmap_ensure_fbo(PixmapPtr pixmap, int flag)
187 {
188 glamor_screen_private *glamor_priv;
189 glamor_pixmap_private *pixmap_priv;
190@@ -325,8 +330,8 @@ glamor_pixmap_ensure_fbo(PixmapPtr pixmap, GLenum format, int flag)
191 pixmap_priv = glamor_get_pixmap_private(pixmap);
192 if (pixmap_priv->fbo == NULL) {
193
194- fbo = glamor_create_fbo(glamor_priv, pixmap->drawable.width,
195- pixmap->drawable.height, format, flag);
196+ fbo = glamor_create_fbo(glamor_priv, pixmap, pixmap->drawable.width,
197+ pixmap->drawable.height, flag);
198 if (fbo == NULL)
199 return FALSE;
200
201@@ -336,8 +341,8 @@ glamor_pixmap_ensure_fbo(PixmapPtr pixmap, GLenum format, int flag)
202 /* We do have a fbo, but it may lack of fb or tex. */
203 if (!pixmap_priv->fbo->tex)
204 pixmap_priv->fbo->tex =
205- _glamor_create_tex(glamor_priv, pixmap->drawable.width,
206- pixmap->drawable.height, format);
207+ _glamor_create_tex(glamor_priv, pixmap, pixmap->drawable.width,
208+ pixmap->drawable.height);
209
210 if (flag != GLAMOR_CREATE_FBO_NO_FBO && pixmap_priv->fbo->fb == 0)
211 if (glamor_pixmap_ensure_fb(glamor_priv, pixmap_priv->fbo) != 0)
212diff --git a/glamor/glamor_picture.c b/glamor/glamor_picture.c
213index 685d8d618..e6d387d42 100644
214--- a/glamor/glamor_picture.c
215+++ b/glamor/glamor_picture.c
216@@ -340,7 +340,7 @@ glamor_upload_picture_to_texture(PicturePtr picture)
217 else
218 iformat = format;
219
220- if (!glamor_pixmap_ensure_fbo(pixmap, iformat, GLAMOR_CREATE_FBO_NO_FBO)) {
221+ if (!glamor_pixmap_ensure_fbo(pixmap, GLAMOR_CREATE_FBO_NO_FBO)) {
222 ret = FALSE;
223 goto fail;
224 }
225diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h
226index e70d349da..a87caec9b 100644
227--- a/glamor/glamor_priv.h
228+++ b/glamor/glamor_priv.h
229@@ -531,11 +531,11 @@ glamor_pixmap_fbo *glamor_pixmap_detach_fbo(glamor_pixmap_private *
230 pixmap_priv);
231 void glamor_pixmap_attach_fbo(PixmapPtr pixmap, glamor_pixmap_fbo *fbo);
232 glamor_pixmap_fbo *glamor_create_fbo_from_tex(glamor_screen_private *
233- glamor_priv, int w, int h,
234- Bool is_red, GLint tex,
235+ glamor_priv, PixmapPtr pixmap,
236+ int w, int h, GLint tex,
237 int flag);
238-glamor_pixmap_fbo *glamor_create_fbo(glamor_screen_private *glamor_priv, int w,
239- int h, GLenum format, int flag);
240+glamor_pixmap_fbo *glamor_create_fbo(glamor_screen_private *glamor_priv,
241+ PixmapPtr pixmap, int w, int h, int flag);
242 void glamor_destroy_fbo(glamor_screen_private *glamor_priv,
243 glamor_pixmap_fbo *fbo);
244 void glamor_pixmap_destroy_fbo(PixmapPtr pixmap);
245@@ -563,7 +563,7 @@ void glamor_bind_texture(glamor_screen_private *glamor_priv,
246 Bool destination_red);
247
248 glamor_pixmap_fbo *glamor_create_fbo_array(glamor_screen_private *glamor_priv,
249- int w, int h, GLenum format,
250+ PixmapPtr pixmap,
251 int flag, int block_w, int block_h,
252 glamor_pixmap_private *);
253
254@@ -673,7 +673,7 @@ glamor_put_vbo_space(ScreenPtr screen);
255 * the fbo has valid texture and attach to a valid fb.
256 * If the fbo already has a valid glfbo then do nothing.
257 */
258-Bool glamor_pixmap_ensure_fbo(PixmapPtr pixmap, GLenum format, int flag);
259+Bool glamor_pixmap_ensure_fbo(PixmapPtr pixmap, int flag);
260
261 glamor_pixmap_clipped_regions *
262 glamor_compute_clipped_regions(PixmapPtr pixmap,
263--
2642.17.1
265
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch
new file mode 100644
index 00000000..f2947f32
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch
@@ -0,0 +1,287 @@
1From 3a03576d672d24f19fdb930b08afde9a3a3f55da Mon Sep 17 00:00:00 2001
2From: Eric Anholt <eric@anholt.net>
3Date: Tue, 26 Mar 2019 15:02:38 -0700
4Subject: [PATCH 7/8] glamor: Switch the gl_flavor to a boolean is_gles.
5
6There are only 2 flavors we are distinguishing -- GL versions are
7handled separately.
8
9Upstream-Status: Backport
10Signed-off-by: Eric Anholt <eric@anholt.net>
11---
12 glamor/glamor.c | 20 +++++++++-----------
13 glamor/glamor_picture.c | 22 +++++++++++-----------
14 glamor/glamor_pixmap.c | 2 +-
15 glamor/glamor_priv.h | 7 +------
16 glamor/glamor_program.c | 2 +-
17 glamor/glamor_render.c | 2 +-
18 glamor/glamor_utils.h | 6 +++---
19 7 files changed, 27 insertions(+), 34 deletions(-)
20
21diff --git a/glamor/glamor.c b/glamor/glamor.c
22index f618c2128..019edbbb1 100644
23--- a/glamor/glamor.c
24+++ b/glamor/glamor.c
25@@ -505,10 +505,8 @@ glamor_init(ScreenPtr screen, unsigned int flags)
26
27 glamor_make_current(glamor_priv);
28
29- if (epoxy_is_desktop_gl())
30- glamor_priv->gl_flavor = GLAMOR_GL_DESKTOP;
31- else
32- glamor_priv->gl_flavor = GLAMOR_GL_ES2;
33+ if (!epoxy_is_desktop_gl())
34+ glamor_priv->is_gles = TRUE;
35
36 gl_version = epoxy_gl_version();
37
38@@ -540,7 +538,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
39 }
40 glamor_priv->glsl_version = glsl_major * 100 + glsl_minor;
41
42- if (glamor_priv->gl_flavor == GLAMOR_GL_ES2) {
43+ if (glamor_priv->is_gles) {
44 /* Force us back to the base version of our programs on an ES
45 * context, anyway. Basically glamor only uses desktop 1.20
46 * or 1.30 currently. 1.30's new features are also present in
47@@ -564,7 +562,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
48 * have support for it, with most of the ones lacking it being on
49 * Windows with Intel 4-series (G45) graphics or older.
50 */
51- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
52+ if (!glamor_priv->is_gles) {
53 if (gl_version < 21) {
54 ErrorF("Require OpenGL version 2.1 or later.\n");
55 goto fail;
56@@ -610,7 +608,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
57 }
58
59 glamor_priv->has_rw_pbo = FALSE;
60- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP)
61+ if (!glamor_priv->is_gles)
62 glamor_priv->has_rw_pbo = TRUE;
63
64 glamor_priv->has_khr_debug = epoxy_has_gl_extension("GL_KHR_debug");
65@@ -628,11 +626,11 @@ glamor_init(ScreenPtr screen, unsigned int flags)
66 glamor_priv->has_nv_texture_barrier =
67 epoxy_has_gl_extension("GL_NV_texture_barrier");
68 glamor_priv->has_unpack_subimage =
69- glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP ||
70+ !glamor_priv->is_gles ||
71 epoxy_gl_version() >= 30 ||
72 epoxy_has_gl_extension("GL_EXT_unpack_subimage");
73 glamor_priv->has_pack_subimage =
74- glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP ||
75+ !glamor_priv->is_gles ||
76 epoxy_gl_version() >= 30 ||
77 epoxy_has_gl_extension("GL_NV_pack_subimage");
78 glamor_priv->has_dual_blend =
79@@ -643,7 +641,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
80
81 glamor_setup_debug_output(screen);
82
83- glamor_priv->use_quads = (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) &&
84+ glamor_priv->use_quads = !glamor_priv->is_gles &&
85 !glamor_priv->is_core_profile;
86
87 /* Driver-specific hack: Avoid using GL_QUADS on VC4, where
88@@ -665,7 +663,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
89
90 glamor_priv->has_texture_swizzle =
91 (epoxy_has_gl_extension("GL_ARB_texture_swizzle") ||
92- (glamor_priv->gl_flavor != GLAMOR_GL_DESKTOP && gl_version >= 30));
93+ (glamor_priv->is_gles && gl_version >= 30));
94
95 glamor_priv->one_channel_format = GL_ALPHA;
96 if (epoxy_has_gl_extension("GL_ARB_texture_rg") &&
97diff --git a/glamor/glamor_picture.c b/glamor/glamor_picture.c
98index e6d387d42..ed2decc83 100644
99--- a/glamor/glamor_picture.c
100+++ b/glamor/glamor_picture.c
101@@ -90,7 +90,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
102
103 case PICT_b8g8r8x8:
104 case PICT_b8g8r8a8:
105- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
106+ if (!glamor_priv->is_gles) {
107 *tex_format = GL_BGRA;
108 *tex_type = GL_UNSIGNED_INT_8_8_8_8;
109 } else {
110@@ -109,7 +109,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
111
112 case PICT_x8r8g8b8:
113 case PICT_a8r8g8b8:
114- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
115+ if (!glamor_priv->is_gles) {
116 *tex_format = GL_BGRA;
117 *tex_type = GL_UNSIGNED_INT_8_8_8_8_REV;
118 } else {
119@@ -128,7 +128,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
120 case PICT_x8b8g8r8:
121 case PICT_a8b8g8r8:
122 *tex_format = GL_RGBA;
123- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
124+ if (!glamor_priv->is_gles) {
125 *tex_type = GL_UNSIGNED_INT_8_8_8_8_REV;
126 } else {
127 *tex_format = GL_RGBA;
128@@ -141,7 +141,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
129
130 case PICT_x2r10g10b10:
131 case PICT_a2r10g10b10:
132- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
133+ if (!glamor_priv->is_gles) {
134 *tex_format = GL_BGRA;
135 *tex_type = GL_UNSIGNED_INT_2_10_10_10_REV;
136 } else {
137@@ -151,7 +151,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
138
139 case PICT_x2b10g10r10:
140 case PICT_a2b10g10r10:
141- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
142+ if (!glamor_priv->is_gles) {
143 *tex_format = GL_RGBA;
144 *tex_type = GL_UNSIGNED_INT_2_10_10_10_REV;
145 } else {
146@@ -165,7 +165,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
147 break;
148 case PICT_b5g6r5:
149 *tex_format = GL_RGB;
150- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
151+ if (!glamor_priv->is_gles) {
152 *tex_type = GL_UNSIGNED_SHORT_5_6_5_REV;
153 } else {
154 *tex_type = GL_UNSIGNED_SHORT_5_6_5;
155@@ -177,7 +177,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
156 case PICT_x1b5g5r5:
157 case PICT_a1b5g5r5:
158 *tex_format = GL_RGBA;
159- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
160+ if (!glamor_priv->is_gles) {
161 *tex_type = GL_UNSIGNED_SHORT_1_5_5_5_REV;
162 } else {
163 return FALSE;
164@@ -186,7 +186,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
165
166 case PICT_x1r5g5b5:
167 case PICT_a1r5g5b5:
168- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
169+ if (!glamor_priv->is_gles) {
170 *tex_format = GL_BGRA;
171 *tex_type = GL_UNSIGNED_SHORT_1_5_5_5_REV;
172 } else {
173@@ -201,7 +201,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
174
175 case PICT_x4r4g4b4:
176 case PICT_a4r4g4b4:
177- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
178+ if (!glamor_priv->is_gles) {
179 *tex_format = GL_BGRA;
180 *tex_type = GL_UNSIGNED_SHORT_4_4_4_4_REV;
181 } else {
182@@ -213,7 +213,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
183
184 case PICT_x4b4g4r4:
185 case PICT_a4b4g4r4:
186- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP) {
187+ if (!glamor_priv->is_gles) {
188 *tex_format = GL_RGBA;
189 *tex_type = GL_UNSIGNED_SHORT_4_4_4_4_REV;
190 } else {
191@@ -335,7 +335,7 @@ glamor_upload_picture_to_texture(PicturePtr picture)
192 stride = pixman_image_get_stride(converted_image);
193 }
194
195- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP)
196+ if (!glamor_priv->is_gles)
197 iformat = gl_iformat_for_pixmap(pixmap);
198 else
199 iformat = format;
200diff --git a/glamor/glamor_pixmap.c b/glamor/glamor_pixmap.c
201index 166bde509..9aa169cdc 100644
202--- a/glamor/glamor_pixmap.c
203+++ b/glamor/glamor_pixmap.c
204@@ -124,7 +124,7 @@ glamor_set_alu(ScreenPtr screen, unsigned char alu)
205 {
206 glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
207
208- if (glamor_priv->gl_flavor == GLAMOR_GL_ES2) {
209+ if (glamor_priv->is_gles) {
210 if (alu != GXcopy)
211 return FALSE;
212 else
213diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h
214index a87caec9b..8e8433ff3 100644
215--- a/glamor/glamor_priv.h
216+++ b/glamor/glamor_priv.h
217@@ -155,11 +155,6 @@ enum gradient_shader {
218 struct glamor_screen_private;
219 struct glamor_pixmap_private;
220
221-enum glamor_gl_flavor {
222- GLAMOR_GL_DESKTOP, // OPENGL API
223- GLAMOR_GL_ES2 // OPENGL ES2.0 API
224-};
225-
226 #define GLAMOR_COMPOSITE_VBO_VERT_CNT (64*1024)
227
228 struct glamor_saved_procs {
229@@ -185,7 +180,7 @@ struct glamor_saved_procs {
230 };
231
232 typedef struct glamor_screen_private {
233- enum glamor_gl_flavor gl_flavor;
234+ Bool is_gles;
235 int glsl_version;
236 Bool has_pack_invert;
237 Bool has_fbo_blit;
238diff --git a/glamor/glamor_program.c b/glamor/glamor_program.c
239index 830deb38b..b0a9d07a4 100644
240--- a/glamor/glamor_program.c
241+++ b/glamor/glamor_program.c
242@@ -459,7 +459,7 @@ glamor_set_blend(CARD8 op, glamor_program_alpha alpha, PicturePtr dst)
243 break;
244 }
245
246- if (glamor_priv->gl_flavor != GLAMOR_GL_ES2)
247+ if (!glamor_priv->is_gles)
248 glDisable(GL_COLOR_LOGIC_OP);
249
250 if (op == PictOpSrc)
251diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c
252index 6db6bfbc3..d3859e4d1 100644
253--- a/glamor/glamor_render.c
254+++ b/glamor/glamor_render.c
255@@ -1091,7 +1091,7 @@ glamor_composite_set_shader_blend(glamor_screen_private *glamor_priv,
256 }
257 }
258
259- if (glamor_priv->gl_flavor != GLAMOR_GL_ES2)
260+ if (!glamor_priv->is_gles)
261 glDisable(GL_COLOR_LOGIC_OP);
262
263 if (op_info->source_blend == GL_ONE && op_info->dest_blend == GL_ZERO) {
264diff --git a/glamor/glamor_utils.h b/glamor/glamor_utils.h
265index 8a147ca7e..cbb808294 100644
266--- a/glamor/glamor_utils.h
267+++ b/glamor/glamor_utils.h
268@@ -615,13 +615,13 @@ gl_iformat_for_pixmap(PixmapPtr pixmap)
269 glamor_get_screen_private((pixmap)->drawable.pScreen);
270 glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(pixmap);
271
272- if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
273+ if (!glamor_priv->is_gles &&
274 ((pixmap)->drawable.depth == 1 || (pixmap)->drawable.depth == 8)) {
275 return glamor_priv->one_channel_format;
276- } else if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
277+ } else if (!glamor_priv->is_gles &&
278 (pixmap)->drawable.depth == 16 && pixmap_priv->is_cbcr) {
279 return GL_RG;
280- } else if (glamor_priv->gl_flavor == GLAMOR_GL_DESKTOP &&
281+ } else if (!glamor_priv->is_gles &&
282 (pixmap)->drawable.depth == 30) {
283 return GL_RGB10_A2;
284 } else {
285--
2862.17.1
287
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg/0008-glamor-Introduce-a-central-place-for-our-pixmap-form.patch b/recipes-graphics/xorg-xserver/xserver-xorg/0008-glamor-Introduce-a-central-place-for-our-pixmap-form.patch
new file mode 100644
index 00000000..dd82340a
--- /dev/null
+++ b/recipes-graphics/xorg-xserver/xserver-xorg/0008-glamor-Introduce-a-central-place-for-our-pixmap-form.patch
@@ -0,0 +1,669 @@
1From b75296bee6ab3578f3a13cfb6de5d77ec02b9047 Mon Sep 17 00:00:00 2001
2From: Eric Anholt <eric@anholt.net>
3Date: Tue, 26 Mar 2019 15:10:49 -0700
4Subject: [PATCH 8/8] glamor: Introduce a central place for our pixmap
5 format/type handling.
6
7We had various helper functions trying to come up with the
8internalformat/format/type/render formats for pixmaps, and it's much
9nicer to just detect what those should be once at startup. This gives
10us a chance to do the right thing for GLES.
11
12It also, notably, fixes our format/type for depth 15 and 16 setup for
13desktop GL, so that we actually allocate 16bpp (GL_RGB/565) on most
14drivers instead of 32bpp (GL_RGB/UBYTE).
15
16GLES still has regressions over desktop (2 regressions in llvmpipe
17XTS, many in rendercheck), but I think this is a good baseline.
18
19Upstream-Status: Backport
20Signed-off-by: Eric Anholt <eric@anholt.net>
21---
22 glamor/glamor.c | 167 ++++++++++++++++++++++++++++++++++++--
23 glamor/glamor_fbo.c | 16 ++--
24 glamor/glamor_picture.c | 7 +-
25 glamor/glamor_priv.h | 22 ++++-
26 glamor/glamor_render.c | 7 +-
27 glamor/glamor_spans.c | 14 ++--
28 glamor/glamor_transfer.c | 56 ++-----------
29 glamor/glamor_transfer.h | 3 -
30 glamor/glamor_transform.c | 5 +-
31 glamor/glamor_utils.h | 57 -------------
32 10 files changed, 209 insertions(+), 145 deletions(-)
33
34diff --git a/glamor/glamor.c b/glamor/glamor.c
35index 019edbbb1..3450113e0 100644
36--- a/glamor/glamor.c
37+++ b/glamor/glamor.c
38@@ -212,7 +212,7 @@ glamor_create_pixmap(ScreenPtr screen, int w, int h, int depth,
39 w <= glamor_priv->glyph_max_dim &&
40 h <= glamor_priv->glyph_max_dim)
41 || (w == 0 && h == 0)
42- || !glamor_check_pixmap_fbo_depth(depth)))
43+ || !glamor_priv->formats[depth].format))
44 return fbCreatePixmap(screen, w, h, depth, usage);
45 else
46 pixmap = fbCreatePixmap(screen, 0, 0, depth, usage);
47@@ -440,6 +440,165 @@ glamor_setup_debug_output(ScreenPtr screen)
48 glEnable(GL_DEBUG_OUTPUT);
49 }
50
51+const struct glamor_format *
52+glamor_format_for_pixmap(PixmapPtr pixmap)
53+{
54+ ScreenPtr pScreen = pixmap->drawable.pScreen;
55+ glamor_screen_private *glamor_priv = glamor_get_screen_private(pScreen);
56+ glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(pixmap);
57+
58+ if (pixmap_priv->is_cbcr)
59+ return &glamor_priv->cbcr_format;
60+ else
61+ return &glamor_priv->formats[pixmap->drawable.depth];
62+}
63+
64+static void
65+glamor_add_format(ScreenPtr screen, int depth, CARD32 render_format,
66+ GLenum internalformat, GLenum format, GLenum type)
67+{
68+ glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
69+ struct glamor_format *f = &glamor_priv->formats[depth];
70+
71+ /* If we're trying to run on GLES, make sure that we get the read
72+ * formats that we're expecting, since glamor_transfer relies on
73+ * them matching to get data back out. To avoid this limitation, we
74+ * would need to have a more general glReadPixels() path in
75+ * glamor_transfer that re-encoded the bits to the pixel format that
76+ * we intended after.
77+ *
78+ * Note that we can't just create a pixmap because we're in
79+ * screeninit.
80+ */
81+ if (glamor_priv->is_gles) {
82+ unsigned fbo, tex;
83+ int read_format, read_type;
84+ GLenum status;
85+
86+ glGenTextures(1, &tex);
87+ glBindTexture(GL_TEXTURE_2D, tex);
88+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
89+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
90+ glTexImage2D(GL_TEXTURE_2D, 0, internalformat, 1, 1, 0,
91+ format, type, NULL);
92+
93+ glGenFramebuffers(1, &fbo);
94+ glBindFramebuffer(GL_FRAMEBUFFER, fbo);
95+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
96+ GL_TEXTURE_2D, tex, 0);
97+ status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
98+ if (status != GL_FRAMEBUFFER_COMPLETE) {
99+ ErrorF("glamor: Test fbo for depth %d incomplete. "
100+ "Falling back to software.\n", depth);
101+ glDeleteTextures(1, &tex);
102+ glDeleteFramebuffers(1, &fbo);
103+ return;
104+ }
105+
106+ glGetIntegerv(GL_IMPLEMENTATION_COLOR_READ_FORMAT, &read_format);
107+ glGetIntegerv(GL_IMPLEMENTATION_COLOR_READ_TYPE, &read_type);
108+
109+ glDeleteTextures(1, &tex);
110+ glDeleteFramebuffers(1, &fbo);
111+
112+ if (format != read_format || type != read_type) {
113+ ErrorF("glamor: Implementation returned 0x%x/0x%x read format/type "
114+ "for depth %d, expected 0x%x/0x%x. "
115+ "Falling back to software.\n",
116+ read_format, read_type, depth, format, type);
117+ return;
118+ }
119+ }
120+
121+ f->depth = depth;
122+ f->render_format = render_format;
123+ f->internalformat = internalformat;
124+ f->format = format;
125+ f->type = type;
126+}
127+
128+/* Set up the GL format/types that glamor will use for the various depths
129+ *
130+ * X11's pixel data doesn't have channels, but to store our data in GL
131+ * we have to pick some sort of format to move X11 pixel data in and
132+ * out with in glamor_transfer.c. For X11 core operations, other than
133+ * GL logic ops (non-GXcopy GC ops) what the driver chooses internally
134+ * doesn't matter as long as it doesn't drop any bits (we expect them
135+ * to generally expand, if anything). For Render, we can expect
136+ * clients to tend to render with PictFormats matching our channel
137+ * layouts here since ultimately X11 pixels tend to end up on the
138+ * screen. The render implementation will fall back to fb if the
139+ * channels don't match.
140+ *
141+ * Note that these formats don't affect what glamor_egl.c or
142+ * Xwayland's EGL layer choose for surfaces exposed through DRI or
143+ * scanout. For now, those layers need to match what we're choosing
144+ * here, or channels will end up swizzled around. Similarly, the
145+ * driver's visual masks also need to match what we're doing here.
146+ */
147+static void
148+glamor_setup_formats(ScreenPtr screen)
149+{
150+ glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
151+
152+ /* Prefer r8 textures since they're required by GLES3 and core,
153+ * only falling back to a8 if we can't do them.
154+ */
155+ if (glamor_priv->is_gles || epoxy_has_gl_extension("GL_ARB_texture_rg")) {
156+ glamor_add_format(screen, 8, PICT_a8,
157+ GL_R8, GL_RED, GL_UNSIGNED_BYTE);
158+ } else {
159+ glamor_add_format(screen, 8, PICT_a8,
160+ GL_ALPHA, GL_ALPHA, GL_UNSIGNED_BYTE);
161+ }
162+
163+ if (glamor_priv->is_gles) {
164+ /* For 15bpp, GLES supports format/type RGBA/5551, rather than
165+ * bgra/1555_rev. GL_EXT_bgra lets the impl say the color
166+ * read format/type is bgra/1555 even if we had to create it
167+ * with rgba/5551, with Mesa does. That means we can't use
168+ * the same format/type for TexSubImage and readpixels.
169+ *
170+ * Instead, just store 16 bits using the trusted 565 path, and
171+ * disable render accel for now.
172+ */
173+ glamor_add_format(screen, 15, PICT_x1r5g5b5,
174+ GL_RGB5_A1, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1);
175+ } else {
176+ glamor_add_format(screen, 15, PICT_x1r5g5b5,
177+ GL_RGBA, GL_BGRA, GL_UNSIGNED_SHORT_1_5_5_5_REV);
178+ }
179+
180+ glamor_add_format(screen, 16, PICT_r5g6b5,
181+ GL_RGB, GL_RGB, GL_UNSIGNED_SHORT_5_6_5);
182+
183+ if (glamor_priv->is_gles) {
184+ assert(X_BYTE_ORDER == X_LITTLE_ENDIAN);
185+ glamor_add_format(screen, 24, PICT_x8b8g8r8,
186+ GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE);
187+ glamor_add_format(screen, 32, PICT_a8b8g8r8,
188+ GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE);
189+ } else {
190+ glamor_add_format(screen, 24, PICT_x8r8g8b8,
191+ GL_RGBA, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV);
192+ glamor_add_format(screen, 32, PICT_a8r8g8b8,
193+ GL_RGBA, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV);
194+ }
195+
196+ if (glamor_priv->is_gles) {
197+ glamor_add_format(screen, 30, PICT_x2b10g10r10,
198+ GL_RGB10_A2, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV);
199+ } else {
200+ glamor_add_format(screen, 30, PICT_x2r10g10b10,
201+ GL_RGB10_A2, GL_BGRA, GL_UNSIGNED_INT_2_10_10_10_REV);
202+ }
203+
204+ glamor_priv->cbcr_format.depth = 16;
205+ glamor_priv->cbcr_format.internalformat = GL_RG8;
206+ glamor_priv->cbcr_format.format = GL_RG;
207+ glamor_priv->cbcr_format.type = GL_UNSIGNED_BYTE;
208+}
209+
210 /** Set up glamor for an already-configured GL context. */
211 Bool
212 glamor_init(ScreenPtr screen, unsigned int flags)
213@@ -665,11 +824,7 @@ glamor_init(ScreenPtr screen, unsigned int flags)
214 (epoxy_has_gl_extension("GL_ARB_texture_swizzle") ||
215 (glamor_priv->is_gles && gl_version >= 30));
216
217- glamor_priv->one_channel_format = GL_ALPHA;
218- if (epoxy_has_gl_extension("GL_ARB_texture_rg") &&
219- glamor_priv->has_texture_swizzle) {
220- glamor_priv->one_channel_format = GL_RED;
221- }
222+ glamor_setup_formats(screen);
223
224 glamor_set_debug_level(&glamor_debug_level);
225
226diff --git a/glamor/glamor_fbo.c b/glamor/glamor_fbo.c
227index 75f7e2baa..dfb3f754d 100644
228--- a/glamor/glamor_fbo.c
229+++ b/glamor/glamor_fbo.c
230@@ -97,7 +97,7 @@ glamor_pixmap_fbo *
231 glamor_create_fbo_from_tex(glamor_screen_private *glamor_priv,
232 PixmapPtr pixmap, int w, int h, GLint tex, int flag)
233 {
234- GLenum format = gl_iformat_for_pixmap(pixmap);
235+ const struct glamor_format *f = glamor_format_for_pixmap(pixmap);
236 glamor_pixmap_fbo *fbo;
237
238 fbo = calloc(1, sizeof(*fbo));
239@@ -107,7 +107,7 @@ glamor_create_fbo_from_tex(glamor_screen_private *glamor_priv,
240 fbo->tex = tex;
241 fbo->width = w;
242 fbo->height = h;
243- fbo->is_red = format == GL_RED;
244+ fbo->is_red = f->format == GL_RED;
245
246 if (flag != GLAMOR_CREATE_FBO_NO_FBO) {
247 if (glamor_pixmap_ensure_fb(glamor_priv, fbo) != 0) {
248@@ -123,23 +123,19 @@ static int
249 _glamor_create_tex(glamor_screen_private *glamor_priv,
250 PixmapPtr pixmap, int w, int h)
251 {
252- GLenum iformat = gl_iformat_for_pixmap(pixmap);
253- GLenum format = iformat;
254+ const struct glamor_format *f = glamor_format_for_pixmap(pixmap);
255 unsigned int tex;
256
257- if (format == GL_RGB10_A2)
258- format = GL_RGBA;
259-
260 glamor_make_current(glamor_priv);
261 glGenTextures(1, &tex);
262 glBindTexture(GL_TEXTURE_2D, tex);
263 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
264 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
265- if (format == glamor_priv->one_channel_format && format == GL_RED)
266+ if (f->format == GL_RED)
267 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_A, GL_RED);
268 glamor_priv->suppress_gl_out_of_memory_logging = true;
269- glTexImage2D(GL_TEXTURE_2D, 0, iformat, w, h, 0,
270- format, GL_UNSIGNED_BYTE, NULL);
271+ glTexImage2D(GL_TEXTURE_2D, 0, f->internalformat, w, h, 0,
272+ f->format, f->type, NULL);
273 glamor_priv->suppress_gl_out_of_memory_logging = false;
274
275 if (glGetError() == GL_OUT_OF_MEMORY) {
276diff --git a/glamor/glamor_picture.c b/glamor/glamor_picture.c
277index ed2decc83..33b3bebd9 100644
278--- a/glamor/glamor_picture.c
279+++ b/glamor/glamor_picture.c
280@@ -83,7 +83,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
281
282 switch (format) {
283 case PICT_a1:
284- *tex_format = glamor_priv->one_channel_format;
285+ *tex_format = glamor_priv->formats[1].format;
286 *tex_type = GL_UNSIGNED_BYTE;
287 *temp_format = PICT_a8;
288 break;
289@@ -195,7 +195,7 @@ glamor_get_tex_format_type_from_pictformat(ScreenPtr pScreen,
290 break;
291
292 case PICT_a8:
293- *tex_format = glamor_priv->one_channel_format;
294+ *tex_format = glamor_priv->formats[8].format;
295 *tex_type = GL_UNSIGNED_BYTE;
296 break;
297
298@@ -286,6 +286,7 @@ glamor_upload_picture_to_texture(PicturePtr picture)
299 Bool ret = TRUE;
300 Bool needs_swizzle;
301 pixman_image_t *converted_image = NULL;
302+ const struct glamor_format *f = glamor_format_for_pixmap(pixmap);
303
304 assert(glamor_pixmap_is_memory(pixmap));
305 assert(!pixmap_priv->fbo);
306@@ -336,7 +337,7 @@ glamor_upload_picture_to_texture(PicturePtr picture)
307 }
308
309 if (!glamor_priv->is_gles)
310- iformat = gl_iformat_for_pixmap(pixmap);
311+ iformat = f->internalformat;
312 else
313 iformat = format;
314
315diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h
316index 8e8433ff3..b8e2b932e 100644
317--- a/glamor/glamor_priv.h
318+++ b/glamor/glamor_priv.h
319@@ -157,6 +157,21 @@ struct glamor_pixmap_private;
320
321 #define GLAMOR_COMPOSITE_VBO_VERT_CNT (64*1024)
322
323+struct glamor_format {
324+ /** X Server's "depth" value */
325+ int depth;
326+ /** GL internalformat for creating textures of this type */
327+ GLenum internalformat;
328+ /** GL format transferring pixels in/out of textures of this type. */
329+ GLenum format;
330+ /** GL type transferring pixels in/out of textures of this type. */
331+ GLenum type;
332+ /* Render PICT_* matching GL's channel layout for pixels
333+ * transferred using format/type.
334+ */
335+ CARD32 render_format;
336+};
337+
338 struct glamor_saved_procs {
339 CloseScreenProcPtr close_screen;
340 CreateGCProcPtr create_gc;
341@@ -199,7 +214,8 @@ typedef struct glamor_screen_private {
342 Bool can_copyplane;
343 int max_fbo_size;
344
345- GLuint one_channel_format;
346+ struct glamor_format formats[33];
347+ struct glamor_format cbcr_format;
348
349 /* glamor point shader */
350 glamor_program point_prog;
351@@ -537,6 +553,8 @@ void glamor_pixmap_destroy_fbo(PixmapPtr pixmap);
352 Bool glamor_pixmap_fbo_fixup(ScreenPtr screen, PixmapPtr pixmap);
353 void glamor_pixmap_clear_fbo(glamor_screen_private *glamor_priv, glamor_pixmap_fbo *fbo);
354
355+const struct glamor_format *glamor_format_for_pixmap(PixmapPtr pixmap);
356+
357 /* Return whether 'picture' is alpha-only */
358 static inline Bool glamor_picture_is_alpha(PicturePtr picture)
359 {
360@@ -549,7 +567,7 @@ glamor_picture_red_is_alpha(PicturePtr picture)
361 {
362 /* True when the picture is alpha only and the screen is using GL_RED for alpha pictures */
363 return glamor_picture_is_alpha(picture) &&
364- glamor_get_screen_private(picture->pDrawable->pScreen)->one_channel_format == GL_RED;
365+ glamor_get_screen_private(picture->pDrawable->pScreen)->formats[8].format == GL_RED;
366 }
367
368 void glamor_bind_texture(glamor_screen_private *glamor_priv,
369diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c
370index d3859e4d1..a8dc3924b 100644
371--- a/glamor/glamor_render.c
372+++ b/glamor/glamor_render.c
373@@ -772,12 +772,15 @@ static Bool
374 glamor_render_format_is_supported(PicturePtr picture)
375 {
376 PictFormatShort storage_format;
377+ glamor_screen_private *glamor_priv;
378
379 /* Source-only pictures should always work */
380 if (!picture->pDrawable)
381 return TRUE;
382
383- storage_format = format_for_depth(picture->pDrawable->depth);
384+ glamor_priv = glamor_get_screen_private(picture->pDrawable->pScreen);
385+ storage_format =
386+ glamor_priv->formats[picture->pDrawable->depth].render_format;
387
388 switch (picture->format) {
389 case PICT_x2r10g10b10:
390@@ -898,7 +901,7 @@ glamor_composite_choose_shader(CARD8 op,
391 }
392
393 if (dest_pixmap->drawable.bitsPerPixel <= 8 &&
394- glamor_priv->one_channel_format == GL_RED) {
395+ glamor_priv->formats[8].format == GL_RED) {
396 key.dest_swizzle = SHADER_DEST_SWIZZLE_ALPHA_TO_RED;
397 } else {
398 key.dest_swizzle = SHADER_DEST_SWIZZLE_DEFAULT;
399diff --git a/glamor/glamor_spans.c b/glamor/glamor_spans.c
400index b3c028d67..b5f297d2f 100644
401--- a/glamor/glamor_spans.c
402+++ b/glamor/glamor_spans.c
403@@ -187,9 +187,8 @@ glamor_get_spans_gl(DrawablePtr drawable, int wmax,
404 int box_index;
405 int n;
406 char *d;
407- GLenum type;
408- GLenum format;
409 int off_x, off_y;
410+ const struct glamor_format *f = glamor_format_for_pixmap(pixmap);
411
412 pixmap_priv = glamor_get_pixmap_private(pixmap);
413 if (!GLAMOR_PIXMAP_PRIV_HAS_FBO(pixmap_priv))
414@@ -197,8 +196,6 @@ glamor_get_spans_gl(DrawablePtr drawable, int wmax,
415
416 glamor_get_drawable_deltas(drawable, pixmap, &off_x, &off_y);
417
418- glamor_format_for_pixmap(pixmap, &format, &type);
419-
420 glamor_make_current(glamor_priv);
421
422 glamor_pixmap_loop(pixmap_priv, box_index) {
423@@ -234,7 +231,8 @@ glamor_get_spans_gl(DrawablePtr drawable, int wmax,
424 if (y >= box->y2)
425 continue;
426
427- glReadPixels(x1 - box->x1, y - box->y1, x2 - x1, 1, format, type, l);
428+ glReadPixels(x1 - box->x1, y - box->y1, x2 - x1, 1,
429+ f->format, f->type, l);
430 }
431 }
432
433@@ -269,11 +267,10 @@ glamor_set_spans_gl(DrawablePtr drawable, GCPtr gc, char *src,
434 glamor_screen_private *glamor_priv = glamor_get_screen_private(screen);
435 PixmapPtr pixmap = glamor_get_drawable_pixmap(drawable);
436 glamor_pixmap_private *pixmap_priv;
437+ const struct glamor_format *f = glamor_format_for_pixmap(pixmap);
438 int box_index;
439 int n;
440 char *s;
441- GLenum type;
442- GLenum format;
443 int off_x, off_y;
444
445 pixmap_priv = glamor_get_pixmap_private(pixmap);
446@@ -287,7 +284,6 @@ glamor_set_spans_gl(DrawablePtr drawable, GCPtr gc, char *src,
447 goto bail;
448
449 glamor_get_drawable_deltas(drawable, pixmap, &off_x, &off_y);
450- glamor_format_for_pixmap(pixmap, &format, &type);
451
452 glamor_make_current(glamor_priv);
453
454@@ -348,7 +344,7 @@ glamor_set_spans_gl(DrawablePtr drawable, GCPtr gc, char *src,
455
456 glTexSubImage2D(GL_TEXTURE_2D, 0,
457 x1 - box->x1, y1 - box->y1, x2 - x1, 1,
458- format, type,
459+ f->format, f->type,
460 l);
461 }
462 s += PixmapBytePad(w, drawable->depth);
463diff --git a/glamor/glamor_transfer.c b/glamor/glamor_transfer.c
464index 215752d7b..e706e0fb4 100644
465--- a/glamor/glamor_transfer.c
466+++ b/glamor/glamor_transfer.c
467@@ -23,44 +23,6 @@
468 #include "glamor_priv.h"
469 #include "glamor_transfer.h"
470
471-/* XXX a kludge for now */
472-void
473-glamor_format_for_pixmap(PixmapPtr pixmap, GLenum *format, GLenum *type)
474-{
475- glamor_pixmap_private *priv = glamor_get_pixmap_private(pixmap);
476- switch (pixmap->drawable.depth) {
477- case 24:
478- case 32:
479- *format = GL_BGRA;
480- *type = GL_UNSIGNED_INT_8_8_8_8_REV;
481- break;
482- case 30:
483- *format = GL_BGRA;
484- *type = GL_UNSIGNED_INT_2_10_10_10_REV;
485- break;
486- case 16:
487- if (priv->is_cbcr) {
488- *format = GL_RG;
489- *type = GL_UNSIGNED_BYTE;
490- } else {
491- *format = GL_RGB;
492- *type = GL_UNSIGNED_SHORT_5_6_5;
493- }
494- break;
495- case 15:
496- *format = GL_BGRA;
497- *type = GL_UNSIGNED_SHORT_1_5_5_5_REV;
498- break;
499- case 8:
500- *format = glamor_get_screen_private(pixmap->drawable.pScreen)->one_channel_format;
501- *type = GL_UNSIGNED_BYTE;
502- break;
503- default:
504- FatalError("Invalid pixmap depth %d\n", pixmap->drawable.depth);
505- break;
506- }
507-}
508-
509 /*
510 * Write a region of bits into a pixmap
511 */
512@@ -75,10 +37,7 @@ glamor_upload_boxes(PixmapPtr pixmap, BoxPtr in_boxes, int in_nbox,
513 glamor_pixmap_private *priv = glamor_get_pixmap_private(pixmap);
514 int box_index;
515 int bytes_per_pixel = pixmap->drawable.bitsPerPixel >> 3;
516- GLenum type;
517- GLenum format;
518-
519- glamor_format_for_pixmap(pixmap, &format, &type);
520+ const struct glamor_format *f = glamor_format_for_pixmap(pixmap);
521
522 glamor_make_current(glamor_priv);
523
524@@ -116,14 +75,14 @@ glamor_upload_boxes(PixmapPtr pixmap, BoxPtr in_boxes, int in_nbox,
525 glTexSubImage2D(GL_TEXTURE_2D, 0,
526 x1 - box->x1, y1 - box->y1,
527 x2 - x1, y2 - y1,
528- format, type,
529+ f->format, f->type,
530 bits + ofs);
531 } else {
532 for (; y1 < y2; y1++, ofs += byte_stride)
533 glTexSubImage2D(GL_TEXTURE_2D, 0,
534 x1 - box->x1, y1 - box->y1,
535 x2 - x1, 1,
536- format, type,
537+ f->format, f->type,
538 bits + ofs);
539 }
540 }
541@@ -178,10 +137,7 @@ glamor_download_boxes(PixmapPtr pixmap, BoxPtr in_boxes, int in_nbox,
542 glamor_pixmap_private *priv = glamor_get_pixmap_private(pixmap);
543 int box_index;
544 int bytes_per_pixel = pixmap->drawable.bitsPerPixel >> 3;
545- GLenum type;
546- GLenum format;
547-
548- glamor_format_for_pixmap(pixmap, &format, &type);
549+ const struct glamor_format *f = glamor_format_for_pixmap(pixmap);
550
551 glamor_make_current(glamor_priv);
552
553@@ -216,10 +172,10 @@ glamor_download_boxes(PixmapPtr pixmap, BoxPtr in_boxes, int in_nbox,
554
555 if (glamor_priv->has_pack_subimage ||
556 x2 - x1 == byte_stride / bytes_per_pixel) {
557- glReadPixels(x1 - box->x1, y1 - box->y1, x2 - x1, y2 - y1, format, type, bits + ofs);
558+ glReadPixels(x1 - box->x1, y1 - box->y1, x2 - x1, y2 - y1, f->format, f->type, bits + ofs);
559 } else {
560 for (; y1 < y2; y1++, ofs += byte_stride)
561- glReadPixels(x1 - box->x1, y1 - box->y1, x2 - x1, 1, format, type, bits + ofs);
562+ glReadPixels(x1 - box->x1, y1 - box->y1, x2 - x1, 1, f->format, f->type, bits + ofs);
563 }
564 }
565 }
566diff --git a/glamor/glamor_transfer.h b/glamor/glamor_transfer.h
567index de8186a70..a6137b3ff 100644
568--- a/glamor/glamor_transfer.h
569+++ b/glamor/glamor_transfer.h
570@@ -23,9 +23,6 @@
571 #ifndef _GLAMOR_TRANSFER_H_
572 #define _GLAMOR_TRANSFER_H_
573
574-void
575-glamor_format_for_pixmap(PixmapPtr pixmap, GLenum *format, GLenum *type);
576-
577 void
578 glamor_upload_boxes(PixmapPtr pixmap, BoxPtr in_boxes, int in_nbox,
579 int dx_src, int dy_src,
580diff --git a/glamor/glamor_transform.c b/glamor/glamor_transform.c
581index 2d5a634a8..348d00be1 100644
582--- a/glamor/glamor_transform.c
583+++ b/glamor/glamor_transform.c
584@@ -121,10 +121,9 @@ glamor_set_color_depth(ScreenPtr pScreen,
585
586 glamor_get_rgba_from_pixel(pixel,
587 &color[0], &color[1], &color[2], &color[3],
588- format_for_depth(depth));
589+ glamor_priv->formats[depth].render_format);
590
591- if ((depth == 1 || depth == 8) &&
592- glamor_priv->one_channel_format == GL_RED)
593+ if ((depth <= 8) && glamor_priv->formats[8].format == GL_RED)
594 color[0] = color[3];
595
596 glUniform4fv(uniform, 1, color);
597diff --git a/glamor/glamor_utils.h b/glamor/glamor_utils.h
598index cbb808294..651faf2fe 100644
599--- a/glamor/glamor_utils.h
600+++ b/glamor/glamor_utils.h
601@@ -570,65 +570,8 @@
602 && (_w_) <= _glamor_->max_fbo_size \
603 && (_h_) <= _glamor_->max_fbo_size)
604
605-/* For 1bpp pixmap, we don't store it as texture. */
606-#define glamor_check_pixmap_fbo_depth(_depth_) ( \
607- _depth_ == 8 \
608- || _depth_ == 15 \
609- || _depth_ == 16 \
610- || _depth_ == 24 \
611- || _depth_ == 30 \
612- || _depth_ == 32)
613-
614 #define GLAMOR_PIXMAP_PRIV_HAS_FBO(pixmap_priv) (pixmap_priv->gl_fbo == GLAMOR_FBO_NORMAL)
615
616-/**
617- * Borrow from uxa.
618- */
619-static inline CARD32
620-format_for_depth(int depth)
621-{
622- switch (depth) {
623- case 1:
624- return PICT_a1;
625- case 4:
626- return PICT_a4;
627- case 8:
628- return PICT_a8;
629- case 15:
630- return PICT_x1r5g5b5;
631- case 16:
632- return PICT_r5g6b5;
633- default:
634- case 24:
635- return PICT_x8r8g8b8;
636- case 30:
637- return PICT_x2r10g10b10;
638- case 32:
639- return PICT_a8r8g8b8;
640- }
641-}
642-
643-static inline GLenum
644-gl_iformat_for_pixmap(PixmapPtr pixmap)
645-{
646- glamor_screen_private *glamor_priv =
647- glamor_get_screen_private((pixmap)->drawable.pScreen);
648- glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(pixmap);
649-
650- if (!glamor_priv->is_gles &&
651- ((pixmap)->drawable.depth == 1 || (pixmap)->drawable.depth == 8)) {
652- return glamor_priv->one_channel_format;
653- } else if (!glamor_priv->is_gles &&
654- (pixmap)->drawable.depth == 16 && pixmap_priv->is_cbcr) {
655- return GL_RG;
656- } else if (!glamor_priv->is_gles &&
657- (pixmap)->drawable.depth == 30) {
658- return GL_RGB10_A2;
659- } else {
660- return GL_RGBA;
661- }
662-}
663-
664 #define REVERT_NONE 0
665 #define REVERT_NORMAL 1
666 #define REVERT_UPLOADING_A1 3
667--
6682.17.1
669
diff --git a/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend b/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
index 22d950c7..be3c3817 100644
--- a/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
+++ b/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend
@@ -1,16 +1,24 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" 1FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
2 2
3SRC_URI_append_use-mainline-bsp = " file://0001-Allow-to-enable-atomic-in-modesetting-DDX.patch" 3SRC_URI:append:use-mainline-bsp = " file://0001-Allow-to-enable-atomic-in-modesetting-DDX.patch"
4SRC_URI_append_imxgpu = " \ 4SRC_URI:append:imxgpu = " \
5 file://0003-Remove-check-for-useSIGIO-option.patch \ 5 file://0003-Remove-check-for-useSIGIO-option.patch \
6 file://0001-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch \ 6 file://0001-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch \
7 file://0001-glamor-glamor_egl.c-EGL_NATIVE_PIXMAP_KHR-do-not-req.patch \ 7 file://0001-glamor-glamor_egl.c-EGL_NATIVE_PIXMAP_KHR-do-not-req.patch \
8 file://0001-prefer-to-use-GLES2-for-glamor-EGL-config.patch \ 8 file://0001-prefer-to-use-GLES2-for-glamor-EGL-config.patch \
9 file://0001-hw-xwayland-Makefile.am-fix-build-without-glx.patch \ 9 file://0001-hw-xwayland-Makefile.am-fix-build-without-glx.patch \
10 file://0001-xfree86-define-FOURCC_NV12-and-XVIMAGE_NV12.patch \
11 file://0002-glamor-add-support-for-GL_RG.patch \
12 file://0003-glamor-add-support-for-NV12-in-Xv.patch \
13 file://0004-glamor-Remove-unused-format_for_pixmap-helper.patch \
14 file://0005-glamor-Stop-trying-to-store-the-pixmap-s-format-in-g.patch \
15 file://0006-glamor-Plumb-the-pixmap-through-fbo-creation-instead.patch \
16 file://0007-glamor-Switch-the-gl_flavor-to-a-boolean-is_gles.patch \
17 file://0008-glamor-Introduce-a-central-place-for-our-pixmap-form.patch \
10" 18"
11 19
12IMX_OPENGL_PKGCONFIGS_REMOVE = "" 20IMX_OPENGL_PKGCONFIGS_REMOVE = ""
13IMX_OPENGL_PKGCONFIGS_REMOVE_imxgpu = "glamor" 21IMX_OPENGL_PKGCONFIGS_REMOVE:imxgpu = "glamor"
14OPENGL_PKGCONFIGS_remove_mx6 = "${IMX_OPENGL_PKGCONFIGS_REMOVE}" 22OPENGL_PKGCONFIGS:remove:mx6 = "${IMX_OPENGL_PKGCONFIGS_REMOVE}"
15OPENGL_PKGCONFIGS_remove_mx7 = "${IMX_OPENGL_PKGCONFIGS_REMOVE}" 23OPENGL_PKGCONFIGS:remove:mx7 = "${IMX_OPENGL_PKGCONFIGS_REMOVE}"
16OPENGL_PKGCONFIGS_remove_imxdrm = "dri glx" 24OPENGL_PKGCONFIGS:remove:imxdrm = "dri glx"
diff --git a/recipes-graphics/xwayland/xwayland_%.bbappend b/recipes-graphics/xwayland/xwayland_%.bbappend
index c26bb20d..b3e79e09 100644
--- a/recipes-graphics/xwayland/xwayland_%.bbappend
+++ b/recipes-graphics/xwayland/xwayland_%.bbappend
@@ -1,4 +1,4 @@
1IMX_OPENGL_PKGCONFIGS_REMOVE = "" 1IMX_OPENGL_PKGCONFIGS_REMOVE = ""
2IMX_OPENGL_PKGCONFIGS_REMOVE_imxgpu = "glamor" 2IMX_OPENGL_PKGCONFIGS_REMOVE:imxgpu = "glamor"
3OPENGL_PKGCONFIGS_remove_mx6 = "${IMX_OPENGL_PKGCONFIGS_REMOVE}" 3OPENGL_PKGCONFIGS:remove:mx6 = "${IMX_OPENGL_PKGCONFIGS_REMOVE}"
4OPENGL_PKGCONFIGS_remove_mx7 = "${IMX_OPENGL_PKGCONFIGS_REMOVE}" 4OPENGL_PKGCONFIGS:remove:mx7 = "${IMX_OPENGL_PKGCONFIGS_REMOVE}"
diff --git a/recipes-kernel/ceetm/ceetm_git.bb b/recipes-kernel/ceetm/ceetm_git.bb
index 2e92ad49..00790c8e 100644
--- a/recipes-kernel/ceetm/ceetm_git.bb
+++ b/recipes-kernel/ceetm/ceetm_git.bb
@@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=bac620b9883d38a84dfb73ca7122d915"
4 4
5SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/ceetm;nobranch=1" 5SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/ceetm;nobranch=1"
6SRCREV = "6a7f2ec2091df2f4380cb8d25a36c399aed5af1b" 6SRCREV = "6a7f2ec2091df2f4380cb8d25a36c399aed5af1b"
7SRC_URI_append = " file://0001-Makefile-update-CFLAGS.patch \ 7SRC_URI:append = " file://0001-Makefile-update-CFLAGS.patch \
8 file://0001-use-new-api-tc_print_rate.patch \ 8 file://0001-use-new-api-tc_print_rate.patch \
9" 9"
10DEPENDS = "iproute2" 10DEPENDS = "iproute2"
@@ -22,7 +22,7 @@ do_install(){
22 cp ${S}/q_ceetm.so ${D}/${libdir}/tc/ 22 cp ${S}/q_ceetm.so ${D}/${libdir}/tc/
23} 23}
24 24
25FILES_${PN} += "${libdir}/tc" 25FILES:${PN} += "${libdir}/tc"
26INHIBIT_PACKAGE_STRIP = "1" 26INHIBIT_PACKAGE_STRIP = "1"
27 27
28COMPATIBLE_MACHINE = "(qoriq)" 28COMPATIBLE_MACHINE = "(qoriq)"
diff --git a/recipes-kernel/kernel-modules/kernel-module-ar_git.bb b/recipes-kernel/kernel-modules/kernel-module-ar_git.bb
index feddc8fa..f2cd1a57 100644
--- a/recipes-kernel/kernel-modules/kernel-module-ar_git.bb
+++ b/recipes-kernel/kernel-modules/kernel-module-ar_git.bb
@@ -14,7 +14,7 @@ export KERNEL_PATH
14 14
15INHIBIT_PACKAGE_STRIP = "1" 15INHIBIT_PACKAGE_STRIP = "1"
16 16
17do_compile_prepend() { 17do_compile:prepend() {
18 sed -i -e 's,EXTRA_CFLAGS += -I$(PWD),EXTRA_CFLAGS += -I${S},' ${S}/armodule/source/Makefile 18 sed -i -e 's,EXTRA_CFLAGS += -I$(PWD),EXTRA_CFLAGS += -I${S},' ${S}/armodule/source/Makefile
19} 19}
20 20
@@ -25,8 +25,8 @@ do_install(){
25 cp -f ${S}/bin/ar_* ${D}${bindir}/ 25 cp -f ${S}/bin/ar_* ${D}${bindir}/
26} 26}
27 27
28FILES_${PN} += "${bindir}/" 28FILES:${PN} += "${bindir}/"
29INSANE_SKIP_${PN} = "ldflags" 29INSANE_SKIP:${PN} = "ldflags"
30COMPATIBLE_MACHINE = "(t1040|t1042)" 30COMPATIBLE_MACHINE = "(t1040|t1042)"
31 31
32CLEANBROKEN = "1" 32CLEANBROKEN = "1"
diff --git a/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p1.4.bb b/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p2.0.bb
index 581bef95..e113aff7 100644
--- a/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p1.4.bb
+++ b/recipes-kernel/kernel-modules/kernel-module-imx-gpu-viv_6.4.3.p2.0.bb
@@ -1,5 +1,5 @@
1# Copyright (C) 2015-2016 Freescale Semiconductor 1# Copyright (C) 2015-2016 Freescale Semiconductor
2# Copyright (C) 2017-2020 NXP 2# Copyright (C) 2017-2021 NXP
3 3
4SUMMARY = "Kernel loadable module for Vivante GPU" 4SUMMARY = "Kernel loadable module for Vivante GPU"
5DESCRIPTION = "Builds the Vivante GPU kernel driver as a loadable kernel module, \ 5DESCRIPTION = "Builds the Vivante GPU kernel driver as a loadable kernel module, \
@@ -7,14 +7,14 @@ allowing flexibility to use a newer graphics release with an older kernel."
7LICENSE = "GPLv2" 7LICENSE = "GPLv2"
8LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" 8LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
9 9
10SRCBRANCH = "imx_5.4.70_2.3.0" 10SRCBRANCH = "lf-5.10.y"
11LOCALVERSION = "-imx_5.4.70_2.3.2" 11LOCALVERSION = "-5.10.35-2.0.0"
12KERNEL_SRC ?= "git://source.codeaurora.org/external/imx/linux-imx.git;protocol=https" 12KERNEL_SRC ?= "git://source.codeaurora.org/external/imx/linux-imx.git;protocol=https"
13SRC_URI = " \ 13SRC_URI = " \
14 ${KERNEL_SRC};branch=${SRCBRANCH};subpath=drivers/mxc/gpu-viv;destsuffix=git/src \ 14 ${KERNEL_SRC};branch=${SRCBRANCH};subpath=drivers/mxc/gpu-viv;destsuffix=git/src \
15 file://Add-makefile.patch \ 15 file://Add-makefile.patch \
16" 16"
17SRCREV = "13b3c469663da0c79d385ce15887f6b5805f060d" 17SRCREV = "5b2559d9d66b0b9561fc42dd8007dfe4569573df"
18 18
19S = "${WORKDIR}/git" 19S = "${WORKDIR}/git"
20 20
diff --git a/recipes-kernel/kernel-modules/kernel-module-ipc-multi_git.bb b/recipes-kernel/kernel-modules/kernel-module-ipc-multi_git.bb
index 74e01bd9..c2effd01 100644
--- a/recipes-kernel/kernel-modules/kernel-module-ipc-multi_git.bb
+++ b/recipes-kernel/kernel-modules/kernel-module-ipc-multi_git.bb
@@ -7,7 +7,7 @@ do_install(){
7 install -m 755 ${S}/kernel/*.ko ${D}/usr/driver/IPC/multi_rat 7 install -m 755 ${S}/kernel/*.ko ${D}/usr/driver/IPC/multi_rat
8} 8}
9 9
10FILES_${PN} += "/usr/driver/IPC/multi_rat/*.ko" 10FILES:${PN} += "/usr/driver/IPC/multi_rat/*.ko"
11FILES_${PN}-dbg += "/usr/driver/IPC/multi_rat/.debug" 11FILES:${PN}-dbg += "/usr/driver/IPC/multi_rat/.debug"
12 12
13COMPATIBLE_MACHINE = "(b4860qds|b4420qds)" 13COMPATIBLE_MACHINE = "(b4860qds|b4420qds)"
diff --git a/recipes-kernel/kernel-modules/kernel-module-ipc-single_git.bb b/recipes-kernel/kernel-modules/kernel-module-ipc-single_git.bb
index 86155423..23418175 100644
--- a/recipes-kernel/kernel-modules/kernel-module-ipc-single_git.bb
+++ b/recipes-kernel/kernel-modules/kernel-module-ipc-single_git.bb
@@ -7,7 +7,7 @@ do_install(){
7 install -m 755 ${S}/kernel/*.ko ${D}/usr/driver/IPC/single_rat 7 install -m 755 ${S}/kernel/*.ko ${D}/usr/driver/IPC/single_rat
8} 8}
9 9
10FILES_${PN} += "/usr/driver/IPC/single_rat/*.ko" 10FILES:${PN} += "/usr/driver/IPC/single_rat/*.ko"
11FILES_${PN}-dbg += "/usr/driver/IPC/single_rat/.debug" 11FILES:${PN}-dbg += "/usr/driver/IPC/single_rat/.debug"
12 12
13COMPATIBLE_MACHINE = "(b4860qds|b4420qds)" 13COMPATIBLE_MACHINE = "(b4860qds|b4420qds)"
diff --git a/recipes-kernel/kernel-modules/kernel-module-ipc.inc b/recipes-kernel/kernel-modules/kernel-module-ipc.inc
index 350ba186..903c53a4 100644
--- a/recipes-kernel/kernel-modules/kernel-module-ipc.inc
+++ b/recipes-kernel/kernel-modules/kernel-module-ipc.inc
@@ -11,7 +11,7 @@ SRCREV = "74d662707558290f070f9589177db730444bc435"
11S = "${WORKDIR}/git" 11S = "${WORKDIR}/git"
12 12
13do_configure[depends] += "virtual/kernel:do_shared_workdir" 13do_configure[depends] += "virtual/kernel:do_shared_workdir"
14do_compile_prepend () { 14do_compile:prepend () {
15 cd ${S}/kernel 15 cd ${S}/kernel
16} 16}
17 17
diff --git a/recipes-kernel/kernel-modules/kernel-module-qca6174_3.0.bb b/recipes-kernel/kernel-modules/kernel-module-qca6174_3.0.bb
deleted file mode 100644
index f78a4c5b..00000000
--- a/recipes-kernel/kernel-modules/kernel-module-qca6174_3.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
1require kernel-module-qcacld-lea.inc
2
3SUMMARY = "Qualcomm WiFi driver for QCA module 6174"
4
5EXTRA_OEMAKE += " \
6 CONFIG_ROME_IF=pci \
7 CONFIG_WLAN_FEATURE_11W=y \
8 CONFIG_WLAN_FEATURE_FILS=y \
9 CONFIG_WLAN_WAPI_MODE_11AC_DISABLE=y \
10 MODNAME=qca6174 \
11 CONFIG_WLAN_FEATURE_DSRC=y \
12"
13
14RDEPENDS_${PN} += "firmware-qca6174"
diff --git a/recipes-kernel/kernel-modules/kernel-module-qca9377_3.1.bb b/recipes-kernel/kernel-modules/kernel-module-qca9377_3.1.bb
deleted file mode 100644
index fbc87ea2..00000000
--- a/recipes-kernel/kernel-modules/kernel-module-qca9377_3.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
1require kernel-module-qcacld-lea.inc
2
3SUMMARY = "Qualcomm WiFi driver for QCA module 9377"
4
5EXTRA_OEMAKE += " \
6 CONFIG_CLD_HL_SDIO_CORE=y \
7 CONFIG_FEATURE_COEX_PTA_CONFIG_ENABLE=y \
8 CONFIG_PER_VDEV_TX_DESC_POOL=1 \
9 CONFIG_QCA_LL_TX_FLOW_CT=1 \
10 CONFIG_QCA_SUPPORT_TXRX_DRIVER_TCP_DEL_ACK=y \
11 CONFIG_WLAN_FEATURE_FILS=y \
12 CONFIG_WLAN_WAPI_MODE_11AC_DISABLE=y \
13 MODNAME=qca9377 \
14 SAP_AUTH_OFFLOAD=1 \
15"
16
17RDEPENDS_${PN} += "firmware-qca9377"
diff --git a/recipes-kernel/kernel-modules/kernel-module-qcacld-lea.inc b/recipes-kernel/kernel-modules/kernel-module-qcacld-lea.inc
deleted file mode 100644
index 0b23a47c..00000000
--- a/recipes-kernel/kernel-modules/kernel-module-qcacld-lea.inc
+++ /dev/null
@@ -1,23 +0,0 @@
1SUMMARY = "Qualcomm WiFi driver for QCA module 9377 and 6174"
2LICENSE = "BSD & GPLv2"
3LIC_FILES_CHKSUM = "file://CORE/HDD/src/wlan_hdd_main.c;beginline=1;endline=20;md5=ec8d62116b13db773825ebf7cf91be1d;"
4
5QCACLD_SRC ?= "git://source.codeaurora.org/external/imx/qcacld-2.0-imx.git;protocol=https"
6SRC_URI = "${QCACLD_SRC};branch=IMX_CNSS.LEA.NRT_3.0_KRL5.4"
7SRCREV = "7dc91e5977f31d60741c55682564788c0f930163"
8
9S = "${WORKDIR}/git"
10
11inherit module
12
13EXTRA_OEMAKE += " \
14 CONFIG_CFG80211_INTERNAL_REGDB=y \
15 CONFIG_HDD_WLAN_WAIT_TIME=10000 \
16 CONFIG_LINUX_QCMBR=y \
17 CONFIG_NON_QC_PLATFORM=y \
18 CONFIG_PMF_SUPPORT=y \
19 TARGET_BUILD_VARIANT=user \
20"
21
22COMPATIBLE_MACHINE = "(imx)"
23COMPATIBLE_HOST_libc-musl = 'null'
diff --git a/recipes-kernel/linux/linux-fslc-imx_5.4.bb b/recipes-kernel/linux/linux-fslc-imx_5.4.bb
index b7a5cd82..83621e1b 100644
--- a/recipes-kernel/linux/linux-fslc-imx_5.4.bb
+++ b/recipes-kernel/linux/linux-fslc-imx_5.4.bb
@@ -28,7 +28,7 @@ Latest stable Kernel patchlevel is applied and maintained by Community."
28# ------------------------------------------------------------------------------ 28# ------------------------------------------------------------------------------
29# 1. Stable (tag or SHA(s)) 29# 1. Stable (tag or SHA(s))
30# ------------------------------------------------------------------------------ 30# ------------------------------------------------------------------------------
31# tag: v5.4.134 31# tag: v5.4.147
32# 32#
33# ------------------------------------------------------------------------------ 33# ------------------------------------------------------------------------------
34# 2. NXP-specific (tag or SHA(s)) 34# 2. NXP-specific (tag or SHA(s))
@@ -86,14 +86,14 @@ LICENSE = "GPLv2"
86LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" 86LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
87 87
88KBRANCH = "5.4-2.3.x-imx" 88KBRANCH = "5.4-2.3.x-imx"
89SRCREV = "e3b082933caab27829e775606708381fe1b7c3ba" 89SRCREV = "aad410850445424f566e57a419527b6e2d3ab42d"
90 90
91# PV is defined in the base in linux-imx.inc file and uses the LINUX_VERSION definition 91# PV is defined in the base in linux-imx.inc file and uses the LINUX_VERSION definition
92# required by kernel-yocto.bbclass. 92# required by kernel-yocto.bbclass.
93# 93#
94# LINUX_VERSION define should match to the kernel version referenced by SRC_URI and 94# LINUX_VERSION define should match to the kernel version referenced by SRC_URI and
95# should be updated once patchlevel is merged. 95# should be updated once patchlevel is merged.
96LINUX_VERSION = "5.4.134" 96LINUX_VERSION = "5.4.147"
97 97
98# Local version indicates the branch name in the NXP kernel tree where patches are collected from. 98# Local version indicates the branch name in the NXP kernel tree where patches are collected from.
99LOCALVERSION = "-5.4.70-2.3.0" 99LOCALVERSION = "-5.4.70-2.3.0"
diff --git a/recipes-kernel/linux/linux-fslc-lts-mfgtool_5.10.bb b/recipes-kernel/linux/linux-fslc-lts-mfgtool_5.10.bb
index 63527d13..95dd72fb 100644
--- a/recipes-kernel/linux/linux-fslc-lts-mfgtool_5.10.bb
+++ b/recipes-kernel/linux/linux-fslc-lts-mfgtool_5.10.bb
@@ -6,7 +6,7 @@ DESCRIPTION = "Linux Kernel provided and supported by the Freescale Community \
6that produces a Manufacturing Tool compatible Linux Kernel to be used in updater \ 6that produces a Manufacturing Tool compatible Linux Kernel to be used in updater \
7environment" 7environment"
8 8
9FILESEXTRAPATHS_prepend := "${THISDIR}/linux-fslc:" 9FILESEXTRAPATHS:prepend := "${THISDIR}/linux-fslc:"
10require linux-fslc-lts_${PV}.bb 10require linux-fslc-lts_${PV}.bb
11require linux-mfgtool.inc 11require linux-mfgtool.inc
12 12
diff --git a/recipes-kernel/linux/linux-fslc-lts_5.10.bb b/recipes-kernel/linux/linux-fslc-lts_5.10.bb
index 6af937a7..fee8859f 100644
--- a/recipes-kernel/linux/linux-fslc-lts_5.10.bb
+++ b/recipes-kernel/linux/linux-fslc-lts_5.10.bb
@@ -19,9 +19,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
19# 19#
20# LINUX_VERSION define should match to the kernel version referenced by SRC_URI and 20# LINUX_VERSION define should match to the kernel version referenced by SRC_URI and
21# should be updated once patchlevel is merged. 21# should be updated once patchlevel is merged.
22LINUX_VERSION = "5.10.52" 22LINUX_VERSION = "5.10.67"
23 23
24KBRANCH = "5.10.x+fslc" 24KBRANCH = "5.10.x+fslc"
25SRCREV = "cb67a3e29a88e06e2891f8e2aac289305d8f08ff" 25SRCREV = "5d6224bd7e38de87fa7dcef0046e6f7377d68660"
26 26
27COMPATIBLE_MACHINE = "(mxs|mx5|mx6|vf|use-mainline-bsp)" 27COMPATIBLE_MACHINE = "(mxs|mx5|mx6|vf|use-mainline-bsp)"
diff --git a/recipes-kernel/linux/linux-fslc-mfgtool_5.12.bb b/recipes-kernel/linux/linux-fslc-mfgtool_5.14.bb
index c155ebb9..09d35c91 100644
--- a/recipes-kernel/linux/linux-fslc-mfgtool_5.12.bb
+++ b/recipes-kernel/linux/linux-fslc-mfgtool_5.14.bb
@@ -6,7 +6,7 @@ DESCRIPTION = "Linux Kernel provided and supported by the Freescale Community \
6that produces a Manufacturing Tool compatible Linux Kernel to be used in updater \ 6that produces a Manufacturing Tool compatible Linux Kernel to be used in updater \
7environment" 7environment"
8 8
9FILESEXTRAPATHS_prepend := "${THISDIR}/linux-fslc:" 9FILESEXTRAPATHS:prepend := "${THISDIR}/linux-fslc:"
10require linux-fslc_${PV}.bb 10require linux-fslc_${PV}.bb
11require linux-mfgtool.inc 11require linux-mfgtool.inc
12 12
diff --git a/recipes-kernel/linux/linux-fslc/armv8a/defconfig b/recipes-kernel/linux/linux-fslc/armv8a/defconfig
index 612b48fd..65a142a3 100644
--- a/recipes-kernel/linux/linux-fslc/armv8a/defconfig
+++ b/recipes-kernel/linux/linux-fslc/armv8a/defconfig
@@ -29,8 +29,10 @@ CONFIG_KALLSYMS_ALL=y
29CONFIG_PROFILING=y 29CONFIG_PROFILING=y
30CONFIG_ARCH_ACTIONS=y 30CONFIG_ARCH_ACTIONS=y
31CONFIG_ARCH_AGILEX=y 31CONFIG_ARCH_AGILEX=y
32CONFIG_ARCH_N5X=y
32CONFIG_ARCH_SUNXI=y 33CONFIG_ARCH_SUNXI=y
33CONFIG_ARCH_ALPINE=y 34CONFIG_ARCH_ALPINE=y
35CONFIG_ARCH_APPLE=y
34CONFIG_ARCH_BCM2835=y 36CONFIG_ARCH_BCM2835=y
35CONFIG_ARCH_BCM4908=y 37CONFIG_ARCH_BCM4908=y
36CONFIG_ARCH_BCM_IPROC=y 38CONFIG_ARCH_BCM_IPROC=y
@@ -41,6 +43,7 @@ CONFIG_ARCH_K3=y
41CONFIG_ARCH_LAYERSCAPE=y 43CONFIG_ARCH_LAYERSCAPE=y
42CONFIG_ARCH_LG1K=y 44CONFIG_ARCH_LG1K=y
43CONFIG_ARCH_HISI=y 45CONFIG_ARCH_HISI=y
46CONFIG_ARCH_KEEMBAY=y
44CONFIG_ARCH_MEDIATEK=y 47CONFIG_ARCH_MEDIATEK=y
45CONFIG_ARCH_MESON=y 48CONFIG_ARCH_MESON=y
46CONFIG_ARCH_MVEBU=y 49CONFIG_ARCH_MVEBU=y
@@ -50,7 +53,7 @@ CONFIG_ARCH_RENESAS=y
50CONFIG_ARCH_ROCKCHIP=y 53CONFIG_ARCH_ROCKCHIP=y
51CONFIG_ARCH_S32=y 54CONFIG_ARCH_S32=y
52CONFIG_ARCH_SEATTLE=y 55CONFIG_ARCH_SEATTLE=y
53CONFIG_ARCH_STRATIX10=y 56CONFIG_ARCH_INTEL_SOCFPGA=y
54CONFIG_ARCH_SYNQUACER=y 57CONFIG_ARCH_SYNQUACER=y
55CONFIG_ARCH_TEGRA=y 58CONFIG_ARCH_TEGRA=y
56CONFIG_ARCH_SPRD=y 59CONFIG_ARCH_SPRD=y
@@ -226,6 +229,7 @@ CONFIG_PCI_HOST_THUNDER_PEM=y
226CONFIG_PCI_HOST_THUNDER_ECAM=y 229CONFIG_PCI_HOST_THUNDER_ECAM=y
227CONFIG_PCIE_ROCKCHIP_HOST=m 230CONFIG_PCIE_ROCKCHIP_HOST=m
228CONFIG_PCIE_BRCMSTB=m 231CONFIG_PCIE_BRCMSTB=m
232CONFIG_PCI_IMX6=y
229CONFIG_PCI_LAYERSCAPE=y 233CONFIG_PCI_LAYERSCAPE=y
230CONFIG_PCIE_LAYERSCAPE_GEN4=y 234CONFIG_PCIE_LAYERSCAPE_GEN4=y
231CONFIG_PCI_HISI=y 235CONFIG_PCI_HISI=y
@@ -286,6 +290,7 @@ CONFIG_SCSI_UFSHCD=y
286CONFIG_SCSI_UFSHCD_PLATFORM=y 290CONFIG_SCSI_UFSHCD_PLATFORM=y
287CONFIG_SCSI_UFS_QCOM=m 291CONFIG_SCSI_UFS_QCOM=m
288CONFIG_SCSI_UFS_HISI=y 292CONFIG_SCSI_UFS_HISI=y
293CONFIG_SCSI_UFS_EXYNOS=y
289CONFIG_ATA=y 294CONFIG_ATA=y
290CONFIG_SATA_AHCI=y 295CONFIG_SATA_AHCI=y
291CONFIG_SATA_AHCI_PLATFORM=y 296CONFIG_SATA_AHCI_PLATFORM=y
@@ -360,7 +365,7 @@ CONFIG_MESON_GXL_PHY=m
360CONFIG_MICREL_PHY=y 365CONFIG_MICREL_PHY=y
361CONFIG_MICROSEMI_PHY=y 366CONFIG_MICROSEMI_PHY=y
362CONFIG_AT803X_PHY=y 367CONFIG_AT803X_PHY=y
363CONFIG_REALTEK_PHY=m 368CONFIG_REALTEK_PHY=y
364CONFIG_ROCKCHIP_PHY=y 369CONFIG_ROCKCHIP_PHY=y
365CONFIG_VITESSE_PHY=y 370CONFIG_VITESSE_PHY=y
366CONFIG_USB_PEGASUS=m 371CONFIG_USB_PEGASUS=m
@@ -449,6 +454,7 @@ CONFIG_I2C_GPIO=m
449CONFIG_I2C_IMX=y 454CONFIG_I2C_IMX=y
450CONFIG_I2C_IMX_LPI2C=y 455CONFIG_I2C_IMX_LPI2C=y
451CONFIG_I2C_MESON=y 456CONFIG_I2C_MESON=y
457CONFIG_I2C_MT65XX=y
452CONFIG_I2C_MV64XXX=y 458CONFIG_I2C_MV64XXX=y
453CONFIG_I2C_OMAP=y 459CONFIG_I2C_OMAP=y
454CONFIG_I2C_OWL=y 460CONFIG_I2C_OWL=y
@@ -466,6 +472,9 @@ CONFIG_SPI=y
466CONFIG_SPI_ARMADA_3700=y 472CONFIG_SPI_ARMADA_3700=y
467CONFIG_SPI_BCM2835=m 473CONFIG_SPI_BCM2835=m
468CONFIG_SPI_BCM2835AUX=m 474CONFIG_SPI_BCM2835AUX=m
475CONFIG_SPI_DESIGNWARE=m
476CONFIG_SPI_DW_DMA=y
477CONFIG_SPI_DW_MMIO=m
469CONFIG_SPI_FSL_LPSPI=y 478CONFIG_SPI_FSL_LPSPI=y
470CONFIG_SPI_FSL_QUADSPI=y 479CONFIG_SPI_FSL_QUADSPI=y
471CONFIG_SPI_NXP_FLEXSPI=y 480CONFIG_SPI_NXP_FLEXSPI=y
@@ -484,7 +493,6 @@ CONFIG_SPI_S3C64XX=y
484CONFIG_SPI_SH_MSIOF=m 493CONFIG_SPI_SH_MSIOF=m
485CONFIG_SPI_SUN6I=y 494CONFIG_SPI_SUN6I=y
486CONFIG_SPI_SPIDEV=m 495CONFIG_SPI_SPIDEV=m
487CONFIG_MTK_PMIC_WRAP=m
488CONFIG_SPMI=y 496CONFIG_SPMI=y
489CONFIG_PINCTRL_SINGLE=y 497CONFIG_PINCTRL_SINGLE=y
490CONFIG_PINCTRL_MAX77620=y 498CONFIG_PINCTRL_MAX77620=y
@@ -495,6 +503,7 @@ CONFIG_PINCTRL_IMX8MM=y
495CONFIG_PINCTRL_IMX8MN=y 503CONFIG_PINCTRL_IMX8MN=y
496CONFIG_PINCTRL_IMX8MP=y 504CONFIG_PINCTRL_IMX8MP=y
497CONFIG_PINCTRL_IMX8MQ=y 505CONFIG_PINCTRL_IMX8MQ=y
506CONFIG_PINCTRL_IMX8QM=y
498CONFIG_PINCTRL_IMX8QXP=y 507CONFIG_PINCTRL_IMX8QXP=y
499CONFIG_PINCTRL_IMX8DXL=y 508CONFIG_PINCTRL_IMX8DXL=y
500CONFIG_PINCTRL_MSM=y 509CONFIG_PINCTRL_MSM=y
@@ -511,6 +520,7 @@ CONFIG_PINCTRL_SC7180=y
511CONFIG_PINCTRL_SDM845=y 520CONFIG_PINCTRL_SDM845=y
512CONFIG_PINCTRL_SM8150=y 521CONFIG_PINCTRL_SM8150=y
513CONFIG_PINCTRL_SM8250=y 522CONFIG_PINCTRL_SM8250=y
523CONFIG_PINCTRL_SM8350=y
514CONFIG_PINCTRL_LPASS_LPI=m 524CONFIG_PINCTRL_LPASS_LPI=m
515CONFIG_GPIO_ALTERA=m 525CONFIG_GPIO_ALTERA=m
516CONFIG_GPIO_DAVINCI=y 526CONFIG_GPIO_DAVINCI=y
@@ -521,6 +531,7 @@ CONFIG_GPIO_MXC=y
521CONFIG_GPIO_PL061=y 531CONFIG_GPIO_PL061=y
522CONFIG_GPIO_RCAR=y 532CONFIG_GPIO_RCAR=y
523CONFIG_GPIO_UNIPHIER=y 533CONFIG_GPIO_UNIPHIER=y
534CONFIG_GPIO_VISCONTI=y
524CONFIG_GPIO_WCD934X=m 535CONFIG_GPIO_WCD934X=m
525CONFIG_GPIO_XGENE=y 536CONFIG_GPIO_XGENE=y
526CONFIG_GPIO_XGENE_SB=y 537CONFIG_GPIO_XGENE_SB=y
@@ -595,6 +606,7 @@ CONFIG_MFD_EXYNOS_LPASS=m
595CONFIG_MFD_HI6421_PMIC=y 606CONFIG_MFD_HI6421_PMIC=y
596CONFIG_MFD_HI655X_PMIC=y 607CONFIG_MFD_HI655X_PMIC=y
597CONFIG_MFD_MAX77620=y 608CONFIG_MFD_MAX77620=y
609CONFIG_MFD_MT6397=y
598CONFIG_MFD_SPMI_PMIC=y 610CONFIG_MFD_SPMI_PMIC=y
599CONFIG_MFD_RK808=y 611CONFIG_MFD_RK808=y
600CONFIG_MFD_SEC_CORE=y 612CONFIG_MFD_SEC_CORE=y
@@ -612,6 +624,8 @@ CONFIG_REGULATOR_HI655X=y
612CONFIG_REGULATOR_MAX77620=y 624CONFIG_REGULATOR_MAX77620=y
613CONFIG_REGULATOR_MAX8973=y 625CONFIG_REGULATOR_MAX8973=y
614CONFIG_REGULATOR_MP8859=y 626CONFIG_REGULATOR_MP8859=y
627CONFIG_REGULATOR_MT6358=y
628CONFIG_REGULATOR_MT6397=y
615CONFIG_REGULATOR_PCA9450=y 629CONFIG_REGULATOR_PCA9450=y
616CONFIG_REGULATOR_PF8X00=y 630CONFIG_REGULATOR_PF8X00=y
617CONFIG_REGULATOR_PFUZE100=y 631CONFIG_REGULATOR_PFUZE100=y
@@ -650,6 +664,7 @@ CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
650CONFIG_VIDEO_RENESAS_FDP1=m 664CONFIG_VIDEO_RENESAS_FDP1=m
651CONFIG_VIDEO_RENESAS_FCP=m 665CONFIG_VIDEO_RENESAS_FCP=m
652CONFIG_VIDEO_RENESAS_VSP1=m 666CONFIG_VIDEO_RENESAS_VSP1=m
667CONFIG_VIDEO_QCOM_VENUS=m
653CONFIG_SDR_PLATFORM_DRIVERS=y 668CONFIG_SDR_PLATFORM_DRIVERS=y
654CONFIG_VIDEO_RCAR_DRIF=m 669CONFIG_VIDEO_RCAR_DRIF=m
655CONFIG_VIDEO_IMX219=m 670CONFIG_VIDEO_IMX219=m
@@ -683,13 +698,16 @@ CONFIG_DRM_MSM=m
683CONFIG_DRM_TEGRA=m 698CONFIG_DRM_TEGRA=m
684CONFIG_DRM_PANEL_LVDS=m 699CONFIG_DRM_PANEL_LVDS=m
685CONFIG_DRM_PANEL_SIMPLE=m 700CONFIG_DRM_PANEL_SIMPLE=m
701CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m
686CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m 702CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
687CONFIG_DRM_PANEL_RAYDIUM_RM67191=m 703CONFIG_DRM_PANEL_RAYDIUM_RM67191=m
688CONFIG_DRM_PANEL_SITRONIX_ST7703=m 704CONFIG_DRM_PANEL_SITRONIX_ST7703=m
689CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m 705CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
690CONFIG_DRM_DISPLAY_CONNECTOR=m 706CONFIG_DRM_DISPLAY_CONNECTOR=m
707CONFIG_DRM_LONTIUM_LT8912B=m
691CONFIG_DRM_NWL_MIPI_DSI=m 708CONFIG_DRM_NWL_MIPI_DSI=m
692CONFIG_DRM_LONTIUM_LT9611=m 709CONFIG_DRM_LONTIUM_LT9611=m
710CONFIG_DRM_PARADE_PS8640=m
693CONFIG_DRM_SII902X=m 711CONFIG_DRM_SII902X=m
694CONFIG_DRM_SIMPLE_BRIDGE=m 712CONFIG_DRM_SIMPLE_BRIDGE=m
695CONFIG_DRM_THINE_THC63LVD1024=m 713CONFIG_DRM_THINE_THC63LVD1024=m
@@ -704,6 +722,8 @@ CONFIG_DRM_VC4=m
704CONFIG_DRM_ETNAVIV=m 722CONFIG_DRM_ETNAVIV=m
705CONFIG_DRM_HISI_HIBMC=m 723CONFIG_DRM_HISI_HIBMC=m
706CONFIG_DRM_HISI_KIRIN=m 724CONFIG_DRM_HISI_KIRIN=m
725CONFIG_DRM_MEDIATEK=m
726CONFIG_DRM_MEDIATEK_HDMI=m
707CONFIG_DRM_MXSFB=m 727CONFIG_DRM_MXSFB=m
708CONFIG_DRM_MESON=m 728CONFIG_DRM_MESON=m
709CONFIG_DRM_PL111=m 729CONFIG_DRM_PL111=m
@@ -758,12 +778,16 @@ CONFIG_SND_SOC_AK4613=m
758CONFIG_SND_SOC_ES7134=m 778CONFIG_SND_SOC_ES7134=m
759CONFIG_SND_SOC_ES7241=m 779CONFIG_SND_SOC_ES7241=m
760CONFIG_SND_SOC_GTM601=m 780CONFIG_SND_SOC_GTM601=m
781CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
782CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
761CONFIG_SND_SOC_PCM3168A_I2C=m 783CONFIG_SND_SOC_PCM3168A_I2C=m
762CONFIG_SND_SOC_RT5659=m 784CONFIG_SND_SOC_RT5659=m
763CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m 785CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
786CONFIG_SND_SOC_SIMPLE_MUX=m
764CONFIG_SND_SOC_TAS571X=m 787CONFIG_SND_SOC_TAS571X=m
765CONFIG_SND_SOC_WCD934X=m 788CONFIG_SND_SOC_WCD934X=m
766CONFIG_SND_SOC_WM8904=m 789CONFIG_SND_SOC_WM8904=m
790CONFIG_SND_SOC_WM8960=m
767CONFIG_SND_SOC_WM8962=m 791CONFIG_SND_SOC_WM8962=m
768CONFIG_SND_SOC_WSA881X=m 792CONFIG_SND_SOC_WSA881X=m
769CONFIG_SND_SOC_LPASS_WSA_MACRO=m 793CONFIG_SND_SOC_LPASS_WSA_MACRO=m
@@ -777,6 +801,8 @@ CONFIG_USB_CONN_GPIO=m
777CONFIG_USB=y 801CONFIG_USB=y
778CONFIG_USB_OTG=y 802CONFIG_USB_OTG=y
779CONFIG_USB_XHCI_HCD=y 803CONFIG_USB_XHCI_HCD=y
804CONFIG_USB_XHCI_PCI=m
805CONFIG_USB_XHCI_PCI_RENESAS=m
780CONFIG_USB_XHCI_TEGRA=y 806CONFIG_USB_XHCI_TEGRA=y
781CONFIG_USB_EHCI_HCD=y 807CONFIG_USB_EHCI_HCD=y
782CONFIG_USB_EHCI_EXYNOS=y 808CONFIG_USB_EHCI_EXYNOS=y
@@ -788,6 +814,7 @@ CONFIG_USB_RENESAS_USBHS_HCD=m
788CONFIG_USB_RENESAS_USBHS=m 814CONFIG_USB_RENESAS_USBHS=m
789CONFIG_USB_ACM=m 815CONFIG_USB_ACM=m
790CONFIG_USB_STORAGE=y 816CONFIG_USB_STORAGE=y
817CONFIG_USB_MTU3=y
791CONFIG_USB_MUSB_HDRC=y 818CONFIG_USB_MUSB_HDRC=y
792CONFIG_USB_MUSB_SUNXI=y 819CONFIG_USB_MUSB_SUNXI=y
793CONFIG_USB_DWC3=y 820CONFIG_USB_DWC3=y
@@ -847,6 +874,7 @@ CONFIG_MMC_DW_K3=y
847CONFIG_MMC_DW_ROCKCHIP=y 874CONFIG_MMC_DW_ROCKCHIP=y
848CONFIG_MMC_SUNXI=y 875CONFIG_MMC_SUNXI=y
849CONFIG_MMC_BCM2835=y 876CONFIG_MMC_BCM2835=y
877CONFIG_MMC_MTK=y
850CONFIG_MMC_SDHCI_XENON=y 878CONFIG_MMC_SDHCI_XENON=y
851CONFIG_MMC_SDHCI_AM654=y 879CONFIG_MMC_SDHCI_AM654=y
852CONFIG_MMC_OWL=y 880CONFIG_MMC_OWL=y
@@ -865,6 +893,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
865CONFIG_LEDS_TRIGGER_PANIC=y 893CONFIG_LEDS_TRIGGER_PANIC=y
866CONFIG_EDAC=y 894CONFIG_EDAC=y
867CONFIG_EDAC_GHES=y 895CONFIG_EDAC_GHES=y
896CONFIG_EDAC_LAYERSCAPE=m
868CONFIG_RTC_CLASS=y 897CONFIG_RTC_CLASS=y
869CONFIG_RTC_DRV_DS1307=m 898CONFIG_RTC_DRV_DS1307=m
870CONFIG_RTC_DRV_HYM8563=m 899CONFIG_RTC_DRV_HYM8563=m
@@ -880,6 +909,7 @@ CONFIG_RTC_DRV_DS3232=y
880CONFIG_RTC_DRV_PCF2127=m 909CONFIG_RTC_DRV_PCF2127=m
881CONFIG_RTC_DRV_EFI=y 910CONFIG_RTC_DRV_EFI=y
882CONFIG_RTC_DRV_CROS_EC=y 911CONFIG_RTC_DRV_CROS_EC=y
912CONFIG_RTC_DRV_FSL_FTM_ALARM=m
883CONFIG_RTC_DRV_S3C=y 913CONFIG_RTC_DRV_S3C=y
884CONFIG_RTC_DRV_PL031=y 914CONFIG_RTC_DRV_PL031=y
885CONFIG_RTC_DRV_SUN6I=y 915CONFIG_RTC_DRV_SUN6I=y
@@ -916,6 +946,9 @@ CONFIG_VIRTIO_MMIO=y
916CONFIG_XEN_GNTDEV=y 946CONFIG_XEN_GNTDEV=y
917CONFIG_XEN_GRANT_DEV_ALLOC=y 947CONFIG_XEN_GRANT_DEV_ALLOC=y
918CONFIG_MFD_CROS_EC_DEV=y 948CONFIG_MFD_CROS_EC_DEV=y
949CONFIG_STAGING=y
950CONFIG_STAGING_MEDIA=y
951CONFIG_VIDEO_HANTRO=m
919CONFIG_CHROME_PLATFORMS=y 952CONFIG_CHROME_PLATFORMS=y
920CONFIG_CROS_EC=y 953CONFIG_CROS_EC=y
921CONFIG_CROS_EC_I2C=y 954CONFIG_CROS_EC_I2C=y
@@ -958,11 +991,13 @@ CONFIG_SDM_VIDEOCC_845=y
958CONFIG_SDM_DISPCC_845=y 991CONFIG_SDM_DISPCC_845=y
959CONFIG_SM_GCC_8150=y 992CONFIG_SM_GCC_8150=y
960CONFIG_SM_GCC_8250=y 993CONFIG_SM_GCC_8250=y
994CONFIG_SM_GCC_8350=y
961CONFIG_SM_GPUCC_8150=y 995CONFIG_SM_GPUCC_8150=y
962CONFIG_SM_GPUCC_8250=y 996CONFIG_SM_GPUCC_8250=y
963CONFIG_SM_DISPCC_8250=y 997CONFIG_SM_DISPCC_8250=y
964CONFIG_QCOM_HFPLL=y 998CONFIG_QCOM_HFPLL=y
965CONFIG_CLK_GFM_LPASS_SM8250=m 999CONFIG_CLK_GFM_LPASS_SM8250=m
1000CONFIG_CLK_RCAR_USB2_CLOCK_SEL=y
966CONFIG_HWSPINLOCK=y 1001CONFIG_HWSPINLOCK=y
967CONFIG_HWSPINLOCK_QCOM=y 1002CONFIG_HWSPINLOCK_QCOM=y
968CONFIG_ARM_MHU=y 1003CONFIG_ARM_MHU=y
@@ -975,6 +1010,7 @@ CONFIG_ROCKCHIP_IOMMU=y
975CONFIG_TEGRA_IOMMU_SMMU=y 1010CONFIG_TEGRA_IOMMU_SMMU=y
976CONFIG_ARM_SMMU=y 1011CONFIG_ARM_SMMU=y
977CONFIG_ARM_SMMU_V3=y 1012CONFIG_ARM_SMMU_V3=y
1013CONFIG_MTK_IOMMU=y
978CONFIG_QCOM_IOMMU=y 1014CONFIG_QCOM_IOMMU=y
979CONFIG_REMOTEPROC=y 1015CONFIG_REMOTEPROC=y
980CONFIG_QCOM_Q6V5_MSS=m 1016CONFIG_QCOM_Q6V5_MSS=m
@@ -989,6 +1025,8 @@ CONFIG_OWL_PM_DOMAINS=y
989CONFIG_RASPBERRYPI_POWER=y 1025CONFIG_RASPBERRYPI_POWER=y
990CONFIG_FSL_DPAA=y 1026CONFIG_FSL_DPAA=y
991CONFIG_FSL_MC_DPIO=y 1027CONFIG_FSL_MC_DPIO=y
1028CONFIG_FSL_RCPM=y
1029CONFIG_MTK_PMIC_WRAP=y
992CONFIG_QCOM_AOSS_QMP=y 1030CONFIG_QCOM_AOSS_QMP=y
993CONFIG_QCOM_COMMAND_DB=y 1031CONFIG_QCOM_COMMAND_DB=y
994CONFIG_QCOM_GENI_SE=y 1032CONFIG_QCOM_GENI_SE=y
@@ -1016,6 +1054,7 @@ CONFIG_ARCH_R8A77980=y
1016CONFIG_ARCH_R8A77990=y 1054CONFIG_ARCH_R8A77990=y
1017CONFIG_ARCH_R8A77995=y 1055CONFIG_ARCH_R8A77995=y
1018CONFIG_ARCH_R8A779A0=y 1056CONFIG_ARCH_R8A779A0=y
1057CONFIG_ARCH_R9A07G044=y
1019CONFIG_ROCKCHIP_PM_DOMAINS=y 1058CONFIG_ROCKCHIP_PM_DOMAINS=y
1020CONFIG_ARCH_TEGRA_132_SOC=y 1059CONFIG_ARCH_TEGRA_132_SOC=y
1021CONFIG_ARCH_TEGRA_210_SOC=y 1060CONFIG_ARCH_TEGRA_210_SOC=y
@@ -1023,6 +1062,8 @@ CONFIG_ARCH_TEGRA_186_SOC=y
1023CONFIG_ARCH_TEGRA_194_SOC=y 1062CONFIG_ARCH_TEGRA_194_SOC=y
1024CONFIG_ARCH_TEGRA_234_SOC=y 1063CONFIG_ARCH_TEGRA_234_SOC=y
1025CONFIG_TI_SCI_PM_DOMAINS=y 1064CONFIG_TI_SCI_PM_DOMAINS=y
1065CONFIG_ARM_IMX_BUS_DEVFREQ=m
1066CONFIG_ARM_IMX8M_DDRC_DEVFREQ=m
1026CONFIG_EXTCON_PTN5150=m 1067CONFIG_EXTCON_PTN5150=m
1027CONFIG_EXTCON_USB_GPIO=y 1068CONFIG_EXTCON_USB_GPIO=y
1028CONFIG_EXTCON_USBC_CROS_EC=y 1069CONFIG_EXTCON_USBC_CROS_EC=y
@@ -1030,6 +1071,7 @@ CONFIG_RENESAS_RPCIF=m
1030CONFIG_IIO=y 1071CONFIG_IIO=y
1031CONFIG_EXYNOS_ADC=y 1072CONFIG_EXYNOS_ADC=y
1032CONFIG_MAX9611=m 1073CONFIG_MAX9611=m
1074CONFIG_QCOM_SPMI_VADC=m
1033CONFIG_QCOM_SPMI_ADC5=m 1075CONFIG_QCOM_SPMI_ADC5=m
1034CONFIG_ROCKCHIP_SARADC=m 1076CONFIG_ROCKCHIP_SARADC=m
1035CONFIG_IIO_CROS_EC_SENSORS_CORE=m 1077CONFIG_IIO_CROS_EC_SENSORS_CORE=m
@@ -1046,12 +1088,15 @@ CONFIG_PWM_BCM2835=m
1046CONFIG_PWM_CROS_EC=m 1088CONFIG_PWM_CROS_EC=m
1047CONFIG_PWM_IMX27=m 1089CONFIG_PWM_IMX27=m
1048CONFIG_PWM_MESON=m 1090CONFIG_PWM_MESON=m
1091CONFIG_PWM_MTK_DISP=m
1092CONFIG_PWM_MEDIATEK=m
1049CONFIG_PWM_RCAR=m 1093CONFIG_PWM_RCAR=m
1050CONFIG_PWM_ROCKCHIP=y 1094CONFIG_PWM_ROCKCHIP=y
1051CONFIG_PWM_SAMSUNG=y 1095CONFIG_PWM_SAMSUNG=y
1052CONFIG_PWM_SL28CPLD=m 1096CONFIG_PWM_SL28CPLD=m
1053CONFIG_PWM_SUN4I=m 1097CONFIG_PWM_SUN4I=m
1054CONFIG_PWM_TEGRA=m 1098CONFIG_PWM_TEGRA=m
1099CONFIG_PWM_VISCONTI=m
1055CONFIG_SL28CPLD_INTC=y 1100CONFIG_SL28CPLD_INTC=y
1056CONFIG_QCOM_PDC=y 1101CONFIG_QCOM_PDC=y
1057CONFIG_RESET_IMX7=y 1102CONFIG_RESET_IMX7=y
@@ -1065,6 +1110,7 @@ CONFIG_PHY_HI6220_USB=y
1065CONFIG_PHY_HISTB_COMBPHY=y 1110CONFIG_PHY_HISTB_COMBPHY=y
1066CONFIG_PHY_HISI_INNO_USB2=y 1111CONFIG_PHY_HISI_INNO_USB2=y
1067CONFIG_PHY_MVEBU_CP110_COMPHY=y 1112CONFIG_PHY_MVEBU_CP110_COMPHY=y
1113CONFIG_PHY_MTK_TPHY=y
1068CONFIG_PHY_QCOM_QMP=m 1114CONFIG_PHY_QCOM_QMP=m
1069CONFIG_PHY_QCOM_QUSB2=m 1115CONFIG_PHY_QCOM_QUSB2=m
1070CONFIG_PHY_QCOM_USB_HS=y 1116CONFIG_PHY_QCOM_USB_HS=y
@@ -1078,6 +1124,7 @@ CONFIG_PHY_ROCKCHIP_INNO_USB2=y
1078CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY=m 1124CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY=m
1079CONFIG_PHY_ROCKCHIP_PCIE=m 1125CONFIG_PHY_ROCKCHIP_PCIE=m
1080CONFIG_PHY_ROCKCHIP_TYPEC=y 1126CONFIG_PHY_ROCKCHIP_TYPEC=y
1127CONFIG_PHY_SAMSUNG_UFS=y
1081CONFIG_PHY_UNIPHIER_USB2=y 1128CONFIG_PHY_UNIPHIER_USB2=y
1082CONFIG_PHY_UNIPHIER_USB3=y 1129CONFIG_PHY_UNIPHIER_USB3=y
1083CONFIG_PHY_TEGRA_XUSB=y 1130CONFIG_PHY_TEGRA_XUSB=y
@@ -1089,6 +1136,7 @@ CONFIG_QCOM_L3_PMU=y
1089CONFIG_NVMEM_IMX_OCOTP=y 1136CONFIG_NVMEM_IMX_OCOTP=y
1090CONFIG_NVMEM_IMX_OCOTP_SCU=y 1137CONFIG_NVMEM_IMX_OCOTP_SCU=y
1091CONFIG_QCOM_QFPROM=y 1138CONFIG_QCOM_QFPROM=y
1139CONFIG_MTK_EFUSE=y
1092CONFIG_ROCKCHIP_EFUSE=y 1140CONFIG_ROCKCHIP_EFUSE=y
1093CONFIG_NVMEM_SUNXI_SID=y 1141CONFIG_NVMEM_SUNXI_SID=y
1094CONFIG_UNIPHIER_EFUSE=y 1142CONFIG_UNIPHIER_EFUSE=y
@@ -1115,6 +1163,7 @@ CONFIG_INTERCONNECT_QCOM_OSM_L3=m
1115CONFIG_INTERCONNECT_QCOM_SDM845=y 1163CONFIG_INTERCONNECT_QCOM_SDM845=y
1116CONFIG_INTERCONNECT_QCOM_SM8150=m 1164CONFIG_INTERCONNECT_QCOM_SM8150=m
1117CONFIG_INTERCONNECT_QCOM_SM8250=m 1165CONFIG_INTERCONNECT_QCOM_SM8250=m
1166CONFIG_INTERCONNECT_QCOM_SM8350=m
1118CONFIG_EXT2_FS=y 1167CONFIG_EXT2_FS=y
1119CONFIG_EXT3_FS=y 1168CONFIG_EXT3_FS=y
1120CONFIG_EXT4_FS_POSIX_ACL=y 1169CONFIG_EXT4_FS_POSIX_ACL=y
@@ -1157,6 +1206,7 @@ CONFIG_CRYPTO_DEV_HISI_TRNG=m
1157CONFIG_CMA_SIZE_MBYTES=32 1206CONFIG_CMA_SIZE_MBYTES=32
1158CONFIG_PRINTK_TIME=y 1207CONFIG_PRINTK_TIME=y
1159CONFIG_DEBUG_INFO=y 1208CONFIG_DEBUG_INFO=y
1209CONFIG_DEBUG_INFO_REDUCED=y
1160CONFIG_MAGIC_SYSRQ=y 1210CONFIG_MAGIC_SYSRQ=y
1161CONFIG_DEBUG_FS=y 1211CONFIG_DEBUG_FS=y
1162CONFIG_DEBUG_KERNEL=y 1212CONFIG_DEBUG_KERNEL=y
diff --git a/recipes-kernel/linux/linux-fslc_5.12.bb b/recipes-kernel/linux/linux-fslc_5.14.bb
index ed24bcfd..f67c1b7b 100644
--- a/recipes-kernel/linux/linux-fslc_5.12.bb
+++ b/recipes-kernel/linux/linux-fslc_5.14.bb
@@ -19,9 +19,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
19# 19#
20# LINUX_VERSION define should match to the kernel version referenced by SRC_URI and 20# LINUX_VERSION define should match to the kernel version referenced by SRC_URI and
21# should be updated once patchlevel is merged. 21# should be updated once patchlevel is merged.
22LINUX_VERSION = "5.12.19" 22LINUX_VERSION = "5.14.6"
23 23
24KBRANCH = "5.12.x+fslc" 24KBRANCH = "5.14.x+fslc"
25SRCREV = "a7601274fa6ecb02a9335c8aac5575e8aa8d65fd" 25SRCREV = "79bcc3a5a2e73ad1024c63fd0e7c368652e48145"
26 26
27COMPATIBLE_MACHINE = "(mxs|mx5|mx6|vf|use-mainline-bsp)" 27COMPATIBLE_MACHINE = "(mxs|mx5|mx6|vf|use-mainline-bsp)"
diff --git a/recipes-kernel/linux/linux-imx-headers_5.10.bb b/recipes-kernel/linux/linux-imx-headers_5.10.bb
index c656fa55..c282fc62 100644
--- a/recipes-kernel/linux/linux-imx-headers_5.10.bb
+++ b/recipes-kernel/linux/linux-imx-headers_5.10.bb
@@ -65,7 +65,7 @@ do_install() {
65# Without this setting the RDEPENDS in other recipes fails to find this 65# Without this setting the RDEPENDS in other recipes fails to find this
66# package, therefore causing the -dev package also to be skipped effectively not 66# package, therefore causing the -dev package also to be skipped effectively not
67# populating it into SDK 67# populating it into SDK
68ALLOW_EMPTY_${PN} = "1" 68ALLOW_EMPTY:${PN} = "1"
69 69
70INHIBIT_DEFAULT_DEPS = "1" 70INHIBIT_DEFAULT_DEPS = "1"
71DEPENDS += "unifdef-native bison-native rsync-native" 71DEPENDS += "unifdef-native bison-native rsync-native"
@@ -75,4 +75,4 @@ PACKAGE_ARCH = "${MACHINE_SOCARCH}"
75# Restrict this recipe to NXP BSP only, this recipe is not compatible 75# Restrict this recipe to NXP BSP only, this recipe is not compatible
76# with mainline BSP 76# with mainline BSP
77COMPATIBLE_HOST = '(null)' 77COMPATIBLE_HOST = '(null)'
78COMPATIBLE_HOST_use-nxp-bsp = '.*' 78COMPATIBLE_HOST:use-nxp-bsp = '.*'
diff --git a/recipes-kernel/linux/linux-imx-mfgtool_5.10.bb b/recipes-kernel/linux/linux-imx-mfgtool_5.10.bb
index 0a9f5259..311245b1 100644
--- a/recipes-kernel/linux/linux-imx-mfgtool_5.10.bb
+++ b/recipes-kernel/linux/linux-imx-mfgtool_5.10.bb
@@ -5,7 +5,7 @@ SUMMARY = "Produces a Manufacturing Tool compatible Linux Kernel"
5DESCRIPTION = "Linux Kernel provided and supported by Freescale that produces a \ 5DESCRIPTION = "Linux Kernel provided and supported by Freescale that produces a \
6Manufacturing Tool compatible Linux Kernel to be used in updater environment" 6Manufacturing Tool compatible Linux Kernel to be used in updater environment"
7 7
8FILESEXTRAPATHS_prepend := "${THISDIR}/linux-imx:" 8FILESEXTRAPATHS:prepend := "${THISDIR}/linux-imx:"
9require linux-imx_${PV}.bb 9require linux-imx_${PV}.bb
10require linux-mfgtool.inc 10require linux-mfgtool.inc
11 11
diff --git a/recipes-kernel/linux/linux-qoriq.inc b/recipes-kernel/linux/linux-qoriq.inc
index 4d134b47..edac1055 100644
--- a/recipes-kernel/linux/linux-qoriq.inc
+++ b/recipes-kernel/linux/linux-qoriq.inc
@@ -7,12 +7,12 @@ LICENSE = "GPLv2"
7 7
8S = "${WORKDIR}/git" 8S = "${WORKDIR}/git"
9 9
10DEPENDS_append = " libgcc" 10DEPENDS:append = " libgcc"
11# not put Images into /boot of rootfs, install kernel-image if needed 11# not put Images into /boot of rootfs, install kernel-image if needed
12RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" 12RDEPENDS:${KERNEL_PACKAGE_NAME}-base = ""
13 13
14KERNEL_CC_append = " ${TOOLCHAIN_OPTIONS}" 14KERNEL_CC:append = " ${TOOLCHAIN_OPTIONS}"
15KERNEL_LD_append = " ${TOOLCHAIN_OPTIONS}" 15KERNEL_LD:append = " ${TOOLCHAIN_OPTIONS}"
16KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}" 16KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
17 17
18ZIMAGE_BASE_NAME = "zImage-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}" 18ZIMAGE_BASE_NAME = "zImage-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
@@ -24,9 +24,9 @@ PV = "${LINUX_VERSION}+git${SRCPV}"
24SCMVERSION ?= "y" 24SCMVERSION ?= "y"
25LOCALVERSION = "" 25LOCALVERSION = ""
26DELTA_KERNEL_DEFCONFIG ?= "" 26DELTA_KERNEL_DEFCONFIG ?= ""
27DELTA_KERNEL_DEFCONFIG_prepend_qoriq-arm64 = "lsdk.config " 27DELTA_KERNEL_DEFCONFIG:prepend:qoriq-arm64 = "lsdk.config "
28DELTA_KERNEL_DEFCONFIG_prepend_fsl-lsch2-32b = "multi_v7_lpae.config multi_v8.config lsdk.config " 28DELTA_KERNEL_DEFCONFIG:prepend:fsl-lsch2-32b = "multi_v7_lpae.config multi_v8.config lsdk.config "
29DELTA_KERNEL_DEFCONFIG_prepend_ls102xa = "multi_v7_lpae.config lsdk.config " 29DELTA_KERNEL_DEFCONFIG:prepend:ls102xa = "multi_v7_lpae.config lsdk.config "
30 30
31do_merge_delta_config[depends] += "virtual/${TARGET_PREFIX}gcc:do_populate_sysroot bison-native:do_populate_sysroot" 31do_merge_delta_config[depends] += "virtual/${TARGET_PREFIX}gcc:do_populate_sysroot bison-native:do_populate_sysroot"
32do_merge_delta_config[dirs] = "${B}" 32do_merge_delta_config[dirs] = "${B}"
@@ -56,13 +56,13 @@ do_merge_delta_config() {
56addtask merge_delta_config before do_kernel_localversion after do_patch 56addtask merge_delta_config before do_kernel_localversion after do_patch
57 57
58# The link of dts folder is needed for 32b compile of aarch64 targets(e.g. ls1043ardb-32b) 58# The link of dts folder is needed for 32b compile of aarch64 targets(e.g. ls1043ardb-32b)
59do_compile_prepend_fsl-lsch2-32b() { 59do_compile:prepend:fsl-lsch2-32b() {
60 ln -sfT ${STAGING_KERNEL_DIR}/arch/arm64/boot/dts/freescale ${STAGING_KERNEL_DIR}/arch/arm/boot/dts/freescale 60 ln -sfT ${STAGING_KERNEL_DIR}/arch/arm64/boot/dts/freescale ${STAGING_KERNEL_DIR}/arch/arm/boot/dts/freescale
61} 61}
62 62
63do_install_prepend_fsl-lsch2-32b() { 63do_install:prepend:fsl-lsch2-32b() {
64 rm -f ${STAGING_KERNEL_DIR}/arch/arm/boot/dts/freescale 64 rm -f ${STAGING_KERNEL_DIR}/arch/arm/boot/dts/freescale
65} 65}
66 66
67FILES_${KERNEL_PACKAGE_NAME}-image += "/boot/zImage*" 67FILES:${KERNEL_PACKAGE_NAME}-image += "/boot/zImage*"
68COMPATIBLE_MACHINE = "(qoriq)" 68COMPATIBLE_MACHINE = "(qoriq)"
diff --git a/recipes-kernel/skmm-host/skmm-host_git.bb b/recipes-kernel/skmm-host/skmm-host_git.bb
index 4b111b5d..6d4b4864 100644
--- a/recipes-kernel/skmm-host/skmm-host_git.bb
+++ b/recipes-kernel/skmm-host/skmm-host_git.bb
@@ -12,7 +12,7 @@ S = "${WORKDIR}/git"
12 12
13EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"' 13EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"'
14 14
15FILES_${PN} += "/etc/skmm/ /usr/bin/" 15FILES:${PN} += "/etc/skmm/ /usr/bin/"
16 16
17COMPATIBLE_MACHINE = "(p4080ds|t4240qds)" 17COMPATIBLE_MACHINE = "(p4080ds|t4240qds)"
18PACKAGE_ARCH = "${MACHINE_ARCH}" 18PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/recipes-multimedia/alsa/alsa-lib_%.bbappend b/recipes-multimedia/alsa/alsa-lib_%.bbappend
index 80c11f33..d76c45d1 100644
--- a/recipes-multimedia/alsa/alsa-lib_%.bbappend
+++ b/recipes-multimedia/alsa/alsa-lib_%.bbappend
@@ -1,4 +1,4 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 1FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
2 2
3IMX_PATCH = " \ 3IMX_PATCH = " \
4 file://0001-add-conf-for-multichannel-support-in-imx.patch \ 4 file://0001-add-conf-for-multichannel-support-in-imx.patch \
@@ -6,6 +6,6 @@ IMX_PATCH = " \
6 file://0005-add-ak4458-conf-for-multichannel-support.patch \ 6 file://0005-add-ak4458-conf-for-multichannel-support.patch \
7 file://0006-add-conf-for-iMX-XCVR-sound-card.patch \ 7 file://0006-add-conf-for-iMX-XCVR-sound-card.patch \
8" 8"
9SRC_URI_append_imx = "${IMX_PATCH}" 9SRC_URI:append:imx = "${IMX_PATCH}"
10 10
11PACKAGE_ARCH_imx = "${MACHINE_SOCARCH}" 11PACKAGE_ARCH:imx = "${MACHINE_SOCARCH}"
diff --git a/recipes-multimedia/alsa/imx-alsa-plugins_1.0.26.bb b/recipes-multimedia/alsa/imx-alsa-plugins_1.0.26.bb
index db2f71fd..96b6392d 100644
--- a/recipes-multimedia/alsa/imx-alsa-plugins_1.0.26.bb
+++ b/recipes-multimedia/alsa/imx-alsa-plugins_1.0.26.bb
@@ -9,9 +9,9 @@ DEPENDS = "alsa-lib"
9 9
10# For backwards compatibility 10# For backwards compatibility
11PROVIDES += "fsl-alsa-plugins" 11PROVIDES += "fsl-alsa-plugins"
12RREPLACES_${PN} = "fsl-alsa-plugins" 12RREPLACES:${PN} = "fsl-alsa-plugins"
13RPROVIDES_${PN} = "fsl-alsa-plugins" 13RPROVIDES:${PN} = "fsl-alsa-plugins"
14RCONFLICTS_${PN} = "fsl-alsa-plugins" 14RCONFLICTS:${PN} = "fsl-alsa-plugins"
15 15
16LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f" 16LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f"
17 17
@@ -27,10 +27,10 @@ INCLUDE_DIR = "-I${STAGING_INCDIR_IMX}"
27 27
28EXTRA_OECONF = "CFLAGS="${INCLUDE_DIR}"" 28EXTRA_OECONF = "CFLAGS="${INCLUDE_DIR}""
29 29
30INSANE_SKIP_${PN} = "dev-so" 30INSANE_SKIP:${PN} = "dev-so"
31 31
32FILES_${PN} += "${libdir}/alsa-lib/libasound_*.so" 32FILES:${PN} += "${libdir}/alsa-lib/libasound_*.so"
33FILES_${PN}-dbg += "${libdir}/alsa-lib/.debug" 33FILES:${PN}-dbg += "${libdir}/alsa-lib/.debug"
34FILES_${PN}-dev += "${libdir}/alsa-lib/*.la" 34FILES:${PN}-dev += "${libdir}/alsa-lib/*.la"
35 35
36COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" 36COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb b/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb
deleted file mode 100644
index 3f1ec99d..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.16.0.bb
+++ /dev/null
@@ -1,70 +0,0 @@
1SUMMARY = "Libav-based GStreamer 1.x plugin"
2HOMEPAGE = "http://gstreamer.freedesktop.org/"
3SECTION = "multimedia"
4
5LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )"
6LICENSE_FLAGS = "commercial"
7LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
8 file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
9 file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
10 file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
11 file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
12 file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
13 file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
14
15SRC_URI = "http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \
16 file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \
17 file://workaround-to-build-gst-libav-for-i586-with-gcc.patch \
18 file://mips64_cpu_detection.patch \
19 file://0001-configure-check-for-armv7ve-variant.patch \
20 file://0001-fix-host-contamination.patch \
21 "
22SRC_URI[md5sum] = "e3a201a45985ddc1327cd496046ca818"
23SRC_URI[sha256sum] = "dfac119043a9cfdcacd7acde77f674ab172cf2537b5812be52f49e9cddc53d9a"
24
25S = "${WORKDIR}/gst-libav-${PV}"
26
27DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base zlib bzip2 xz"
28
29inherit autotools pkgconfig upstream-version-is-even gtk-doc
30
31# CAUTION: Using the system libav is not recommended. Since the libav API is changing all the time,
32# compilation errors (and other, more subtle bugs) can happen. It is usually better to rely on the
33# libav copy included in the gst-libav package.
34PACKAGECONFIG ??= "orc yasm"
35
36PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl,"
37PACKAGECONFIG[libav] = "--with-system-libav,,libav"
38PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
39PACKAGECONFIG[yasm] = "--enable-yasm,--disable-yasm,nasm-native"
40PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind"
41
42GSTREAMER_1_0_DEBUG ?= "--disable-debug"
43
44LIBAV_EXTRA_CONFIGURE = "--with-libav-extra-configure"
45
46LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \
47 --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
48 --ranlib='${RANLIB}' \
49 ${GSTREAMER_1_0_DEBUG} \
50 --cross-prefix='${HOST_PREFIX}'"
51
52# Disable assembly optimizations for X32, as this libav lacks the support
53PACKAGECONFIG_remove_linux-gnux32 = "yasm"
54LIBAV_EXTRA_CONFIGURE_COMMON_ARG_append_linux-gnux32 = " --disable-asm"
55
56LIBAV_EXTRA_CONFIGURE_COMMON = \
57'${LIBAV_EXTRA_CONFIGURE}="${LIBAV_EXTRA_CONFIGURE_COMMON_ARG}"'
58
59EXTRA_OECONF = "${LIBAV_EXTRA_CONFIGURE_COMMON}"
60
61FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
62FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
63FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
64
65# http://errors.yoctoproject.org/Errors/Details/20493/
66ARM_INSTRUCTION_SET_armv4 = "arm"
67ARM_INSTRUCTION_SET_armv5 = "arm"
68
69# ffmpeg/libav disables PIC on some platforms (e.g. x86-32)
70INSANE_SKIP_${PN} = "textrel"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.0.bb b/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.0.bb
new file mode 100644
index 00000000..1a076c2e
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.18.0.bb
@@ -0,0 +1,24 @@
1SUMMARY = "Libav-based GStreamer 1.x plugin"
2DESCRIPTION = "Contains a GStreamer plugin for using the encoders, decoders, \
3muxers, and demuxers provided by FFmpeg."
4HOMEPAGE = "http://gstreamer.freedesktop.org/"
5SECTION = "multimedia"
6
7# ffmpeg has comercial license flags so add it as we need ffmpeg as a dependency
8LICENSE_FLAGS = "commercial"
9LICENSE = "LGPLv2+"
10LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
11 file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
12 "
13
14SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz"
15SRC_URI[sha256sum] = "42f93f5ce9a3fc22051e5f783a4574b56ebf213f331f75dcbc3552459bd3a06a"
16
17S = "${WORKDIR}/gst-libav-${PV}"
18
19DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base ffmpeg"
20
21inherit meson pkgconfig upstream-version-is-even
22
23FILES:${PN} += "${libdir}/gstreamer-1.0/*.so"
24FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.0.imx.bb
index 6925611a..c3e64172 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.16.3.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.18.0.imx.bb
@@ -1,30 +1,22 @@
1require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc 1require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
2 2
3DEPENDS_append_imxgpu2d = " virtual/libg2d" 3DEPENDS:append:imxgpu2d = " virtual/libg2d"
4DEPENDS_append_mx8 = " libdrm" 4DEPENDS:append:mx8 = " libdrm"
5 5
6PACKAGECONFIG_append_mx8 = " kms" 6PACKAGECONFIG:append:mx8 = " kms tinycompress"
7 7
8DEFAULT_PREFERENCE = "-1" 8DEFAULT_PREFERENCE = "-1"
9 9
10PACKAGE_ARCH_imxpxp = "${MACHINE_SOCARCH}" 10PACKAGE_ARCH:imxpxp = "${MACHINE_SOCARCH}"
11PACKAGE_ARCH_mx8 = "${MACHINE_SOCARCH}" 11PACKAGE_ARCH:mx8 = "${MACHINE_SOCARCH}"
12 12
13GST1.0-PLUGINS-BAD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-bad.git;protocol=https" 13GST1.0-PLUGINS-BAD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-bad.git;protocol=https"
14SRCBRANCH = "MM_04.05.07_2011_L5.4.70" 14SRCBRANCH = "MM_04.06.01_2105_L5.10.y"
15 15
16SRC_URI = " \ 16SRC_URI = " \
17 ${GST1.0-PLUGINS-BAD_SRC};branch=${SRCBRANCH} \ 17 ${GST1.0-PLUGINS-BAD_SRC};branch=${SRCBRANCH} \
18 file://0001-ext-wayland-fix-meson-build-in-nxp-fork.patch \
19 file://0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch \
20 file://opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \
21 file://0001-opencv-allow-compilation-against-4.4.x.patch \
22 file://0001-vulkan-Drop-use-of-VK_RESULT_BEGIN_RANGE.patch \
23 file://fix-maybe-uninitialized-warnings-when-compiling-with-Os.patch \
24 file://avoid-including-sys-poll.h-directly.patch \
25 file://ensure-valid-sentinels-for-gst_structure_get-etc.patch \
26" 18"
27SRCREV = "cf7f2d0125424ce0d63ddc7f1eadc9ef71d10db1" 19SRCREV = "227af57d23cb6b3564fc94446ab2c9fe8c8cff22"
28 20
29S = "${WORKDIR}/git" 21S = "${WORKDIR}/git"
30 22
@@ -37,12 +29,12 @@ DEPENDS += "gstreamer1.0-plugins-base"
37inherit gobject-introspection 29inherit gobject-introspection
38 30
39PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)}" 31PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gl', '', d)}"
40PACKAGECONFIG_GL_imxpxp = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2', '', d)}" 32PACKAGECONFIG_GL:imxpxp = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2', '', d)}"
41 33
42PACKAGECONFIG ??= " \ 34PACKAGECONFIG ??= " \
43 ${GSTREAMER_ORC} \ 35 ${GSTREAMER_ORC} \
44 ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ 36 ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
45 ${@bb.utils.filter('DISTRO_FEATURES', 'directfb vulkan', d)} \ 37 ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
46 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \ 38 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
47 ${PACKAGECONFIG_GL} \ 39 ${PACKAGECONFIG_GL} \
48 bz2 closedcaption curl dash dtls hls rsvg sbc smoothstreaming sndfile \ 40 bz2 closedcaption curl dash dtls hls rsvg sbc smoothstreaming sndfile \
@@ -91,6 +83,7 @@ PACKAGECONFIG[smoothstreaming] = "-Dsmoothstreaming=enabled,-Dsmoothstreaming=di
91PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" 83PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
92PACKAGECONFIG[srtp] = "-Dsrtp=enabled,-Dsrtp=disabled,libsrtp" 84PACKAGECONFIG[srtp] = "-Dsrtp=enabled,-Dsrtp=disabled,libsrtp"
93PACKAGECONFIG[tinyalsa] = "-Dtinyalsa=enabled,-Dtinyalsa=disabled,tinyalsa" 85PACKAGECONFIG[tinyalsa] = "-Dtinyalsa=enabled,-Dtinyalsa=disabled,tinyalsa"
86PACKAGECONFIG[tinycompress] = "-Dtinycompress=enabled,-Dtinycompress=disabled,tinycompress"
94PACKAGECONFIG[ttml] = "-Dttml=enabled,-Dttml=disabled,libxml2 pango cairo" 87PACKAGECONFIG[ttml] = "-Dttml=enabled,-Dttml=disabled,libxml2 pango cairo"
95PACKAGECONFIG[uvch264] = "-Duvch264=enabled,-Duvch264=disabled,libusb1 libgudev" 88PACKAGECONFIG[uvch264] = "-Duvch264=enabled,-Duvch264=disabled,libusb1 libgudev"
96PACKAGECONFIG[voaacenc] = "-Dvoaacenc=enabled,-Dvoaacenc=disabled,vo-aacenc" 89PACKAGECONFIG[voaacenc] = "-Dvoaacenc=enabled,-Dvoaacenc=disabled,vo-aacenc"
@@ -102,9 +95,6 @@ PACKAGECONFIG[webrtc] = "-Dwebrtc=enabled,-Dwebrtc=disabled,libnice"
102PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing" 95PACKAGECONFIG[webrtcdsp] = "-Dwebrtcdsp=enabled,-Dwebrtcdsp=disabled,webrtc-audio-processing"
103PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar" 96PACKAGECONFIG[zbar] = "-Dzbar=enabled,-Dzbar=disabled,zbar"
104 97
105# Following package config in not available in NXP fork:
106#PACKAGECONFIG[lcms2] = "-Dcolormanagement=enabled,-Dcolormanagement=disabled,lcms"
107
108# these plugins currently have no corresponding library in OE-core or meta-openembedded: 98# these plugins currently have no corresponding library in OE-core or meta-openembedded:
109# aom androidmedia applemedia bs2b chromaprint d3dvideosink 99# aom androidmedia applemedia bs2b chromaprint d3dvideosink
110# directsound dts fdkaac gme gsm iq kate ladspa lv2 mpeg2enc 100# directsound dts fdkaac gme gsm iq kate ladspa lv2 mpeg2enc
@@ -139,8 +129,6 @@ EXTRA_OEMESON += " \
139 -Dmplex=disabled \ 129 -Dmplex=disabled \
140 -Dmsdk=disabled \ 130 -Dmsdk=disabled \
141 -Dmusepack=disabled \ 131 -Dmusepack=disabled \
142 -Dnvdec=disabled \
143 -Dnvenc=disabled \
144 -Dofa=disabled \ 132 -Dofa=disabled \
145 -Dopenexr=disabled \ 133 -Dopenexr=disabled \
146 -Dopenmpt=disabled \ 134 -Dopenmpt=disabled \
@@ -150,7 +138,6 @@ EXTRA_OEMESON += " \
150 -Dspandsp=disabled \ 138 -Dspandsp=disabled \
151 -Dsrt=disabled \ 139 -Dsrt=disabled \
152 -Dteletext=disabled \ 140 -Dteletext=disabled \
153 -Dvdpau=disabled \
154 -Dwasapi=disabled \ 141 -Dwasapi=disabled \
155 -Dwildmidi=disabled \ 142 -Dwildmidi=disabled \
156 -Dwinks=disabled \ 143 -Dwinks=disabled \
@@ -163,13 +150,14 @@ EXTRA_OEMESON += " \
163 150
164export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}" 151export OPENCV_PREFIX = "${STAGING_DIR_TARGET}${prefix}"
165 152
166ARM_INSTRUCTION_SET_armv4 = "arm" 153ARM_INSTRUCTION_SET:armv4 = "arm"
167ARM_INSTRUCTION_SET_armv5 = "arm" 154ARM_INSTRUCTION_SET:armv5 = "arm"
168 155
169FILES_${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs" 156FILES:${PN}-freeverb += "${datadir}/gstreamer-1.0/presets/GstFreeverb.prs"
170FILES_${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*" 157FILES:${PN}-opencv += "${datadir}/gst-plugins-bad/1.0/opencv*"
171FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs" 158FILES:${PN}-transcode += "${datadir}/gstreamer-1.0/encoding-profiles"
159FILES:${PN}-voamrwbenc += "${datadir}/gstreamer-1.0/presets/GstVoAmrwbEnc.prs"
172# include fragment shaders 160# include fragment shaders
173FILES_${PN}-opengl += "/usr/share/*.fs" 161FILES:${PN}-opengl += "/usr/share/*.fs"
174 162
175COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" 163COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gst-libs-gst-gl-wayland-fix-meson-build.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gst-libs-gst-gl-wayland-fix-meson-build.patch
deleted file mode 100644
index 61baf2f9..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gst-libs-gst-gl-wayland-fix-meson-build.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From a145a129a8122f21c1e243b3dc2e5708f4c13bef Mon Sep 17 00:00:00 2001
2From: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
3Date: Thu, 23 Jan 2020 12:54:10 +0000
4Subject: [PATCH] gst-libs gst gl wayland: fix meson build
5
6Since introduction of meson build system, modifications introduced in
7NXP fork are breaking the build, where xdg-shell-client-protocol.h
8is searched via relative path. This code is only present in NXP fork and
9should be removed.
10
11This reverts commit [48bde732b00fb42df636ebbaf3b06e5e7971c206]
12("wayland: fix build break in yocto") from upstream.
13
14Upstream-Status: Pending
15
16Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
17---
18 gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h | 2 +-
19 1 file changed, 1 insertion(+), 1 deletion(-)
20
21diff --git a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h
22index d1795591f..89dedd9b5 100644
23--- a/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h
24+++ b/gst-libs/gst/gl/wayland/gstglwindow_wayland_egl.h
25@@ -22,7 +22,7 @@
26 #define __GST_GL_WINDOW_WAYLAND_EGL_H__
27
28 #include <wayland-client.h>
29-#include <gst/gl/wayland/xdg-shell-client-protocol.h>
30+#include "xdg-shell-client-protocol.h"
31 #include <wayland-egl.h>
32 #include <wayland-cursor.h>
33
34--
352.17.1
36
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch
deleted file mode 100644
index da152531..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch
+++ /dev/null
@@ -1,220 +0,0 @@
1From def285f623bc30b9d1acede00393188e693cc741 Mon Sep 17 00:00:00 2001
2From: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
3Date: Sat, 22 Feb 2020 13:22:57 +0000
4Subject: [PATCH] gstreamer-plugins-base: fix meson build in nxp fork
5
6- Add missing IMX header file into istall target;
7- Allocator's meta data files are missing in meson.build, bring them back;
8- Add ION NXP-specific allocator to meson.build;
9- Introduce additional configuration option to pass extra include paths,
10 which are required to build ION allocator;
11- Some video sources are missing, bring them also into the build;
12
13Upstream-Status: Pending
14
15Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
16---
17 gst-libs/gst/allocators/meson.build | 30 +++++++++++++++++++++++++++--
18 gst-libs/gst/gl/gstglconfig.h.meson | 2 ++
19 gst-libs/gst/gl/meson.build | 20 +++++++++++++++++++
20 gst-libs/gst/meson.build | 6 ++++++
21 gst-libs/gst/video/meson.build | 11 +++++++++++
22 meson.build | 3 +++
23 meson_options.txt | 4 ++++
24 7 files changed, 74 insertions(+), 2 deletions(-)
25
26diff --git a/gst-libs/gst/allocators/meson.build b/gst-libs/gst/allocators/meson.build
27index 364baeebf..30b1495c9 100644
28--- a/gst-libs/gst/allocators/meson.build
29+++ b/gst-libs/gst/allocators/meson.build
30@@ -5,18 +5,44 @@ gst_allocators_headers = [
31 'gstphysmemory.h',
32 'gstdmabuf.h',
33 ]
34+
35+imx_gst_allocators_headers = [
36+ 'gstphymemmeta.h',
37+ 'gstdmabufmeta.h',
38+ 'gstallocatorphymem.h',
39+]
40+
41+if cc.has_header('linux/ion.h', include_directories : imx_includes)
42+ imx_gst_allocators_headers += [
43+ 'gstionmemory.h',
44+ ]
45+endif
46+
47+gst_allocators_headers += imx_gst_allocators_headers
48+
49 install_headers(gst_allocators_headers, subdir : 'gstreamer-1.0/gst/allocators/')
50
51 gst_allocators_sources = [ 'gstdmabuf.c', 'gstfdmemory.c', 'gstphysmemory.c']
52+
53+imx_gst_allocators_sources = ['gstdmabufmeta.c', 'gstphymemmeta.c', 'gstallocatorphymem.c']
54+
55+if cc.has_header('linux/ion.h', include_directories : imx_includes)
56+ imx_gst_allocators_sources += [
57+ 'gstionmemory.c',
58+ ]
59+endif
60+
61+gst_allocators_sources += imx_gst_allocators_sources
62+
63 gstallocators = library('gstallocators-@0@'.format(api_version),
64 gst_allocators_sources,
65 c_args : gst_plugins_base_args + ['-DBUILDING_GST_ALLOCATORS'],
66- include_directories: [configinc, libsinc],
67+ include_directories: [configinc, libsinc, imx_includes],
68 version : libversion,
69 soversion : soversion,
70 darwin_versions : osxversion,
71 install : true,
72- dependencies : [gst_dep],
73+ dependencies : [video_dep, gst_dep],
74 )
75
76 allocators_gen_sources = []
77diff --git a/gst-libs/gst/gl/gstglconfig.h.meson b/gst-libs/gst/gl/gstglconfig.h.meson
78index 11795c16c..66cd54a7e 100644
79--- a/gst-libs/gst/gl/gstglconfig.h.meson
80+++ b/gst-libs/gst/gl/gstglconfig.h.meson
81@@ -32,8 +32,10 @@ G_BEGIN_DECLS
82 #mesondefine GST_GL_HAVE_PLATFORM_CGL
83 #mesondefine GST_GL_HAVE_PLATFORM_EAGL
84
85+#mesondefine GST_GL_HAVE_IONDMA
86 #mesondefine GST_GL_HAVE_DMABUF
87 #mesondefine GST_GL_HAVE_VIV_DIRECTVIV
88+#mesondefine GST_GL_HAVE_PHYMEM
89
90 #mesondefine GST_GL_HAVE_GLEGLIMAGEOES
91 #mesondefine GST_GL_HAVE_GLCHAR
92diff --git a/gst-libs/gst/gl/meson.build b/gst-libs/gst/gl/meson.build
93index 0e0ba1b7d..6f6c6866d 100644
94--- a/gst-libs/gst/gl/meson.build
95+++ b/gst-libs/gst/gl/meson.build
96@@ -123,8 +123,10 @@ glconf_options = [
97 'GST_GL_HAVE_PLATFORM_CGL',
98 'GST_GL_HAVE_PLATFORM_EAGL',
99
100+ 'GST_GL_HAVE_IONDMA',
101 'GST_GL_HAVE_DMABUF',
102 'GST_GL_HAVE_VIV_DIRECTVIV',
103+ 'GST_GL_HAVE_PHYMEM',
104
105 'GST_GL_HAVE_GLEGLIMAGEOES',
106 'GST_GL_HAVE_GLCHAR',
107@@ -146,6 +148,18 @@ if unneeded_dep.found()
108 error ('Found unfindable dependency')
109 endif
110
111+if cc.has_header('linux/ion.h', include_directories : imx_includes)
112+ glconf.set10('GST_GL_HAVE_IONDMA', 1)
113+ gl_sources += [
114+ 'gstglmemorydma.c',
115+ ]
116+ gl_headers += [
117+ 'gstglmemorydma.h',
118+ ]
119+else
120+ error('i.MX platform requires ION support to be enabled!')
121+endif
122+
123 # OpenGL/GLES2 libraries
124 gl_lib_deps = []
125 # GL platform - EGL, GLX, CGL, WGL, etc
126@@ -501,6 +515,7 @@ if need_platform_egl != 'no'
127 glconf.set10('GST_GL_HAVE_DMABUF', 1)
128 endif
129
130+
131 egl_includes = '''
132 #include <EGL/egl.h>
133 #include <EGL/eglext.h>
134@@ -808,9 +823,14 @@ if need_platform_egl != 'no' and need_win_viv_fb != 'no'
135 enabled_gl_winsys += 'viv-fb'
136 glconf.set10('GST_GL_HAVE_WINDOW_VIV_FB', 1)
137 glconf.set10('GST_GL_HAVE_VIV_DIRECTVIV', 1)
138+ glconf.set10('GST_GL_HAVE_PHYMEM', 1)
139 gl_sources += [
140 'viv-fb/gstgldisplay_viv_fb.c',
141 'viv-fb/gstglwindow_viv_fb_egl.c',
142+ 'gstglphymemory.c',
143+ ]
144+ gl_headers += [
145+ 'gstglphymemory.h',
146 ]
147 gl_cpp_args += ['-DEGL_API_FB']
148 endif
149diff --git a/gst-libs/gst/meson.build b/gst-libs/gst/meson.build
150index cd3b5b043..1935f46e5 100644
151--- a/gst-libs/gst/meson.build
152+++ b/gst-libs/gst/meson.build
153@@ -11,3 +11,9 @@ subdir('app')
154 subdir('allocators')
155 # FIXME: gl deps are automagic
156 subdir('gl')
157+
158+# Install dangling imx header, required by other plugins
159+gst_imx_header = [
160+ 'gstimxcommon.h',
161+]
162+install_headers(gst_imx_header, subdir : 'gstreamer-1.0/')
163diff --git a/gst-libs/gst/video/meson.build b/gst-libs/gst/video/meson.build
164index b4dfcdf65..d8531f199 100644
165--- a/gst-libs/gst/video/meson.build
166+++ b/gst-libs/gst/video/meson.build
167@@ -35,6 +35,11 @@ video_sources = [
168 'videooverlay.c',
169 ]
170
171+imx_video_sources = [
172+ 'gstvideohdr10meta.c',
173+]
174+video_sources += imx_video_sources
175+
176 video_headers = [
177 'colorbalance.h',
178 'colorbalancechannel.h',
179@@ -70,6 +75,12 @@ video_headers = [
180 'video-overlay-composition.h',
181 'video-multiview.h',
182 ]
183+
184+imx_video_headers = [
185+ 'gstvideohdr10meta.h',
186+]
187+video_headers += imx_video_headers
188+
189 install_headers(video_headers, subdir : 'gstreamer-1.0/gst/video/')
190
191 video_mkenum_headers = [
192diff --git a/meson.build b/meson.build
193index 2fca28205..7781934cd 100644
194--- a/meson.build
195+++ b/meson.build
196@@ -103,6 +103,9 @@ if glib_checks.disabled() or (glib_checks.auto() and not gst_version_is_dev)
197 add_project_arguments('-DG_DISABLE_CHECKS', language: 'c')
198 endif
199
200+# Define i.MX-specific include path as variable from options
201+imx_includes = include_directories(get_option('extra_imx_incdir'))
202+
203 check_headers = [
204 ['HAVE_DLFCN_H', 'dlfcn.h'],
205 ['HAVE_EMMINTRIN_H', 'emmintrin.h'],
206diff --git a/meson_options.txt b/meson_options.txt
207index e7af4dd45..d44401ca6 100644
208--- a/meson_options.txt
209+++ b/meson_options.txt
210@@ -85,3 +85,7 @@ option('package-name', type : 'string', yield : true,
211 description : 'package name to use in plugins')
212 option('package-origin', type : 'string', value : 'Unknown package origin', yield : true,
213 description : 'package origin URL to use in plugins')
214+
215+# NXP specific options
216+option('extra_imx_incdir', type : 'string', yield : true, description : 'i.MX specific header include path')
217+
218--
2192.17.1
220
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch
deleted file mode 100644
index 55871883..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From f82db8496df8ffb8352248e895258c19f8f4776b Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
3Date: Thu, 17 Oct 2019 20:06:24 +0100
4Subject: [PATCH] meson: build gir even when cross-compiling if introspection
5 was enabled explicitly
6
7This can be made to work in certain circumstances when
8cross-compiling, so default to not building g-i stuff
9when cross-compiling, but allow it if introspection was
10enabled explicitly via -Dintrospection=enabled.
11
12See gstreamer/gstreamer#454 and gstreamer/gstreamer#381.
13
14Upstream-Status: Backport [30672ba7d134553e59935ddc875104adba26f25c]
15
16Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
17
18---
19 meson.build | 2 +-
20 1 file changed, 1 insertion(+), 1 deletion(-)
21
22diff --git a/meson.build b/meson.build
23index 2fca28205..2714af718 100644
24--- a/meson.build
25+++ b/meson.build
26@@ -355,7 +355,7 @@ endif
27
28 gir = find_program('g-ir-scanner', required : get_option('introspection'))
29 gnome = import('gnome')
30-build_gir = gir.found() and not meson.is_cross_build()
31+build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled())
32 gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \
33 'g_setenv("GST_REGISTRY_DISABLE", "yes", TRUE);' + \
34 'g_setenv("GST_REGISTRY_1.0", "@0@", TRUE);'.format(meson.current_build_dir() + '/gir_empty_registry.reg') + \
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-viv-fb-code-must-link-against-libg2d.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-viv-fb-code-must-link-against-libg2d.patch
deleted file mode 100644
index c761619f..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-meson-viv-fb-code-must-link-against-libg2d.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1From 8153e86dac04076fb80fc272c8374d4ba019fa3c Mon Sep 17 00:00:00 2001
2From: Zan Dobersek <zdobersek@igalia.com>
3Date: Wed, 4 Nov 2020 14:02:10 +0100
4Subject: [PATCH] meson: viv-fb code must link against libg2d
5
6Find the libg2d library and link against it, if necessary, avoiding
7linking errors for couple of libg2d symbols.
8
9Upstream-Status: Pending
10
11Signed-off-by: Zan Dobersek <zdobersek@igalia.com>
12---
13 gst-libs/gst/gl/meson.build | 6 +++++-
14 1 file changed, 5 insertions(+), 1 deletion(-)
15
16diff --git a/gst-libs/gst/gl/meson.build b/gst-libs/gst/gl/meson.build
17index 6f6c6866d..fb6a9aabf 100644
18--- a/gst-libs/gst/gl/meson.build
19+++ b/gst-libs/gst/gl/meson.build
20@@ -818,9 +818,11 @@ if need_win_gbm != 'no'
21 endif
22
23 if need_platform_egl != 'no' and need_win_viv_fb != 'no'
24- if egl_dep.found() and cc.has_function ('fbGetDisplay', dependencies : egl_dep)
25+ g2d_dep = cc.find_library('g2d', required : false)
26+ if egl_dep.found() and g2d_dep.found() and cc.has_function ('fbGetDisplay', dependencies : egl_dep)
27 if cc.has_function ('glTexDirectVIV', dependencies : gles2_dep)
28 enabled_gl_winsys += 'viv-fb'
29+ gl_winsys_deps += [g2d_dep]
30 glconf.set10('GST_GL_HAVE_WINDOW_VIV_FB', 1)
31 glconf.set10('GST_GL_HAVE_VIV_DIRECTVIV', 1)
32 glconf.set10('GST_GL_HAVE_PHYMEM', 1)
33@@ -834,6 +836,8 @@ if need_platform_egl != 'no' and need_win_viv_fb != 'no'
34 ]
35 gl_cpp_args += ['-DEGL_API_FB']
36 endif
37+ else
38+ g2d_dep = unneeded_dep
39 endif
40 endif
41
42--
432.28.0
44
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch
deleted file mode 100644
index 9494f622..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-meson-Add-variables-for-gir-files.patch
+++ /dev/null
@@ -1,233 +0,0 @@
1From 7a21c86a3facfc7fe8285e764324839b2e55df8a Mon Sep 17 00:00:00 2001
2From: Thibault Saunier <tsaunier@igalia.com>
3Date: Mon, 22 Oct 2018 11:44:37 +0200
4Subject: [PATCH] meson: Add variables for gir files
5
6And flatten list of sources for dependencies
7
8Upstream-Status: Backport [685731e989dc074a4b0d48b6c8062e2738f09719]
9
10Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
11
12---
13 gst-libs/gst/allocators/meson.build | 5 +++--
14 gst-libs/gst/app/meson.build | 6 ++++--
15 gst-libs/gst/audio/meson.build | 5 +++--
16 gst-libs/gst/pbutils/meson.build | 5 +++--
17 gst-libs/gst/rtp/meson.build | 6 ++++--
18 gst-libs/gst/rtsp/meson.build | 5 +++--
19 gst-libs/gst/sdp/meson.build | 6 ++++--
20 gst-libs/gst/tag/meson.build | 5 +++--
21 gst-libs/gst/video/meson.build | 5 +++--
22 9 files changed, 30 insertions(+), 18 deletions(-)
23
24diff --git a/gst-libs/gst/allocators/meson.build b/gst-libs/gst/allocators/meson.build
25index 364baeebf..56f156dc3 100644
26--- a/gst-libs/gst/allocators/meson.build
27+++ b/gst-libs/gst/allocators/meson.build
28@@ -22,7 +22,7 @@ gstallocators = library('gstallocators-@0@'.format(api_version),
29 allocators_gen_sources = []
30 if build_gir
31 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/allocators/allocators.h' ]
32- allocators_gen_sources += [gnome.generate_gir(gstallocators,
33+ allocators_gir = gnome.generate_gir(gstallocators,
34 sources : gst_allocators_sources + gst_allocators_headers,
35 namespace : 'GstAllocators',
36 nsversion : api_version,
37@@ -33,7 +33,8 @@ if build_gir
38 install : true,
39 extra_args : gst_gir_extra_args,
40 dependencies : [gst_dep]
41- )]
42+ )
43+ allocators_gen_sources += allocators_gir
44 endif
45
46 allocators_dep = declare_dependency(link_with: gstallocators,
47diff --git a/gst-libs/gst/app/meson.build b/gst-libs/gst/app/meson.build
48index 81dd0f42c..7a90f5e10 100644
49--- a/gst-libs/gst/app/meson.build
50+++ b/gst-libs/gst/app/meson.build
51@@ -32,7 +32,7 @@ gstapp = library('gstapp-@0@'.format(api_version),
52
53 if build_gir
54 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/app/app.h' ]
55- app_gen_sources += [gnome.generate_gir(gstapp,
56+ app_gir = gnome.generate_gir(gstapp,
57 sources : app_sources + app_headers + [gstapp_c] + [gstapp_h],
58 namespace : 'GstApp',
59 nsversion : api_version,
60@@ -43,7 +43,9 @@ if build_gir
61 install : true,
62 extra_args : gst_gir_extra_args,
63 dependencies : [gst_dep, gst_base_dep]
64- )]
65+ )
66+
67+ app_gen_sources += app_gir
68 endif
69
70 app_dep = declare_dependency(link_with: gstapp,
71diff --git a/gst-libs/gst/audio/meson.build b/gst-libs/gst/audio/meson.build
72index 0e4efab2e..2a449d4bf 100644
73--- a/gst-libs/gst/audio/meson.build
74+++ b/gst-libs/gst/audio/meson.build
75@@ -153,7 +153,7 @@ gstaudio = library('gstaudio-@0@'.format(api_version),
76
77 if build_gir
78 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/audio/audio.h' ]
79- audio_gen_sources += [gnome.generate_gir(gstaudio,
80+ audio_gir = gnome.generate_gir(gstaudio,
81 sources : audio_src + audio_headers + [gstaudio_c] + [gstaudio_h],
82 namespace : 'GstAudio',
83 nsversion : api_version,
84@@ -164,7 +164,8 @@ if build_gir
85 install : true,
86 extra_args : gst_gir_extra_args,
87 dependencies : gstaudio_deps
88- )]
89+ )
90+ audio_gen_sources += [audio_gir]
91 endif
92
93 audio_dep = declare_dependency(link_with : gstaudio,
94diff --git a/gst-libs/gst/pbutils/meson.build b/gst-libs/gst/pbutils/meson.build
95index 2faf62622..0e96722fd 100644
96--- a/gst-libs/gst/pbutils/meson.build
97+++ b/gst-libs/gst/pbutils/meson.build
98@@ -63,7 +63,7 @@ pbutils = library('gstpbutils-@0@'.format(api_version),
99 pbutils_gen_sources = [gstpbutils_h, gst_pbutils_version_h]
100 if build_gir
101 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/pbutils/pbutils.h' ]
102- pbutils_gen_sources += [gnome.generate_gir(pbutils,
103+ pbutils_gir = gnome.generate_gir(pbutils,
104 sources : pbutils_sources + pbutils_headers + [gstpbutils_h, gst_pbutils_version_h],
105 namespace : 'GstPbutils',
106 nsversion : api_version,
107@@ -74,7 +74,8 @@ if build_gir
108 install : true,
109 extra_args : gst_gir_extra_args,
110 dependencies : gstpbutils_deps
111- )]
112+ )
113+ pbutils_gen_sources += [pbutils_gir]
114 endif
115
116 pbutils_dep = declare_dependency(link_with : pbutils,
117diff --git a/gst-libs/gst/rtp/meson.build b/gst-libs/gst/rtp/meson.build
118index f47ec6592..7ea6658d5 100644
119--- a/gst-libs/gst/rtp/meson.build
120+++ b/gst-libs/gst/rtp/meson.build
121@@ -49,7 +49,7 @@ gst_rtp = library('gstrtp-@0@'.format(api_version),
122 rtp_gen_sources = [gstrtp_enum_h]
123 if build_gir
124 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/rtp/rtp.h' ]
125- rtp_gen_sources += [gnome.generate_gir(gst_rtp,
126+ rtp_gir = gnome.generate_gir(gst_rtp,
127 sources : rtp_sources + rtp_headers + [gstrtp_enum_c] + [gstrtp_enum_h],
128 namespace : 'GstRtp',
129 nsversion : api_version,
130@@ -60,7 +60,9 @@ if build_gir
131 install : true,
132 extra_args : gst_gir_extra_args,
133 dependencies : gstrtp_deps
134- )]
135+ )
136+
137+ rtp_gen_sources += [rtp_gir]
138 endif
139
140
141diff --git a/gst-libs/gst/rtsp/meson.build b/gst-libs/gst/rtsp/meson.build
142index 27e309d5a..3632adceb 100644
143--- a/gst-libs/gst/rtsp/meson.build
144+++ b/gst-libs/gst/rtsp/meson.build
145@@ -54,7 +54,7 @@ gst_rtsp = library('gstrtsp-@0@'.format(api_version),
146 rtsp_gen_sources = [gstrtsp_h]
147 if build_gir
148 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/rtsp/rtsp.h' ]
149- rtsp_gen_sources += [gnome.generate_gir(gst_rtsp,
150+ rtsp_gir = gnome.generate_gir(gst_rtsp,
151 sources : rtsp_sources + rtsp_headers + [gstrtsp_c] + [gstrtsp_h],
152 namespace : 'GstRtsp',
153 nsversion : api_version,
154@@ -65,7 +65,8 @@ if build_gir
155 install : true,
156 extra_args : gst_gir_extra_args,
157 dependencies : gstrtsp_deps + [sdp_dep]
158- )]
159+ )
160+ rtsp_gen_sources += [rtsp_gir]
161 endif
162
163 rtsp_dep = declare_dependency(link_with : gst_rtsp,
164diff --git a/gst-libs/gst/sdp/meson.build b/gst-libs/gst/sdp/meson.build
165index 62c18b732..24cdb5293 100644
166--- a/gst-libs/gst/sdp/meson.build
167+++ b/gst-libs/gst/sdp/meson.build
168@@ -23,7 +23,7 @@ gstsdp = library('gstsdp-@0@'.format(api_version),
169 sdp_gen_sources = []
170 if build_gir
171 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/sdp/sdp.h' ]
172- sdp_gen_sources += [gnome.generate_gir(gstsdp,
173+ sdp_gir = gnome.generate_gir(gstsdp,
174 sources : gst_sdp_sources + gst_sdp_headers,
175 namespace : 'GstSdp',
176 nsversion : api_version,
177@@ -34,7 +34,9 @@ if build_gir
178 install : true,
179 extra_args : gst_gir_extra_args,
180 dependencies : rtsp_deps
181- )]
182+ )
183+
184+ sdp_gen_sources += [sdp_gir]
185 endif
186
187 sdp_dep = declare_dependency(link_with: gstsdp,
188diff --git a/gst-libs/gst/tag/meson.build b/gst-libs/gst/tag/meson.build
189index 27e66fd63..5ec37392a 100644
190--- a/gst-libs/gst/tag/meson.build
191+++ b/gst-libs/gst/tag/meson.build
192@@ -93,7 +93,7 @@ gsttag = library('gsttag-@0@'.format(api_version),
193
194 if build_gir
195 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/tag/tag.h' ]
196- tag_gen_sources += [gnome.generate_gir(gsttag,
197+ tag_gir = gnome.generate_gir(gsttag,
198 sources : tag_sources + tag_headers + [gsttag_h] + [gsttag_c],
199 namespace : 'GstTag',
200 nsversion : api_version,
201@@ -104,7 +104,8 @@ if build_gir
202 install : true,
203 extra_args : gst_gir_extra_args,
204 dependencies : tag_deps
205- )]
206+ )
207+ tag_gen_sources += [tag_gir]
208 endif
209
210 tag_dep = declare_dependency(link_with: gsttag,
211diff --git a/gst-libs/gst/video/meson.build b/gst-libs/gst/video/meson.build
212index b4dfcdf65..036c3a6a7 100644
213--- a/gst-libs/gst/video/meson.build
214+++ b/gst-libs/gst/video/meson.build
215@@ -135,7 +135,7 @@ gstvideo = library('gstvideo-@0@'.format(api_version),
216
217 if build_gir
218 gst_gir_extra_args = gir_init_section + [ '--c-include=gst/video/video.h' ]
219- video_gen_sources += [gnome.generate_gir(gstvideo,
220+ video_gir = gnome.generate_gir(gstvideo,
221 sources : video_sources + video_headers + [gstvideo_c] + [gstvideo_h],
222 namespace : 'GstVideo',
223 nsversion : api_version,
224@@ -146,7 +146,8 @@ if build_gir
225 install : true,
226 extra_args : gst_gir_extra_args,
227 dependencies : gstvideo_deps
228- )]
229+ )
230+ video_gen_sources += [video_gir]
231 endif
232
233 video_dep = declare_dependency(link_with : gstvideo,
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-viv-fb-Make-sure-config.h-is-included.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch
index 731ba873..b8fc8827 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0005-viv-fb-Make-sure-config.h-is-included.patch
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-viv-fb-Make-sure-config.h-is-included.patch
@@ -1,4 +1,4 @@
1From 616cf194dfd26818ed7b776321582b8e0ff9b3f1 Mon Sep 17 00:00:00 2001 1From 70a702af3a3a4afcadbc53d61c4c45f31f96b2cc Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <crg7475@mailbox.org> 2From: Carlos Rafael Giani <crg7475@mailbox.org>
3Date: Tue, 21 May 2019 14:01:11 +0200 3Date: Tue, 21 May 2019 14:01:11 +0200
4Subject: [PATCH] viv-fb: Make sure config.h is included 4Subject: [PATCH] viv-fb: Make sure config.h is included
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0009-glimagesink-Downrank-to-marginal.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-glimagesink-Downrank-to-marginal.patch
index fc67a486..94a61465 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0009-glimagesink-Downrank-to-marginal.patch
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-glimagesink-Downrank-to-marginal.patch
@@ -1,4 +1,4 @@
1From f18f1206ec44f4154e60546ecb82823f7a6569d7 Mon Sep 17 00:00:00 2001 1From b975be9c4630536ec1315773be29900371d21930 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Alexander Kanavin <alex.kanavin@gmail.com>
3Date: Thu, 24 Sep 2015 19:47:32 +0300 3Date: Thu, 24 Sep 2015 19:47:32 +0300
4Subject: [PATCH] glimagesink: Downrank to marginal 4Subject: [PATCH] glimagesink: Downrank to marginal
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch
new file mode 100644
index 00000000..0fa3dd30
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch
@@ -0,0 +1,48 @@
1From 1718197bf6ebf3d8784a55126609aa8770fff682 Mon Sep 17 00:00:00 2001
2From: Xavier Claessens <xavier.claessens@collabora.com>
3Date: Mon, 26 Apr 2021 14:25:03 -0400
4Subject: [PATCH] gstgl: Fix build when Meson >= 0.58.0rc1
5
6"implicit_include_directories: false" now also means that current build
7directory is not added to include paths by default any more. We have to
8add it manually because we have some custom_target() that generate
9headers in current build directory.
10
11See https://github.com/mesonbuild/meson/issues/8700.
12
13Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1125>
14Upstream-Status: Backport
15Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
16
17---
18 gst-libs/gst/gl/meson.build | 15 ++++++++++++---
19 1 file changed, 12 insertions(+), 3 deletions(-)
20
21diff --git a/gst-libs/gst/gl/meson.build b/gst-libs/gst/gl/meson.build
22index ae19d7aca..3ad7ddcf6 100644
23--- a/gst-libs/gst/gl/meson.build
24+++ b/gst-libs/gst/gl/meson.build
25@@ -1023,11 +1023,20 @@ if build_gstgl
26 command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
27 gen_sources = [gl_enumtypes_h]
28
29+ common_args = gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL']
30+
31+ # We have custom_target() that generate headers in the current build dir,
32+ # but with implicit_include_directories: false, meson >= 0.58.0 won't include
33+ # it by default. We cannot use include_directories('.') here because it would
34+ # also include current source dir which is what we want to avoid because
35+ # case-insensitive FS would include gst-libs/gl/egl/egl.h as EGL/egl.h.
36+ common_args += '-I@0@'.format(meson.current_build_dir())
37+
38 gstgl = library('gstgl-' + api_version,
39 gl_sources, gl_egl_sources, gl_x11_sources, gl_wayland_sources, gl_priv_sources, gl_enumtypes_c, gl_enumtypes_h,
40- c_args : gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL'],
41- cpp_args : gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL'],
42- objc_args : gst_plugins_base_args + gl_cpp_args + gl_objc_args + ['-DBUILDING_GST_GL'],
43+ c_args : common_args,
44+ cpp_args : common_args,
45+ objc_args : common_args + gl_objc_args,
46 include_directories : [configinc, libsinc, gl_includes],
47 version : libversion,
48 soversion : soversion,
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.%.bbappend b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.%.bbappend
deleted file mode 100644
index d92bdf3c..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.%.bbappend
+++ /dev/null
@@ -1,5 +0,0 @@
1PACKAGECONFIG_GL_imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl', '', d)}"
2PACKAGECONFIG_GL_imxgpu3d = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}"
3
4# For mainline BSP we need to enable 'gbm' Window system
5PACKAGECONFIG_GL_use-mainline-bsp = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl gbm', '', d)}"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.%.bbappend b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.%.bbappend
new file mode 100644
index 00000000..1c62f31d
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.%.bbappend
@@ -0,0 +1,5 @@
1PACKAGECONFIG_GL:imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl', '', d)}"
2PACKAGECONFIG_GL:imxgpu3d = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}"
3
4# For mainline BSP we need to enable 'gbm' Window system
5PACKAGECONFIG_GL:use-mainline-bsp = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl gbm', '', d)}"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.2.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.0.imx.bb
index db0b740f..142e0ba5 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.2.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.0.imx.bb
@@ -1,28 +1,26 @@
1require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc 1require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
2 2
3DESCRIPTION = "'Base' GStreamer plugins and helper libraries"
4HOMEPAGE = "https://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues"
3LICENSE = "GPLv2+ & LGPLv2+" 6LICENSE = "GPLv2+ & LGPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ 7LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d"
5 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607"
6 8
7GST1.0-PLUGINS-BASE_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-base.git;protocol=https" 9GST1.0-PLUGINS-BASE_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-base.git;protocol=https"
8SRCBRANCH = "MM_04.05.06_2008_L5.4.47" 10SRCBRANCH = "MM_04.06.01_2105_L5.10.y"
9SRCREV = "3c4aa2a58576d68f6e684efa58609665679c9969"
10SRC_URI = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} \ 11SRC_URI = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} \
11 file://0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch \ 12 file://0003-viv-fb-Make-sure-config.h-is-included.patch \
12 file://0001-gstreamer-plugins-base-fix-meson-build-in-nxp-fork.patch \ 13 file://0004-glimagesink-Downrank-to-marginal.patch \
13 file://0002-meson-Add-variables-for-gir-files.patch \ 14 file://4ef5c91697a141fea7317aff7f0f28e5a861db99.patch \
14 file://0005-viv-fb-Make-sure-config.h-is-included.patch \
15 file://0009-glimagesink-Downrank-to-marginal.patch \
16 file://0001-gst-libs-gst-gl-wayland-fix-meson-build.patch \
17 file://0001-meson-viv-fb-code-must-link-against-libg2d.patch \
18 " 15 "
16SRCREV = "69554a26c932481acb7c5691038c367eca60e5bc"
19 17
20S = "${WORKDIR}/git" 18S = "${WORKDIR}/git"
21 19
22DEPENDS += "iso-codes util-linux zlib" 20DEPENDS += "iso-codes util-linux zlib"
23DEPENDS_append_imxgpu2d = " virtual/libg2d" 21DEPENDS:append:imxgpu2d = " virtual/libg2d"
24 22
25inherit use-imx-headers gobject-introspection gtk-doc 23inherit gobject-introspection use-imx-headers
26 24
27DEFAULT_PREFERENCE = "-1" 25DEFAULT_PREFERENCE = "-1"
28 26
@@ -36,7 +34,7 @@ PACKAGECONFIG ??= " \
36 ${GSTREAMER_ORC} \ 34 ${GSTREAMER_ORC} \
37 ${PACKAGECONFIG_GL} \ 35 ${PACKAGECONFIG_GL} \
38 ${@bb.utils.filter('DISTRO_FEATURES', 'alsa x11', d)} \ 36 ${@bb.utils.filter('DISTRO_FEATURES', 'alsa x11', d)} \
39 ogg pango png theora vorbis \ 37 jpeg ogg pango png theora vorbis \
40 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \ 38 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', '', d)} \
41" 39"
42 40
@@ -71,24 +69,22 @@ PACKAGECONFIG[egl] = ",,virtual/egl"
71# OpenGL window systems (except for X11) 69# OpenGL window systems (except for X11)
72PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm" 70PACKAGECONFIG[gbm] = ",,virtual/libgbm libgudev libdrm"
73PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm" 71PACKAGECONFIG[wayland] = ",,wayland-native wayland wayland-protocols libdrm"
72PACKAGECONFIG[dispmanx] = ",,virtual/libomxil"
74PACKAGECONFIG[viv-fb] = ",,virtual/libgles2 virtual/libg2d" 73PACKAGECONFIG[viv-fb] = ",,virtual/libgles2 virtual/libg2d"
75 74
75OPENGL_WINSYS = "${@bb.utils.filter('PACKAGECONFIG', 'x11 gbm wayland dispmanx egl viv-fb', d)}"
76
76EXTRA_OEMESON += " \ 77EXTRA_OEMESON += " \
78 -Ddoc=disabled \
77 -Dgl-graphene=disabled \ 79 -Dgl-graphene=disabled \
78 ${@get_opengl_cmdline_list('gl_api', d.getVar('OPENGL_APIS'), d)} \ 80 ${@get_opengl_cmdline_list('gl_api', d.getVar('OPENGL_APIS'), d)} \
79 ${@get_opengl_cmdline_list('gl_platform', d.getVar('OPENGL_PLATFORMS'), d)} \ 81 ${@get_opengl_cmdline_list('gl_platform', d.getVar('OPENGL_PLATFORMS'), d)} \
80 ${@get_opengl_cmdline_list('gl_winsys', d.getVar('OPENGL_WINSYS'), d)} \ 82 ${@get_opengl_cmdline_list('gl_winsys', d.getVar('OPENGL_WINSYS'), d)} \
81 -Dextra_imx_incdir=${STAGING_INCDIR_IMX} \ 83 -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}" \
82" 84"
83 85
84GTKDOC_MESON_OPTION = "gtk_doc" 86FILES:${PN}-dev += "${libdir}/gstreamer-1.0/include/gst/gl/gstglconfig.h"
85GTKDOC_MESON_ENABLE_FLAG = "enabled" 87FILES:${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict"
86GTKDOC_MESON_DISABLE_FLAG = "disabled"
87
88FILES_${PN} += "${libdir}/gstreamer-1.0/include"
89FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict"
90
91COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
92 88
93def get_opengl_cmdline_list(switch_name, options, d): 89def get_opengl_cmdline_list(switch_name, options, d):
94 selected_options = [] 90 selected_options = []
@@ -100,3 +96,7 @@ def get_opengl_cmdline_list(switch_name, options, d):
100 return '-D' + switch_name + '=' + ','.join(selected_options) 96 return '-D' + switch_name + '=' + ','.join(selected_options)
101 else: 97 else:
102 return '' 98 return ''
99
100CVE_PRODUCT += "gst-plugins-base"
101
102COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.%.bbappend b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.%.bbappend
deleted file mode 100644
index 8565c6a5..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.%.bbappend
+++ /dev/null
@@ -1,3 +0,0 @@
1PACKAGECONFIG_GL_imxgpu2d = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl', '', d)}"
2PACKAGECONFIG_GL_imxgpu3d = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}"
3PACKAGECONFIG_GL_use-mainline-bsp = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.0.imx.bb
index 8413bf10..706fdb61 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.16.3.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.0.imx.bb
@@ -1,13 +1,12 @@
1require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc 1require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
2 2
3
4GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-good.git;protocol=https" 3GST1.0-PLUGINS-GOOD_SRC ?= "gitsm://source.codeaurora.org/external/imx/gst-plugins-good.git;protocol=https"
5SRCBRANCH = "MM_04.05.07_2011_L5.4.70" 4SRCBRANCH = "MM_04.06.01_2105_L5.10.y"
6 5
7SRC_URI = " \ 6SRC_URI = " \
8 ${GST1.0-PLUGINS-GOOD_SRC};branch=${SRCBRANCH} \ 7 ${GST1.0-PLUGINS-GOOD_SRC};branch=${SRCBRANCH} \
9" 8"
10SRCREV = "6005e8199ea19878f269b058ffbbbcaa314472d8" 9SRCREV = "3160acd37304f67238b8ceae2a95ee4951f9c718"
11 10
12DEFAULT_PREFERENCE = "-1" 11DEFAULT_PREFERENCE = "-1"
13 12
@@ -15,12 +14,11 @@ S = "${WORKDIR}/git"
15 14
16LICENSE = "GPLv2+ & LGPLv2.1+" 15LICENSE = "GPLv2+ & LGPLv2.1+"
17LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ 16LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
18 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
19 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" 17 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
20 18
21DEPENDS += "gstreamer1.0-plugins-base libcap zlib" 19DEPENDS += "gstreamer1.0-plugins-base libcap zlib"
22RPROVIDES_${PN}-pulseaudio += "${PN}-pulse" 20RPROVIDES:${PN}-pulseaudio += "${PN}-pulse"
23RPROVIDES_${PN}-soup += "${PN}-souphttpsrc" 21RPROVIDES:${PN}-soup += "${PN}-souphttpsrc"
24 22
25PACKAGECONFIG ??= " \ 23PACKAGECONFIG ??= " \
26 ${GSTREAMER_ORC} \ 24 ${GSTREAMER_ORC} \
@@ -74,6 +72,6 @@ EXTRA_OEMESON += " \
74 -Dwaveform=disabled \ 72 -Dwaveform=disabled \
75" 73"
76 74
77FILES_${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs" 75FILES:${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs"
78 76
79COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" 77COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_2.0.0.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_2.0.0.bb
index 7c6025dd..26f25d72 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_2.0.0.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-imx_2.0.0.bb
@@ -8,9 +8,9 @@ DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base libimxdmabuffer"
8# for the uniaudio decoder, videoparsersbad for the VPU video decoder 8# for the uniaudio decoder, videoparsersbad for the VPU video decoder
9# the gstreamer1.0-plugins-imx RDEPENDS is necessary to ensure the -good recipe is 9# the gstreamer1.0-plugins-imx RDEPENDS is necessary to ensure the -good recipe is
10# built (it is not a compile-time dependency however, hence RDEPENDS and not DEPENDS) 10# built (it is not a compile-time dependency however, hence RDEPENDS and not DEPENDS)
11RDEPENDS_gstreamer1.0-plugins-imx = "gstreamer1.0-plugins-good gstreamer1.0-plugins-bad" 11RDEPENDS:gstreamer1.0-plugins-imx = "gstreamer1.0-plugins-good gstreamer1.0-plugins-bad"
12RDEPENDS_gstreamer1.0-plugins-imx-imxaudio = "gstreamer1.0-plugins-good-audioparsers" 12RDEPENDS:gstreamer1.0-plugins-imx-imxaudio = "gstreamer1.0-plugins-good-audioparsers"
13RDEPENDS_gstreamer1.0-plugins-imx-imxvpu = "gstreamer1.0-plugins-bad-videoparsersbad" 13RDEPENDS:gstreamer1.0-plugins-imx-imxvpu = "gstreamer1.0-plugins-bad-videoparsersbad"
14 14
15PV .= "+git${SRCPV}" 15PV .= "+git${SRCPV}"
16 16
@@ -28,22 +28,22 @@ inherit pkgconfig meson use-imx-headers
28# is needed to improve performance. 28# is needed to improve performance.
29LIBG2D_DPU_OPTION = "-Dg2d-based-on-dpu=false" 29LIBG2D_DPU_OPTION = "-Dg2d-based-on-dpu=false"
30LIBG2D_DEPENDENCIES = "virtual/libg2d" 30LIBG2D_DEPENDENCIES = "virtual/libg2d"
31LIBG2D_DPU_OPTION_imxdpu = "-Dg2d-based-on-dpu=true" 31LIBG2D_DPU_OPTION:imxdpu = "-Dg2d-based-on-dpu=true"
32LIBG2D_DEPENDENCIES_imxdpu = "virtual/libg2d libdrm" 32LIBG2D_DEPENDENCIES:imxdpu = "virtual/libg2d libdrm"
33 33
34EXTRA_OEMESON += "-Dimx-headers-path=${STAGING_INCDIR_IMX}" 34EXTRA_OEMESON += "-Dimx-headers-path=${STAGING_INCDIR_IMX}"
35 35
36PACKAGECONFIG ?= "uniaudiodec" 36PACKAGECONFIG ?= "uniaudiodec"
37PACKAGECONFIG_append_imxgpu2d = " g2d" 37PACKAGECONFIG:append:imxgpu2d = " g2d"
38PACKAGECONFIG_append_imxvpu = " vpu" 38PACKAGECONFIG:append:imxvpu = " vpu"
39PACKAGECONFIG_append_imxipu = " ipu" 39PACKAGECONFIG:append:imxipu = " ipu"
40PACKAGECONFIG_append_imxpxp = " pxp" 40PACKAGECONFIG:append:imxpxp = " pxp"
41# The custom imxv4l2 elements are only available on the i.MX6. 41# The custom imxv4l2 elements are only available on the i.MX6.
42# The 2D blitter sinks require an MXC framebuffer, which 42# The 2D blitter sinks require an MXC framebuffer, which
43# is not available anymore on the i.MX8 (since these SoCs 43# is not available anymore on the i.MX8 (since these SoCs
44# now use KMS instead of the old Linux framebuffer). 44# now use KMS instead of the old Linux framebuffer).
45PACKAGECONFIG_append_mx6 = " imx2dvideosink v4l2" 45PACKAGECONFIG:append:mx6 = " imx2dvideosink v4l2"
46PACKAGECONFIG_append_mx7 = " imx2dvideosink" 46PACKAGECONFIG:append:mx7 = " imx2dvideosink"
47 47
48PACKAGECONFIG[g2d] = "-Dg2d=enabled ${LIBG2D_DPU_OPTION},-Dg2d=disabled,${LIBG2D_DEPENDENCIES}" 48PACKAGECONFIG[g2d] = "-Dg2d=enabled ${LIBG2D_DPU_OPTION},-Dg2d=disabled,${LIBG2D_DEPENDENCIES}"
49PACKAGECONFIG[pxp] = "-Dpxp=enabled,-Dpxp=disabled," 49PACKAGECONFIG[pxp] = "-Dpxp=enabled,-Dpxp=disabled,"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.0.bb
index 2a1cc3fd..65ac1636 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.16.0.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.18.0.bb
@@ -1,5 +1,9 @@
1require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc 1require recipes-multimedia/gstreamer/gstreamer1.0-plugins-common.inc
2 2
3DESCRIPTION = "'Ugly GStreamer plugins"
4HOMEPAGE = "https://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues"
6
3LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ 7LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
4 file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068" 8 file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068"
5 9
@@ -7,10 +11,9 @@ LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+"
7LICENSE_FLAGS = "commercial" 11LICENSE_FLAGS = "commercial"
8 12
9SRC_URI = " \ 13SRC_URI = " \
10 http://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \ 14 https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
11 " 15 "
12SRC_URI[md5sum] = "1ec343c58d4b17d682f7befa8453c11c" 16SRC_URI[sha256sum] = "686644e45e08258ae240c4519376668ad8d34ea6d0f6ab556473c317bfb7e082"
13SRC_URI[sha256sum] = "e30964c5f031c32289e0b25e176c3c95a5737f2052dfc81d0f7427ef0233a4c2"
14 17
15S = "${WORKDIR}/gst-plugins-ugly-${PV}" 18S = "${WORKDIR}/gst-plugins-ugly-${PV}"
16 19
@@ -32,8 +35,9 @@ PACKAGECONFIG[mpeg2dec] = "-Dmpeg2dec=enabled,-Dmpeg2dec=disabled,mpeg2dec"
32PACKAGECONFIG[x264] = "-Dx264=enabled,-Dx264=disabled,x264" 35PACKAGECONFIG[x264] = "-Dx264=enabled,-Dx264=disabled,x264"
33 36
34EXTRA_OEMESON += " \ 37EXTRA_OEMESON += " \
38 -Ddoc=disabled \
35 -Dsidplay=disabled \ 39 -Dsidplay=disabled \
36" 40"
37 41
38FILES_${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs" 42FILES:${PN}-amrnb += "${datadir}/gstreamer-1.0/presets/GstAmrnbEnc.prs"
39FILES_${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs" 43FILES:${PN}-x264 += "${datadir}/gstreamer-1.0/presets/GstX264Enc.prs"
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc b/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
deleted file mode 100644
index b6980670..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc
+++ /dev/null
@@ -1,23 +0,0 @@
1inherit ptest-gnome
2
3TEST_FILES_PATH = "${datadir}/installed-tests/gstreamer-1.0/test-files"
4RUN_PTEST_FILE = "${D}${PTEST_PATH}/run-ptest"
5
6EXTRA_OEMESON += "-Dtest-files-path=${TEST_FILES_PATH}"
7
8GST_TEST_SUITE_NAME ?= "gstreamer-1.0"
9
10# Using do_install_ptest_base instead of do_install_ptest, since
11# the default do_install_ptest_base is hardcoded to expect Makefiles.
12do_install_ptest_base() {
13 # Generate run-ptest file
14 echo "#!/usr/bin/env sh" > "${RUN_PTEST_FILE}"
15 echo "gnome-desktop-testing-runner ${GST_TEST_SUITE_NAME}" >> "${RUN_PTEST_FILE}"
16 chmod 0755 "${RUN_PTEST_FILE}"
17
18 # Install additional files required by tests
19 if [ -d "${S}/tests/files" ] ; then
20 install -d "${D}/${TEST_FILES_PATH}"
21 install -m 0644 "${S}/tests/files"/* "${D}/${TEST_FILES_PATH}"
22 fi
23}
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb b/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.0.bb
index 0a3c35ff..4ac30c28 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.16.0.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.18.0.bb
@@ -8,12 +8,11 @@ DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base"
8 8
9PNREAL = "gst-rtsp-server" 9PNREAL = "gst-rtsp-server"
10 10
11SRC_URI = "http://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz \ 11SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz \
12 file://0001-meson-build-gir-even-when-cross-compiling-if-introsp.patch \
13 " 12 "
14 13
15SRC_URI[md5sum] = "adc4460239ec2eccf58ad9752ce53bfd" 14SRC_URI[md5sum] = "77fe28c702a83566811ab5c7bbe99ab2"
16SRC_URI[sha256sum] = "198e9eec1a3e32dc810d3fbf3a714850a22c6288d4a5c8e802c5ff984af03f19" 15SRC_URI[sha256sum] = "2ad19311054cbf2df0d0622936bc703dedc06ced706df46a3d3a3ea5a4b7c70f"
17 16
18S = "${WORKDIR}/${PNREAL}-${PV}" 17S = "${WORKDIR}/${PNREAL}-${PV}"
19 18
@@ -28,5 +27,4 @@ GIR_MESON_ENABLE_FLAG = "enabled"
28GIR_MESON_DISABLE_FLAG = "disabled" 27GIR_MESON_DISABLE_FLAG = "disabled"
29 28
30# Starting with 1.8.0 gst-rtsp-server includes dependency-less plugins as well 29# Starting with 1.8.0 gst-rtsp-server includes dependency-less plugins as well
31LIBV = "1.0"
32require recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc 30require recipes-multimedia/gstreamer/gstreamer1.0-plugins-packaging.inc
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
index 67a872cd..23ebd5c6 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch
@@ -1,25 +1,44 @@
1From a1d7c582392c8bc87fa9411af77b20e011944357 Mon Sep 17 00:00:00 2001 1From fd8f49dba8c09d47425da80f5faab3bfa4a7c962 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex.kanavin@gmail.com> 2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Thu, 25 Jan 2018 17:55:02 +0200 3Date: Sat, 10 Oct 2020 19:09:03 +0000
4Subject: [PATCH] gst/gstpluginloader.c: when env var is set do not fall 4Subject: [PATCH 1/3] gstpluginloader: when env var is set do not fall through
5 through to system plugin scanner 5 to system plugin scanner
6 6
7If we set a custom GST_PLUGIN_SCANNER env var, then we probably want to use that and only that. 7If we set a custom GST_PLUGIN_SCANNER env var, then we probably want to use that and only that.
8 8
9Falling through to the one installed on the system is problamatic in cross-compilation 9Falling through to the one installed on the system is problamatic in cross-compilation
10environemnts, regardless of whether one pointed to by the env var succeeded or failed. 10environemnts, regardless of whether one pointed to by the env var succeeded or failed.
11 11
12Upstream-Status: Pending 12taken from:
13Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> 13http://cgit.openembedded.org/openembedded-core/commit/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch?id=0db7ba34ca41b107042306d13a6f0162885c123b
14
15Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/669>
16
17Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/9f958058697e6fbf5bde325228034572331d1a3a]
18
19Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
14--- 20---
15 gst/gstpluginloader.c | 4 +--- 21 gst/gstpluginloader.c | 15 +++++++--------
16 1 file changed, 1 insertion(+), 3 deletions(-) 22 1 file changed, 7 insertions(+), 8 deletions(-)
17 23
18diff --git a/gst/gstpluginloader.c b/gst/gstpluginloader.c 24diff --git a/gst/gstpluginloader.c b/gst/gstpluginloader.c
19index 430829d..3a75731 100644 25index d1e404d98..c626bf263 100644
20--- a/gst/gstpluginloader.c 26--- a/gst/gstpluginloader.c
21+++ b/gst/gstpluginloader.c 27+++ b/gst/gstpluginloader.c
22@@ -471,9 +471,7 @@ gst_plugin_loader_spawn (GstPluginLoader * loader) 28@@ -464,20 +464,19 @@ gst_plugin_loader_spawn (GstPluginLoader * loader)
29 if (loader->child_running)
30 return TRUE;
31
32- /* Find the gst-plugin-scanner: first try the env-var if it is set,
33- * otherwise use the installed version */
34+ /* Find the gst-plugin-scanner */
35 env = g_getenv ("GST_PLUGIN_SCANNER_1_0");
36 if (env == NULL)
37 env = g_getenv ("GST_PLUGIN_SCANNER");
38
39 if (env != NULL && *env != '\0') {
40+ /* use the env-var if it is set */
41 GST_LOG ("Trying GST_PLUGIN_SCANNER env var: %s", env);
23 helper_bin = g_strdup (env); 42 helper_bin = g_strdup (env);
24 res = gst_plugin_loader_try_helper (loader, helper_bin); 43 res = gst_plugin_loader_try_helper (loader, helper_bin);
25 g_free (helper_bin); 44 g_free (helper_bin);
@@ -27,9 +46,24 @@ index 430829d..3a75731 100644
27- 46-
28- if (!res) { 47- if (!res) {
29+ } else { 48+ } else {
49+ /* use the installed version */
30 GST_LOG ("Trying installed plugin scanner"); 50 GST_LOG ("Trying installed plugin scanner");
31 51
32 #ifdef G_OS_WIN32 52 #ifdef G_OS_WIN32
53@@ -497,10 +496,10 @@ gst_plugin_loader_spawn (GstPluginLoader * loader)
54 #endif
55 res = gst_plugin_loader_try_helper (loader, helper_bin);
56 g_free (helper_bin);
57+ }
58
59- if (!res) {
60- GST_INFO ("No gst-plugin-scanner available, or not working");
61- }
62+ if (!res) {
63+ GST_INFO ("No gst-plugin-scanner available, or not working");
64 }
65
66 return loader->child_running;
33-- 67--
342.15.1 682.29.2
35 69
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch
new file mode 100644
index 00000000..96abef17
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/0002-Remove-unused-valgrind-detection.patch
@@ -0,0 +1,112 @@
1From 598d108e2c438d8f2ecd3bf948fa3ebbd3681490 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
3Date: Fri, 14 Aug 2020 16:38:26 +0100
4Subject: [PATCH 2/3] Remove unused valgrind detection
5
6Having this just to log a debug message in case we're
7running inside valgrind doesn't seem very useful, and
8the code that used to use this no longer exists it seems.
9
10Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/595>
11
12Upstream-Status: Backport [a2cbf75523cdf8a4df1baa7007d86ef455972245]
13
14Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
15---
16 gst/gst_private.h | 2 --
17 gst/gstinfo.c | 39 ---------------------------------------
18 meson.build | 1 -
19 3 files changed, 42 deletions(-)
20
21diff --git a/gst/gst_private.h b/gst/gst_private.h
22index eefd044d9..8252ede51 100644
23--- a/gst/gst_private.h
24+++ b/gst/gst_private.h
25@@ -116,8 +116,6 @@ G_GNUC_INTERNAL gboolean _priv_plugin_deps_env_vars_changed (GstPlugin * plugin
26
27 G_GNUC_INTERNAL gboolean _priv_plugin_deps_files_changed (GstPlugin * plugin);
28
29-G_GNUC_INTERNAL gboolean _priv_gst_in_valgrind (void);
30-
31 /* init functions called from gst_init(). */
32 G_GNUC_INTERNAL void _priv_gst_quarks_initialize (void);
33 G_GNUC_INTERNAL void _priv_gst_mini_object_initialize (void);
34diff --git a/gst/gstinfo.c b/gst/gstinfo.c
35index 5d317877b..097f8b20d 100644
36--- a/gst/gstinfo.c
37+++ b/gst/gstinfo.c
38@@ -305,36 +305,6 @@ static gboolean pretty_tags = PRETTY_TAGS_DEFAULT;
39 static volatile gint G_GNUC_MAY_ALIAS __default_level = GST_LEVEL_DEFAULT;
40 static volatile gint G_GNUC_MAY_ALIAS __use_color = GST_DEBUG_COLOR_MODE_ON;
41
42-/* FIXME: export this? */
43-gboolean
44-_priv_gst_in_valgrind (void)
45-{
46- static enum
47- {
48- GST_VG_UNCHECKED,
49- GST_VG_NO_VALGRIND,
50- GST_VG_INSIDE
51- }
52- in_valgrind = GST_VG_UNCHECKED;
53-
54- if (in_valgrind == GST_VG_UNCHECKED) {
55-#ifdef HAVE_VALGRIND_VALGRIND_H
56- if (RUNNING_ON_VALGRIND) {
57- GST_CAT_INFO (GST_CAT_GST_INIT, "we're running inside valgrind");
58- in_valgrind = GST_VG_INSIDE;
59- } else {
60- GST_CAT_LOG (GST_CAT_GST_INIT, "not doing extra valgrind stuff");
61- in_valgrind = GST_VG_NO_VALGRIND;
62- }
63-#else
64- in_valgrind = GST_VG_NO_VALGRIND;
65-#endif
66- g_assert (in_valgrind == GST_VG_NO_VALGRIND ||
67- in_valgrind == GST_VG_INSIDE);
68- }
69- return (in_valgrind == GST_VG_INSIDE);
70-}
71-
72 static gchar *
73 _replace_pattern_in_gst_debug_file_name (gchar * name, const char *token,
74 guint val)
75@@ -463,9 +433,6 @@ _priv_gst_debug_init (void)
76 _priv_GST_CAT_PROTECTION =
77 _gst_debug_category_new ("GST_PROTECTION", 0, "protection");
78
79- /* print out the valgrind message if we're in valgrind */
80- _priv_gst_in_valgrind ();
81-
82 env = g_getenv ("GST_DEBUG_OPTIONS");
83 if (env != NULL) {
84 if (strstr (env, "full_tags") || strstr (env, "full-tags"))
85@@ -2503,12 +2470,6 @@ gst_debug_construct_win_color (guint colorinfo)
86 return 0;
87 }
88
89-gboolean
90-_priv_gst_in_valgrind (void)
91-{
92- return FALSE;
93-}
94-
95 void
96 _gst_debug_dump_mem (GstDebugCategory * cat, const gchar * file,
97 const gchar * func, gint line, GObject * obj, const gchar * msg,
98diff --git a/meson.build b/meson.build
99index ce1921aa4..7a84d0981 100644
100--- a/meson.build
101+++ b/meson.build
102@@ -200,7 +200,6 @@ check_headers = [
103 'sys/wait.h',
104 'ucontext.h',
105 'unistd.h',
106- 'valgrind/valgrind.h',
107 'sys/resource.h',
108 'sys/uio.h',
109 ]
110--
1112.29.2
112
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch
deleted file mode 100644
index 1ed7198a..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0/0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From 35db4a2433fbdf8612cf98b5aab5b14aeb5372f8 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
3Date: Thu, 17 Oct 2019 12:13:35 +0100
4Subject: [PATCH] meson: build gir even when cross-compiling if introspection
5 was enabled explicitly
6
7This can be made to work in certain circumstances when
8cross-compiling, so default to not building g-i stuff
9when cross-compiling, but allow it if introspection was
10enabled explicitly via -Dintrospection=enabled.
11
12Fixes #454 and #381.
13
14Upstream-Status: Backport [35db4a2433fbdf8612cf98b5aab5b14aeb5372f8]
15
16Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
17---
18 meson.build | 2 +-
19 1 file changed, 1 insertion(+), 1 deletion(-)
20
21diff --git a/meson.build b/meson.build
22index 90d98d8eb..a47e7f34e 100644
23--- a/meson.build
24+++ b/meson.build
25@@ -466,7 +466,7 @@ rt_lib = cc.find_library('rt', required : false)
26 gir = find_program('g-ir-scanner', required : get_option('introspection'))
27 gnome = import('gnome')
28
29-build_gir = gir.found() and not meson.is_cross_build()
30+build_gir = gir.found() and (not meson.is_cross_build() or get_option('introspection').enabled())
31
32 gir_init_section = [ '--add-init-section=extern void gst_init(gint*,gchar**);' + \
33 'g_setenv("GST_REGISTRY_DISABLE", "yes", TRUE);' + \
34--
352.17.1
36
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-valgrind-feature.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-valgrind-feature.patch
deleted file mode 100644
index f553340f..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0/0003-meson-Add-valgrind-feature.patch
+++ /dev/null
@@ -1,74 +0,0 @@
1From f6c7973c03d9ba7dab60c496e768c5e6c4ee824c Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <crg7475@mailbox.org>
3Date: Sun, 20 Oct 2019 10:36:44 +0200
4Subject: [PATCH] meson: Add valgrind feature
5
6This allows for enabling/disabling Valgrind support. Since Valgrind is
7an external dependency, such a feature is needed by build environemnts
8such as Yocto to make sure builds are deterministic. These changes also
9add more Valgrind specific configure log output.
10
11Upstream-Status: Pending
12
13Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
14---
15 meson.build | 23 ++++++++++++++++++++++-
16 meson_options.txt | 1 +
17 2 files changed, 23 insertions(+), 1 deletion(-)
18
19diff --git a/meson.build b/meson.build
20index b55ecc5..4751761 100644
21--- a/meson.build
22+++ b/meson.build
23@@ -199,7 +199,6 @@ check_headers = [
24 'sys/wait.h',
25 'ucontext.h',
26 'unistd.h',
27- 'valgrind/valgrind.h',
28 'sys/resource.h',
29 ]
30
31@@ -214,6 +213,28 @@ foreach h : check_headers
32 endif
33 endforeach
34
35+valgrind_option = get_option('valgrind')
36+if valgrind_option.disabled()
37+ message('Valgrind support not requested; disabled.')
38+else
39+ valgrind_header = 'valgrind/valgrind.h'
40+ has_valgrind_header = cc.has_header(valgrind_header)
41+ if has_valgrind_header
42+ message('Valgrind support requested, and header ' + valgrind_header + \
43+ ' found. Enabled Valgrind support.')
44+ define = 'HAVE_' + valgrind_header.underscorify().to_upper()
45+ cdata.set(define, 1)
46+ else
47+ if valgrind_option.enabled()
48+ error('Valgrind support requested and set as required, but header ' + \
49+ valgrind_header + ' not found.')
50+ else
51+ message('Valgrind support requested, but header ' + valgrind_header + \
52+ ' not found. Disabling Valgrind support.')
53+ endif
54+ endif
55+endif
56+
57 if cc.has_member('struct tm', 'tm_gmtoff', prefix : '#include <time.h>')
58 cdata.set('HAVE_TM_GMTOFF', 1)
59 endif
60diff --git a/meson_options.txt b/meson_options.txt
61index e7ff7ba..8afde39 100644
62--- a/meson_options.txt
63+++ b/meson_options.txt
64@@ -19,6 +19,7 @@ option('memory-alignment', type: 'combo',
65
66 # Feature options
67 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
68+option('valgrind', type : 'feature', value : 'auto', description : 'Enable Valgrind support')
69 option('libunwind', type : 'feature', value : 'auto', description : 'Use libunwind to generate backtraces')
70 option('libdw', type : 'feature', value : 'auto', description : 'Use libdw to generate better backtraces from libunwind')
71 option('dbghelp', type : 'feature', value : 'auto', description : 'Use dbghelp to generate backtraces')
72--
732.17.1
74
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch
new file mode 100644
index 00000000..e0e64e2c
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch
@@ -0,0 +1,32 @@
1From 1db36347d05d88835519368442e9aa89c64091ad Mon Sep 17 00:00:00 2001
2From: Seungha Yang <seungha@centricular.com>
3Date: Tue, 15 Sep 2020 00:54:58 +0900
4Subject: [PATCH] tests: seek: Don't use too strict timeout for validation
5
6Expected segment-done message might not be seen within expected
7time if system is not powerful enough.
8
9Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/625>
10
11Upstream-Status: Backport [https://cgit.freedesktop.org/gstreamer/gstreamer/commit?id=f44312ae5d831438fcf8041162079c65321c588c]
12Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
13---
14 tests/check/pipelines/seek.c | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17diff --git a/tests/check/pipelines/seek.c b/tests/check/pipelines/seek.c
18index 28bb8846d..5f7447bc5 100644
19--- a/tests/check/pipelines/seek.c
20+++ b/tests/check/pipelines/seek.c
21@@ -521,7 +521,7 @@ GST_START_TEST (test_loopback_2)
22
23 GST_INFO ("wait for segment done message");
24
25- msg = gst_bus_timed_pop_filtered (bus, (GstClockTime) 2 * GST_SECOND,
26+ msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,
27 GST_MESSAGE_SEGMENT_DONE | GST_MESSAGE_ERROR);
28 fail_unless (msg, "no message within the timed window");
29 fail_unless_equals_string (GST_MESSAGE_TYPE_NAME (msg), "segment-done");
30--
312.29.2
32
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
deleted file mode 100644
index 0e6c44ea..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0/0004-meson-Add-option-for-installed-tests.patch
+++ /dev/null
@@ -1,257 +0,0 @@
1From b843400284751968862751dfe93853f151551c64 Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <crg7475@mailbox.org>
3Date: Fri, 25 Oct 2019 00:06:26 +0200
4Subject: [PATCH] meson: Add option for installed tests
5
6This adds an option for producing installed versions of the unit tests.
7These versions don't need meson to run (only a small shell script). This
8makes it easier to run cross compiled tests on a target machine.
9
10Upstream-Status: Pending
11
12Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
13---
14 build-aux/gen-installed-test-desc.py | 18 ++++++
15 build-aux/gen-installed-test-shscript.py | 25 ++++++++
16 meson_options.txt | 2 +
17 tests/check/meson.build | 46 +++++++++++++-
18 tests/files/testfile | 80 ++++++++++++++++++++++++
19 5 files changed, 170 insertions(+), 1 deletion(-)
20 create mode 100644 build-aux/gen-installed-test-desc.py
21 create mode 100644 build-aux/gen-installed-test-shscript.py
22 create mode 100644 tests/files/testfile
23
24diff --git a/build-aux/gen-installed-test-desc.py b/build-aux/gen-installed-test-desc.py
25new file mode 100644
26index 0000000..69e8a0f
27--- /dev/null
28+++ b/build-aux/gen-installed-test-desc.py
29@@ -0,0 +1,18 @@
30+import sys
31+import os
32+import argparse
33+
34+def write_template(filename, data):
35+ with open(filename, 'w') as f:
36+ f.write(data)
37+
38+def build_template(testdir, testname):
39+ return "[Test]\nType=session\nExec={}\n".format(os.path.join(testdir, testname))
40+
41+argparser = argparse.ArgumentParser(description='Generate installed-test data.')
42+argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory')
43+argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name')
44+argparser.add_argument('--output', metavar='file', required=True, help='Output file')
45+args = argparser.parse_args()
46+
47+write_template(args.output, build_template(args.test_execdir, args.testname))
48diff --git a/build-aux/gen-installed-test-shscript.py b/build-aux/gen-installed-test-shscript.py
49new file mode 100644
50index 0000000..5da86fb
51--- /dev/null
52+++ b/build-aux/gen-installed-test-shscript.py
53@@ -0,0 +1,25 @@
54+import sys
55+import os
56+import argparse
57+
58+def write_template(filename, data):
59+ with open(filename, 'w') as f:
60+ f.write(data)
61+
62+def build_template(testdir, testname):
63+ return ''.join([
64+ "#!/usr/bin/env sh\n",
65+ "export GST_STATE_IGNORE_ELEMENTS=''\n",
66+ "export CK_DEFAULT_TIMEOUT=20\n",
67+ "export GST_PLUGIN_LOADING_WHITELIST='gstreamer'\n",
68+ "{}\n".format(os.path.join(testdir, testname)),
69+ ])
70+
71+argparser = argparse.ArgumentParser(description='Generate installed-test data.')
72+argparser.add_argument('--test-execdir', metavar='dir', required=True, help='Installed test directory')
73+argparser.add_argument('--testname', metavar='name', required=True, help='Installed test name')
74+argparser.add_argument('--output', metavar='file', required=True, help='Output file')
75+args = argparser.parse_args()
76+
77+write_template(args.output, build_template(args.test_execdir, args.testname))
78+os.chmod(args.output, 0o755)
79diff --git a/meson_options.txt b/meson_options.txt
80index 8afde39..8884dcc 100644
81--- a/meson_options.txt
82+++ b/meson_options.txt
83@@ -16,6 +16,8 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
84 option('memory-alignment', type: 'combo',
85 choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
86 value: 'malloc')
87+option('installed-tests', type : 'boolean', value : false, description : 'enable installed tests')
88+option('test-files-path', type : 'string', description : 'Path where to find test files')
89
90 # Feature options
91 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
92diff --git a/tests/check/meson.build b/tests/check/meson.build
93index 04da83f..2db7f76 100644
94--- a/tests/check/meson.build
95+++ b/tests/check/meson.build
96@@ -118,11 +118,17 @@ if add_languages('cpp', required : false)
97 ]
98 endif
99
100+test_files_path = get_option('test-files-path')
101+if test_files_path == ''
102+ test_files_path = meson.current_source_dir() + '/../files'
103+endif
104+message('Using path "@0@" as the path to read test files from'.format(test_files_path))
105+
106 test_defines = [
107 '-UG_DISABLE_ASSERT',
108 '-UG_DISABLE_CAST_CHECKS',
109 '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
110- '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"',
111+ '-DTESTFILE="@0@"'.format(test_files_path + '/testfile'),
112 '-DGST_USE_UNSTABLE_API',
113 '-DGST_DISABLE_DEPRECATED',
114 ]
115@@ -137,6 +143,14 @@ endif
116 glib_deps = [gio_dep, gobject_dep, gmodule_dep, glib_dep]
117 gst_deps = [gst_dep, gst_base_dep, gst_check_dep, gst_net_dep, gst_controller_dep]
118
119+installed_tests_datadir = join_paths(prefix, get_option('datadir'), 'installed-tests', 'gstreamer-1.0')
120+installed_tests_execdir = join_paths(prefix, libexecdir, 'installed-tests', 'gstreamer-1.0')
121+installed_tests_enabled = get_option('installed-tests')
122+
123+python = import('python').find_installation()
124+gen_installed_test_desc = files('../../build-aux/gen-installed-test-desc.py')
125+gen_installed_test_shscript = files('../../build-aux/gen-installed-test-shscript.py')
126+
127 foreach t : core_tests
128 fname = t[0]
129 test_name = fname.split('.')[0].underscorify()
130@@ -150,8 +164,38 @@ foreach t : core_tests
131 include_directories : [configinc],
132 link_with : link_with_libs,
133 dependencies : test_deps + glib_deps + gst_deps,
134+ install_dir: installed_tests_execdir,
135+ install: installed_tests_enabled
136 )
137
138+ if installed_tests_enabled
139+ installed_test_shscript = test_name + '.sh'
140+ shscript = custom_target (test_name + '_shscript',
141+ output: installed_test_shscript,
142+ command: [
143+ python,
144+ gen_installed_test_shscript,
145+ '--test-execdir=@0@'.format(installed_tests_execdir),
146+ '--testname=@0@'.format(test_name),
147+ '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_shscript)),
148+ ],
149+ install: true,
150+ install_dir: installed_tests_execdir)
151+
152+ installed_test_desc = test_name + '.test'
153+ data = custom_target(test_name + '_desc',
154+ output: installed_test_desc,
155+ command: [
156+ python,
157+ gen_installed_test_desc,
158+ '--test-execdir=@0@'.format(installed_tests_execdir),
159+ '--testname=@0@'.format(installed_test_shscript),
160+ '--output=@0@'.format(join_paths('@OUTDIR@', installed_test_desc)),
161+ ],
162+ install: true,
163+ install_dir: installed_tests_datadir)
164+ endif
165+
166 env = environment()
167 env.set('GST_PLUGIN_PATH_1_0', meson.build_root())
168 env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
169diff --git a/tests/files/testfile b/tests/files/testfile
170new file mode 100644
171index 0000000..89954e0
172--- /dev/null
173+++ b/tests/files/testfile
174@@ -0,0 +1,80 @@
175+................................................................................
176+................................................................................
177+................................................................................
178+................................................................................
179+................................................................................
180+................................................................................
181+................................................................................
182+................................................................................
183+................................................................................
184+................................................................................
185+................................................................................
186+................................................................................
187+................................................................................
188+................................................................................
189+................................................................................
190+................................................................................
191+................................................................................
192+................................................................................
193+................................................................................
194+................................................................................
195+................................................................................
196+................................................................................
197+................................................................................
198+................................................................................
199+................................................................................
200+................................................................................
201+................................................................................
202+................................................................................
203+................................................................................
204+................................................................................
205+................................................................................
206+................................................................................
207+................................................................................
208+................................................................................
209+................................................................................
210+................................................................................
211+................................................................................
212+................................................................................
213+................................................................................
214+................................................................................
215+................................................................................
216+................................................................................
217+................................................................................
218+................................................................................
219+................................................................................
220+................................................................................
221+................................................................................
222+................................................................................
223+................................................................................
224+................................................................................
225+................................................................................
226+................................................................................
227+................................................................................
228+................................................................................
229+................................................................................
230+................................................................................
231+................................................................................
232+................................................................................
233+................................................................................
234+................................................................................
235+................................................................................
236+................................................................................
237+................................................................................
238+................................................................................
239+................................................................................
240+................................................................................
241+................................................................................
242+................................................................................
243+................................................................................
244+................................................................................
245+................................................................................
246+................................................................................
247+................................................................................
248+................................................................................
249+................................................................................
250+................................................................................
251+................................................................................
252+................................................................................
253+................................................................................
254+................................................................................
255--
2562.17.1
257
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
new file mode 100644
index 00000000..6f571a12
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/0004-tests-respect-the-idententaion-used-in-meson.patch
@@ -0,0 +1,36 @@
1From 122e5ac3dd16a461b6ae595605490c8f5d1c3a9d Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 11 Apr 2021 19:48:13 +0100
4Subject: [PATCH 1/4] tests: respect the idententaion used in meson
5
6Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
7
8Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
9---
10 tests/check/meson.build | 10 +++++-----
11 1 file changed, 5 insertions(+), 5 deletions(-)
12
13diff --git a/tests/check/meson.build b/tests/check/meson.build
14index a617cf159..b2636714b 100644
15--- a/tests/check/meson.build
16+++ b/tests/check/meson.build
17@@ -146,11 +146,11 @@ foreach t : core_tests
18
19 if not skip_test
20 exe = executable(test_name, fname,
21- c_args : gst_c_args + test_defines,
22- cpp_args : gst_c_args + test_defines,
23- include_directories : [configinc],
24- link_with : link_with_libs,
25- dependencies : test_deps + glib_deps + gst_deps,
26+ c_args : gst_c_args + test_defines,
27+ cpp_args : gst_c_args + test_defines,
28+ include_directories : [configinc],
29+ link_with : link_with_libs,
30+ dependencies : test_deps + glib_deps + gst_deps,
31 )
32
33 env = environment()
34--
352.31.1
36
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
new file mode 100644
index 00000000..b77fb579
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/0005-tests-add-support-for-install-the-tests.patch
@@ -0,0 +1,110 @@
1From c9e93c7a3e4d2773abef4f5e1464af24f36700b3 Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 11 Apr 2021 19:48:13 +0100
4Subject: [PATCH 2/4] tests: add support for install the tests
5
6This will provide to run the tests using the gnome-desktop-testing [1]
7
8[1] https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests
9
10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
11
12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
13---
14 meson.build | 5 +++++
15 meson_options.txt | 1 +
16 template.test.in | 3 +++
17 tests/check/meson.build | 22 +++++++++++++++++++++-
18 4 files changed, 30 insertions(+), 1 deletion(-)
19 create mode 100644 template.test.in
20
21diff --git a/meson.build b/meson.build
22index c4e8774f5..1abf4eb26 100644
23--- a/meson.build
24+++ b/meson.build
25@@ -562,6 +562,11 @@ if bashcomp_dep.found()
26 endif
27 endif
28
29+installed_tests_metadir = join_paths(datadir, 'installed-tests', meson.project_name())
30+installed_tests_execdir = join_paths(libexecdir, 'installed-tests', meson.project_name())
31+installed_tests_enabled = get_option('installed-tests')
32+installed_tests_template = files('template.test.in')
33+
34 plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0')
35
36 pkgconfig = import('pkgconfig')
37diff --git a/meson_options.txt b/meson_options.txt
38index c8cee3762..b5da40eaa 100644
39--- a/meson_options.txt
40+++ b/meson_options.txt
41@@ -15,6 +15,7 @@ option('poisoning', type : 'boolean', value : false, description : 'Enable poiso
42 option('memory-alignment', type: 'combo',
43 choices : ['1', '2', '4', '8', '16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', 'malloc', 'pagesize'],
44 value: 'malloc')
45+option('installed-tests', type : 'boolean', value : false, description : 'Enable installed tests')
46
47 # Feature options
48 option('check', type : 'feature', value : 'auto', description : 'Build unit test libraries')
49diff --git a/template.test.in b/template.test.in
50new file mode 100644
51index 000000000..f701627f8
52--- /dev/null
53+++ b/template.test.in
54@@ -0,0 +1,3 @@
55+[Test]
56+Type=session
57+Exec=@installed_tests_dir@/@program@
58diff --git a/tests/check/meson.build b/tests/check/meson.build
59index b2636714b..a697a7b06 100644
60--- a/tests/check/meson.build
61+++ b/tests/check/meson.build
62@@ -124,10 +124,16 @@ test_defines = [
63 '-UG_DISABLE_ASSERT',
64 '-UG_DISABLE_CAST_CHECKS',
65 '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_STATE_IGNORE_ELEMENTS"',
66- '-DTESTFILE="' + meson.current_source_dir() + '/meson.build"',
67 '-DGST_DISABLE_DEPRECATED',
68 ]
69
70+testfile = meson.current_source_dir() + '/meson.build'
71+if installed_tests_enabled
72+ install_data(testfile, install_dir : installed_tests_metadir, rename : 'testfile')
73+ testfile = installed_tests_metadir + '/testfile'
74+endif
75+test_defines += '-DTESTFILE="@0@"'.format(testfile)
76+
77 # sanity checking
78 if get_option('check').disabled()
79 if get_option('tests').enabled()
80@@ -151,6 +157,8 @@ foreach t : core_tests
81 include_directories : [configinc],
82 link_with : link_with_libs,
83 dependencies : test_deps + glib_deps + gst_deps,
84+ install_dir: installed_tests_execdir,
85+ install: installed_tests_enabled,
86 )
87
88 env = environment()
89@@ -162,6 +170,18 @@ foreach t : core_tests
90 env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
91 env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
92
93+ if installed_tests_enabled
94+ test_conf = configuration_data()
95+ test_conf.set('installed_tests_dir', join_paths(prefix, installed_tests_execdir))
96+ test_conf.set('program', test_name)
97+ configure_file(
98+ input: installed_tests_template,
99+ output: test_name + '.test',
100+ install_dir: installed_tests_metadir,
101+ configuration: test_conf
102+ )
103+ endif
104+
105 test(test_name, exe, env: env, timeout : 3 * 60)
106 endif
107 endforeach
108--
1092.31.1
110
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
new file mode 100644
index 00000000..46813cec
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/0006-tests-use-a-dictionaries-for-environment.patch
@@ -0,0 +1,48 @@
1From e82dedec1803922656e92285fc1bb75b2cdc0aad Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sat, 24 Apr 2021 10:34:47 +0100
4Subject: [PATCH 3/4] tests: use a dictionaries for environment
5
6meson environment() can't be passed to configure_file and it is needed for installed_tests,
7use a dictionary as this is simplest solution to install the environment.
8
9Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
10
11Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
12---
13 tests/check/meson.build | 19 +++++++++++--------
14 1 file changed, 11 insertions(+), 8 deletions(-)
15
16diff --git a/tests/check/meson.build b/tests/check/meson.build
17index a697a7b06..f64524904 100644
18--- a/tests/check/meson.build
19+++ b/tests/check/meson.build
20@@ -161,14 +161,17 @@ foreach t : core_tests
21 install: installed_tests_enabled,
22 )
23
24- env = environment()
25- env.set('GST_PLUGIN_PATH_1_0', meson.build_root())
26- env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
27- env.set('GST_STATE_IGNORE_ELEMENTS', '')
28- env.set('CK_DEFAULT_TIMEOUT', '20')
29- env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), test_name))
30- env.set('GST_PLUGIN_SCANNER_1_0', gst_scanner_dir + '/gst-plugin-scanner')
31- env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer')
32+ # environment() can't be passed to configure_file and it is needed for installed_tests
33+ # use a dictionary as this is simplest solution to install the environment
34+ env = {
35+ 'GST_PLUGIN_PATH_1_0': meson.build_root(),
36+ 'GST_PLUGIN_SYSTEM_PATH_1_0': '',
37+ 'GST_STATE_IGNORE_ELEMENTS': '',
38+ 'CK_DEFAULT_TIMEOUT': '20',
39+ 'GST_REGISTRY': '@0@/@1@.registry'.format(meson.current_build_dir(), test_name),
40+ 'GST_PLUGIN_SCANNER_1_0': gst_scanner_dir + '/gst-plugin-scanner',
41+ 'GST_PLUGIN_LOADING_WHITELIST': 'gstreamer',
42+ }
43
44 if installed_tests_enabled
45 test_conf = configuration_data()
46--
472.31.1
48
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch b/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
new file mode 100644
index 00000000..eabe7bcb
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/0007-tests-install-the-environment-for-installed_tests.patch
@@ -0,0 +1,58 @@
1From 57d2965e979f886e03eecd7e351bf01812053971 Mon Sep 17 00:00:00 2001
2From: Jose Quaresma <quaresma.jose@gmail.com>
3Date: Sun, 2 May 2021 01:58:01 +0100
4Subject: [PATCH 4/4] tests: install the environment for installed_tests
5
6- adapt the test environment for installed_tests
7- install the test environment for installed_tests
8- run the tests using the installed environment
9
10Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/789]
11
12Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
13---
14 template.test.in | 2 +-
15 tests/check/meson.build | 18 ++++++++++++++++++
16 2 files changed, 19 insertions(+), 1 deletion(-)
17
18diff --git a/template.test.in b/template.test.in
19index f701627f8..9a3fbdd09 100644
20--- a/template.test.in
21+++ b/template.test.in
22@@ -1,3 +1,3 @@
23 [Test]
24 Type=session
25-Exec=@installed_tests_dir@/@program@
26+Exec=sh -c 'set -aex && source @installed_tests_dir@/@program@.env && exec @installed_tests_dir@/@program@'
27diff --git a/tests/check/meson.build b/tests/check/meson.build
28index f64524904..a67e0f8dd 100644
29--- a/tests/check/meson.build
30+++ b/tests/check/meson.build
31@@ -183,6 +183,24 @@ foreach t : core_tests
32 install_dir: installed_tests_metadir,
33 configuration: test_conf
34 )
35+
36+ env += {'GST_REGISTRY': '~/.cache/gstreamer-1.0/@0@.registry'.format(test_name)}
37+ configure_file(
38+ output: test_name + '.env',
39+ install_dir: installed_tests_execdir,
40+ configuration : env,
41+ )
42+ # helper to convert a meson environment dictionay object exported with configure_file
43+ # this also remove not needed variables for the installed tests
44+ meson.add_postconf_script('sed', '-i',
45+ '-e', '/^#define/!d',
46+ '-e', 's/^#define //g',
47+ '-e', '/^GST_PLUGIN_PATH_1_0/d',
48+ '-e', '/^GST_PLUGIN_SYSTEM_PATH_1_0/d',
49+ '-e', '/^GST_PLUGIN_SCANNER_1_0/d',
50+ '-e', 's/ /=/',
51+ join_paths(meson.current_build_dir(), test_name + '.env')
52+ )
53 endif
54
55 test(test_name, exe, env: env, timeout : 3 * 60)
56--
572.31.1
58
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch b/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch
deleted file mode 100644
index 7ca3d5ad..00000000
--- a/recipes-multimedia/gstreamer/gstreamer1.0/capfix.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1Currently gstreamer configuration depends on whether setcap is found on the host
2system. Turn this into a configure option to make builds deterinistic.
3
4RP 2020/2/19
5Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
6Upstream-Status: Pending
7
8Index: gstreamer-1.16.1/libs/gst/helpers/meson.build
9===================================================================
10--- gstreamer-1.16.1.orig/libs/gst/helpers/meson.build
11+++ gstreamer-1.16.1/libs/gst/helpers/meson.build
12@@ -73,7 +73,12 @@ if have_ptp
13 endif
14 endif
15
16- setcap = find_program('setcap', '/usr/sbin/setcap', '/sbin/setcap', required : false)
17+ setcap_feature = get_option('setcap')
18+ if setcap_feature.disabled()
19+ setcap = find_program('dontexist', required : false)
20+ else
21+ setcap = find_program('setcap', '/usr/sbin/setcap', '/sbin/setcap', required : false)
22+ endif
23
24 # user/group to change to in gst-ptp-helper
25 ptp_helper_setuid_user = get_option('ptp-helper-setuid-user')
26Index: gstreamer-1.16.1/meson_options.txt
27===================================================================
28--- gstreamer-1.16.1.orig/meson_options.txt
29+++ gstreamer-1.16.1/meson_options.txt
30@@ -26,6 +26,7 @@ option('libunwind', type : 'feature', va
31 option('libdw', type : 'feature', value : 'auto', description : 'Use libdw to generate better backtraces from libunwind')
32 option('dbghelp', type : 'feature', value : 'auto', description : 'Use dbghelp to generate backtraces')
33 option('bash-completion', type : 'feature', value : 'auto', description : 'Install bash completion files')
34+option('setcap', type : 'feature', value : 'auto', description : 'Use setcap')
35
36 # Common feature options
37 option('examples', type : 'feature', value : 'auto', yield : true)
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest b/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
new file mode 100755
index 00000000..0cfa955f
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0/run-ptest
@@ -0,0 +1,2 @@
1#!/usr/bin/env sh
2gnome-desktop-testing-runner gstreamer
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0_1.16.2.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0_1.18.0.imx.bb
index 8bbc16c8..13d1682a 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0_1.16.2.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0_1.18.0.imx.bb
@@ -6,28 +6,29 @@ BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
6SECTION = "multimedia" 6SECTION = "multimedia"
7LICENSE = "LGPLv2+" 7LICENSE = "LGPLv2+"
8 8
9DEPENDS = "glib-2.0 glib-2.0-native libcap libxml2 bison-native flex-native" 9DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native"
10 10
11inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection gtk-doc 11inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome
12 12
13LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \ 13LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
14 file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d" 14 file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
15 15
16S = "${WORKDIR}/git"
17
16# Use i.MX fork of GST for customizations 18# Use i.MX fork of GST for customizations
17GST1.0_SRC ?= "gitsm://source.codeaurora.org/external/imx/gstreamer.git;protocol=https" 19GST1.0_SRC ?= "gitsm://source.codeaurora.org/external/imx/gstreamer.git;protocol=https"
18SRCBRANCH = "MM_04.05.06_2008_L5.4.47" 20SRCBRANCH = "MM_04.06.01_2105_L5.10.y"
19 21SRC_URI = "${GST1.0_SRC};branch=${SRCBRANCH} \
20SRC_URI = " \ 22 file://run-ptest \
21 ${GST1.0_SRC};branch=${SRCBRANCH} \ 23 file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \
22 file://0001-gst-gstpluginloader.c-when-env-var-is-set-do-not-fal.patch \ 24 file://0002-Remove-unused-valgrind-detection.patch \
23 file://0002-meson-build-gir-even-when-cross-compiling-if-introsp.patch \ 25 file://0003-tests-seek-Don-t-use-too-strict-timeout-for-validati.patch \
24 file://0003-meson-Add-valgrind-feature.patch \ 26 file://0004-tests-respect-the-idententaion-used-in-meson.patch \
25 file://0004-meson-Add-option-for-installed-tests.patch \ 27 file://0005-tests-add-support-for-install-the-tests.patch \
26 file://capfix.patch \ 28 file://0006-tests-use-a-dictionaries-for-environment.patch \
27" 29 file://0007-tests-install-the-environment-for-installed_tests.patch \
28SRCREV = "8514bc61ccab208a65e387eab9347276a8e770e7" 30 "
29 31SRCREV = "2f20fd10eaf8629b3e8c134424c38412c4d3bd86"
30S = "${WORKDIR}/git"
31 32
32DEFAULT_PREFERENCE = "-1" 33DEFAULT_PREFERENCE = "-1"
33 34
@@ -38,14 +39,14 @@ PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
38 39
39PACKAGECONFIG[debug] = "-Dgst_debug=true,-Dgst_debug=false" 40PACKAGECONFIG[debug] = "-Dgst_debug=true,-Dgst_debug=false"
40PACKAGECONFIG[tracer-hooks] = "-Dtracer_hooks=true,-Dtracer_hooks=false" 41PACKAGECONFIG[tracer-hooks] = "-Dtracer_hooks=true,-Dtracer_hooks=false"
42PACKAGECONFIG[coretracers] = "-Dcoretracers=enabled,-Dcoretracers=disabled"
41PACKAGECONFIG[check] = "-Dcheck=enabled,-Dcheck=disabled" 43PACKAGECONFIG[check] = "-Dcheck=enabled,-Dcheck=disabled"
42PACKAGECONFIG[tests] = "-Dtests=enabled -Dinstalled-tests=true,-Dtests=disabled -Dinstalled-tests=false" 44PACKAGECONFIG[tests] = "-Dtests=enabled -Dinstalled-tests=true,-Dtests=disabled -Dinstalled-tests=false"
43PACKAGECONFIG[valgrind] = "-Dvalgrind=enabled,-Dvalgrind=disabled,valgrind,"
44PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind" 45PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind"
45PACKAGECONFIG[dw] = "-Dlibdw=enabled,-Dlibdw=disabled,elfutils" 46PACKAGECONFIG[dw] = "-Dlibdw=enabled,-Dlibdw=disabled,elfutils"
46PACKAGECONFIG[bash-completion] = "-Dbash-completion=enabled,-Dbash-completion=disabled,bash-completion" 47PACKAGECONFIG[bash-completion] = "-Dbash-completion=enabled,-Dbash-completion=disabled,bash-completion"
47PACKAGECONFIG[tools] = "-Dtools=enabled,-Dtools=disabled" 48PACKAGECONFIG[tools] = "-Dtools=enabled,-Dtools=disabled"
48PACKAGECONFIG[setcap] = "-Dsetcap=enabled,-Dsetcap=disabled,libcap libcap-native" 49PACKAGECONFIG[setcap] = "-Dptp-helper-permissions=capabilities,,libcap libcap-native"
49 50
50# TODO: put this in a gettext.bbclass patch 51# TODO: put this in a gettext.bbclass patch
51def gettext_oemeson(d): 52def gettext_oemeson(d):
@@ -57,28 +58,25 @@ def gettext_oemeson(d):
57 return '-Dnls=enabled' 58 return '-Dnls=enabled'
58 59
59EXTRA_OEMESON += " \ 60EXTRA_OEMESON += " \
61 -Ddoc=disabled \
60 -Dexamples=disabled \ 62 -Dexamples=disabled \
61 -Ddbghelp=disabled \ 63 -Ddbghelp=disabled \
62 ${@gettext_oemeson(d)} \ 64 ${@gettext_oemeson(d)} \
63" 65"
64 66
65GTKDOC_MESON_OPTION = "gtk_doc"
66GTKDOC_MESON_ENABLE_FLAG = "enabled"
67GTKDOC_MESON_DISABLE_FLAG = "disabled"
68
69GIR_MESON_ENABLE_FLAG = "enabled" 67GIR_MESON_ENABLE_FLAG = "enabled"
70GIR_MESON_DISABLE_FLAG = "disabled" 68GIR_MESON_DISABLE_FLAG = "disabled"
71 69
72PACKAGES += "${PN}-bash-completion" 70PACKAGES += "${PN}-bash-completion"
73 71
74# Add the core element plugins to the main package 72# Add the core element plugins to the main package
75FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" 73FILES:${PN} += "${libdir}/gstreamer-1.0/*.so"
76FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include" 74FILES:${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include"
77FILES_${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*" 75FILES:${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*"
78FILES_${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb ${datadir}/glib-2.0/gdb" 76FILES:${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
79 77
80CVE_PRODUCT = "gstreamer" 78CVE_PRODUCT = "gstreamer"
81 79
82require recipes-multimedia/gstreamer/gstreamer1.0-ptest.inc 80PTEST_BUILD_HOST_FILES = ""
83 81
84COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" 82COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
diff --git a/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.5.7.bb b/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.5.7.bb
deleted file mode 100644
index c8bb6cd8..00000000
--- a/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.5.7.bb
+++ /dev/null
@@ -1,84 +0,0 @@
1# Copyright (C) 2014,2016 Freescale Semiconductor
2# Copyright 2017-2019 NXP
3# Copyright (C) 2012-2015 O.S. Systems Software LTDA.
4# Released under the MIT license (see COPYING.MIT for the terms)
5
6DESCRIPTION = "Gstreamer freescale plugins"
7LICENSE = "GPLv2 & LGPLv2 & LGPLv2.1"
8SECTION = "multimedia"
9
10DEPENDS = "imx-codec imx-parser gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
11DEPENDS_append_mx6 = " imx-lib"
12DEPENDS_append_mx7 = " imx-lib"
13DEPENDS_append_imxvpu = " imx-vpuwrap libdrm"
14
15# For backwards compatibility
16RREPLACES_${PN} = "gst1.0-fsl-plugin"
17RPROVIDES_${PN} = "gst1.0-fsl-plugin"
18RCONFLICTS_${PN} = "gst1.0-fsl-plugin"
19
20LIC_FILES_CHKSUM = "file://COPYING-LGPL-2;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
21 file://COPYING-LGPL-2.1;md5=fbc093901857fcd118f065f900982c24"
22
23SRCBRANCH = "MM_04.05.07_2011_L5.4.70"
24
25SRC_URI = " \
26 git://source.codeaurora.org/external/imx/imx-gst1.0-plugin.git;protocol=https;branch=${SRCBRANCH} \
27"
28SRCREV = "659ec4947d6b1903d26e4ec9e40ae251a659935d"
29
30S = "${WORKDIR}/git"
31
32inherit autotools pkgconfig use-imx-headers
33
34PLATFORM_mx6 = "MX6"
35PLATFORM_mx6sl = "MX6SL"
36PLATFORM_mx6sx = "MX6SX"
37PLATFORM_mx6ul = "MX6UL"
38PLATFORM_mx6sll = "MX6SLL"
39PLATFORM_mx7= "MX7D"
40PLATFORM_mx7ulp= "MX7ULP"
41PLATFORM_mx8 = "MX8"
42
43# Todo add a mechanism to map possible build targets
44EXTRA_OECONF = "PLATFORM=${PLATFORM} \
45 CPPFLAGS="-I${STAGING_INCDIR_IMX}" \
46 CROSS_ROOT=${PKG_CONFIG_SYSROOT_DIR} \
47 ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', bb.utils.contains('DISTRO_FEATURES', 'x11', '--disable-x11', '', d), '', d)}"
48
49PACKAGES =+ "${PN}-gplay ${PN}-libgplaycore ${PN}-libgstfsl ${PN}-grecorder ${PN}-librecorder-engine ${PN}-libplayengine"
50
51# Add codec list that the beep plugin run-time depended
52BEEP_RDEPENDS = "imx-codec-aac imx-codec-mp3 imx-codec-oggvorbis"
53RDEPENDS_${PN} += "imx-parser ${BEEP_RDEPENDS} gstreamer1.0-plugins-good-id3demux "
54
55# overlaysink rely on G2D,
56# cannot be supported on i.MX6SLL & i.MX6UL & i.MX6ULL & i.MX7D
57PACKAGECONFIG ?= ""
58PACKAGECONFIG_imxgpu2d = "overlaysink"
59
60
61# FIXME: Add all features
62# feature from excluded mm packages
63PACKAGECONFIG[ac3] += ",,imx-ac3codec,imx-ac3codec"
64# feature from special mm packages
65PACKAGECONFIG[aacp] += ",,imx-aacpcodec,imx-aacpcodec"
66MSDEPENDS = "imx-msparser imx-mscodec"
67PACKAGECONFIG[wma10dec] += ",,${MSDEPENDS},${MSDEPENDS}"
68PACKAGECONFIG[wma8enc] += "--enable-wma8enc,--disable-wma8enc,${MSDEPENDS},${MSDEPENDS}"
69OVDEPENDS = "virtual/libg2d"
70PACKAGECONFIG[overlaysink] += "--enable-overlaysink,--disable-overlaysink, ${OVDEPENDS}"
71
72FILES_${PN} = "${libdir}/gstreamer-1.0/*.so ${datadir}"
73
74FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug"
75FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/pkgconfig/*.pc"
76FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
77FILES_${PN}-gplay = "${bindir}/gplay-1.0"
78FILES_${PN}-libgplaycore = "${libdir}/libgplaycore-1.0${SOLIBS}"
79FILES_${PN}-libgstfsl = "${libdir}/libgstfsl-1.0${SOLIBS}"
80FILES_${PN}-grecorder = "${bindir}/grecorder-1.0"
81FILES_${PN}-librecorder-engine = "${libdir}/librecorder_engine-1.0${SOLIBS}"
82FILES_${PN}-libplayengine = "${libdir}/libplayengine-1.0${SOLIBS}"
83
84COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
diff --git a/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.6.1.bb b/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.6.1.bb
new file mode 100644
index 00000000..9d43a175
--- /dev/null
+++ b/recipes-multimedia/gstreamer/imx-gst1.0-plugin_4.6.1.bb
@@ -0,0 +1,81 @@
1# Copyright (C) 2014,2016 Freescale Semiconductor
2# Copyright 2017-2021 NXP
3# Copyright (C) 2012-2015 O.S. Systems Software LTDA.
4# Released under the MIT license (see COPYING.MIT for the terms)
5
6DESCRIPTION = "Gstreamer freescale plugins"
7LICENSE = "GPLv2 & LGPLv2 & LGPLv2.1"
8SECTION = "multimedia"
9
10DEPENDS = "imx-codec imx-parser gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
11DEPENDS:append:mx6 = " imx-lib"
12DEPENDS:append:mx7 = " imx-lib"
13DEPENDS:append:imxvpu = " imx-vpuwrap libdrm"
14
15# For backwards compatibility
16RREPLACES:${PN} = "gst1.0-fsl-plugin"
17RPROVIDES:${PN} = "gst1.0-fsl-plugin"
18RCONFLICTS:${PN} = "gst1.0-fsl-plugin"
19
20LIC_FILES_CHKSUM = "file://COPYING-LGPL-2;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
21 file://COPYING-LGPL-2.1;md5=fbc093901857fcd118f065f900982c24"
22
23SRCBRANCH = "MM_04.06.01_2105_L5.10.y"
24
25
26SRC_URI = "git://source.codeaurora.org/external/imx/imx-gst1.0-plugin.git;protocol=https;branch=${SRCBRANCH}"
27SRCREV = "057e6bfbc208ce31e8ed0af0264dd1e86de05808"
28
29S = "${WORKDIR}/git"
30
31inherit meson pkgconfig use-imx-headers
32
33PLATFORM:mx6 = "MX6"
34PLATFORM:mx6sl = "MX6SL"
35PLATFORM:mx6sx = "MX6SX"
36PLATFORM:mx6ul = "MX6UL"
37PLATFORM:mx6sll = "MX6SLL"
38PLATFORM:mx7= "MX7D"
39PLATFORM:mx7ulp= "MX7ULP"
40PLATFORM:mx8 = "MX8"
41
42# Todo add a mechanism to map possible build targets
43EXTRA_OEMESON = "-Dplatform=${PLATFORM} \
44 -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}" \
45"
46
47PACKAGES =+ "${PN}-gplay ${PN}-libgplaycore ${PN}-libgstfsl ${PN}-grecorder ${PN}-librecorder-engine ${PN}-libplayengine"
48
49# Add codec list that the beep plugin run-time depended
50BEEP_RDEPENDS = "imx-codec-aac imx-codec-mp3 imx-codec-oggvorbis"
51RDEPENDS:${PN} += "imx-parser ${BEEP_RDEPENDS} gstreamer1.0-plugins-good-id3demux "
52
53# overlaysink rely on G2D,
54# cannot be supported on i.MX6SLL & i.MX6UL & i.MX6ULL & i.MX7D
55PACKAGECONFIG ?= ""
56PACKAGECONFIG:imxgpu2d = "overlaysink"
57
58
59# FIXME: Add all features
60# feature from excluded mm packages
61PACKAGECONFIG[ac3] = ",,imx-ac3codec,imx-ac3codec"
62# feature from special mm packages
63PACKAGECONFIG[aacp] = ",,imx-aacpcodec,imx-aacpcodec"
64MSDEPENDS = "imx-msparser imx-mscodec"
65PACKAGECONFIG[wma10dec] = ",,${MSDEPENDS},${MSDEPENDS}"
66PACKAGECONFIG[wma8enc] = ",,${MSDEPENDS},${MSDEPENDS}"
67PACKAGECONFIG[overlaysink] += ",,virtual/libg2d"
68
69FILES:${PN} = "${libdir}/gstreamer-1.0/*.so ${datadir}"
70
71FILES:${PN}-dbg += "${libdir}/gstreamer-1.0/.debug"
72FILES:${PN}-dev += "${libdir}/gstreamer-1.0/*.la ${libdir}/pkgconfig/*.pc"
73FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
74FILES:${PN}-gplay = "${bindir}/gplay-1.0"
75FILES:${PN}-libgplaycore = "${libdir}/libgplaycore-1.0${SOLIBS}"
76FILES:${PN}-libgstfsl = "${libdir}/libgstfsl-1.0${SOLIBS}"
77FILES:${PN}-grecorder = "${bindir}/grecorder-1.0"
78FILES:${PN}-librecorder-engine = "${libdir}/librecorder_engine-1.0${SOLIBS}"
79FILES:${PN}-libplayengine = "${libdir}/libplayengine-1.0${SOLIBS}"
80
81COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
diff --git a/recipes-multimedia/imx-codec/imx-codec_4.5.7.bb b/recipes-multimedia/imx-codec/imx-codec_4.5.7.bb
index 76a52f26..f54721d8 100644
--- a/recipes-multimedia/imx-codec/imx-codec_4.5.7.bb
+++ b/recipes-multimedia/imx-codec/imx-codec_4.5.7.bb
@@ -21,14 +21,14 @@ EXTRA_OECONF = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '--enable-armv8
21 bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--enable-fhw', '', d), d)}" 21 bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--enable-fhw', '', d), d)}"
22 22
23PACKAGECONFIG ?= "" 23PACKAGECONFIG ?= ""
24PACKAGECONFIG_imxvpu = "vpu" 24PACKAGECONFIG:imxvpu = "vpu"
25 25
26# We need to ensure we don't have '-src' package overrided 26# We need to ensure we don't have '-src' package overrided
27PACKAGE_DEBUG_SPLIT_STYLE = 'debug-without-src' 27PACKAGE_DEBUG_SPLIT_STYLE = 'debug-without-src'
28 28
29PACKAGECONFIG[vpu] = "--enable-vpu,--disable-vpu,virtual/imxvpu" 29PACKAGECONFIG[vpu] = "--enable-vpu,--disable-vpu,virtual/imxvpu"
30 30
31do_install_append() { 31do_install:append() {
32 # LTIB move the files around or gst-fsl-plugin won't find them 32 # LTIB move the files around or gst-fsl-plugin won't find them
33 for p in $(find ${D}${libdir}/imx-mm -mindepth 2 -maxdepth 2 -not -type d); do 33 for p in $(find ${D}${libdir}/imx-mm -mindepth 2 -maxdepth 2 -not -type d); do
34 mv $p ${D}${libdir} 34 mv $p ${D}${libdir}
@@ -46,15 +46,15 @@ python __set_insane_skip() {
46 for p in d.getVar('PACKAGES').split(): 46 for p in d.getVar('PACKAGES').split():
47 # Even though we are packaging libraries those are plugins so we 47 # Even though we are packaging libraries those are plugins so we
48 # shouldn't rename the packages to follow its sonames. 48 # shouldn't rename the packages to follow its sonames.
49 d.setVar("DEBIAN_NOAUTONAME_%s" % p, "1") 49 d.setVar("DEBIAN_NOAUTONAME:%s" % p, "1")
50 50
51 # FIXME: All binaries lack GNU_HASH in elf binary but as we don't have 51 # FIXME: All binaries lack GNU_HASH in elf binary but as we don't have
52 # the source we cannot fix it. Disable the insane check for now. 52 # the source we cannot fix it. Disable the insane check for now.
53 if p == 'imx-codec-test-bin': 53 if p == 'imx-codec-test-bin':
54 # FIXME: includes the DUT .so files so we need to deploy those 54 # FIXME: includes the DUT .so files so we need to deploy those
55 d.setVar("INSANE_SKIP_%s" % p, "ldflags textrel libdir file-rdeps") 55 d.setVar("INSANE_SKIP:%s" % p, "ldflags textrel libdir file-rdeps")
56 else: 56 else:
57 d.setVar("INSANE_SKIP_%s" % p, "ldflags textrel") 57 d.setVar("INSANE_SKIP:%s" % p, "ldflags textrel")
58} 58}
59 59
60do_package_qa[prefuncs] += "__set_insane_skip" 60do_package_qa[prefuncs] += "__set_insane_skip"
@@ -70,13 +70,13 @@ python __split_libfslcodec_plugins() {
70 for pkg in pkgs: 70 for pkg in pkgs:
71 meta = pkg[10:] 71 meta = pkg[10:]
72 if meta != '': 72 if meta != '':
73 d.setVar('RREPLACES_%s' % pkg, ' libfslcodec-%s' % meta) 73 d.setVar('RREPLACES:%s' % pkg, ' libfslcodec-%s' % meta)
74 d.setVar('RPROVIDES_%s' % pkg, ' libfslcodec-%s' % meta) 74 d.setVar('RPROVIDES:%s' % pkg, ' libfslcodec-%s' % meta)
75 d.setVar('RCONFLICTS_%s' % pkg, ' libfslcodec-%s' % meta) 75 d.setVar('RCONFLICTS:%s' % pkg, ' libfslcodec-%s' % meta)
76 else : 76 else :
77 d.setVar('RREPLACES_%s' % pkg, ' libfslcodec') 77 d.setVar('RREPLACES:%s' % pkg, ' libfslcodec')
78 d.setVar('RPROVIDES_%s' % pkg, ' libfslcodec') 78 d.setVar('RPROVIDES:%s' % pkg, ' libfslcodec')
79 d.setVar('RCONFLICTS_%s' % pkg, ' libfslcodec') 79 d.setVar('RCONFLICTS:%s' % pkg, ' libfslcodec')
80} 80}
81 81
82python __set_metapkg_rdepends() { 82python __set_metapkg_rdepends() {
@@ -85,7 +85,7 @@ python __set_metapkg_rdepends() {
85 codec_pkgs = oe.utils.packages_filter_out_system(d) 85 codec_pkgs = oe.utils.packages_filter_out_system(d)
86 codec_pkgs = filter(lambda x: x not in ['imx-codec-test-bin', 'imx-codec-test-source'], 86 codec_pkgs = filter(lambda x: x not in ['imx-codec-test-bin', 'imx-codec-test-source'],
87 codec_pkgs) 87 codec_pkgs)
88 d.appendVar('RDEPENDS_imx-codec-meta', ' ' + ' '.join(codec_pkgs)) 88 d.appendVar('RDEPENDS:imx-codec-meta', ' ' + ' '.join(codec_pkgs))
89} 89}
90 90
91PACKAGESPLITFUNCS =+ "__split_libfslcodec_plugins __set_metapkg_rdepends" 91PACKAGESPLITFUNCS =+ "__split_libfslcodec_plugins __set_metapkg_rdepends"
@@ -96,24 +96,24 @@ INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
96 96
97PACKAGES += "${PN}-meta ${PN}-test-bin ${PN}-test-source" 97PACKAGES += "${PN}-meta ${PN}-test-bin ${PN}-test-source"
98 98
99ALLOW_EMPTY_${PN} = "1" 99ALLOW_EMPTY:${PN} = "1"
100ALLOW_EMPTY_${PN}-meta = "1" 100ALLOW_EMPTY:${PN}-meta = "1"
101 101
102# Ensure we get warnings if we miss something 102# Ensure we get warnings if we miss something
103FILES_${PN} = "" 103FILES:${PN} = ""
104 104
105FILES_${PN}-dev += "${libdir}/imx-mm/*/*${SOLIBSDEV} \ 105FILES:${PN}-dev += "${libdir}/imx-mm/*/*${SOLIBSDEV} \
106 ${libdir}/imx-mm/*/*/*${SOLIBSDEV} \ 106 ${libdir}/imx-mm/*/*/*${SOLIBSDEV} \
107 ${libdir}/pkgconfig/*.pc ${includedir}/imx-mm/*" 107 ${libdir}/pkgconfig/*.pc ${includedir}/imx-mm/*"
108 108
109FILES_${PN}-test-bin += "${datadir}/imx-mm/*/examples/*/bin" 109FILES:${PN}-test-bin += "${datadir}/imx-mm/*/examples/*/bin"
110 110
111FILES_${PN}-test-source += "${datadir}/imx-mm/*" 111FILES:${PN}-test-source += "${datadir}/imx-mm/*"
112 112
113# FIXME: The wrap and lib names does not match 113# FIXME: The wrap and lib names does not match
114FILES_${PN}-oggvorbis += "${libdir}/imx-mm/audio-codec/wrap/lib_vorbisd_wrap_arm*_elinux.so.*" 114FILES:${PN}-oggvorbis += "${libdir}/imx-mm/audio-codec/wrap/lib_vorbisd_wrap_arm*_elinux.so.*"
115FILES_${PN}-nb += "${libdir}/imx-mm/audio-codec/wrap/lib_nbamrd_wrap_arm*_elinux.so.*" 115FILES:${PN}-nb += "${libdir}/imx-mm/audio-codec/wrap/lib_nbamrd_wrap_arm*_elinux.so.*"
116FILES_${PN}-wb += "${libdir}/imx-mm/audio-codec/wrap/lib_wbamrd_wrap_arm*_elinux.so.*" 116FILES:${PN}-wb += "${libdir}/imx-mm/audio-codec/wrap/lib_wbamrd_wrap_arm*_elinux.so.*"
117 117
118PACKAGE_ARCH = "${MACHINE_ARCH}" 118PACKAGE_ARCH = "${MACHINE_ARCH}"
119COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" 119COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
diff --git a/recipes-multimedia/imx-dspc-asrc/imx-dspc-asrc_1.0.1.bb b/recipes-multimedia/imx-dspc-asrc/imx-dspc-asrc_1.0.1.bb
index d9fd8458..83aa656f 100644
--- a/recipes-multimedia/imx-dspc-asrc/imx-dspc-asrc_1.0.1.bb
+++ b/recipes-multimedia/imx-dspc-asrc/imx-dspc-asrc_1.0.1.bb
@@ -17,6 +17,6 @@ INHIBIT_PACKAGE_STRIP = "1"
17INHIBIT_SYSROOT_STRIP = "1" 17INHIBIT_SYSROOT_STRIP = "1"
18INHIBIT_PACKAGE_DEBUG_SPLIT = "1" 18INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
19 19
20FILES_${PN} += "/unit_tests ${datadir}/imx-mm" 20FILES:${PN} += "/unit_tests ${datadir}/imx-mm"
21 21
22COMPATIBLE_MACHINE = "(mx8)" 22COMPATIBLE_MACHINE = "(mx8)"
diff --git a/recipes-multimedia/imx-parser/imx-parser_4.5.7.bb b/recipes-multimedia/imx-parser/imx-parser_4.5.7.bb
index 0a3bb6a2..61a7a260 100644
--- a/recipes-multimedia/imx-parser/imx-parser_4.5.7.bb
+++ b/recipes-multimedia/imx-parser/imx-parser_4.5.7.bb
@@ -9,9 +9,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=cf3f9b8d09bc3926b1004ea71f7a248a"
9 9
10# For backwards compatibility 10# For backwards compatibility
11PROVIDES += "libfslparser" 11PROVIDES += "libfslparser"
12RREPLACES_${PN} = "libfslparser" 12RREPLACES:${PN} = "libfslparser"
13RPROVIDES_${PN} = "libfslparser" 13RPROVIDES:${PN} = "libfslparser"
14RCONFLICTS_${PN} = "libfslparser" 14RCONFLICTS:${PN} = "libfslparser"
15 15
16SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true" 16SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true"
17SRC_URI[md5sum] = "dd34e4e2d1384af27d370964ebbd05fd" 17SRC_URI[md5sum] = "dd34e4e2d1384af27d370964ebbd05fd"
@@ -31,13 +31,13 @@ python __set_insane_skip() {
31 # the source we cannot fix it. Disable the insane check for now. 31 # the source we cannot fix it. Disable the insane check for now.
32 # FIXME: gst-fsl-plugin looks for the .so files so we need to deploy those 32 # FIXME: gst-fsl-plugin looks for the .so files so we need to deploy those
33 for p in d.getVar('PACKAGES').split(): 33 for p in d.getVar('PACKAGES').split():
34 d.setVar("INSANE_SKIP_%s" % p, "ldflags dev-so textrel") 34 d.setVar("INSANE_SKIP:%s" % p, "ldflags dev-so textrel")
35} 35}
36 36
37do_package_qa[prefuncs] += "__set_insane_skip" 37do_package_qa[prefuncs] += "__set_insane_skip"
38 38
39# FIXME: gst-fsl-plugin looks for the .so files so we need to deploy those 39# FIXME: gst-fsl-plugin looks for the .so files so we need to deploy those
40FILES_${PN} += "${libdir}/imx-mm/*/*${SOLIBS} ${libdir}/imx-mm/*/*${SOLIBSDEV}" 40FILES:${PN} += "${libdir}/imx-mm/*/*${SOLIBS} ${libdir}/imx-mm/*/*${SOLIBSDEV}"
41 41
42INHIBIT_SYSROOT_STRIP = "1" 42INHIBIT_SYSROOT_STRIP = "1"
43 43
diff --git a/recipes-multimedia/imx-sw-pdm/imx-sw-pdm_1.0.1.bb b/recipes-multimedia/imx-sw-pdm/imx-sw-pdm_1.0.1.bb
index b95727b8..7fc13c58 100644
--- a/recipes-multimedia/imx-sw-pdm/imx-sw-pdm_1.0.1.bb
+++ b/recipes-multimedia/imx-sw-pdm/imx-sw-pdm_1.0.1.bb
@@ -11,8 +11,8 @@ SRC_URI[sha256sum] = "68fca50d8f7526127ee5650e9002b3f9479b197f3085c68a97f7957f50
11 11
12inherit fsl-eula-unpack autotools pkgconfig 12inherit fsl-eula-unpack autotools pkgconfig
13 13
14INSANE_SKIP_${PN} = "already-stripped" 14INSANE_SKIP:${PN} = "already-stripped"
15 15
16FILES_${PN} += "${datadir}/imx-mm" 16FILES:${PN} += "${datadir}/imx-mm"
17 17
18COMPATIBLE_MACHINE = "(mx8)" 18COMPATIBLE_MACHINE = "(mx8)"
diff --git a/recipes-multimedia/imx-vpuwrap/imx-vpuwrap_4.5.7.bb b/recipes-multimedia/imx-vpuwrap/imx-vpuwrap_4.5.7.bb
index 2b028235..f77e33f7 100644
--- a/recipes-multimedia/imx-vpuwrap/imx-vpuwrap_4.5.7.bb
+++ b/recipes-multimedia/imx-vpuwrap/imx-vpuwrap_4.5.7.bb
@@ -8,7 +8,7 @@ SECTION = "multimedia"
8LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9" 8LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9"
9 9
10DEPENDS = "virtual/imxvpu" 10DEPENDS = "virtual/imxvpu"
11DEPENDS_append_mx8mp = " imx-vpu-hantro-vc" 11DEPENDS:append:mx8mp = " imx-vpu-hantro-vc"
12 12
13SRC_URI = "git://github.com/NXP/imx-vpuwrap.git;protocol=https;branch=${SRCBRANCH}" 13SRC_URI = "git://github.com/NXP/imx-vpuwrap.git;protocol=https;branch=${SRCBRANCH}"
14 14
@@ -19,7 +19,7 @@ S = "${WORKDIR}/git"
19 19
20inherit autotools pkgconfig 20inherit autotools pkgconfig
21 21
22do_install_append() { 22do_install:append() {
23 # FIXME: Drop examples for now 23 # FIXME: Drop examples for now
24 rm -r ${D}${datadir} 24 rm -r ${D}${datadir}
25} 25}
diff --git a/recipes-multimedia/libimxvpuapi/libimxvpuapi2_2.2.0.bb b/recipes-multimedia/libimxvpuapi/libimxvpuapi2_2.2.0.bb
index f66eff27..372d78dc 100644
--- a/recipes-multimedia/libimxvpuapi/libimxvpuapi2_2.2.0.bb
+++ b/recipes-multimedia/libimxvpuapi/libimxvpuapi2_2.2.0.bb
@@ -15,10 +15,10 @@ S = "${WORKDIR}/git"
15 15
16inherit waf pkgconfig use-imx-headers 16inherit waf pkgconfig use-imx-headers
17 17
18IMX_PLATFORM_mx6 = "imx6" 18IMX_PLATFORM:mx6 = "imx6"
19IMX_PLATFORM_mx8mq = "imx8m" 19IMX_PLATFORM:mx8mq = "imx8m"
20IMX_PLATFORM_mx8mm = "imx8mm" 20IMX_PLATFORM:mx8mm = "imx8mm"
21IMX_PLATFORM_mx8mp = "imx8mm" 21IMX_PLATFORM:mx8mp = "imx8mm"
22 22
23EXTRA_OECONF = "--imx-platform=${IMX_PLATFORM} --libdir=${libdir} --imx-headers=${STAGING_INCDIR_IMX} --sysroot-path=${RECIPE_SYSROOT}" 23EXTRA_OECONF = "--imx-platform=${IMX_PLATFORM} --libdir=${libdir} --imx-headers=${STAGING_INCDIR_IMX} --sysroot-path=${RECIPE_SYSROOT}"
24 24
diff --git a/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend b/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
index 78a17864..ae69be4c 100644
--- a/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
+++ b/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
@@ -1,21 +1,21 @@
1 1
2CACHED_CONFIGUREVARS_append_mx6 = " ax_cv_PTHREAD_PRIO_INHERIT=no" 2CACHED_CONFIGUREVARS:append:mx6 = " ax_cv_PTHREAD_PRIO_INHERIT=no"
3 3
4FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}/imx:" 4FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}/imx:"
5 5
6SRC_URI_append_mx6 = " file://daemon.conf file://default.pa" 6SRC_URI:append:mx6 = " file://daemon.conf file://default.pa"
7SRC_URI_append_mx7 = " file://daemon.conf file://default.pa \ 7SRC_URI:append:mx7 = " file://daemon.conf file://default.pa \
8 file://pulseaudio-remove-the-control-for-speaker-headphone-widge.patch \ 8 file://pulseaudio-remove-the-control-for-speaker-headphone-widge.patch \
9" 9"
10SRC_URI_append_mx8 = " file://daemon.conf file://default.pa" 10SRC_URI:append:mx8 = " file://daemon.conf file://default.pa"
11 11
12do_install_append() { 12do_install:append() {
13 if [ -e "${WORKDIR}/daemon.conf" ] && [ -e "${WORKDIR}/default.pa" ]; then 13 if [ -e "${WORKDIR}/daemon.conf" ] && [ -e "${WORKDIR}/default.pa" ]; then
14 install -m 0644 ${WORKDIR}/daemon.conf ${D}${sysconfdir}/pulse/daemon.conf 14 install -m 0644 ${WORKDIR}/daemon.conf ${D}${sysconfdir}/pulse/daemon.conf
15 install -m 0644 ${WORKDIR}/default.pa ${D}${sysconfdir}/pulse/default.pa 15 install -m 0644 ${WORKDIR}/default.pa ${D}${sysconfdir}/pulse/default.pa
16 fi 16 fi
17} 17}
18 18
19PACKAGE_ARCH_mx6 = "${MACHINE_SOCARCH}" 19PACKAGE_ARCH:mx6 = "${MACHINE_SOCARCH}"
20PACKAGE_ARCH_mx7 = "${MACHINE_SOCARCH}" 20PACKAGE_ARCH:mx7 = "${MACHINE_SOCARCH}"
21PACKAGE_ARCH_mx8 = "${MACHINE_SOCARCH}" 21PACKAGE_ARCH:mx8 = "${MACHINE_SOCARCH}"
diff --git a/recipes-multimedia/tinycompress/tinycompress/0001-tinycompress-Add-id3-decoding.patch b/recipes-multimedia/tinycompress/tinycompress/0001-tinycompress-Add-id3-decoding.patch
new file mode 100755
index 00000000..f578148a
--- /dev/null
+++ b/recipes-multimedia/tinycompress/tinycompress/0001-tinycompress-Add-id3-decoding.patch
@@ -0,0 +1,1001 @@
1From 16f6b7a5baec41f18fde75fd311fb988e3c31810 Mon Sep 17 00:00:00 2001
2From: Shengjiu Wang <shengjiu.wang@nxp.com>
3Date: Fri, 13 Jul 2018 18:13:24 +0800
4Subject: [PATCH] tinycompress: Add id3 decoding
5
6Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
7---
8 include/tinycompress/id3_tag_decode.h | 198 +++++++++++
9 src/utils/Makefile.am | 2 +-
10 src/utils/cplay.c | 88 +++++
11 src/utils/id3_tag_decode.c | 642 ++++++++++++++++++++++++++++++++++
12 4 files changed, 929 insertions(+), 1 deletion(-)
13 create mode 100644 include/tinycompress/id3_tag_decode.h
14 create mode 100644 src/utils/id3_tag_decode.c
15
16diff --git a/include/tinycompress/id3_tag_decode.h b/include/tinycompress/id3_tag_decode.h
17new file mode 100644
18index 0000000..1a911d7
19--- /dev/null
20+++ b/include/tinycompress/id3_tag_decode.h
21@@ -0,0 +1,198 @@
22+/*
23+ * Copyright (c) 2006-2017 Cadence Design Systems, Inc.
24+ * Copyright 2018 NXP
25+ *
26+ * Permission is hereby granted, free of charge, to any person obtaining
27+ * a copy of this software and associated documentation files (the
28+ * "Software"), to deal in the Software without restriction, including
29+ * without limitation the rights to use, copy, modify, merge, publish,
30+ * distribute, sublicense, and/or sell copies of the Software, and to
31+ * permit persons to whom the Software is furnished to do so, subject to
32+ * the following conditions:
33+ *
34+ * The above copyright notice and this permission notice shall be included
35+ * in all copies or substantial portions of the Software.
36+ *
37+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
39+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
40+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
41+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
42+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
43+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
44+ */
45+
46+/******************************************************************
47+ * file name : id3_tag_decode.h
48+ *
49+ * description : stores typedefs of structures specific to MP3 tag
50+ *
51+ * revision history:
52+ * 29 04 2004 DK creation
53+ *****************************************************************/
54+
55+#ifndef ID3_TAG_DECODE_H
56+#define ID3_TAG_DECODE_H
57+
58+typedef signed char WORD8;
59+typedef signed char * pWORD8;
60+typedef unsigned char UWORD8;
61+typedef unsigned char * pUWORD8;
62+
63+typedef signed short WORD16;
64+typedef signed short * pWORD16;
65+typedef unsigned short UWORD16;
66+typedef unsigned short * pUWORD16;
67+
68+typedef signed int WORD24;
69+typedef signed int * pWORD24;
70+typedef unsigned int UWORD24;
71+typedef unsigned int * pUWORD24;
72+
73+typedef signed int WORD32;
74+typedef signed int * pWORD32;
75+typedef unsigned int UWORD32;
76+typedef unsigned int * pUWORD32;
77+
78+typedef void VOID;
79+typedef void * pVOID;
80+
81+typedef signed int BOOL;
82+typedef unsigned int UBOOL;
83+typedef signed int FLAG;
84+typedef unsigned int UFLAG;
85+typedef signed int LOOPIDX;
86+typedef unsigned int ULOOPIDX;
87+typedef signed int WORD;
88+typedef unsigned int UWORD;
89+
90+#define MAX_TAG_FRAME_SIZE 100
91+
92+#define ID3V1 (0x544147) /* 0x544147 is TAG in WORD8 */
93+
94+#define ID3V2 (0x494433) /* 0x494433 is ID3 in WORD8 */
95+
96+/*
97+ * structure corresponding to ID3 tag v1 header.
98+ * this structure has all the field corresponding to ID3 tag v1 header.
99+ */
100+
101+typedef struct {
102+ WORD32 tag; // 3 bytes
103+
104+ WORD16 version; // 2 bytes
105+
106+ WORD8 flag; //1 byte
107+
108+ WORD32 size; //4 bytes
109+
110+} id3_v2_header_struct;
111+
112+/* structure which will store the frame data and
113+ * also put a limit max data to be stored
114+ */
115+typedef struct {
116+ WORD8 frame_data[MAX_TAG_FRAME_SIZE];
117+
118+ WORD32 max_size; //4 bytes
119+
120+ WORD16 tag_present;
121+
122+ WORD16 exceeds_buffer_size;
123+
124+} id3_v2_frame_struct;
125+
126+/*
127+ * structure corresponding to ID3 tag v2.
128+ * this structure has some of the field corresponding to ID3 tag v2.
129+ * if user wants to read some more tag information from
130+ * the MP3 file, he can add that field in this structure and pass address
131+ * of that element to get_inf function in id3_tag_decode.c under the
132+ * corresponding field frame header. few fields which are needed are already
133+ * populated by reading from the TAG header.
134+ */
135+typedef struct {
136+ id3_v2_frame_struct album_movie_show_title;
137+
138+ id3_v2_frame_struct composer_name;
139+
140+ id3_v2_frame_struct content_type;
141+
142+ id3_v2_frame_struct encoded_by;
143+
144+ id3_v2_frame_struct lyricist_text_writer;
145+
146+ id3_v2_frame_struct content_group_description;
147+
148+ id3_v2_frame_struct title_songname_content_description;
149+
150+ id3_v2_frame_struct medxa_type;
151+
152+ id3_v2_frame_struct original_album_movie_show_title;
153+
154+ id3_v2_frame_struct original_filename;
155+
156+ id3_v2_frame_struct original_lyricist_text_writer;
157+
158+ id3_v2_frame_struct original_artist_performer;
159+
160+ id3_v2_frame_struct file_owner_licensee;
161+
162+ id3_v2_frame_struct lead_performer_soloist;
163+
164+ id3_v2_frame_struct publisher;
165+
166+ id3_v2_frame_struct private_frame;
167+
168+ id3_v2_frame_struct other_info;
169+
170+ id3_v2_header_struct id3_v2_header;
171+
172+ WORD32 header_end;
173+
174+ WORD32 bytes_consumed;
175+
176+} id3v2_struct;
177+
178+/*
179+ * structure corresponding to ID3 tag v1.
180+ * this structure has all the field corresponding to ID3 tag v1.
181+ */
182+typedef struct {
183+ WORD8 song_title[30]; //30 word8acters
184+
185+ WORD8 artist[30]; //30 word8acters
186+
187+ WORD8 album[30]; //30 word8acters
188+
189+ WORD8 year[4]; //4 word8acters
190+
191+ WORD8 comment[30]; //30 word8acters
192+
193+ WORD8 genre[1]; //1 byte
194+
195+} id3v1_struct;
196+
197+WORD32 get_info(const char *inp_buffer,
198+ unsigned int avail_inp,
199+ WORD32 tag_size,
200+ id3_v2_frame_struct *dest);
201+
202+WORD32 search_id3_v2(UWORD8 *buffer);
203+
204+WORD32 decode_id3_v2(const char *const buffer,
205+ id3v2_struct *id3v2,
206+ WORD32 continue_flag,
207+ WORD32 insize);
208+
209+WORD32 get_id3_v2_bytes(UWORD8 *buffer);
210+
211+WORD32 get_v1_info(UWORD8 *buffer, id3v1_struct *id3v1);
212+
213+WORD32 search_id3_v1(UWORD8 *buffer);
214+
215+WORD32 decode_id3_v1(UWORD8 *buffer, id3v1_struct *id3v1);
216+
217+void init_id3v2_field(id3v2_struct *id3v2);
218+
219+#endif
220diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am
221index 1b996d4..e813689 100644
222--- a/src/utils/Makefile.am
223+++ b/src/utils/Makefile.am
224@@ -1,6 +1,6 @@
225 bin_PROGRAMS = cplay crecord
226
227-cplay_SOURCES = cplay.c
228+cplay_SOURCES = cplay.c id3_tag_decode.c
229 crecord_SOURCES = crecord.c
230
231 cplay_CFLAGS = -I$(top_srcdir)/include
232diff --git a/src/utils/cplay.c b/src/utils/cplay.c
233index 87863a3..2a52b52 100644
234--- a/src/utils/cplay.c
235+++ b/src/utils/cplay.c
236@@ -72,6 +72,7 @@
237 #include "sound/compress_params.h"
238 #include "tinycompress/tinycompress.h"
239 #include "tinycompress/tinymp3.h"
240+#include "tinycompress/id3_tag_decode.h"
241
242 static int verbose;
243 static const unsigned int DEFAULT_CODEC_ID = SND_AUDIOCODEC_PCM;
244@@ -245,12 +246,97 @@ int main(int argc, char **argv)
245 exit(EXIT_SUCCESS);
246 }
247
248+void shift_buffer(char *buf, int buf_size, int bytes_consumed)
249+{
250+ int i;
251+
252+ if (bytes_consumed <= 0)
253+ return;
254+
255+ for (i = 0; i < buf_size - bytes_consumed; i++)
256+ buf[i] = buf[i + bytes_consumed];
257+}
258+
259+void parse_id3(FILE *file, int *offset) {
260+ /* ID3 tag specific declarations */
261+ unsigned char id3_buf[128];
262+ unsigned char id3v2_buf[4096];
263+ signed int id3_v1_found = 0, id3_v1_decoded = 0;
264+ signed int id3_v2_found = 0, id3_v2_complete = 0;
265+ signed int i_bytes_consumed = 0;
266+ signed int i_fread_bytes;
267+ id3v1_struct id3v1;
268+ id3v2_struct id3v2;
269+
270+ {
271+ fseek(file, -128, SEEK_END);
272+ fread(id3_buf, 1, 128, file);
273+
274+ /* search for ID3V1 */
275+ id3_v1_found = search_id3_v1(id3_buf + 0);
276+ if (id3_v1_found) {
277+ /* if ID3V1 is found, decode ID3V1 */
278+ decode_id3_v1(id3_buf + 3, &id3v1);
279+ id3_v1_decoded = 1;
280+ }
281+ fseek(file, 0, SEEK_SET);
282+ }
283+
284+ {
285+ signed int flag = 0;
286+ signed int continue_flag = 0;
287+
288+ i_fread_bytes = fread(id3v2_buf,
289+ sizeof(char), 0x1000, file);
290+
291+ /* search for ID3V2 */
292+ id3_v2_found =
293+ search_id3_v2(id3v2_buf);
294+
295+ if (id3_v2_found) {
296+ /* initialise the max fields */
297+ init_id3v2_field(&id3v2);
298+
299+ while (!id3_v2_complete && id3_v2_found) {
300+ /* if ID3V2 is found, decode ID3V2 */
301+ id3_v2_complete = decode_id3_v2((const char *const)id3v2_buf,
302+ &id3v2, continue_flag, i_fread_bytes);
303+
304+ if (!id3_v2_complete) {
305+ continue_flag = 1;
306+ i_bytes_consumed = id3v2.bytes_consumed;
307+
308+ fseek(file, i_bytes_consumed, SEEK_SET);
309+
310+ i_fread_bytes = fread(id3v2_buf,
311+ sizeof(unsigned char), 0x1000, file);
312+ if (i_fread_bytes <= 0) {
313+ return;
314+ }
315+ }
316+ }
317+
318+ if (id3_v2_complete) {
319+ i_bytes_consumed = id3v2.bytes_consumed;
320+ fseek(file, i_bytes_consumed, SEEK_SET);
321+ }
322+ }
323+ }
324+
325+ *offset = i_bytes_consumed;
326+}
327+
328 void get_codec_mp3(FILE *file, struct compr_config *config,
329 struct snd_codec *codec)
330 {
331 size_t read;
332 struct mp3_header header;
333 unsigned int channels, rate, bits;
334+ int offset = 0;
335+
336+ parse_id3(file, &offset);
337+
338+ fseek(file, offset, SEEK_SET);
339
340 read = fread(&header, 1, sizeof(header), file);
341 if (read != sizeof(header)) {
342@@ -279,6 +365,8 @@ void get_codec_mp3(FILE *file, struct compr_config *config,
343 codec->level = 0;
344 codec->ch_mode = 0;
345 codec->format = 0;
346+
347+ fseek(file, offset, SEEK_SET);
348 }
349
350 void get_codec_iec(FILE *file, struct compr_config *config,
351diff --git a/src/utils/id3_tag_decode.c b/src/utils/id3_tag_decode.c
352new file mode 100644
353index 0000000..393967a
354--- /dev/null
355+++ b/src/utils/id3_tag_decode.c
356@@ -0,0 +1,642 @@
357+/*
358+ * Copyright (c) 2006-2017 Cadence Design Systems, Inc.
359+ * Copyright 2018 NXP
360+ *
361+ * Permission is hereby granted, free of charge, to any person obtaining
362+ * a copy of this software and associated documentation files (the
363+ * "Software"), to deal in the Software without restriction, including
364+ * without limitation the rights to use, copy, modify, merge, publish,
365+ * distribute, sublicense, and/or sell copies of the Software, and to
366+ * permit persons to whom the Software is furnished to do so, subject to
367+ * the following conditions:
368+ *
369+ * The above copyright notice and this permission notice shall be included
370+ * in all copies or substantial portions of the Software.
371+ *
372+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
373+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
374+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
375+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
376+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
377+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
378+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
379+ */
380+#include <ctype.h>
381+#include "tinycompress/id3_tag_decode.h"
382+
383+#define CHAR4(c1, c2, c3, c4) \
384+ (int)(((unsigned char)(c1) << 24) | \
385+ ((unsigned char)(c2) << 16) | \
386+ ((unsigned char)(c3) << 8) | \
387+ ((unsigned char)c4))
388+
389+#ifndef MSVC_BUILD
390+unsigned int umin(unsigned int a, unsigned int b)
391+{
392+ return (a < b ? a : b);
393+}
394+
395+#else
396+unsigned int umin(unsigned int a, unsigned int b)
397+{
398+ return (a < b ? a : b);
399+}
400+#endif
401+
402+/***********************************************************
403+ * function name : display
404+ *
405+ * description : display ID3 tag contents.
406+ *
407+ * arguments : input parameters
408+ *
409+ * values returned : 0
410+ ***********************************************************/
411+
412+static void display2(const id3_v2_frame_struct * const src,
413+ int size,
414+ const char * const disp)
415+{
416+ int j;
417+
418+
419+ for (j = 0; j < size; j++) {
420+ int c = src->frame_data[j];
421+
422+ if (c) {
423+ if (!isprint(c))
424+ break;
425+ }
426+ }
427+}
428+
429+static VOID display1(WORD8 src[], WORD32 size, WORD8 disp[])
430+{
431+ WORD32 j;
432+
433+ for (j = 0; j < size ; j++) {
434+ int c = src[j];
435+
436+ if (c) {
437+ if (!isprint(c))
438+ break;
439+ }
440+ }
441+}
442+
443+/*****************************************************************
444+ * function name : init_id3_header
445+ *
446+ * description : initialise the max filed size of teh farem.
447+ *
448+ * arguments : input parameters
449+ *
450+ * values returned : 0
451+ ****************************************************************/
452+
453+VOID init_id3v2_field(id3v2_struct *id3v2)
454+{
455+ id3v2->album_movie_show_title.max_size = MAX_TAG_FRAME_SIZE;
456+ id3v2->composer_name.max_size = MAX_TAG_FRAME_SIZE;
457+ id3v2->content_type.max_size = MAX_TAG_FRAME_SIZE;
458+ id3v2->encoded_by.max_size = MAX_TAG_FRAME_SIZE;
459+ id3v2->lyricist_text_writer.max_size = MAX_TAG_FRAME_SIZE;
460+ id3v2->content_group_description.max_size = MAX_TAG_FRAME_SIZE;
461+ id3v2->title_songname_content_description.max_size = MAX_TAG_FRAME_SIZE;
462+ id3v2->medxa_type.max_size = MAX_TAG_FRAME_SIZE;
463+ id3v2->original_album_movie_show_title.max_size = MAX_TAG_FRAME_SIZE;
464+ id3v2->original_filename.max_size = MAX_TAG_FRAME_SIZE;
465+ id3v2->original_lyricist_text_writer.max_size = MAX_TAG_FRAME_SIZE;
466+ id3v2->original_artist_performer.max_size = MAX_TAG_FRAME_SIZE;
467+ id3v2->file_owner_licensee.max_size = MAX_TAG_FRAME_SIZE;
468+ id3v2->lead_performer_soloist.max_size = MAX_TAG_FRAME_SIZE;
469+ id3v2->publisher.max_size = MAX_TAG_FRAME_SIZE;
470+ id3v2->private_frame.max_size = MAX_TAG_FRAME_SIZE;
471+ id3v2->other_info.max_size = MAX_TAG_FRAME_SIZE;
472+
473+ /* resetting the flag to indicate presese of frame */
474+ id3v2->album_movie_show_title.tag_present = 0;
475+ id3v2->composer_name.tag_present = 0;
476+ id3v2->content_type.tag_present = 0;
477+ id3v2->encoded_by.tag_present = 0;
478+ id3v2->lyricist_text_writer.tag_present = 0;
479+ id3v2->content_group_description.tag_present = 0;
480+ id3v2->title_songname_content_description.tag_present = 0;
481+ id3v2->medxa_type.tag_present = 0;
482+ id3v2->original_album_movie_show_title.tag_present = 0;
483+ id3v2->original_filename.tag_present = 0;
484+ id3v2->original_lyricist_text_writer.tag_present = 0;
485+ id3v2->original_artist_performer.tag_present = 0;
486+ id3v2->file_owner_licensee.tag_present = 0;
487+ id3v2->lead_performer_soloist.tag_present = 0;
488+ id3v2->publisher.tag_present = 0;
489+ id3v2->private_frame.tag_present = 0;
490+ id3v2->other_info.tag_present = 0;
491+
492+ /* resetting the flag which indicates that size of the frame has
493+ * exceeded the max buffer size
494+ */
495+ id3v2->album_movie_show_title.exceeds_buffer_size = 0;
496+ id3v2->composer_name.exceeds_buffer_size = 0;
497+ id3v2->content_type.exceeds_buffer_size = 0;
498+ id3v2->encoded_by.exceeds_buffer_size = 0;
499+ id3v2->lyricist_text_writer.exceeds_buffer_size = 0;
500+ id3v2->content_group_description.exceeds_buffer_size = 0;
501+ id3v2->title_songname_content_description.exceeds_buffer_size = 0;
502+ id3v2->medxa_type.exceeds_buffer_size = 0;
503+ id3v2->original_album_movie_show_title.exceeds_buffer_size = 0;
504+ id3v2->original_filename.exceeds_buffer_size = 0;
505+ id3v2->original_lyricist_text_writer.exceeds_buffer_size = 0;
506+ id3v2->original_artist_performer.exceeds_buffer_size = 0;
507+ id3v2->file_owner_licensee.exceeds_buffer_size = 0;
508+ id3v2->lead_performer_soloist.exceeds_buffer_size = 0;
509+ id3v2->publisher.exceeds_buffer_size = 0;
510+ id3v2->private_frame.exceeds_buffer_size = 0;
511+ id3v2->other_info.exceeds_buffer_size = 0;
512+
513+ id3v2->bytes_consumed = 0;
514+ id3v2->header_end = 0;
515+}
516+
517+/***************************************************************
518+ * function name : search_id3_v2
519+ *
520+ * description : finds if ID3V2 starts at the start of given buffer.
521+ *
522+ * arguments : input parameters
523+ * buffer input buffer
524+ *
525+ * values returned : FLAG 1: ID3 found 0: ID3 not found
526+ ***************************************************************/
527+WORD32 search_id3_v2(UWORD8 *buffer)
528+{
529+ UWORD32 temp;
530+
531+ temp = buffer[0] << 16;
532+ temp |= buffer[1] << 8;
533+ temp |= buffer[2];
534+
535+ if (temp == ID3V2)
536+ return 1; /* ID3 found */
537+
538+ return 0; /* ID3 not found */
539+}
540+
541+/**************************************************************
542+ * function name : search_id3_v1
543+ *
544+ * description : finds if ID3V1 starts at the start of given buffer.
545+ *
546+ * arguments : input parameters
547+ * buffer input buffer
548+ *
549+ * values returned : FLAG 1: ID3 found 0: ID3 not found
550+ **************************************************************/
551+WORD32 search_id3_v1(UWORD8 *buffer)
552+{
553+ UWORD32 temp;
554+
555+ temp = buffer[0] << 16;
556+ temp |= buffer[1] << 8;
557+ temp |= buffer[2];
558+
559+ if (temp == ID3V1)
560+ return 1; /* ID3 found */
561+
562+ return 0; /* ID3 not found */
563+}
564+
565+/***************************************************************
566+ * function name : decode_id3_v1
567+ *
568+ * description : decodes ID3V1 tag.
569+ *
570+ * arguments : input parameters
571+ * buffer input buffer
572+ * id3v1 structure
573+ *
574+ * values returned : bytes consumed
575+ **************************************************************/
576+WORD32 decode_id3_v1(UWORD8 *buffer, id3v1_struct *id3v1)
577+{
578+ WORD32 bytes_consumed = 0;
579+ short tag_type;
580+
581+ /* setting the tag type */
582+ tag_type = 1;
583+
584+ bytes_consumed = get_v1_info(buffer, id3v1);
585+
586+ return bytes_consumed;
587+}
588+
589+/***********************************************************
590+ * function name : get_v1_info
591+ *
592+ * description : gets ID3V1 information fields.
593+ *
594+ * arguments : input parameters
595+ * buffer input buffer
596+ * id3v1 structure
597+ *
598+ * values returned : bytes consumed
599+ ***********************************************************/
600+WORD32 get_v1_info(UWORD8 *buffer, id3v1_struct *id3v1)
601+{
602+ WORD32 i;
603+ WORD32 bytes_consumed = 0;
604+
605+ /* get song_title */
606+ for (i = 0; i < 30; i++)
607+ id3v1->song_title[i] = buffer[i];
608+
609+ buffer += 30;
610+ bytes_consumed += 30;
611+ display1(id3v1->song_title, 30, (WORD8 *)"song_title : ");
612+
613+ /* get artist */
614+ for (i = 0; i < 30; i++)
615+ id3v1->artist[i] = buffer[i];
616+
617+ buffer += 30;
618+ bytes_consumed += 30;
619+ display1(id3v1->artist, 30, (WORD8 *)"artist : ");
620+
621+ /* get album */
622+ for (i = 0; i < 30; i++)
623+ id3v1->album[i] = buffer[i];
624+
625+ buffer += 30;
626+ bytes_consumed += 30;
627+ display1(id3v1->album, 30, (WORD8 *)"album : ");
628+
629+ /* get year */
630+ for (i = 0; i < 4; i++)
631+ id3v1->year[i] = buffer[i];
632+
633+ buffer += 4;
634+ bytes_consumed += 4;
635+ display1(id3v1->year, 4, (WORD8 *)"year : ");
636+
637+ /* get comment */
638+ for (i = 0; i < 30; i++)
639+ id3v1->comment[i] = buffer[i];
640+
641+ buffer += 30;
642+ bytes_consumed += 30;
643+ display1(id3v1->comment, 30, (WORD8 *)"comment : ");
644+
645+ /* get genre */
646+ for (i = 0; i < 1; i++)
647+ id3v1->genre[i] = buffer[i];
648+
649+ buffer += 1;
650+ bytes_consumed += 1;
651+
652+ return bytes_consumed;
653+}
654+
655+/*****************************************************
656+ * function name : decode_id3_v2
657+ *
658+ * description : decodes ID3V2 tag.
659+ *
660+ * arguments : input parameters
661+ * buffer input buffer
662+ * id3v2 structure
663+ * continue_flag FLAG to indicate whether
664+ * it is first call or not
665+ * insize input buffer size
666+ *
667+ * values returned : bytes consumed
668+ ******************************************************/
669+WORD32 decode_id3_v2(const char *const buffer,
670+ id3v2_struct *const id3v2,
671+ WORD32 continue_flag,
672+ WORD32 insize)
673+{
674+ UWORD32 size = 0, flag;
675+ WORD32 i, buf_update_val;
676+ UWORD8 buf[4], frame_header[10], id3_buffer[10];
677+ WORD8 *bitstream_ptr;
678+ short tag_type;
679+
680+ WORD32 bytes_consumed = 0;
681+
682+ if (id3v2->header_end == 1) {
683+ id3v2->bytes_consumed += insize;
684+ if (id3v2->bytes_consumed < id3v2->id3_v2_header.size)
685+ return 0;
686+
687+ id3v2->bytes_consumed = (id3v2->id3_v2_header.size + 10);
688+ return 1;
689+ }
690+
691+ bitstream_ptr = (WORD8 *)id3_buffer;
692+
693+ if (!continue_flag) {
694+ bytes_consumed += 3;
695+ /* setting the tag type */
696+ tag_type = 2;
697+ id3v2->id3_v2_header.version = buffer[bytes_consumed + 0] << 8;
698+ id3v2->id3_v2_header.version |= buffer[bytes_consumed + 1];
699+ id3v2->id3_v2_header.flag = buffer[bytes_consumed + 2];
700+
701+ /* making the msb of each byte zero */
702+ buf[0] = buffer[bytes_consumed + 6] & 0x7f;
703+ buf[1] = buffer[bytes_consumed + 5] & 0x7f;
704+ buf[2] = buffer[bytes_consumed + 4] & 0x7f;
705+ buf[3] = buffer[bytes_consumed + 3] & 0x7f;
706+
707+ bytes_consumed += 7;
708+
709+ /* concatenation the bytes after making
710+ * 7th bit zero to get 28 bits size
711+ */
712+ size = buf[0];
713+ size |= (buf[1] << 7);
714+ size |= (buf[2] << 14);
715+ size |= (buf[3] << 21);
716+ /* storing the size */
717+ id3v2->id3_v2_header.size = size;
718+
719+ /* check for extended header */
720+ if (id3v2->id3_v2_header.flag & 0x20) {
721+ for (i = 0; i < 10; i++)
722+ bitstream_ptr[i] = buffer[bytes_consumed + i];
723+
724+ i = 0;
725+ bytes_consumed += 10;
726+
727+ size = bitstream_ptr[i++] << 24;
728+ size |= bitstream_ptr[i++] << 16;
729+ size |= bitstream_ptr[i++] << 8;
730+ size |= bitstream_ptr[i++];
731+
732+ /* two bytes for flag */
733+ i += 2;
734+ {
735+ UWORD32 padding_size;
736+
737+ padding_size = bitstream_ptr[i++] << 24;
738+ padding_size |= bitstream_ptr[i++] << 16;
739+ padding_size |= bitstream_ptr[i++] << 8;
740+ padding_size |= bitstream_ptr[i++];
741+
742+ /* skipping the padding and frame size
743+ * number of bytes
744+ */
745+ bytes_consumed += (padding_size + size);
746+ }
747+ }
748+ }
749+
750+ while (id3v2->header_end != 1) {
751+ char *key;
752+ id3_v2_frame_struct *value;
753+ unsigned int avail_inp;
754+
755+ /* reading the 10 bytes to get the frame header */
756+
757+ for (i = 0; i < 10; i++)
758+ frame_header[i] = buffer[bytes_consumed + i];
759+ bytes_consumed += 10;
760+
761+ /* getting the size from the header */
762+ size = frame_header[4] << 24;
763+ size |= frame_header[5] << 16;
764+ size |= frame_header[6] << 8;
765+ size |= frame_header[7];
766+
767+ /* decoding the flag, currently not used */
768+ flag = frame_header[8] << 8;
769+ flag |= frame_header[9];
770+
771+ avail_inp = insize - bytes_consumed;
772+
773+ /* switching to the frame type */
774+ switch (CHAR4(frame_header[0],
775+ frame_header[1],
776+ frame_header[2],
777+ frame_header[3])) {
778+ case CHAR4('A', 'E', 'N', 'C'):
779+ case CHAR4('A', 'P', 'I', 'C'):
780+ case CHAR4('C', 'O', 'M', 'M'):
781+ case CHAR4('C', 'O', 'M', 'R'):
782+ case CHAR4('E', 'N', 'C', 'R'):
783+ case CHAR4('E', 'Q', 'U', 'A'):
784+ case CHAR4('E', 'T', 'C', 'O'):
785+ case CHAR4('G', 'E', 'O', 'B'):
786+ case CHAR4('G', 'R', 'I', 'D'):
787+ case CHAR4('I', 'P', 'L', 'S'):
788+ case CHAR4('L', 'I', 'N', 'K'):
789+ case CHAR4('M', 'C', 'D', 'I'):
790+ case CHAR4('M', 'L', 'L', 'T'):
791+ case CHAR4('O', 'W', 'N', 'E'):
792+ case CHAR4('P', 'C', 'N', 'T'):
793+ case CHAR4('P', 'O', 'P', 'M'):
794+ case CHAR4('P', 'O', 'S', 'S'):
795+ case CHAR4('R', 'B', 'U', 'F'):
796+ case CHAR4('R', 'V', 'A', 'D'):
797+ case CHAR4('R', 'V', 'R', 'B'):
798+ case CHAR4('S', 'Y', 'L', 'T'):
799+ case CHAR4('S', 'Y', 'T', 'C'):
800+ case CHAR4('T', 'B', 'P', 'M'):
801+ case CHAR4('T', 'C', 'O', 'P'):
802+ case CHAR4('T', 'D', 'A', 'T'):
803+ case CHAR4('T', 'D', 'L', 'Y'):
804+ case CHAR4('T', 'F', 'L', 'T'):
805+ case CHAR4('T', 'I', 'M', 'E'):
806+ case CHAR4('T', 'K', 'E', 'Y'):
807+ case CHAR4('T', 'L', 'A', 'N'):
808+ case CHAR4('T', 'L', 'E', 'N'):
809+ case CHAR4('T', 'M', 'E', 'D'):
810+ case CHAR4('T', 'O', 'F', 'N'):
811+ case CHAR4('T', 'O', 'L', 'Y'):
812+ case CHAR4('T', 'O', 'R', 'Y'):
813+ case CHAR4('T', 'P', 'E', '2'):
814+ case CHAR4('T', 'P', 'E', '3'):
815+ case CHAR4('T', 'P', 'E', '4'):
816+ case CHAR4('T', 'P', 'O', 'S'):
817+ case CHAR4('T', 'R', 'C', 'K'):
818+ case CHAR4('T', 'R', 'D', 'A'):
819+ case CHAR4('T', 'R', 'S', 'N'):
820+ case CHAR4('T', 'R', 'S', 'O'):
821+ case CHAR4('T', 'S', 'I', 'Z'):
822+ case CHAR4('T', 'S', 'R', 'C'):
823+ case CHAR4('T', 'S', 'S', 'E'):
824+ case CHAR4('T', 'Y', 'E', 'R'):
825+ case CHAR4('T', 'X', 'X', 'X'):
826+ case CHAR4('U', 'F', 'I', 'D'):
827+ case CHAR4('U', 'S', 'E', 'R'):
828+ case CHAR4('U', 'S', 'L', 'T'):
829+ case CHAR4('W', 'C', 'O', 'M'):
830+ case CHAR4('W', 'C', 'O', 'P'):
831+ case CHAR4('W', 'O', 'A', 'F'):
832+ case CHAR4('W', 'O', 'A', 'R'):
833+ case CHAR4('W', 'O', 'A', 'S'):
834+ case CHAR4('W', 'O', 'R', 'S'):
835+ case CHAR4('W', 'P', 'A', 'Y'):
836+ case CHAR4('W', 'P', 'U', 'B'):
837+ case CHAR4('W', 'X', 'X', 'X'):
838+ case CHAR4('T', 'I', 'T', '3'):
839+ key = "other_info : ";
840+ value = &id3v2->other_info;
841+ break;
842+ case CHAR4('P', 'R', 'I', 'V'):
843+ key = "private_frame : ";
844+ value = &id3v2->private_frame;
845+ break;
846+ case CHAR4('T', 'A', 'L', 'B'):
847+ key = "album_movie_show_title : ";
848+ value = &id3v2->album_movie_show_title;
849+ break;
850+ case CHAR4('T', 'C', 'O', 'M'):
851+ key = "composer_name : ";
852+ value = &id3v2->composer_name;
853+ break;
854+ case CHAR4('T', 'C', 'O', 'N'):
855+ key = "content_type : ";
856+ value = &id3v2->content_type;
857+ break;
858+ case CHAR4('T', 'E', 'N', 'C'):
859+ key = "encoded_by : ";
860+ value = &id3v2->encoded_by;
861+ break;
862+ case CHAR4('T', 'E', 'X', 'T'):
863+ key = "lyricist_text_writer : ";
864+ value = &id3v2->lyricist_text_writer;
865+ break;
866+ case CHAR4('T', 'I', 'T', '1'):
867+ key = "content_group_description : ";
868+ value = &id3v2->content_group_description;
869+ break;
870+ case CHAR4('T', 'I', 'T', '2'):
871+ key = "title_songname_content_description : ";
872+ value = &id3v2->title_songname_content_description;
873+ break;
874+ case CHAR4('T', 'O', 'A', 'L'):
875+ key = "original_album_movie_show_title : ";
876+ value = &id3v2->original_album_movie_show_title;
877+ break;
878+ case CHAR4('T', 'O', 'P', 'E'):
879+ key = "original_artist_performer : ";
880+ value = &id3v2->original_artist_performer;
881+ break;
882+ case CHAR4('T', 'O', 'W', 'N'):
883+ key = "file_owner_licensee : ";
884+ value = &id3v2->file_owner_licensee;
885+ break;
886+ case CHAR4('T', 'P', 'E', '1'):
887+ key = "lead_performer_soloist : ";
888+ value = &id3v2->lead_performer_soloist;
889+ break;
890+ case CHAR4('T', 'P', 'U', 'B'):
891+ key = "publisher : ";
892+ value = &id3v2->publisher;
893+ break;
894+ default:
895+ /* skipping the read 10 bytes */
896+ buf_update_val = -10;
897+ id3v2->header_end = 1;
898+ value = 0;
899+ key = 0;
900+ break;
901+ }
902+
903+ if (value != 0)
904+ buf_update_val = get_info(&buffer[bytes_consumed],
905+ avail_inp, size, value);
906+
907+ /* Negative value for buf_update_val means one of two things:
908+ * 1. The default case happened and we're done with ID3V2 tag
909+ * frames, or
910+ * 2. get_info() returned -1 to indicate that more input is
911+ * required to decode this frame of the tag.
912+ */
913+ if (buf_update_val >= 0)
914+ display2(value,
915+ umin(value->max_size, buf_update_val), key);
916+
917+ if (buf_update_val == -1) {
918+ id3v2->bytes_consumed += bytes_consumed;
919+ return 1;
920+ }
921+
922+ bytes_consumed += buf_update_val;
923+
924+ /* Is there enough input left (10 bytes) to begin
925+ * decoding another frame? If not, bag out temporarily
926+ * now. The caller will refill our input buffer and
927+ * call us again with continue_flag == 1.
928+ */
929+ if (insize - bytes_consumed < 10) {
930+ id3v2->bytes_consumed += bytes_consumed;
931+ return 0; /* not completely decoded */
932+ }
933+ }
934+
935+ id3v2->bytes_consumed += bytes_consumed;
936+ if ((id3v2->bytes_consumed + 10) < id3v2->id3_v2_header.size)
937+ return 0; /* not completely decoded */
938+
939+ return 1; /* completely decoded */
940+}
941+
942+/*******************************************************
943+ * function name : get_id3_v2_bytes
944+ *
945+ * description : tells the size of ID3V2 tag.
946+ *
947+ * arguments : input parameters
948+ * buffer input buffer
949+ *
950+ * values returned : bytes consumed
951+ ********************************************************/
952+WORD32 get_id3_v2_bytes(UWORD8 *buffer)
953+{
954+ WORD32 size;
955+
956+ /* making the msb of each byte zero */
957+ size = (buffer[9] & 0x7f);
958+ size |= ((buffer[8] & 0x7f) << 7);
959+ size |= ((buffer[7] & 0x7f) << 14);
960+ size |= ((buffer[6] & 0x7f) << 21);
961+
962+ return (size + 10);
963+}
964+
965+/****************************************************
966+ * function name : get_info
967+ *
968+ * description : read the frame information from the input buffer.
969+ *
970+ * arguments : input parameters
971+ *
972+ * values returned : update value for buffer
973+ ****************************************************/
974+WORD32 get_info(const char *inp_buffer,
975+ unsigned int avail_inp,
976+ WORD32 tag_size,
977+ id3_v2_frame_struct *dest)
978+{
979+ WORD32 j;
980+
981+ /* setting the tag to indicate the presence of frame */
982+ dest->tag_present = 1;
983+ /* If there isn't enough input available, we punt back to the top
984+ * level and ask for more.
985+ */
986+ if (avail_inp < umin(tag_size, dest->max_size))
987+ return -1;
988+
989+ if (dest->max_size >= tag_size) {
990+ for (j = 0; j < tag_size ; j++)
991+ dest->frame_data[j] = inp_buffer[j];
992+ } else {
993+ dest->exceeds_buffer_size = 1;
994+ for (j = 0; j < dest->max_size ; j++)
995+ dest->frame_data[j] = inp_buffer[j];
996+ }
997+ return tag_size;
998+}
999--
10002.7.4
1001
diff --git a/recipes-multimedia/tinycompress/tinycompress/0002-cplay-Support-wave-file.patch b/recipes-multimedia/tinycompress/tinycompress/0002-cplay-Support-wave-file.patch
new file mode 100755
index 00000000..79544711
--- /dev/null
+++ b/recipes-multimedia/tinycompress/tinycompress/0002-cplay-Support-wave-file.patch
@@ -0,0 +1,215 @@
1From 4d4bc0a958fe254531920095fbabc241aad88113 Mon Sep 17 00:00:00 2001
2From: Shengjiu Wang <shengjiu.wang@nxp.com>
3Date: Tue, 28 Jul 2020 13:00:36 +0800
4Subject: [PATCH] cplay: Support wave file
5
6The supported format is mono/stereo, S16_LE/S32_LE, 8kHz-192kHz.
7Command is:
8cplay -c x -I PCM test.wav
9
10Upstream-Status: Inappropriate [i.MX specific]
11Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
12---
13 include/tinycompress/wave_formats.h | 51 +++++++++++++
14 src/utils/cplay.c | 107 ++++++++++++++++++++++++++++
15 2 files changed, 158 insertions(+)
16 create mode 100644 include/tinycompress/wave_formats.h
17
18--- /dev/null
19+++ b/include/tinycompress/wave_formats.h
20@@ -0,0 +1,53 @@
21+#ifndef WAVE_FORMATS_H
22+#define WAVE_FORMATS_H 1
23+
24+#include <sys/types.h>
25+
26+#define COMPOSE_ID(a,b,c,d) ((a) | ((b)<<8) | ((c)<<16) | ((d)<<24))
27+
28+#define WAV_RIFF COMPOSE_ID('R','I','F','F')
29+#define WAV_RIFX COMPOSE_ID('R','I','F','X')
30+#define WAV_WAVE COMPOSE_ID('W','A','V','E')
31+#define WAV_FMT COMPOSE_ID('f','m','t',' ')
32+#define WAV_DATA COMPOSE_ID('d','a','t','a')
33+
34+/* WAVE fmt block constants from Microsoft mmreg.h header */
35+#define WAV_FMT_PCM 0x0001
36+#define WAV_FMT_IEEE_FLOAT 0x0003
37+#define WAV_FMT_DOLBY_AC3_SPDIF 0x0092
38+#define WAV_FMT_EXTENSIBLE 0xfffe
39+
40+/* Used with WAV_FMT_EXTENSIBLE format */
41+#define WAV_GUID_TAG "\x00\x00\x00\x00\x10\x00\x80\x00\x00\xAA\x00\x38\x9B\x71"
42+
43+typedef struct {
44+ u_int magic; /* 'RIFF' */
45+ u_int length; /* filelen */
46+ u_int type; /* 'WAVE' */
47+} WaveHeader;
48+
49+typedef struct {
50+ u_short format; /* see WAV_FMT_* */
51+ u_short channels;
52+ u_int sample_fq; /* frequence of sample */
53+ u_int byte_p_sec;
54+ u_short byte_p_spl; /* samplesize; 1 or 2 bytes */
55+ u_short bit_p_spl; /* 8, 12 or 16 bit */
56+} WaveFmtBody;
57+
58+typedef struct {
59+ WaveFmtBody format;
60+ u_short ext_size;
61+ u_short bit_p_spl;
62+ u_int channel_mask;
63+ u_short guid_format; /* WAV_FMT_* */
64+ u_char guid_tag[14]; /* WAV_GUID_TAG */
65+} WaveFmtExtensibleBody;
66+
67+typedef struct {
68+ u_int type; /* 'data' */
69+ u_int length; /* samplecount */
70+} WaveChunkHeader;
71+
72+
73+#endif /* FORMATS */
74--- a/src/utils/cplay.c
75+++ b/src/utils/cplay.c
76@@ -1,4 +1,6 @@
77 /*
78+ * Copyright 2020 NXP
79+ *
80 * This file is provided under a dual BSD/LGPLv2.1 license. When using or
81 * redistributing this file, you may do so under either license.
82 *
83@@ -73,6 +75,8 @@
84 #include "tinycompress/tinycompress.h"
85 #include "tinycompress/tinymp3.h"
86 #include "tinycompress/id3_tag_decode.h"
87+#include "tinycompress/wave_formats.h"
88+#include <alsa/asoundlib.h>
89
90 static int verbose;
91 static const unsigned int DEFAULT_CODEC_ID = SND_AUDIOCODEC_PCM;
92@@ -166,6 +170,77 @@ static int parse_mp3_header(struct mp3_h
93 return 0;
94 }
95
96+static int parse_wav_header(FILE *file, unsigned int *num_channels, unsigned int *sample_rate,
97+ unsigned int *format) {
98+ WaveHeader wave_header;
99+ WaveChunkHeader chunk_header;
100+ WaveFmtBody fmt_body;
101+ int more_chunks = 1;
102+
103+ fread(&wave_header, sizeof(WaveHeader), 1, file);
104+ if ((wave_header.magic != WAV_RIFF) ||
105+ (wave_header.type != WAV_WAVE)) {
106+ fprintf(stderr, "Error: it is not a riff/wave file\n");
107+ return -1;
108+ }
109+
110+ do {
111+ fread(&chunk_header, sizeof(WaveChunkHeader), 1, file);
112+ switch (chunk_header.type) {
113+ case WAV_FMT:
114+ fread(&fmt_body, sizeof(WaveFmtBody), 1, file);
115+ /* If the format header is larger, skip the rest */
116+ if (chunk_header.length > sizeof(WaveFmtBody))
117+ fseek(file, chunk_header.length - sizeof(WaveFmtBody), SEEK_CUR);
118+
119+ *num_channels = fmt_body.channels;
120+ *sample_rate = fmt_body.sample_fq;
121+
122+ switch (fmt_body.bit_p_spl) {
123+ case 8:
124+ *format = SND_PCM_FORMAT_U8;
125+ break;
126+ case 16:
127+ *format = SND_PCM_FORMAT_S16_LE;
128+ break;
129+ case 24:
130+ switch (fmt_body.byte_p_spl / fmt_body.channels) {
131+ case 3:
132+ *format = SND_PCM_FORMAT_S24_3LE;
133+ break;
134+ case 4:
135+ *format = SND_PCM_FORMAT_S24_LE;
136+ break;
137+ default:
138+ fprintf(stderr, "format error\n");
139+ return -1;
140+ }
141+ break;
142+ case 32:
143+ if (fmt_body.format == WAV_FMT_PCM) {
144+ *format = SND_PCM_FORMAT_S32_LE;
145+ } else if (fmt_body.format == WAV_FMT_IEEE_FLOAT) {
146+ *format = SND_PCM_FORMAT_FLOAT_LE;
147+ }
148+ break;
149+ default:
150+ fprintf(stderr, "format error\n");
151+ return -1;
152+ }
153+ break;
154+ case WAV_DATA:
155+ /* Stop looking for chunks */
156+ more_chunks = 0;
157+ break;
158+ default:
159+ /* Unknown chunk, skip bytes */
160+ fseek(file, chunk_header.length, SEEK_CUR);
161+ }
162+ } while (more_chunks);
163+
164+ return 0;
165+}
166+
167 static int print_time(struct compress *compress)
168 {
169 unsigned int avail;
170@@ -385,6 +460,35 @@ void get_codec_iec(FILE *file, struct co
171 codec->format = 0;
172 }
173
174+void get_codec_pcm(FILE *file, struct compr_config *config,
175+ struct snd_codec *codec)
176+{
177+ unsigned int channels, rate, format;
178+
179+ if (parse_wav_header(file, &channels, &rate, &format) == -1) {
180+ fclose(file);
181+ exit(EXIT_FAILURE);
182+ }
183+
184+ if (channels > 2 || (format != SND_PCM_FORMAT_S16_LE && format != SND_PCM_FORMAT_S32_LE) ||
185+ rate > 192000) {
186+ fprintf(stderr, "unsupported wave file\n");
187+ fclose(file);
188+ exit(EXIT_FAILURE);
189+ }
190+
191+ codec->id = SND_AUDIOCODEC_PCM;
192+ codec->ch_in = channels;
193+ codec->ch_out = channels;
194+ codec->sample_rate = rate;
195+ codec->bit_rate = 0;
196+ codec->rate_control = 0;
197+ codec->profile = SND_AUDIOPROFILE_PCM;
198+ codec->level = 0;
199+ codec->ch_mode = 0;
200+ codec->format = format;
201+}
202+
203 void play_samples(char *name, unsigned int card, unsigned int device,
204 unsigned long buffer_size, unsigned int frag,
205 unsigned long codec_id)
206@@ -411,6 +515,9 @@ void play_samples(char *name, unsigned i
207 case SND_AUDIOCODEC_IEC61937:
208 get_codec_iec(file, &config, &codec);
209 break;
210+ case SND_AUDIOCODEC_PCM:
211+ get_codec_pcm(file, &config, &codec);
212+ break;
213 default:
214 fprintf(stderr, "codec ID %ld is not supported\n", codec_id);
215 exit(EXIT_FAILURE);
diff --git a/recipes-multimedia/tinycompress/tinycompress/0003-cplay-Add-pause-feature.patch b/recipes-multimedia/tinycompress/tinycompress/0003-cplay-Add-pause-feature.patch
new file mode 100755
index 00000000..7d8492b7
--- /dev/null
+++ b/recipes-multimedia/tinycompress/tinycompress/0003-cplay-Add-pause-feature.patch
@@ -0,0 +1,146 @@
1From 6f778c21ee357a662cdd758cff578a3e4b85eedf Mon Sep 17 00:00:00 2001
2From: Zhang Peng <peng.zhang_8@nxp.com>
3Date: Tue, 4 Aug 2020 15:29:29 +0800
4Subject: [PATCH] cplay: Add pause feature
5
6Add option: -p pause
7
8Upstream-Status: Inappropriate [i.MX specific]
9Signed-off-by: Zhang Peng <peng.zhang_8@nxp.com>
10---
11 src/utils/cplay.c | 56 +++++++++++++++++++++++++++++++++++++++++++----
12 1 file changed, 52 insertions(+), 4 deletions(-)
13
14diff --git a/src/utils/cplay.c b/src/utils/cplay.c
15index 8882f4d..8e3dcbb 100644
16--- a/src/utils/cplay.c
17+++ b/src/utils/cplay.c
18@@ -117,6 +117,9 @@ static void usage(void)
19 "-f\tfragments\n\n"
20 "-v\tverbose mode\n"
21 "-h\tPrints this help list\n\n"
22+ "-p\tpause\n"
23+ "-m\tpause blocks\n"
24+ "-n\tpause time duration\n"
25 "Example:\n"
26 "\tcplay -c 1 -d 2 test.mp3\n"
27 "\tcplay -f 5 test.mp3\n\n"
28@@ -133,7 +136,8 @@ static void usage(void)
29
30 void play_samples(char *name, unsigned int card, unsigned int device,
31 unsigned long buffer_size, unsigned int frag,
32- unsigned long codec_id);
33+ unsigned long codec_id, int pause_count, int pause_block,
34+ int pause_duration);
35
36 struct mp3_header {
37 uint16_t sync;
38@@ -262,12 +266,15 @@ int main(int argc, char **argv)
39 int c, i;
40 unsigned int card = 0, device = 0, frag = 0;
41 unsigned int codec_id = SND_AUDIOCODEC_MP3;
42+ int pause_count = 0;
43+ int pause_block = 6;
44+ int pause_duration = 10;
45
46 if (argc < 2)
47 usage();
48
49 verbose = 0;
50- while ((c = getopt(argc, argv, "hvb:f:c:d:I:")) != -1) {
51+ while ((c = getopt(argc, argv, "hvb:f:c:d:I:p:m:n:")) != -1) {
52 switch (c) {
53 case 'h':
54 usage();
55@@ -306,6 +313,23 @@ int main(int argc, char **argv)
56 case 'v':
57 verbose = 1;
58 break;
59+ case 'p':
60+ pause_count = strtol(optarg, NULL, 10);
61+ break;
62+ case 'm':
63+ pause_block = strtol(optarg, NULL, 10);
64+ if (pause_duration < 0) {
65+ printf("Set wrong paramter! Set duration default 6.\n");
66+ pause_duration = 6;
67+ }
68+ break;
69+ case 'n':
70+ pause_duration = strtol(optarg, NULL, 10);
71+ if (pause_duration < 0) {
72+ printf("Set wrong paramter! Set duration default 10.\n");
73+ pause_duration = 10;
74+ }
75+ break;
76 default:
77 exit(EXIT_FAILURE);
78 }
79@@ -315,7 +339,7 @@ int main(int argc, char **argv)
80
81 file = argv[optind];
82
83- play_samples(file, card, device, buffer_size, frag, codec_id);
84+ play_samples(file, card, device, buffer_size, frag, codec_id, pause_count, pause_block, pause_duration);
85
86 fprintf(stderr, "Finish Playing.... Close Normally\n");
87 exit(EXIT_SUCCESS);
88@@ -491,7 +515,8 @@ void get_codec_pcm(FILE *file, struct compr_config *config,
89
90 void play_samples(char *name, unsigned int card, unsigned int device,
91 unsigned long buffer_size, unsigned int frag,
92- unsigned long codec_id)
93+ unsigned long codec_id, int pause_count, int pause_block,
94+ int pause_duration)
95 {
96 struct compr_config config;
97 struct snd_codec codec;
98@@ -499,6 +524,7 @@ void play_samples(char *name, unsigned int card, unsigned int device,
99 FILE *file;
100 char *buffer;
101 int size, num_read, wrote;
102+ int write_count = 0;
103
104 if (verbose)
105 printf("%s: entry\n", __func__);
106@@ -574,6 +600,13 @@ void play_samples(char *name, unsigned int card, unsigned int device,
107 if (verbose)
108 printf("%s: You should hear audio NOW!!!\n", __func__);
109
110+ if (pause_count > 0) {
111+ printf("sleep...\n");
112+ compress_pause(compress);
113+ sleep(pause_duration);
114+ compress_resume(compress);
115+ }
116+
117 do {
118 num_read = fread(buffer, 1, size, file);
119 if (num_read > 0) {
120@@ -592,8 +625,23 @@ void play_samples(char *name, unsigned int card, unsigned int device,
121 printf("%s: wrote %d\n", __func__, wrote);
122 }
123 }
124+ write_count++;
125+ if ((pause_count > 0) && (write_count % pause_block == 0)) {
126+ printf("pause...\n");
127+ compress_pause(compress);
128+ sleep(pause_duration);
129+ printf("pause release...\n");
130+ compress_resume(compress);
131+ pause_count--;
132+ }
133 } while (num_read > 0);
134
135+ if (pause_count > 0) {
136+ compress_pause(compress);
137+ sleep(5);
138+ compress_resume(compress);
139+ }
140+
141 if (verbose)
142 printf("%s: exit success\n", __func__);
143 /* issue drain if it supports */
144--
1452.17.1
146
diff --git a/recipes-multimedia/tinycompress/tinycompress/0004-tinycompress-pass-NULL-buffer-with-0-size-to-driver.patch b/recipes-multimedia/tinycompress/tinycompress/0004-tinycompress-pass-NULL-buffer-with-0-size-to-driver.patch
new file mode 100755
index 00000000..dfedd186
--- /dev/null
+++ b/recipes-multimedia/tinycompress/tinycompress/0004-tinycompress-pass-NULL-buffer-with-0-size-to-driver.patch
@@ -0,0 +1,40 @@
1From a2892bf5db7520689fa9cb1d1589fa804bd9dc1a Mon Sep 17 00:00:00 2001
2From: Bing Song <bing.song@nxp.com>
3Date: Tue, 18 Aug 2020 15:26:51 +0800
4Subject: [PATCH] tinycompress: pass NULL buffer with 0 size to driver.
5
6The NULL buffer with 0 size to indecate driver drain input data with
7non-block mode. The defaul drain is block mode.
8
9Upstream-Status: Inappropriate [i.MX specific]
10Signed-off-by: Bing Song <bing.song@nxp.com>
11---
12 src/lib/compress.c | 5 +++--
13 1 file changed, 3 insertions(+), 2 deletions(-)
14
15diff --git a/src/lib/compress.c b/src/lib/compress.c
16index bba4fcf..d66df0b 100644
17--- a/src/lib/compress.c
18+++ b/src/lib/compress.c
19@@ -315,7 +315,8 @@ int compress_write(struct compress *compress, const void *buf, unsigned int size
20 fds.events = POLLOUT;
21
22 /*TODO: treat auto start here first */
23- while (size) {
24+ /* NULL buffer with 0 size for non-block drain */
25+ do {
26 if (ioctl(compress->fd, SNDRV_COMPRESS_AVAIL, &avail))
27 return oops(compress, errno, "cannot get avail");
28
29@@ -357,7 +358,7 @@ int compress_write(struct compress *compress, const void *buf, unsigned int size
30 size -= written;
31 cbuf += written;
32 total += written;
33- }
34+ } while (size);
35 return total;
36 }
37
38--
392.17.1
40
diff --git a/recipes-multimedia/tinycompress/tinycompress/0005-cplay-Support-aac-streams.patch b/recipes-multimedia/tinycompress/tinycompress/0005-cplay-Support-aac-streams.patch
new file mode 100755
index 00000000..2f36551a
--- /dev/null
+++ b/recipes-multimedia/tinycompress/tinycompress/0005-cplay-Support-aac-streams.patch
@@ -0,0 +1,251 @@
1From 2912f8573cea25fbd38ac7a8b68af2ea6a05e599 Mon Sep 17 00:00:00 2001
2From: Zhang Peng <peng.zhang_8@nxp.com>
3Date: Wed, 28 Oct 2020 19:08:53 +0800
4Subject: [PATCH] cplay: Support aac streams
5
6Support run aac format streams for cplay.
7
8Upstream-Status: Inappropriate [i.MX specific]
9Signed-off-by: Zhang Peng <peng.zhang_8@nxp.com>
10---
11 src/utils/cplay.c | 210 ++++++++++++++++++++++++++++++++++++++++++++++
12 1 file changed, 210 insertions(+)
13
14diff --git a/src/utils/cplay.c b/src/utils/cplay.c
15index 8e3dcbb..2a1464a 100644
16--- a/src/utils/cplay.c
17+++ b/src/utils/cplay.c
18@@ -245,6 +245,190 @@ static int parse_wav_header(FILE *file, unsigned int *num_channels, unsigned int
19 return 0;
20 }
21
22+int find_adts_header(FILE *file, unsigned int *num_channels, unsigned int *sample_rate, unsigned int *format)
23+{
24+ int ret;
25+ unsigned char buf[5];
26+
27+ ret = fread(buf, sizeof(buf), 1, file);
28+ if (ret < 0) {
29+ fprintf(stderr, "open file error: %d\n", ret);
30+ return 0;
31+ }
32+ fseek(file, 0, SEEK_SET);
33+
34+ if ((buf[0] != 0xff) || (buf[1] & 0xf0 != 0xf0))
35+ return 0;
36+ /* mpeg id */
37+ switch (buf[1]>>3 & 0x1) {
38+ case 0x0:
39+ *format = SND_AUDIOSTREAMFORMAT_MP4ADTS;
40+ break;
41+ case 0x1:
42+ *format = SND_AUDIOSTREAMFORMAT_MP2ADTS;
43+ break;
44+ default:
45+ fprintf(stderr, "can't find stream format\n");
46+ break;
47+ }
48+ /* sample_rate */
49+ switch (buf[2]>>2 & 0xf) {
50+ case 0x0:
51+ *sample_rate = 96000;
52+ break;
53+ case 0x1:
54+ *sample_rate = 88200;
55+ break;
56+ case 0x2:
57+ *sample_rate = 64000;
58+ break;
59+ case 0x3:
60+ *sample_rate = 48000;
61+ break;
62+ case 0x4:
63+ *sample_rate = 44100;
64+ break;
65+ case 0x5:
66+ *sample_rate = 32000;
67+ break;
68+ case 0x6:
69+ *sample_rate = 24000;
70+ break;
71+ case 0x7:
72+ *sample_rate = 22050;
73+ break;
74+ case 0x8:
75+ *sample_rate = 16000;
76+ break;
77+ case 0x9:
78+ *sample_rate = 12000;
79+ break;
80+ case 0xa:
81+ *sample_rate = 11025;
82+ break;
83+ case 0xb:
84+ *sample_rate = 8000;
85+ break;
86+ case 0xc:
87+ *sample_rate = 7350;
88+ break;
89+ default:
90+ break;
91+ }
92+ /* channel */
93+ switch (((buf[2]&0x1) << 2) | (buf[3]>>6)) {
94+ case 1:
95+ *num_channels = 1;
96+ break;
97+ case 2:
98+ *num_channels = 2;
99+ break;
100+ case 3:
101+ *num_channels = 3;
102+ break;
103+ case 4:
104+ *num_channels = 4;
105+ break;
106+ case 5:
107+ *num_channels = 5;
108+ break;
109+ case 6:
110+ *num_channels = 6;
111+ break;
112+ case 7:
113+ *num_channels = 7;
114+ break;
115+ default:
116+ break;
117+ }
118+ return 1;
119+}
120+
121+static const int aac_sample_rates[] = { 96000, 88200, 64000, 48000, 44100,
122+ 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350
123+};
124+
125+#define MAX_SR_NUM sizeof(aac_sample_rates)/sizeof(aac_sample_rates[0])
126+
127+static int get_sample_rate_from_index(int sr_index)
128+{
129+ if (sr_index >= 0 && sr_index < MAX_SR_NUM)
130+ return aac_sample_rates[sr_index];
131+
132+ return 0;
133+}
134+
135+int find_adif_header(FILE *file, unsigned int *num_channels, unsigned int *sample_rate, unsigned int *format)
136+{
137+ int ret;
138+ unsigned char adif_id[4];
139+ unsigned char adif_header[20];
140+ int bitstream_type;
141+ int bitrate;
142+ int object_type;
143+ int sr_index;
144+ int skip_size = 0;
145+
146+ ret = fread(adif_id, sizeof(unsigned char), 4, file);
147+ if (ret < 0) {
148+ fprintf(stderr, "read data from file err: %d\n", ret);
149+ return 0;
150+ }
151+ /* adif id */
152+ if ((adif_id[0] != 0x41) || (adif_id[1] != 0x44) ||
153+ (adif_id[2] != 0x49) || (adif_id[3] != 0x46))
154+ return 0;
155+
156+ fread(adif_header, sizeof(unsigned char), 20, file);
157+
158+ /* copyright string */
159+ if (adif_header[0] & 0x80)
160+ skip_size = 9;
161+
162+ bitstream_type = adif_header[0 + skip_size] & 0x10;
163+ bitrate =
164+ ((unsigned int) (adif_header[0 + skip_size] & 0x0f) << 19) |
165+ ((unsigned int) adif_header[1 + skip_size] << 11) |
166+ ((unsigned int) adif_header[2 + skip_size] << 3) |
167+ ((unsigned int) adif_header[3 + skip_size] & 0xe0);
168+
169+ if (bitstream_type == 0) {
170+ object_type = ((adif_header[6 + skip_size] & 0x01) << 1) |
171+ ((adif_header[7 + skip_size] & 0x80) >> 7);
172+ sr_index = (adif_header[7 + skip_size] & 0x78) >> 3;
173+ }
174+ /* VBR */
175+ else {
176+ object_type = (adif_header[4 + skip_size] & 0x18) >> 3;
177+ sr_index = ((adif_header[4 + skip_size] & 0x07) << 1) |
178+ ((adif_header[5 + skip_size] & 0x80) >> 7);
179+ }
180+
181+ /* sample rate */
182+ *sample_rate = get_sample_rate_from_index(sr_index);
183+
184+ /* FIXME: assume channels is 2 */
185+ *num_channels = 2;
186+
187+ *format = SND_AUDIOSTREAMFORMAT_ADIF;
188+ fseek(file, 0, SEEK_SET);
189+ return 1;
190+}
191+
192+static int parse_aac_header(FILE *file, unsigned int *num_channels, unsigned int *sample_rate, unsigned int *format)
193+{
194+ if (find_adts_header(file, num_channels, sample_rate, format))
195+ return 1;
196+ else if (find_adif_header(file, num_channels, sample_rate, format))
197+ return 1;
198+ else {
199+ fprintf(stderr, "can't find streams format\n");
200+ return 0;
201+ }
202+
203+ return 1;
204+}
205+
206 static int print_time(struct compress *compress)
207 {
208 unsigned int avail;
209@@ -513,6 +697,29 @@ void get_codec_pcm(FILE *file, struct compr_config *config,
210 codec->format = format;
211 }
212
213+void get_codec_aac(FILE *file, struct compr_config *config,
214+ struct snd_codec *codec)
215+{
216+ unsigned int channels, rate, format;
217+
218+ if (parse_aac_header(file, &channels, &rate, &format) == 0) {
219+ fclose(file);
220+ exit(EXIT_FAILURE);
221+ };
222+ fseek(file, 0, SEEK_SET);
223+
224+ codec->id = SND_AUDIOCODEC_AAC;
225+ codec->ch_in = channels;
226+ codec->ch_out = channels;
227+ codec->sample_rate = rate;
228+ codec->bit_rate = 0;
229+ codec->rate_control = 0;
230+ codec->profile = SND_AUDIOPROFILE_AAC;
231+ codec->level = 0;
232+ codec->ch_mode = 0;
233+ codec->format = format;
234+
235+}
236 void play_samples(char *name, unsigned int card, unsigned int device,
237 unsigned long buffer_size, unsigned int frag,
238 unsigned long codec_id, int pause_count, int pause_block,
239@@ -544,6 +751,9 @@ void play_samples(char *name, unsigned int card, unsigned int device,
240 case SND_AUDIOCODEC_PCM:
241 get_codec_pcm(file, &config, &codec);
242 break;
243+ case SND_AUDIOCODEC_AAC:
244+ get_codec_aac(file, &config, &codec);
245+ break;
246 default:
247 fprintf(stderr, "codec ID %ld is not supported\n", codec_id);
248 exit(EXIT_FAILURE);
249--
2502.17.1
251
diff --git a/recipes-multimedia/tinycompress/tinycompress_1.1.6.bb b/recipes-multimedia/tinycompress/tinycompress_1.1.6.bb
new file mode 100644
index 00000000..6c0fc72e
--- /dev/null
+++ b/recipes-multimedia/tinycompress/tinycompress_1.1.6.bb
@@ -0,0 +1,16 @@
1DESCRIPTION = "A library to handle compressed formats like MP3 etc."
2LICENSE = "LGPLv2.1 | BSD-3-Clause"
3LIC_FILES_CHKSUM = "file://COPYING;md5=cf9105c1a2d4405cbe04bbe3367373a0"
4DEPENDS = "alsa-lib"
5
6SRC_URI = "git://git.alsa-project.org/tinycompress.git;protocol=git;branch=master \
7 file://0001-tinycompress-Add-id3-decoding.patch \
8 file://0002-cplay-Support-wave-file.patch \
9 file://0003-cplay-Add-pause-feature.patch \
10 file://0004-tinycompress-pass-NULL-buffer-with-0-size-to-driver.patch \
11 file://0005-cplay-Support-aac-streams.patch \
12"
13SRCREV = "995f2ed91045dad8c20485ab1a64727d22cd92e5"
14S = "${WORKDIR}/git"
15
16inherit autotools pkgconfig
diff --git a/recipes-security/optee-imx/optee-client_3.10.0.imx.bb b/recipes-security/optee-imx/optee-client_3.10.0.imx.bb
index 58b6b8a4..52bec40b 100644
--- a/recipes-security/optee-imx/optee-client_3.10.0.imx.bb
+++ b/recipes-security/optee-imx/optee-client_3.10.0.imx.bb
@@ -18,11 +18,11 @@ B = "${WORKDIR}/build"
18 18
19inherit python3native systemd 19inherit python3native systemd
20 20
21SYSTEMD_SERVICE_${PN} = "tee-supplicant.service" 21SYSTEMD_SERVICE:${PN} = "tee-supplicant.service"
22 22
23OPTEE_ARCH ?= "arm32" 23OPTEE_ARCH ?= "arm32"
24OPTEE_ARCH_armv7a = "arm32" 24OPTEE_ARCH:armv7a = "arm32"
25OPTEE_ARCH_aarch64 = "arm64" 25OPTEE_ARCH:aarch64 = "arm64"
26 26
27EXTRA_OEMAKE = "ARCH=${OPTEE_ARCH} O=${B}" 27EXTRA_OEMAKE = "ARCH=${OPTEE_ARCH} O=${B}"
28 28
@@ -42,11 +42,11 @@ do_install () {
42} 42}
43 43
44PACKAGES += "tee-supplicant" 44PACKAGES += "tee-supplicant"
45FILES_${PN} += "${libdir}/* ${includedir}/*" 45FILES:${PN} += "${libdir}/* ${includedir}/*"
46FILES_tee-supplicant += "${bindir}/tee-supplicant" 46FILES:tee-supplicant += "${bindir}/tee-supplicant"
47 47
48INSANE_SKIP_${PN} = "ldflags dev-elf" 48INSANE_SKIP:${PN} = "ldflags dev-elf"
49INSANE_SKIP_${PN}-dev = "ldflags dev-elf" 49INSANE_SKIP:${PN}-dev = "ldflags dev-elf"
50INSANE_SKIP_tee-supplicant = "ldflags" 50INSANE_SKIP:tee-supplicant = "ldflags"
51 51
52COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" 52COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
diff --git a/recipes-security/optee-imx/optee-os_3.10.0.imx.bb b/recipes-security/optee-imx/optee-os_3.10.0.imx.bb
index 712b1aa6..8bfaf8dd 100644
--- a/recipes-security/optee-imx/optee-os_3.10.0.imx.bb
+++ b/recipes-security/optee-imx/optee-os_3.10.0.imx.bb
@@ -22,23 +22,25 @@ inherit deploy python3native autotools
22 22
23# The platform flavor corresponds to the Yocto machine without the leading 'i'. 23# The platform flavor corresponds to the Yocto machine without the leading 'i'.
24PLATFORM_FLAVOR = "${@d.getVar('MACHINE')[1:]}" 24PLATFORM_FLAVOR = "${@d.getVar('MACHINE')[1:]}"
25PLATFORM_FLAVOR_imx6qpdlsolox = "mx6qsabresd" 25PLATFORM_FLAVOR:imx6qdlsabresd = "mx6qsabresd"
26PLATFORM_FLAVOR_imx6ul7d = "mx6ulevk" 26PLATFORM_FLAVOR:imx6qdlsabreauto = "mx6qsabreauto"
27PLATFORM_FLAVOR_imx6ull14x14evk = "mx6ullevk" 27PLATFORM_FLAVOR:imx6qpdlsolox = "mx6qsabresd"
28PLATFORM_FLAVOR_imx6ull9x9evk = "mx6ullevk" 28PLATFORM_FLAVOR:imx6ul7d = "mx6ulevk"
29PLATFORM_FLAVOR_imx6ulz-14x14-evk = "mx6ulzevk" 29PLATFORM_FLAVOR:imx6ull14x14evk = "mx6ullevk"
30PLATFORM_FLAVOR_mx8mq = "mx8mqevk" 30PLATFORM_FLAVOR:imx6ull9x9evk = "mx6ullevk"
31PLATFORM_FLAVOR_mx8mm = "mx8mmevk" 31PLATFORM_FLAVOR:imx6ulz-14x14-evk = "mx6ulzevk"
32PLATFORM_FLAVOR_mx8mn = "mx8mnevk" 32PLATFORM_FLAVOR:mx8mq = "mx8mqevk"
33PLATFORM_FLAVOR_mx8mp = "mx8mpevk" 33PLATFORM_FLAVOR:mx8mm = "mx8mmevk"
34PLATFORM_FLAVOR_mx8qm = "mx8qmmek" 34PLATFORM_FLAVOR:mx8mn = "mx8mnevk"
35PLATFORM_FLAVOR_mx8qxp = "mx8qxpmek" 35PLATFORM_FLAVOR:mx8mp = "mx8mpevk"
36PLATFORM_FLAVOR_mx8dx = "mx8dxmek" 36PLATFORM_FLAVOR:mx8qm = "mx8qmmek"
37PLATFORM_FLAVOR_mx8dxl = "mx8dxlevk" 37PLATFORM_FLAVOR:mx8qxp = "mx8qxpmek"
38PLATFORM_FLAVOR:mx8dx = "mx8dxmek"
39PLATFORM_FLAVOR:mx8dxl = "mx8dxlevk"
38 40
39OPTEE_ARCH ?= "arm32" 41OPTEE_ARCH ?= "arm32"
40OPTEE_ARCH_armv7a = "arm32" 42OPTEE_ARCH:armv7a = "arm32"
41OPTEE_ARCH_aarch64 = "arm64" 43OPTEE_ARCH:aarch64 = "arm64"
42 44
43# Optee-os can be built for 32 bits and 64 bits at the same time 45# Optee-os can be built for 32 bits and 64 bits at the same time
44# as long as the compilers are correctly defined. 46# as long as the compilers are correctly defined.
@@ -86,9 +88,9 @@ do_install () {
86addtask deploy after do_compile before do_install 88addtask deploy after do_compile before do_install
87 89
88 90
89FILES_${PN} = "${nonarch_base_libdir}/firmware/" 91FILES:${PN} = "${nonarch_base_libdir}/firmware/"
90FILES_${PN}-staticdev = "/usr/include/optee/" 92FILES:${PN}-staticdev = "/usr/include/optee/"
91RDEPENDS_${PN}-dev += "${PN}-staticdev" 93RDEPENDS:${PN}-dev += "${PN}-staticdev"
92 94
93PACKAGE_ARCH = "${MACHINE_ARCH}" 95PACKAGE_ARCH = "${MACHINE_ARCH}"
94COMPATIBLE_MACHINE = "(imx|imx-boot-container)" 96COMPATIBLE_MACHINE = "(imx|imx-boot-container)"
diff --git a/recipes-security/optee-imx/optee-test_3.10.0.imx.bb b/recipes-security/optee-imx/optee-test_3.10.0.imx.bb
index a8a1b245..76e04f04 100644
--- a/recipes-security/optee-imx/optee-test_3.10.0.imx.bb
+++ b/recipes-security/optee-imx/optee-test_3.10.0.imx.bb
@@ -20,11 +20,11 @@ SRCREV = "0c998f42a3fb87b9f2929955cf4b0116cc515091"
20inherit python3native 20inherit python3native
21 21
22OPTEE_ARCH ?= "arm32" 22OPTEE_ARCH ?= "arm32"
23OPTEE_ARCH_armv7a = "arm32" 23OPTEE_ARCH:armv7a = "arm32"
24OPTEE_ARCH_aarch64 = "arm64" 24OPTEE_ARCH:aarch64 = "arm64"
25 25
26TA_DEV_KIT_DIR_arm = "${STAGING_INCDIR}/optee/export-user_ta_arm32/" 26TA_DEV_KIT_DIR:arm = "${STAGING_INCDIR}/optee/export-user_ta:arm32/"
27TA_DEV_KIT_DIR_aarch64 = "${STAGING_INCDIR}/optee/export-user_ta_arm64/" 27TA_DEV_KIT_DIR:aarch64 = "${STAGING_INCDIR}/optee/export-user_ta:arm64/"
28 28
29CFLAGS += "--sysroot=${STAGING_DIR_HOST}" 29CFLAGS += "--sysroot=${STAGING_DIR_HOST}"
30CXXFLAGS += "--sysroot=${STAGING_DIR_HOST}" 30CXXFLAGS += "--sysroot=${STAGING_DIR_HOST}"
@@ -58,6 +58,6 @@ do_install () {
58 done 58 done
59} 59}
60 60
61FILES_${PN} = "/usr/bin/ /lib*/optee_armtz/" 61FILES:${PN} = "/usr/bin/ /lib*/optee_armtz/"
62 62
63COMPATIBLE_MACHINE = "(mx6|mx7|mx8)" 63COMPATIBLE_MACHINE = "(mx6|mx7|mx8)"
diff --git a/recipes-security/optee/optee-os-qoriq_3.8.0.bb b/recipes-security/optee/optee-os-qoriq_3.8.0.bb
index b8d764ff..7bd9047d 100644
--- a/recipes-security/optee/optee-os-qoriq_3.8.0.bb
+++ b/recipes-security/optee/optee-os-qoriq_3.8.0.bb
@@ -19,22 +19,22 @@ SRCREV = "0cb01f7f6aee552ead49990c06f69f73f459cc65"
19S = "${WORKDIR}/git" 19S = "${WORKDIR}/git"
20 20
21OPTEEMACHINE ?= "${MACHINE}" 21OPTEEMACHINE ?= "${MACHINE}"
22OPTEEMACHINE_ls1088ardb-pb = "ls1088ardb" 22OPTEEMACHINE:ls1088ardb-pb = "ls1088ardb"
23OPTEEMACHINE_ls1046afrwy = "ls1046ardb" 23OPTEEMACHINE:ls1046afrwy = "ls1046ardb"
24OPTEEMACHINE_lx2162aqds = "lx2160aqds" 24OPTEEMACHINE:lx2162aqds = "lx2160aqds"
25 25
26EXTRA_OEMAKE = "PLATFORM=ls-${OPTEEMACHINE} CFG_ARM64_core=y \ 26EXTRA_OEMAKE = "PLATFORM=ls-${OPTEEMACHINE} CFG_ARM64_core=y \
27 ARCH=arm \ 27 ARCH=arm \
28 CROSS_COMPILE_core=${HOST_PREFIX} \ 28 CROSS_COMPILE_core=${HOST_PREFIX} \
29 CROSS_COMPILE_ta_arm64=${HOST_PREFIX} \ 29 CROSS_COMPILE_ta:arm64=${HOST_PREFIX} \
30 NOWERROR=1 \ 30 NOWERROR=1 \
31 LDFLAGS= \ 31 LDFLAGS= \
32 LIBGCC_LOCATE_CFLAGS=--sysroot=${STAGING_DIR_HOST} \ 32 LIBGCC_LOCATE_CFLAGS=--sysroot=${STAGING_DIR_HOST} \
33 " 33 "
34EXTRA_OEMAKE_append_lx2162aqds = " CFG_EMBED_DTB_SOURCE_FILE=fsl-lx2160a-qds.dts CFG_EMBED_DT=y" 34EXTRA_OEMAKE:append:lx2162aqds = " CFG_EMBED_DTB_SOURCE_FILE=fsl-lx2160a-qds.dts CFG_EMBED_DT=y"
35 35
36OPTEE_ARCH_armv7a = "arm32" 36OPTEE_ARCH:armv7a = "arm32"
37OPTEE_ARCH_aarch64 = "arm64" 37OPTEE_ARCH:aarch64 = "arm64"
38 38
39do_compile() { 39do_compile() {
40 unset LDFLAGS 40 unset LDFLAGS
@@ -74,10 +74,10 @@ do_deploy() {
74 74
75addtask deploy before do_build after do_install 75addtask deploy before do_build after do_install
76 76
77FILES_${PN} = "/lib/firmware/" 77FILES:${PN} = "/lib/firmware/"
78FILES_${PN}-dev = "/usr/include/optee" 78FILES:${PN}-dev = "/usr/include/optee"
79 79
80INSANE_SKIP_${PN}-dev = "staticdev" 80INSANE_SKIP:${PN}-dev = "staticdev"
81 81
82INHIBIT_PACKAGE_STRIP = "1" 82INHIBIT_PACKAGE_STRIP = "1"
83COMPATIBLE_MACHINE = "(qoriq-arm64)" 83COMPATIBLE_MACHINE = "(qoriq-arm64)"
diff --git a/recipes-security/optee/optee-test-qoriq_3.8.0.bb b/recipes-security/optee/optee-test-qoriq_3.8.0.bb
index 94cd00c2..52cb1bbf 100644
--- a/recipes-security/optee/optee-test-qoriq_3.8.0.bb
+++ b/recipes-security/optee/optee-test-qoriq_3.8.0.bb
@@ -40,7 +40,7 @@ do_install () {
40 install -D -p -m0444 ${S}/out/ta/*/*.ta ${D}/lib/optee_armtz/ 40 install -D -p -m0444 ${S}/out/ta/*/*.ta ${D}/lib/optee_armtz/
41} 41}
42 42
43FILES_${PN} += "/lib/optee_armtz/" 43FILES:${PN} += "/lib/optee_armtz/"
44 44
45# Imports machine specific configs from staging to build 45# Imports machine specific configs from staging to build
46PACKAGE_ARCH = "${MACHINE_ARCH}" 46PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/recipes-support/opencv/opencv_4.5.2.imx.bb b/recipes-support/opencv/opencv_4.5.2.imx.bb
index a86fd3ec..8e76783a 100644
--- a/recipes-support/opencv/opencv_4.5.2.imx.bb
+++ b/recipes-support/opencv/opencv_4.5.2.imx.bb
@@ -11,8 +11,8 @@ SECTION = "libs"
11LICENSE = "Apache-2.0" 11LICENSE = "Apache-2.0"
12LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" 12LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
13 13
14ARM_INSTRUCTION_SET_armv4 = "arm" 14ARM_INSTRUCTION_SET:armv4 = "arm"
15ARM_INSTRUCTION_SET_armv5 = "arm" 15ARM_INSTRUCTION_SET:armv5 = "arm"
16 16
17DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp" 17DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp"
18 18
@@ -59,7 +59,7 @@ SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \
59 file://0001-Make-ts-module-external.patch \ 59 file://0001-Make-ts-module-external.patch \
60 file://0001-sfm-link-with-Glog_LIBS.patch;patchdir=../contrib \ 60 file://0001-sfm-link-with-Glog_LIBS.patch;patchdir=../contrib \
61 " 61 "
62SRC_URI_append_riscv64 = " file://0001-Use-Os-to-compile-tinyxml2.cpp.patch;patchdir=../contrib" 62SRC_URI:append:riscv64 = " file://0001-Use-Os-to-compile-tinyxml2.cpp.patch;patchdir=../contrib"
63 63
64S = "${WORKDIR}/git" 64S = "${WORKDIR}/git"
65 65
@@ -106,7 +106,7 @@ EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
106 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \ 106 ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \
107 ${@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)} \ 107 ${@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)} \
108" 108"
109EXTRA_OECMAKE_append_x86 = " -DX86=ON" 109EXTRA_OECMAKE:append:x86 = " -DX86=ON"
110 110
111PACKAGECONFIG ??= "gapi python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \ 111PACKAGECONFIG ??= "gapi python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \
112 ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \ 112 ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \
@@ -158,7 +158,7 @@ PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'samples', '${PN}-samples', '
158 ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)} \ 158 ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)} \
159 ${PN}-apps" 159 ${PN}-apps"
160 160
161python populate_packages_prepend () { 161python populate_packages:prepend () {
162 cv_libdir = d.expand('${libdir}') 162 cv_libdir = d.expand('${libdir}')
163 do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True) 163 do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
164 do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev') 164 do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
@@ -167,58 +167,58 @@ python populate_packages_prepend () {
167 167
168 pn = d.getVar('PN') 168 pn = d.getVar('PN')
169 metapkg = pn + '-dev' 169 metapkg = pn + '-dev'
170 d.setVar('ALLOW_EMPTY_' + metapkg, "1") 170 d.setVar('ALLOW_EMPTY:' + metapkg, "1")
171 blacklist = [ metapkg ] 171 blacklist = [ metapkg ]
172 metapkg_rdepends = [ ] 172 metapkg_rdepends = [ ]
173 packages = d.getVar('PACKAGES').split() 173 packages = d.getVar('PACKAGES').split()
174 for pkg in packages[1:]: 174 for pkg in packages[1:]:
175 if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'): 175 if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'):
176 metapkg_rdepends.append(pkg) 176 metapkg_rdepends.append(pkg)
177 d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends)) 177 d.setVar('RRECOMMENDS:' + metapkg, ' '.join(metapkg_rdepends))
178 178
179 metapkg = pn 179 metapkg = pn
180 d.setVar('ALLOW_EMPTY_' + metapkg, "1") 180 d.setVar('ALLOW_EMPTY:' + metapkg, "1")
181 blacklist = [ metapkg, "libopencv-ts" ] 181 blacklist = [ metapkg, "libopencv-ts" ]
182 metapkg_rdepends = [ ] 182 metapkg_rdepends = [ ]
183 for pkg in packages[1:]: 183 for pkg in packages[1:]:
184 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'): 184 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'):
185 metapkg_rdepends.append(pkg) 185 metapkg_rdepends.append(pkg)
186 d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) 186 d.setVar('RDEPENDS:' + metapkg, ' '.join(metapkg_rdepends))
187} 187}
188 188
189PACKAGES_DYNAMIC += "^libopencv-.*" 189PACKAGES_DYNAMIC += "^libopencv-.*"
190 190
191FILES_${PN} = "" 191FILES:${PN} = ""
192FILES_${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/*" 192FILES:${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/*"
193FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig ${libdir}/cmake/opencv4/*.cmake" 193FILES:${PN}-dev = "${includedir} ${libdir}/pkgconfig ${libdir}/cmake/opencv4/*.cmake"
194FILES_${PN}-staticdev += "${libdir}/opencv4/3rdparty/*.a" 194FILES:${PN}-staticdev += "${libdir}/opencv4/3rdparty/*.a"
195FILES_${PN}-apps = "${bindir}/* ${datadir}/opencv4 ${datadir}/licenses" 195FILES:${PN}-apps = "${bindir}/* ${datadir}/opencv4 ${datadir}/licenses"
196FILES_${PN}-java = "${datadir}/OpenCV/java" 196FILES:${PN}-java = "${datadir}/OpenCV/java"
197FILES_${PN}-samples = "${datadir}/opencv4/samples/" 197FILES:${PN}-samples = "${datadir}/opencv4/samples/"
198 198
199INSANE_SKIP_${PN}-java = "libdir" 199INSANE_SKIP:${PN}-java = "libdir"
200INSANE_SKIP_${PN}-dbg = "libdir" 200INSANE_SKIP:${PN}-dbg = "libdir"
201 201
202ALLOW_EMPTY_${PN} = "1" 202ALLOW_EMPTY:${PN} = "1"
203 203
204SUMMARY_python-opencv = "Python bindings to opencv" 204SUMMARY:python-opencv = "Python bindings to opencv"
205FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*" 205FILES:python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
206RDEPENDS_python-opencv = "python-core python-numpy" 206RDEPENDS:python-opencv = "python-core python-numpy"
207 207
208SUMMARY_python3-opencv = "Python bindings to opencv" 208SUMMARY:python3-opencv = "Python bindings to opencv"
209FILES_python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*" 209FILES:python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*"
210RDEPENDS_python3-opencv = "python3-core python3-numpy" 210RDEPENDS:python3-opencv = "python3-core python3-numpy"
211 211
212RDEPENDS_${PN}-apps = "bash" 212RDEPENDS:${PN}-apps = "bash"
213 213
214do_compile_prepend() { 214do_compile:prepend() {
215 # remove the build host info to improve reproducibility 215 # remove the build host info to improve reproducibility
216 if [ -f ${WORKDIR}/build/modules/core/version_string.inc ]; then 216 if [ -f ${WORKDIR}/build/modules/core/version_string.inc ]; then
217 sed -i "s#${WORKDIR}#/workdir#g" ${WORKDIR}/build/modules/core/version_string.inc 217 sed -i "s#${WORKDIR}#/workdir#g" ${WORKDIR}/build/modules/core/version_string.inc
218 fi 218 fi
219} 219}
220 220
221do_install_append() { 221do_install:append() {
222 # Move Python files into correct library folder (for multilib build) 222 # Move Python files into correct library folder (for multilib build)
223 if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then 223 if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then
224 mv ${D}/usr/lib/* ${D}/${libdir}/ 224 mv ${D}/usr/lib/* ${D}/${libdir}/
@@ -245,7 +245,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
245SRCREV_opencv = "5423d53ae0d116ee5bbe52f8b5503f0cd8586998" 245SRCREV_opencv = "5423d53ae0d116ee5bbe52f8b5503f0cd8586998"
246OPENCV_SRC ?= "git://source.codeaurora.org/external/imx/opencv-imx.git;protocol=https" 246OPENCV_SRC ?= "git://source.codeaurora.org/external/imx/opencv-imx.git;protocol=https"
247SRCBRANCH = "4.5.2_imx" 247SRCBRANCH = "4.5.2_imx"
248SRC_URI_remove = "git://github.com/opencv/opencv.git;name=opencv" 248SRC_URI:remove = "git://github.com/opencv/opencv.git;name=opencv"
249SRC_URI =+ "${OPENCV_SRC};branch=${SRCBRANCH};name=opencv" 249SRC_URI =+ "${OPENCV_SRC};branch=${SRCBRANCH};name=opencv"
250 250
251# Add opencv_extra 251# Add opencv_extra
@@ -254,7 +254,7 @@ SRC_URI += " \
254 git://github.com/opencv/opencv_extra.git;destsuffix=extra;name=extra \ 254 git://github.com/opencv/opencv_extra.git;destsuffix=extra;name=extra \
255 file://0001-Add-smaller-version-of-download_models.py.patch;patchdir=../extra \ 255 file://0001-Add-smaller-version-of-download_models.py.patch;patchdir=../extra \
256" 256"
257SRCREV_FORMAT_append = "_extra" 257SRCREV_FORMAT:append = "_extra"
258 258
259# Add tiny-dnn 259# Add tiny-dnn
260SRC_URI[tinydnn.md5sum] = "adb1c512e09ca2c7a6faef36f9c53e59" 260SRC_URI[tinydnn.md5sum] = "adb1c512e09ca2c7a6faef36f9c53e59"
@@ -264,25 +264,25 @@ SRC_URI += " \
264 file://OpenCV_DNN_examples.patch \ 264 file://OpenCV_DNN_examples.patch \
265" 265"
266 266
267PACKAGECONFIG_remove = "eigen" 267PACKAGECONFIG:remove = "eigen"
268PACKAGECONFIG_append_mx8 = " dnn text" 268PACKAGECONFIG:append:mx8 = " dnn text"
269PACKAGECONFIG_OPENCL = "" 269PACKAGECONFIG_OPENCL = ""
270PACKAGECONFIG_OPENCL_mx8 = "opencl" 270PACKAGECONFIG_OPENCL:mx8 = "opencl"
271PACKAGECONFIG_OPENCL_mx8dxl = "" 271PACKAGECONFIG_OPENCL:mx8dxl = ""
272PACKAGECONFIG_OPENCL_mx8mm = "" 272PACKAGECONFIG_OPENCL:mx8mm = ""
273PACKAGECONFIG_OPENCL_mx8mnlite = "" 273PACKAGECONFIG_OPENCL:mx8mnlite = ""
274PACKAGECONFIG_append = " ${PACKAGECONFIG_OPENCL}" 274PACKAGECONFIG:append = " ${PACKAGECONFIG_OPENCL}"
275 275
276PACKAGECONFIG[openvx] = "-DWITH_OPENVX=ON -DOPENVX_ROOT=${STAGING_LIBDIR} -DOPENVX_LIB_CANDIDATES='OpenVX;OpenVXU',-DWITH_OPENVX=OFF,virtual/libopenvx," 276PACKAGECONFIG[openvx] = "-DWITH_OPENVX=ON -DOPENVX_ROOT=${STAGING_LIBDIR} -DOPENVX_LIB_CANDIDATES='OpenVX;OpenVXU',-DWITH_OPENVX=OFF,virtual/libopenvx,"
277PACKAGECONFIG[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," 277PACKAGECONFIG[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,"
278PACKAGECONFIG[tests-imx] = "-DINSTALL_TESTS=ON -DOPENCV_TEST_DATA_PATH=${S}/../extra/testdata, -DINSTALL_TESTS=OFF," 278PACKAGECONFIG[tests-imx] = "-DINSTALL_TESTS=ON -DOPENCV_TEST_DATA_PATH=${S}/../extra/testdata, -DINSTALL_TESTS=OFF,"
279 279
280do_unpack_extra_append() { 280do_unpack_extra:append() {
281 mkdir -p ${S}/3rdparty/tinydnn/ 281 mkdir -p ${S}/3rdparty/tinydnn/
282 tar xzf ${WORKDIR}/v1.0.0a3.tar.gz -C ${S}/3rdparty/tinydnn/ 282 tar xzf ${WORKDIR}/v1.0.0a3.tar.gz -C ${S}/3rdparty/tinydnn/
283} 283}
284 284
285do_install_append() { 285do_install:append() {
286 ln -sf opencv4/opencv2 ${D}${includedir}/opencv2 286 ln -sf opencv4/opencv2 ${D}${includedir}/opencv2
287 install -d ${D}${datadir}/OpenCV/samples/data 287 install -d ${D}${datadir}/OpenCV/samples/data
288 cp -r ${S}/samples/data/* ${D}${datadir}/OpenCV/samples/data 288 cp -r ${S}/samples/data/* ${D}${datadir}/OpenCV/samples/data
@@ -293,7 +293,7 @@ do_install_append() {
293 fi 293 fi
294} 294}
295 295
296FILES_${PN}-samples += "${datadir}/OpenCV/samples" 296FILES:${PN}-samples += "${datadir}/OpenCV/samples"
297 297
298COMPATIBLE_MACHINE = "(mx8)" 298COMPATIBLE_MACHINE = "(mx8)"
299 299