summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG87
-rw-r--r--MAINTAINERS32
-rw-r--r--README432
-rw-r--r--README.md36
-rw-r--r--README.sources17
-rw-r--r--SECURITY.md6
-rw-r--r--classes/uefi-comboapp.bbclass151
-rw-r--r--classes/uefi-sign.bbclass50
-rw-r--r--conf/include/maintainers.inc64
-rw-r--r--conf/layer.conf24
-rw-r--r--conf/machine/include/intel-common-pkgarch.inc26
-rw-r--r--conf/machine/include/intel-core2-32-common.inc4
-rw-r--r--conf/machine/include/intel-corei7-64-common.inc4
-rw-r--r--conf/machine/include/meta-intel.inc30
-rw-r--r--conf/machine/include/qemu-intel.inc2
-rw-r--r--conf/machine/include/qemuboot-intel.inc23
-rw-r--r--conf/machine/intel-core2-32.conf9
-rw-r--r--conf/machine/intel-corei7-64.conf14
-rw-r--r--conf/machine/intel-skylake-64.conf36
-rw-r--r--custom-licenses/ACE-TAO-CIAO111
-rw-r--r--custom-licenses/EULA392
-rw-r--r--custom-licenses/ISSL73
-rw-r--r--custom-licenses/syrah32
-rw-r--r--documentation/building_and_booting.md134
-rw-r--r--documentation/dpcpp-compiler.md107
-rw-r--r--documentation/openvino.md92
-rw-r--r--documentation/reporting_bugs.md22
-rw-r--r--documentation/secureboot/README38
-rw-r--r--documentation/submitting_patches.md26
-rw-r--r--documentation/tested_hardware.md21
-rwxr-xr-xdynamic-layers/clang-layer/recipes-core/dnn/files/run-ptest15
-rw-r--r--dynamic-layers/clang-layer/recipes-core/dnn/onednn_3.5.3.bb57
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/clang_%.bbappend13
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-OpenCL-Change-type-of-block-pointer-for-OpenCL.patch156
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-Update-LowerOpenCL-pass-to-handle-new-blocks-represn.patch1119
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-dont-export-targets-for-binaries.patch66
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-point-to-correct-clang.patch59
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/files/0002-OpenCL-Simplify-LLVM-IR-generated-for-OpenCL-blocks.patch294
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/files/0003-OpenCL-Fix-assertion-due-to-blocks.patch61
-rw-r--r--dynamic-layers/clang-layer/recipes-devtools/clang/llvm-project-source.bbappend16
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0002-Build-not-able-to-locate-cpp_generation_tool.patch41
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0003-external-ocloc.patch38
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_25.13.33276.16.bb63
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch32
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-Build-not-able-to-locate-BiFManager-bin.patch27
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch30
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch23
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch33
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_2.10.10.bb79
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch49
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch60
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc34
-rw-r--r--dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb5
-rw-r--r--dynamic-layers/openembedded-layer/recipes-bsp/amt/files/0001-LMS-fix-build-issue-with-gcc-15.patch32
-rw-r--r--dynamic-layers/openembedded-layer/recipes-bsp/amt/files/lms_drop_rpath_1921.0.0.0.diff31
-rw-r--r--dynamic-layers/openembedded-layer/recipes-bsp/amt/lms_1921.0.0.0.bb39
-rw-r--r--dynamic-layers/openembedded-layer/recipes-bsp/amt/lms_2406.0.0.0.bb45
-rw-r--r--dynamic-layers/openembedded-layer/recipes-bsp/thermald/thermald_2.5.8.bb (renamed from recipes-bsp/thermald/thermald_1.8.bb)33
-rw-r--r--dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0001-Add-print-function-to-print-test-run-status-in-ptest.patch53
-rw-r--r--dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0001-Fix-QA-Issues.patch36
-rw-r--r--dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0002-cmake-don-t-build-for-32-bit-targets.patch52
-rw-r--r--dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/run-ptest2
-rw-r--r--dynamic-layers/openembedded-layer/recipes-core/ispc/ispc_1.24.0.bb64
-rw-r--r--dynamic-layers/openembedded-layer/recipes-core/levelzero/level-zero_1.21.1.bb33
-rw-r--r--dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0001-Fix-the-compilation-warning-when-using-gcc-13-25.patch99
-rw-r--r--dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0001-linux-npu-driver-fix-multilib-install-issue.patch28
-rw-r--r--dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0002-Fix-compilation-failure-with-GCC-14.patch110
-rw-r--r--dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver_1.17.0.bb45
-rw-r--r--dynamic-layers/openembedded-layer/recipes-oneapi/dpcpp-compiler/intel-oneapi-dpcpp-cpp-runtime_2024.0.0-49819.bb54
-rw-r--r--dynamic-layers/openembedded-layer/recipes-oneapi/dpcpp-compiler/intel-oneapi-dpcpp-cpp_2024.0.0-49819.bb45
-rw-r--r--dynamic-layers/openembedded-layer/recipes-oneapi/embree/embree_4.3.3.bb32
-rw-r--r--dynamic-layers/openembedded-layer/recipes-oneapi/ipp/intel-oneapi-ipp_2021.10.0-653.bb35
-rw-r--r--dynamic-layers/openembedded-layer/recipes-oneapi/mkl/intel-oneapi-mkl_2024.0.0-49656.bb74
-rw-r--r--dynamic-layers/openembedded-layer/recipes-oneapi/oidn/oidn_2.1.0.bb27
-rw-r--r--dynamic-layers/openembedded-layer/recipes-oneapi/openvkl/openvkl_2.0.1.bb42
-rw-r--r--dynamic-layers/openembedded-layer/recipes-oneapi/ospray/ospray/0001-Fix-GCC11-Compile-Error-in-benchmark_register.h.patch28
-rw-r--r--dynamic-layers/openembedded-layer/recipes-oneapi/ospray/ospray_3.2.0.bb37
-rw-r--r--dynamic-layers/openembedded-layer/recipes-oneapi/rkcommon/rkcommon_1.14.0.bb19
-rw-r--r--dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/0001-CMakeLists-disable-Werror.patch38
-rw-r--r--dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/0001-Ignore-STATIC_ASSERTs-and-NULL-define-for-os-and-ut-builds.patch62
-rw-r--r--dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl_03.00.00.0499.bb47
-rw-r--r--lib/oeqa/runtime/cases/cyclictest.py39
-rw-r--r--lib/oeqa/runtime/cases/intel_mediasdk.py34
-rw-r--r--lib/oeqa/runtime/cases/intel_vaapi_driver.py27
-rw-r--r--lib/oeqa/runtime/cases/isal.py24
-rw-r--r--lib/oeqa/runtime/cases/libipt.py23
-rw-r--r--lib/oeqa/runtime/cases/libxcam.py37
-rw-r--r--lib/oeqa/runtime/cases/microcode.py31
-rw-r--r--lib/oeqa/runtime/cases/mkl_dnn.py67
-rw-r--r--lib/oeqa/runtime/cases/parselogs-ignores-intel-core2-32.txt9
-rw-r--r--lib/oeqa/runtime/cases/parselogs-ignores-intel-corei7-64.txt14
-rw-r--r--lib/oeqa/runtime/cases/thermald.py47
-rw-r--r--lib/oeqa/runtime/miutils/targets/oeqatarget.py11
-rw-r--r--lib/oeqa/runtime/miutils/tests/mkl_dnn_test.py55
-rw-r--r--lib/oeqa/selftest/cases/secureboot.py176
-rw-r--r--recipes-bsp/ace/ace_6.5.3.bb37
-rw-r--r--recipes-bsp/ace/files/ace_config.patch12
-rw-r--r--recipes-bsp/formfactor/formfactor_0.0.bbappend2
-rw-r--r--recipes-bsp/gma500-gfx-check/gma500-gfx-check/gma500-gfx-check.conf2
-rw-r--r--recipes-bsp/gma500-gfx-check/gma500-gfx-check/gma500-gfx-check.sh15
-rw-r--r--recipes-bsp/gma500-gfx-check/gma500-gfx-check_1.0.bb18
-rw-r--r--recipes-bsp/intel-cmt-cat/intel-cmt-cat_25.04.bb29
-rw-r--r--recipes-bsp/metee/metee_3.2.4.bb (renamed from recipes-bsp/metee/metee_2.1.0.bb)7
-rw-r--r--recipes-bsp/systemd-boot/systemd-boot_%.bbappend9
-rw-r--r--recipes-bsp/thermald/thermald/0001-Use-correct-format-specifier-for-size_t.patch37
-rw-r--r--recipes-core/images/core-image-minimal-initramfs.bbappend2
-rw-r--r--recipes-core/images/core-image-tiny.bb4
-rw-r--r--recipes-core/libxcam/libxcam/0001-fake_v4l2_device.h-fix-narrowing-warning.patch94
-rw-r--r--recipes-core/libxcam/libxcam_1.5.0.bb39
-rw-r--r--recipes-core/meta/icx-environment.inc15
-rw-r--r--recipes-core/meta/meta-environment-extsdk.bbappend3
-rw-r--r--recipes-core/meta/meta-environment.bbappend3
-rw-r--r--recipes-core/microcode/intel-microcode_20250512.bb (renamed from recipes-core/microcode/intel-microcode_20190618.bb)25
-rw-r--r--recipes-core/microcode/iucode-tool_2.3.1.bb6
-rw-r--r--recipes-core/mkl-dnn/mkl-dnn_git.bb25
-rw-r--r--recipes-core/ovmf/files/0001-ovmf-RefkitTestCA-TEST-UEFI-SecureBoot.patch105
-rw-r--r--recipes-core/ovmf/ovmf-shell-image-enrollkeys.bb13
-rw-r--r--recipes-core/ovmf/ovmf_%.bbappend6
-rw-r--r--recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend1
-rw-r--r--recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend1
-rw-r--r--recipes-core/zlib/zlib-intel_1.2.11.1_jtkv6.3.bb16
-rw-r--r--recipes-devtools/opencl/opencl-clang-native_8.0.0.bb25
-rw-r--r--recipes-devtools/slimboot/slimboot-tools_git.bb22
-rw-r--r--recipes-graphics/gmmlib/gmmlib_22.7.1.bb (renamed from recipes-graphics/gmmlib/gmmlib_19.1.2.bb)10
-rw-r--r--recipes-graphics/hdcp/hdcp/0001-main-fix-hdcpd-service-failure.patch42
-rw-r--r--recipes-graphics/hdcp/hdcp_21.2.0.bb26
-rw-r--r--recipes-graphics/igt-gpu-tools/files/0001-lib-fb-Fix-rgb24-to-nv12-conversion.patch40
-rw-r--r--recipes-graphics/igt-gpu-tools/igt-gpu-tools_1.23.bb44
-rw-r--r--recipes-graphics/libva/libva-intel-utils_2.22.0.bb35
-rw-r--r--recipes-graphics/libva/libva-intel_2.22.0.bb56
-rw-r--r--recipes-graphics/metrics-discovery/metrics-discovery_1.13.178.bb (renamed from recipes-graphics/metrics-discovery/metrics-discovery_1.5.102.bb)7
-rw-r--r--recipes-graphics/xorg-driver/xf86-video-ast_1.1.6.bb (renamed from recipes-graphics/xorg-driver/xf86-video-ast_1.1.5.bb)4
-rw-r--r--recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-skip-host-depmod.patch31
-rw-r--r--recipes-kernel/intel-ethernet/ixgbe_5.20.10.bb (renamed from recipes-kernel/intel-ethernet/ixgbe_5.5.5.bb)27
-rw-r--r--recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-skip-host-depmod.patch31
-rw-r--r--recipes-kernel/intel-ethernet/ixgbevf_4.19.10.bb (renamed from recipes-kernel/intel-ethernet/ixgbevf_4.5.3.bb)27
-rw-r--r--recipes-kernel/iwlwifi/backport-iwlwifi_git.bb24
-rw-r--r--recipes-kernel/linux/linux-intel-dev.bb35
-rw-r--r--recipes-kernel/linux/linux-intel-rt_4.14.bb24
-rw-r--r--recipes-kernel/linux/linux-intel-rt_4.19.bb24
-rw-r--r--recipes-kernel/linux/linux-intel-rt_6.12.bb35
-rw-r--r--recipes-kernel/linux/linux-intel.inc19
-rw-r--r--recipes-kernel/linux/linux-intel/0001-6.12-lib-build_OID_registry-fix-reproducibility-issues.patch48
-rw-r--r--recipes-kernel/linux/linux-intel/0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch62
-rw-r--r--recipes-kernel/linux/linux-intel/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch30
-rw-r--r--recipes-kernel/linux/linux-intel/0001-perf-x86-32-explicitly-include-errno.h.patch41
-rw-r--r--recipes-kernel/linux/linux-intel/0002-mconf-fix-output-of-cflags-and-libraries.patch40
-rw-r--r--recipes-kernel/linux/linux-intel/disable_skylake_sound.cfg12
-rw-r--r--recipes-kernel/linux/linux-intel/fix-perf-reproducibility.patch39
-rw-r--r--recipes-kernel/linux/linux-intel_4.14.bb22
-rw-r--r--recipes-kernel/linux/linux-intel_4.19.bb21
-rw-r--r--recipes-kernel/linux/linux-intel_6.12.bb25
-rw-r--r--recipes-kernel/linux/linux-yocto-dev.bbappend22
-rw-r--r--recipes-kernel/linux/linux-yocto-rt_%.bbappend (renamed from recipes-kernel/linux/linux-yocto-rt_4.19.bbappend)0
-rw-r--r--recipes-kernel/linux/linux-yocto-rt_5.0.bbappend1
-rw-r--r--recipes-kernel/linux/linux-yocto_%.bbappend4
-rw-r--r--recipes-kernel/linux/linux-yocto_4.19.bbappend1
-rw-r--r--recipes-kernel/linux/linux-yocto_5.0.bbappend1
-rw-r--r--recipes-kernel/linux/meta-intel-compat-kernel.inc11
-rw-r--r--recipes-multimedia/itt/itt/0001-CMakeLists.txt-set-output-directory-path.patch33
-rw-r--r--recipes-multimedia/itt/itt_17.0.bb30
-rw-r--r--recipes-multimedia/itt/itt_3.26.1.bb33
-rw-r--r--recipes-multimedia/libva/files/0003-Force-ARGB-surface-to-tile4-for-ACM.patch44
-rw-r--r--recipes-multimedia/libva/files/0004-Fix-failed-4k-videowalll-test-case-and-color-corrupt.patch85
-rw-r--r--recipes-multimedia/libva/intel-media-driver/0001-linux-fix-build-when-using-musl.patch28
-rw-r--r--recipes-multimedia/libva/intel-media-driver_25.1.4.bb (renamed from recipes-multimedia/libva/intel-media-driver_19.1.0.bb)37
-rw-r--r--recipes-multimedia/libva/intel-vaapi-driver_2.4.1.bb (renamed from recipes-multimedia/libva/intel-vaapi-driver_2.3.0.bb)19
-rw-r--r--recipes-multimedia/libyami/libyami-utils/0001-Fix-build-with-clang.patch96
-rw-r--r--recipes-multimedia/libyami/libyami-utils_1.3.1.bb26
-rw-r--r--recipes-multimedia/libyami/libyami/0001-bitWriter.cpp-Delete-unused-CACHEBYTES.patch27
-rw-r--r--recipes-multimedia/libyami/libyami/0002-typecast-index-from-size_t-to-int.patch42
-rw-r--r--recipes-multimedia/libyami/libyami/0003-Add-Wno-invalid-offsetof-to-compiler-commandline.patch29
-rw-r--r--recipes-multimedia/libyami/libyami/0004-Typecast-POWER32SUB2-to-uint8_t.patch33
-rw-r--r--recipes-multimedia/libyami/libyami/0006-Avoid-namespace-conflicts-by-adding-explicit-using-n.patch41
-rw-r--r--recipes-multimedia/libyami/libyami/0007-Delete-unused-variables.patch36
-rw-r--r--recipes-multimedia/libyami/libyami/0008-NalUnit-is-declared-in-different-namespace.patch31
-rw-r--r--recipes-multimedia/libyami/libyami/0009-Fix-clang-warnings.patch37
-rw-r--r--recipes-multimedia/libyami/libyami/0010-h26xparser-Fix-build-error-with-GCC9.patch157
-rw-r--r--recipes-multimedia/libyami/libyami_1.3.1.bb31
-rw-r--r--recipes-multimedia/mediasdk/intel-mediasdk_19.1.0.bb38
-rw-r--r--recipes-multimedia/vpl/files/0001-Add-cstdint-header-to-resolve-build-issue-with-gcc-1.patch34
-rw-r--r--recipes-multimedia/vpl/files/0001-Update-vpl-inspect-to-remove-ReportedStats.patch73
-rw-r--r--recipes-multimedia/vpl/files/0001-vpl.pc.in-dont-pass-pcfiledir-to-cflags.patch25
-rw-r--r--recipes-multimedia/vpl/libvpl-tools_1.3.0.bb44
-rw-r--r--recipes-multimedia/vpl/libvpl_2.14.0.bb44
-rw-r--r--recipes-multimedia/vpl/vpl-gpu-rt_25.1.4.bb33
-rw-r--r--recipes-oneapi/crypto/intel-crypto-mb/0001-CMakeLists.txt-exclude-host-system-headers.patch27
-rw-r--r--recipes-oneapi/crypto/intel-crypto-mb/0001-crypto-mb-Make-sure-libs-are-installed-correctly.patch42
-rw-r--r--recipes-oneapi/crypto/intel-crypto-mb/0002-cmake-exclude-Yocto-build-flags.patch45
-rw-r--r--recipes-oneapi/crypto/intel-crypto-mb_2021.12.1.bb28
-rw-r--r--recipes-oneapi/onedpl/onedpl_2022.8.0.bb26
-rw-r--r--recipes-oneapi/setup-oneapi-env/files/intel-oneapi-runtime.conf4
-rw-r--r--recipes-oneapi/setup-oneapi-env/setup-intel-oneapi-env_2023.0.0-25370.bb23
-rw-r--r--recipes-opencl/igc/files/0001-Fix-for-the-gcc-9-issue.patch76
-rw-r--r--recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch39
-rw-r--r--recipes-opencl/igc/intel-graphics-compiler_1.0.6.bb27
-rw-r--r--recipes-rt/images/core-image-rt-sdk.bb2
-rw-r--r--recipes-selftest/images/files/incorrect.crt19
-rw-r--r--recipes-selftest/images/files/incorrect.key27
-rw-r--r--recipes-selftest/images/files/refkit-db.crt18
-rw-r--r--recipes-selftest/images/files/refkit-db.key28
-rw-r--r--recipes-selftest/images/secureboot-selftest-image-signed.bb6
-rw-r--r--recipes-selftest/images/secureboot-selftest-image-unsigned.bb20
-rw-r--r--recipes-support/isa-l/isa-l_2.31.1.bb19
-rwxr-xr-xrecipes-support/jhi/jhi_1.33.bb65
-rw-r--r--recipes-support/libipt/libipt_2.1.2.bb34
-rw-r--r--recipes-support/sbsigntool/sbsigntool-native_git.bb80
-rw-r--r--recipes-support/sbsigntool/sbsigntool/0001-configure-Fixup-build-dependencies-for-cross-compili.patch54
-rw-r--r--wic/grub-bootdisk-microcode.wks.in2
-rw-r--r--wic/image-installer.wks.in2
-rw-r--r--wic/systemd-bootdisk-microcode.wks.in2
211 files changed, 4636 insertions, 5060 deletions
diff --git a/CHANGELOG b/CHANGELOG
deleted file mode 100644
index a99cbb1f..00000000
--- a/CHANGELOG
+++ /dev/null
@@ -1,87 +0,0 @@
1This file will only list major changes that occur within a release.
2For a full list of changes, view the git log of the repository.
3
4Rocko Release 11/2017
5=====================
6
7Moved qat support to separate layer
8-----------------------------------
9Quick Assist Technology (QAT) is more middleware and should not be part of the
10core BSP. The new layer can be found here:
11https://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-qat/
12
13Moved dpdk support to separate layer
14------------------------------------
15We had some requests to make DPDK standalone so that it could be included
16without bringing in anything else from meta-intel, as it is not specific to
17Intel(R) hardware. The new layer is located here:
18https://git.yoctoproject.org/cgit/cgit.cgi/meta-dpdk/
19
20Added support for out-of-tree iwlwifi drivers
21---------------------------------------------
22Backport-iwlwifi out-of-tree wifi modules are now available via meta-intel.
23Backport-iwlwifi brings the latest iwlwifi drivers to almost any kernel
24Note that mac80211 and cfg80211 backports are also necessary, which will most
25likely cause incompatibility with other in-tree wifi drivers.
26See https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi for more info.
27
28Added support for out-of-tree ixgbe drivers
29-------------------------------------------
30The out-of-tree ixgbe drivers bring ixgbe support to nearly any kernel. See
31here: http://www.intel.com/network/connectivity/products/server_adapters.htm
32
33Added an implementation of Secure Boot
34--------------------------------------
35meta-intel now supports a simple Secure Boot implementation. This implementation
36consists of a single binary consisting of an EFI stub, the kernel, an
37initrd, and a kernel command line. The binary is then signed via keys defined by
38the variables SECUREBOOT_SIGNING_KEY and SECUREBOOT_SIGNING_CERT. These keys
39should match the keys embedded in your hardware's firmware.
40See documentation/secureboot/README for more information on this feature.
41
42Improved Yocto Project Compatibility status
43-------------------------------------------
44The common layer should now be considered Yocto Project compatible - it should
45no longer modify OE-core values when adding the layer to your bblayers.conf.
46The meta-tlk layer is still not Yocto Project compatible, however.
47
48Pyro Release 5/2017
49===================
50
51Changed default kernel provider from linux-yocto to linux-intel.
52----------------------------------------------------------------
53Linux-intel is an Intel(R)-maintained kernel based on the latest stable
54branch, along with backports from upstream to better support Intel(R)
55hardware. The intel-linux kernel also has a branch with the preempt-rt
56patches applied, providing a preempt-rt kernel with no additional work.
57
58Added QEMU support.
59-------------------
60We now build several virtio drivers into the kernel by default, and
61have qemuboot.conf files for intel-corei7-64 and intel-core2-32
62targets. This allows one to do basic testing on meta-intel images
63without having to use hardware. The virtio drivers are added via
64KERNEL_FEATURES_INTEL_COMMON. This prevents them from being added to
65custom kernels by default. They can be removed by adding the
66following to a conf or kernel bbappend file:
67 KERNEL_FEATURES_INTEL_COMMON_remove = “cfg/virtio.scc”
68OVMF firmware is also built and can be used in order to emulate a UEFI
69environment. A full runqemu command line for intel-corei7-64 could look
70like this:
71 runqemu core-image-minimal intel-corei7-64 wic ovmf
72
73Musl support
74------------
75Meta-intel is now compatible with the musl C library. You can specify musl
76As your C library by adding the following to your local.conf:
77 TCLIBC = “musl”
78Note: there is a known failure with DPDK.
79
80X32 support
81-----------
82The meta-intel layer can now build with the x32 tune settings in a multi-lib
83setting, it will not work in as the primary MACHINE tune as the bootloader needs
84to be built as a 64bit binary. The setup for this would be as follows:
85 require conf/multilib.conf
86 MULTILIBS = "multilib:libx32
87 DEFAULTTUNE_virtclass-multilib-libx32 = "corei7-64-x32"
diff --git a/MAINTAINERS b/MAINTAINERS
deleted file mode 100644
index 73a9fe3a..00000000
--- a/MAINTAINERS
+++ /dev/null
@@ -1,32 +0,0 @@
1This file contains a list of BSP maintainers for the BSPs contained in
2the meta-intel repository.
3
4The purpose of this file is to provide contact information for
5specific BSPs and other code contained within meta-intel. You should
6address questions and patches for a particular BSP or other code to
7the appropriate maintainer listed in this file, cc'ing the meta-intel
8mailing list. This ensures that your question or patch will be
9addressed by the appropriate person, and that it will be seen by other
10users who may be facing similar problems or questions.
11
12Please see the top-level README file for guidelines relating to the
13details of submitting patches, reporting problems, or asking questions
14about any of the BSPs or other recipes contained within meta-intel.
15
16Descriptions of section entries:
17
18 M: Mail patches to: FullName <address@domain>
19 F: Files and directories with wildcard patterns.
20 A trailing slash includes all files and subdirectory files.
21 F: common/ all files in and below common
22 F: common/* all files in common, but not below
23 One pattern per line. Multiple F: lines acceptable.
24
25Please keep this list in alphabetical order.
26
27Maintainers List (try to look for most precise areas first)
28
29 -----------------------------------
30
31M: Anuj Mittal <anuj.mittal@intel.com>
32F: *
diff --git a/README b/README
deleted file mode 100644
index fef16673..00000000
--- a/README
+++ /dev/null
@@ -1,432 +0,0 @@
1meta-intel
2==========
3
4This README file contains information on building and booting
5meta-intel BSP layers. Please see the corresponding sections below
6for details.
7
8
9Yocto Project Compatible
10========================
11
12The BSPs contained in this layer are compatible with the Yocto Project
13as per the requirements listed here:
14
15 https://www.yoctoproject.org/webform/yocto-project-compatible-registration
16
17
18Dependencies
19============
20
21This layer depends on:
22
23 URI: git://git.openembedded.org/bitbake
24
25 URI: git://git.openembedded.org/openembedded-core
26 layers: meta
27 branch: master
28
29
30Table of Contents
31=================
32
33 I. Overview
34 II. Building and booting meta-intel BSP layers
35 a. Building the intel-common BSP layers
36 b. Booting the intel-common BSP images
37 III. Technical Miscellany
38 Benefits of using meta-intel
39 The intel-common kernel package architecture
40 Intel-specific machine features
41 IV. Tested Hardware
42 V. Guidelines for submitting patches
43
44
45I. Overview
46===========
47
48This is the location for Intel-maintained BSPs.
49
50For details on the intel-common, see the information below.
51
52For all others, please see the README files contained in the
53individual BSP layers for BSP-specific information.
54
55If you have problems with or questions about a particular BSP, please
56contact the maintainer listed in the MAINTAINERS file directly (cc:ing
57the Yocto mailing list puts it in the archive and helps other people
58who might have the same questions in the future), but please try to do
59the following first:
60
61 - look in the Yocto Project Bugzilla
62 (http://bugzilla.yoctoproject.org/) to see if a problem has
63 already been reported
64
65 - look through recent entries of the meta-intel
66 (https://lists.yoctoproject.org/pipermail/meta-intel/) and Yocto
67 (https://lists.yoctoproject.org/pipermail/yocto/) mailing list
68 archives to see if other people have run into similar problems or
69 had similar questions answered.
70
71If you believe you have encountered a bug, you can open a new bug and
72enter the details in the Yocto Project Bugzilla
73(http://bugzilla.yoctoproject.org/). If you're relatively certain
74that it's a bug against the BSP itself, please use the 'Yocto Project
75Components: BSPs | meta-intel' category for the bug; otherwise, please
76submit the bug against the most likely category for the problem - if
77you're wrong, it's not a big deal and the bug will be recategorized
78upon triage.
79
80
81II. Building and booting meta-intel BSP layers
82==============================================
83
84The following sections contain information on building and booting the
85BSPs contained in the meta-intel layer.
86
87Note that these instructions specifically cover the intel-common, which
88may or may not be applicable to other BSPs contained in this layer - if
89a given BSP contains its own README, that version should be used instead,
90and these instructions can be ignored.
91
92a. Building the intel-common BSP layers
93-------------------------------------------------
94
95In order to build an image with BSP support for a given release, you
96need to download the corresponding BSP tarball from the 'Board Support
97Package (BSP) Downloads' page of the Yocto Project website (or
98equivalently, check out the appropriate branch from the meta-intel git
99repository, see below). For the intel-common BSPs, those tarballs would
100correspond to the following choices in the BSP downloads section:
101
102 - Intel-core2-32 Intel® Common Core BSP (Intel-core2-32)
103 - Intel-corei7-64 Intel® Common Core BSP (Intel-corei7-64)
104
105The intel-* BSPs, also known as the intel-common BSPs, provide a few
106carefully selected tune options and generic hardware support to cover
107the majority of current Intel CPUs and devices. The naming follows the
108convention of intel-<TUNE>-<BITS>, where TUNE is the gcc cpu-type
109(used with mtune and march typically) and BITS is either 32 bit or 64
110bit.
111
112Having done that, and assuming you extracted the BSP tarball contents
113at the top-level of your yocto build tree, you can build a BSP image
114by adding the location of the meta-intel layer to bblayers.conf e.g.:
115
116 yocto/meta-intel \
117
118To enable a particular machine, you need to add a MACHINE line naming
119the BSP to the local.conf file:
120
121 MACHINE ?= "xxx"
122
123where 'xxx' is replaced by one of the following BSP names:
124
125 - intel-core2-32
126
127 This BSP is optimized for the Core2 family of CPUs as well as all
128 Atom CPUs prior to the Silvermont core.
129
130 - intel-corei7-64
131
132 This BSP is optimized for Nehalem and later Core and Xeon CPUs as
133 well as Silvermont and later Atom CPUs, such as the Baytrail SoCs.
134
135You should then be able to build an image as such:
136
137 $ source oe-init-build-env
138 $ bitbake core-image-sato
139
140At the end of a successful build, you should have an image that
141you can boot from a USB flash drive (see instructions on how to do
142that below, in the section 'Booting the intel-common BSP images').
143
144As an alternative to downloading the BSP tarball, you can also work
145directly from the meta-intel git repository. For each BSP in the
146'meta-intel' repository, there are multiple branches, one
147corresponding to each major release starting with 'laverne' (0.90), in
148addition to the latest code which tracks the current master (note that
149not all BSPs are present in every release). Instead of extracting
150a BSP tarball at the top level of your yocto build tree, you can
151equivalently check out the appropriate branch from the meta-intel
152repository at the same location.
153
154b. Booting the intel-common BSP images
155--------------------------------------
156
157If you've built your own image, either from the downloaded BSP layer
158or from the meta-intel git repository, you'll find the bootable
159image in the build/tmp/deploy/images/xxx directory, where again
160'xxx' refers to the machine name used in the build.
161
162Under Linux, insert a USB flash drive. Assuming the USB flash drive
163takes device /dev/sdf, use dd to copy the image to it. Before the image
164can be burned onto a USB drive, it should be un-mounted. Some Linux distros
165may automatically mount a USB drive when it is plugged in. Using USB device
166/dev/sdf as an example, find all mounted partitions:
167
168 $ mount | grep sdf
169
170and un-mount those that are mounted, for example:
171
172 $ umount /dev/sdf1
173 $ umount /dev/sdf2
174
175Now burn the image onto the USB drive:
176
177 $ sudo dd if=core-image-sato-intel-corei7-64.wic of=/dev/sdf status=progress
178 $ sync
179 $ eject /dev/sdf
180
181This should give you a bootable USB flash device. Insert the device
182into a bootable USB socket on the target, and power on. This should
183result in a system booted to the Sato graphical desktop.
184
185If you want a terminal, use the arrows at the top of the UI to move to
186different pages of available applications, one of which is named
187'Terminal'. Clicking that should give you a root terminal.
188
189If you want to ssh into the system, you can use the root terminal to
190ifconfig the IP address and use that to ssh in. The root password is
191empty, so to log in type 'root' for the user name and hit 'Enter' at
192the Password prompt: and you should be in.
193
194If you find you're getting corrupt images on the USB (it doesn't show
195the syslinux boot: prompt, or the boot: prompt contains strange
196characters), try doing this first:
197
198 $ dd if=/dev/zero of=/dev/sdf bs=1M count=512
199
200III. Technical Miscellany
201=========================
202
203Benefits of using meta-intel
204----------------------------
205
206Using meta-intel has the following benefits over a generic BSP:
207
208tune flags
209++++++++++
210intel-* MACHINEs each have different compilation flags appropriate for their
211targeted hardware sets. intel-corei7-64 has tune flags appropriate for modern
21264-bit Intel Core i microarchitecture, and includes instruction sets up to
213SSE4.2. intel-core2-32 has tune flags appropriate for legacy 32-bit Intel Core2
214microarchitecture, and includes instruction sets up to SSE3.
215
216linux-intel kernel
217++++++++++++++++++
218The linux-intel kernel is an initiative to bring better Intel(R) hardware
219support to the current LTS linux kernel. It contains a base LTS kernel with
220additional backports from upstream Intel drivers. In addition, a default kernel
221config containing most features found on Intel boards is supplied via the
222yocto-kernel-cache.
223
224graphics stack
225++++++++++++++
226Meta-intel provides the latest Intel Graphics Linux Stack drivers to support
227Intel hardware as defined by the https://01.org/linuxgraphics.
228
229Other software
230++++++++++++++
231 * intel ucode - provides the latest microcode updates for Intel processors
232
233 * thermald - which proactively controls thermal, using P-states, T-states, and
234the Intel power clamp driver.
235(https://01.org/linux-thermal-daemon/documentation/introduction-thermal-daemon)
236
237The intel-common kernel package architecture
238--------------------------------------------
239
240These BSPs use what we call the intel-common Linux kernel package
241architecture. This includes core2-32-intel-common and
242corei7-64-intel-common. These kernel packages can also be used by any
243of the BSPs in meta-intel that choose to include the
244intel-common-pkgarch.inc file.
245
246To minimize the proliferation of vendor trees, reduce the sources we
247must support, and consolidate QA efforts, all BSP maintainers are
248encouraged to make use of the intel-common Linux kernel package
249architecture.
250
251Intel-specific machine features
252-------------------------------
253
254The meta-intel layer makes some additional machine features available
255to BSPs. These machine features can be used in a BSP layer in the
256same way that machine features are used in other layers based on
257oe-core, via the MACHINE_FEATURES variable.
258
259Requirements
260++++++++++++
261
262The meta-intel-specific machine features are only available to a BSP
263when the meta-intel layer is included in the build configuration, and
264the meta-intel.inc file is included in the machine configuration of
265that BSP.
266
267To make these features available for your machine, you will need to:
268
269 1. include a configuration line such as the below in bblayers.conf
270 BBLAYERS += "<local path>/meta-intel"
271 2. include the following line in the machine configuration file
272 require conf/machine/include/meta-intel.inc
273
274Once the above requirements are met, the machine features provided by
275the meta-intel layer will be available for the BSP to use.
276
277Available machine features
278++++++++++++++++++++++++++
279
280Currently, the meta-intel layer makes the following set of
281Intel-specific machine features available:
282
283 * intel-ucode
284
285These machine features can be included by listing them in the
286MACHINE_FEATURES variable in the machine configuration file. For
287example:
288
289 MACHINE_FEATURES += "intel-ucode"
290
291Machine feature details
292+++++++++++++++++++++++
293
294 * intel-ucode
295
296 This feature provides support for microcode updates to Intel
297 processors. The intel-ucode feature runs at early boot and uses
298 the microcode data file added by the feature into the BSP's
299 initrd. It also puts the userland microcode-updating tool,
300 iucode_tool, into the target images along with the microcode data
301 file.
302
303 Q. Why might a user want to enable the intel-ucode feature?
304
305 A. Intel releases microcode updates to correct processor behavior
306 as documented in the respective processor specification
307 updates. While the normal approach to getting such microcode
308 updates is via a BIOS upgrade, this can be an administrative
309 hassle and not always possible in the field. The intel-ucode
310 feature enables the microcode update capability present in the
311 Linux kernel. It provides an easy path for upgrading processor
312 microcode without the need to change the BIOS. If the feature
313 is enabled, it is also possible to update the existing target
314 images with a newer microcode update in the future.
315
316 Q. How would a user bundle only target-specific microcode in the
317 target image?
318
319 A. The Intel microcode data file released by Intel contains
320 microcode updates for multiple processors. If the BSP image is
321 meant to run on only a certain subset of processor types, a
322 processor-specific subset of microcode can be bundled into the
323 target image via the UCODE_FILTER_PARAMETERS variable. This
324 works by listing a sequence of iucode-tool parameters in the
325 UCODE_FILTER_PARAMETERS variable, which in this case will
326 select only the specific microcode relevant to the BSP. For
327 more information on the underlying parameters refer to the
328 iucode-tool manual page at http://manned.org/iucode-tool
329
330 To define a set of parameters for microcode-filtering via the
331 UCODE_FILTER_PARAMETERS variable, one needs to identify the
332 cpuid signatures of all the processors the BSP is meant to run
333 on. One way to determine the cpuid signature for a specific
334 processor is to build and run an intel-ucode-feature-enabled
335 image on the target hardware, without first assigning any value
336 to the UCODE_FILTER_PARAMETERS variable, and then once the
337 image is booted, run the "ucode_tool -S" command to have the
338 ucode tool scan the system for processor signatures. These
339 signatures can then be used in the UCODE_FILTER_PARAMETERS
340 variable in conjunction with -s parameter. For example, for
341 the fri2 BSP, the cpuid can be determined as such:
342
343 [root@fri2 ~]# iucode_tool -S
344 iucode_tool: system has processor(s) with signature 0x00020661
345
346 Given that output, a suitable UCODE_FILTER_PARAMETERS variable
347 definition could be specified in the machine configuration as
348 such:
349
350 UCODE_FILTER_PARAMETERS = "-s 0x00020661"
351
352 Q. Are there any reasons a user might want to disable the
353 intel-ucode feature?
354
355 A. The microcode data file and associated tools occupy a small
356 amount of space (a few KB) on the target image. BSPs which are
357 highly sensitive to target image size and which are not
358 experiencing microcode-related issues might consider not
359 enabling this feature.
360
361
362IV. Tested Hardware
363===================
364
365The following undergo regular basic testing with their respective MACHINE types.
366Note that both 64-bit and 32-bit firmware is available for the MinnowBoard
367Turbot, so it is tested against both intel-corei7-64 and intel-core2-32.
368
369intel-corei7-64:
370 NUC6i5SYH
371 NUC7i7BNH
372 Coffee Lake-H
373
374intel-core2-32:
375 MinnowBoard Turbot
376
377
378V. Guidelines for submitting patches
379====================================
380
381Please submit any patches against meta-intel BSPs to the meta-intel
382mailing list (meta-intel@yoctoproject.org). Also, if your patches are
383available via a public git repository, please also include a URL to
384the repo and branch containing your patches as that makes it easier
385for maintainers to grab and test your patches.
386
387There are patch submission scripts available that will, among other
388things, automatically include the repo URL and branch as mentioned.
389Please see the Yocto Project Development Manual sections entitled
390'Using Scripts to Push a Change Upstream and Request a Pull' and
391'Using Email to Submit a Patch' for details.
392
393Regardless of how you submit a patch or patchset, the patches should
394at minimum follow the suggestions outlined in the 'Submitting a Change
395to the Yocto Project' section in the Yocto Project Development Manual.
396Specifically, they should:
397
398 - Include a 'Signed-off-by:' line. A commit can't legally be pulled
399 in without this.
400
401 - Provide a single-line, short summary of the change. This short
402 description should be prefixed by the BSP or recipe name, as
403 appropriate, followed by a colon. Capitalize the first character
404 of the summary (following the colon).
405
406 - For the body of the commit message, provide detailed information
407 that describes what you changed, why you made the change, and the
408 approach you used.
409
410 - If the change addresses a specific bug or issue that is associated
411 with a bug-tracking ID, include a reference to that ID in your
412 detailed description in the following format: [YOCTO #<bug-id>].
413
414 - Pay attention to line length - please don't allow any particular
415 line in the commit message to stretch past 72 characters.
416
417 - For any non-trivial patch, provide information about how you
418 tested the patch, and for any non-trivial or non-obvious testing
419 setup, provide details of that setup.
420
421Doing a quick 'git log' in meta-intel will provide you with many
422examples of good example commits if you have questions about any
423aspect of the preferred format.
424
425The meta-intel maintainers will do their best to review and/or pull in
426a patch or patchset within 24 hours of the time it was posted. For
427larger and/or more involved patches and patchsets, the review process
428may take longer.
429
430Please see the meta-intel/MAINTAINERS file for the list of maintainers
431and their specific areas; it's also a good idea to cc: the specific
432maintainer, if applicable.
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..91577f1d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,36 @@
1# meta-intel
2
3OpenEmbedded/Yocto BSP layer for Intel platforms.
4
5## Dependencies
6
7This layer primarily depends on OpenEmbedded-Core (OE-Core). However, certain
8recipes may require additional layers to support optional features or
9programming languages not supported by OE-Core. Such recipes are located within
10the `dynamic-layers` directory.
11
12Base dependencies:
13- [Bitbake](https://git.openembedded.org/bitbake)
14- [OE-Core](https://git.openembedded.org/openembedded-core)
15
16Dynamic additional dependencies:
17
18- [meta-openembedded](https://git.openembedded.org/meta-openembedded/tree/meta-oe)
19- [meta-python](https://git.openembedded.org/meta-openembedded/tree/meta-python)
20- [meta-clang](https://github.com/kraj/meta-clang.git)
21
22
23## Contents
24
25- [Building and booting meta-intel BSP layers](documentation/building_and_booting.md)
26- [Intel oneAPI DPC++/C++ Compiler](documentation/dpcpp-compiler.md)
27- [Build Image with OpenVINO™ toolkit](documentation/openvino.md)
28- [Tested Hardware](documentation/tested_hardware.md)
29- [Guidelines for submitting patches](documentation/submitting_patches.md)
30- [Reporting bugs](documentation/reporting_bugs.md)
31- [Reporting security bugs](SECURITY.md)
32
33## Maintainers
34
35- Anuj Mittal <anuj.mittal@intel.com>
36
diff --git a/README.sources b/README.sources
deleted file mode 100644
index 9b483ee0..00000000
--- a/README.sources
+++ /dev/null
@@ -1,17 +0,0 @@
1The sources for the packages comprising the images shipped with this
2BSP can be found at the following location:
3
4http://downloads.yoctoproject.org/mirror/sources/
5
6The metadata used to generate the images shipped with this BSP, in
7addition to the code contained in this BSP, can be found at the
8following location:
9
10http://downloads.yoctoproject.org/releases/yocto/yocto-2.7/poky-warrior-21.0.0.tar.bz2
11
12The metadata used to generate the images shipped with this BSP, in
13addition to the code contained in this BSP, can also be found at the
14following locations:
15
16git://git.yoctoproject.org/poky.git
17git://git.yoctoproject.org/meta-intel
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 00000000..e70fcb0f
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,6 @@
1# Security Policy
2Intel is committed to rapidly addressing security vulnerabilities affecting our customers and providing clear guidance on the solution, impact, severity and mitigation.
3
4## Reporting a Vulnerability
5Please report any security vulnerabilities in this project [utilizing the guidelines here](https://www.intel.com/content/www/us/en/security-center/vulnerability-handling-guidelines.html).
6
diff --git a/classes/uefi-comboapp.bbclass b/classes/uefi-comboapp.bbclass
deleted file mode 100644
index 4ecc5535..00000000
--- a/classes/uefi-comboapp.bbclass
+++ /dev/null
@@ -1,151 +0,0 @@
1# This class brings a more generic version of the UEFI combo app from refkit to meta-intel.
2# It uses a combo file, containing kernel, initramfs and
3# command line, presented to the BIOS as UEFI application, by prepending
4# it with the efi stub obtained from systemd-boot.
5
6# Don't add syslinux or build an ISO
7PCBIOS_forcevariable = "0"
8NOISO_forcevariable = "1"
9
10# image-live.bbclass will default INITRD_LIVE to the image INITRD_IMAGE creates.
11# We want behavior to be consistent whether or not "live" is in IMAGE_FSTYPES, so
12# we default INITRD_LIVE to the INITRD_IMAGE as well.
13INITRD_IMAGE ?= "core-image-minimal-initramfs"
14INITRD_LIVE ?= " ${@ ('${DEPLOY_DIR_IMAGE}/' + d.getVar('INITRD_IMAGE', expand=True) + '-${MACHINE}.cpio.gz') if d.getVar('INITRD_IMAGE', True) else ''}"
15
16do_uefiapp[depends] += " \
17 intel-microcode:do_deploy \
18 systemd-boot:do_deploy \
19 virtual/kernel:do_deploy \
20 "
21
22# INITRD_IMAGE is added to INITRD_LIVE, which we use to create our initrd, so depend on it if it is set
23do_uefiapp[depends] += "${@ '${INITRD_IMAGE}:do_image_complete' if d.getVar('INITRD_IMAGE') else ''}"
24
25# The image does without traditional bootloader.
26# In its place, instead, it uses a single UEFI executable binary, which is
27# composed by:
28# - an UEFI stub
29# The linux kernel can generate a UEFI stub, however the one from systemd-boot can fetch
30# the command line from a separate section of the EFI application, avoiding the need to
31# rebuild the kernel.
32# - the kernel
33# - an initramfs (optional)
34
35def create_uefiapp(d, uuid=None, app_suffix=''):
36 import glob, re
37 from subprocess import check_call
38
39 build_dir = d.getVar('B')
40 deploy_dir_image = d.getVar('DEPLOY_DIR_IMAGE')
41 image_link_name = d.getVar('IMAGE_LINK_NAME')
42
43 cmdline = '%s/cmdline.txt' % build_dir
44 linux = '%s/%s' % (deploy_dir_image, d.getVar('KERNEL_IMAGETYPE'))
45 initrd = '%s/initrd' % build_dir
46
47 stub_path = '%s/linux*.efi.stub' % deploy_dir_image
48 stub = glob.glob(stub_path)[0]
49 m = re.match(r"\S*(ia32|x64)(.efi)\S*", os.path.basename(stub))
50 app = "boot%s%s%s" % (m.group(1), app_suffix, m.group(2))
51 executable = '%s/%s.%s' % (deploy_dir_image, image_link_name, app)
52
53 if d.getVar('INITRD_LIVE'):
54 with open(initrd, 'wb') as dst:
55 for cpio in d.getVar('INITRD_LIVE').split():
56 with open(cpio, 'rb') as src:
57 dst.write(src.read())
58 initrd_cmd = "--add-section .initrd=%s --change-section-vma .initrd=0x3000000 " % initrd
59 else:
60 initrd_cmd = ""
61
62 root = 'root=PARTUUID=%s' % uuid if uuid else ''
63
64 with open(cmdline, 'w') as f:
65 f.write('%s %s' % (d.getVar('APPEND'), root))
66
67 objcopy_cmd = ("objcopy "
68 "--add-section .cmdline=%s --change-section-vma .cmdline=0x30000 "
69 "--add-section .linux=%s --change-section-vma .linux=0x40000 "
70 "%s %s %s") % \
71 (cmdline, linux, initrd_cmd, stub, executable)
72
73 check_call(objcopy_cmd, shell=True)
74
75python create_uefiapps () {
76 # We must clean up anything that matches the expected output pattern, to ensure that
77 # the next steps do not accidentally use old files.
78 import glob
79 pattern = d.expand('${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.boot*.efi')
80 for old_efi in glob.glob(pattern):
81 os.unlink(old_efi)
82 uuid = d.getVar('DISK_SIGNATURE_UUID')
83 create_uefiapp(d, uuid=uuid)
84}
85
86# This is intentionally split into different parts. This way, derived
87# classes or images can extend the individual parts. We can also use
88# whatever language (shell script or Python) is more suitable.
89python do_uefiapp() {
90 bb.build.exec_func('create_uefiapps', d)
91}
92
93do_uefiapp[vardeps] += "APPEND DISK_SIGNATURE_UUID INITRD_LIVE KERNEL_IMAGETYPE IMAGE_LINK_NAME"
94
95uefiapp_deploy_at() {
96 dest=$1
97 for i in ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.boot*.efi; do
98 target=`basename $i`
99 target=`echo $target | sed -e 's/${IMAGE_LINK_NAME}.//'`
100 cp --preserve=timestamps -r $i $dest/$target
101 done
102}
103
104fakeroot do_uefiapp_deploy() {
105 rm -rf ${IMAGE_ROOTFS}/boot/*
106 dest=${IMAGE_ROOTFS}/boot/EFI/BOOT
107 mkdir -p $dest
108 uefiapp_deploy_at $dest
109}
110
111do_uefiapp_deploy[depends] += "${PN}:do_uefiapp virtual/fakeroot-native:do_populate_sysroot"
112
113
114# This decides when/how we add our tasks to the image
115python () {
116 image_fstypes = d.getVar('IMAGE_FSTYPES', True)
117 initramfs_fstypes = d.getVar('INITRAMFS_FSTYPES', True)
118
119 # Don't add any of these tasks to initramfs images
120 if initramfs_fstypes not in image_fstypes:
121 bb.build.addtask('uefiapp', 'do_image', 'do_rootfs', d)
122 bb.build.addtask('uefiapp_deploy', 'do_image', 'do_rootfs', d)
123}
124
125SIGN_AFTER ?= "do_uefiapp"
126SIGN_BEFORE ?= "do_uefiapp_deploy"
127SIGNING_DIR ?= "${DEPLOY_DIR_IMAGE}"
128SIGNING_BINARIES ?= "${IMAGE_LINK_NAME}.boot*.efi"
129inherit uefi-sign
130
131# Legacy hddimg support below this line
132efi_hddimg_populate() {
133 uefiapp_deploy_at "$1"
134}
135
136build_efi_cfg() {
137 # The command line is built into the combo app, so this is a null op
138 :
139}
140
141populate_kernel_append() {
142 # The kernel and initrd are built into the app, so we don't need these
143 if [ -f $dest/initrd ]; then
144 rm $dest/initrd
145 fi
146 if [ -f $dest/vmlinuz ]; then
147 rm $dest/vmlinuz
148 fi
149}
150
151IMAGE_FEATURES[validitems] += "secureboot"
diff --git a/classes/uefi-sign.bbclass b/classes/uefi-sign.bbclass
deleted file mode 100644
index e8f203b9..00000000
--- a/classes/uefi-sign.bbclass
+++ /dev/null
@@ -1,50 +0,0 @@
1# By default, sign all .efi binaries in ${B} after compiling and before deploying
2SIGNING_DIR ?= "${B}"
3SIGNING_BINARIES ?= "*.efi"
4SIGN_AFTER ?= "do_compile"
5SIGN_BEFORE ?= "do_deploy"
6
7python () {
8 import os
9 import hashlib
10
11 # Ensure that if the signing key or cert change, we rerun the uefiapp process
12 if bb.utils.contains('IMAGE_FEATURES', 'secureboot', True, False, d):
13 for varname in ('SECURE_BOOT_SIGNING_CERT', 'SECURE_BOOT_SIGNING_KEY'):
14 filename = d.getVar(varname)
15 if filename is None:
16 bb.fatal('%s is not set.' % varname)
17 if not os.path.isfile(filename):
18 bb.fatal('%s=%s is not a file.' % (varname, filename))
19 with open(filename, 'rb') as f:
20 data = f.read()
21 hash = hashlib.sha256(data).hexdigest()
22 d.setVar('%s_HASH' % varname, hash)
23
24 # Must reparse and thus rehash on file changes.
25 bb.parse.mark_dependency(d, filename)
26
27 bb.build.addtask('uefi_sign', d.getVar('SIGN_BEFORE'), d.getVar('SIGN_AFTER'), d)
28
29 # Original binary needs to be regenerated if the hash changes since we overwrite it
30 # SIGN_AFTER isn't necessarily when it gets generated, but its our best guess
31 d.appendVarFlag(d.getVar('SIGN_AFTER'), 'vardeps', 'SECURE_BOOT_SIGNING_CERT_HASH SECURE_BOOT_SIGNING_KEY_HASH')
32}
33
34do_uefi_sign() {
35 if [ -f ${SECURE_BOOT_SIGNING_KEY} ] && [ -f ${SECURE_BOOT_SIGNING_CERT} ]; then
36 for i in `find ${SIGNING_DIR}/ -name '${SIGNING_BINARIES}'`; do
37 sbsign --key ${SECURE_BOOT_SIGNING_KEY} --cert ${SECURE_BOOT_SIGNING_CERT} $i
38 sbverify --cert ${SECURE_BOOT_SIGNING_CERT} $i.signed
39 mv $i.signed $i
40 done
41 fi
42}
43
44do_uefi_sign[depends] += "sbsigntool-native:do_populate_sysroot"
45
46do_uefi_sign[vardeps] += "SECURE_BOOT_SIGNING_CERT_HASH \
47 SECURE_BOOT_SIGNING_KEY_HASH \
48 SIGNING_BINARIES SIGNING_DIR \
49 SIGN_BEFORE SIGN_AFTER \
50 "
diff --git a/conf/include/maintainers.inc b/conf/include/maintainers.inc
index 99ddec24..fb8b0b12 100644
--- a/conf/include/maintainers.inc
+++ b/conf/include/maintainers.inc
@@ -1,21 +1,47 @@
1# This file contains a list of recipe maintainers for meta-intel 1# This file contains a list of recipe maintainers for meta-intel
2 2
3RECIPE_MAINTAINER_pn-core-image-rt = "Anuj Mittal <anuj.mittal@intel.com>" 3RECIPE_MAINTAINER:pn-backport-iwlwifi = "Naveen Saini <naveen.kumar.saini@intel.com>"
4RECIPE_MAINTAINER_pn-core-image-rt-sdk = "Anuj Mittal <anuj.mittal@intel.com>" 4RECIPE_MAINTAINER:pn-core-image-rt = "Anuj Mittal <anuj.mittal@intel.com>"
5RECIPE_MAINTAINER_pn-gma500-gfx-check = "Anuj Mittal <anuj.mittal@intel.com>" 5RECIPE_MAINTAINER:pn-core-image-rt-sdk = "Anuj Mittal <anuj.mittal@intel.com>"
6RECIPE_MAINTAINER_pn-gmmlib = "Anuj Mittal <anuj.mittal@intel.com>" 6RECIPE_MAINTAINER:pn-core-image-tiny = "Naveen Saini <naveen.kumar.saini@intel.com>"
7RECIPE_MAINTAINER_pn-intel-gpu-tools = "Anuj Mittal <anuj.mittal@intel.com>" 7RECIPE_MAINTAINER:pn-core-image-minimal-initramfs = "Anuj Mittal <anuj.mittal@intel.com>"
8RECIPE_MAINTAINER_pn-intel-media-driver = "Anuj Mittal <anuj.mittal@intel.com>" 8RECIPE_MAINTAINER:pn-embree = "Naveen Saini <naveen.kumar.saini@intel.com>"
9RECIPE_MAINTAINER_pn-intel-mediasdk = "Anuj Mittal <anuj.mittal@intel.com>" 9RECIPE_MAINTAINER:pn-gmmlib = "Lim Siew Hoon <siew.hoon.lim@intel.com>"
10RECIPE_MAINTAINER_pn-intel-microcode = "Anuj Mittal <anuj.mittal@intel.com>" 10RECIPE_MAINTAINER:pn-hdcp = "Naveen Saini <naveen.kumar.saini@intel.com>"
11RECIPE_MAINTAINER_pn-core-image-minimal-initramfs = "Anuj Mittal <anuj.mittal@intel.com>" 11RECIPE_MAINTAINER:pn-intel-cmt-cat = "Naveen Saini <naveen.kumar.saini@intel.com>"
12RECIPE_MAINTAINER_pn-iucode-tool = "Anuj Mittal <anuj.mittal@intel.com>" 12RECIPE_MAINTAINER:pn-intel-compute-runtime = "Naveen Saini <naveen.kumar.saini@intel.com>"
13RECIPE_MAINTAINER_pn-intel-vaapi-driver = "Anuj Mittal <anuj.mittal@intel.com>" 13RECIPE_MAINTAINER:pn-intel-crypto-mb = "Anuj Mittal <anuj.mittal@intel.com>"
14RECIPE_MAINTAINER_pn-libyami = "Anuj Mittal <anuj.mittal@intel.com>" 14RECIPE_MAINTAINER:pn-intel-graphics-compiler = "Naveen Saini <naveen.kumar.saini@intel.com>"
15RECIPE_MAINTAINER_pn-libyami-utils = "Anuj Mittal <anuj.mittal@intel.com>" 15RECIPE_MAINTAINER:pn-intel-media-driver = "Lim Siew Hoon <siew.hoon.lim@intel.com>"
16RECIPE_MAINTAINER_pn-linux-intel = "Anuj Mittal <anuj.mittal@intel.com>" 16RECIPE_MAINTAINER:pn-intel-microcode = "Anuj Mittal <anuj.mittal@intel.com>"
17RECIPE_MAINTAINER_pn-linux-intel-rt = "Anuj Mittal <anuj.mittal@intel.com>" 17RECIPE_MAINTAINER:pn-intel-vaapi-driver = "Lim Siew Hoon <siew.hoon.lim@intel.com>"
18RECIPE_MAINTAINER_pn-thermald = "Anuj Mittal <anuj.mittal@intel.com>" 18RECIPE_MAINTAINER:pn-ipmctl = "Anuj Mittal <anuj.mittal@intel.com>"
19RECIPE_MAINTAINER_pn-xf86-video-ast = "Anuj Mittal <anuj.mittal@intel.com>" 19RECIPE_MAINTAINER:pn-isa-l = "Naveen Saini <naveen.kumar.saini@intel.com>"
20RECIPE_MAINTAINER_pn-mkl-dnn = "Ankit Navik <ankit.tarot@gmail.com>" 20RECIPE_MAINTAINER:pn-ispc = "Naveen Saini <naveen.kumar.saini@intel.com>"
21RECIPE_MAINTAINER_pn-metrics-discovery = "Ankit Navik <ankit.tarot@gmail.com>" 21RECIPE_MAINTAINER:pn-itt = "Naveen Saini <naveen.kumar.saini@intel.com>"
22RECIPE_MAINTAINER:pn-ixgbe = "Naveen Saini <naveen.kumar.saini@intel.com>"
23RECIPE_MAINTAINER:pn-ixgbevf = "Naveen Saini <naveen.kumar.saini@intel.com>"
24RECIPE_MAINTAINER:pn-iucode-tool = "Anuj Mittal <anuj.mittal@intel.com>"
25RECIPE_MAINTAINER:pn-level-zero = "Naveen Saini <naveen.kumar.saini@intel.com>"
26RECIPE_MAINTAINER:pn-libipt = "Naveen Saini <naveen.kumar.saini@intel.com>"
27RECIPE_MAINTAINER:pn-libva-intel = "Anuj Mittal <anuj.mittal@intel.com>"
28RECIPE_MAINTAINER:pn-libva-intel-utils = "Anuj Mittal <anuj.mittal@intel.com>"
29RECIPE_MAINTAINER:pn-libxcam = "Naveen Saini <naveen.kumar.saini@intel.com>"
30RECIPE_MAINTAINER:pn-linux-intel = "Anuj Mittal <anuj.mittal@intel.com>"
31RECIPE_MAINTAINER:pn-linux-intel-rt = "Anuj Mittal <anuj.mittal@intel.com>"
32RECIPE_MAINTAINER:pn-linux-intel-dev = "Naveen Saini <naveen.kumar.saini@intel.com>"
33RECIPE_MAINTAINER:pn-linux-npu-driver = "Naveen Saini <naveen.kumar.saini@intel.com>"
34RECIPE_MAINTAINER:pn-lms = "Anuj Mittal <anuj.mittal@intel.com>"
35RECIPE_MAINTAINER:pn-metee = "Naveen Saini <naveen.kumar.saini@intel.com>"
36RECIPE_MAINTAINER:pn-metrics-discovery = "Naveen Saini <naveen.kumar.saini@intel.com>"
37RECIPE_MAINTAINER:pn-oidn = "Naveen Saini <naveen.kumar.saini@intel.com>"
38RECIPE_MAINTAINER:pn-onednn = "Naveen Saini <naveen.kumar.saini@intel.com>"
39RECIPE_MAINTAINER:pn-onedpl = "Naveen Saini <naveen.kumar.saini@intel.com>"
40RECIPE_MAINTAINER:pn-onevpl = "Naveen Saini <naveen.kumar.saini@intel.com>"
41RECIPE_MAINTAINER:pn-onevpl-intel-gpu = "Yew Chang Ching <chang.ching.yew@intel.com>"
42RECIPE_MAINTAINER:pn-opencl-clang = "Naveen Saini <naveen.kumar.saini@intel.com>"
43RECIPE_MAINTAINER:pn-openvkl = "Naveen Saini <naveen.kumar.saini@intel.com>"
44RECIPE_MAINTAINER:pn-ospray = "Naveen Saini <naveen.kumar.saini@intel.com>"
45RECIPE_MAINTAINER:pn-rkcommon = "Naveen Saini <naveen.kumar.saini@intel.com>"
46RECIPE_MAINTAINER:pn-thermald = "Anuj Mittal <anuj.mittal@intel.com>"
47RECIPE_MAINTAINER:pn-xf86-video-ast = "Anuj Mittal <anuj.mittal@intel.com>"
diff --git a/conf/layer.conf b/conf/layer.conf
index 0db08957..9365f3a2 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -10,24 +10,36 @@ BBFILE_PATTERN_intel := "^${LAYERDIR}/"
10BBFILE_PRIORITY_intel = "5" 10BBFILE_PRIORITY_intel = "5"
11 11
12# Additional license directories. 12# Additional license directories.
13LICENSE_PATH += "${LAYERDIR}/custom-licenses" 13CUSTOM_LICENSES_PATH = "${LAYERDIR}/custom-licenses"
14LICENSE_PATH += "${CUSTOM_LICENSES_PATH}"
14 15
15LAYERDEPENDS_intel = "core" 16LAYERDEPENDS_intel = "core"
16LAYERRECOMMENDS_intel = "dpdk intel-qat" 17LAYERRECOMMENDS_intel = "dpdk"
17 18
18# This should only be incremented on significant changes that will 19# This should only be incremented on significant changes that will
19# cause compatibility issues with other layers 20# cause compatibility issues with other layers
20LAYERVERSION_intel = "5" 21LAYERVERSION_intel = "5"
21LAYERSERIES_COMPAT_intel = "thud warrior" 22LAYERSERIES_COMPAT_intel = "scarthgap whinlatter"
22 23
23BBFILES_DYNAMIC += " \ 24BBFILES_DYNAMIC += " \
24 clang-layer:${LAYERDIR}/dynamic-layers/clang-layer/*/*/*.bb \ 25 clang-layer:${LAYERDIR}/dynamic-layers/clang-layer/*/*/*.bb \
25 clang-layer:${LAYERDIR}/dynamic-layers/clang-layer/*/*/*.bbappend \ 26 clang-layer:${LAYERDIR}/dynamic-layers/clang-layer/*/*/*.bbappend \
26"
27
28BBFILES_DYNAMIC += " \
29 openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bb \ 27 openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bb \
30 openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bbappend \ 28 openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bbappend \
29 meta-python:${LAYERDIR}/dynamic-layers/meta-python/*/*/*.bb \
30 meta-python:${LAYERDIR}/dynamic-layers/meta-python/*/*/*.bbappend \
31" 31"
32 32
33require ${LAYERDIR}/conf/include/maintainers.inc 33require ${LAYERDIR}/conf/include/maintainers.inc
34
35# Use the libva from OE-Core when layer is included but no MACHINE
36# from meta-intel is being used.
37PREFERRED_PROVIDER_libva ?= "libva"
38PREFERRED_PROVIDER_libva-native ?= "libva-native"
39PREFERRED_PROVIDER_nativesdk-libva ?= "nativesdk-libva"
40
41PREFERRED_PROVIDER_libva-utils ?= "libva-utils"
42PREFERRED_PROVIDER_libva-utils-native ?= "libva-utils-native"
43PREFERRED_PROVIDER_nativesdk-libva-utils ?= "nativesdk-libva-utils"
44
45addpylib ${LAYERDIR}/lib oeqa
diff --git a/conf/machine/include/intel-common-pkgarch.inc b/conf/machine/include/intel-common-pkgarch.inc
index d0f208bd..94d77e06 100644
--- a/conf/machine/include/intel-common-pkgarch.inc
+++ b/conf/machine/include/intel-common-pkgarch.inc
@@ -1,15 +1,15 @@
1INTEL_COMMON_PACKAGE_ARCH ?= "${TUNE_PKGARCH}-intel-common" 1INTEL_COMMON_PACKAGE_ARCH ?= "${TUNE_PKGARCH}-intel-common"
2PACKAGE_ARCH_pn-linux-intel = "${INTEL_COMMON_PACKAGE_ARCH}" 2PACKAGE_ARCH:pn-linux-intel = "${INTEL_COMMON_PACKAGE_ARCH}"
3PACKAGE_ARCH_pn-linux-intel-rt = "${INTEL_COMMON_PACKAGE_ARCH}" 3PACKAGE_ARCH:pn-linux-intel-rt = "${INTEL_COMMON_PACKAGE_ARCH}"
4PACKAGE_ARCH_pn-linux-intel-tiny = "${INTEL_COMMON_PACKAGE_ARCH}" 4PACKAGE_ARCH:pn-linux-intel-tiny = "${INTEL_COMMON_PACKAGE_ARCH}"
5PACKAGE_ARCH_pn-linux-intel-dev = "${INTEL_COMMON_PACKAGE_ARCH}" 5PACKAGE_ARCH:pn-linux-intel-dev = "${INTEL_COMMON_PACKAGE_ARCH}"
6PACKAGE_ARCH_pn-linux-yocto = "${INTEL_COMMON_PACKAGE_ARCH}" 6PACKAGE_ARCH:pn-linux-yocto = "${INTEL_COMMON_PACKAGE_ARCH}"
7PACKAGE_ARCH_pn-linux-yocto-rt = "${INTEL_COMMON_PACKAGE_ARCH}" 7PACKAGE_ARCH:pn-linux-yocto-rt = "${INTEL_COMMON_PACKAGE_ARCH}"
8PACKAGE_ARCH_pn-linux-yocto-tiny = "${INTEL_COMMON_PACKAGE_ARCH}" 8PACKAGE_ARCH:pn-linux-yocto-tiny = "${INTEL_COMMON_PACKAGE_ARCH}"
9PACKAGE_ARCH_pn-linux-yocto-dev = "${INTEL_COMMON_PACKAGE_ARCH}" 9PACKAGE_ARCH:pn-linux-yocto-dev = "${INTEL_COMMON_PACKAGE_ARCH}"
10PACKAGE_ARCH_pn-intel-microcode = "${INTEL_COMMON_PACKAGE_ARCH}" 10PACKAGE_ARCH:pn-intel-microcode = "${INTEL_COMMON_PACKAGE_ARCH}"
11PACKAGE_ARCH_pn-backport-iwlwifi = "${INTEL_COMMON_PACKAGE_ARCH}" 11PACKAGE_ARCH:pn-backport-iwlwifi = "${INTEL_COMMON_PACKAGE_ARCH}"
12PACKAGE_ARCH_pn-ixgbe = "${INTEL_COMMON_PACKAGE_ARCH}" 12PACKAGE_ARCH:pn-ixgbe = "${INTEL_COMMON_PACKAGE_ARCH}"
13PACKAGE_ARCH_pn-ixgbevf = "${INTEL_COMMON_PACKAGE_ARCH}" 13PACKAGE_ARCH:pn-ixgbevf = "${INTEL_COMMON_PACKAGE_ARCH}"
14PACKAGE_EXTRA_ARCHS_append += "${INTEL_COMMON_PACKAGE_ARCH}" 14PACKAGE_EXTRA_ARCHS:append = " ${INTEL_COMMON_PACKAGE_ARCH}"
15MACHINEOVERRIDES =. "${INTEL_COMMON_PACKAGE_ARCH}:" 15MACHINEOVERRIDES =. "${INTEL_COMMON_PACKAGE_ARCH}:"
diff --git a/conf/machine/include/intel-core2-32-common.inc b/conf/machine/include/intel-core2-32-common.inc
index 8c469499..ce34d9bb 100644
--- a/conf/machine/include/intel-core2-32-common.inc
+++ b/conf/machine/include/intel-core2-32-common.inc
@@ -3,5 +3,5 @@
3# 3#
4 4
5DEFAULTTUNE ?= "core2-32" 5DEFAULTTUNE ?= "core2-32"
6require conf/machine/include/tune-core2.inc 6require conf/machine/include/x86/tune-core2.inc
7require conf/machine/include/x86-base.inc 7require conf/machine/include/x86/x86-base.inc
diff --git a/conf/machine/include/intel-corei7-64-common.inc b/conf/machine/include/intel-corei7-64-common.inc
index 00282569..3498ebe3 100644
--- a/conf/machine/include/intel-corei7-64-common.inc
+++ b/conf/machine/include/intel-corei7-64-common.inc
@@ -3,5 +3,5 @@
3# 3#
4 4
5DEFAULTTUNE ?= "corei7-64" 5DEFAULTTUNE ?= "corei7-64"
6require conf/machine/include/tune-corei7.inc 6require conf/machine/include/x86/tune-corei7.inc
7require conf/machine/include/x86-base.inc 7require conf/machine/include/x86/x86-base.inc
diff --git a/conf/machine/include/meta-intel.inc b/conf/machine/include/meta-intel.inc
index d45f4825..c98aa78a 100644
--- a/conf/machine/include/meta-intel.inc
+++ b/conf/machine/include/meta-intel.inc
@@ -5,34 +5,40 @@
5# 5#
6 6
7PREFERRED_PROVIDER_virtual/kernel ?= "linux-intel" 7PREFERRED_PROVIDER_virtual/kernel ?= "linux-intel"
8PREFERRED_PROVIDER_virtual/kernel_poky-tiny ?= "linux-intel" 8PREFERRED_PROVIDER_virtual/kernel:poky-tiny ?= "linux-intel"
9 9
10# Only use the Intel-tuned zlib for target builds to improve reuse 10PREFERRED_VERSION_linux-intel ?= "6.12%"
11PREFERRED_PROVIDER_zlib = "zlib-intel" 11PREFERRED_VERSION_linux-intel-rt ?= "6.12%"
12PREFERRED_PROVIDER_zlib-native = "zlib-native" 12PREFERRED_VERSION_linux-intel:poky-altcfg ?= "6.12%"
13PREFERRED_PROVIDER_nativesdk-zlib = "nativesdk-zlib" 13PREFERRED_VERSION_linux-intel-rt:poky-altcfg ?= "6.12%"
14 14
15PREFERRED_VERSION_linux-intel_linuxstdbase ?= "4.19%" 15# Need to point to latest version of libva needed for media components
16PREFERRED_VERSION_linux-intel ?= "4.19%" 16PREFERRED_PROVIDER_libva = "libva-intel"
17PREFERRED_VERSION_linux-intel-rt ?= "4.19%" 17PREFERRED_PROVIDER_libva-native = "libva-intel-native"
18PREFERRED_PROVIDER_nativesdk-libva = "nativesdk-libva-intel"
19
20PREFERRED_PROVIDER_libva-utils = "libva-intel-utils"
21PREFERRED_PROVIDER_libva-utils-native = "libva-intel-utils-native"
22PREFERRED_PROVIDER_nativesdk-libva-utils = "nativesdk-libva-intel-utils"
18 23
19XSERVER_X86_ASPEED_AST = "xf86-video-ast \ 24XSERVER_X86_ASPEED_AST = "xf86-video-ast \
20 " 25 "
21 26
22# include the user space intel microcode loading support in the generated images. 27# include the user space intel microcode loading support in the generated images.
23MACHINE_ESSENTIAL_EXTRA_RDEPENDS_append = "${@bb.utils.contains('MACHINE_FEATURES', 'intel-ucode', ' intel-microcode', '', d)} thermald" 28MACHINE_ESSENTIAL_EXTRA_RDEPENDS:append = "${@bb.utils.contains('MACHINE_FEATURES', 'intel-ucode', ' intel-microcode', '', d)}"
24 29
25# recommended extra packages common to all intel machines 30# recommended extra packages common to all intel machines
26MACHINE_EXTRA_RRECOMMENDS_append = " kernel-modules linux-firmware" 31MACHINE_EXTRA_RRECOMMENDS:append = " kernel-modules linux-firmware"
32MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS:append = " kernel-module-i915 linux-firmware-i915 kernel-module-igc kernel-module-r8152"
27 33
28# for the early boot time kernel microcode loading support, 34# for the early boot time kernel microcode loading support,
29# merge the microcode data in the final initrd image. 35# merge the microcode data in the final initrd image.
30INITRD_LIVE_prepend = "${@bb.utils.contains('MACHINE_FEATURES', 'intel-ucode', '${DEPLOY_DIR_IMAGE}/microcode.cpio ', '', d)}" 36INITRD_LIVE:prepend = "${@bb.utils.contains('MACHINE_FEATURES', 'intel-ucode', '${DEPLOY_DIR_IMAGE}/microcode.cpio ', '', d)}"
31 37
32DISK_SIGNATURE_UUID ??= "deadbeef-dead-beef-dead-beefdeadbeef" 38DISK_SIGNATURE_UUID ??= "deadbeef-dead-beef-dead-beefdeadbeef"
33 39
34EFI_PROVIDER ?= "systemd-boot" 40EFI_PROVIDER ?= "systemd-boot"
35EFI_PROVIDER_x86-x32 = "grub-efi" 41EFI_PROVIDER:x86-x32 = "grub-efi"
36 42
37# Add general MACHINEOVERRIDE for meta-intel 43# Add general MACHINEOVERRIDE for meta-intel
38MACHINEOVERRIDES =. "intel-x86-common:" 44MACHINEOVERRIDES =. "intel-x86-common:"
diff --git a/conf/machine/include/qemu-intel.inc b/conf/machine/include/qemu-intel.inc
index 81510404..4608db99 100644
--- a/conf/machine/include/qemu-intel.inc
+++ b/conf/machine/include/qemu-intel.inc
@@ -2,7 +2,7 @@
2# distro content (in particular the kernel) less than qemu.inc. 2# distro content (in particular the kernel) less than qemu.inc.
3 3
4# Ensure that qemu gets built when building images. 4# Ensure that qemu gets built when building images.
5EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native" 5EXTRA_IMAGEDEPENDS += "qemu-system-native qemu-helper-native:do_addto_recipe_sysroot"
6 6
7# Build ovmf firmware for uefi support in qemu. 7# Build ovmf firmware for uefi support in qemu.
8EXTRA_IMAGEDEPENDS += "ovmf" 8EXTRA_IMAGEDEPENDS += "ovmf"
diff --git a/conf/machine/include/qemuboot-intel.inc b/conf/machine/include/qemuboot-intel.inc
index 6586cf09..17a1234d 100644
--- a/conf/machine/include/qemuboot-intel.inc
+++ b/conf/machine/include/qemuboot-intel.inc
@@ -1,15 +1,18 @@
1# For runqemu 1# For runqemu
2IMAGE_CLASSES += "qemuboot" 2IMAGE_CLASSES += "qemuboot"
3QB_SYSTEM_NAME_intel-core2-32 = "qemu-system-i386" 3QB_SYSTEM_NAME:intel-core2-32 = "qemu-system-i386"
4QB_CPU_intel-core2-32 = "-cpu coreduo" 4QB_CPU:intel-core2-32 = "-cpu coreduo"
5QB_CPU_KVM_intel-core2-32 = "-cpu kvm32" 5QB_CPU_KVM:intel-core2-32 = "-cpu kvm32"
6 6
7QB_SYSTEM_NAME_intel-corei7-64 = "qemu-system-x86_64" 7QB_SYSTEM_NAME:intel-corei7-64 = "qemu-system-x86_64"
8QB_CPU_intel-corei7-64 = "-cpu Nehalem" 8QB_CPU:intel-corei7-64 = "-cpu Nehalem"
9QB_CPU_KVM_intel-corei7-64 = "-cpu kvm64" 9QB_CPU_KVM:intel-corei7-64 = "-cpu kvm64"
10
11QB_SYSTEM_NAME:intel-skylake-64 = "qemu-system-x86_64"
12QB_CPU:intel-skylake-64 = "-cpu Skylake-Client"
13QB_CPU_KVM:intel-skylake-64 = "-cpu Skylake-Client"
10 14
11QB_AUDIO_DRV = "alsa" 15QB_AUDIO_DRV = "alsa"
12QB_AUDIO_OPT = "-soundhw ac97,es1370" 16QB_AUDIO_OPT = "-device AC97"
13QB_KERNEL_CMDLINE_APPEND = "vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1" 17QB_KERNEL_CMDLINE_APPEND = " oprofile.timer=1"
14# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy 18QB_OPT_APPEND = " -usb -usbdevice tablet "
15QB_OPT_APPEND = "-vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci"
diff --git a/conf/machine/intel-core2-32.conf b/conf/machine/intel-core2-32.conf
index d99dc783..5b134dc3 100644
--- a/conf/machine/intel-core2-32.conf
+++ b/conf/machine/intel-core2-32.conf
@@ -13,11 +13,6 @@ MACHINE_FEATURES += "intel-ucode"
13 13
14MACHINE_HWCODECS ?= "intel-vaapi-driver gstreamer1.0-vaapi" 14MACHINE_HWCODECS ?= "intel-vaapi-driver gstreamer1.0-vaapi"
15 15
16MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "gma500-gfx-check"
17
18# Enable optional QAT items:
19COMPATIBLE_MACHINE_pn-qat17 = "intel-core2-32"
20
21XSERVER ?= "${XSERVER_X86_BASE} \ 16XSERVER ?= "${XSERVER_X86_BASE} \
22 ${XSERVER_X86_EXT} \ 17 ${XSERVER_X86_EXT} \
23 ${XSERVER_X86_FBDEV} \ 18 ${XSERVER_X86_FBDEV} \
@@ -29,9 +24,9 @@ XSERVER ?= "${XSERVER_X86_BASE} \
29 " 24 "
30 25
31SYSLINUX_OPTS = "serial 0 115200" 26SYSLINUX_OPTS = "serial 0 115200"
32SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyPCH0" 27SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyPCH0"
33APPEND += "rootwait console=ttyS0,115200 console=ttyPCH0,115200 console=tty0" 28APPEND += "rootwait console=ttyS0,115200 console=ttyPCH0,115200 console=tty0"
34 29
35IMAGE_FSTYPES += "wic" 30IMAGE_FSTYPES += "wic"
36WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-microcode.wks.in", d)}" 31WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-microcode.wks.in", d)}"
37WKS_FILE_DEPENDS_append = " intel-microcode" 32WKS_FILE_DEPENDS:append = " intel-microcode"
diff --git a/conf/machine/intel-corei7-64.conf b/conf/machine/intel-corei7-64.conf
index 197546f7..947f72d4 100644
--- a/conf/machine/intel-corei7-64.conf
+++ b/conf/machine/intel-corei7-64.conf
@@ -11,15 +11,11 @@ MACHINE_FEATURES += "pcbios efi"
11MACHINE_FEATURES += "wifi 3g nfc" 11MACHINE_FEATURES += "wifi 3g nfc"
12MACHINE_FEATURES += "intel-ucode" 12MACHINE_FEATURES += "intel-ucode"
13 13
14MACHINE_HWCODECS ?= "intel-vaapi-driver gstreamer1.0-vaapi" 14MACHINE_HWCODECS ?= "${@bb.utils.contains('TUNE_FEATURES', 'mx32', '', 'intel-media-driver vpl-gpu-rt', d)} gstreamer1.0-vaapi"
15 15
16# Enable optional dpdk: 16# Enable optional dpdk:
17COMPATIBLE_MACHINE_pn-dpdk = "intel-corei7-64" 17COMPATIBLE_MACHINE:pn-dpdk = "intel-corei7-64"
18 18COMPATIBLE_MACHINE:pn-dpdk-module = "intel-corei7-64"
19# Enable optional QAT items:
20COMPATIBLE_MACHINE_pn-qat16 = "intel-corei7-64"
21COMPATIBLE_MACHINE_pn-qat17 = "intel-corei7-64"
22COMPATIBLE_MACHINE_pn-zlib-qat = "intel-corei7-64"
23 19
24XSERVER ?= "${XSERVER_X86_BASE} \ 20XSERVER ?= "${XSERVER_X86_BASE} \
25 ${XSERVER_X86_EXT} \ 21 ${XSERVER_X86_EXT} \
@@ -32,9 +28,9 @@ XSERVER ?= "${XSERVER_X86_BASE} \
32 " 28 "
33 29
34SYSLINUX_OPTS = "serial 0 115200" 30SYSLINUX_OPTS = "serial 0 115200"
35SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyS2" 31SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyS2"
36APPEND += "rootwait console=ttyS0,115200 console=tty0" 32APPEND += "rootwait console=ttyS0,115200 console=tty0"
37 33
38IMAGE_FSTYPES += "wic" 34IMAGE_FSTYPES += "wic"
39WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-microcode.wks.in", d)}" 35WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-microcode.wks.in", d)}"
40WKS_FILE_DEPENDS_append = " intel-microcode" 36WKS_FILE_DEPENDS:append = " intel-microcode"
diff --git a/conf/machine/intel-skylake-64.conf b/conf/machine/intel-skylake-64.conf
new file mode 100644
index 00000000..bfaf08dd
--- /dev/null
+++ b/conf/machine/intel-skylake-64.conf
@@ -0,0 +1,36 @@
1#@TYPE: Machine
2#@NAME: intel-skylake-64
3
4#@DESCRIPTION: Machine configuration for 64 bit Intel Skylake CPU (and later) with MMX, SSE, SSE2, SSE3, SSE4.1, SSE4.2, AVX, and AVX2 instruction set support. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
5
6require conf/machine/include/meta-intel.inc
7require conf/machine/include/x86/x86-base.inc
8require conf/machine/include/x86/tune-x86-64-v3.inc
9require conf/machine/include/intel-common-pkgarch.inc
10
11MACHINE_FEATURES += "efi"
12MACHINE_FEATURES += "wifi 3g nfc"
13MACHINE_FEATURES += "intel-ucode"
14
15MACHINE_HWCODECS ?= "intel-media-driver vpl-gpu-rt gstreamer1.0-vaapi"
16
17COMPATIBLE_MACHINE:pn-dpdk = "intel-skylake-64"
18COMPATIBLE_MACHINE:pn-dpdk-module = "intel-skylake-64"
19
20XSERVER ?= "${XSERVER_X86_BASE} \
21 ${XSERVER_X86_EXT} \
22 ${XSERVER_X86_FBDEV} \
23 ${XSERVER_X86_I915} \
24 ${XSERVER_X86_I965} \
25 ${XSERVER_X86_MODESETTING} \
26 ${XSERVER_X86_VESA} \
27 ${XSERVER_X86_ASPEED_AST} \
28 "
29
30SYSLINUX_OPTS = "serial 0 115200"
31SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyS2"
32APPEND += "rootwait console=ttyS0,115200 console=tty0"
33
34IMAGE_FSTYPES += "wic"
35WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-microcode.wks.in", d)}"
36WKS_FILE_DEPENDS:append = " intel-microcode"
diff --git a/custom-licenses/ACE-TAO-CIAO b/custom-licenses/ACE-TAO-CIAO
deleted file mode 100644
index 67fc5632..00000000
--- a/custom-licenses/ACE-TAO-CIAO
+++ /dev/null
@@ -1,111 +0,0 @@
1
2 _________________________________________________________________
3
4 Copyright and Licensing Information for ACE(TM), TAO(TM), CIAO(TM),
5 DAnCE(TM), and CoSMIC(TM)
6
7 [1]ACE(TM), [2]TAO(TM), [3]CIAO(TM), DAnCE(TM), and [4]CoSMIC(TM)
8 (henceforth referred to as "DOC software") are copyrighted by
9 [5]Douglas C. Schmidt and his [6]research group at [7]Washington
10 University, [8]University of California, Irvine, and [9]Vanderbilt
11 University, Copyright (c) 1993-2018, all rights reserved. Since DOC
12 software is open-source, freely available software, you are free to
13 use, modify, copy, and distribute--perpetually and irrevocably--the
14 DOC software source code and object code produced from the source, as
15 well as copy and distribute modified versions of this software. You
16 must, however, include this copyright statement along with any code
17 built using DOC software that you release. No copyright statement
18 needs to be provided if you just ship binary executables of your
19 software products.
20
21 You can use DOC software in commercial and/or binary software releases
22 and are under no obligation to redistribute any of your source code
23 that is built using DOC software. Note, however, that you may not
24 misappropriate the DOC software code, such as copyrighting it yourself
25 or claiming authorship of the DOC software code, in a way that will
26 prevent DOC software from being distributed freely using an
27 open-source development model. You needn't inform anyone that you're
28 using DOC software in your software, though we encourage you to let
29 [10]us know so we can promote your project in the [11]DOC software
30 success stories.
31
32 The [12]ACE, [13]TAO, [14]CIAO, [15]DAnCE, and [16]CoSMIC web sites
33 are maintained by the [17]DOC Group at the [18]Institute for Software
34 Integrated Systems (ISIS) and the [19]Center for Distributed Object
35 Computing of Washington University, St. Louis for the development of
36 open-source software as part of the open-source software community.
37 Submissions are provided by the submitter ``as is'' with no warranties
38 whatsoever, including any warranty of merchantability, noninfringement
39 of third party intellectual property, or fitness for any particular
40 purpose. In no event shall the submitter be liable for any direct,
41 indirect, special, exemplary, punitive, or consequential damages,
42 including without limitation, lost profits, even if advised of the
43 possibility of such damages. Likewise, DOC software is provided as is
44 with no warranties of any kind, including the warranties of design,
45 merchantability, and fitness for a particular purpose,
46 noninfringement, or arising from a course of dealing, usage or trade
47 practice. Washington University, UC Irvine, Vanderbilt University,
48 their employees, and students shall have no liability with respect to
49 the infringement of copyrights, trade secrets or any patents by DOC
50 software or any part thereof. Moreover, in no event will Washington
51 University, UC Irvine, or Vanderbilt University, their employees, or
52 students be liable for any lost revenue or profits or other special,
53 indirect and consequential damages.
54
55 DOC software is provided with no support and without any obligation on
56 the part of Washington University, UC Irvine, Vanderbilt University,
57 their employees, or students to assist in its use, correction,
58 modification, or enhancement. A [20]number of companies around the
59 world provide commercial support for DOC software, however. DOC
60 software is Y2K-compliant, as long as the underlying OS platform is
61 Y2K-compliant. Likewise, DOC software is compliant with the new US
62 daylight savings rule passed by Congress as "The Energy Policy Act of
63 2005," which established new daylight savings times (DST) rules for
64 the United States that expand DST as of March 2007. Since DOC software
65 obtains time/date and calendaring information from operating systems
66 users will not be affected by the new DST rules as long as they
67 upgrade their operating systems accordingly.
68
69 The names ACE(TM), TAO(TM), CIAO(TM), DAnCE(TM), CoSMIC(TM),
70 Washington University, UC Irvine, and Vanderbilt University, may not
71 be used to endorse or promote products or services derived from this
72 source without express written permission from Washington University,
73 UC Irvine, or Vanderbilt University. This license grants no permission
74 to call products or services derived from this source ACE(TM),
75 TAO(TM), CIAO(TM), DAnCE(TM), or CoSMIC(TM), nor does it grant
76 permission for the name Washington University, UC Irvine, or
77 Vanderbilt University to appear in their names.
78
79 If you have any suggestions, additions, comments, or questions, please
80 let [21]me know.
81
82 [22]Douglas C. Schmidt
83 _________________________________________________________________
84
85 Back to the [23]ACE home page.
86
87References
88
89 1. http://www.dre.vanderbilt.edu/~schmidt/ACE.html
90 2. http://www.dre.vanderbilt.edu/~schmidt/TAO.html
91 3. http://www.dre.vanderbilt.edu/CIAO/
92 4. http://www.dre.vanderbilt.edu/cosmic/
93 5. http://www.dre.vanderbilt.edu/~schmidt/
94 6. http://www.dre.vanderbilt.edu/~schmidt/ACE-members.html
95 7. http://www.wustl.edu/
96 8. http://www.uci.edu/
97 9. http://www.vanderbilt.edu/
98 10. mailto:doc_group@cs.wustl.edu
99 11. http://www.dre.vanderbilt.edu/~schmidt/ACE-users.html
100 12. http://www.dre.vanderbilt.edu/~schmidt/ACE.html
101 13. http://www.dre.vanderbilt.edu/~schmidt/TAO.html
102 14. http://www.dre.vanderbilt.edu/CIAO/
103 15. http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/DAnCE/
104 16. http://www.dre.vanderbilt.edu/cosmic/
105 17. http://www.dre.vanderbilt.edu/
106 18. http://www.isis.vanderbilt.edu/
107 19. http://www.cs.wustl.edu/~schmidt/doc-center.html
108 20. http://www.dre.vanderbilt.edu/~schmidt/commercial-support.html
109 21. mailto:d.schmidt@vanderbilt.edu
110 22. http://www.dre.vanderbilt.edu/~schmidt/
111 23. http://www.dre.vanderbilt.edu/~schmidt/ACE.html
diff --git a/custom-licenses/EULA b/custom-licenses/EULA
new file mode 100644
index 00000000..549f78e1
--- /dev/null
+++ b/custom-licenses/EULA
@@ -0,0 +1,392 @@
1Intel End User License Agreement for Developer Tools (Version October 2021)
2
3IMPORTANT NOTICE - PLEASE READ AND AGREE BEFORE DOWNLOADING, INSTALLING, COPYING
4OR USING
5
6This Agreement is between you, or the company or other legal entity that you
7represent and warrant you have the legal authority to bind, (each, "You" or
8"Your") and Intel Corporation and its subsidiaries (collectively, "Intel")
9regarding Your use of the Materials. By downloading, installing, copying or
10using the Materials, You agree to be bound by the terms of this Agreement. If
11You do not agree to the terms of this Agreement, or do not have legal authority
12or required age to agree to them, do not download, install, copy or use the
13Materials.
14
151. LICENSE DEFINITIONS.
16
17 A. "Cloud Provider" means a third party service provider offering a cloud-based
18 platform, infrastructure, application or storage services, such as Microsoft
19 Azure or Amazon Web Services, which You may only utilize to host the
20 Materials subject to the restrictions set forth in Section 2.3 B.
21
22 B. "Derivative Work" means a derivative work, as defined in 17 U.S.C. 101, of
23 the Source Code.
24
25 C. "Executable Code" means computer programming code in binary form suitable
26 for machine execution by a processor without the intervening steps of
27 interpretation or compilation.
28
29 D. "Materials" mean the software, documentation, the software product serial
30 number, and other collateral, including any updates, made available to You
31 by Intel under this Agreement. Materials include Redistributables,
32 Executable Code, Source Code, Sample Source Code, and Pre-Release Materials,
33 but do not include Third Party Software.
34
35 E. "Pre-Release Materials" mean the Materials, or portions of the Materials,
36 that are identified (in the product release notes, on Intel's download
37 website for the Materials or elsewhere) or labeled as pre-release,
38 prototype, alpha or beta code and, as such, are deemed to be pre-release
39 code (i) which may not be fully functional or tested and may contain bugs or
40 errors; (ii) which Intel may substantially modify in its development of a
41 production version; or (iii) for which Intel makes no assurances that it
42 will ever develop or make a production version generally available.
43 Pre-Release Materials are subject to the terms of Section 3.2.
44
45 F. "Reciprocal Open Source Software" means any software that is subject to a
46 license which requires that (i) it must be distributed in source code form;
47 (ii) it must be licensed under the same open source license terms; and (iii)
48 its derivative works must be licensed under the same open source license
49 terms. Examples of this type of license are the GNU General Public License
50 or the Mozilla Public License.
51
52 G. "Redistributables" mean the files (if any) listed in the "redist.txt,"
53 "redist-rt.txt" or similarly-named text files that may be included in the
54 Materials. Redistributables include Sample Source Code.
55
56 H. "Sample Source Code" means those portions of the Materials that are Source
57 Code and are identified as sample code. Sample Source Code may not have been
58 tested or validated by Intel and is provided purely as a programming example.
59
60 I. "Source Code" means the software portion of the Materials provided in human
61 readable format.
62
63 J. "Third Party Software" mean the files (if any) listed in the
64 "third-party-software.txt" or other similarly-named text file that may be
65 included in the Materials for the applicable software. Third Party Software
66 is subject to the terms of Section 2.2.
67
68 K. "Your Product" means one or more applications, products or projects
69 developed by or for You using the Materials.
70
712. LICENSE GRANTS.
72
732.1 License to the Materials. Subject to the terms and conditions of this
74 Agreement, Intel grants You a non-exclusive, worldwide, non-assignable,
75 non-sublicensable, limited right and license under its copyrights, to:
76
77 A. reproduce internally a reasonable number of copies of the Materials for Your
78 personal or business use;
79
80 B. use the Materials solely for Your personal or business use to develop Your
81 Product, in accordance with the documentation included as part of the
82 Materials;
83
84 C. modify or create Derivative Works only of the Redistributables, or any
85 portions, that are provided to You in Source Code;
86
87 D. distribute (directly and through Your distributors, resellers, and other
88 channel partners, if applicable), the Redistributables, including any
89 modifications to or Derivative Works of the Redistributables or any portions
90 made pursuant to Section 2.1.C subject to the following conditions:
91
92 (1) Any distribution of the Redistributables must only be as part of Your
93 Product which must add significant primary functionality different than
94 that of the Redistributables themselves;
95
96 (2) You must only distribute the Redistributables originally provided to You
97 by Intel only in Executable Code subject to a license agreement that
98 prohibits reverse engineering, decompiling or disassembling the
99 Redistributables;
100
101 (3) This distribution right includes a limited right to sublicense only the
102 Intel copyrights in the Redistributables and only to the extent necessary
103 to perform, display, and distribute the Redistributables (including Your
104 modifications and Derivative Works of the Redistributables provided in
105 Source Code) solely as incorporated in Your Product; and
106
107 (4) You: (i) will be solely responsible to Your customers for any update,
108 support obligation or other obligation or liability which may arise from
109 the distribution of Your Product, (ii) will not make any statement that
110 Your Product is "certified" or that its performance is guaranteed by Intel
111 or its suppliers, (iii) will not use Intel's or its suppliers' names or
112 trademarks to market Your Product, (iv) will comply with any additional
113 restrictions which are included in the text files with the
114 Redistributables and in Section 3 below, (v) will indemnify, hold
115 harmless, and defend Intel and its suppliers from and against any claims
116 or lawsuits, costs, damages, and expenses, including attorney's fees, that
117 arise or result from (a) Your modifications or Derivative Works of the
118 Materials or (b) Your distribution of Your Product.
119
1202.2 Third Party Software. Third Party Software, even if included with the
121 distribution of the Materials, may be governed by separate license terms,
122 including without limitation, third party license terms, open source
123 software notices and terms, and/or other Intel software license terms. These
124 separate license terms solely govern Your use of the Third Party Software.
125
1262.3 Third Party Use.
127
128 A. If You are an entity, Your contractors may use the Materials under the
129 license specified in Section 2, provided: (i) their use of the Materials is
130 solely on behalf of and in support of Your business, (ii) they agree to the
131 terms and conditions of this Agreement, and (iii) You are solely responsible
132 for their use, misuse or disclosure of the Materials.
133
134 B. You may utilize a Cloud Provider to host the Materials for You, provided:
135 (i) the Cloud Provider may only host the Materials for Your exclusive use
136 and may not use the Materials for any other purpose whatsoever, including the
137 restriction set forth in Section 3.1(xi); (ii) the Cloud Provider's use of
138 the Materials must be solely on behalf of and in support of Your Product, and
139 (iii) You will indemnify, hold harmless, and defend Intel and its suppliers
140 from and against any claims or lawsuits, costs, damages, and expenses,
141 including attorney's fees, that arise or result from Your Cloud Provider's
142 use, misuse or disclosure of the Materials.
143
1443. LICENSE CONDITIONS.
145
1463.1 Restrictions. Except as expressly provided in this Agreement, You may NOT:
147 (i) use, reproduce, disclose, distribute, or publicly display the
148 Materials; (ii) share, publish, rent or lease the Materials to any third
149 party; (iii) assign this Agreement or transfer the Materials; (iv) modify,
150 adapt, or translate the Materials in whole or in part; (v) reverse engineer,
151 decompile, or disassemble the Materials, or otherwise attempt to derive the
152 source code for the software; (vi) work around any technical limitations in
153 the Materials; (vii) distribute, sublicense or transfer any Source Code,
154 modifications or Derivative Works of any Source Code to any third party;
155 (viii) remove, minimize, block or modify any notices of Intel or its
156 suppliers in the Materials; (ix) include the Redistributables in malicious,
157 deceptive, or unlawful programs or products or use the Materials in any way
158 that is against the law; (x) modify, create a Derivative Work, link, or
159 distribute the Materials so that any part of it becomes Reciprocal Open
160 Source Software; (xi) use the Materials directly or indirectly for SaaS
161 services or service bureau purposes (i.e., a service that allows use of or
162 access to the Materials by a third party as part of that service, such as
163 the salesforce.com service business model).
164
1653.2 Pre-Release Materials. If You receive Pre-Release Materials, You may
166 reproduce a reasonable number of copies and use the Pre-Release Materials
167 for evaluation and testing purposes only. You may not (i) modify or
168 incorporate the Pre-Release Materials into Your Product; (ii) continue to
169 use the Pre-Release Materials once a commercial version is released; or
170 (iii) disclose to any third party any benchmarks, performance results, or
171 other information relating to the Pre-Release Materials. Intel may waive
172 these restrictions in writing at its sole discretion; however, if You decide
173 to use the Pre-Release Materials in Your Product (even with Intel's waiver),
174 You acknowledge and agree that You are fully responsible for any and all
175 issues that result from such use.
176
1773.3 Safety-Critical, and Life-Saving Applications; Indemnity. The Materials may
178 provide information relevant to safety-critical applications
179 ("Safety-Critical Applications") to allow compliance with functional safety
180 standards or requirements. You acknowledge and agree that safety is Your
181 responsibility. To the extent You use the Materials to create, or as part
182 of, products used in Safety-Critical Applications, it is Your responsibility
183 to design, manage, and ensure that there are system-level safeguards to
184 anticipate, monitor, and control system failures, and You agree that You are
185 solely responsible for all applicable regulatory standards and
186 safety-related requirements concerning Your use of the Materials in Safety
187 Critical Applications.
188
189 Should You use the Materials for Safety-Critical Applications or in any type
190 of a system or application in which the failure of the Materials could
191 create a situation where personal injury or death may occur (e.g., medical
192 systems, life-sustaining or life-saving systems) ("Life-Saving
193 Applications"), You agree to indemnify, defend, and hold Intel and its
194 representatives harmless against any claims or lawsuits, costs, damages, and
195 expenses, including reasonable attorney fees, arising in any way out of Your
196 use of the Materials in Safety-Critical Applications or Life-Saving
197 Applications and claims of product liability, personal injury or death
198 associated with those applications; even if such claims allege that Intel
199 was negligent or strictly liable regarding the design or manufacture of the
200 Materials or its failure to warn regarding the Materials.
201
2023.4 Media Format Codecs and Digital Rights Management. You acknowledge and agree
203 that Your use of the Materials or distribution of the Redistributables with
204 Your Product as permitted by this Agreement may require You to procure
205 license(s) from third parties that may hold intellectual property rights
206 applicable to any media decoding, encoding or transcoding technology (e.g.,
207 the use of an audio or video codec) and/or digital rights management
208 capabilities of the Materials, if any. Should any such additional licenses
209 be required, You are solely responsible for obtaining any such licenses and
210 agree to obtain any such licenses at Your own expense.
211
2124. DATA COLLECTION AND PRIVACY.
213
2144.1 Data Collection. The Materials may generate and collect anonymous data
215 and/or provisioning data about the Materials and/or the development
216 environment and transmit the data to Intel as a one-time event during
217 installation. Optional data may also be collected by the Materials, however,
218 You will be provided notice of the request to collect optional data and no
219 optional data will be collected without Your consent. All data collection by
220 Intel is performed pursuant to relevant privacy laws, including notice and
221 consent requirements.
222
2234.2 Intel's Privacy Notice. Intel is committed to respecting Your privacy. To
224 learn more about Intel's privacy practices, please visit
225 http://www.intel.com/privacy.
226
2275. OWNERSHIP. Title to the Materials and all copies remain with Intel or its
228 suppliers. The Materials are protected by intellectual property rights,
229 including without limitation, United States copyright laws and international
230 treaty provisions. You will not remove any copyright or other proprietary
231 notices from the Materials. Except as expressly provided herein, no license
232 or right is granted to You directly or by implication, inducement, estoppel
233 or otherwise; specifically, Intel does not grant any express or implied right
234 to You under Intel patents, copyrights, trademarks, or trade secrets.
235
2366. NO WARRANTY AND NO SUPPORT.
237
2386.1 No Warranty. Disclaimer. Intel disclaims all warranties of any kind and the
239 terms and remedies provided in this Agreement are instead of any other
240 warranty or condition, express, implied or statutory, including those
241 regarding merchantability, fitness for any particular purpose,
242 non-infringement or any warranty arising out of any course of dealing, usage
243 of trade, proposal, specification or sample. Intel does not assume (and does
244 not authorize any person to assume on its behalf) any liability.
245
2466.2 No Support; Priority Support. Intel may make changes to the Materials, or to
247 items referenced therein, at any time without notice, but is not obligated
248 to support, update or provide training for the Materials under the terms of
249 this Agreement. Intel offers free community and paid priority support
250 options. More information on these support options can be found at:
251 https://software.intel.com/content/www/us/en/develop/support/priority-support.html.
252
2537. LIMITATION OF LIABILITY.
254
2557.1 Intel will not be liable for any of the following losses or damages (whether
256 such losses or damages were foreseen, foreseeable, known or otherwise): (i)
257 loss of revenue; (ii) loss of actual or anticipated profits; (iii) loss of
258 the use of money; (iv) loss of anticipated savings; (v) loss of business;
259 (vi) loss of opportunity; (vii) loss of goodwill; (viii) loss of use of the
260 Materials; (ix) loss of reputation; (x) loss of, damage to, or corruption of
261 data; or (xi) any indirect, incidental, special or consequential loss of
262 damage however caused (including loss or damage of the type specified in
263 this Section 7).
264
2657.2 Intel's total cumulative liability to You, including for direct damages for
266 claims relating to this Agreement, and whether for breach of contract,
267 negligence, or for any other reason, will not exceed $100.
268
2697.3 You acknowledge that the limitations of liability provided in this Section 7
270 are an essential part of this Agreement. You agree that the limitations of
271 liability provided in this Agreement with respect to Intel will be conveyed
272 to and made binding upon any customer of Yours that acquires the
273 Redistributables.
274
2758. USER SUBMISSIONS. Should you provide Intel with comments, modifications,
276 corrections, enhancements or other input ("Feedback") related to the
277 Materials, Intel will be free to use, disclose, reproduce, license or
278 otherwise distribute or exploit the Feedback in its sole discretion without
279 any obligations or restrictions of any kind, including without limitation,
280 intellectual property rights or licensing obligations. If You wish to provide
281 Intel with information that You intend to be treated as confidential
282 information, Intel requires that such confidential information be provided
283 pursuant to a non-disclosure agreement ("NDA"); please contact Your Intel
284 representative to ensure the proper NDA is in place.
285
2869. NON-DISCLOSURE. Information provided by Intel to You may include information
287 marked as confidential. You must treat such information as confidential under
288 the terms of the applicable NDA between Intel and You. If You have not
289 entered into an NDA with Intel, You must not disclose, distribute or make use
290 of any information marked as confidential, except as expressly authorized in
291 writing by Intel. Intel retains all rights in and to its confidential
292 information specifications, designs, engineering details, discoveries,
293 inventions, patents, copyrights, trademarks, trade secrets, and other
294 proprietary rights relating to the Materials. Any breach by You of the
295 confidentiality obligations provided for in this Section 9 will cause
296 irreparable injury to Intel for which money damages may be inadequate to
297 compensate Intel for losses arising from such a breach. Intel may obtain
298 equitable relief, including injunctive relief, if You breach or threaten to
299 breach Your confidentiality obligations.
300
30110. TERM AND TERMINATION. This Agreement becomes effective on the date You
302 accept this Agreement and will continue until terminated as provided for in
303 this Agreement. The term for any Pre-Release Materials terminates upon
304 release of a commercial version. This Agreement will terminate if You are in
305 breach of any of its terms and conditions. Upon termination, You will
306 promptly destroy the Materials and all copies. In the event of termination of
307 this Agreement, Your license to any Redistributables distributed by You in
308 accordance with the terms and conditions of this Agreement, prior to the
309 effective date of such termination, will survive any such termination of this
310 Agreement. Sections 1, 2.1.D(4)(v), 2.2, 2.3.A(iii), 2.3.B(iii), 3.3, 5, 6,
311 7, 8, 9, 10 (with respect to these survival provisions in the last sentence),
312 and 12 will survive expiration or termination of this Agreement.
313
31411. U.S. GOVERNMENT RESTRICTED RIGHTS. The technical data and computer software
315 covered by this license is a "Commercial Item," as such term is defined by
316 the FAR 2.101 (48 C.F.R. 2.101) and is "commercial computer software" and
317 "commercial computer software documentation" as specified under FAR 12.212
318 (48 C.F.R. 12.212) or DFARS 227.7202 (48 C.F.R. 227.7202), as applicable.
319 This commercial computer software and related documentation is provided to
320 end users for use by and on behalf of the U.S. Government with only those
321 rights as are granted to all other end users pursuant to the terms and
322 conditions of this Agreement.
323
32412. GENERAL PROVISIONS.
325
32612.1 ENTIRE AGREEMENT. This Agreement contains the complete and exclusive
327 agreement and understanding between the parties concerning the subject
328 matter of this Agreement, and supersedes all prior and contemporaneous
329 proposals, agreements, understanding, negotiations, representations,
330 warranties, conditions, and communications, oral or written, between the
331 parties relating to the same subject matter. Each party acknowledges and
332 agrees that in entering into this Agreement it has not relied on, and will
333 not be entitled to rely on, any oral or written representations,
334 warranties, conditions, understanding, or communications between the
335 parties that are not expressly set forth in this Agreement. The express
336 provisions of this Agreement control over any course of performance, course
337 of dealing, or usage of the trade inconsistent with any of the provisions
338 of this Agreement. The provisions of this Agreement will prevail
339 notwithstanding any different, conflicting, or additional provisions that
340 may appear on any purchase order, acknowledgement, invoice, or other
341 writing issued by either party in connection with this Agreement. No
342 modification or amendment to this Agreement will be effective unless in
343 writing and signed by authorized representatives of each party, and must
344 specifically identify this Agreement by its title and version (e.g., "Intel
345 End User License Agreement for Developer Tools (Version October 2021)");
346 except that Intel may make changes to this Agreement as it distributes new
347 versions of the Materials. When changes are made, Intel will make a new
348 version of the Agreement available on its website. If You received a copy
349 of this Agreement translated into another language, the English language
350 version of this Agreement will prevail in the event of any conflict between
351 versions.
352
35312.2 EXPORT. You acknowledge that the Materials and all related technical
354 information are subject to export controls and you agree to comply with all
355 laws and regulations of the United States and other applicable governments
356 governing export, re-export, import, transfer, distribution, and use of the
357 Materials. In particular, but without limitation, the Materials may not be
358 exported or re-exported (i) into any U.S. embargoed countries or (ii) to
359 any person or entity listed on a denial order published by the U.S.
360 government or any other applicable governments. By using the Materials, You
361 represent and warrant that You are not located in any such country or on
362 any such list. You also agree that You will not use the Materials for, or
363 sell or transfer them to a third party who is known or suspected to be
364 involved in, any purposes prohibited by the U.S. government or other
365 applicable governments, including, without limitation, the development,
366 design, manufacture, or production of nuclear, missile, chemical or
367 biological weapons.
368
36912.3 GOVERNING LAW, JURISDICTION, AND VENUE. All disputes arising out of or
370 related to this Agreement, whether based on contract, tort, or any other
371 legal or equitable theory, will in all respects be governed by, and
372 construed and interpreted under, the laws of the United States of America
373 and the State of Delaware, without reference to conflict of laws
374 principles. The parties agree that the United Nations Convention on
375 Contracts for the International Sale of Goods (1980) is specifically
376 excluded from and will not apply to this Agreement. All disputes arising
377 out of or related to this Agreement, whether based on contract, tort, or
378 any other legal or equitable theory, will be subject to the exclusive
379 jurisdiction of the courts of the State of Delaware or of the Federal
380 courts sitting in that State. Each party submits to the personal
381 jurisdiction of those courts and waives all objections to that jurisdiction
382 and venue for those disputes.
383
38412.4 SEVERABILITY. The parties intend that if a court holds that any provision
385 or part of this Agreement is invalid or unenforceable under applicable law,
386 the court will modify the provision to the minimum extent necessary to make
387 it valid and enforceable, or if it cannot be made valid and enforceable,
388 the parties intend that the court will sever and delete the provision or
389 part from this Agreement. Any change to or deletion of a provision or part
390 of this Agreement under this Section will not affect the validity or
391 enforceability of the remainder of this Agreement, which will continue in
392 full force and effect.
diff --git a/custom-licenses/ISSL b/custom-licenses/ISSL
new file mode 100644
index 00000000..f987e502
--- /dev/null
+++ b/custom-licenses/ISSL
@@ -0,0 +1,73 @@
1Intel Simplified Software License (Version August 2021)
2
3Use and Redistribution. You may use and redistribute the software (the
4"Software"), without modification, provided the following conditions are met:
5
6* Redistributions must reproduce the above copyright notice and the following
7 terms of use in the Software and in the documentation and/or other materials
8 provided with the distribution.
9* Neither the name of Intel nor the names of its suppliers may be used to
10 endorse or promote products derived from this Software without specific
11 prior written permission.
12* No reverse engineering, decompilation, or disassembly of this Software is
13 permitted.
14
15No other licenses. Except as provided in the preceding section, Intel grants no
16licenses or other rights by implication, estoppel or otherwise to, patent,
17copyright, trademark, trade name, service mark or other intellectual property
18licenses or rights of Intel.
19
20Third party software. The Software may contain Third Party Software. "Third
21Party Software" is open source software, third party software, or other Intel
22software that may be identified in the Software itself or in the files (if any)
23listed in the "third-party-software.txt" or similarly named text file included
24with the Software. Third Party Software, even if included with the distribution
25of the Software, may be governed by separate license terms, including without
26limitation, open source software license terms, third party software license
27terms, and other Intel software license terms. Those separate license terms
28solely govern your use of the Third Party Software, and nothing in this license
29limits any rights under, or grants rights that supersede, the terms of the
30applicable license terms.
31
32DISCLAIMER. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
33WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
34MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE
35DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS
36WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE
37THAT YOU ARE FULLY RESPONSIBLE FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND
38ATTORNEYS' FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM ALLEGES THAT
39INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE SOFTWARE.
40
41LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT,
42INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
43BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
44DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
45LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
46OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
47ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
48
49No support. Intel may make changes to the Software, at any time without notice,
50and is not obligated to support, update or provide training for the Software.
51
52Termination. Your right to use the Software is terminated in the event of your
53breach of this license.
54
55Feedback. Should you provide Intel with comments, modifications, corrections,
56enhancements or other input ("Feedback") related to the Software, Intel will be
57free to use, disclose, reproduce, license or otherwise distribute or exploit the
58Feedback in its sole discretion without any obligations or restrictions of any
59kind, including without limitation, intellectual property rights or licensing
60obligations.
61
62Compliance with laws. You agree to comply with all relevant laws and regulations
63governing your use, transfer, import or export (or prohibition thereof) of the
64Software.
65
66Governing law. All disputes will be governed by the laws of the United States of
67America and the State of Delaware without reference to conflict of law
68principles and subject to the exclusive jurisdiction of the state or federal
69courts sitting in the State of Delaware, and each party agrees that it submits
70to the personal jurisdiction and venue of those courts and waives any
71objections. The United Nations Convention on Contracts for the International
72Sale of Goods (1980) is specifically excluded and will not apply to the
73Software.
diff --git a/custom-licenses/syrah b/custom-licenses/syrah
new file mode 100644
index 00000000..5cd7f4e6
--- /dev/null
+++ b/custom-licenses/syrah
@@ -0,0 +1,32 @@
1Copyright (c) 2009, Stanford University, and authors listed below.
2All rights reserved.
3
4Original authors:
5 Solomon Boulos
6
7Redistribution and use in source and binary forms, with or without
8modification, are permitted provided that the following conditions are
9met:
10
11Redistributions of source code must retain the above copyright notice,
12this list of conditions and the following disclaimer.
13
14Redistributions in binary form must reproduce the above copyright
15notice, this list of conditions and the following disclaimer in the
16documentation and/or other materials provided with the distribution.
17
18Neither the name of Stanford University nor the names of its
19contributors may be used to endorse or promote products derived from
20this software without specific prior written permission.
21
22THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file
diff --git a/documentation/building_and_booting.md b/documentation/building_and_booting.md
new file mode 100644
index 00000000..478a4fb0
--- /dev/null
+++ b/documentation/building_and_booting.md
@@ -0,0 +1,134 @@
1### Building the Intel BSP layers
2
3The intel-common BSP provide a few carefully selected tune options and
4generic hardware support to cover the majority of current Intel CPUs and
5devices. The naming follows the convention of intel-<TUNE>-<BITS>, where
6TUNE is the gcc cpu-type (used with mtune and march typically) and BITS
7is either 32 bit or 64 bit.
8
9In order to build an image with BSP support for a given release, you
10need to clone the meta-intel layer from git repository:
11```
12git clone https://git.yoctoproject.org/meta-intel
13```
14
15Check out the appropriate branch or release tags. The branch name and tags
16would align with Yocto Project
17[Release Codenames](https://wiki.yoctoproject.org/wiki/Releases).
18Assuming meta-intel repository is cloned at the top-level of
19OE-Core build tree, you can build a BSP image by adding the location of
20the meta-intel layer to bblayers.conf:
21```
22BBLAYERS = " \
23 /openembedded-core/meta \
24 /openembedded-core/meta-intel "
25```
26
27To enable a particular machine, add a MACHINE line naming the BSP
28to the local.conf file:
29```
30MACHINE ?= "intel-corei7-64"
31```
32
33where this can be replaced by other MACHINE types available:
34
35 - intel-core2-32
36
37 This BSP is optimized for the Core2 family of CPUs as well as all
38 Atom CPUs prior to the Silvermont core.
39
40 - intel-corei7-64
41
42 This BSP is optimized for Nehalem and later Core and Xeon CPUs as
43 well as Silvermont and later Atom CPUs, such as the Baytrail SoCs.
44
45 - intel-skylake-64
46
47 This BSP uses [x86-64-v3 tuning](https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html).
48
49You should then be able to build an image as such:
50```
51$ source oe-init-build-env
52$ bitbake core-image-sato
53```
54
55At the end of a successful build, you should have an image that
56you can boot from a USB flash drive.
57
58
59## Booting the intel-common BSP images
60
61If you've built your own image, you'll find the bootable
62image in the build/tmp/deploy/images/{MACHINE} directory, where
63'MACHINE' refers to the machine name used in the build.
64
65Under Linux, insert a USB flash drive. Assuming the USB flash drive
66takes device /dev/sdf, use dd to copy the image to it. Before the image
67can be burned onto a USB drive, it should be un-mounted. Some Linux distros
68may automatically mount a USB drive when it is plugged in. Using USB device
69/dev/sdf as an example, find all mounted partitions:
70```
71$ mount | grep sdf
72```
73
74and un-mount those that are mounted, for example:
75```
76$ umount /dev/sdf1
77$ umount /dev/sdf2
78```
79
80Now burn the image onto the USB drive:
81```
82$ sudo dd if=core-image-sato-intel-corei7-64.wic of=/dev/sdf status=progress
83$ sync
84$ eject /dev/sdf
85```
86
87This should give you a bootable USB flash device. Insert the device
88into a bootable USB socket on the target, and power on. This should
89result in a system booted to the Sato graphical desktop.
90
91If you want a terminal, use the arrows at the top of the UI to move to
92different pages of available applications, one of which is named
93'Terminal'. Clicking that should give you a root terminal.
94
95If you want to ssh into the system, you can use the root terminal to
96ifconfig the IP address and use that to ssh in. The root password is
97empty, so to log in type 'root' for the user name and hit 'Enter' at
98the Password prompt: and you should be in.
99
100If you find you're getting corrupt images on the USB (it doesn't show
101the syslinux boot: prompt, or the boot: prompt contains strange
102characters), try doing this first:
103```
104$ dd if=/dev/zero of=/dev/sdf bs=1M count=512
105```
106
107## Building the installer image
108
109If you plan to install your image to your target machine, you can build a wic
110based installer image instead of default wic image. To build it, you need to
111add below configuration to local.conf :
112
113```
114WKS_FILE = "image-installer.wks.in"
115IMAGE_FSTYPES:append = " ext4"
116IMAGE_TYPEDEP:wic = "ext4"
117INITRD_IMAGE_LIVE="core-image-minimal-initramfs"
118do_image_wic[depends] += "${INITRD_IMAGE_LIVE}:do_image_complete"
119do_rootfs[depends] += "virtual/kernel:do_deploy"
120IMAGE_BOOT_FILES:append = "\
121 ${KERNEL_IMAGETYPE} \
122 microcode.cpio \
123 ${IMGDEPLOYDIR}/${IMAGE_BASENAME}-${MACHINE}.rootfs.ext4;rootfs.img \
124 ${@bb.utils.contains('EFI_PROVIDER', 'grub-efi', 'grub-efi-bootx64.efi;EFI/BOOT/bootx64.efi', '', d)} \
125 ${@bb.utils.contains('EFI_PROVIDER', 'grub-efi', '${IMAGE_ROOTFS}/boot/EFI/BOOT/grub.cfg;EFI/BOOT/grub.cfg', '', d)} \
126 ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', 'systemd-bootx64.efi;EFI/BOOT/bootx64.efi', '', d)} \
127 ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', '${IMAGE_ROOTFS}/boot/loader/loader.conf;loader/loader.conf ', '', d)} \
128 ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', '${IMAGE_ROOTFS}/boot/loader/entries/boot.conf;loader/entries/boot.conf', '', d)} "
129```
130
131Burn the wic image onto USB flash device, insert the device to target machine
132and power on. This should start the installation process.
133
134
diff --git a/documentation/dpcpp-compiler.md b/documentation/dpcpp-compiler.md
new file mode 100644
index 00000000..b709a685
--- /dev/null
+++ b/documentation/dpcpp-compiler.md
@@ -0,0 +1,107 @@
1Intel(R) oneAPI DPC++/C++ Compiler (ICX) toolchain
2==========================================================================
3
4Get Started with the Intel oneAPI DPC++/C++ Compiler:
5
6https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html#
7
8
9Getting Started
10===============
11
12Clone the required layers and include them in bblayers.conf:
13
14```
15git clone https://git.openembedded.org/openembedded-core
16git clone https://git.openembedded.org/bitbake
17git clone https://git.openembedded.org/meta-openembedded
18git clone https://github.com/kraj/meta-clang.git
19git clone https://git.yoctoproject.org/meta-intel
20
21$ source openembedded-core/oe-init-build-env
22
23$ bitbake-layers add-layer ../meta-openembedded/meta-oe/
24$ bitbake-layers add-layer ../meta-intel
25$ bitbake-layers add-layer ../meta-clang
26```
27
28Distro
29======
30
31Note that oneAPI DPC++/C++ compiler currently only works when the vendor string is "oe".
32
33```
34DISTRO ?= "nodistro"
35```
36
37MACHINE configuration
38=====================
39
40```
41MACHINE ?= "intel-skylake-64"
42```
43
44Package installation
45====================
46
47```
48# To include OpenCL driver that might be needed when compiling SYCL programs, include:
49IMAGE_INSTALL:append = " intel-compute-runtime intel-graphics-compiler"
50
51# To install only runtime libraries, include:
52IMAGE_INSTALL:append = " intel-oneapi-dpcpp-cpp-runtime intel-oneapi-dpcpp-cpp-runtime-dev"
53
54# To install the toolchain, include:
55IMAGE_INSTALL:append = " intel-oneapi-dpcpp-cpp intel-oneapi-dpcpp-cpp-dev"
56```
57in local.conf.
58
59Build an image
60==============
61
62```
63$ bitbake core-image-minimal
64```
65
66Including oneAPI C++/DPC++ compiler in generated SDK toolchain
67==============================================================
68
69The compiler is not included in the generated SDK by default. If it is expected to be part of SDK, add ICXSDK = "1" in local.conf:
70
71```
72ICXSDK = "1"
73```
74
75Generate SDK:
76```
77bitbake core-image-minimal -c populate_sdk
78```
79
80
81To setup PATH variables on target
82=================================
83
84Once image is booted successfully, some variables would need to be exported to make sure compiler can be used:
85
86```
87$ source /opt/intel/oneapi/compiler/2022.1.0/env/vars.sh
88
89$ mkdir -p /lib64
90
91$ ln -sf /lib/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2
92```
93
94Build application and run
95=========================
96
97To compile a sycl application, for example:
98
99```
100$ icpx --target=x86_64-oe-linux -fsycl simple-sycl-app.c -o simple-sycl-app
101```
102
103To run:
104
105```
106$ ./simple-sycl-app
107```
diff --git a/documentation/openvino.md b/documentation/openvino.md
new file mode 100644
index 00000000..9794b928
--- /dev/null
+++ b/documentation/openvino.md
@@ -0,0 +1,92 @@
1Build a Yocto Image with OpenVINO™ toolkit
2==========================================
3
4Follow the [Yocto Project official documentation](https://docs.yoctoproject.org/brief-yoctoprojectqs/index.html#compatible-linux-distribution) to set up and configure your host machine to be compatible with BitBake.
5
6## Step 1: Set Up Environment
7
81. Clone the repositories.
9
10```
11 git clone https://git.yoctoproject.org/git/poky
12 git clone https://github.com/openembedded/meta-openembedded
13 git clone https://git.yoctoproject.org/git/meta-intel
14 git clone https://github.com/intel/meta-openvino
15```
16
17
182. Set up the OpenEmbedded build environment.
19
20```
21 source poky/oe-init-build-env
22
23```
24
25
26
273. Add BitBake layers.
28
29
30```
31 bitbake-layers add-layer ../meta-openembedded/meta-oe
32 bitbake-layers add-layer ../meta-openembedded/meta-python
33 bitbake-layers add-layer ../meta-intel
34 bitbake-layers add-layer ../meta-openvino
35
36```
37
38
394. Set up BitBake configurations.
40 Include extra configuration in the `conf/local.conf` file in your build directory as required.
41
42
43```
44 MACHINE = "intel-skylake-64"
45
46 # Enable building OpenVINO Python API.
47 # This requires meta-python layer to be included in bblayers.conf.
48 PACKAGECONFIG:append:pn-openvino-inference-engine = " python3"
49
50 # This adds OpenVINO related libraries in the target image.
51 CORE_IMAGE_EXTRA_INSTALL:append = " openvino-inference-engine"
52
53 # This adds OpenVINO samples in the target image.
54 CORE_IMAGE_EXTRA_INSTALL:append = " openvino-inference-engine-samples"
55
56 # Include OpenVINO Python API package in the target image.
57 CORE_IMAGE_EXTRA_INSTALL:append = " openvino-inference-engine-python3"
58
59```
60
61## Step 2: Build a Yocto Image with OpenVINO Packages
62
63Run BitBake to build your image with OpenVINO packages. For example, to build the minimal image, run the following command:
64
65
66```
67 bitbake core-image-minimal
68
69```
70
71## Step 3: Verify the Yocto Image
72
73Verify that OpenVINO packages were built successfully. Run the following command:
74
75```
76 oe-pkgdata-util list-pkgs | grep openvino
77
78```
79
80
81If the image build is successful, it will return the list of packages as below:
82
83```
84 openvino-inference-engine
85 openvino-inference-engine-dbg
86 openvino-inference-engine-dev
87 openvino-inference-engine-python3
88 openvino-inference-engine-samples
89 openvino-inference-engine-src
90 openvino-inference-engine-doc
91
92```
diff --git a/documentation/reporting_bugs.md b/documentation/reporting_bugs.md
new file mode 100644
index 00000000..5fbc3d27
--- /dev/null
+++ b/documentation/reporting_bugs.md
@@ -0,0 +1,22 @@
1## Reporting bugs
2
3If you have problems with or questions about a particular BSP, please
4contact the maintainer listed in the [Maintainer](../README.md#maintainers) section directly (cc:ing
5the Yocto mailing list puts it in the archive and helps other people
6who might have the same questions in the future), but please try to do
7the following first:
8
9- look in the [Yocto Project Bugzilla](http://bugzilla.yoctoproject.org/) to see if a
10 problem has already been reported
11
12- look through recent entries of the [meta-intel](https://lists.yoctoproject.org/g/meta-intel/messages)
13 and [Yocto Archives](https://lists.yoctoproject.org/g/yocto/messages) mailing list archives to see
14 if other people have run into similar problems or had similar questions answered.
15
16If you believe you have encountered a bug, you can open a new bug and
17enter the details in the [Yocto Project Bugzilla](https://bugzilla.yoctoproject.org/).
18If you're relatively certain that it's a bug against the BSP itself, please use the
19'BSPs | bsps-meta-intel' category for the bug; otherwise, please submit the bug against
20the most likely category for the problem. if you're wrong, it's not a big deal and
21the bug will be recategorized upon triage.
22
diff --git a/documentation/secureboot/README b/documentation/secureboot/README
deleted file mode 100644
index 3d5703bb..00000000
--- a/documentation/secureboot/README
+++ /dev/null
@@ -1,38 +0,0 @@
1Currently, only one implementation of Secure Boot is available out of the box,
2which is using a single signed EFI application to directly boot the kernel with
3an optional initramfs.
4
5This can be added to your build either through local.conf, or via your own
6custom image recipe.
7
8If you are adding it via local.conf, set the following variables:
9
10IMAGE_FEATURES += "secureboot"
11WKS_FILE = "generic-bootdisk.wks.in"
12SECURE_BOOT_SIGNING_KEY = "/path/to/your/signing/key"
13SECURE_BOOT_SIGNING_CERT = "/path/to/your/signing/cert"
14IMAGE_CLASSES += "uefi-comboapp"
15
16If working with an image recipe, you can inherit uefi-comboapp directly instead
17of using the IMAGE_CLASSES variable.
18
19The signing keys and certs can be created via openssl commands. Here's an
20example:
21openssl req -new -x509 -newkey rsa:2048 -subj "/CN=your-subject/" -keyout \
22your-key.key -out your-key.crt -days 365 -nodes -sha256
23openssl x509 -in your-key.crt -out your-key.cer -outform DER
24
25The .crt file is your SECURE_BOOT_SIGNING_CERT, and the .key file is your
26SECURE_BOOT_SIGNING_KEY.
27
28You should enroll the .crt key in your firmware under the PK, KEK, and DB
29options (methods are different depending on your firmware). If a key should ever
30become invalid, enroll it under DBX to blacklist it.
31
32The comboapp can be further manipulated in a number of ways. You can modify the
33kernel command line via the APPEND variable, you can change the default UUID via
34the DISK_SIGNATURE_UUID variable, and you can modify the contents of the
35initramfs via the INITRD_IMAGE or INITRD_LIVE variables.
36
37A simple Secure Boot enabled image used for testing can be viewed at:
38common/recipes-selftest/images/secureboot-selftest-image-signed.bb
diff --git a/documentation/submitting_patches.md b/documentation/submitting_patches.md
new file mode 100644
index 00000000..f36c4b08
--- /dev/null
+++ b/documentation/submitting_patches.md
@@ -0,0 +1,26 @@
1## Guidelines for submitting patches
2
3Please submit any patches against meta-intel BSPs to the
4[meta-intel mailing list](https://lists.yoctoproject.org/g/meta-intel)
5(email: meta-intel@lists.yoctoproject.org). Also, if your patches are
6available via a public git repository, please also include a URL to
7the repo and branch containing your patches as that makes it easier
8for maintainers to grab and test your patches.
9
10The patches should follow the suggestions outlined in the
11[Yocto Project and OpenEmbedded Contributor Guide](https://docs.yoctoproject.org/dev/contributor-guide/index.html).
12In addition, for any non-trivial patch, provide information about how you
13tested the patch, and for any non-trivial or non-obvious testing
14setup, provide details of that setup.
15
16Doing a quick 'git log' in meta-intel will provide you with many
17examples of good example commits if you have questions about any
18aspect of the preferred format.
19
20The meta-intel maintainers will do their best to review and/or pull in
21a patch or patch sets within 24 hours of the time it was posted. For
22larger and/or more involved patches and patch sets, the review process
23may take longer.
24
25Please see the [maintainers](../README.md#maintainers) section for the list of maintainers. It's also
26a good idea to cc: the maintainer, if applicable.
diff --git a/documentation/tested_hardware.md b/documentation/tested_hardware.md
new file mode 100644
index 00000000..1fa81454
--- /dev/null
+++ b/documentation/tested_hardware.md
@@ -0,0 +1,21 @@
1## Tested Hardware
2
3The following undergo regular testing with their respective MACHINE types:
4
5- intel-corei7-64:
6 * Alder Lake-P/S/PS
7 * Amston Lake
8 * Elkhart Lake
9 * Metor Lake-P
10 * Raptor Lake-P/S
11 * Tiger Lake
12
13- intel-skylake-64:
14 * Alder Lake-P/S/PS
15 * Amston Lake
16 * Metor Lake-P
17 * Raptor Lake-P/S
18 * Tiger Lake
19
20- intel-core2-32:
21 * MinnowBoard Turbot
diff --git a/dynamic-layers/clang-layer/recipes-core/dnn/files/run-ptest b/dynamic-layers/clang-layer/recipes-core/dnn/files/run-ptest
new file mode 100755
index 00000000..82d4df58
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-core/dnn/files/run-ptest
@@ -0,0 +1,15 @@
1#!/bin/sh
2
3cd tests
4./api-c
5if [ $? -eq 0 ]; then
6 echo 'PASS: api-c'
7else
8 echo 'FAIL: api-c'
9fi
10./test_c_symbols-c
11if [ $? -eq 0 ]; then
12 echo 'PASS: test_c_symbols-c'
13else
14 echo 'FAIL: test_c_symbols-c'
15fi
diff --git a/dynamic-layers/clang-layer/recipes-core/dnn/onednn_3.5.3.bb b/dynamic-layers/clang-layer/recipes-core/dnn/onednn_3.5.3.bb
new file mode 100644
index 00000000..7a627e83
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-core/dnn/onednn_3.5.3.bb
@@ -0,0 +1,57 @@
1HOMEPAGE = "https://www.oneapi.com"
2SUMMARY = "Deep Neural Network Library"
3DESCRIPTION = "This software is a user mode library that accelerates\
4deep-learning applications and frameworks on Intel architecture."
5LICENSE = "Apache-2.0 & BSD-3-Clause & BSL-1.0"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=3b64000f6e7d52516017622a37a94ce9 \
7 file://tests/gtests/gtest/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a \
8 file://src/cpu/x64/xbyak/COPYRIGHT;md5=3b9bf048d063d54cdb28964db558bcc7 \
9 file://src/common/ittnotify/LICENSE.BSD;md5=e671ff178b24a95a382ba670503c66fb \
10 "
11SECTION = "lib"
12
13inherit pkgconfig cmake ptest
14
15DNN_BRANCH = "rls-v${@'.'.join(d.getVar('PV').split('.')[0:2])}"
16
17S = "${WORKDIR}/git"
18SRCREV = "66f0cb9eb66affd2da3bf5f8d897376f04aae6af"
19SRC_URI = "git://github.com/oneapi-src/oneDNN.git;branch=${DNN_BRANCH};protocol=https \
20 file://run-ptest \
21 "
22
23UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$"
24
25CVE_PRODUCT = "intel:math_kernel_library"
26
27COMPATIBLE_HOST = '(x86_64).*-linux'
28COMPATIBLE_HOST:libc-musl = 'null'
29
30EXTRA_OECMAKE += " \
31 -DDNNL_LIBRARY_TYPE=SHARED \
32 -DDNNL_BUILD_EXAMPLES=ON \
33 -DDNNL_BUILD_TESTS=ON \
34 -DDNNL_CPU_RUNTIME=OMP \
35 -DDNNL_ARCH_OPT_FLAGS="" \
36 -DCMAKE_SKIP_RPATH=ON \
37 -DONEDNN_BUILD_GRAPH=OFF \
38 "
39
40PACKAGECONFIG ??= "gpu"
41PACKAGECONFIG[gpu] = "-DDNNL_GPU_RUNTIME=OCL, , opencl-headers virtual/opencl-icd, intel-compute-runtime"
42
43do_install:append () {
44 install -d ${D}${bindir}/mkl-dnn/tests/benchdnn/inputs
45 install -m 0755 ${B}/tests/benchdnn/benchdnn ${D}${bindir}/mkl-dnn/tests/benchdnn
46 cp -r ${B}/tests/benchdnn/inputs/* ${D}${bindir}/mkl-dnn/tests/benchdnn/inputs
47}
48
49do_install_ptest () {
50 install -d ${D}${PTEST_PATH}/tests
51 install -m 0755 ${B}/tests/api-c ${D}${PTEST_PATH}/tests
52 install -m 0755 ${B}/tests/test_c_symbols-c ${D}${PTEST_PATH}/tests
53}
54
55PACKAGES =+ "${PN}-test"
56
57FILES:${PN}-test = "${bindir}/mkl-dnn/*"
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/clang_%.bbappend b/dynamic-layers/clang-layer/recipes-devtools/clang/clang_%.bbappend
deleted file mode 100644
index f8d5a252..00000000
--- a/dynamic-layers/clang-layer/recipes-devtools/clang/clang_%.bbappend
+++ /dev/null
@@ -1,13 +0,0 @@
1FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/files:"
2
3DEPENDS_append = " opencl-clang-native"
4LLVM_TARGETS_TO_BUILD = "X86"
5
6do_install_append_intel-x86-common() {
7 DESTDIR=${D} ninja -v install-cmake-exports
8}
9
10LIBCPLUSPLUS = ""
11
12# undefined reference to `__atomic_load' on i*86.
13COMPATIBLE_HOST = '(x86_64).*-linux'
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-OpenCL-Change-type-of-block-pointer-for-OpenCL.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-OpenCL-Change-type-of-block-pointer-for-OpenCL.patch
deleted file mode 100644
index 1c491402..00000000
--- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-OpenCL-Change-type-of-block-pointer-for-OpenCL.patch
+++ /dev/null
@@ -1,156 +0,0 @@
1From 39a3ac0065c23d1e2d55dfd8792cc28a146a4307 Mon Sep 17 00:00:00 2001
2From: Alexey Bader <alexey.bader@intel.com>
3Date: Tue, 19 Feb 2019 15:19:06 +0000
4Subject: [PATCH 1/2] [OpenCL] Change type of block pointer for OpenCL
5
6Summary:
7
8For some reason OpenCL blocks in LLVM IR are represented as function pointers.
9These pointers do not point to any real function and never get called. Actually
10they point to some structure, which in turn contains pointer to the real block
11invoke function.
12This patch changes represntation of OpenCL blocks in LLVM IR from function
13pointers to pointers to `%struct.__block_literal_generic`.
14Such representation allows to avoid unnecessary bitcasts and simplifies
15further processing (e.g. translation to SPIR-V ) of the module for targets
16which do not support function pointers.
17
18Patch by: Alexey Sotkin.
19
20Reviewers: Anastasia, yaxunl, svenvh
21
22Reviewed By: Anastasia
23
24Subscribers: alexbatashev, cfe-commits
25
26Tags: #clang
27
28Differential Revision: https://reviews.llvm.org/D58277
29
30git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@354337 91177308-0d34-0410-b5e6-96231b3b80d8
31
32Upstream-Status: Backport
33[https://github.com/llvm-mirror/clang/commit/283f308bdb5893bab1f36791711346e746045f94]
34Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
35---
36 lib/CodeGen/CodeGenTypes.cpp | 4 +++-
37 test/CodeGenOpenCL/blocks.cl | 18 ++++++++----------
38 test/CodeGenOpenCL/cl20-device-side-enqueue.cl | 18 +++++++++---------
39 3 files changed, 20 insertions(+), 20 deletions(-)
40
41diff --git a/lib/CodeGen/CodeGenTypes.cpp b/lib/CodeGen/CodeGenTypes.cpp
42index 2acf1ac..93b3ebf 100644
43--- a/lib/CodeGen/CodeGenTypes.cpp
44+++ b/lib/CodeGen/CodeGenTypes.cpp
45@@ -637,7 +637,9 @@ llvm::Type *CodeGenTypes::ConvertType(QualType T) {
46
47 case Type::BlockPointer: {
48 const QualType FTy = cast<BlockPointerType>(Ty)->getPointeeType();
49- llvm::Type *PointeeType = ConvertTypeForMem(FTy);
50+ llvm::Type *PointeeType = CGM.getLangOpts().OpenCL
51+ ? CGM.getGenericBlockLiteralType()
52+ : ConvertTypeForMem(FTy);
53 unsigned AS = Context.getTargetAddressSpace(FTy);
54 ResultType = llvm::PointerType::get(PointeeType, AS);
55 break;
56diff --git a/test/CodeGenOpenCL/blocks.cl b/test/CodeGenOpenCL/blocks.cl
57index 675240c..19aacc3 100644
58--- a/test/CodeGenOpenCL/blocks.cl
59+++ b/test/CodeGenOpenCL/blocks.cl
60@@ -35,11 +35,10 @@ void foo(){
61 // SPIR: %[[block_captured:.*]] = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 }>, <{ i32, i32, i8 addrspace(4)*, i32 }>* %[[block]], i32 0, i32 3
62 // SPIR: %[[i_value:.*]] = load i32, i32* %i
63 // SPIR: store i32 %[[i_value]], i32* %[[block_captured]],
64- // SPIR: %[[blk_ptr:.*]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 }>* %[[block]] to i32 ()*
65- // SPIR: %[[blk_gen_ptr:.*]] = addrspacecast i32 ()* %[[blk_ptr]] to i32 () addrspace(4)*
66- // SPIR: store i32 () addrspace(4)* %[[blk_gen_ptr]], i32 () addrspace(4)** %[[block_B:.*]],
67- // SPIR: %[[blk_gen_ptr:.*]] = load i32 () addrspace(4)*, i32 () addrspace(4)** %[[block_B]]
68- // SPIR: %[[block_literal:.*]] = bitcast i32 () addrspace(4)* %[[blk_gen_ptr]] to %struct.__opencl_block_literal_generic addrspace(4)*
69+ // SPIR: %[[blk_ptr:.*]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 }>* %[[block]] to %struct.__opencl_block_literal_generic*
70+ // SPIR: %[[blk_gen_ptr:.*]] = addrspacecast %struct.__opencl_block_literal_generic* %[[blk_ptr]] to %struct.__opencl_block_literal_generic addrspace(4)*
71+ // SPIR: store %struct.__opencl_block_literal_generic addrspace(4)* %[[blk_gen_ptr]], %struct.__opencl_block_literal_generic addrspace(4)** %[[block_B:.*]],
72+ // SPIR: %[[block_literal:.*]] = load %struct.__opencl_block_literal_generic addrspace(4)*, %struct.__opencl_block_literal_generic addrspace(4)** %[[block_B]]
73 // SPIR: %[[invoke_addr:.*]] = getelementptr inbounds %struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic addrspace(4)* %[[block_literal]], i32 0, i32 2
74 // SPIR: %[[blk_gen_ptr:.*]] = bitcast %struct.__opencl_block_literal_generic addrspace(4)* %[[block_literal]] to i8 addrspace(4)*
75 // SPIR: %[[invoke_func_ptr:.*]] = load i8 addrspace(4)*, i8 addrspace(4)* addrspace(4)* %[[invoke_addr]]
76@@ -50,11 +49,10 @@ void foo(){
77 // AMDGCN: %[[block_captured:.*]] = getelementptr inbounds <{ i32, i32, i8*, i32 }>, <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block]], i32 0, i32 3
78 // AMDGCN: %[[i_value:.*]] = load i32, i32 addrspace(5)* %i
79 // AMDGCN: store i32 %[[i_value]], i32 addrspace(5)* %[[block_captured]],
80- // AMDGCN: %[[blk_ptr:.*]] = bitcast <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block]] to i32 () addrspace(5)*
81- // AMDGCN: %[[blk_gen_ptr:.*]] = addrspacecast i32 () addrspace(5)* %[[blk_ptr]] to i32 ()*
82- // AMDGCN: store i32 ()* %[[blk_gen_ptr]], i32 ()* addrspace(5)* %[[block_B:.*]],
83- // AMDGCN: %[[blk_gen_ptr:.*]] = load i32 ()*, i32 ()* addrspace(5)* %[[block_B]]
84- // AMDGCN: %[[block_literal:.*]] = bitcast i32 ()* %[[blk_gen_ptr]] to %struct.__opencl_block_literal_generic*
85+ // AMDGCN: %[[blk_ptr:.*]] = bitcast <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block]] to %struct.__opencl_block_literal_generic addrspace(5)*
86+ // AMDGCN: %[[blk_gen_ptr:.*]] = addrspacecast %struct.__opencl_block_literal_generic addrspace(5)* %[[blk_ptr]] to %struct.__opencl_block_literal_generic*
87+ // AMDGCN: store %struct.__opencl_block_literal_generic* %[[blk_gen_ptr]], %struct.__opencl_block_literal_generic* addrspace(5)* %[[block_B:.*]],
88+ // AMDGCN: %[[block_literal:.*]] = load %struct.__opencl_block_literal_generic*, %struct.__opencl_block_literal_generic* addrspace(5)* %[[block_B]]
89 // AMDGCN: %[[invoke_addr:.*]] = getelementptr inbounds %struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic* %[[block_literal]], i32 0, i32 2
90 // AMDGCN: %[[blk_gen_ptr:.*]] = bitcast %struct.__opencl_block_literal_generic* %[[block_literal]] to i8*
91 // AMDGCN: %[[invoke_func_ptr:.*]] = load i8*, i8** %[[invoke_addr]]
92diff --git a/test/CodeGenOpenCL/cl20-device-side-enqueue.cl b/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
93index 4732194..8445016 100644
94--- a/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
95+++ b/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
96@@ -11,7 +11,7 @@ typedef struct {int a;} ndrange_t;
97
98 // For a block global variable, first emit the block literal as a global variable, then emit the block variable itself.
99 // COMMON: [[BL_GLOBAL:@__block_literal_global[^ ]*]] = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 {{[0-9]+}}, i32 {{[0-9]+}}, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*)* [[INV_G:@[^ ]+]] to i8*) to i8 addrspace(4)*) }
100-// COMMON: @block_G = addrspace(1) constant void (i8 addrspace(3)*) addrspace(4)* addrspacecast (void (i8 addrspace(3)*) addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to void (i8 addrspace(3)*) addrspace(1)*) to void (i8 addrspace(3)*) addrspace(4)*)
101+// COMMON: @block_G = addrspace(1) constant %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*)
102
103 // For anonymous blocks without captures, emit block literals as global variable.
104 // COMMON: [[BLG1:@__block_literal_global[^ ]*]] = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 {{[0-9]+}}, i32 {{[0-9]+}}, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*)* {{@[^ ]+}} to i8*) to i8 addrspace(4)*) }
105@@ -77,9 +77,9 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) {
106 // COMMON: [[DEF_Q:%[0-9]+]] = load %opencl.queue_t{{.*}}*, %opencl.queue_t{{.*}}** %default_queue
107 // COMMON: [[FLAGS:%[0-9]+]] = load i32, i32* %flags
108 // COMMON: store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* [[INVL1:@__device_side_enqueue_block_invoke[^ ]*]] to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke
109- // B32: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block to void ()*
110- // B64: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32 addrspace(1)*, i32 }>* %block to void ()*
111- // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast void ()* [[BL]] to i8 addrspace(4)*
112+ // B32: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block to %struct.__opencl_block_literal_generic*
113+ // B64: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32 addrspace(1)*, i32 }>* %block to %struct.__opencl_block_literal_generic*
114+ // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast %struct.__opencl_block_literal_generic* [[BL]] to i8 addrspace(4)*
115 // COMMON-LABEL: call i32 @__enqueue_kernel_basic(
116 // COMMON-SAME: %opencl.queue_t{{.*}}* [[DEF_Q]], i32 [[FLAGS]], %struct.ndrange_t* byval [[NDR]]{{([0-9]+)?}},
117 // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8* bitcast ({{.*}} [[INVLK1:[^ ]+_kernel]] to i8*) to i8 addrspace(4)*),
118@@ -95,8 +95,8 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) {
119 // COMMON: [[WAIT_EVNT:%[0-9]+]] = addrspacecast %opencl.clk_event_t{{.*}}** %event_wait_list to %opencl.clk_event_t{{.*}}* addrspace(4)*
120 // COMMON: [[EVNT:%[0-9]+]] = addrspacecast %opencl.clk_event_t{{.*}}** %clk_event to %opencl.clk_event_t{{.*}}* addrspace(4)*
121 // COMMON: store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* [[INVL2:@__device_side_enqueue_block_invoke[^ ]*]] to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke
122- // COMMON: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32{{.*}}, i32{{.*}}, i32{{.*}} }>* %block3 to void ()*
123- // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast void ()* [[BL]] to i8 addrspace(4)*
124+ // COMMON: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32{{.*}}, i32{{.*}}, i32{{.*}} }>* %block3 to %struct.__opencl_block_literal_generic*
125+ // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast %struct.__opencl_block_literal_generic* [[BL]] to i8 addrspace(4)*
126 // COMMON-LABEL: call i32 @__enqueue_kernel_basic_events
127 // COMMON-SAME: (%opencl.queue_t{{.*}}* [[DEF_Q]], i32 [[FLAGS]], %struct.ndrange_t* {{.*}}, i32 2, %opencl.clk_event_t{{.*}}* addrspace(4)* [[WAIT_EVNT]], %opencl.clk_event_t{{.*}}* addrspace(4)* [[EVNT]],
128 // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8* bitcast ({{.*}} [[INVLK2:[^ ]+_kernel]] to i8*) to i8 addrspace(4)*),
129@@ -300,13 +300,13 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) {
130 // Emits global block literal [[BLG8]] and invoke function [[INVG8]].
131 // The full type of these expressions are long (and repeated elsewhere), so we
132 // capture it as part of the regex for convenience and clarity.
133- // COMMON: store void () addrspace(4)* addrspacecast (void () addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to void () addrspace(1)*) to void () addrspace(4)*), void () addrspace(4)** %block_A
134+ // COMMON: store %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), %struct.__opencl_block_literal_generic addrspace(4)** %block_A
135 void (^const block_A)(void) = ^{
136 return;
137 };
138
139 // Emits global block literal [[BLG9]] and invoke function [[INVG9]].
140- // COMMON: store void (i8 addrspace(3)*) addrspace(4)* addrspacecast (void (i8 addrspace(3)*) addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG9]] to void (i8 addrspace(3)*) addrspace(1)*) to void (i8 addrspace(3)*) addrspace(4)*), void (i8 addrspace(3)*) addrspace(4)** %block_B
141+ // COMMON: store %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG9]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), %struct.__opencl_block_literal_generic addrspace(4)** %block_B
142 void (^const block_B)(local void *) = ^(local void *a) {
143 return;
144 };
145@@ -346,7 +346,7 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) {
146 // COMMON: store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* [[INVL3:@__device_side_enqueue_block_invoke[^ ]*]] to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke
147 // COMMON: [[DEF_Q:%[0-9]+]] = load %opencl.queue_t{{.*}}*, %opencl.queue_t{{.*}}** %default_queue
148 // COMMON: [[FLAGS:%[0-9]+]] = load i32, i32* %flags
149- // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast void ()* {{.*}} to i8 addrspace(4)*
150+ // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast %struct.__opencl_block_literal_generic* {{.*}} to i8 addrspace(4)*
151 // COMMON-LABEL: call i32 @__enqueue_kernel_basic(
152 // COMMON-SAME: %opencl.queue_t{{.*}}* [[DEF_Q]], i32 [[FLAGS]], %struct.ndrange_t* byval [[NDR]]{{([0-9]+)?}},
153 // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8* bitcast ({{.*}} [[INVLK3:[^ ]+_kernel]] to i8*) to i8 addrspace(4)*),
154--
1551.8.3.1
156
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-Update-LowerOpenCL-pass-to-handle-new-blocks-represn.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-Update-LowerOpenCL-pass-to-handle-new-blocks-represn.patch
deleted file mode 100644
index 4a528674..00000000
--- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-Update-LowerOpenCL-pass-to-handle-new-blocks-represn.patch
+++ /dev/null
@@ -1,1119 +0,0 @@
1From 9ce0fe02fd6cda5fb29fbb0d5037a1798a810b8a Mon Sep 17 00:00:00 2001
2From: Alexey Sotkin <alexey.sotkin@intel.com>
3Date: Thu, 21 Feb 2019 17:14:36 +0300
4Subject: [PATCH 1/3] Update LowerOpenCL pass to handle new blocks
5 represntation in LLVM IR
6
7Upstream-Status: Backport
8[https://github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/bd6ddfaf7232cd81c7f2fe9877e66f286731bd8e]
9Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
10---
11 lib/SPIRV/SPIRVLowerOCLBlocks.cpp | 413 ++++++++----------------------
12 test/global_block.ll | 71 ++---
13 test/literal-struct.ll | 31 ++-
14 test/transcoding/block_w_struct_return.ll | 47 ++--
15 test/transcoding/enqueue_kernel.ll | 237 ++++++++++-------
16 5 files changed, 317 insertions(+), 482 deletions(-)
17
18diff --git a/lib/SPIRV/SPIRVLowerOCLBlocks.cpp b/lib/SPIRV/SPIRVLowerOCLBlocks.cpp
19index 50e1838..b42a4ec 100644
20--- a/lib/SPIRV/SPIRVLowerOCLBlocks.cpp
21+++ b/lib/SPIRV/SPIRVLowerOCLBlocks.cpp
22@@ -1,303 +1,110 @@
23-//===- SPIRVLowerOCLBlocks.cpp - OCL Utilities ----------------------------===//
24-//
25-// The LLVM/SPIRV Translator
26-//
27-// This file is distributed under the University of Illinois Open Source
28-// License. See LICENSE.TXT for details.
29-//
30-// Copyright (c) 2018 Intel Corporation. All rights reserved.
31-//
32-// Permission is hereby granted, free of charge, to any person obtaining a
33-// copy of this software and associated documentation files (the "Software"),
34-// to deal with the Software without restriction, including without limitation
35-// the rights to use, copy, modify, merge, publish, distribute, sublicense,
36-// and/or sell copies of the Software, and to permit persons to whom the
37-// Software is furnished to do so, subject to the following conditions:
38-//
39-// Redistributions of source code must retain the above copyright notice,
40-// this list of conditions and the following disclaimers.
41-// Redistributions in binary form must reproduce the above copyright notice,
42-// this list of conditions and the following disclaimers in the documentation
43-// and/or other materials provided with the distribution.
44-// Neither the names of Intel Corporation, nor the names of its
45-// contributors may be used to endorse or promote products derived from this
46-// Software without specific prior written permission.
47-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
48-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
49-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
50-// CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
51-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
52-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH
53-// THE SOFTWARE.
54-//
55-//===----------------------------------------------------------------------===//
56-//
57-// SPIR-V specification doesn't allow function pointers, so SPIR-V translator
58-// is designed to fail if a value with function type (except calls) is occured.
59-// Currently there is only two cases, when function pointers are generating in
60-// LLVM IR in OpenCL - block calls and device side enqueue built-in calls.
61-//
62-// In both cases values with function type used as intermediate representation
63-// for block literal structure.
64-//
65-// This pass is designed to find such cases and simplify them to avoid any
66-// function pointer types occurrences in LLVM IR in 4 steps.
67-//
68-// 1. Find all function pointer allocas, like
69-// %block = alloca void () *
70-//
71-// Then find a single store to that alloca:
72-// %blockLit = alloca <{ i32, i32, ...}>, align 4
73-// %0 = bitcast <{ i32, i32, ... }>* %blockLit to void ()*
74-// > store void ()* %0, void ()** %block, align 4
75-//
76-// And replace the alloca users by new instructions which used stored value
77-// %blockLit itself instead of function pointer alloca %block.
78-//
79-// 2. Find consecutive casts from block literal type to i8 addrspace(4)*
80-// used function pointers as an intermediate type:
81-// %0 = bitcast <{ i32, i32 }> %block to void() *
82-// %1 = addrspacecast void() * %0 to i8 addrspace(4)*
83-// And simplify them:
84-// %2 = addrspacecast <{ i32, i32 }> %block to i8 addrspace(4)*
85-//
86-// 3. Find all unused instructions with function pointer type occured after
87-// pp.1-2 and remove them.
88-//
89-// 4. Find unused globals with function pointer type, like
90-// @block = constant void ()*
91-// bitcast ({ i32, i32 }* @__block_literal_global to void ()*
92-//
93-// And remove them.
94-//
95-//===----------------------------------------------------------------------===//
96-#define DEBUG_TYPE "spv-lower-ocl-blocks"
97-
98-#include "OCLUtil.h"
99-#include "SPIRVInternal.h"
100-
101-#include "llvm/ADT/SetVector.h"
102-#include "llvm/Analysis/ValueTracking.h"
103-#include "llvm/IR/GlobalVariable.h"
104-#include "llvm/IR/InstIterator.h"
105-#include "llvm/IR/Module.h"
106-#include "llvm/Pass.h"
107-#include "llvm/PassSupport.h"
108-#include "llvm/Support/Casting.h"
109-
110-using namespace llvm;
111-
112-namespace {
113-
114-static void
115-removeUnusedFunctionPtrInst(Instruction *I,
116- SmallSetVector<Instruction *, 16> &FuncPtrInsts) {
117- for (unsigned OpIdx = 0, Ops = I->getNumOperands(); OpIdx != Ops; ++OpIdx) {
118- Instruction *OpI = dyn_cast<Instruction>(I->getOperand(OpIdx));
119- I->setOperand(OpIdx, nullptr);
120- if (OpI && OpI != I && OpI->user_empty())
121- FuncPtrInsts.insert(OpI);
122- }
123- I->eraseFromParent();
124-}
125-
126-static bool isFuncPtrAlloca(const AllocaInst *AI) {
127- auto *ET = dyn_cast<PointerType>(AI->getAllocatedType());
128- return ET && ET->getElementType()->isFunctionTy();
129-}
130-
131-static bool hasFuncPtrType(const Value *V) {
132- auto *PT = dyn_cast<PointerType>(V->getType());
133- return PT && PT->getElementType()->isFunctionTy();
134-}
135-
136-static bool isFuncPtrInst(const Instruction *I) {
137- if (auto *AI = dyn_cast<AllocaInst>(I))
138- return isFuncPtrAlloca(AI);
139-
140- for (auto &Op : I->operands()) {
141- if (auto *AI = dyn_cast<AllocaInst>(Op))
142- return isFuncPtrAlloca(AI);
143-
144- auto *OpI = dyn_cast<Instruction>(&Op);
145- if (OpI && OpI != I && hasFuncPtrType(OpI))
146- return true;
147- }
148- return false;
149-}
150-
151-static StoreInst *findSingleStore(AllocaInst *AI) {
152- StoreInst *Store = nullptr;
153- for (auto *U : AI->users()) {
154- if (!isa<StoreInst>(U))
155- continue; // not a store
156- if (Store)
157- return nullptr; // there are more than one stores
158- Store = dyn_cast<StoreInst>(U);
159- }
160- return Store;
161-}
162-
163-static void fixFunctionPtrAllocaUsers(AllocaInst *AI) {
164- // Find and remove a single store to alloca
165- auto *SingleStore = findSingleStore(AI);
166- assert(SingleStore && "More than one store to the function pointer alloca");
167- auto *StoredVal = SingleStore->getValueOperand();
168- SingleStore->eraseFromParent();
169-
170- // Find loads from the alloca and replace thier users
171- for (auto *U : AI->users()) {
172- auto *LI = dyn_cast<LoadInst>(U);
173- if (!LI)
174- continue;
175-
176- for (auto *U : LI->users()) {
177- auto *UInst = cast<Instruction>(U);
178- auto *Cast = CastInst::CreatePointerBitCastOrAddrSpaceCast(
179- StoredVal, UInst->getType(), "", UInst);
180- UInst->replaceAllUsesWith(Cast);
181- }
182- }
183-}
184-
185-static int getBlockLiteralIdx(const Function &F) {
186- StringRef FName = F.getName();
187- if (isEnqueueKernelBI(FName))
188- return FName.contains("events") ? 7 : 4;
189- if (isKernelQueryBI(FName))
190- return FName.contains("for_ndrange") ? 2 : 1;
191- if (FName.startswith("__") && FName.contains("_block_invoke"))
192- return F.hasStructRetAttr() ? 1 : 0;
193-
194- return -1; // No block literal argument
195-}
196-
197-static bool hasBlockLiteralArg(const Function &F) {
198- return getBlockLiteralIdx(F) != -1;
199-}
200-
201-static bool simplifyFunctionPtrCasts(Function &F) {
202- bool Changed = false;
203- int BlockLiteralIdx = getBlockLiteralIdx(F);
204- for (auto *U : F.users()) {
205- auto *Call = dyn_cast<CallInst>(U);
206- if (!Call)
207- continue;
208- if (Call->getFunction()->getName() == F.getName().str() + "_kernel")
209- continue; // Skip block invoke function calls inside block invoke kernels
210-
211- const DataLayout &DL = F.getParent()->getDataLayout();
212- auto *BlockLiteral = Call->getOperand(BlockLiteralIdx);
213- auto *BlockLiteralVal = GetUnderlyingObject(BlockLiteral, DL);
214- if (isa<GlobalVariable>(BlockLiteralVal))
215- continue; // nothing to do with globals
216-
217- auto *BlockLiteralAlloca = cast<AllocaInst>(BlockLiteralVal);
218- assert(!BlockLiteralAlloca->getAllocatedType()->isFunctionTy() &&
219- "Function type shouldn't be there");
220-
221- auto *NewBlockLiteral = CastInst::CreatePointerBitCastOrAddrSpaceCast(
222- BlockLiteralAlloca, BlockLiteral->getType(), "", Call);
223- BlockLiteral->replaceAllUsesWith(NewBlockLiteral);
224- Changed |= true;
225- }
226- return Changed;
227-}
228-
229-static void
230-findFunctionPtrAllocas(Module &M,
231- SmallVectorImpl<AllocaInst *> &FuncPtrAllocas) {
232- for (auto &F : M) {
233- if (F.isDeclaration())
234- continue;
235- for (auto &I : instructions(F)) {
236- auto *AI = dyn_cast<AllocaInst>(&I);
237- if (!AI || !isFuncPtrAlloca(AI))
238- continue;
239- FuncPtrAllocas.push_back(AI);
240- }
241- }
242-}
243-
244-static void
245-findUnusedFunctionPtrInsts(Module &M,
246- SmallSetVector<Instruction *, 16> &FuncPtrInsts) {
247- for (auto &F : M) {
248- if (F.isDeclaration())
249- continue;
250- for (auto &I : instructions(F))
251- if (I.user_empty() && isFuncPtrInst(&I))
252- FuncPtrInsts.insert(&I);
253- }
254-}
255-
256-static void
257-findUnusedFunctionPtrGlbs(Module &M,
258- SmallVectorImpl<GlobalVariable *> &FuncPtrGlbs) {
259- for (auto &GV : M.globals()) {
260- if (!GV.user_empty())
261- continue;
262- auto *GVType = dyn_cast<PointerType>(GV.getType()->getElementType());
263- if (GVType && GVType->getElementType()->isFunctionTy())
264- FuncPtrGlbs.push_back(&GV);
265- }
266-}
267-
268-class SPIRVLowerOCLBlocks : public ModulePass {
269-
270-public:
271- SPIRVLowerOCLBlocks() : ModulePass(ID) {}
272-
273- bool runOnModule(Module &M) {
274- bool Changed = false;
275-
276- // 1. Find function pointer allocas and fix their users
277- SmallVector<AllocaInst *, 16> FuncPtrAllocas;
278- findFunctionPtrAllocas(M, FuncPtrAllocas);
279-
280- Changed |= !FuncPtrAllocas.empty();
281- for (auto *AI : FuncPtrAllocas)
282- fixFunctionPtrAllocaUsers(AI);
283-
284- // 2. Simplify consecutive casts which use function pointer types
285- for (auto &F : M)
286- if (hasBlockLiteralArg(F))
287- Changed |= simplifyFunctionPtrCasts(F);
288-
289- // 3. Cleanup unused instructions with function pointer type
290- // which are occured after pp. 1-2
291- SmallSetVector<Instruction *, 16> FuncPtrInsts;
292- findUnusedFunctionPtrInsts(M, FuncPtrInsts);
293-
294- Changed |= !FuncPtrInsts.empty();
295- while (!FuncPtrInsts.empty()) {
296- Instruction *I = FuncPtrInsts.pop_back_val();
297- removeUnusedFunctionPtrInst(I, FuncPtrInsts);
298- }
299-
300- // 4. Find and remove unused global variables with function pointer type
301- SmallVector<GlobalVariable *, 16> FuncPtrGlbs;
302- findUnusedFunctionPtrGlbs(M, FuncPtrGlbs);
303-
304- Changed |= !FuncPtrGlbs.empty();
305- for (auto *GV : FuncPtrGlbs)
306- GV->eraseFromParent();
307-
308- return Changed;
309- }
310-
311- static char ID;
312-}; // class SPIRVLowerOCLBlocks
313-
314-char SPIRVLowerOCLBlocks::ID = 0;
315-
316-} // namespace
317-
318-INITIALIZE_PASS(
319- SPIRVLowerOCLBlocks, "spv-lower-ocl-blocks",
320- "Remove function pointers occured in case of using OpenCL blocks", false,
321- false)
322-
323-llvm::ModulePass *llvm::createSPIRVLowerOCLBlocks() {
324- return new SPIRVLowerOCLBlocks();
325-}
326+//===- SPIRVLowerOCLBlocks.cpp - OCL Utilities ----------------------------===//
327+//
328+// The LLVM/SPIRV Translator
329+//
330+// This file is distributed under the University of Illinois Open Source
331+// License. See LICENSE.TXT for details.
332+//
333+// Copyright (c) 2018 Intel Corporation. All rights reserved.
334+//
335+// Permission is hereby granted, free of charge, to any person obtaining a
336+// copy of this software and associated documentation files (the "Software"),
337+// to deal with the Software without restriction, including without limitation
338+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
339+// and/or sell copies of the Software, and to permit persons to whom the
340+// Software is furnished to do so, subject to the following conditions:
341+//
342+// Redistributions of source code must retain the above copyright notice,
343+// this list of conditions and the following disclaimers.
344+// Redistributions in binary form must reproduce the above copyright notice,
345+// this list of conditions and the following disclaimers in the documentation
346+// and/or other materials provided with the distribution.
347+// Neither the names of Intel Corporation, nor the names of its
348+// contributors may be used to endorse or promote products derived from this
349+// Software without specific prior written permission.
350+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
351+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
352+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
353+// CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
354+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
355+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH
356+// THE SOFTWARE.
357+//
358+//===----------------------------------------------------------------------===//
359+//
360+// SPIR-V specification doesn't allow function pointers, so SPIR-V translator
361+// is designed to fail if a value with function type (except calls) is occured.
362+// Currently there is only two cases, when function pointers are generating in
363+// LLVM IR in OpenCL - block calls and device side enqueue built-in calls.
364+//
365+// In both cases values with function type used as intermediate representation
366+// for block literal structure.
367+//
368+// In LLVM IR produced by clang, blocks are represented with the following
369+// structure:
370+// %struct.__opencl_block_literal_generic = type { i32, i32, i8 addrspace(4)* }
371+// Pointers to block invoke functions are stored in the third field. Clang
372+// replaces inderect function calls in all cases except if block is passed as a
373+// function argument. Note that it is somewhat unclear if the OpenCL C spec
374+// should allow passing blocks as function argumernts. This pass is not supposed
375+// to work correctly with such functions.
376+// Clang though has to store function pointers to this structure. Purpose of
377+// this pass is to replace store of function pointers(not allowed in SPIR-V)
378+// with null pointers.
379+//
380+//===----------------------------------------------------------------------===//
381+#define DEBUG_TYPE "spv-lower-ocl-blocks"
382+
383+#include "SPIRVInternal.h"
384+
385+#include "llvm/IR/Module.h"
386+#include "llvm/Pass.h"
387+#include "llvm/Support/Regex.h"
388+
389+using namespace llvm;
390+
391+namespace {
392+
393+static bool isBlockInvoke(Function &F) {
394+ static Regex BlockInvokeRegex("_block_invoke_?[0-9]*$");
395+ return BlockInvokeRegex.match(F.getName());
396+}
397+
398+class SPIRVLowerOCLBlocks : public ModulePass {
399+
400+public:
401+ SPIRVLowerOCLBlocks() : ModulePass(ID) {}
402+
403+ bool runOnModule(Module &M) {
404+ bool Changed = false;
405+ for (Function &F : M) {
406+ if (!isBlockInvoke(F))
407+ continue;
408+ for (User *U : F.users()) {
409+ if (!isa<Constant>(U))
410+ continue;
411+ Constant *Null = Constant::getNullValue(U->getType());
412+ if (U != Null) {
413+ U->replaceAllUsesWith(Null);
414+ Changed = true;
415+ }
416+ }
417+ }
418+ return Changed;
419+ }
420+
421+ static char ID;
422+};
423+
424+char SPIRVLowerOCLBlocks::ID = 0;
425+
426+} // namespace
427+
428+INITIALIZE_PASS(
429+ SPIRVLowerOCLBlocks, "spv-lower-ocl-blocks",
430+ "Remove function pointers occured in case of using OpenCL blocks", false,
431+ false)
432+
433+llvm::ModulePass *llvm::createSPIRVLowerOCLBlocks() {
434+ return new SPIRVLowerOCLBlocks();
435+}
436diff --git a/test/global_block.ll b/test/global_block.ll
437index a9267d8..efb4cf3 100644
438--- a/test/global_block.ll
439+++ b/test/global_block.ll
440@@ -16,7 +16,7 @@
441 ; RUN: llvm-spirv %t.bc -o %t.spv
442 ; RUN: llvm-spirv -r %t.spv -o - | llvm-dis | FileCheck %s --check-prefix=CHECK-LLVM
443
444-target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-n8:16:32:64"
445+target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
446 target triple = "spir-unknown-unknown"
447
448 ; CHECK-SPIRV: Name [[block_invoke:[0-9]+]] "_block_invoke"
449@@ -26,71 +26,56 @@ target triple = "spir-unknown-unknown"
450 ; CHECK-SPIRV: TypePointer [[int8Ptr:[0-9]+]] 8 [[int8]]
451 ; CHECK-SPIRV: TypeFunction [[block_invoke_type:[0-9]+]] [[int]] [[int8Ptr]] [[int]]
452
453-;; This variable is not needed in SPIRV
454-; CHECK-SPIRV-NOT: Name {{[0-9]+}} block_kernel.b1
455-; CHECK-LLVM-NOT: @block_kernel.b1
456-@block_kernel.b1 = internal addrspace(2) constant i32 (i32) addrspace(4)* addrspacecast (i32 (i32) addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global to i32 (i32) addrspace(1)*) to i32 (i32) addrspace(4)*), align 8
457+%struct.__opencl_block_literal_generic = type { i32, i32, i8 addrspace(4)* }
458
459-@__block_literal_global = internal addrspace(1) constant { i32, i32 } { i32 8, i32 4 }, align 4
460+@block_kernel.b1 = internal addrspace(2) constant %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), align 4
461+@__block_literal_global = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 12, i32 4, i8 addrspace(4)* addrspacecast (i8* bitcast (i32 (i8 addrspace(4)*, i32)* @_block_invoke to i8*) to i8 addrspace(4)*) }, align 4
462
463-; Function Attrs: convergent nounwind
464-define spir_kernel void @block_kernel(i32 addrspace(1)* %res) #0 !kernel_arg_addr_space !4 !kernel_arg_access_qual !5 !kernel_arg_type !6 !kernel_arg_base_type !6 !kernel_arg_type_qual !7 {
465+; Function Attrs: convergent noinline nounwind optnone
466+define spir_kernel void @block_kernel(i32 addrspace(1)* %res) #0 !kernel_arg_addr_space !3 !kernel_arg_access_qual !4 !kernel_arg_type !5 !kernel_arg_base_type !5 !kernel_arg_type_qual !6 {
467 entry:
468- %res.addr = alloca i32 addrspace(1)*, align 8
469- store i32 addrspace(1)* %res, i32 addrspace(1)** %res.addr, align 8, !tbaa !10
470-
471+ %res.addr = alloca i32 addrspace(1)*, align 4
472+ store i32 addrspace(1)* %res, i32 addrspace(1)** %res.addr, align 4
473 ; CHECK-SPIRV: FunctionCall [[int]] {{[0-9]+}} [[block_invoke]] {{[0-9]+}} [[five]]
474 ; CHECK-LLVM: %call = call spir_func i32 @_block_invoke(i8 addrspace(4)* {{.*}}, i32 5)
475- %call = call spir_func i32 @_block_invoke(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*), i32 5) #2
476-
477- %0 = load i32 addrspace(1)*, i32 addrspace(1)** %res.addr, align 8, !tbaa !10
478- store i32 %call, i32 addrspace(1)* %0, align 4, !tbaa !14
479+ %call = call spir_func i32 @_block_invoke(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*), i32 5) #2
480+ %0 = load i32 addrspace(1)*, i32 addrspace(1)** %res.addr, align 4
481+ store i32 %call, i32 addrspace(1)* %0, align 4
482 ret void
483 }
484
485-; CHECK-SPIRV: 5 Function [[int]] [[block_invoke]] 0 [[block_invoke_type]]
486+; CHECK-SPIRV: 5 Function [[int]] [[block_invoke]] 2 [[block_invoke_type]]
487 ; CHECK-SPIRV-NEXT: 3 FunctionParameter [[int8Ptr]] {{[0-9]+}}
488 ; CHECK-SPIRV-NEXT: 3 FunctionParameter [[int]] {{[0-9]+}}
489 ; CHECK-LLVM: define internal spir_func i32 @_block_invoke(i8 addrspace(4)* {{.*}}, i32 %{{.*}})
490-; Function Attrs: convergent nounwind
491+; Function Attrs: convergent noinline nounwind optnone
492 define internal spir_func i32 @_block_invoke(i8 addrspace(4)* %.block_descriptor, i32 %i) #1 {
493 entry:
494- %.block_descriptor.addr = alloca i8 addrspace(4)*, align 8
495+ %.block_descriptor.addr = alloca i8 addrspace(4)*, align 4
496 %i.addr = alloca i32, align 4
497- store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 8
498- %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32 }> addrspace(4)*
499- store i32 %i, i32* %i.addr, align 4, !tbaa !14
500- %0 = load i32, i32* %i.addr, align 4, !tbaa !14
501+ %block.addr = alloca <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*, align 4
502+ store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 4
503+ %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*
504+ store i32 %i, i32* %i.addr, align 4
505+ store <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* %block, <{ i32, i32, i8 addrspace(4)* }> addrspace(4)** %block.addr, align 4
506+ %0 = load i32, i32* %i.addr, align 4
507 %add = add nsw i32 %0, 1
508 ret i32 %add
509 }
510
511-attributes #0 = { convergent nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "uniform-work-group-size"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
512-attributes #1 = { convergent nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
513+attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "uniform-work-group-size"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
514+attributes #1 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
515 attributes #2 = { convergent }
516
517 !llvm.module.flags = !{!0}
518-!opencl.enable.FP_CONTRACT = !{}
519 !opencl.ocl.version = !{!1}
520 !opencl.spir.version = !{!1}
521-!opencl.used.extensions = !{!2}
522-!opencl.used.optional.core.features = !{!2}
523-!opencl.compiler.options = !{!2}
524-!llvm.ident = !{!3}
525+!llvm.ident = !{!2}
526
527 !0 = !{i32 1, !"wchar_size", i32 4}
528 !1 = !{i32 2, i32 0}
529-!2 = !{}
530-!3 = !{!"clang version 7.0.0"}
531-!4 = !{i32 1}
532-!5 = !{!"none"}
533-!6 = !{!"int*"}
534-!7 = !{!""}
535-!8 = !{i1 false}
536-!9 = !{i32 0}
537-!10 = !{!11, !11, i64 0}
538-!11 = !{!"any pointer", !12, i64 0}
539-!12 = !{!"omnipotent char", !13, i64 0}
540-!13 = !{!"Simple C/C++ TBAA"}
541-!14 = !{!15, !15, i64 0}
542-!15 = !{!"int", !12, i64 0}
543+!2 = !{!"clang version 9.0.0 (https://llvm.org/git/clang 04fb8964a801a5c5d7baa5a22272243a7d183896) (https://llvm.org/git/llvm 384f64397f6ad95a361b72d62c07d7bac9f24163)"}
544+!3 = !{i32 1}
545+!4 = !{!"none"}
546+!5 = !{!"int*"}
547+!6 = !{!""}
548diff --git a/test/literal-struct.ll b/test/literal-struct.ll
549index c52170a..52a731a 100644
550--- a/test/literal-struct.ll
551+++ b/test/literal-struct.ll
552@@ -2,7 +2,7 @@
553 ; structs, i.e. structs whose type has no name. Typicaly clang generate such
554 ; structs if the kernel contains OpenCL 2.0 blocks. The IR was produced with
555 ; the following command:
556-; clang -cc1 -triple spir -cl-std=cl2.0 -O0 -finclude-default-header literal-struct.cl -emit-llvm -o test/literal-struct.ll
557+; clang -cc1 -triple spir -cl-std=cl2.0 -O0 literal-struct.cl -emit-llvm -o test/literal-struct.ll
558
559 ; literal-struct.cl:
560 ; void foo()
561@@ -14,25 +14,28 @@
562 ; RUN: llvm-as < %s | llvm-spirv -spirv-text -o %t
563 ; RUN: FileCheck < %t %s
564
565-; CHECK-DAG: TypeInt [[Int:[0-9]+]] 32 0
566-; CHECK-DAG: TypeStruct [[StructType:[0-9]+]] [[Int]] [[Int]] {{$}}
567+; CHECK: TypeInt [[Int:[0-9]+]] 32 0
568+; CHECK: TypeInt [[Int8:[0-9]+]] 8 0
569+; CHECK: TypePointer [[Int8Ptr:[0-9]+]] 8 [[Int8]]
570+; CHECK: TypeStruct [[StructType:[0-9]+]] [[Int]] [[Int]] [[Int8Ptr]]
571
572 target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
573 target triple = "spir"
574
575-@__block_literal_global = internal addrspace(1) constant { i32, i32 } { i32 8, i32 4 }, align 4
576+%struct.__opencl_block_literal_generic = type { i32, i32, i8 addrspace(4)* }
577+
578+@__block_literal_global = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 12, i32 4, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* @__foo_block_invoke to i8*) to i8 addrspace(4)*) }, align 4
579 ; CHECK: ConstantComposite [[StructType]]
580
581-; This is artificial case is added to cover ConstantNull instrucitions with TypeStruct.
582-@__block_literal_global.1 = internal addrspace(1) constant { i32, i32 } zeroinitializer, align 4
583+@__block_literal_global.1 = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } zeroinitializer, align 4
584 ; CHECK: ConstantNull [[StructType]]
585
586 ; Function Attrs: convergent noinline nounwind optnone
587 define spir_func void @foo() #0 {
588 entry:
589- %myBlock = alloca void () addrspace(4)*, align 4
590- store void () addrspace(4)* addrspacecast (void () addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global to void () addrspace(1)*) to void () addrspace(4)*), void () addrspace(4)** %myBlock, align 4
591- call spir_func void @__foo_block_invoke(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*)) #1
592+ %myBlock = alloca %struct.__opencl_block_literal_generic addrspace(4)*, align 4
593+ store %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), %struct.__opencl_block_literal_generic addrspace(4)** %myBlock, align 4
594+ call spir_func void @__foo_block_invoke(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*)) #1
595 ret void
596 }
597
598@@ -40,14 +43,14 @@ entry:
599 define internal spir_func void @__foo_block_invoke(i8 addrspace(4)* %.block_descriptor) #0 {
600 entry:
601 %.block_descriptor.addr = alloca i8 addrspace(4)*, align 4
602- %block.addr = alloca <{ i32, i32 }> addrspace(4)*, align 4
603+ %block.addr = alloca <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*, align 4
604 store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 4
605- %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32 }> addrspace(4)*
606- store <{ i32, i32 }> addrspace(4)* %block, <{ i32, i32 }> addrspace(4)** %block.addr, align 4
607+ %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*
608+ store <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* %block, <{ i32, i32, i8 addrspace(4)* }> addrspace(4)** %block.addr, align 4
609 ret void
610 }
611
612-attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
613+attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
614 attributes #1 = { convergent }
615
616 !llvm.module.flags = !{!0}
617@@ -57,4 +60,4 @@ attributes #1 = { convergent }
618
619 !0 = !{i32 1, !"wchar_size", i32 4}
620 !1 = !{i32 2, i32 0}
621-!2 = !{!"clang version 8.0.0 "}
622+!2 = !{!"clang version 9.0.0 (https://llvm.org/git/clang 04fb8964a801a5c5d7baa5a22272243a7d183896) (https://llvm.org/git/llvm 384f64397f6ad95a361b72d62c07d7bac9f24163)"}
623diff --git a/test/transcoding/block_w_struct_return.ll b/test/transcoding/block_w_struct_return.ll
624index 76e29f0..df89b13 100644
625--- a/test/transcoding/block_w_struct_return.ll
626+++ b/test/transcoding/block_w_struct_return.ll
627@@ -16,6 +16,8 @@
628 ; res[tid] = kernelBlock(aa).a - 6;
629 ; }
630
631+; clang -cc1 -triple spir -cl-std=cl2.0 -disable-llvm-passes -finclude-default-header block_w_struct_return.cl -emit-llvm -o test/transcoding/block_w_struct_return.ll
632+
633 ; RUN: llvm-as %s -o %t.bc
634 ; RUN: llvm-spirv %t.bc -spirv-text -o %t.spv.txt
635 ; RUN: FileCheck < %t.spv.txt %s --check-prefix=CHECK-SPIRV
636@@ -27,12 +29,14 @@
637 ; CHECK-SPIRV: Name [[BlockInv:[0-9]+]] "__block_ret_struct_block_invoke"
638
639 ; CHECK-SPIRV: 4 TypeInt [[IntTy:[0-9]+]] 32
640+; CHECK-SPIRV: 4 TypeInt [[Int8Ty:[0-9]+]] 8
641+; CHECK-SPIRV: 4 TypePointer [[Int8Ptr:[0-9]+]] 8 [[Int8Ty]]
642 ; CHECK-SPIRV: 3 TypeStruct [[StructTy:[0-9]+]] [[IntTy]]
643 ; CHECK-SPIRV: 4 TypePointer [[StructPtrTy:[0-9]+]] 7 [[StructTy]]
644
645 ; CHECK-SPIRV: 4 Variable [[StructPtrTy]] [[StructArg:[0-9]+]] 7
646 ; CHECK-SPIRV: 4 Variable [[StructPtrTy]] [[StructRet:[0-9]+]] 7
647-; CHECK-SPIRV: 4 PtrCastToGeneric {{[0-9]+}} [[BlockLit:[0-9]+]] {{[0-9]+}}
648+; CHECK-SPIRV: 4 PtrCastToGeneric [[Int8Ptr]] [[BlockLit:[0-9]+]] {{[0-9]+}}
649 ; CHECK-SPIRV: 7 FunctionCall {{[0-9]+}} {{[0-9]+}} [[BlockInv]] [[StructRet]] [[BlockLit]] [[StructArg]]
650
651 ; CHECK-LLVM: %[[StructA:.*]] = type { i32 }
652@@ -41,20 +45,21 @@
653 target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
654 target triple = "spir64-unknown-unknown"
655
656+%struct.__opencl_block_literal_generic = type { i32, i32, i8 addrspace(4)* }
657 %struct.A = type { i32 }
658
659-@__block_literal_global = internal addrspace(1) constant { i32, i32 } { i32 8, i32 4 }, align 4
660+@__block_literal_global = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 16, i32 8, i8 addrspace(4)* addrspacecast (i8* bitcast (void (%struct.A*, i8 addrspace(4)*, %struct.A*)* @__block_ret_struct_block_invoke to i8*) to i8 addrspace(4)*) }, align 8
661
662 ; Function Attrs: convergent noinline nounwind optnone
663-define spir_kernel void @block_ret_struct(i32 addrspace(1)* %res) #0 !kernel_arg_addr_space !4 !kernel_arg_access_qual !5 !kernel_arg_type !6 !kernel_arg_base_type !6 !kernel_arg_type_qual !7 !kernel_arg_host_accessible !8 !kernel_arg_pipe_depth !9 !kernel_arg_pipe_io !7 !kernel_arg_buffer_location !7 {
664+define spir_kernel void @block_ret_struct(i32 addrspace(1)* %res) #0 !kernel_arg_addr_space !3 !kernel_arg_access_qual !4 !kernel_arg_type !5 !kernel_arg_base_type !5 !kernel_arg_type_qual !6 {
665 entry:
666 %res.addr = alloca i32 addrspace(1)*, align 8
667- %kernelBlock = alloca void (%struct.A*, %struct.A*) addrspace(4)*, align 8
668+ %kernelBlock = alloca %struct.__opencl_block_literal_generic addrspace(4)*, align 8
669 %tid = alloca i64, align 8
670 %aa = alloca %struct.A, align 4
671 %tmp = alloca %struct.A, align 4
672 store i32 addrspace(1)* %res, i32 addrspace(1)** %res.addr, align 8
673- store void (%struct.A*, %struct.A*) addrspace(4)* addrspacecast (void (%struct.A*, %struct.A*) addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global to void (%struct.A*, %struct.A*) addrspace(1)*) to void (%struct.A*, %struct.A*) addrspace(4)*), void (%struct.A*, %struct.A*) addrspace(4)** %kernelBlock, align 8
674+ store %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), %struct.__opencl_block_literal_generic addrspace(4)** %kernelBlock, align 8
675 %call = call spir_func i64 @_Z13get_global_idj(i32 0) #4
676 store i64 %call, i64* %tid, align 8
677 %0 = load i32 addrspace(1)*, i32 addrspace(1)** %res.addr, align 8
678@@ -63,7 +68,7 @@ entry:
679 store i32 -1, i32 addrspace(1)* %arrayidx, align 4
680 %a = getelementptr inbounds %struct.A, %struct.A* %aa, i32 0, i32 0
681 store i32 5, i32* %a, align 4
682- call spir_func void @__block_ret_struct_block_invoke(%struct.A* sret %tmp, i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*), %struct.A* byval align 4 %aa) #5
683+ call spir_func void @__block_ret_struct_block_invoke(%struct.A* sret %tmp, i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*), %struct.A* byval align 4 %aa) #5
684 %a1 = getelementptr inbounds %struct.A, %struct.A* %tmp, i32 0, i32 0
685 %2 = load i32, i32* %a1, align 4
686 %sub = sub nsw i32 %2, 6
687@@ -78,10 +83,10 @@ entry:
688 define internal spir_func void @__block_ret_struct_block_invoke(%struct.A* noalias sret %agg.result, i8 addrspace(4)* %.block_descriptor, %struct.A* byval align 4 %a) #1 {
689 entry:
690 %.block_descriptor.addr = alloca i8 addrspace(4)*, align 8
691- %block.addr = alloca <{ i32, i32 }> addrspace(4)*, align 8
692+ %block.addr = alloca <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*, align 8
693 store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 8
694- %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32 }> addrspace(4)*
695- store <{ i32, i32 }> addrspace(4)* %block, <{ i32, i32 }> addrspace(4)** %block.addr, align 8
696+ %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*
697+ store <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* %block, <{ i32, i32, i8 addrspace(4)* }> addrspace(4)** %block.addr, align 8
698 %a1 = getelementptr inbounds %struct.A, %struct.A* %a, i32 0, i32 0
699 store i32 6, i32* %a1, align 4
700 %0 = bitcast %struct.A* %agg.result to i8*
701@@ -96,30 +101,22 @@ declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture r
702 ; Function Attrs: convergent nounwind readnone
703 declare spir_func i64 @_Z13get_global_idj(i32) #3
704
705-attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "uniform-work-group-size"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
706-attributes #1 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
707+attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "uniform-work-group-size"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
708+attributes #1 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
709 attributes #2 = { argmemonly nounwind }
710 attributes #3 = { convergent nounwind readnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
711 attributes #4 = { convergent nounwind readnone }
712 attributes #5 = { convergent }
713
714 !llvm.module.flags = !{!0}
715-!opencl.enable.FP_CONTRACT = !{}
716 !opencl.ocl.version = !{!1}
717 !opencl.spir.version = !{!1}
718-!opencl.used.extensions = !{!2}
719-!opencl.used.optional.core.features = !{!2}
720-!opencl.compiler.options = !{!2}
721-!llvm.ident = !{!3}
722+!llvm.ident = !{!2}
723
724 !0 = !{i32 1, !"wchar_size", i32 4}
725 !1 = !{i32 2, i32 0}
726-!2 = !{}
727-!3 = !{!"clang version 7.0.0"}
728-!4 = !{i32 1}
729-!5 = !{!"none"}
730-!6 = !{!"int*"}
731-!7 = !{!""}
732-!8 = !{i1 false}
733-!9 = !{i32 0}
734-
735+!2 = !{!"clang version 9.0.0 (https://llvm.org/git/clang 04fb8964a801a5c5d7baa5a22272243a7d183896) (https://llvm.org/git/llvm 384f64397f6ad95a361b72d62c07d7bac9f24163)"}
736+!3 = !{i32 1}
737+!4 = !{!"none"}
738+!5 = !{!"int*"}
739+!6 = !{!""}
740diff --git a/test/transcoding/enqueue_kernel.ll b/test/transcoding/enqueue_kernel.ll
741index 0d29c71..435871d 100644
742--- a/test/transcoding/enqueue_kernel.ll
743+++ b/test/transcoding/enqueue_kernel.ll
744@@ -51,11 +51,12 @@
745 ; ModuleID = 'enqueue_kernel.cl'
746 source_filename = "enqueue_kernel.cl"
747 target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
748-target triple = "spir-unknown-unknown"
749+target triple = "spir"
750
751 %opencl.queue_t = type opaque
752 %struct.ndrange_t = type { i32 }
753 %opencl.clk_event_t = type opaque
754+%struct.__opencl_block_literal_generic = type { i32, i32, i8 addrspace(4)* }
755
756 ; CHECK-SPIRV: EntryPoint {{[0-9]+}} [[BlockKer1:[0-9]+]] "__device_side_enqueue_block_invoke_kernel"
757 ; CHECK-SPIRV: EntryPoint {{[0-9]+}} [[BlockKer2:[0-9]+]] "__device_side_enqueue_block_invoke_2_kernel"
758@@ -66,89 +67,123 @@ target triple = "spir-unknown-unknown"
759
760 ; CHECK-SPIRV: TypeInt [[Int32Ty:[0-9]+]] 32
761 ; CHECK-SPIRV: TypeInt [[Int8Ty:[0-9]+]] 8
762-; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt8:[0-9]+]] 8
763 ; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt0:[0-9]+]] 0
764-; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt17:[0-9]+]] 17
765+; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt17:[0-9]+]] 21
766 ; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt2:[0-9]+]] 2
767-; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt20:[0-9]+]] 20
768-; CHECK-SPIRV: TypeVoid [[VoidTy:[0-9]+]]
769+; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt8:[0-9]+]] 8
770+; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt20:[0-9]+]] 24
771
772 ; CHECK-SPIRV: TypePointer {{[0-9]+}} 7 {{[0-9]+}}
773+; CHECK-SPIRV: TypePointer [[Int8PtrGenTy:[0-9]+]] 8 [[Int8Ty]]
774+; CHECK-SPIRV: TypeVoid [[VoidTy:[0-9]+]]
775 ; CHECK-SPIRV: TypePointer [[Int32LocPtrTy:[0-9]+]] 7 [[Int32Ty]]
776 ; CHECK-SPIRV: TypeDeviceEvent [[EventTy:[0-9]+]]
777-; CHECK-SPIRV: TypePointer [[Int8PtrGenTy:[0-9]+]] 8 [[Int8Ty]]
778 ; CHECK-SPIRV: TypePointer [[EventPtrTy:[0-9]+]] 8 [[EventTy]]
779 ; CHECK-SPIRV: TypeFunction [[BlockTy1:[0-9]+]] [[VoidTy]] [[Int8PtrGenTy]]
780 ; CHECK-SPIRV: TypeFunction [[BlockTy2:[0-9]+]] [[VoidTy]] [[Int8PtrGenTy]]
781 ; CHECK-SPIRV: TypeFunction [[BlockTy3:[0-9]+]] [[VoidTy]] [[Int8PtrGenTy]]
782 ; CHECK-SPIRV: ConstantNull [[EventPtrTy]] [[EventNull:[0-9]+]]
783
784-; CHECK-LLVM: [[BlockTy1:%[0-9]+]] = type { i32, i32 }
785-; CHECK-LLVM: [[BlockTy2:%[0-9]+]] = type <{ i32, i32, i32 addrspace(1)*, i32, i8 }>
786-; CHECK-LLVM: [[BlockTy3:%[0-9]+]] = type <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>
787-; CHECK-LLVM: [[BlockTy4:%[0-9]+]] = type <{ i32, i32 }>
788+; CHECK-LLVM: [[BlockTy1:%[0-9]+]] = type { i32, i32, i8 addrspace(4)* }
789+; CHECK-LLVM: [[BlockTy2:%[0-9]+]] = type <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>
790+; CHECK-LLVM: [[BlockTy3:%[0-9]+]] = type <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>
791+; CHECK-LLVM: [[BlockTy4:%[0-9]+]] = type <{ i32, i32, i8 addrspace(4)* }>
792
793-; CHECK-LLVM: @__block_literal_global = internal addrspace(1) constant [[BlockTy1]] { i32 8, i32 4 }, align 4
794-; CHECK-LLVM: @__block_literal_global.1 = internal addrspace(1) constant [[BlockTy1]] { i32 8, i32 4 }, align 4
795+; CHECK-LLVM: @__block_literal_global = internal addrspace(1) constant [[BlockTy1]] { i32 12, i32 4, i8 addrspace(4)* addrspacecast (i8* null to i8 addrspace(4)*) }, align 4
796+; CHECK-LLVM: @__block_literal_global.1 = internal addrspace(1) constant [[BlockTy1]] { i32 12, i32 4, i8 addrspace(4)* addrspacecast (i8* null to i8 addrspace(4)*) }, align 4
797
798-@__block_literal_global = internal addrspace(1) constant { i32, i32 } { i32 8, i32 4 }, align 4
799-@__block_literal_global.1 = internal addrspace(1) constant { i32, i32 } { i32 8, i32 4 }, align 4
800+@__block_literal_global = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 12, i32 4, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_3 to i8*) to i8 addrspace(4)*) }, align 4
801+@__block_literal_global.1 = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 12, i32 4, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*, i8 addrspace(3)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_4 to i8*) to i8 addrspace(4)*) }, align 4
802
803 ; Function Attrs: convergent noinline nounwind optnone
804-define spir_kernel void @device_side_enqueue(i32 addrspace(1)* %a, i32 addrspace(1)* %b, i32 %i, i8 signext %c0) #0 !kernel_arg_addr_space !4 !kernel_arg_access_qual !5 !kernel_arg_type !6 !kernel_arg_base_type !6 !kernel_arg_type_qual !7 {
805+define spir_kernel void @device_side_enqueue(i32 addrspace(1)* %a, i32 addrspace(1)* %b, i32 %i, i8 signext %c0) #0 !kernel_arg_addr_space !3 !kernel_arg_access_qual !4 !kernel_arg_type !5 !kernel_arg_base_type !5 !kernel_arg_type_qual !6 {
806 entry:
807+ %a.addr = alloca i32 addrspace(1)*, align 4
808+ %b.addr = alloca i32 addrspace(1)*, align 4
809+ %i.addr = alloca i32, align 4
810+ %c0.addr = alloca i8, align 1
811 %default_queue = alloca %opencl.queue_t*, align 4
812 %flags = alloca i32, align 4
813 %ndrange = alloca %struct.ndrange_t, align 4
814 %clk_event = alloca %opencl.clk_event_t*, align 4
815 %event_wait_list = alloca %opencl.clk_event_t*, align 4
816 %event_wait_list2 = alloca [1 x %opencl.clk_event_t*], align 4
817- %block = alloca <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, align 4
818- %block3 = alloca <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, align 4
819+ %block = alloca <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, align 4
820+ %tmp = alloca %struct.ndrange_t, align 4
821+ %block3 = alloca <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, align 4
822+ %tmp4 = alloca %struct.ndrange_t, align 4
823 %c = alloca i8, align 1
824+ %tmp11 = alloca %struct.ndrange_t, align 4
825+ %block_sizes = alloca [1 x i32], align 4
826+ %tmp12 = alloca %struct.ndrange_t, align 4
827+ %block_sizes13 = alloca [3 x i32], align 4
828+ store i32 addrspace(1)* %a, i32 addrspace(1)** %a.addr, align 4
829+ store i32 addrspace(1)* %b, i32 addrspace(1)** %b.addr, align 4
830+ store i32 %i, i32* %i.addr, align 4
831+ store i8 %c0, i8* %c0.addr, align 1
832 store i32 0, i32* %flags, align 4
833 %arrayinit.begin = getelementptr inbounds [1 x %opencl.clk_event_t*], [1 x %opencl.clk_event_t*]* %event_wait_list2, i32 0, i32 0
834 %0 = load %opencl.clk_event_t*, %opencl.clk_event_t** %clk_event, align 4
835 store %opencl.clk_event_t* %0, %opencl.clk_event_t** %arrayinit.begin, align 4
836 %1 = load %opencl.queue_t*, %opencl.queue_t** %default_queue, align 4
837 %2 = load i32, i32* %flags, align 4
838- %block.size = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 0
839- store i32 17, i32* %block.size, align 4
840- %block.align = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 1
841+ %3 = bitcast %struct.ndrange_t* %tmp to i8*
842+ %4 = bitcast %struct.ndrange_t* %ndrange to i8*
843+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 4, i1 false)
844+ %block.size = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 0
845+ store i32 21, i32* %block.size, align 4
846+ %block.align = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 1
847 store i32 4, i32* %block.align, align 4
848- %block.captured = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 2
849- store i32 addrspace(1)* %a, i32 addrspace(1)** %block.captured, align 4
850- %block.captured1 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 3
851- store i32 %i, i32* %block.captured1, align 4
852- %block.captured2 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 4
853- store i8 %c0, i8* %block.captured2, align 4
854- %3 = bitcast <{ i32, i32, i32 addrspace(1)*, i32, i8 }>* %block to void ()*
855- %4 = addrspacecast void ()* %3 to i8 addrspace(4)*
856+ %block.invoke = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 2
857+ store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke, align 4
858+ %block.captured = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 3
859+ %5 = load i32 addrspace(1)*, i32 addrspace(1)** %a.addr, align 4
860+ store i32 addrspace(1)* %5, i32 addrspace(1)** %block.captured, align 4
861+ %block.captured1 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 4
862+ %6 = load i32, i32* %i.addr, align 4
863+ store i32 %6, i32* %block.captured1, align 4
864+ %block.captured2 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 5
865+ %7 = load i8, i8* %c0.addr, align 1
866+ store i8 %7, i8* %block.captured2, align 4
867+ %8 = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>* %block to %struct.__opencl_block_literal_generic*
868+ %9 = addrspacecast %struct.__opencl_block_literal_generic* %8 to i8 addrspace(4)*
869
870 ; CHECK-SPIRV: PtrCastToGeneric [[Int8PtrGenTy]] [[BlockLit1:[0-9]+]]
871 ; CHECK-SPIRV: EnqueueKernel [[Int32Ty]] {{[0-9]+}} {{[0-9]+}} {{[0-9]+}} {{[0-9]+}}
872 ; [[ConstInt0]] [[EventNull]] [[EventNull]]
873 ; [[BlockKer1]] [[BlockLit1]] [[ConstInt17]] [[ConstInt8]]
874
875-; CHECK-LLVM: [[Block2:%[0-9]+]] = addrspacecast [[BlockTy2]]* %block to i8 addrspace(4)*
876+; CHECK-LLVM: [[Block2:%[0-9]+]] = bitcast [[BlockTy2]]* %block to %struct.__opencl_block_literal_generic*
877+; CHECK-LLVM: [[Block2Ptr:%[0-9]+]] = addrspacecast %struct.__opencl_block_literal_generic* [[Block2]] to i8 addrspace(4)*
878 ; CHECK-LLVM: [[BlockInv2:%[0-9]+]] = addrspacecast void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke_kernel to i8 addrspace(4)*
879-; CHECK-LLVM: call i32 @__enqueue_kernel_basic_events(%opencl.queue_t* {{.*}}, i32 {{.*}}, %struct.ndrange_t* {{.*}}, i32 0, %opencl.clk_event_t* addrspace(4)* null, %opencl.clk_event_t* addrspace(4)* null, i8 addrspace(4)* [[BlockInv2]], i8 addrspace(4)* [[Block2]])
880-
881- %5 = call i32 @__enqueue_kernel_basic(%opencl.queue_t* %1, i32 %2, %struct.ndrange_t* byval %ndrange, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* %4)
882- %6 = addrspacecast %opencl.clk_event_t** %event_wait_list to %opencl.clk_event_t* addrspace(4)*
883- %7 = addrspacecast %opencl.clk_event_t** %clk_event to %opencl.clk_event_t* addrspace(4)*
884- %block.size5 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 0
885- store i32 20, i32* %block.size5, align 4
886- %block.align6 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 1
887+; CHECK-LLVM: call i32 @__enqueue_kernel_basic_events(%opencl.queue_t* {{.*}}, i32 {{.*}}, %struct.ndrange_t* {{.*}}, i32 0, %opencl.clk_event_t* addrspace(4)* null, %opencl.clk_event_t* addrspace(4)* null, i8 addrspace(4)* [[BlockInv2]], i8 addrspace(4)* [[Block2Ptr]])
888+
889+ %10 = call i32 @__enqueue_kernel_basic(%opencl.queue_t* %1, i32 %2, %struct.ndrange_t* byval %tmp, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* %9)
890+ %11 = load %opencl.queue_t*, %opencl.queue_t** %default_queue, align 4
891+ %12 = load i32, i32* %flags, align 4
892+ %13 = bitcast %struct.ndrange_t* %tmp4 to i8*
893+ %14 = bitcast %struct.ndrange_t* %ndrange to i8*
894+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 4, i1 false)
895+ %15 = addrspacecast %opencl.clk_event_t** %event_wait_list to %opencl.clk_event_t* addrspace(4)*
896+ %16 = addrspacecast %opencl.clk_event_t** %clk_event to %opencl.clk_event_t* addrspace(4)*
897+ %block.size5 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 0
898+ store i32 24, i32* %block.size5, align 4
899+ %block.align6 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 1
900 store i32 4, i32* %block.align6, align 4
901- %block.captured7 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 2
902- store i32 addrspace(1)* %a, i32 addrspace(1)** %block.captured7, align 4
903- %block.captured8 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 3
904- store i32 %i, i32* %block.captured8, align 4
905- %block.captured9 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 4
906- store i32 addrspace(1)* %b, i32 addrspace(1)** %block.captured9, align 4
907- %8 = bitcast <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3 to void ()*
908- %9 = addrspacecast void ()* %8 to i8 addrspace(4)*
909+ %block.invoke7 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 2
910+ store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke_2 to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke7, align 4
911+ %block.captured8 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 3
912+ %17 = load i32 addrspace(1)*, i32 addrspace(1)** %a.addr, align 4
913+ store i32 addrspace(1)* %17, i32 addrspace(1)** %block.captured8, align 4
914+ %block.captured9 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 4
915+ %18 = load i32, i32* %i.addr, align 4
916+ store i32 %18, i32* %block.captured9, align 4
917+ %block.captured10 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 5
918+ %19 = load i32 addrspace(1)*, i32 addrspace(1)** %b.addr, align 4
919+ store i32 addrspace(1)* %19, i32 addrspace(1)** %block.captured10, align 4
920+ %20 = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3 to %struct.__opencl_block_literal_generic*
921+ %21 = addrspacecast %struct.__opencl_block_literal_generic* %20 to i8 addrspace(4)*
922+
923
924 ; CHECK-SPIRV: PtrCastToGeneric [[EventPtrTy]] [[Event1:[0-9]+]]
925 ; CHECK-SPIRV: PtrCastToGeneric [[EventPtrTy]] [[Event2:[0-9]+]]
926@@ -158,16 +193,24 @@ entry:
927 ; [[ConstInt2]] [[Event1]] [[Event2]]
928 ; [[BlockKer2]] [[BlockLit2]] [[ConstInt20]] [[ConstInt8]]
929
930-; CHECK-LLVM: [[Block3:%[0-9]+]] = addrspacecast [[BlockTy3]]* %block3 to i8 addrspace(4)*
931+; CHECK-LLVM: [[Block3:%[0-9]+]] = bitcast [[BlockTy3]]* %block3 to %struct.__opencl_block_literal_generic*
932+; CHECK-LLVM: [[Block3Ptr:%[0-9]+]] = addrspacecast %struct.__opencl_block_literal_generic* [[Block3]] to i8 addrspace(4)
933 ; CHECK-LLVM: [[BlockInv3:%[0-9]+]] = addrspacecast void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke_2_kernel to i8 addrspace(4)*
934-; CHECK-LLVM: call i32 @__enqueue_kernel_basic_events(%opencl.queue_t* {{.*}}, i32 {{.*}}, %struct.ndrange_t* {{.*}}, i32 2, %opencl.clk_event_t* addrspace(4)* {{.*}}, %opencl.clk_event_t* addrspace(4)* {{.*}}, i8 addrspace(4)* [[BlockInv3]], i8 addrspace(4)* [[Block3]])
935-
936- %10 = call i32 @__enqueue_kernel_basic_events(%opencl.queue_t* %1, i32 %2, %struct.ndrange_t* %ndrange, i32 2, %opencl.clk_event_t* addrspace(4)* %6, %opencl.clk_event_t* addrspace(4)* %7, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke_2_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* %9)
937- %11 = alloca [1 x i32]
938- %12 = getelementptr [1 x i32], [1 x i32]* %11, i32 0, i32 0
939- %13 = load i8, i8* %c, align 1
940- %14 = zext i8 %13 to i32
941- store i32 %14, i32* %12, align 4
942+; CHECK-LLVM: call i32 @__enqueue_kernel_basic_events(%opencl.queue_t* {{.*}}, i32 {{.*}}, %struct.ndrange_t* {{.*}}, i32 2, %opencl.clk_event_t* addrspace(4)* {{.*}}, %opencl.clk_event_t* addrspace(4)* {{.*}}, i8 addrspace(4)* [[BlockInv3]], i8 addrspace(4)* [[Block3Ptr]])
943+
944+ %22 = call i32 @__enqueue_kernel_basic_events(%opencl.queue_t* %11, i32 %12, %struct.ndrange_t* %tmp4, i32 2, %opencl.clk_event_t* addrspace(4)* %15, %opencl.clk_event_t* addrspace(4)* %16, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke_2_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* %21)
945+ %23 = load %opencl.queue_t*, %opencl.queue_t** %default_queue, align 4
946+ %24 = load i32, i32* %flags, align 4
947+ %25 = bitcast %struct.ndrange_t* %tmp11 to i8*
948+ %26 = bitcast %struct.ndrange_t* %ndrange to i8*
949+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %25, i8* align 4 %26, i32 4, i1 false)
950+ %arraydecay = getelementptr inbounds [1 x %opencl.clk_event_t*], [1 x %opencl.clk_event_t*]* %event_wait_list2, i32 0, i32 0
951+ %27 = addrspacecast %opencl.clk_event_t** %arraydecay to %opencl.clk_event_t* addrspace(4)*
952+ %28 = addrspacecast %opencl.clk_event_t** %clk_event to %opencl.clk_event_t* addrspace(4)*
953+ %29 = getelementptr [1 x i32], [1 x i32]* %block_sizes, i32 0, i32 0
954+ %30 = load i8, i8* %c, align 1
955+ %31 = zext i8 %30 to i32
956+ store i32 %31, i32* %29, align 4
957
958 ; CHECK-SPIRV: PtrAccessChain [[Int32LocPtrTy]] [[LocalBuf31:[0-9]+]]
959 ; CHECK-SPIRV: Bitcast {{[0-9]+}} [[BlockLit3Tmp:[0-9]+]] [[BlockGlb1:[0-9]+]]
960@@ -182,14 +225,18 @@ entry:
961 ; CHECK-LLVM: [[BlockInv0:%[0-9]+]] = addrspacecast void (i8 addrspace(4)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_3_kernel to i8 addrspace(4)*
962 ; CHECK-LLVM: call i32 @__enqueue_kernel_events_varargs(%opencl.queue_t* {{.*}}, i32 {{.*}}, %struct.ndrange_t* {{.*}}, i32 2, %opencl.clk_event_t* addrspace(4)* {{.*}}, %opencl.clk_event_t* addrspace(4)* {{.*}}, i8 addrspace(4)* [[BlockInv0]], i8 addrspace(4)* [[Block0]], i32 1, i32* {{.*}})
963
964- %15 = call i32 @__enqueue_kernel_events_varargs(%opencl.queue_t* %1, i32 %2, %struct.ndrange_t* %ndrange, i32 2, %opencl.clk_event_t* addrspace(4)* %6, %opencl.clk_event_t* addrspace(4)* %7, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_3_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*), i32 1, i32* %12)
965- %16 = alloca [3 x i32]
966- %17 = getelementptr [3 x i32], [3 x i32]* %16, i32 0, i32 0
967- store i32 1, i32* %17, align 4
968- %18 = getelementptr [3 x i32], [3 x i32]* %16, i32 0, i32 1
969- store i32 2, i32* %18, align 4
970- %19 = getelementptr [3 x i32], [3 x i32]* %16, i32 0, i32 2
971- store i32 4, i32* %19, align 4
972+ %32 = call i32 @__enqueue_kernel_events_varargs(%opencl.queue_t* %23, i32 %24, %struct.ndrange_t* %tmp11, i32 2, %opencl.clk_event_t* addrspace(4)* %27, %opencl.clk_event_t* addrspace(4)* %28, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_3_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*), i32 1, i32* %29)
973+ %33 = load %opencl.queue_t*, %opencl.queue_t** %default_queue, align 4
974+ %34 = load i32, i32* %flags, align 4
975+ %35 = bitcast %struct.ndrange_t* %tmp12 to i8*
976+ %36 = bitcast %struct.ndrange_t* %ndrange to i8*
977+ call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %35, i8* align 4 %36, i32 4, i1 false)
978+ %37 = getelementptr [3 x i32], [3 x i32]* %block_sizes13, i32 0, i32 0
979+ store i32 1, i32* %37, align 4
980+ %38 = getelementptr [3 x i32], [3 x i32]* %block_sizes13, i32 0, i32 1
981+ store i32 2, i32* %38, align 4
982+ %39 = getelementptr [3 x i32], [3 x i32]* %block_sizes13, i32 0, i32 2
983+ store i32 4, i32* %39, align 4
984
985 ; CHECK-SPIRV: PtrAccessChain [[Int32LocPtrTy]] [[LocalBuf41:[0-9]+]]
986 ; CHECK-SPIRV: PtrAccessChain [[Int32LocPtrTy]] [[LocalBuf42:[0-9]+]]
987@@ -206,24 +253,27 @@ entry:
988 ; CHECK-LLVM: [[BlockInv1:%[0-9]+]] = addrspacecast void (i8 addrspace(4)*, i8 addrspace(3)*, i8 addrspace(3)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_4_kernel to i8 addrspace(4)*
989 ; CHECK-LLVM: call i32 @__enqueue_kernel_events_varargs(%opencl.queue_t* {{.*}}, i32 {{.*}}, %struct.ndrange_t* {{.*}}, i32 0, %opencl.clk_event_t* addrspace(4)* null, %opencl.clk_event_t* addrspace(4)* null, i8 addrspace(4)* [[BlockInv1]], i8 addrspace(4)* [[Block1]], i32 3, i32* {{.*}})
990
991- %20 = call i32 @__enqueue_kernel_varargs(%opencl.queue_t* %1, i32 %2, %struct.ndrange_t* %ndrange, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*, i8 addrspace(3)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_4_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global.1 to i8 addrspace(1)*) to i8 addrspace(4)*), i32 3, i32* %17)
992+ %40 = call i32 @__enqueue_kernel_varargs(%opencl.queue_t* %33, i32 %34, %struct.ndrange_t* %tmp12, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*, i8 addrspace(3)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_4_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global.1 to i8 addrspace(1)*) to i8 addrspace(4)*), i32 3, i32* %37)
993 ret void
994 }
995
996+; Function Attrs: argmemonly nounwind
997+declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture writeonly, i8* nocapture readonly, i32, i1) #1
998+
999 ; Function Attrs: convergent noinline nounwind optnone
1000 define internal spir_func void @__device_side_enqueue_block_invoke(i8 addrspace(4)* %.block_descriptor) #2 {
1001 entry:
1002 %.block_descriptor.addr = alloca i8 addrspace(4)*, align 4
1003- %block.addr = alloca <{ i32, i32, i32 addrspace(1)*, i32, i8 }> addrspace(4)*, align 4
1004+ %block.addr = alloca <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> addrspace(4)*, align 4
1005 store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 4
1006- %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i32 addrspace(1)*, i32, i8 }> addrspace(4)*
1007- store <{ i32, i32, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, <{ i32, i32, i32 addrspace(1)*, i32, i8 }> addrspace(4)** %block.addr, align 4
1008- %block.capture.addr = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, i32 0, i32 4
1009+ %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> addrspace(4)*
1010+ store <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> addrspace(4)** %block.addr, align 4
1011+ %block.capture.addr = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, i32 0, i32 5
1012 %0 = load i8, i8 addrspace(4)* %block.capture.addr, align 4
1013 %conv = sext i8 %0 to i32
1014- %block.capture.addr1 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, i32 0, i32 2
1015+ %block.capture.addr1 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, i32 0, i32 3
1016 %1 = load i32 addrspace(1)*, i32 addrspace(1)* addrspace(4)* %block.capture.addr1, align 4
1017- %block.capture.addr2 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, i32 0, i32 3
1018+ %block.capture.addr2 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, i32 0, i32 4
1019 %2 = load i32, i32 addrspace(4)* %block.capture.addr2, align 4
1020 %arrayidx = getelementptr inbounds i32, i32 addrspace(1)* %1, i32 %2
1021 store i32 %conv, i32 addrspace(1)* %arrayidx, align 4
1022@@ -243,19 +293,19 @@ declare i32 @__enqueue_kernel_basic(%opencl.queue_t*, i32, %struct.ndrange_t*, i
1023 define internal spir_func void @__device_side_enqueue_block_invoke_2(i8 addrspace(4)* %.block_descriptor) #2 {
1024 entry:
1025 %.block_descriptor.addr = alloca i8 addrspace(4)*, align 4
1026- %block.addr = alloca <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)*, align 4
1027+ %block.addr = alloca <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)*, align 4
1028 store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 4
1029- %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)*
1030- store <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)** %block.addr, align 4
1031- %block.capture.addr = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 4
1032+ %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)*
1033+ store <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)** %block.addr, align 4
1034+ %block.capture.addr = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 5
1035 %0 = load i32 addrspace(1)*, i32 addrspace(1)* addrspace(4)* %block.capture.addr, align 4
1036- %block.capture.addr1 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 3
1037+ %block.capture.addr1 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 4
1038 %1 = load i32, i32 addrspace(4)* %block.capture.addr1, align 4
1039 %arrayidx = getelementptr inbounds i32, i32 addrspace(1)* %0, i32 %1
1040 %2 = load i32, i32 addrspace(1)* %arrayidx, align 4
1041- %block.capture.addr2 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 2
1042+ %block.capture.addr2 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 3
1043 %3 = load i32 addrspace(1)*, i32 addrspace(1)* addrspace(4)* %block.capture.addr2, align 4
1044- %block.capture.addr3 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 3
1045+ %block.capture.addr3 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 4
1046 %4 = load i32, i32 addrspace(4)* %block.capture.addr3, align 4
1047 %arrayidx4 = getelementptr inbounds i32, i32 addrspace(1)* %3, i32 %4
1048 store i32 %2, i32 addrspace(1)* %arrayidx4, align 4
1049@@ -276,11 +326,11 @@ define internal spir_func void @__device_side_enqueue_block_invoke_3(i8 addrspac
1050 entry:
1051 %.block_descriptor.addr = alloca i8 addrspace(4)*, align 4
1052 %p.addr = alloca i8 addrspace(3)*, align 4
1053- %block.addr = alloca <{ i32, i32 }> addrspace(4)*, align 4
1054+ %block.addr = alloca <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*, align 4
1055 store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 4
1056- %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32 }> addrspace(4)*
1057+ %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*
1058 store i8 addrspace(3)* %p, i8 addrspace(3)** %p.addr, align 4
1059- store <{ i32, i32 }> addrspace(4)* %block, <{ i32, i32 }> addrspace(4)** %block.addr, align 4
1060+ store <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* %block, <{ i32, i32, i8 addrspace(4)* }> addrspace(4)** %block.addr, align 4
1061 ret void
1062 }
1063
1064@@ -300,13 +350,13 @@ entry:
1065 %p1.addr = alloca i8 addrspace(3)*, align 4
1066 %p2.addr = alloca i8 addrspace(3)*, align 4
1067 %p3.addr = alloca i8 addrspace(3)*, align 4
1068- %block.addr = alloca <{ i32, i32 }> addrspace(4)*, align 4
1069+ %block.addr = alloca <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*, align 4
1070 store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 4
1071- %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32 }> addrspace(4)*
1072+ %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*
1073 store i8 addrspace(3)* %p1, i8 addrspace(3)** %p1.addr, align 4
1074 store i8 addrspace(3)* %p2, i8 addrspace(3)** %p2.addr, align 4
1075 store i8 addrspace(3)* %p3, i8 addrspace(3)** %p3.addr, align 4
1076- store <{ i32, i32 }> addrspace(4)* %block, <{ i32, i32 }> addrspace(4)** %block.addr, align 4
1077+ store <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* %block, <{ i32, i32, i8 addrspace(4)* }> addrspace(4)** %block.addr, align 4
1078 ret void
1079 }
1080
1081@@ -329,27 +379,20 @@ declare i32 @__enqueue_kernel_varargs(%opencl.queue_t*, i32, %struct.ndrange_t*,
1082 ; CHECK-LLVM-DAG: define spir_kernel void @__device_side_enqueue_block_invoke_3_kernel(i8 addrspace(4)*, i8 addrspace(3)*)
1083 ; CHECK-LLVM-DAG: define spir_kernel void @__device_side_enqueue_block_invoke_4_kernel(i8 addrspace(4)*, i8 addrspace(3)*, i8 addrspace(3)*, i8 addrspace(3)*)
1084
1085-attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "uniform-work-group-size"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
1086+attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "uniform-work-group-size"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
1087 attributes #1 = { argmemonly nounwind }
1088-attributes #2 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
1089+attributes #2 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
1090 attributes #3 = { nounwind }
1091
1092 !llvm.module.flags = !{!0}
1093-!opencl.enable.FP_CONTRACT = !{}
1094 !opencl.ocl.version = !{!1}
1095 !opencl.spir.version = !{!1}
1096-!opencl.used.extensions = !{!2}
1097-!opencl.used.optional.core.features = !{!2}
1098-!opencl.compiler.options = !{!2}
1099-!llvm.ident = !{!3}
1100+!llvm.ident = !{!2}
1101
1102 !0 = !{i32 1, !"wchar_size", i32 4}
1103 !1 = !{i32 2, i32 0}
1104-!2 = !{}
1105-!3 = !{!"clang version 7.0.0"}
1106-!4 = !{i32 1, i32 1, i32 0, i32 0}
1107-!5 = !{!"none", !"none", !"none", !"none"}
1108-!6 = !{!"int*", !"int*", !"int", !"char"}
1109-!7 = !{!"", !"", !"", !""}
1110-!8 = !{i1 false, i1 false, i1 false, i1 false}
1111-!9 = !{i32 0, i32 0, i32 0, i32 0}
1112+!2 = !{!"clang version 9.0.0 (https://llvm.org/git/clang 04fb8964a801a5c5d7baa5a22272243a7d183896) (https://llvm.org/git/llvm 384f64397f6ad95a361b72d62c07d7bac9f24163)"}
1113+!3 = !{i32 1, i32 1, i32 0, i32 0}
1114+!4 = !{!"none", !"none", !"none", !"none"}
1115+!5 = !{!"int*", !"int*", !"int", !"char"}
1116+!6 = !{!"", !"", !"", !""}
1117--
11181.8.3.1
1119
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-dont-export-targets-for-binaries.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-dont-export-targets-for-binaries.patch
deleted file mode 100644
index 9d25bbad..00000000
--- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-dont-export-targets-for-binaries.patch
+++ /dev/null
@@ -1,66 +0,0 @@
1From 7bbd0058362ac3bb5edd7a82d43e1785810776b3 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Fri, 29 Mar 2019 08:56:53 +0800
4Subject: [PATCH] dont export targets for binaries
5
6The projects using LLVM cmake modules look for target binaries in
7sysroot as a result which isn't desirable in this case and isn't needed
8either.
9
10Upstream-Status: Inappropriate [cross-compile specific]
11
12Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
13---
14 llvm/cmake/modules/AddLLVM.cmake | 9 ---------
15 llvm/cmake/modules/TableGen.cmake | 6 ------
16 2 files changed, 15 deletions(-)
17
18diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
19index 0df6845..b79f4fa 100644
20--- a/llvm/cmake/modules/AddLLVM.cmake
21+++ b/llvm/cmake/modules/AddLLVM.cmake
22@@ -866,12 +866,6 @@ macro(add_llvm_tool name)
23
24 if ( ${name} IN_LIST LLVM_TOOLCHAIN_TOOLS OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
25 if( LLVM_BUILD_TOOLS )
26- if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
27- NOT LLVM_DISTRIBUTION_COMPONENTS)
28- set(export_to_llvmexports EXPORT LLVMExports)
29- set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True)
30- endif()
31-
32 install(TARGETS ${name}
33 ${export_to_llvmexports}
34 RUNTIME DESTINATION ${LLVM_TOOLS_INSTALL_DIR}
35@@ -884,9 +878,6 @@ macro(add_llvm_tool name)
36 endif()
37 endif()
38 endif()
39- if( LLVM_BUILD_TOOLS )
40- set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
41- endif()
42 set_target_properties(${name} PROPERTIES FOLDER "Tools")
43 endmacro(add_llvm_tool name)
44
45diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake
46index 3c84ae7..141219f 100644
47--- a/llvm/cmake/modules/TableGen.cmake
48+++ b/llvm/cmake/modules/TableGen.cmake
49@@ -164,14 +164,8 @@ macro(add_tablegen target project)
50 endif()
51
52 if (${project} STREQUAL LLVM AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
53- if(${target} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
54- NOT LLVM_DISTRIBUTION_COMPONENTS)
55- set(export_to_llvmexports EXPORT LLVMExports)
56- endif()
57-
58 install(TARGETS ${target}
59 ${export_to_llvmexports}
60 RUNTIME DESTINATION ${LLVM_TOOLS_INSTALL_DIR})
61 endif()
62- set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${target})
63 endmacro()
64--
652.7.4
66
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-point-to-correct-clang.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-point-to-correct-clang.patch
deleted file mode 100644
index 0dfc537b..00000000
--- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-point-to-correct-clang.patch
+++ /dev/null
@@ -1,59 +0,0 @@
1From 6c33fb58869ffb17106047c45ab8d3856966eaf7 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Tue, 26 Mar 2019 14:11:29 +0800
4Subject: [PATCH] point to correct clang project and tblgen
5
6Point to correct path for clang project as per the way we unpack. Also
7let llvm-tblgen path be passed from recipe itself.
8
9Also since we're going to do the patching ourselves, no need to look for
10git through cmake.
11
12Upstream-Status: Inappropriate [OE specific]
13---
14 CMakeLists.txt | 8 ++++----
15 1 file changed, 4 insertions(+), 4 deletions(-)
16
17diff --git a/CMakeLists.txt b/CMakeLists.txt
18index 174133b..c769f08 100644
19--- a/CMakeLists.txt
20+++ b/CMakeLists.txt
21@@ -53,7 +53,7 @@ endif(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
22 include(AddLLVM)
23 include(TableGen)
24
25-find_package(Git REQUIRED)
26+#find_package(Git REQUIRED)
27
28 if (NOT WIN32)
29 add_subdirectory( linux_linker )
30@@ -80,7 +80,7 @@ set(TARGET_NAME ${COMMON_CLANG_LIBRARY_NAME}${BUILD_PLATFORM} )
31
32 if(NOT USE_PREBUILT_LLVM)
33 set(TARGET_BRANCH "ocl-open-80")
34- set(CLANG_SOURCE_DIR ${LLVM_SOURCE_DIR}/tools/clang)
35+ set(CLANG_SOURCE_DIR ${LLVM_SOURCE_DIR}/../clang)
36 set(CLANG_BASE_REVISION a03da8be08a208122e292016cb6cea1f30229677)
37
38 set(SPIRV_SOURCE_DIR ${LLVM_SOURCE_DIR}/projects/llvm-spirv)
39@@ -102,7 +102,7 @@ endif(NOT USE_PREBUILT_LLVM)
40 set (COMPILE_OPTIONS_TD opencl_clang_options.td)
41 set (COMPILE_OPTIONS_INC opencl_clang_options.inc)
42
43-set(LLVM_TABLEGEN_EXE "llvm-tblgen")
44+#set(LLVM_TABLEGEN_EXE "llvm-tblgen")
45 set(LLVM_TARGET_DEFINITIONS ${COMPILE_OPTIONS_TD})
46 if(USE_PREBUILT_LLVM)
47 set(TABLEGEN_ADDITIONAL -I ${LLVM_INCLUDE_DIRS})
48@@ -153,7 +153,7 @@ endif()
49
50 if(NOT USE_PREBUILT_LLVM)
51 set(CLANG_BINARY_DIR ${LLVM_BINARY_DIR}/tools/clang/)
52- set(CLANG_SOURCE_DIR ${LLVM_MAIN_SRC_DIR}/tools/clang/)
53+ set(CLANG_SOURCE_DIR ${LLVM_MAIN_SRC_DIR}/../clang/)
54 include_directories(
55 ${CLANG_BINARY_DIR}/include # for tablegened includes
56 ${CLANG_SOURCE_DIR}/include # for basic headers
57--
582.19.1
59
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0002-OpenCL-Simplify-LLVM-IR-generated-for-OpenCL-blocks.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/0002-OpenCL-Simplify-LLVM-IR-generated-for-OpenCL-blocks.patch
deleted file mode 100644
index 2e935a13..00000000
--- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0002-OpenCL-Simplify-LLVM-IR-generated-for-OpenCL-blocks.patch
+++ /dev/null
@@ -1,294 +0,0 @@
1From c94ec28600255098ffb9d73d1b386a7c8a535590 Mon Sep 17 00:00:00 2001
2From: Andrew Savonichev <andrew.savonichev@intel.com>
3Date: Thu, 21 Feb 2019 11:02:10 +0000
4Subject: [PATCH 2/2] [OpenCL] Simplify LLVM IR generated for OpenCL blocks
5
6Summary:
7Emit direct call of block invoke functions when possible, i.e. in case the
8block is not passed as a function argument.
9Also doing some refactoring of `CodeGenFunction::EmitBlockCallExpr()`
10
11Reviewers: Anastasia, yaxunl, svenvh
12
13Reviewed By: Anastasia
14
15Subscribers: cfe-commits
16
17Tags: #clang
18
19Differential Revision: https://reviews.llvm.org/D58388
20
21git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@354568 91177308-0d34-0410-b5e6-96231b3b80d8
22
23Upstream-Status: Backport
24[https://github.com/llvm-mirror/clang/commit/eae71f8d05ce550c4e2595c9b7082cc2c7882c58]
25Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
26---
27 lib/CodeGen/CGBlocks.cpp | 77 +++++++++++++-------------
28 lib/CodeGen/CGOpenCLRuntime.cpp | 30 +++++++---
29 lib/CodeGen/CGOpenCLRuntime.h | 4 ++
30 test/CodeGenOpenCL/blocks.cl | 10 +---
31 test/CodeGenOpenCL/cl20-device-side-enqueue.cl | 34 +++++++++---
32 5 files changed, 91 insertions(+), 64 deletions(-)
33
34diff --git a/lib/CodeGen/CGBlocks.cpp b/lib/CodeGen/CGBlocks.cpp
35index fa3c3ee..10a0238 100644
36--- a/lib/CodeGen/CGBlocks.cpp
37+++ b/lib/CodeGen/CGBlocks.cpp
38@@ -1261,52 +1261,49 @@ RValue CodeGenFunction::EmitBlockCallExpr(const CallExpr *E,
39 ReturnValueSlot ReturnValue) {
40 const BlockPointerType *BPT =
41 E->getCallee()->getType()->getAs<BlockPointerType>();
42-
43 llvm::Value *BlockPtr = EmitScalarExpr(E->getCallee());
44-
45- // Get a pointer to the generic block literal.
46- // For OpenCL we generate generic AS void ptr to be able to reuse the same
47- // block definition for blocks with captures generated as private AS local
48- // variables and without captures generated as global AS program scope
49- // variables.
50- unsigned AddrSpace = 0;
51- if (getLangOpts().OpenCL)
52- AddrSpace = getContext().getTargetAddressSpace(LangAS::opencl_generic);
53-
54- llvm::Type *BlockLiteralTy =
55- llvm::PointerType::get(CGM.getGenericBlockLiteralType(), AddrSpace);
56-
57- // Bitcast the callee to a block literal.
58- BlockPtr =
59- Builder.CreatePointerCast(BlockPtr, BlockLiteralTy, "block.literal");
60-
61- // Get the function pointer from the literal.
62- llvm::Value *FuncPtr =
63- Builder.CreateStructGEP(CGM.getGenericBlockLiteralType(), BlockPtr,
64- CGM.getLangOpts().OpenCL ? 2 : 3);
65-
66- // Add the block literal.
67+ llvm::Type *GenBlockTy = CGM.getGenericBlockLiteralType();
68+ llvm::Value *Func = nullptr;
69+ QualType FnType = BPT->getPointeeType();
70+ ASTContext &Ctx = getContext();
71 CallArgList Args;
72
73- QualType VoidPtrQualTy = getContext().VoidPtrTy;
74- llvm::Type *GenericVoidPtrTy = VoidPtrTy;
75 if (getLangOpts().OpenCL) {
76- GenericVoidPtrTy = CGM.getOpenCLRuntime().getGenericVoidPointerType();
77- VoidPtrQualTy =
78- getContext().getPointerType(getContext().getAddrSpaceQualType(
79- getContext().VoidTy, LangAS::opencl_generic));
80- }
81-
82- BlockPtr = Builder.CreatePointerCast(BlockPtr, GenericVoidPtrTy);
83- Args.add(RValue::get(BlockPtr), VoidPtrQualTy);
84-
85- QualType FnType = BPT->getPointeeType();
86+ // For OpenCL, BlockPtr is already casted to generic block literal.
87+
88+ // First argument of a block call is a generic block literal casted to
89+ // generic void pointer, i.e. i8 addrspace(4)*
90+ llvm::Value *BlockDescriptor = Builder.CreatePointerCast(
91+ BlockPtr, CGM.getOpenCLRuntime().getGenericVoidPointerType());
92+ QualType VoidPtrQualTy = Ctx.getPointerType(
93+ Ctx.getAddrSpaceQualType(Ctx.VoidTy, LangAS::opencl_generic));
94+ Args.add(RValue::get(BlockDescriptor), VoidPtrQualTy);
95+ // And the rest of the arguments.
96+ EmitCallArgs(Args, FnType->getAs<FunctionProtoType>(), E->arguments());
97+
98+ // We *can* call the block directly unless it is a function argument.
99+ if (!isa<ParmVarDecl>(E->getCalleeDecl()))
100+ Func = CGM.getOpenCLRuntime().getInvokeFunction(E->getCallee());
101+ else {
102+ llvm::Value *FuncPtr = Builder.CreateStructGEP(GenBlockTy, BlockPtr, 2);
103+ Func = Builder.CreateAlignedLoad(FuncPtr, getPointerAlign());
104+ }
105+ } else {
106+ // Bitcast the block literal to a generic block literal.
107+ BlockPtr = Builder.CreatePointerCast(
108+ BlockPtr, llvm::PointerType::get(GenBlockTy, 0), "block.literal");
109+ // Get pointer to the block invoke function
110+ llvm::Value *FuncPtr = Builder.CreateStructGEP(GenBlockTy, BlockPtr, 3);
111
112- // And the rest of the arguments.
113- EmitCallArgs(Args, FnType->getAs<FunctionProtoType>(), E->arguments());
114+ // First argument is a block literal casted to a void pointer
115+ BlockPtr = Builder.CreatePointerCast(BlockPtr, VoidPtrTy);
116+ Args.add(RValue::get(BlockPtr), Ctx.VoidPtrTy);
117+ // And the rest of the arguments.
118+ EmitCallArgs(Args, FnType->getAs<FunctionProtoType>(), E->arguments());
119
120- // Load the function.
121- llvm::Value *Func = Builder.CreateAlignedLoad(FuncPtr, getPointerAlign());
122+ // Load the function.
123+ Func = Builder.CreateAlignedLoad(FuncPtr, getPointerAlign());
124+ }
125
126 const FunctionType *FuncTy = FnType->castAs<FunctionType>();
127 const CGFunctionInfo &FnInfo =
128diff --git a/lib/CodeGen/CGOpenCLRuntime.cpp b/lib/CodeGen/CGOpenCLRuntime.cpp
129index 7f6f595..75003e5 100644
130--- a/lib/CodeGen/CGOpenCLRuntime.cpp
131+++ b/lib/CodeGen/CGOpenCLRuntime.cpp
132@@ -123,6 +123,23 @@ llvm::PointerType *CGOpenCLRuntime::getGenericVoidPointerType() {
133 CGM.getContext().getTargetAddressSpace(LangAS::opencl_generic));
134 }
135
136+// Get the block literal from an expression derived from the block expression.
137+// OpenCL v2.0 s6.12.5:
138+// Block variable declarations are implicitly qualified with const. Therefore
139+// all block variables must be initialized at declaration time and may not be
140+// reassigned.
141+static const BlockExpr *getBlockExpr(const Expr *E) {
142+ const Expr *Prev = nullptr; // to make sure we do not stuck in infinite loop.
143+ while(!isa<BlockExpr>(E) && E != Prev) {
144+ Prev = E;
145+ E = E->IgnoreCasts();
146+ if (auto DR = dyn_cast<DeclRefExpr>(E)) {
147+ E = cast<VarDecl>(DR->getDecl())->getInit();
148+ }
149+ }
150+ return cast<BlockExpr>(E);
151+}
152+
153 /// Record emitted llvm invoke function and llvm block literal for the
154 /// corresponding block expression.
155 void CGOpenCLRuntime::recordBlockInfo(const BlockExpr *E,
156@@ -137,20 +154,17 @@ void CGOpenCLRuntime::recordBlockInfo(const BlockExpr *E,
157 EnqueuedBlockMap[E].Kernel = nullptr;
158 }
159
160+llvm::Function *CGOpenCLRuntime::getInvokeFunction(const Expr *E) {
161+ return EnqueuedBlockMap[getBlockExpr(E)].InvokeFunc;
162+}
163+
164 CGOpenCLRuntime::EnqueuedBlockInfo
165 CGOpenCLRuntime::emitOpenCLEnqueuedBlock(CodeGenFunction &CGF, const Expr *E) {
166 CGF.EmitScalarExpr(E);
167
168 // The block literal may be assigned to a const variable. Chasing down
169 // to get the block literal.
170- if (auto DR = dyn_cast<DeclRefExpr>(E)) {
171- E = cast<VarDecl>(DR->getDecl())->getInit();
172- }
173- E = E->IgnoreImplicit();
174- if (auto Cast = dyn_cast<CastExpr>(E)) {
175- E = Cast->getSubExpr();
176- }
177- auto *Block = cast<BlockExpr>(E);
178+ const BlockExpr *Block = getBlockExpr(E);
179
180 assert(EnqueuedBlockMap.find(Block) != EnqueuedBlockMap.end() &&
181 "Block expression not emitted");
182diff --git a/lib/CodeGen/CGOpenCLRuntime.h b/lib/CodeGen/CGOpenCLRuntime.h
183index 750721f..4effc7e 100644
184--- a/lib/CodeGen/CGOpenCLRuntime.h
185+++ b/lib/CodeGen/CGOpenCLRuntime.h
186@@ -92,6 +92,10 @@ public:
187 /// \param Block block literal emitted for the block expression.
188 void recordBlockInfo(const BlockExpr *E, llvm::Function *InvokeF,
189 llvm::Value *Block);
190+
191+ /// \return LLVM block invoke function emitted for an expression derived from
192+ /// the block expression.
193+ llvm::Function *getInvokeFunction(const Expr *E);
194 };
195
196 }
197diff --git a/test/CodeGenOpenCL/blocks.cl b/test/CodeGenOpenCL/blocks.cl
198index 19aacc3..ab5a2c6 100644
199--- a/test/CodeGenOpenCL/blocks.cl
200+++ b/test/CodeGenOpenCL/blocks.cl
201@@ -39,11 +39,8 @@ void foo(){
202 // SPIR: %[[blk_gen_ptr:.*]] = addrspacecast %struct.__opencl_block_literal_generic* %[[blk_ptr]] to %struct.__opencl_block_literal_generic addrspace(4)*
203 // SPIR: store %struct.__opencl_block_literal_generic addrspace(4)* %[[blk_gen_ptr]], %struct.__opencl_block_literal_generic addrspace(4)** %[[block_B:.*]],
204 // SPIR: %[[block_literal:.*]] = load %struct.__opencl_block_literal_generic addrspace(4)*, %struct.__opencl_block_literal_generic addrspace(4)** %[[block_B]]
205- // SPIR: %[[invoke_addr:.*]] = getelementptr inbounds %struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic addrspace(4)* %[[block_literal]], i32 0, i32 2
206 // SPIR: %[[blk_gen_ptr:.*]] = bitcast %struct.__opencl_block_literal_generic addrspace(4)* %[[block_literal]] to i8 addrspace(4)*
207- // SPIR: %[[invoke_func_ptr:.*]] = load i8 addrspace(4)*, i8 addrspace(4)* addrspace(4)* %[[invoke_addr]]
208- // SPIR: %[[invoke_func:.*]] = addrspacecast i8 addrspace(4)* %[[invoke_func_ptr]] to i32 (i8 addrspace(4)*)*
209- // SPIR: call {{.*}}i32 %[[invoke_func]](i8 addrspace(4)* %[[blk_gen_ptr]])
210+ // SPIR: call {{.*}}i32 @__foo_block_invoke(i8 addrspace(4)* %[[blk_gen_ptr]])
211 // AMDGCN: %[[block_invoke:.*]] = getelementptr inbounds <{ i32, i32, i8*, i32 }>, <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block:.*]], i32 0, i32 2
212 // AMDGCN: store i8* bitcast (i32 (i8*)* @__foo_block_invoke to i8*), i8* addrspace(5)* %[[block_invoke]]
213 // AMDGCN: %[[block_captured:.*]] = getelementptr inbounds <{ i32, i32, i8*, i32 }>, <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block]], i32 0, i32 3
214@@ -53,11 +50,8 @@ void foo(){
215 // AMDGCN: %[[blk_gen_ptr:.*]] = addrspacecast %struct.__opencl_block_literal_generic addrspace(5)* %[[blk_ptr]] to %struct.__opencl_block_literal_generic*
216 // AMDGCN: store %struct.__opencl_block_literal_generic* %[[blk_gen_ptr]], %struct.__opencl_block_literal_generic* addrspace(5)* %[[block_B:.*]],
217 // AMDGCN: %[[block_literal:.*]] = load %struct.__opencl_block_literal_generic*, %struct.__opencl_block_literal_generic* addrspace(5)* %[[block_B]]
218- // AMDGCN: %[[invoke_addr:.*]] = getelementptr inbounds %struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic* %[[block_literal]], i32 0, i32 2
219 // AMDGCN: %[[blk_gen_ptr:.*]] = bitcast %struct.__opencl_block_literal_generic* %[[block_literal]] to i8*
220- // AMDGCN: %[[invoke_func_ptr:.*]] = load i8*, i8** %[[invoke_addr]]
221- // AMDGCN: %[[invoke_func:.*]] = bitcast i8* %[[invoke_func_ptr]] to i32 (i8*)*
222- // AMDGCN: call {{.*}}i32 %[[invoke_func]](i8* %[[blk_gen_ptr]])
223+ // AMDGCN: call {{.*}}i32 @__foo_block_invoke(i8* %[[blk_gen_ptr]])
224
225 int (^ block_B)(void) = ^{
226 return i;
227diff --git a/test/CodeGenOpenCL/cl20-device-side-enqueue.cl b/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
228index 8445016..1566912 100644
229--- a/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
230+++ b/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
231@@ -312,9 +312,7 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) {
232 };
233
234 // Uses global block literal [[BLG8]] and invoke function [[INVG8]].
235- // COMMON: [[r1:%.*]] = load i8 addrspace(4)*, i8 addrspace(4)* addrspace(4)* getelementptr inbounds (%struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), i32 0, i32 2)
236- // COMMON: [[r2:%.*]] = addrspacecast i8 addrspace(4)* [[r1]] to void (i8 addrspace(4)*)*
237- // COMMON: call spir_func void [[r2]](i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to i8 addrspace(1)*) to i8 addrspace(4)*))
238+ // COMMON: call spir_func void @__device_side_enqueue_block_invoke_11(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to i8 addrspace(1)*) to i8 addrspace(4)*))
239 block_A();
240
241 // Emits global block literal [[BLG8]] and block kernel [[INVGK8]]. [[INVGK8]] calls [[INVG8]].
242@@ -333,15 +331,35 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) {
243 unsigned size = get_kernel_work_group_size(block_A);
244
245 // Uses global block literal [[BLG8]] and invoke function [[INVG8]]. Make sure no redundant block literal and invoke functions are emitted.
246- // COMMON: [[r1:%.*]] = load i8 addrspace(4)*, i8 addrspace(4)* addrspace(4)* getelementptr inbounds (%struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), i32 0, i32 2)
247- // COMMON: [[r2:%.*]] = addrspacecast i8 addrspace(4)* [[r1]] to void (i8 addrspace(4)*)*
248- // COMMON: call spir_func void [[r2]](i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to i8 addrspace(1)*) to i8 addrspace(4)*))
249+ // COMMON: call spir_func void @__device_side_enqueue_block_invoke_11(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to i8 addrspace(1)*) to i8 addrspace(4)*))
250 block_A();
251
252+ // Make sure that block invoke function is resolved correctly after sequence of assignements.
253+ // COMMON: store %struct.__opencl_block_literal_generic addrspace(4)*
254+ // COMMON-SAME: addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)*
255+ // COMMON-SAME: bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to %struct.__opencl_block_literal_generic addrspace(1)*)
256+ // COMMON-SAME: to %struct.__opencl_block_literal_generic addrspace(4)*),
257+ // COMMON-SAME: %struct.__opencl_block_literal_generic addrspace(4)** %b1,
258+ bl_t b1 = block_G;
259+ // COMMON: store %struct.__opencl_block_literal_generic addrspace(4)*
260+ // COMMON-SAME: addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)*
261+ // COMMON-SAME: bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to %struct.__opencl_block_literal_generic addrspace(1)*)
262+ // COMMON-SAME: to %struct.__opencl_block_literal_generic addrspace(4)*),
263+ // COMMON-SAME: %struct.__opencl_block_literal_generic addrspace(4)** %b2,
264+ bl_t b2 = b1;
265+ // COMMON: call spir_func void @block_G_block_invoke(i8 addrspace(4)* addrspacecast (i8 addrspace(1)*
266+ // COMMON-SAME: bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to i8 addrspace(1)*)
267+ // COOMON-SAME: to i8 addrspace(4)*), i8 addrspace(3)* null)
268+ b2(0);
269+ // Uses global block literal [[BL_GLOBAL]] and block kernel [[INV_G_K]]. [[INV_G_K]] calls [[INV_G]].
270+ // COMMON: call i32 @__get_kernel_preferred_work_group_size_multiple_impl(
271+ // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8* bitcast ({{.*}} [[INV_G_K:[^ ]+_kernel]] to i8*) to i8 addrspace(4)*),
272+ // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to i8 addrspace(1)*) to i8 addrspace(4)*))
273+ size = get_kernel_preferred_work_group_size_multiple(b2);
274+
275 void (^block_C)(void) = ^{
276 callee(i, a);
277 };
278-
279 // Emits block literal on stack and block kernel [[INVLK3]].
280 // COMMON: store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* [[INVL3:@__device_side_enqueue_block_invoke[^ ]*]] to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke
281 // COMMON: [[DEF_Q:%[0-9]+]] = load %opencl.queue_t{{.*}}*, %opencl.queue_t{{.*}}** %default_queue
282@@ -404,8 +422,8 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) {
283 // COMMON: define internal spir_func void [[INVG8]](i8 addrspace(4)*{{.*}})
284 // COMMON: define internal spir_func void [[INVG9]](i8 addrspace(4)*{{.*}}, i8 addrspace(3)* %{{.*}})
285 // COMMON: define internal spir_kernel void [[INVGK8]](i8 addrspace(4)*{{.*}})
286+// COMMON: define internal spir_kernel void [[INV_G_K]](i8 addrspace(4)*{{.*}}, i8 addrspace(3)*{{.*}})
287 // COMMON: define internal spir_kernel void [[INVLK3]](i8 addrspace(4)*{{.*}})
288 // COMMON: define internal spir_kernel void [[INVGK9]](i8 addrspace(4)*{{.*}}, i8 addrspace(3)*{{.*}})
289-// COMMON: define internal spir_kernel void [[INV_G_K]](i8 addrspace(4)*{{.*}}, i8 addrspace(3)*{{.*}})
290 // COMMON: define internal spir_kernel void [[INVGK10]](i8 addrspace(4)*{{.*}})
291 // COMMON: define internal spir_kernel void [[INVGK11]](i8 addrspace(4)*{{.*}})
292--
2931.8.3.1
294
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0003-OpenCL-Fix-assertion-due-to-blocks.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/0003-OpenCL-Fix-assertion-due-to-blocks.patch
deleted file mode 100644
index 510c7c6e..00000000
--- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0003-OpenCL-Fix-assertion-due-to-blocks.patch
+++ /dev/null
@@ -1,61 +0,0 @@
1From 29e2813a2ab7d5569860bb07892dfef7b5374d96 Mon Sep 17 00:00:00 2001
2From: Yaxun Liu <Yaxun.Liu@amd.com>
3Date: Tue, 26 Feb 2019 16:20:41 +0000
4Subject: [PATCH] [OpenCL] Fix assertion due to blocks
5
6A recent change caused assertion in CodeGenFunction::EmitBlockCallExpr when a block is called.
7
8There is code
9
10 Func = CGM.getOpenCLRuntime().getInvokeFunction(E->getCallee());
11getCalleeDecl calls Expr::getReferencedDeclOfCallee, which does not handle
12BlockExpr and returns nullptr, which causes isa to assert.
13
14This patch fixes that.
15
16Differential Revision: https://reviews.llvm.org/D58658
17
18
19git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@354893 91177308-0d34-0410-b5e6-96231b3b80d8
20
21Upstream-Status: Backport
22[https://github.com/llvm-mirror/clang/commit/29e2813a2ab7d5569860bb07892dfef7b5374d96]
23Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
24---
25 lib/AST/Expr.cpp | 2 ++
26 test/CodeGenOpenCL/blocks.cl | 6 ++++++
27 2 files changed, 8 insertions(+)
28
29diff --git a/lib/AST/Expr.cpp b/lib/AST/Expr.cpp
30index aef1eab..85690c7 100644
31--- a/lib/AST/Expr.cpp
32+++ b/lib/AST/Expr.cpp
33@@ -1358,6 +1358,8 @@ Decl *Expr::getReferencedDeclOfCallee() {
34 return DRE->getDecl();
35 if (MemberExpr *ME = dyn_cast<MemberExpr>(CEE))
36 return ME->getMemberDecl();
37+ if (auto *BE = dyn_cast<BlockExpr>(CEE))
38+ return BE->getBlockDecl();
39
40 return nullptr;
41 }
42diff --git a/test/CodeGenOpenCL/blocks.cl b/test/CodeGenOpenCL/blocks.cl
43index ab5a2c6..c3e2685 100644
44--- a/test/CodeGenOpenCL/blocks.cl
45+++ b/test/CodeGenOpenCL/blocks.cl
46@@ -90,6 +90,12 @@ int get42() {
47 return blockArgFunc(^{return 42;});
48 }
49
50+// COMMON-LABEL: define {{.*}}@call_block
51+// call {{.*}}@__call_block_block_invoke
52+int call_block() {
53+ return ^int(int num) { return num; } (11);
54+}
55+
56 // CHECK-DEBUG: !DIDerivedType(tag: DW_TAG_member, name: "__size"
57 // CHECK-DEBUG: !DIDerivedType(tag: DW_TAG_member, name: "__align"
58
59--
601.8.3.1
61
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/llvm-project-source.bbappend b/dynamic-layers/clang-layer/recipes-devtools/clang/llvm-project-source.bbappend
deleted file mode 100644
index f536f0f2..00000000
--- a/dynamic-layers/clang-layer/recipes-devtools/clang/llvm-project-source.bbappend
+++ /dev/null
@@ -1,16 +0,0 @@
1FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/files:"
2
3SRC_URI_append_intel-x86-common = " \
4 git://github.com/intel/opencl-clang.git;protocol=https;branch=ocl-open-80;destsuffix=git/llvm/projects/opencl-clang;name=opencl-clang \
5 git://github.com/KhronosGroup/SPIRV-LLVM-Translator.git;protocol=https;branch=llvm_release_80;destsuffix=git/llvm/projects/llvm-spirv;name=spirv \
6 file://0001-point-to-correct-clang.patch;patchdir=llvm/projects/opencl-clang \
7 file://0001-OpenCL-Change-type-of-block-pointer-for-OpenCL.patch;patchdir=clang \
8 file://0002-OpenCL-Simplify-LLVM-IR-generated-for-OpenCL-blocks.patch;patchdir=clang \
9 file://0003-OpenCL-Fix-assertion-due-to-blocks.patch;patchdir=clang \
10 file://0001-dont-export-targets-for-binaries.patch \
11 file://0001-Update-LowerOpenCL-pass-to-handle-new-blocks-represn.patch;patchdir=llvm/projects/llvm-spirv \
12 "
13
14SRCREV_opencl-clang = "daf5e4dd718477ae8cf89a283c653939d9182f15"
15SRCREV_spirv = "bd0f28fb92061d49c0f120b4dac3fd8956006745"
16
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0002-Build-not-able-to-locate-cpp_generation_tool.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0002-Build-not-able-to-locate-cpp_generation_tool.patch
new file mode 100644
index 00000000..45288ce1
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0002-Build-not-able-to-locate-cpp_generation_tool.patch
@@ -0,0 +1,41 @@
1From 8c330d0cb5167612296801f0202b0de35e9ca88d Mon Sep 17 00:00:00 2001
2From: Dongwon Kim <dongwon.kim@intel.com>
3Date: Sat, 21 Aug 2021 16:09:39 -0700
4Subject: [PATCH 2/5] Build not able to locate cpp_generation_tool.
5
6Upstream-Status: Inappropriate [oe specific]
7
8Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
9Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
10---
11 shared/source/built_ins/kernels/CMakeLists.txt | 10 +++++-----
12 1 file changed, 5 insertions(+), 5 deletions(-)
13
14Index: git/shared/source/built_ins/kernels/CMakeLists.txt
15===================================================================
16--- git.orig/shared/source/built_ins/kernels/CMakeLists.txt
17+++ git/shared/source/built_ins/kernels/CMakeLists.txt
18@@ -122,9 +122,9 @@ function(compile_builtin core_type platf
19 endif()
20 add_custom_command(
21 OUTPUT ${OUTPUT_FILE_CPP}
22- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${BINARY_OUTPUT}.bin --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --device ${RELEASE_FILENAME}
23+ COMMAND cpp_generate_tool --file ${BINARY_OUTPUT}.bin --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --device ${RELEASE_FILENAME}
24 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
25- DEPENDS ${OUTPUT_FILES_BINARIES} $<TARGET_FILE:cpp_generate_tool>
26+ DEPENDS ${OUTPUT_FILES_BINARIES} cpp_generate_tool
27 )
28 list(APPEND BUILTINS_COMMANDS "${OUTPUT_FILE_CPP}")
29 else()
30@@ -176,9 +176,9 @@ function(generate_cpp_spirv builtin)
31 endif()
32 add_custom_command(
33 OUTPUT ${OUTPUT_FILE_CPP}
34- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME}
35+ COMMAND cpp_generate_tool --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME}
36 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
37- DEPENDS ${GENERATED_SPV_INPUT} $<TARGET_FILE:cpp_generate_tool>
38+ DEPENDS ${GENERATED_SPV_INPUT} cpp_generate_tool
39 )
40 set(OUTPUT_LIST_CPP_FILES ${OUTPUT_LIST_CPP_FILES} ${OUTPUT_FILE_CPP} PARENT_SCOPE)
41 else()
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0003-external-ocloc.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0003-external-ocloc.patch
new file mode 100644
index 00000000..2001d839
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0003-external-ocloc.patch
@@ -0,0 +1,38 @@
1From 0006db5f55a9f08bd3452558a53704cd3bbb790f Mon Sep 17 00:00:00 2001
2From: Dongwon Kim <dongwon.kim@intel.com>
3Date: Wed, 2 Mar 2022 15:52:45 -0800
4Subject: [PATCH 3/5] external ocloc
5
6Upstream-Status: Inappropriate
7
8Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
9---
10 cmake/ocloc_cmd_prefix.cmake | 14 ++++++++------
11 1 file changed, 8 insertions(+), 6 deletions(-)
12
13Index: git/cmake/ocloc_cmd_prefix.cmake
14===================================================================
15--- git.orig/cmake/ocloc_cmd_prefix.cmake
16+++ git/cmake/ocloc_cmd_prefix.cmake
17@@ -4,13 +4,15 @@
18 # SPDX-License-Identifier: MIT
19 #
20
21-if(WIN32)
22- set(ocloc_cmd_prefix ocloc)
23-else()
24- if(DEFINED NEO__IGC_LIBRARY_PATH)
25- set(ocloc_cmd_prefix ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NEO__IGC_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib>" $<TARGET_FILE:ocloc>)
26+if(NOT DEFINED ocloc_cmd_prefix)
27+ if(WIN32)
28+ set(ocloc_cmd_prefix ocloc)
29 else()
30- set(ocloc_cmd_prefix ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib>" $<TARGET_FILE:ocloc>)
31+ if(DEFINED NEO__IGC_LIBRARY_PATH)
32+ set(ocloc_cmd_prefix LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NEO__IGC_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib> $<TARGET_FILE:ocloc>)
33+ else()
34+ set(ocloc_cmd_prefix LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib> $<TARGET_FILE:ocloc>)
35+ endif()
36 endif()
37 endif()
38
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_25.13.33276.16.bb b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_25.13.33276.16.bb
new file mode 100644
index 00000000..635e8c2f
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_25.13.33276.16.bb
@@ -0,0 +1,63 @@
1SUMMARY = "The Intel(R) Graphics Compute Runtime for OpenCL(TM)"
2DESCRIPTION = "The Intel(R) Graphics Compute Runtime for OpenCL(TM) \
3is an open source project to converge Intel's development efforts \
4on OpenCL(TM) compute stacks supporting the GEN graphics hardware \
5architecture."
6
7LICENSE = "MIT & Apache-2.0"
8LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eca6ec6997e18db166db7109cdbe611c \
9 file://third_party/opencl_headers/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
10
11SRC_URI = "git://github.com/intel/compute-runtime.git;protocol=https;branch=releases/25.13 \
12 file://0002-Build-not-able-to-locate-cpp_generation_tool.patch \
13 file://0003-external-ocloc.patch \
14 "
15
16SRCREV = "a9961bdfaa07250fd52ff930bf8f31fb4e3b7799"
17
18S = "${WORKDIR}/git"
19
20DEPENDS += " intel-graphics-compiler gmmlib libva qemu-native"
21
22RDEPENDS:${PN} += " intel-graphics-compiler gmmlib"
23
24inherit cmake pkgconfig qemu
25
26COMPATIBLE_HOST = '(x86_64).*-linux'
27COMPATIBLE_HOST:libc-musl = "null"
28
29EXTRA_OECMAKE = " \
30 -DIGC_DIR=${STAGING_INCDIR}/igc \
31 -DBUILD_TYPE=Release \
32 -DSKIP_UNIT_TESTS=1 \
33 -DCCACHE_ALLOWED=FALSE \
34 -DNEO_DISABLE_LD_LLD=ON \
35 -DNEO_DISABLE_LD_GOLD=ON \
36 "
37
38EXTRA_OECMAKE:append:class-target = " \
39 -Docloc_cmd_prefix=ocloc \
40 -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \
41 "
42
43PACKAGECONFIG ??= ""
44PACKAGECONFIG[levelzero] = "-DBUILD_WITH_L0=ON, -DBUILD_WITH_L0=OFF, level-zero"
45
46do_configure:prepend:class-target () {
47 # Write out a qemu wrapper that will be used by cmake.
48 qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${B}/bin'),d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
49 cat > ${WORKDIR}/qemuwrapper << EOF
50#!/bin/sh
51$qemu_binary "\$@"
52EOF
53 chmod +x ${WORKDIR}/qemuwrapper
54}
55
56FILES:${PN} += " \
57 ${libdir}/intel-opencl/libigdrcl.so \
58 ${libdir}/libocloc.so \
59 "
60
61FILES:${PN}-dev = "${includedir}"
62
63UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch
new file mode 100644
index 00000000..456a8c65
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch
@@ -0,0 +1,32 @@
1From 1b98a931c3bf8daccc48cd618335ff35e3d382da Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Tue, 12 Oct 2021 23:46:42 +0800
4Subject: [PATCH] BiF/CMakeLists.txt: remove opt from DEPENDS
5
6Otherwise it starts failing with:
7
8| ninja: error: 'IGC/VectorCompiler/lib/BiF/opt', needed by 'IGC/VectorCompiler/lib/BiF/VCBiFPrintfOCL32.opt.bc', missing and no known rule to make it
9
10We don't need to explicitly make sure opt is built when
11using prebuilt binaries.
12
13Upstream-Status: Inappropriate
14
15Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
16---
17 IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-)
19
20Index: git/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
21===================================================================
22--- git.orig/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
23+++ git/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
24@@ -121,7 +121,7 @@ function(vc_build_bif RES_FILE CMCL_SRC_
25 COMMENT "vc_build_bif: Translating CMCL builtins: ${BIF_CLANG_BC_NAME_FINAL} -> ${BIF_OPT_BC_NAME}"
26 COMMAND CMCLTranslatorTool ${OPT_OPAQUE_ARG} -o ${BIF_CMCL_BC_PATH} ${BIF_CLANG_BC_PATH_FINAL}
27 COMMAND ${LLVM_OPT_EXE} ${OPT_OPAQUE_ARG} --O2 -o ${BIF_OPT_BC_PATH} ${BIF_CMCL_BC_PATH}
28- DEPENDS CMCLTranslatorTool ${LLVM_OPT_EXE} ${OPT_BC_DEPENDS})
29+ DEPENDS CMCLTranslatorTool ${BIF_CLANG_BC_PATH_FINAL})
30
31 add_custom_target(${TARGET_NAME}
32 DEPENDS ${BIF_OPT_BC_PATH}
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-Build-not-able-to-locate-BiFManager-bin.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-Build-not-able-to-locate-BiFManager-bin.patch
new file mode 100644
index 00000000..87b094aa
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-Build-not-able-to-locate-BiFManager-bin.patch
@@ -0,0 +1,27 @@
1From 048512728eea53b3772a3f80ac9743bfc462487e Mon Sep 17 00:00:00 2001
2From: Yogesh Tyagi <yogesh.tyagi@intel.com>
3Date: Thu, 2 Jan 2025 15:59:27 +0530
4Subject: [PATCH] Build not able to locate BiFManager-bin
5
6Upstream-Status: Inappropriate [oe specific]
7
8Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
9---
10 IGC/BiFModule/CMakeLists.txt | 4 ++--
11 1 file changed, 2 insertions(+), 2 deletions(-)
12
13Index: git/IGC/BiFModule/CMakeLists.txt
14===================================================================
15--- git.orig/IGC/BiFModule/CMakeLists.txt
16+++ git/IGC/BiFModule/CMakeLists.txt
17@@ -655,8 +655,8 @@ set(IGC_BUILD__PROJ__BiFModuleCache_OCL
18
19 add_custom_command(
20 OUTPUT "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.h" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bifbc"
21- COMMAND $<TARGET_FILE:BiFManager-bin> "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_32.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_64.bc" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bifbc" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.h"
22- DEPENDS "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_32.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_64.bc"$<TARGET_FILE:BiFManager-bin>
23+ COMMAND BiFManager-bin "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_32.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_64.bc" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bifbc" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.h"
24+ DEPENDS "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_32.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_64.bc" BiFManager-bin
25 COMMENT "BiF: ${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc: Spliting output .bc."
26 COMMAND_EXPAND_LISTS
27 )
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch
new file mode 100644
index 00000000..fc66b71d
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch
@@ -0,0 +1,30 @@
1From 251e2854dd206ebf66e5908d3277e4585fe2a63b Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Mon, 9 Jan 2023 11:43:05 +0800
4Subject: [PATCH] external/SPIRV-Tools: change path to tools and headers
5
6We clone the SPIRV headers and tools in a different directory to ensure
7file path substitutions take place.
8
9Upstream-Status: Inappropriate
10
11Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
12---
13 external/SPIRV-Tools/CMakeLists.txt | 4 ++--
14 1 file changed, 2 insertions(+), 2 deletions(-)
15
16Index: git/external/SPIRV-Tools/CMakeLists.txt
17===================================================================
18--- git.orig/external/SPIRV-Tools/CMakeLists.txt
19+++ git/external/SPIRV-Tools/CMakeLists.txt
20@@ -45,8 +45,8 @@ else() #By default use build from source
21 message(STATUS "[SPIRV-Tools] : Building from source")
22 message(STATUS "[SPIRV-Tools] : Current source dir: ${CMAKE_CURRENT_SOURCE_DIR}")
23
24- set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Headers") # used in subdirectory
25- set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Tools")
26+ set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Headers") # used in subdirectory
27+ set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Tools")
28
29 set(SPIRV-Tools_OUTPUT_DIR "${IGC_OPTION__OUTPUT_DIR}/external/SPIRV-Tools/build")
30 set(IGC_BUILD__SPIRV-Headers_DIR "${SPIRV-Headers_SOURCE_DIR}")
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch
new file mode 100644
index 00000000..3d9ae02f
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch
@@ -0,0 +1,23 @@
1From 1641dc87b2ed6b6b87b2cef824e4d66da65b0b30 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Thu, 19 May 2022 22:50:09 +0800
4Subject: [PATCH] fix tblgen
5
6Upstream-Status: Inappropriate [OE specific]
7---
8 IGC/cmake/igc_llvm.cmake | 2 +-
9 1 file changed, 1 insertion(+), 1 deletion(-)
10
11diff --git a/IGC/cmake/igc_llvm.cmake b/IGC/cmake/igc_llvm.cmake
12index b708cc904..fe4668890 100644
13--- a/IGC/cmake/igc_llvm.cmake
14+++ b/IGC/cmake/igc_llvm.cmake
15@@ -53,7 +53,7 @@ else()
16 set(LLVM_OPT_EXE "opt" CACHE STRING "")
17
18 set(LLVM_TABLEGEN_EXE "llvm-tblgen")
19- if(CMAKE_CROSSCOMPILING)
20+ if(TRUE)
21 if(DEFINED LLVM_TABLEGEN)
22 set(LLVM_TABLEGEN_EXE ${LLVM_TABLEGEN})
23 else()
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch
new file mode 100644
index 00000000..4269fadf
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch
@@ -0,0 +1,33 @@
1From ca136c04d4ac60e3febc8ea2b9c4d4736365a424 Mon Sep 17 00:00:00 2001
2From: Lee Chee Yang <chee.yang.lee@intel.com>
3Date: Wed, 2 Sep 2020 08:28:35 +0800
4Subject: [PATCH] Improve Reproducibility for src package
5
6Improve reproducibility for intel-graphics-compiler-src package.
7needs to pass build path as environment variable to the build.
8this only works on bison 3.7 onward, hence check for bison version
9before adding the flags.
10Upstream-Status: Inappropriate [applying --file-prefix-map in such way does not work for upstream]
11Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
12---
13 visa/CMakeLists.txt | 7 +++++--
14 1 file changed, 5 insertions(+), 2 deletions(-)
15
16Index: git/visa/CMakeLists.txt
17===================================================================
18--- git.orig/visa/CMakeLists.txt
19+++ git/visa/CMakeLists.txt
20@@ -135,8 +135,11 @@ endif()
21 set(bison_output_file ${CMAKE_CURRENT_BINARY_DIR}/CISA.tab.cpp)
22 set(flex_output_file ${CMAKE_CURRENT_BINARY_DIR}/lex.CISA.cpp)
23
24-BISON_TARGET(CISAParser CISA.y ${bison_output_file} COMPILE_FLAGS "-vt -p CISA")
25-FLEX_TARGET(CISAScanner CISA.l ${flex_output_file} COMPILE_FLAGS "-PCISA ${WIN_FLEX_FLAG}")
26+if(BISON_VERSION VERSION_GREATER_EQUAL "3.7.0")
27+ set(BISON_EXTRA_FLAGS " --file-prefix-map=$ENV{B}=/igc/ ")
28+endif()
29+BISON_TARGET(CISAParser CISA.y ${bison_output_file} COMPILE_FLAGS "-l -vt -p CISA ${BISON_EXTRA_FLAGS} ")
30+FLEX_TARGET(CISAScanner CISA.l ${flex_output_file} COMPILE_FLAGS "-PCISA -L ${WIN_FLEX_FLAG} ")
31 ADD_FLEX_BISON_DEPENDENCY(CISAScanner CISAParser)
32 set(CISAScanner_dependencies)
33
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_2.10.10.bb b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_2.10.10.bb
new file mode 100644
index 00000000..b6d8ddeb
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_2.10.10.bb
@@ -0,0 +1,79 @@
1SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)"
2DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \
3llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \
4hardware architecture."
5
6LICENSE = "MIT & Apache-2.0"
7LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \
8 file://LICENSE.md;md5=488d74376edf2765f6e78d271543dde3 \
9 file://NOTICES.txt;md5=b81a52411c84df3419f20bad4d755880"
10
11SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https;name=igc;branch=releases/2.10.x \
12 git://github.com/intel/vc-intrinsics.git;protocol=https;destsuffix=git/vc-intrinsics;name=vc;nobranch=1 \
13 git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=git/SPIRV-Tools;name=spirv-tools;branch=main \
14 git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/SPIRV-Headers;name=spirv-headers;branch=main \
15 file://0003-Improve-Reproducibility-for-src-package.patch \
16 file://0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch \
17 file://0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch \
18 file://0001-Build-not-able-to-locate-BiFManager-bin.patch \
19 "
20
21SRC_URI:append:class-native = " file://0001-fix-tblgen.patch"
22
23SRCREV_igc = "83925314d4fc32b017fcbfcd73e0667ba833fb8f"
24SRCREV_vc = "9d255266e1df8f1dc5d11e1fbb03213acfaa4fc7"
25SRCREV_spirv-tools = "f289d047f49fb60488301ec62bafab85573668cc"
26SRCREV_spirv-headers = "0e710677989b4326ac974fd80c5308191ed80965"
27
28SRCREV_FORMAT = "igc_vc_spirv-tools_spirv-headers"
29
30# Used to replace with relative path in reproducibility patch
31export B
32
33S = "${WORKDIR}/git"
34
35inherit cmake pkgconfig qemu python3native
36
37CXXFLAGS:append = " -Wno-error=nonnull"
38
39COMPATIBLE_HOST = '(x86_64).*-linux'
40COMPATIBLE_HOST:libc-musl = "null"
41
42DEPENDS += " flex-native bison-native clang clang-cross-x86_64 opencl-clang qemu-native python3-mako-native \
43 python3-pyyaml-native \
44 "
45
46RDEPENDS:${PN} += "opencl-clang"
47
48PACKAGECONFIG ??= "vc"
49PACKAGECONFIG[vc] = "-DIGC_BUILD__VC_ENABLED=ON -DIGC_OPTION__LINK_KHRONOS_SPIRV_TRANSLATOR=ON -DIGC_OPTION__SPIRV_TRANSLATOR_MODE=Prebuilds,-DIGC_BUILD__VC_ENABLED=OFF,"
50
51EXTRA_OECMAKE = " \
52 -DIGC_OPTION__LLVM_PREFERRED_VERSION=${LLVMVERSION} \
53 -DVC_INTRINSICS_SRC="${S}/vc-intrinsics" \
54 -DIGC_OPTION__LLVM_MODE=Prebuilds \
55 -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
56 -DLLVM_LINK_EXE=${STAGING_BINDIR_NATIVE}/llvm-link \
57 -DCLANG_EXE=${STAGING_BINDIR_NATIVE}/clang \
58 -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \
59 "
60
61do_configure:prepend:class-target () {
62 # Write out a qemu wrapper that will be used by cmake.
63 qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
64 cat > ${WORKDIR}/qemuwrapper << EOF
65#!/bin/sh
66$qemu_binary "\$@"
67EOF
68 chmod +x ${WORKDIR}/qemuwrapper
69}
70
71
72UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$"
73
74FILES:${PN} += " \
75 ${libdir}/igc2/NOTICES.txt \
76 "
77
78# libigc.so contains buildpaths
79INSANE_SKIP:${PN} += "buildpaths"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch
new file mode 100644
index 00000000..031a77c7
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch
@@ -0,0 +1,49 @@
1From 5aea653e611b59c70e529a1bd71885a509831557 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Tue, 1 Aug 2023 11:15:31 +0800
4Subject: [PATCH] cl_headers/CMakeLists.txt: use clang from native sysroot
5
6Allow clang to be found in target sysroot for target builds and dont try
7to compile cross binaries, we do that ourselves.
8
9Upstream-Status: Inappropriate [oe-specific]
10Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
11---
12 CMakeLists.txt | 8 ++++----
13 cl_headers/CMakeLists.txt | 2 +-
14 2 files changed, 5 insertions(+), 5 deletions(-)
15
16diff --git a/CMakeLists.txt b/CMakeLists.txt
17index 5864009..60ba39e 100644
18--- a/CMakeLists.txt
19+++ b/CMakeLists.txt
20@@ -35,10 +35,10 @@ set(CMAKE_MODULE_PATH
21
22 include(CMakeFunctions)
23
24-if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL)
25- include(CrossCompile)
26- llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release)
27-endif()
28+#if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL)
29+# include(CrossCompile)
30+# llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release)
31+#endif()
32
33 if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
34 set(USE_PREBUILT_LLVM ON)
35diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt
36index 16cabb7..4423536 100644
37--- a/cl_headers/CMakeLists.txt
38+++ b/cl_headers/CMakeLists.txt
39@@ -1,6 +1,6 @@
40 set(CL_HEADERS_LIB cl_headers)
41 if(USE_PREBUILT_LLVM)
42- find_program(CLANG_COMMAND clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
43+ find_program(CLANG_COMMAND clang PATHS ${LLVM_TOOLS_BINARY_DIR})
44 else()
45 set(CLANG_COMMAND $<TARGET_FILE:clang>)
46 endif()
47--
482.37.3
49
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch
new file mode 100644
index 00000000..2f1814f8
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch
@@ -0,0 +1,60 @@
1From 43c806ef321b1f677a49d28c89fb7ffecf539c2d Mon Sep 17 00:00:00 2001
2From: Tim Creech <timothy.m.creech@intel.com>
3Date: Wed, 28 Jun 2023 03:45:51 -0400
4Subject: [PATCH 2/2] Request native clang only when cross-compiling (#464)
5
6* Request native clang only when cross-compiling
7
8LLVM_USE_HOST_TOOLS may be set if LLVM is configured with
9LLVM_OPTIMIZED_TABLEGEN, which does not necessarily indicate
10cross-compilation or that clang will only execute on the target.
11
12By checking that CMAKE_CROSSCOMPILING is set, we ensure that we only
13build/use clang again if necessary for host execution.
14
15* fixup: CMAKE_CROSSCOMPILING implies LLVM_USE_HOST_TOOLS
16
17Co-authored-by: Wenju He <wenju.he@intel.com>
18
19* fixup: also use CMAKE_CROSSCOMPILING in top-level CMakeLists.txt
20
21---------
22
23Co-authored-by: Wenju He <wenju.he@intel.com>
24
25Upstream-Status: Backport [https://github.com/intel/opencl-clang/commit/53843eee13cfb2357919ee02714a43bef1af0f86]
26Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
27---
28 CMakeLists.txt | 2 +-
29 cl_headers/CMakeLists.txt | 2 +-
30 2 files changed, 2 insertions(+), 2 deletions(-)
31
32diff --git a/CMakeLists.txt b/CMakeLists.txt
33index e772de9..5864009 100644
34--- a/CMakeLists.txt
35+++ b/CMakeLists.txt
36@@ -35,7 +35,7 @@ set(CMAKE_MODULE_PATH
37
38 include(CMakeFunctions)
39
40-if(LLVM_USE_HOST_TOOLS AND OPENCL_CLANG_BUILD_EXTERNAL)
41+if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL)
42 include(CrossCompile)
43 llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release)
44 endif()
45diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt
46index 18296c2..16cabb7 100644
47--- a/cl_headers/CMakeLists.txt
48+++ b/cl_headers/CMakeLists.txt
49@@ -4,7 +4,7 @@ if(USE_PREBUILT_LLVM)
50 else()
51 set(CLANG_COMMAND $<TARGET_FILE:clang>)
52 endif()
53-if(LLVM_USE_HOST_TOOLS AND NOT OPENCL_CLANG_BUILD_EXTERNAL)
54+if(CMAKE_CROSSCOMPILING AND NOT OPENCL_CLANG_BUILD_EXTERNAL)
55 build_native_tool(clang CLANG_COMMAND)
56 endif()
57
58--
592.37.3
60
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc
new file mode 100644
index 00000000..31a3fb21
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc
@@ -0,0 +1,34 @@
1SUMMARY = "Common clang is a thin wrapper library around clang"
2DESCRIPTION = "Common clang has OpenCL-oriented API and is capable \
3 to compile OpenCL C kernels to SPIR-V modules."
4
5LICENSE = "NCSA"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c"
7
8SRC_URI = "git://github.com/intel/opencl-clang.git;branch=${BRANCH};protocol=https \
9 file://0002-Request-native-clang-only-when-cross-compiling-464.patch \
10 file://0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch \
11 "
12S = "${WORKDIR}/git"
13
14inherit cmake
15DEPENDS += "clang"
16DEPENDS:append:class-target = " opencl-clang-native"
17
18COMPATIBLE_HOST = '(x86_64).*-linux'
19COMPATIBLE_HOST:libc-musl = "null"
20
21DEPENDS += " spirv-llvm-translator"
22
23EXTRA_OECMAKE += "\
24 -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
25 -DCMAKE_SKIP_RPATH=TRUE \
26 -DPREFERRED_LLVM_VERSION=${LLVMVERSION} \
27 "
28
29do_install:append:class-native() {
30 install -d ${D}${bindir}
31 install -m 0755 ${B}/bin/linux_resource_linker ${D}${bindir}/
32}
33
34BBCLASSEXTEND = "native nativesdk"
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb
new file mode 100644
index 00000000..e946c31c
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb
@@ -0,0 +1,5 @@
1require opencl-clang.inc
2
3SRCREV = "60fd799cc58755c16d951f9ebfde6d0f9b8554dd"
4
5BRANCH = "ocl-open-150"
diff --git a/dynamic-layers/openembedded-layer/recipes-bsp/amt/files/0001-LMS-fix-build-issue-with-gcc-15.patch b/dynamic-layers/openembedded-layer/recipes-bsp/amt/files/0001-LMS-fix-build-issue-with-gcc-15.patch
new file mode 100644
index 00000000..751c7973
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-bsp/amt/files/0001-LMS-fix-build-issue-with-gcc-15.patch
@@ -0,0 +1,32 @@
1From 439af27f7641185933d7810b6c4eb17086438df3 Mon Sep 17 00:00:00 2001
2From: Yogesh Tyagi <yogesh.tyagi@intel.com>
3Date: Mon, 19 May 2025 17:50:40 +0530
4Subject: [PATCH] LMS : fix build issue with gcc 15
5
6include cstdint header to resolve the below error with gcc 15
7
8| In file included from /lms/2406.0.0.0/git/MEIClient/src/MEICommand.cpp:11:
9| /lms/2406.0.0.0/git/MEIClient/Include/MEICommand.h:40:54: error: 'uint8_t' was not declared in this scope
10
11Upstream-Status: Submitted [https://github.com/intel/lms/pull/23]
12
13Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
14---
15 MEIClient/Include/MEICommand.h | 1 +
16 1 file changed, 1 insertion(+)
17
18diff --git a/MEIClient/Include/MEICommand.h b/MEIClient/Include/MEICommand.h
19index 6192d26..5332e44 100644
20--- a/MEIClient/Include/MEICommand.h
21+++ b/MEIClient/Include/MEICommand.h
22@@ -12,6 +12,7 @@
23 #define __MEI_COMMAND_H__
24 #include "heci.h"
25 #include "MEIClientException.h"
26+#include <cstdint>
27 #include <memory>
28 #include <vector>
29
30--
312.43.0
32
diff --git a/dynamic-layers/openembedded-layer/recipes-bsp/amt/files/lms_drop_rpath_1921.0.0.0.diff b/dynamic-layers/openembedded-layer/recipes-bsp/amt/files/lms_drop_rpath_1921.0.0.0.diff
deleted file mode 100644
index b68924a5..00000000
--- a/dynamic-layers/openembedded-layer/recipes-bsp/amt/files/lms_drop_rpath_1921.0.0.0.diff
+++ /dev/null
@@ -1,31 +0,0 @@
1From b92a5bda8015454a570990a3d9c4fba87010f1af Mon Sep 17 00:00:00 2001
2From: Alexander Usyskin <alexander.usyskin@intel.com>
3Date: Mon, 17 Jun 2019 13:27:33 +0300
4Subject: [PATCH] lms: drop rpath definitions
5
6Yocto fail to compile with this definitions.
7
8Upstream-Status: Inappropriate [configuration]
9Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
10---
11 CMakeLists.txt | 4 ----
12 1 file changed, 4 deletions(-)
13
14diff --git a/CMakeLists.txt b/CMakeLists.txt
15index 04257fb..85d0445 100644
16--- a/CMakeLists.txt
17+++ b/CMakeLists.txt
18@@ -107,10 +107,6 @@ install (DIRECTORY Docs/Licenses
19 FILES_MATCHING PATTERN "LICENSE.*"
20 )
21
22-list (APPEND CMAKE_INSTALL_RPATH "${PROJECT_BINARY_DIR}/UNS/GMS_COMMON")
23-list (APPEND CMAKE_INSTALL_RPATH "${PROJECT_BINARY_DIR}/WsmanClient")
24-list (APPEND CMAKE_INSTALL_RPATH "${PROJECT_BINARY_DIR}/UNS/StatusEventHandler")
25-
26 if (BUILD_TESTS)
27 include (gtest.cmake)
28 endif (BUILD_TESTS)
29--
302.7.4
31
diff --git a/dynamic-layers/openembedded-layer/recipes-bsp/amt/lms_1921.0.0.0.bb b/dynamic-layers/openembedded-layer/recipes-bsp/amt/lms_1921.0.0.0.bb
deleted file mode 100644
index 8ed74486..00000000
--- a/dynamic-layers/openembedded-layer/recipes-bsp/amt/lms_1921.0.0.0.bb
+++ /dev/null
@@ -1,39 +0,0 @@
1SUMMARY = "Intel(R) Local Managability Service"
2DESCRIPTION = "Intel Local Manageability Service allows applications \
3to access the Intel Active Management Technology (AMT) firmware via \
4the Intel Management Engine Interface (MEI)."
5
6LICENSE = "Apache-2.0"
7LIC_FILES_CHKSUM = "file://COPYING;md5=2ee41112a44fe7014dce33e26468ba93"
8
9COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
10
11inherit cmake systemd
12
13DEPENDS = "metee ace xerces-c libnl libxml2 glib-2.0 glib-2.0-native connman"
14
15EXTRA_OECMAKE += "-DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3"
16
17REQUIRED_DISTRO_FEATURES= "systemd"
18
19FILES_${PN} += "${datadir}/dbus-1/system-services/*.service"
20
21FILES_${PN} += "${libdir}/libLms*.so"
22FILES_SOLIBSDEV = ""
23INSANE_SKIP_${PN} += "dev-so"
24
25S = "${WORKDIR}/git"
26
27SYSTEMD_SERVICE_${PN} = "lms.service"
28
29SRC_URI = "git://github.com/intel/lms.git"
30SRCREV = "f7c374745ae7efb3ed7860fdc3f8abbb52dc9f8f"
31
32SRC_URI_append = " file://lms_drop_rpath_${PV}.diff"
33
34do_install_append() {
35 install -d ${D}${systemd_system_unitdir}
36 install -m 0644 ${B}/UNS/lms.service ${D}${systemd_system_unitdir}
37}
38
39RDEPENDS_${PN} += "ace"
diff --git a/dynamic-layers/openembedded-layer/recipes-bsp/amt/lms_2406.0.0.0.bb b/dynamic-layers/openembedded-layer/recipes-bsp/amt/lms_2406.0.0.0.bb
new file mode 100644
index 00000000..c71ac9ea
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-bsp/amt/lms_2406.0.0.0.bb
@@ -0,0 +1,45 @@
1SUMMARY = "Intel(R) Local Managability Service"
2DESCRIPTION = "Intel Local Manageability Service allows applications \
3to access the Intel Active Management Technology (AMT) firmware via \
4the Intel Management Engine Interface (MEI)."
5
6LICENSE = "Apache-2.0"
7LIC_FILES_CHKSUM = "file://COPYING;md5=2ee41112a44fe7014dce33e26468ba93"
8
9COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
10
11COMPATIBLE_HOST:libc-musl = "null"
12
13inherit cmake systemd features_check python3native
14
15DEPENDS = "metee ace xerces-c libnl libxml2 glib-2.0 glib-2.0-native pkgconfig-native python3-packaging-native"
16
17# Enable either connman or networkmanager or none but not both.
18PACKAGECONFIG ??= "connman"
19PACKAGECONFIG[connman] = "-DNETWORK_CN=ON, -DNETWORK_CN=OFF, connman"
20PACKAGECONFIG[networkmanager] = "-DNETWORK_NM=ON, -DNETWORK_NM=OFF, networkmanager"
21
22REQUIRED_DISTRO_FEATURES = "systemd"
23
24FILES:${PN} += "${datadir}/dbus-1/system-services/*.service"
25
26S = "${WORKDIR}/git"
27
28SYSTEMD_SERVICE:${PN} = "lms.service"
29
30SRC_URI = "git://github.com/intel/lms.git;branch=master;protocol=https \
31 file://0001-LMS-fix-build-issue-with-gcc-15.patch \
32 "
33SRCREV = "388f115b2aeb3ea11499971c65f828daefd32c47"
34
35do_install:append() {
36 install -d ${D}${sysconfdir}/lms
37 install -d ${D}${systemd_system_unitdir}
38 install -m 0644 ${B}/UNS/lms.service ${D}${systemd_system_unitdir}
39 install -d ${D}${sysconfdir}/udev/rules.d
40 install -m 0644 ${S}/UNS/linux_scripts/70-mei-wdt.rules ${D}${sysconfdir}/udev/rules.d/70-mei-wdt.rules
41}
42
43RDEPENDS:${PN} += "ace"
44
45CVE_STATUS[CVE-2018-1000535] = "cpe-incorrect: This CVE is for a different LMS - Lan Management System."
diff --git a/recipes-bsp/thermald/thermald_1.8.bb b/dynamic-layers/openembedded-layer/recipes-bsp/thermald/thermald_2.5.8.bb
index f7725f31..fee089de 100644
--- a/recipes-bsp/thermald/thermald_1.8.bb
+++ b/dynamic-layers/openembedded-layer/recipes-bsp/thermald/thermald_2.5.8.bb
@@ -6,28 +6,37 @@ compensation using available cooling methods."
6 6
7HOMEPAGE = "https://github.com/01org/thermal_daemon" 7HOMEPAGE = "https://github.com/01org/thermal_daemon"
8 8
9DEPENDS = "dbus dbus-glib dbus-glib-native libxml2 glib-2.0 glib-2.0-native" 9DEPENDS = "dbus dbus-glib dbus-glib-native libxml2 glib-2.0 glib-2.0-native upower libevdev"
10DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}" 10DEPENDS += "autoconf-archive-native"
11DEPENDS_append_libc-musl = " argp-standalone" 11
12DEPENDS_append_toolchain-clang = " openmp" 12LICENSE = "GPL-2.0-only"
13LICENSE = "GPLv2"
14LIC_FILES_CHKSUM = "file://COPYING;md5=ea8831610e926e2e469075b52bf08848" 13LIC_FILES_CHKSUM = "file://COPYING;md5=ea8831610e926e2e469075b52bf08848"
15 14
16SRC_URI = "git://github.com/intel/thermal_daemon/ \ 15SRC_URI = "git://github.com/intel/thermal_daemon/;branch=master;protocol=https \
17 file://0001-Use-correct-format-specifier-for-size_t.patch \
18 " 16 "
19SRCREV = "517c0e5f92d49aeeef3a22b04caf40d588216827" 17
18SRCREV = "df3b9ab0ffe780c4fbad7750987eff76f659cfd5"
20S = "${WORKDIR}/git" 19S = "${WORKDIR}/git"
21 20
22inherit pkgconfig autotools systemd 21inherit pkgconfig autotools systemd gtk-doc
22
23# gtkdocsize runs before autotools do_configure and it copies gtk-doc.m4 and fails
24# to copy becuase there is no m4 dir yet.
25do_configure:prepend () {
26 mkdir -p ${S}/m4
27}
28
29EXTRA_OECONF = " \
30 --with-systemdsystemunitdir=${systemd_system_unitdir} \
31 "
23 32
24FILES_${PN} += "${datadir}/dbus-1/system-services/*.service" 33FILES:${PN} += "${datadir}/dbus-1"
25 34
26SYSTEMD_SERVICE_${PN} = "thermald.service" 35SYSTEMD_SERVICE:${PN} = "thermald.service"
27 36
28COMPATIBLE_HOST = '(i.86|x86_64).*-linux' 37COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
29 38
30CONFFILES_${PN} = " \ 39CONFFILES:${PN} = " \
31 ${sysconfdir}/thermald/thermal-conf.xml \ 40 ${sysconfdir}/thermald/thermal-conf.xml \
32 ${sysconfdir}/thermald/thermal-cpu-cdev-order.xml \ 41 ${sysconfdir}/thermald/thermal-cpu-cdev-order.xml \
33 " 42 "
diff --git a/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0001-Add-print-function-to-print-test-run-status-in-ptest.patch b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0001-Add-print-function-to-print-test-run-status-in-ptest.patch
new file mode 100644
index 00000000..4d583657
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0001-Add-print-function-to-print-test-run-status-in-ptest.patch
@@ -0,0 +1,53 @@
1From deccc0c69c2c8759c52885be8bdda54d3cee481c Mon Sep 17 00:00:00 2001
2From: Yogesh Tyagi <yogesh.tyagi@intel.com>
3Date: Sun, 11 Dec 2022 22:34:15 +0800
4Subject: [PATCH] Add print function to print test run status in ptest format
5
6Upstream-Status: Inappropriate [OE ptest specific]
7
8Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
9---
10 run_tests.py | 16 ++++++++++++++++
11 1 file changed, 16 insertions(+)
12
13diff --git a/run_tests.py b/run_tests.py
14index 1cd796dd..e3ffd1ab 100755
15--- a/run_tests.py
16+++ b/run_tests.py
17@@ -327,6 +327,9 @@ def run_test(testname, host, target):
18 else:
19 ispc_exe_rel = add_prefix(host.ispc_cmd, host, target)
20
21+ # to reslove the error '.rodata' can not be used when making a PIE object
22+ ispc_exe_rel = ispc_exe_rel + " --pic"
23+
24 # is this a test to make sure an error is issued?
25 want_error = (filename.find("tests_errors") != -1)
26 if want_error == True:
27@@ -795,6 +798,17 @@ def check_compiler_exists(compiler_exe):
28 return
29 error("missing the required compiler: %s \n" % compiler_exe, 1)
30
31+def print_test_run_status(results):
32+ for fstatus in results:
33+ if (fstatus[1] == Status.Success):
34+ print( "%s: %s" % ("PASS", fstatus[0]))
35+ elif (fstatus[1] == Status.Compfail):
36+ print( "%s: %s" % ("FAIL", fstatus[0]))
37+ elif (fstatus[1] == Status.Runfail):
38+ print( "%s: %s" % ("FAIL", fstatus[0]))
39+ elif (fstatus[1] == Status.Skip):
40+ print( "%s: %s" % ("SKIP", fstatus[0]))
41+
42 def print_result(status, results, s, run_tests_log, csv):
43 title = StatusStr[status]
44 file_list = [fname for fname, fstatus in results if status == fstatus]
45@@ -938,6 +952,8 @@ def run_tests(options1, args, print_version):
46 pass_rate = -1
47 print_debug("PASSRATE (%d/%d) = %d%% \n\n" % (len(run_succeed_files), total_tests_executed, pass_rate), s, run_tests_log)
48
49+ print_test_run_status(results)
50+
51 for status in Status:
52 print_result(status, results, s, run_tests_log, options.csv)
53 fails = [status != Status.Compfail and status != Status.Runfail for _, status in results]
diff --git a/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0001-Fix-QA-Issues.patch b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0001-Fix-QA-Issues.patch
new file mode 100644
index 00000000..b0a76ff9
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0001-Fix-QA-Issues.patch
@@ -0,0 +1,36 @@
1From 7beff95c11071170eb27b6fa7d0cc77588caee8e Mon Sep 17 00:00:00 2001
2From: Yogesh Tyagi <yogesh.tyagi@intel.com>
3Date: Tue, 26 Jul 2022 15:25:10 +0800
4Subject: [PATCH] Fix QA Issues
5
6Stop ispc from inserting host file path in generated headers which leads to reproducibility problems.
7
8Upstream-Status: Inappropriate [OE build specific]
9
10Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
11---
12 src/module.cpp | 4 ++--
13 1 file changed, 2 insertions(+), 2 deletions(-)
14
15diff --git a/src/module.cpp b/src/module.cpp
16index e2084d2e..e2626865 100644
17--- a/src/module.cpp
18+++ b/src/module.cpp
19@@ -2555,7 +2555,7 @@ bool Module::writeHeader(const char *fn) {
20 perror("fopen");
21 return false;
22 }
23- fprintf(f, "//\n// %s\n// (Header automatically generated by the ispc compiler.)\n", fn);
24+ fprintf(f, "//\n// \n// (Header automatically generated by the ispc compiler.)\n");
25 fprintf(f, "// DO NOT EDIT THIS FILE.\n//\n\n");
26
27 // Create a nice guard string from the filename, turning any
28@@ -2677,7 +2677,7 @@ bool Module::writeDispatchHeader(DispatchHeaderInfo *DHI) {
29 FILE *f = DHI->file;
30
31 if (DHI->EmitFrontMatter) {
32- fprintf(f, "//\n// %s\n// (Header automatically generated by the ispc compiler.)\n", DHI->fn);
33+ fprintf(f, "//\n// \n// (Header automatically generated by the ispc compiler.)\n");
34 fprintf(f, "// DO NOT EDIT THIS FILE.\n//\n\n");
35 }
36 // Create a nice guard string from the filename, turning any
diff --git a/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0002-cmake-don-t-build-for-32-bit-targets.patch b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0002-cmake-don-t-build-for-32-bit-targets.patch
new file mode 100644
index 00000000..f452dc50
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0002-cmake-don-t-build-for-32-bit-targets.patch
@@ -0,0 +1,52 @@
1From 16a2c22339287122d2c25d8bb33a5a51b4e6ee51 Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Thu, 24 Feb 2022 20:01:11 +0530
4Subject: [PATCH] cmake: don't build for 32-bit targets
5
6Error log:
7| tmp/work/corei7-64-poky-linux/ispc/1.16.0-r0/recipe-sysroot/usr/include/bits/long-double.h:23:10: fatal error: 'bits/long-double-32.h' file not found
8| #include <bits/long-double-32.h>
9| ^~~~~~~~~~~~~~~~~~~~~~~
10| 1 error generated.
11
12Remove SYSTEM include search path and set -isysroot dir path
13for root dir for cross compilation.
14
15Upstream-Status: Inappropriate
16
17Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
18---
19 cmake/GenerateBuiltins.cmake | 6 +++---
20 1 file changed, 3 insertions(+), 3 deletions(-)
21
22diff --git a/cmake/GenerateBuiltins.cmake b/cmake/GenerateBuiltins.cmake
23index f84494ed..d90cb1ec 100644
24--- a/cmake/GenerateBuiltins.cmake
25+++ b/cmake/GenerateBuiltins.cmake
26@@ -253,7 +253,7 @@ function(builtin_to_cpp bit os_name arch supported_archs supported_oses resultFi
27 # In this case headers will be installed in /usr/arm-linux-gnueabihf/include and will not be picked up
28 # by clang by default. So the following line adds such path explicitly. If this path doesn't exist and
29 # the headers can be found in other locations, this should not be a problem.
30- set(includePath -isystem/usr/${debian_triple}/include)
31+ set(includePath -isysroot${SYSROOT_DIR})
32 endif()
33 endif()
34
35@@ -339,7 +339,7 @@ function (generate_target_builtins resultList)
36 set(regular_targets ${ARGN})
37 list(FILTER regular_targets EXCLUDE REGEX wasm)
38 foreach (ispc_target ${regular_targets})
39- foreach (bit 32 64)
40+ foreach (bit 64)
41 foreach (os_name ${TARGET_OS_LIST_FOR_LL})
42 target_ll_to_cpp(target-${ispc_target} ${bit} ${os_name} output${os_name}${bit})
43 list(APPEND tmpList ${output${os_name}${bit}})
44@@ -405,7 +405,7 @@ function (generate_common_builtins resultList)
45 endif()
46
47 message (STATUS "ISPC will be built with support of ${supported_oses} for ${supported_archs}")
48- foreach (bit 32 64)
49+ foreach (bit 64)
50 foreach (os_name "windows" "linux" "freebsd" "macos" "android" "ios" "ps4" "web")
51 foreach (arch "x86" "arm" "wasm")
52 builtin_to_cpp(${bit} ${os_name} ${arch} "${supported_archs}" "${supported_oses}" res${bit}${os_name}${arch})
diff --git a/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/run-ptest b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/run-ptest
new file mode 100644
index 00000000..77d13bb4
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/run-ptest
@@ -0,0 +1,2 @@
1#!/bin/sh
2python3 run_tests.py
diff --git a/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc_1.24.0.bb b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc_1.24.0.bb
new file mode 100644
index 00000000..77797041
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc_1.24.0.bb
@@ -0,0 +1,64 @@
1SUMMARY = "Intel(R) Implicit SPMD Program Compiler"
2DESCRIPTION = "ispc is a compiler for a variant of the C programming language, \
3with extensions for single program, multiple data programming."
4HOMEPAGE = "https://github.com/ispc/ispc"
5
6LICENSE = "BSD-3-Clause & Apache-2.0-with-LLVM-exception"
7LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=da5ecffdd210b3cf776b32b41c182e87 \
8 file://third-party-programs.txt;md5=2061218c7be521556719c8b504bf9ddd"
9
10inherit cmake python3native ptest
11
12S = "${WORKDIR}/git"
13
14SRC_URI = "git://github.com/ispc/ispc.git;protocol=https;branch=main \
15 file://0002-cmake-don-t-build-for-32-bit-targets.patch \
16 file://0001-Fix-QA-Issues.patch \
17 file://0001-Add-print-function-to-print-test-run-status-in-ptest.patch \
18 file://run-ptest \
19 "
20
21SRCREV = "d394222aef59e4759b06e39ec160e4aba6ee5f40"
22
23COMPATIBLE_HOST = '(x86_64).*-linux'
24
25DEPENDS += " clang-native bison-native flex-native"
26DEPENDS:append:class-target = " clang"
27RDEPENDS:${PN}-ptest += " python3-multiprocessing"
28
29PACKAGECONFIG ??= "tbb"
30PACKAGECONFIG[tbb] = "-DISPCRT_BUILD_TASK_MODEL=TBB, -DISPCRT_BUILD_TASK_MODEL=OpenMP, tbb"
31
32YFLAGS = '-d -t -v -y --file-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}'
33
34do_configure:prepend() {
35 sed -i -e 's#\${BISON_EXECUTABLE}.*#\${BISON_EXECUTABLE} ${YFLAGS} #g' ${S}/CMakeLists.txt
36 sed -i -e 's#\${FLEX_EXECUTABLE}.*#\${FLEX_EXECUTABLE} \-L #g' ${S}/CMakeLists.txt
37}
38
39do_install_ptest() {
40 cp -rf ${S}/run_tests.py ${D}${PTEST_PATH}
41 cp -rf ${S}/common.py ${D}${PTEST_PATH}
42 cp -rf ${S}/tests ${D}${PTEST_PATH}
43 cp -rf ${S}/test_static.isph ${D}${PTEST_PATH}
44 cp -rf ${S}/fail_db.txt ${D}${PTEST_PATH}
45 cp -rf ${S}/test_static.cpp ${D}${PTEST_PATH}
46}
47
48EXTRA_OECMAKE += " \
49 -DISPC_INCLUDE_TESTS=OFF \
50 -DISPC_INCLUDE_EXAMPLES=OFF \
51 -DARM_ENABLED=OFF \
52 -DISPC_CROSS=ON \
53 -DISPC_ANDROID_TARGET=OFF \
54 -DISPC_FREEBSD_TARGET=OFF \
55 -DISPC_WINDOWS_TARGET=OFF \
56 -DISPC_IOS_TARGET=OFF \
57 -DISPC_PS_TARGET=OFF \
58 -DSYSROOT_DIR=${STAGING_DIR} \
59 -DCLANG_EXECUTABLE=${STAGING_BINDIR_NATIVE}/clang \
60 -DCLANGPP_EXECUTABLE=${STAGING_BINDIR_NATIVE}/clang++ \
61 -DLLVM_AS_EXECUTABLE=${STAGING_BINDIR_NATIVE}/llvm-as \
62 "
63
64BBCLASSEXTEND = "native nativesdk"
diff --git a/dynamic-layers/openembedded-layer/recipes-core/levelzero/level-zero_1.21.1.bb b/dynamic-layers/openembedded-layer/recipes-core/levelzero/level-zero_1.21.1.bb
new file mode 100644
index 00000000..2e022f4a
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-core/levelzero/level-zero_1.21.1.bb
@@ -0,0 +1,33 @@
1SUMMARY = "oneAPI Level Zero Specification Headers and Loader"
2HOMEPAGE = "https://github.com/oneapi-src/level-zero"
3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=97957beb2f7808ffa247e5d93e6442cc"
5
6SRC_URI = "git://github.com/oneapi-src/level-zero.git;protocol=https;branch=master"
7SRCREV = "9536683855b17a21508e5b54ba358225d6a976da"
8S = "${WORKDIR}/git"
9
10inherit cmake
11DEPENDS += "opencl-headers"
12
13UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$"
14
15PACKAGES =+ "${PN}-headers ${PN}-samples ${PN}-loader"
16
17do_install:append () {
18 install -d ${D}${bindir} ${D}${libdir}
19 install -m 755 ${B}/bin/zello* ${D}${bindir}
20
21 oe_libinstall -C lib libze_null ${D}${libdir}
22}
23
24
25FILES:${PN}-headers = "${includedir}"
26FILES:${PN}-samples = "${bindir} ${libdir}/libze_null* ${libdir}/libze_validation*"
27FILES:${PN}-loader = "${libdir}"
28
29# PN-loader (non -dev/-dbg/nativesdk- package) contains symlink .so
30INSANE_SKIP:${PN}-loader = "dev-so"
31INSANE_SKIP:${PN}-samples = "dev-so"
32ALLOW_EMPTY:${PN} = "1"
33BBCLASSEXTEND = "native nativesdk"
diff --git a/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0001-Fix-the-compilation-warning-when-using-gcc-13-25.patch b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0001-Fix-the-compilation-warning-when-using-gcc-13-25.patch
new file mode 100644
index 00000000..2748d7ab
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0001-Fix-the-compilation-warning-when-using-gcc-13-25.patch
@@ -0,0 +1,99 @@
1From b57297c14d94dac9bdef7570b7b33d70b10171f3 Mon Sep 17 00:00:00 2001
2From: Jozef Wludzik <jozef.wludzik@intel.com>
3Date: Tue, 26 Mar 2024 14:43:29 +0100
4Subject: [PATCH 1/2] Fix the compilation warning when using gcc-13 (#25)
5
6Added missing headers. Fixed compilation error about casting from
7unsigned to signed int.
8
9Upstream-Status: Backport [https://github.com/intel/linux-npu-driver/commit/4bcbf2abe94eb4d9c083bd616b58e309a82d008a]
10
11Signed-off-by: Jozef Wludzik <jozef.wludzik@intel.com>
12Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
13---
14 umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp | 7 ++++---
15 umd/vpu_driver/include/umd_common.hpp | 1 +
16 validation/umd-test/umd_prime_buffers.h | 9 +++++++--
17 validation/umd-test/utilities/data_handle.h | 1 +
18 4 files changed, 13 insertions(+), 5 deletions(-)
19
20diff --git a/umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp b/umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp
21index f206ebe..682e5b4 100644
22--- a/umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp
23+++ b/umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp
24@@ -5,12 +5,13 @@
25 *
26 */
27
28-#include <dlfcn.h>
29-#include <memory>
30-
31 #include "vpux_driver_compiler.h"
32 #include "vpu_driver/source/utilities/log.hpp"
33
34+#include <array>
35+#include <dlfcn.h>
36+#include <memory>
37+
38 class Vcl {
39 public:
40 static Vcl &sym() {
41diff --git a/umd/vpu_driver/include/umd_common.hpp b/umd/vpu_driver/include/umd_common.hpp
42index 0c874a3..5ad9be2 100644
43--- a/umd/vpu_driver/include/umd_common.hpp
44+++ b/umd/vpu_driver/include/umd_common.hpp
45@@ -7,6 +7,7 @@
46
47 #pragma once
48
49+#include <cstdint>
50 #include <limits>
51 #include <linux/kernel.h>
52 #include <stdexcept>
53diff --git a/validation/umd-test/umd_prime_buffers.h b/validation/umd-test/umd_prime_buffers.h
54index 6f7c7de..ab4814c 100644
55--- a/validation/umd-test/umd_prime_buffers.h
56+++ b/validation/umd-test/umd_prime_buffers.h
57@@ -6,12 +6,17 @@
58 */
59
60 #pragma once
61+
62+#include "umd_test.h"
63+
64 #include <fcntl.h>
65-#include <linux/kernel.h>
66 #include <linux/dma-buf.h>
67 #include <linux/dma-heap.h>
68+#include <linux/kernel.h>
69+#include <stdint.h>
70 #include <sys/ioctl.h>
71 #include <sys/mman.h>
72+#include <unistd.h>
73
74 #define ALLIGN_TO_PAGE(x) __ALIGN_KERNEL((x), (UmdTest::PAGE_SIZE))
75
76@@ -60,7 +65,7 @@ class PrimeBufferHelper {
77 return false;
78
79 bufferFd = heapAlloc.fd;
80- buffers.insert({heapAlloc.fd, {size, nullptr}});
81+ buffers.insert({static_cast<int>(heapAlloc.fd), {size, nullptr}});
82 return true;
83 }
84
85diff --git a/validation/umd-test/utilities/data_handle.h b/validation/umd-test/utilities/data_handle.h
86index d6e0ec0..5d937b2 100644
87--- a/validation/umd-test/utilities/data_handle.h
88+++ b/validation/umd-test/utilities/data_handle.h
89@@ -6,6 +6,7 @@
90 */
91
92 #include <linux/kernel.h>
93+#include <stdint.h>
94 #include <string>
95 #include <vector>
96
97--
982.43.0
99
diff --git a/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0001-linux-npu-driver-fix-multilib-install-issue.patch b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0001-linux-npu-driver-fix-multilib-install-issue.patch
new file mode 100644
index 00000000..71a60b20
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0001-linux-npu-driver-fix-multilib-install-issue.patch
@@ -0,0 +1,28 @@
1From 561e3b5edc0ec3d8835aaf8ef8e5c9e8f9b53061 Mon Sep 17 00:00:00 2001
2From: Yogesh Tyagi <yogesh.tyagi@intel.com>
3Date: Wed, 28 May 2025 13:35:18 +0800
4Subject: [PATCH] linux-npu-driver : fix multilib install issue
5
6Upstream-Status: Inappropriate [oe specific]
7
8Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
9---
10 firmware/CMakeLists.txt | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13diff --git a/firmware/CMakeLists.txt b/firmware/CMakeLists.txt
14index 0c093ca..ba346a0 100644
15--- a/firmware/CMakeLists.txt
16+++ b/firmware/CMakeLists.txt
17@@ -12,7 +12,7 @@ target_include_directories(${PROJECT_NAME} INTERFACE include)
18 file(GLOB FIRMWARE_BINARIES ${CMAKE_CURRENT_SOURCE_DIR}/bin/*.bin)
19 if (FIRMWARE_BINARIES)
20 install(FILES ${FIRMWARE_BINARIES}
21- DESTINATION /lib/firmware/updates/intel/vpu/
22+ DESTINATION ${CMAKE_INSTALL_FIRMWARE_DIR}/firmware/updates/intel/vpu/
23 PERMISSIONS OWNER_READ
24 COMPONENT fw-npu)
25 endif()
26--
272.37.3
28
diff --git a/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0002-Fix-compilation-failure-with-GCC-14.patch b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0002-Fix-compilation-failure-with-GCC-14.patch
new file mode 100644
index 00000000..9fb97354
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0002-Fix-compilation-failure-with-GCC-14.patch
@@ -0,0 +1,110 @@
1From a9f51fd88effb7d324609e692ca7da576d6dad2e Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Tue, 28 May 2024 10:23:42 +0800
4Subject: [PATCH 2/2] Fix compilation failure with GCC-14
5
6umd/level_zero_driver/core/source/event/event.cpp:65:31: error: 'remove_if' is not a member of 'std'; did you mean 'remove_cv'?
7| 65 | associatedJobs.erase(std::remove_if(associatedJobs.begin(),
8| | ^~~~~~~~~
9| | remove_cv
10
11| umd/vpu_driver/source/command/vpu_command.cpp: In member function 'void VPU::VPUCommand::appendAssociateBufferObject(VPU::VPUBufferObject*)':
12| umd/vpu_driver/source/command/vpu_command.cpp:126:20: error: 'find' is not a member of 'std'; did you mean 'bind'?
13| 126 | auto it = std::find(bufferObjects.begin(), bufferObjects.end(), bo);
14| | ^~~~
15| | bind
16
17| umd/vpu_driver/source/command/vpu_command_buffer.cpp: In member function 'bool VPU::VPUCommandBuffer::addCommand(VPU::VPUCommand*, uint64_t&, uint64_t&)':
18| umd/vpu_driver/source/command/vpu_command_buffer.cpp:185:24: error: 'find' is not a member of 'std'; did you mean 'bind'?
19| 185 | auto it = std::find(bufferHandles.begin(), bufferHandles.end(), bo->getHandle());
20| | ^~~~
21| | bind
22
23| umd/level_zero_driver/ext/source/graph/elf_parser.cpp:301:32: error: 'max_element' is not a member of 'std'; did you mean 'tuple_element'?
24| 301 | std::max_element(stride_begin + TENSOR_5D_STRIDE_C, stride_end));
25| | ^~~~~~~~~~~
26| | tuple_element
27| umd/level_zero_driver/ext/source/graph/elf_parser.cpp:315:37: error: 'max_element' is not a member of 'std'; did you mean 'tuple_element'?
28| 315 | auto max_stride_val = *std::max_element(stride_begin + TENSOR_4D_STRIDE_C, stride_end);
29| | ^~~~~~~~~~~
30
31| umd/level_zero_driver/tools/source/metrics/metric.cpp: In member function 'void L0::MetricContext::deactivateMetricGroups(int)':
32| umd/level_zero_driver/tools/source/metrics/metric.cpp:275:38: error: 'remove_if' is not a member of 'std'; did you mean 'remove_cv'?
33| 275 | activatedMetricGroups.erase(std::remove_if(activatedMetricGroups.begin(),
34| | ^~~~~~~~~
35| | remove_cv
36
37Upstream-Status: Submitted [https://github.com/intel/linux-npu-driver/pull/30]
38
39Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
40---
41 umd/level_zero_driver/core/source/event/event.cpp | 1 +
42 umd/level_zero_driver/ext/source/graph/elf_parser.cpp | 1 +
43 umd/level_zero_driver/tools/source/metrics/metric.cpp | 1 +
44 umd/vpu_driver/source/command/vpu_command.cpp | 1 +
45 umd/vpu_driver/source/command/vpu_command_buffer.cpp | 1 +
46 5 files changed, 5 insertions(+)
47
48diff --git a/umd/level_zero_driver/core/source/event/event.cpp b/umd/level_zero_driver/core/source/event/event.cpp
49index a92248f..196d176 100644
50--- a/umd/level_zero_driver/core/source/event/event.cpp
51+++ b/umd/level_zero_driver/core/source/event/event.cpp
52@@ -14,6 +14,7 @@
53
54 #include <level_zero/ze_api.h>
55 #include <thread>
56+#include <algorithm>
57
58 namespace L0 {
59
60diff --git a/umd/level_zero_driver/ext/source/graph/elf_parser.cpp b/umd/level_zero_driver/ext/source/graph/elf_parser.cpp
61index a1c8e14..dfbd61d 100644
62--- a/umd/level_zero_driver/ext/source/graph/elf_parser.cpp
63+++ b/umd/level_zero_driver/ext/source/graph/elf_parser.cpp
64@@ -21,6 +21,7 @@
65 #include <vpux_headers/metadata.hpp>
66 #include <vpux_elf/types/vpu_extensions.hpp>
67 #include <vpux_elf/utils/error.hpp>
68+#include <algorithm>
69
70 namespace L0 {
71
72diff --git a/umd/level_zero_driver/tools/source/metrics/metric.cpp b/umd/level_zero_driver/tools/source/metrics/metric.cpp
73index b67750f..9497311 100644
74--- a/umd/level_zero_driver/tools/source/metrics/metric.cpp
75+++ b/umd/level_zero_driver/tools/source/metrics/metric.cpp
76@@ -7,6 +7,7 @@
77
78 #include "level_zero_driver/tools/source/metrics/metric.hpp"
79 #include "vpu_driver/source/utilities/log.hpp"
80+#include <algorithm>
81
82 namespace L0 {
83
84diff --git a/umd/vpu_driver/source/command/vpu_command.cpp b/umd/vpu_driver/source/command/vpu_command.cpp
85index f4ca23f..75331d9 100644
86--- a/umd/vpu_driver/source/command/vpu_command.cpp
87+++ b/umd/vpu_driver/source/command/vpu_command.cpp
88@@ -14,6 +14,7 @@
89 #include <cstdint>
90 #include <vector>
91 #include <map>
92+#include <algorithm>
93
94 namespace VPU {
95
96diff --git a/umd/vpu_driver/source/command/vpu_command_buffer.cpp b/umd/vpu_driver/source/command/vpu_command_buffer.cpp
97index c4ad052..bbb80ec 100644
98--- a/umd/vpu_driver/source/command/vpu_command_buffer.cpp
99+++ b/umd/vpu_driver/source/command/vpu_command_buffer.cpp
100@@ -11,6 +11,7 @@
101 #include "vpu_driver/source/command/vpu_command_buffer.hpp"
102 #include "vpu_driver/source/command/vpu_copy_command.hpp"
103 #include "vpu_driver/source/utilities/log.hpp"
104+#include <algorithm>
105
106 namespace VPU {
107
108--
1092.43.0
110
diff --git a/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver_1.17.0.bb b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver_1.17.0.bb
new file mode 100644
index 00000000..2014e448
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver_1.17.0.bb
@@ -0,0 +1,45 @@
1SUMMARY = "User Mode Driver for Intel® NPU device"
2HOMEPAGE = "https://github.com/intel/linux-npu-driver"
3LICENSE = "MIT & Apache-2.0"
4LIC_FILES_CHKSUM = "file://LICENSE.md;md5=7b256470048be42466f7d10e1d6482e6 \
5 file://third-party-programs.txt;md5=0ae40d7f1ef3bbd509197e427fdd7e70 \
6 file://third_party/vpux_elf/LICENSE;md5=a7a2dfa2b52a22cf2257893ee87ba11c"
7
8SRC_URI = "git://github.com/intel/linux-npu-driver.git;protocol=https;name=linux-npu-driver;branch=main;lfs=1 \
9 git://github.com/openvinotoolkit/npu_plugin_elf.git;protocol=https;destsuffix=git/third_party/vpux_elf;name=vpux-elf;nobranch=1 \
10 git://github.com/jbeder/yaml-cpp.git;protocol=https;destsuffix=git/third_party/yaml-cpp;name=yaml-cpp;nobranch=1 \
11 git://github.com/intel/level-zero-npu-extensions.git;protocol=https;destsuffix=git/third_party/level-zero-npu-extensions;name=lzvext;nobranch=1 \
12 git://github.com/google/googletest.git;protocol=https;destsuffix=git/third_party/googletest;name=googletest;nobranch=1 \
13 file://0001-linux-npu-driver-fix-multilib-install-issue.patch \
14 "
15
16SRCREV_linux-npu-driver = "0fe92dd0720448fb571f0ac4e5e64ef9f2ec3bd7"
17SRCREV_vpux-elf = "50f2b13dbb6dd435c3e2ef6f8abb7393633bfcdd"
18SRCREV_yaml-cpp = "f7320141120f720aecc4c32be25586e7da9eb978"
19SRCREV_lzvext = "c7d8f849d6a8195c1db38cbaca8d431cbabf3a6e"
20SRCREV_googletest = "b514bdc898e2951020cbdca1304b75f5950d1f59"
21SRCREV_FORMAT = "linux-npu-driver_vpux-elf_yaml-cpp_lzvext_googletest"
22
23S = "${WORKDIR}/git"
24
25inherit cmake
26
27
28# Fix warning _FORTIFY_SOURCE requires compiling with optimization (-O)
29EXTRA_OECMAKE += " -DCMAKE_BUILD_TYPE=Release "
30EXTRA_OECMAKE += " -DCMAKE_CXX_FLAGS_RELEASE=-O2 "
31
32EXTRA_OECMAKE += " -DCMAKE_CXX_FLAGS='-I${RECIPE_SYSROOT}/usr/include/level_zero'"
33EXTRA_OECMAKE += " -DCMAKE_INSTALL_FIRMWARE_DIR=${nonarch_base_libdir}"
34
35DEPENDS = "level-zero dpkg-native pkgconfig-native"
36
37PACKAGES =+ "${PN}-firmware ${PN}-tests"
38
39FILES:${PN}-firmware = "${nonarch_base_libdir}/firmware/updates/intel/vpu/*"
40FILES:${PN}-tests = "${bindir}"
41
42INSANE_SKIP:${PN} += "buildpaths"
43INSANE_SKIP:${PN}-dbg += "buildpaths"
44INSANE_SKIP:${PN}-tests += "buildpaths"
45INSANE_SKIP:${PN}-firmware += "buildpaths"
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/dpcpp-compiler/intel-oneapi-dpcpp-cpp-runtime_2024.0.0-49819.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/dpcpp-compiler/intel-oneapi-dpcpp-cpp-runtime_2024.0.0-49819.bb
new file mode 100644
index 00000000..d881610f
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-oneapi/dpcpp-compiler/intel-oneapi-dpcpp-cpp-runtime_2024.0.0-49819.bb
@@ -0,0 +1,54 @@
1SUMMARY = "Intel® oneAPI DPC++/C++ Compiler runtime files"
2DESCRIPTION = "The Intel® oneAPI DPC++/C++ Compiler provides optimizations \
3that help your applications run faster on Intel® 64 architectures with support \
4for the latest C, C++, and SYCL language standards. This compiler produces \
5optimized code that can run significantly faster by taking advantage of the \
6ever-increasing core count and vector register width in Intel® Xeon® processors \
7and compatible processors."
8
9HOMEPAGE = "https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html"
10
11LICENSE = "EULA"
12
13COMPILERMAINVER = "2024.0"
14
15LIC_FILES_CHKSUM = " \
16 file://opt/intel/oneapi/licensing/${COMPILERMAINVER}/licensing/${COMPILERMAINVER}/license.htm;md5=5ff64c6ff3ef98089ed69360e7a84c39 \
17 "
18COMPILERDOTVER = "2024.0.0-49406"
19DEVUTILITVERSION = "2024.0-2024.0.0-49320"
20SRC_URI = " \
21 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-dpcpp-cpp-runtime-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=dpcpp-runtime \
22 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-dpcpp-cpp-common-${COMPILERMAINVER}-${PV}_all.deb;subdir=${BPN};name=dpcpp-common \
23 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-shared-runtime-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=compiler-shared-runtime \
24 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-common-vars-${COMPILERDOTVER}_all.deb;subdir=${BPN};name=common-vars \
25 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-openmp-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=openmp \
26 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-openmp-common-${COMPILERMAINVER}-${PV}_all.deb;subdir=${BPN};name=openmp-common \
27 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-common-licensing-${COMPILERMAINVER}-${COMPILERDOTVER}_all.deb;subdir=${BPN};name=license \
28 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-dev-utilities-${DEVUTILITVERSION}_amd64.deb;subdir=${BPN};name=dev-utils \
29 "
30
31SRC_URI[dpcpp-runtime.sha256sum] = "e24f0ba69daf3f66ceaf23d5e632f183cdb90bac69f65407fdb4407fc9034f33"
32SRC_URI[dpcpp-common.sha256sum] = "f5a3db6a725598224edf1099260955aee3e36beadcaed2af5b8b453e873a82fa"
33SRC_URI[compiler-shared-runtime.sha256sum] = "bce010cbe076259ddd3feb8e69792869e22fccd5b4e2c9af9e815826f2c1a394"
34SRC_URI[common-vars.sha256sum] = "368553c99db1b52060b8225355336778be0b00e5991d0f769c42f891c6328750"
35SRC_URI[openmp.sha256sum] = "154ff1e81adfdc872ba1d47bd860de70d62188417c7128422435dfd0ceca62fe"
36SRC_URI[openmp-common.sha256sum] = "8217001d78311cbef97dd139e684c6767932b532309c3843ba57d7894d15c07d"
37SRC_URI[license.sha256sum] = "9f9c8a12fc0bc82ab5b71e118e66745eff23f42224eba304068225b366cd74b6"
38SRC_URI[dev-utils.sha256sum] = "c675d960a5abca361cead9217d6e74adee499ee0a095c4e44092bd710b304d50"
39
40S = "${WORKDIR}/${BPN}"
41
42inherit bin_package
43
44RDEPENDS:${PN} += "virtual-opencl-icd zlib tbb level-zero-loader bash tcsh"
45SKIP_FILEDEPS:${PN} = '1'
46
47INHIBIT_PACKAGE_STRIP = "1"
48INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
49
50# doesn't have GNU_HASH (didn't pass LDFLAGS?)
51INSANE_SKIP:${PN} += "textrel dev-so dev-elf ldflags already-stripped staticdev rpaths arch useless-rpaths file-rdeps"
52
53FILES_SOLIBSDEV = ""
54BBCLASSEXTEND = "native nativesdk"
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/dpcpp-compiler/intel-oneapi-dpcpp-cpp_2024.0.0-49819.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/dpcpp-compiler/intel-oneapi-dpcpp-cpp_2024.0.0-49819.bb
new file mode 100644
index 00000000..74af3f93
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-oneapi/dpcpp-compiler/intel-oneapi-dpcpp-cpp_2024.0.0-49819.bb
@@ -0,0 +1,45 @@
1SUMMARY = "Intel® oneAPI DPC++/C++ Compiler"
2DESCRIPTION = "The Intel® oneAPI DPC++/C++ Compiler provides optimizations \
3that help your applications run faster on Intel® 64 architectures with support \
4for the latest C, C++, and SYCL language standards. This compiler produces \
5optimized code that can run significantly faster by taking advantage of the \
6ever-increasing core count and vector register width in Intel® Xeon® processors \
7and compatible processors."
8
9HOMEPAGE = "https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html"
10
11LICENSE = "EULA"
12
13COMPILERMAINVER = "2024.0"
14
15LIC_FILES_CHKSUM = " \
16 file://opt/intel/oneapi/compiler/${COMPILERMAINVER}/share/doc/compiler/credist.txt;md5=b41f55af9f479b9570fc35b955d5ba1a \
17 "
18
19SRC_URI = " \
20 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-dpcpp-cpp-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=icx-compiler \
21 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-shared-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=compiler-linker \
22 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-shared-common-${COMPILERMAINVER}-${PV}_all.deb;subdir=${BPN};name=shared-common \
23 "
24
25SRC_URI[icx-compiler.sha256sum] = "0dcbac766d5a1519d4cf393f5a85e71d19024fef65f77638f3f849796b62cd82"
26SRC_URI[compiler-linker.sha256sum] = "e00faea6d797934d62143e4aa70b727ce30f80fdf30769d22122b3051140c236"
27SRC_URI[shared-common.sha256sum] = "cf490a4a790f349da79e618359598d3b32312ca3b2639e5d4c84e1cfa2745558"
28
29S = "${WORKDIR}/${BPN}"
30
31inherit bin_package
32
33RDEPENDS:${PN} += "intel-oneapi-dpcpp-cpp-runtime"
34SKIP_FILEDEPS:${PN} = '1'
35
36INHIBIT_PACKAGE_STRIP = "1"
37INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
38
39# doesn't have GNU_HASH (didn't pass LDFLAGS?)
40INSANE_SKIP:${PN} += "textrel dev-so dev-elf ldflags already-stripped file-rdeps staticdev rpaths arch useless-rpaths"
41
42FILES_SOLIBSDEV = ""
43
44EXCLUDE_FROM_SHLIBS = "1"
45BBCLASSEXTEND = "native nativesdk"
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/embree/embree_4.3.3.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/embree/embree_4.3.3.bb
new file mode 100644
index 00000000..416deec1
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-oneapi/embree/embree_4.3.3.bb
@@ -0,0 +1,32 @@
1SUMMARY = "Collection of high-performance ray tracing kernels"
2DESCRIPTION = "A collection of high-performance ray tracing kernels \
3intended to graphics application engineers that want to improve the \
4performance of their application."
5HOMEPAGE = "https://github.com/embree/embree"
6
7LICENSE = "Apache-2.0 & BSD-3-Clause"
8LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \
9 file://third-party-programs.txt;md5=f989f5b74cfff0d45d3ccf0e1366cbdc \
10 file://common/math/transcendental.h;beginline=6;endline=8;md5=73380bb2ab6613b30b8464f114bd0ca8"
11
12inherit pkgconfig cmake
13
14S = "${WORKDIR}/git"
15
16SRC_URI = "git://github.com/embree/embree.git;protocol=https;branch=master"
17SRCREV = "5730b150471602d6dc02d9b7d8a4a6ce9ceffe16"
18
19COMPATIBLE_HOST = '(x86_64).*-linux'
20COMPATIBLE_HOST:libc-musl = "null"
21
22DEPENDS = "tbb jpeg libpng glfw ispc-native"
23
24EXTRA_OECMAKE += " \
25 -DEMBREE_IGNORE_CMAKE_CXX_FLAGS=OFF \
26 -DEMBREE_MAX_ISA=DEFAULT \
27 -DEMBREE_TUTORIALS=OFF \
28 -DEMBREE_ISPC_SUPPORT=ON \
29 -DEMBREE_ZIP_MODE=OFF \
30 "
31
32UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$"
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/ipp/intel-oneapi-ipp_2021.10.0-653.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/ipp/intel-oneapi-ipp_2021.10.0-653.bb
new file mode 100644
index 00000000..1841253e
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-oneapi/ipp/intel-oneapi-ipp_2021.10.0-653.bb
@@ -0,0 +1,35 @@
1DESCRIPTION = "Intel® Integrated Performance Primitives are production-ready \
2 building blocks for cross-platform performance. Develop high-performance vision, \
3 signal, security, and storage applications with this multithreaded software library."
4HOMEPAGE = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/ipp.html"
5
6LICENSE = "ISSL"
7
8MAXVER = "2021.10"
9
10LIC_FILES_CHKSUM = " \
11 file://opt/intel/oneapi/ipp/${MAXVER}/share/doc/ipp/licensing/license.txt;md5=d7cdc92ed6c4de1263da879599ddc3e2 \
12 file://opt/intel/oneapi/ipp/${MAXVER}/share/doc/ipp/licensing/third-party-programs.txt;md5=22bd13987911dcf790907041b43081f3 \
13 "
14SRC_URI = " \
15 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-ipp-${MAXVER}-${PV}_amd64.deb;subdir=${BPN};name=ipp \
16 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-ipp-common-devel-${MAXVER}-${PV}_all.deb;subdir=${BPN};name=headers \
17 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-ipp-common-${MAXVER}-${PV}_all.deb;subdir=${BPN};name=env \
18 "
19
20SRC_URI[ipp.sha256sum] = "b51e45c6e691aa46c7136b0ab61f5abe346388433e017a30cf53fd23e92bea07"
21SRC_URI[headers.sha256sum] = "342f37ab2f82bc9f4498435f848ee660591c2488b44d988bf6ee96b2a71fd005"
22SRC_URI[env.sha256sum] = "731e8c28a3b8b757730cd874d0941de2eb744856128f24ade59d36c12b415bf6"
23
24S = "${WORKDIR}/${BPN}"
25
26COMPATIBLE_HOST:libc-musl = "null"
27
28inherit bin_package
29
30INHIBIT_PACKAGE_STRIP = "1"
31INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
32INHIBIT_DEFAULT_DEPS = ""
33
34RDEPENDS:${PN} += "tbb setup-intel-oneapi-env"
35INSANE_SKIP:${PN} += "ldflags dev-so"
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/mkl/intel-oneapi-mkl_2024.0.0-49656.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/mkl/intel-oneapi-mkl_2024.0.0-49656.bb
new file mode 100644
index 00000000..e3e93028
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-oneapi/mkl/intel-oneapi-mkl_2024.0.0-49656.bb
@@ -0,0 +1,74 @@
1SUMMARY = "Intel® oneAPI Math Kernel Library (oneMKL)"
2DESCRIPTION = "The Intel® oneAPI Math Kernel Library (oneMKL) is a computing \
3 math library of highly optimized and extensively parallelized routines \
4 for applications that require maximum performance. oneMKL contains \
5 the high-performance optimizations from the full Intel® Math Kernel Library \
6 for CPU architectures (with C/Fortran programming language interfaces)\
7 and adds to them a set of DPC++ programming language interfaces for \
8 achieving performance on various CPU architectures \
9 and Intel Graphics Technology for certain key functionalities."
10HOMEPAGE = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html"
11
12LICENSE = "ISSL"
13
14MKLMAINVER = "2024.0"
15
16LIC_FILES_CHKSUM = " \
17 file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/license.txt;md5=8510d21bf355a76e378c3216c3929ccd \
18 file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-benchmarks.txt;md5=cb98e1a1f14c05ea85a979ea8982e7a4 \
19 file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-ipp.txt;md5=a4b2bf15e38f5c1267cdafed18bc0b09 \
20 file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-openmp.txt;md5=6b3c1aa2a11393060074c0346ce21e49 \
21 file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-safestring.txt;md5=c3aeee91c6d35a0f0753aed6c2633b82 \
22 file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs.txt;md5=27de873e4084d62530fe828406b33ca9 \
23 "
24
25SRC_URI = " \
26 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-${MKLMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=runtime \
27 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-common-devel-${MKLMAINVER}-${PV}_all.deb;subdir=${BPN};name=common-devel \
28 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-devel-${MKLMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=devel \
29 https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-common-${MKLMAINVER}-${PV}_all.deb;subdir=${BPN};name=common-vars \
30 "
31
32SRC_URI[runtime.sha256sum] = "10a86e24051d6ef4a80fd839c570e629190638a3c0ac9bcca99ab855f534b959"
33SRC_URI[common-devel.sha256sum] = "adbf0ea946f63946d29b7f9c750c38a42ea7a65d8c81655b268aa2c7bb908192"
34SRC_URI[devel.sha256sum] = "fab2a6f15e18bfd9b4d425f2703e4e98928c57f52c4feebc9ed886f097062e84"
35SRC_URI[common-vars.sha256sum] = "ec2b67813739fa4a2895f63479a41acba2174afe2d0cb8a0c1c9119d1317d8ef"
36
37S = "${WORKDIR}/${BPN}"
38
39inherit bin_package
40
41do_install:append () {
42 install -d ${D}${bindir}
43 (cd ${D}${bindir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/bin/* .)
44 install -d ${D}${libdir}
45 (cd ${D}${libdir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/intel64/*.so* .)
46 (cd ${D}${libdir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/intel64/*.a* .)
47 install -d ${D}${libdir}/pkgconfig
48 (cd ${D}${libdir}/pkgconfig ; ln -s ../../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/pkgconfig/* .)
49 install -d ${D}${libdir}/cmake
50 (cd ${D}${libdir}/cmake ; ln -s ../../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/cmake/* .)
51
52 install -d ${D}${includedir}
53 find ${D}/opt/intel/oneapi/mkl/${MKLMAINVER}/include/ -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read srcdir; do
54 install -d ${D}${includedir}/$srcdir
55 (cd ${D}${includedir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/include/$srcdir/* ./$srcdir/)
56 done
57
58 find ${D}/opt/intel/oneapi/mkl/${MKLMAINVER}/include/ -mindepth 1 -maxdepth 1 -type f -printf '%f\n' | while read srcfile; do
59 (cd ${D}${includedir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/include/$srcfile .)
60 done
61}
62
63AUTO_LIBNAME_PKGS = ""
64INHIBIT_PACKAGE_STRIP = "1"
65INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
66
67RDEPENDS:${PN} += "bash tbb intel-oneapi-dpcpp-cpp-runtime setup-intel-oneapi-env virtual-opencl-icd"
68INSANE_SKIP:${PN} = "ldflags textrel dev-so staticdev arch already-stripped"
69
70FILES:${PN}-staticdev += "/opt/intel/oneapi/mkl/${MKLMAINVER}/lib/*.a*"
71
72SKIP_FILEDEPS:${PN} = '1'
73
74SYSROOT_DIRS += "/opt"
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/oidn/oidn_2.1.0.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/oidn/oidn_2.1.0.bb
new file mode 100644
index 00000000..8005f544
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-oneapi/oidn/oidn_2.1.0.bb
@@ -0,0 +1,27 @@
1SUMMARY = "Intel® Open Image Denoise"
2DESCRIPTION = "Intel Open Image Denoise is an open source library of \
3high-performance, high-quality denoising filters for images \
4rendered with ray tracing. Intel Open Image Denoise is part \
5of the Intel® oneAPI Rendering Toolkit"
6HOMEPAGE = "https://www.openimagedenoise.org/"
7
8LICENSE = "Apache-2.0 & BSD-3-Clause"
9LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \
10 file://external/mkl-dnn/LICENSE;md5=b48e3de3bfd47c27882a0d85b20823f5 \
11 file://external/mkl-dnn/src/cpu/x64/xbyak/COPYRIGHT;md5=3b9bf048d063d54cdb28964db558bcc7 \
12 file://external/mkl-dnn/src/common/ittnotify/LICENSE.BSD;md5=e671ff178b24a95a382ba670503c66fb \
13 file://weights/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
14
15SRC_URI = "https://github.com/OpenImageDenoise/${BPN}/releases/download/v${PV}/${BP}.src.tar.gz\
16 "
17SRC_URI[sha256sum] = "ce144ba582ff36563d9442ee07fa2a4d249bc85aa93e5b25fc527ff4ee755ed6"
18
19inherit cmake
20
21DEPENDS += "tbb ispc-native"
22
23do_install:append() {
24 chrpath -d ${D}${bindir}/* ${D}${libdir}/*${SOLIBS}
25}
26
27UPSTREAM_CHECK_URI = "https://github.com/OpenImageDenoise/oidn/releases"
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/openvkl/openvkl_2.0.1.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/openvkl/openvkl_2.0.1.bb
new file mode 100644
index 00000000..a2d709a1
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-oneapi/openvkl/openvkl_2.0.1.bb
@@ -0,0 +1,42 @@
1SUMMARY = "Intel(R) Open Volume Kernel Library"
2DESCRIPTION = "Intel(R) Open Volume Kernel Library (Intel(R) Open VKL) is a \
3collection of high-performance volume computation kernels. The target users \
4of Open VKL are graphics application engineers who want to improve the \
5performance of their volume rendering applications by leveraging Open VKL’s \
6performance-optimized kernels, which include volume traversal and sampling \
7functionality for a variety of volumetric data formats. The kernels are optimized \
8for the latest Intel(R) processors with support for SSE, AVX, AVX2, and AVX-512 \
9instructions."
10HOMEPAGE = "https://www.openvkl.org/"
11
12LICENSE = "Apache-2.0 & BSD-3-Clause & MIT & Zlib"
13LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \
14 file://third-party-programs.txt;md5=69ec7caf49616c471161b921f53d5ec0 \
15 file://testing/external/half.hpp;beginline=1;endline=17;md5=4b60058493630c3bd0ef145470f04a7b"
16
17inherit pkgconfig cmake
18
19S = "${WORKDIR}/git"
20
21SRC_URI = "git://github.com/openvkl/openvkl.git;protocol=https;branch=master \
22 "
23SRCREV = "8c6ba526813b871a624cb9d73d4cbb689ac7f4ce"
24
25COMPATIBLE_HOST = '(x86_64).*-linux'
26COMPATIBLE_HOST:libc-musl = "null"
27
28DEPENDS = "ispc ispc-native rkcommon embree"
29
30EXTRA_OECMAKE += " \
31 -DISPC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/ispc \
32 "
33EXTRA_OECMAKE:intel-corei7-64 += " \
34 -DOPENVKL_ISA_AVX=OFF \
35 -DOPENVKL_ISA_AVX2=OFF \
36 -DOPENVKL_ISA_AVX512SKX=OFF \
37 "
38
39PACKAGES =+ "${PN}-examples"
40FILES:${PN}-examples = "\
41 ${bindir} \
42 "
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/ospray/ospray/0001-Fix-GCC11-Compile-Error-in-benchmark_register.h.patch b/dynamic-layers/openembedded-layer/recipes-oneapi/ospray/ospray/0001-Fix-GCC11-Compile-Error-in-benchmark_register.h.patch
new file mode 100644
index 00000000..c2136321
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-oneapi/ospray/ospray/0001-Fix-GCC11-Compile-Error-in-benchmark_register.h.patch
@@ -0,0 +1,28 @@
1From 09e6b6615d9a16e9555eff9d569356e32bd26aa4 Mon Sep 17 00:00:00 2001
2From: benradel <86351445+benradel@users.noreply.github.com>
3Date: Wed, 23 Jun 2021 11:56:03 +0200
4Subject: [PATCH] Fix GCC11 Compile Error in benchmark_register.h
5
6Fix GCC11 compilation error due to missing header "limits" in benchmark_register.h
7
8Upstream-Status: Submitted [https://github.com/ospray/ospray/pull/484/files]
9Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
10---
11 apps/common/external/benchmark/src/benchmark_register.h | 1 +
12 1 file changed, 1 insertion(+)
13
14diff --git a/apps/common/external/benchmark/src/benchmark_register.h b/apps/common/external/benchmark/src/benchmark_register.h
15index 61377d742..8f1bb7795 100644
16--- a/apps/common/external/benchmark/src/benchmark_register.h
17+++ b/apps/common/external/benchmark/src/benchmark_register.h
18@@ -2,6 +2,7 @@
19 #define BENCHMARK_REGISTER_H
20
21 #include <vector>
22+#include <limits>
23
24 #include "check.h"
25
26--
272.32.0
28
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/ospray/ospray_3.2.0.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/ospray/ospray_3.2.0.bb
new file mode 100644
index 00000000..d3a23653
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-oneapi/ospray/ospray_3.2.0.bb
@@ -0,0 +1,37 @@
1SUMMARY = "Intel OSPray, Ray Tracing based Rendering Engine"
2DESCRIPTION = "Intel OSPRay is an open source, scalable, and portable ray \
3tracing engine for high-performance, high-fidelity visualization on \
4Intel Architecture CPUs."
5HOMEPAGE = "https://www.ospray.org/"
6
7LICENSE = "Apache-2.0 & BSD-3-Clause & MIT & Zlib"
8LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1dece7821bf3fd70fe1309eaa37d52a2 \
9 file://third-party-programs.txt;md5=e37b77e3bd997abccc359c710fb1f1db \
10 "
11
12inherit pkgconfig cmake
13
14S = "${WORKDIR}/git"
15
16SRC_URI = "git://github.com/ospray/ospray.git;protocol=https;branch=master \
17 "
18SRCREV = "85af2929937d516997451cbd52d352cf93125ed2"
19
20COMPATIBLE_HOST = '(x86_64).*-linux'
21COMPATIBLE_HOST:libc-musl = "null"
22
23DEPENDS = "rkcommon ispc ispc-native openvkl embree"
24
25EXTRA_OECMAKE += " \
26 -DISPC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/ispc \
27 -DOSPRAY_ENABLE_APPS_BENCHMARK=OFF \
28 -DOSPRAY_ENABLE_APPS_TESTING=OFF \
29 -DOSPRAY_ENABLE_APPS_EXAMPLES=OFF \
30 "
31
32PACKAGES =+ "${PN}-apps"
33FILES:${PN}-apps = "\
34 ${bindir} \
35 "
36
37UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$"
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/rkcommon/rkcommon_1.14.0.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/rkcommon/rkcommon_1.14.0.bb
new file mode 100644
index 00000000..bec36593
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-oneapi/rkcommon/rkcommon_1.14.0.bb
@@ -0,0 +1,19 @@
1SUMMARY = "rkcommon - C++/CMake infrastructure"
2DESCRIPTION = "A common set of C++ infrastructure and CMake utilities \
3used by various components of Intel® oneAPI Rendering Toolkit."
4HOMEPAGE = "https://github.com/ospray/rkcommon"
5
6LICENSE = "Apache-2.0"
7LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
8
9inherit pkgconfig cmake
10
11S = "${WORKDIR}/git"
12
13SRC_URI = "git://github.com/ospray/rkcommon.git;protocol=https;branch=master \
14 "
15SRCREV = "4a00047ae5a3ac705b6b33b4a7574588d91e7953"
16
17DEPENDS = "tbb"
18
19EXTRA_OECMAKE += " -DBUILD_TESTING=OFF"
diff --git a/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/0001-CMakeLists-disable-Werror.patch b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/0001-CMakeLists-disable-Werror.patch
new file mode 100644
index 00000000..4474aa3c
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/0001-CMakeLists-disable-Werror.patch
@@ -0,0 +1,38 @@
1From ef56be8e6bf2ea273cbeb960f3131164e7b517b6 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Wed, 18 May 2022 12:24:03 +0800
4Subject: [PATCH] CMakeLists: disable Werror
5
6gcc12 highlights minor warnings that cause the build to fail. Ignore
7those until they aren't fixed upstream.
8
9Upstream-Status: Inappropriate
10
11Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
12---
13 CMakeLists.txt | 4 ++--
14 1 file changed, 2 insertions(+), 2 deletions(-)
15
16diff --git a/CMakeLists.txt b/CMakeLists.txt
17index 418483f7..c019fea0 100644
18--- a/CMakeLists.txt
19+++ b/CMakeLists.txt
20@@ -146,7 +146,7 @@ else()
21 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -fno-strict-aliasing -D_FORTIFY_SOURCE=2")
22 if(LNX_BUILD)
23 #A few warnings yet to resolve under esx
24- set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Werror")
25+ #set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Werror")
26 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Werror")
27 endif()
28 set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -ggdb")
29@@ -791,4 +791,4 @@ if(ESX_BUILD)
30 include(CMake/esx.cmake)
31 endif()
32
33-add_subdirectory(src/os/nvm_api_sample)
34\ No newline at end of file
35+add_subdirectory(src/os/nvm_api_sample)
36--
372.35.3
38
diff --git a/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/0001-Ignore-STATIC_ASSERTs-and-NULL-define-for-os-and-ut-builds.patch b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/0001-Ignore-STATIC_ASSERTs-and-NULL-define-for-os-and-ut-builds.patch
new file mode 100644
index 00000000..8a734ed2
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/0001-Ignore-STATIC_ASSERTs-and-NULL-define-for-os-and-ut-builds.patch
@@ -0,0 +1,62 @@
1Subject: [PATCH] [PATCH]: ignore static asserts and null define for os and ut
2 builds
3Upstream-Status: Backport
4Signed-off-by: Teoh Suh Haw <suh.haw.teoh@intel.com>
5---
6 MdePkg/Include/Base.h | 12 ++++++++++++
7 1 file changed, 12 insertions(+)
8
9Index: edk2/MdePkg/Include/Base.h
10===================================================================
11--- edk2.orig/MdePkg/Include/Base.h
12+++ edk2/MdePkg/Include/Base.h
13@@ -316,8 +316,12 @@ struct _LIST_ENTRY {
14 #define NULL __null
15 #endif
16 #else
17+#ifndef OS_BUILD
18+#ifndef UNIT_TEST_UEFI_BUILD
19 #define NULL ((VOID *) 0)
20 #endif
21+#endif
22+#endif
23
24 //
25 // Null character
26@@ -813,6 +817,8 @@ typedef UINTN *BASE_LIST;
27 // Section 2.3.1 of the UEFI 2.3 Specification.
28 //
29
30+#ifndef OS_BUILD
31+#ifndef UNIT_TEST_UEFI_BUILD
32 STATIC_ASSERT (sizeof (BOOLEAN) == 1, "sizeof (BOOLEAN) does not meet UEFI Specification Data Type requirements");
33 STATIC_ASSERT (sizeof (INT8) == 1, "sizeof (INT8) does not meet UEFI Specification Data Type requirements");
34 STATIC_ASSERT (sizeof (UINT8) == 1, "sizeof (UINT8) does not meet UEFI Specification Data Type requirements");
35@@ -841,7 +847,8 @@ STATIC_ASSERT (ALIGNOF (CHAR16) == size
36 STATIC_ASSERT (ALIGNOF (INTN) == sizeof (INTN), "Alignment of INTN does not meet UEFI Specification Data Type requirements");
37 STATIC_ASSERT (ALIGNOF (UINTN) == sizeof (UINTN), "Alignment of UINTN does not meet UEFI Specification Data Type requirements");
38 STATIC_ASSERT (ALIGNOF (VOID *) == sizeof (VOID *), "Alignment of VOID * does not meet UEFI Specification Data Type requirements");
39-
40+#endif
41+#endif
42 //
43 // The following three enum types are used to verify that the compiler
44 // configuration for enum types is compliant with Section 2.3.1 of the
45@@ -861,6 +868,8 @@ typedef enum {
46 __VerifyInt32EnumValue = 0x7fffffff
47 } __VERIFY_INT32_ENUM_SIZE;
48
49+#ifndef OS_BUILD
50+#ifndef UNIT_TEST_UEFI_BUILD
51 STATIC_ASSERT (sizeof (__VERIFY_UINT8_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements");
52 STATIC_ASSERT (sizeof (__VERIFY_UINT16_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements");
53 STATIC_ASSERT (sizeof (__VERIFY_INT32_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements");
54@@ -868,6 +877,8 @@ STATIC_ASSERT (sizeof (__VERIFY_INT32_EN
55 STATIC_ASSERT (ALIGNOF (__VERIFY_UINT8_ENUM_SIZE) == sizeof (__VERIFY_UINT8_ENUM_SIZE), "Alignment of enum does not meet UEFI Specification Data Type requirements");
56 STATIC_ASSERT (ALIGNOF (__VERIFY_UINT16_ENUM_SIZE) == sizeof (__VERIFY_UINT16_ENUM_SIZE), "Alignment of enum does not meet UEFI Specification Data Type requirements");
57 STATIC_ASSERT (ALIGNOF (__VERIFY_INT32_ENUM_SIZE) == sizeof (__VERIFY_INT32_ENUM_SIZE), "Alignment of enum does not meet UEFI Specification Data Type requirements");
58+#endif
59+#endif
60
61 /**
62 Macro that returns a pointer to the data structure that contains a specified field of
diff --git a/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl_03.00.00.0499.bb b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl_03.00.00.0499.bb
new file mode 100644
index 00000000..695e29e9
--- /dev/null
+++ b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl_03.00.00.0499.bb
@@ -0,0 +1,47 @@
1SUMMARY = "Utility for managing Intel Optane DC persistent memory modules"
2DESCRIPTION = "Utility for configuring and managing Intel Optane Persistent \
3Memory modules (PMem). It supports functionality to: \
4Discover DCPMMs on the platform. \
5Provision the platform memory configuration. \
6View and update the firmware on DCPMMs. \
7Configure data-at-rest security on DCPMMs. \
8Track health and performance of DCPMMs. \
9Debug and troubleshoot DCPMMs."
10
11HOMEPAGE = "https://github.com/intel/ipmctl"
12BUGTRACKER = "https://github.com/intel/ipmctl/issues"
13
14LICENSE = "BSD-3-Clause | BSD-2-Clause"
15LIC_FILES_CHKSUM = "file://LICENSE;md5=72b9da60da6219d612ce30b746a0fe71 \
16 file://edk2/License.txt;md5=6123e5bf044a66db96c4ce88a36b2d08"
17
18SRC_URI = "git://github.com/intel/ipmctl.git;protocol=https;branch=master_3_0;name=ipmctl; \
19 git://github.com/tianocore/edk2.git;protocol=https;name=edk2;destsuffix=git/edk2;branch=master \
20 file://0001-Ignore-STATIC_ASSERTs-and-NULL-define-for-os-and-ut-builds.patch;patchdir=edk2 \
21 file://0001-CMakeLists-disable-Werror.patch \
22"
23
24SRCREV_ipmctl = "a71f2fb1c90dd07f9862b71c789881132193e8f9"
25#tag edk2-stable202408
26SRCREV_edk2 = "b158dad150bf02879668f72ce306445250838201"
27SRCREV_FORMAT = "ipmctl_edk2"
28
29S = "${WORKDIR}/git"
30
31inherit cmake dos2unix
32
33DEPENDS = "ndctl pkgconfig-native"
34
35EXTRA_OECMAKE = "-DRELEASE=ON"
36
37do_configure:prepend() {
38 for dir in BaseTools MdeModulePkg MdePkg ShellPkg ; do
39 ln -sf edk2/${dir} ${S}
40 done
41}
42
43do_install:append() {
44 # Remove /var/log/ipmctl as anything created in /var/log will not be
45 # available when tmpfs is mounted at /var/volatile/log.
46 rm -rf ${D}${localstatedir}/log
47}
diff --git a/lib/oeqa/runtime/cases/cyclictest.py b/lib/oeqa/runtime/cases/cyclictest.py
new file mode 100644
index 00000000..8890651a
--- /dev/null
+++ b/lib/oeqa/runtime/cases/cyclictest.py
@@ -0,0 +1,39 @@
1from oeqa.runtime.case import OERuntimeTestCase
2from oeqa.core.decorator.depends import OETestDepends
3from oeqa.runtime.decorator.package import OEHasPackage
4import os
5import subprocess
6import datetime
7
8class CyclicTest(OERuntimeTestCase):
9
10 @OEHasPackage(['rt-tests'])
11 @OETestDepends(['ssh.SSHTest.test_ssh'])
12 def test_cyclic(self):
13 # Cyclictest command and argument based on public setup for Intel(R) Core(TM) i7-6700
14 # https://www.osadl.org/Latency-plot-of-system-in-rack-9-slot.qa-latencyplot-r9s5.0.html?shadow=1
15 # Command line: cyclictest -l100000000 -m -Sp99 -i200 -h400 -q
16 status, output = self.target.run('cyclictest -l100000000 -m -Sp99 -i200 -h400')
17 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
18 test_log_dir = self.td.get('TEST_LOG_DIR', '')
19
20 if not test_log_dir:
21 test_log_dir = os.path.join(self.td.get('WORKDIR', ''), 'testimage')
22
23 cyclic_log_dir = os.path.join(test_log_dir, '%s.%s' % ('cyclic_test', datetime.datetime.now().strftime('%Y%m%d%H%M%S')))
24 os.makedirs(cyclic_log_dir)
25 log_path = os.path.join(cyclic_log_dir, 'cyclic_log')
26 with open(log_path, 'w') as f:
27 f.write(output)
28
29 max_latency = subprocess.check_output(('grep "Max Latencies" %s | tr " " "\n" | sort -n | tail -1 | sed s/^0*//') % log_path, shell=True).strip()
30 max_latency = int(max_latency)
31
32 # Default target latency based on max latency (24us) captured at public execution multiple by 1.2 (20% buffer)
33 # https://www.osadl.org/Latency-plot-of-system-in-rack-9-slot.qa-latencyplot-r9s5.0.html?shadow=1
34 target_latency = 1.2*24
35 user_defined_target_latency = self.tc.td.get("RTKERNEL_TARGET_LATENCY")
36 if user_defined_target_latency:
37 target_latency = int(user_defined_target_latency)
38 self.assertTrue(max_latency < target_latency,
39 msg="Max latency (%sus) is greater than target (%sus)." % (max_latency, target_latency))
diff --git a/lib/oeqa/runtime/cases/intel_mediasdk.py b/lib/oeqa/runtime/cases/intel_mediasdk.py
new file mode 100644
index 00000000..4ae7d580
--- /dev/null
+++ b/lib/oeqa/runtime/cases/intel_mediasdk.py
@@ -0,0 +1,34 @@
1from oeqa.runtime.case import OERuntimeTestCase
2from oeqa.runtime.decorator.package import OEHasPackage
3from oeqa.core.decorator.depends import OETestDepends
4
5class MsdkTest(OERuntimeTestCase):
6
7 @classmethod
8 def tearDownClass(cls):
9 cls.tc.target.run("rm /tmp/mtest_h264.mp4")
10
11 @OEHasPackage(['gstreamer1.0-plugins-base'])
12 @OEHasPackage(['gstreamer1.0-plugins-good'])
13 @OEHasPackage(['gstreamer1.0-plugins-bad'])
14 @OEHasPackage(['intel-mediasdk'])
15 @OEHasPackage(['intel-media-driver', 'libigfxcmrt7'])
16 def test_gstreamer_can_encode_with_msdk_and_intel_media_driver(self):
17 (status, output) = self.target.run('gst-inspect-1.0 msdk')
18 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
19
20 (status, output) = self.target.run('export LIBVA_DRIVER_NAME=iHD; '
21 'gst-launch-1.0 -ev videotestsrc num-buffers=120 ! timeoverlay ! '
22 'msdkh264enc ! video/x-h264,profile=main ! h264parse ! '
23 'filesink location=/tmp/mtest_h264.mp4')
24 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
25
26 @OETestDepends(['intel_mediasdk.MsdkTest.test_gstreamer_can_encode_with_msdk_and_intel_media_driver'])
27 def test_gstreamer_can_decode_with_msdk_and_intel_media_driver(self):
28 (status, output) = self.target.run('export LIBVA_DRIVER_NAME=iHD; '
29 'gst-launch-1.0 filesrc location=/tmp/mtest_h264.mp4 ! '
30 'h264parse ! msdkh264dec ! '
31 'msdkh265enc rate-control=cbr bitrate=5000 gop-size=30 b-frames=2 ! '
32 'video/x-h265,profile=main ! h265parse ! fakesink')
33 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
34
diff --git a/lib/oeqa/runtime/cases/intel_vaapi_driver.py b/lib/oeqa/runtime/cases/intel_vaapi_driver.py
new file mode 100644
index 00000000..31e11a81
--- /dev/null
+++ b/lib/oeqa/runtime/cases/intel_vaapi_driver.py
@@ -0,0 +1,27 @@
1from oeqa.runtime.case import OERuntimeTestCase
2from oeqa.runtime.decorator.package import OEHasPackage
3from oeqa.core.decorator.depends import OETestDepends
4
5class VaapiDriverTest(OERuntimeTestCase):
6
7 @classmethod
8 def tearDownClass(cls):
9 cls.tc.target.run("rm /tmp/vtest_h264.mp4")
10
11 @OEHasPackage(['gstreamer1.0-plugins-base'])
12 @OEHasPackage(['gstreamer1.0-plugins-good'])
13 @OEHasPackage(['gstreamer1.0-vaapi'])
14 @OEHasPackage(['intel-vaapi-driver'])
15 def test_gstreamer_can_encode_with_intel_vaapi_driver(self):
16 (status, output) = self.target.run('gst-inspect-1.0 vaapi')
17 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
18
19 (status, output) = self.target.run('gst-launch-1.0 -ev videotestsrc num-buffers=60 ! '
20 'timeoverlay ! vaapih264enc ! h264parse ! mp4mux ! filesink location=/tmp/vtest_h264.mp4')
21 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
22
23 @OETestDepends(['intel_vaapi_driver.VaapiDriverTest.test_gstreamer_can_encode_with_intel_vaapi_driver'])
24 def test_gstreamer_can_decode_with_intel_vaapi_driver(self):
25 (status, output) = self.target.run('gst-launch-1.0 filesrc location=/tmp/vtest_h264.mp4 ! '
26 'qtdemux ! h264parse ! vaapih264dec ! vaapisink')
27 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
diff --git a/lib/oeqa/runtime/cases/isal.py b/lib/oeqa/runtime/cases/isal.py
new file mode 100644
index 00000000..5025f986
--- /dev/null
+++ b/lib/oeqa/runtime/cases/isal.py
@@ -0,0 +1,24 @@
1import os
2from oeqa.runtime.decorator.package import OEHasPackage
3from oeqa.runtime.case import OERuntimeTestCase
4from oeqa.core.decorator.depends import OETestDepends
5
6class IsalTest(OERuntimeTestCase):
7
8 @OEHasPackage(['isa-l'])
9 def test_isal_igzip_version(self):
10 command = 'igzip -V'
11 (status, output) = self.target.run(command)
12 self.assertEqual(status, 0, msg="Error messages: %s" % output)
13
14 @OETestDepends(['isal.IsalTest.test_isal_igzip_version'])
15 def test_isal_igzip_can_compress(self):
16 command = 'echo "hello" > /tmp/igzip_sample'
17 (status, output) = self.target.run(command)
18 self.assertEqual(status, 0, msg="Error messages: %s" % output)
19 command = 'igzip -z /tmp/igzip_sample'
20 (status, output) = self.target.run(command)
21 self.assertEqual(status, 0, msg="Error messages: %s" % output)
22 command = 'rm /tmp/igzip_sample*'
23 (status, output) = self.target.run(command)
24 self.assertEqual(status, 0, msg="Error messages: %s" % output)
diff --git a/lib/oeqa/runtime/cases/libipt.py b/lib/oeqa/runtime/cases/libipt.py
new file mode 100644
index 00000000..4adb13f0
--- /dev/null
+++ b/lib/oeqa/runtime/cases/libipt.py
@@ -0,0 +1,23 @@
1from oeqa.runtime.case import OERuntimeTestCase
2from oeqa.runtime.decorator.package import OEHasPackage
3from oeqa.core.decorator.depends import OETestDepends
4
5class LibiptTest(OERuntimeTestCase):
6 libipt_bin_dir = '/usr/bin/libipt/'
7
8 @classmethod
9 def tearDownClass(cls):
10 cls.tc.target.run('rm /tmp/loop-tnt*')
11
12 @OEHasPackage(['libipt', 'libipt2'])
13 @OEHasPackage(['libipt-test'])
14 @OEHasPackage(['yasm'])
15 def test_libipt_can_generate_trace_packet(self):
16 (status, output) = self.target.run('cd /tmp; %spttc %s/tests/loop-tnt.ptt' %
17 (self.libipt_bin_dir, self.libipt_bin_dir))
18 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
19
20 @OETestDepends(['libipt.LibiptTest.test_libipt_can_generate_trace_packet'])
21 def test_libipt_can_perform_trace_packet_dump(self):
22 (status, output) = self.target.run('cd /tmp; %sptdump loop-tnt.pt' % self.libipt_bin_dir)
23 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
diff --git a/lib/oeqa/runtime/cases/libxcam.py b/lib/oeqa/runtime/cases/libxcam.py
new file mode 100644
index 00000000..57192f07
--- /dev/null
+++ b/lib/oeqa/runtime/cases/libxcam.py
@@ -0,0 +1,37 @@
1from oeqa.runtime.case import OERuntimeTestCase
2from oeqa.runtime.decorator.package import OEHasPackage
3from oeqa.core.decorator.depends import OETestDepends
4
5class LibxcamTest(OERuntimeTestCase):
6 yuv_file = 'vtest.yuv'
7 soft_test_app_file = 'test-soft-image'
8 libxcam_test_app_dir = '/usr/bin/libxcam/'
9 libxcam_file_dir = '/tmp/'
10
11 @classmethod
12 def tearDownClass(cls):
13 cls.tc.target.run("rm %s%s" % (cls.libxcam_file_dir, cls.yuv_file))
14
15 @OEHasPackage(['gstreamer1.0-plugins-base'])
16 @OEHasPackage(['gstreamer1.0-plugins-good'])
17 @OEHasPackage(['gstreamer1.0-vaapi'])
18 @OEHasPackage(['intel-vaapi-driver'])
19 def test_libxcam_can_generate_yuv_file_with_gstreamer(self):
20 (status, output) = self.target.run('gst-inspect-1.0 vaapi')
21 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
22
23 (status, output) = self.target.run('gst-launch-1.0 -ev videotestsrc num-buffers=60 ! '
24 'timeoverlay ! filesink location=%s%s' %
25 (self.libxcam_file_dir, self.yuv_file))
26 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
27
28 @OEHasPackage(['libxcam'])
29 @OEHasPackage(['libxcam-test'])
30 @OETestDepends(['libxcam.LibxcamTest.test_libxcam_can_generate_yuv_file_with_gstreamer'])
31 def test_libxcam_can_execute_soft_image_sample_app(self):
32 (status, output) = self.target.run('%s%s --type remap --input0 %s%s --output soft_out.nv12 --save false' %
33 (self.libxcam_test_app_dir,
34 self.soft_test_app_file,
35 self.libxcam_file_dir,
36 self.yuv_file))
37 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
diff --git a/lib/oeqa/runtime/cases/microcode.py b/lib/oeqa/runtime/cases/microcode.py
new file mode 100644
index 00000000..52c1cdb4
--- /dev/null
+++ b/lib/oeqa/runtime/cases/microcode.py
@@ -0,0 +1,31 @@
1from oeqa.runtime.case import OERuntimeTestCase
2from oeqa.runtime.decorator.package import OEHasPackage
3import re
4
5class MicrocodeTest(OERuntimeTestCase):
6
7 def get_revision_from_microcode_string_list(self, microcode_string_list, re_pattern):
8 re_compile = re.compile(re_pattern)
9 rev_list = []
10 for s in microcode_string_list:
11 matched_revs = re_compile.findall(s)
12 if matched_revs:
13 for mr in matched_revs:
14 rev_list.append(int(mr, 16))
15 return rev_list
16
17 @OEHasPackage(["iucode-tool"])
18 def test_microcode_update(self):
19 (status, output) = self.target.run('iucode_tool /lib/firmware/intel-ucode/ -tb -l --scan-system=2 | grep rev')
20
21 selected_microcodes = output.splitlines()
22 selected_rev_list = self.get_revision_from_microcode_string_list(selected_microcodes, "rev (\w*)")
23
24 (status, output) = self.target.run("dmesg | grep 'microcode updated early'")
25
26 updated_microcodes = output.splitlines()
27 updated_rev_list = self.get_revision_from_microcode_string_list(updated_microcodes, "revision (\w*)")
28
29 for ul in updated_rev_list:
30 self.assertTrue(ul in selected_rev_list, msg="Updated revision, %s, not in selected revision list (%s)" %
31 (ul, selected_rev_list))
diff --git a/lib/oeqa/runtime/cases/mkl_dnn.py b/lib/oeqa/runtime/cases/mkl_dnn.py
new file mode 100644
index 00000000..8d50df54
--- /dev/null
+++ b/lib/oeqa/runtime/cases/mkl_dnn.py
@@ -0,0 +1,67 @@
1from oeqa.runtime.case import OERuntimeTestCase
2from oeqa.runtime.decorator.package import OEHasPackage
3from oeqa.core.decorator.depends import OETestDepends
4from oeqa.runtime.miutils.targets.oeqatarget import OEQATarget
5from oeqa.runtime.miutils.tests.mkl_dnn_test import MkldnnTest
6
7class MklDnn(OERuntimeTestCase):
8
9 @classmethod
10 def setUpClass(cls):
11 cls.mkldnntest = MkldnnTest(OEQATarget(cls.tc.target))
12
13 @classmethod
14 def tearDownClass(cls):
15 cls.mkldnntest.tear_down()
16
17 @OEHasPackage(['onednn', 'libdnnl2'])
18 @OEHasPackage(['onednn-src', 'libdnnl-src'])
19 @OEHasPackage(['onednn-dev', 'libdnnl-dev'])
20 @OEHasPackage(['gcc'])
21 @OEHasPackage(['gcc-symlinks'])
22 @OEHasPackage(['libstdc++-dev'])
23 @OEHasPackage(['binutils'])
24 def test_mkldnn_can_compile_and_execute(self):
25 (status, output) = self.mkldnntest.test_mkldnn_can_compile_and_execute()
26 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
27
28 @OEHasPackage(['onednn', 'libdnnl2'])
29 @OEHasPackage(['onednn-test', 'libdnnl-test'])
30 def test_mkldnn_benchdnn_package_available(self):
31 (status, output) = self.mkldnntest.test_mkldnn_benchdnn_package_available()
32 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
33
34 @OETestDepends(['mkl_dnn.MklDnn.test_mkldnn_benchdnn_package_available'])
35 def test_mkldnn_conv_api(self):
36 (status, output) = self.mkldnntest.test_mkldnn_conv_api()
37 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
38
39 @OETestDepends(['mkl_dnn.MklDnn.test_mkldnn_benchdnn_package_available'])
40 def test_mkldnn_bnorm_api(self):
41 (status, output) = self.mkldnntest.test_mkldnn_bnorm_api()
42 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
43
44 @OETestDepends(['mkl_dnn.MklDnn.test_mkldnn_benchdnn_package_available'])
45 def test_mkldnn_deconv_api(self):
46 (status, output) = self.mkldnntest.test_mkldnn_deconv_api()
47 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
48
49 @OETestDepends(['mkl_dnn.MklDnn.test_mkldnn_benchdnn_package_available'])
50 def test_mkldnn_ip_api(self):
51 (status, output) = self.mkldnntest.test_mkldnn_ip_api()
52 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
53
54 @OETestDepends(['mkl_dnn.MklDnn.test_mkldnn_benchdnn_package_available'])
55 def test_mkldnn_reorder_api(self):
56 (status, output) = self.mkldnntest.test_mkldnn_reorder_api()
57 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
58
59 @OETestDepends(['mkl_dnn.MklDnn.test_mkldnn_benchdnn_package_available'])
60 def test_mkldnn_rnn_api(self):
61 (status, output) = self.mkldnntest.test_mkldnn_rnn_api()
62 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
63
64 @OETestDepends(['mkl_dnn.MklDnn.test_mkldnn_benchdnn_package_available'])
65 def test_mkldnn_shuffle_api(self):
66 (status, output) = self.mkldnntest.test_mkldnn_shuffle_api()
67 self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output))
diff --git a/lib/oeqa/runtime/cases/parselogs-ignores-intel-core2-32.txt b/lib/oeqa/runtime/cases/parselogs-ignores-intel-core2-32.txt
new file mode 100644
index 00000000..84ce8168
--- /dev/null
+++ b/lib/oeqa/runtime/cases/parselogs-ignores-intel-core2-32.txt
@@ -0,0 +1,9 @@
1# These should be reviewed to see if they are still needed
2ACPI: No _BQC method, cannot determine initial brightness
3[Firmware Bug]: ACPI: No _BQC method, cannot determine initial brightness
4(EE) Failed to load module "psb"
5(EE) Failed to load module "psbdrv"
6(EE) open /dev/fb0: No such file or directory
7(EE) AIGLX: reverting to software rendering
8dmi: Firmware registration failed.
9ioremap error for 0x78
diff --git a/lib/oeqa/runtime/cases/parselogs-ignores-intel-corei7-64.txt b/lib/oeqa/runtime/cases/parselogs-ignores-intel-corei7-64.txt
new file mode 100644
index 00000000..5c9b4bc7
--- /dev/null
+++ b/lib/oeqa/runtime/cases/parselogs-ignores-intel-corei7-64.txt
@@ -0,0 +1,14 @@
1# These should be reviewed to see if they are still needed
2can't set Max Payload Size to 256
3intel_punit_ipc: can't request region for resource
4[drm] parse error at position 4 in video mode 'efifb'
5ACPI Error: Could not enable RealTimeClock event
6ACPI Warning: Could not enable fixed event - RealTimeClock
7hci_intel INT33E1:00: Unable to retrieve gpio
8hci_intel: probe of INT33E1:00 failed
9can't derive routing for PCI INT A
10failed to read out thermal zone
11Bluetooth: hci0: Setting Intel event mask failed
12ttyS2 - failed to request DMA
13Bluetooth: hci0: Failed to send firmware data (-38)
14atkbd serio0: Failed to enable keyboard on isa0060/serio0
diff --git a/lib/oeqa/runtime/cases/thermald.py b/lib/oeqa/runtime/cases/thermald.py
new file mode 100644
index 00000000..a0b6a92b
--- /dev/null
+++ b/lib/oeqa/runtime/cases/thermald.py
@@ -0,0 +1,47 @@
1from oeqa.runtime.case import OERuntimeTestCase
2from oeqa.core.decorator.depends import OETestDepends
3from oeqa.runtime.decorator.package import OEHasPackage
4import threading
5import time
6import re
7
8class ThermaldTest(OERuntimeTestCase):
9 def get_thermal_zone_with_target_type(self, target_type):
10 i = 0
11 while True:
12 status, output = self.target.run('cat /sys/class/thermal/thermal_zone%s/type' % i)
13 if status:
14 return -1
15 if output == target_type:
16 return i
17 i = i + 1
18
19 def run_thermald_emulation_to_exceed_setpoint_then_end_thermald_process(self, run_args):
20 time.sleep(2)
21 self.target.run('echo 106000 > /sys/class/thermal/thermal_zone%s/emul_temp' % run_args)
22 time.sleep(5)
23 __, output = self.target.run('pidof thermald')
24 self.target.run('kill -9 %s' % output)
25
26 def test_thermald_emulation_mode(self):
27 # Thermald test depend on thermal emulation, where CONFIG_THERMAL_EMULATION=y was required
28 # To enable thermal emulation, refer to https://github.com/intel/thermal_daemon/blob/master/test/readme_test.txt
29 (status, output) = self.target.run('gzip -dc /proc/config.gz | grep CONFIG_THERMAL_EMULATION=y')
30 if status:
31 self.skipTest("CONFIG_THERMAL_EMULATION is not set")
32
33 @OEHasPackage(['thermald'])
34 @OETestDepends(['thermald.ThermaldTest.test_thermald_emulation_mode'])
35 def test_thermald_can_track_thermal_exceed_setpoint(self):
36 x86_thermal_zone_index = self.get_thermal_zone_with_target_type('x86_pkg_temp')
37 if x86_thermal_zone_index < 0:
38 self.skipTest('Could not get the thermal zone index for target type (%s)' % 'x86_pkg_temp')
39 td_thread = threading.Thread(target=self.run_thermald_emulation_to_exceed_setpoint_then_end_thermald_process,
40 args=(x86_thermal_zone_index,))
41 td_thread.start()
42 td_thread.join()
43 status, output = self.target.run('timeout 3s thermald --no-daemon --loglevel=info')
44 regex_search = ".*thd_cdev_set_state.*106000"
45 regex_comp = re.compile(regex_search)
46 m = regex_comp.search(output)
47 self.assertTrue(m, msg='status and output: %s and %s' % (status, output))
diff --git a/lib/oeqa/runtime/miutils/targets/oeqatarget.py b/lib/oeqa/runtime/miutils/targets/oeqatarget.py
new file mode 100644
index 00000000..a9f7f1b4
--- /dev/null
+++ b/lib/oeqa/runtime/miutils/targets/oeqatarget.py
@@ -0,0 +1,11 @@
1
2class OEQATarget(object):
3
4 def __init__(self, target):
5 self.target = target
6
7 def run(self, cmd):
8 return self.target.run(cmd)
9
10 def copy_to(self, source, destination_dir):
11 self.target.copyTo(source, destination_dir)
diff --git a/lib/oeqa/runtime/miutils/tests/mkl_dnn_test.py b/lib/oeqa/runtime/miutils/tests/mkl_dnn_test.py
new file mode 100644
index 00000000..869a4cbe
--- /dev/null
+++ b/lib/oeqa/runtime/miutils/tests/mkl_dnn_test.py
@@ -0,0 +1,55 @@
1
2class MkldnnTest(object):
3 mkldnn_target_test_filename = 'mkl-dnn-c'
4
5 def __init__(self, target):
6 self.target = target
7
8 def tear_down(self):
9 self.target.run('rm /tmp/%s' % self.mkldnn_target_test_filename)
10
11 def test_mkldnn_can_compile_and_execute(self):
12 mkldnn_src_dir = '/usr/src/debug/onednn/'
13 mkldnn_src_test_filename = 'api.c'
14 mkldnn_src_test_file = ''
15
16 (__, output) = self.target.run('cd %s; find -name %s' % (mkldnn_src_dir, mkldnn_src_test_filename))
17 if 'No such file or directory' in output:
18 return -1, output
19
20 mkldnn_src_test_file = os.path.join(mkldnn_src_dir, output)
21 (status, output) = self.target.run('gcc %s -o /tmp/%s -ldnnl' % (mkldnn_src_test_file, self.mkldnn_target_test_filename))
22 if status:
23 return status, output
24
25 (status, output) = self.target.run('cd /tmp; ./%s' % self.mkldnn_target_test_filename)
26 return status, output
27
28 def test_mkldnn_benchdnn_package_available(self):
29 (status, output) = self.target.run('ls /usr/bin/mkl-dnn/tests/benchdnn')
30 return status, output
31
32 def _run_mkldnn_benchdnn_test(self, cmd):
33 (status, output) = self.target.run('cd /usr/bin/mkl-dnn/tests/benchdnn; %s' % cmd)
34 return status, output
35
36 def test_mkldnn_conv_api(self):
37 return self._run_mkldnn_benchdnn_test('./benchdnn --conv --batch=inputs/conv/test_conv_3d')
38
39 def test_mkldnn_bnorm_api(self):
40 return self._run_mkldnn_benchdnn_test('./benchdnn --bnorm --batch=inputs/bnorm/test_bnorm_regressions')
41
42 def test_mkldnn_deconv_api(self):
43 return self._run_mkldnn_benchdnn_test('./benchdnn --deconv --batch=inputs/deconv/test_deconv_bfloat16')
44
45 def test_mkldnn_ip_api(self):
46 return self._run_mkldnn_benchdnn_test('./benchdnn --ip --batch=inputs/ip/test_ip_bfloat16')
47
48 def test_mkldnn_reorder_api(self):
49 return self._run_mkldnn_benchdnn_test('./benchdnn --reorder --batch=inputs/reorder/test_reorder_bfloat16')
50
51 def test_mkldnn_rnn_api(self):
52 return self._run_mkldnn_benchdnn_test('./benchdnn --rnn --batch=inputs/rnn/test_rnn_all')
53
54 def test_mkldnn_shuffle_api(self):
55 return self._run_mkldnn_benchdnn_test('./benchdnn --shuffle --batch=inputs/shuffle/test_shuffle_bfloat16') \ No newline at end of file
diff --git a/lib/oeqa/selftest/cases/secureboot.py b/lib/oeqa/selftest/cases/secureboot.py
deleted file mode 100644
index 4c059e25..00000000
--- a/lib/oeqa/selftest/cases/secureboot.py
+++ /dev/null
@@ -1,176 +0,0 @@
1#!/usr/bin/env python
2# ex:ts=4:sw=4:sts=4:et
3# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
4#
5# Copyright (c) 2017, Intel Corporation.
6# All rights reserved.
7#
8# This program is free software; you can redistribute it and/or modify
9# it under the terms of the GNU General Public License version 2 as
10# published by the Free Software Foundation.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License along
18# with this program; if not, write to the Free Software Foundation, Inc.,
19# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20#
21# AUTHORS
22# Mikko Ylinen <mikko.ylinen@linux.intel.com>
23#
24# Based on meta/lib/oeqa/selftest/* and meta-refkit/lib/oeqa/selftest/*
25
26"""Test cases for secure boot with QEMU running OVMF."""
27
28import os
29import unittest
30import re
31import glob
32from shutil import rmtree, copy
33
34from oeqa.core.decorator.depends import OETestDepends
35from oeqa.selftest.case import OESelftestTestCase
36from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, runqemu
37
38class SecureBootTests(OESelftestTestCase):
39 """Secure Boot test class."""
40
41 ovmf_keys_enrolled = False
42 ovmf_qemuparams = ''
43 ovmf_dir = ''
44 test_image_unsigned = 'secureboot-selftest-image-unsigned'
45 test_image_signed = 'secureboot-selftest-image-signed'
46 correct_key = 'refkit-db'
47 incorrect_key = 'incorrect'
48
49 @classmethod
50 def setUpLocal(self):
51
52 if not SecureBootTests.ovmf_keys_enrolled:
53 bitbake('ovmf ovmf-shell-image-enrollkeys', output_log=self.logger)
54
55 bb_vars = get_bb_vars(['TMPDIR', 'DEPLOY_DIR_IMAGE'])
56
57 SecureBootTests.ovmf_dir = os.path.join(bb_vars['TMPDIR'], 'oeselftest', 'secureboot', 'ovmf')
58 bb.utils.mkdirhier(SecureBootTests.ovmf_dir)
59
60 # Copy (all) OVMF in a temporary location
61 for src in glob.glob('%s/ovmf.*' % bb_vars['DEPLOY_DIR_IMAGE']):
62 copy(src, SecureBootTests.ovmf_dir)
63
64 SecureBootTests.ovmf_qemuparams = '-drive if=pflash,format=qcow2,file=%s/ovmf.secboot.qcow2' % SecureBootTests.ovmf_dir
65
66 cmd = ("runqemu "
67 "qemuparams='%s' "
68 "ovmf-shell-image-enrollkeys wic intel-corei7-64 "
69 "nographic slirp") % SecureBootTests.ovmf_qemuparams
70 print('Running "%s"' % cmd)
71 status = runCmd(cmd)
72
73 if not re.search('info: success', status.output, re.M):
74 self.fail('Failed to enroll keys. EFI shell log:\n%s' % status.output)
75 else:
76 # keys enrolled in ovmf.secboot.vars
77 SecureBootTests.ovmf_keys_enrolled = True
78
79 @classmethod
80 def tearDownLocal(self):
81 # Seems this is mandatory between the tests (a signed image is booted
82 # when running test_boot_unsigned_image after test_boot_signed_image).
83 # bitbake('-c clean %s' % test_image, output_log=self.logger)
84 #
85 # Whatever the problem was, it no longer seems to be necessary, so
86 # we can skip the time-consuming clean + full rebuild (5:04 min instead
87 # of 6:55min here).
88 pass
89
90 @classmethod
91 def tearDownClass(self):
92 bitbake('ovmf-shell-image-enrollkeys:do_cleanall', output_log=self.logger)
93 rmtree(self.ovmf_dir, ignore_errors=True)
94
95 def secureboot_with_image(self, boot_timeout=300, signing_key=None):
96 """Boot the image with UEFI SecureBoot enabled and see the result. """
97
98 config = ""
99
100 if signing_key:
101 test_image = self.test_image_signed
102 config += 'SECURE_BOOT_SIGNING_KEY = "${THISDIR}/files/%s.key"\n' % signing_key
103 config += 'SECURE_BOOT_SIGNING_CERT = "${THISDIR}/files/%s.crt"\n' % signing_key
104 else:
105 test_image = self.test_image_unsigned
106
107 self.write_config(config)
108 bitbake(test_image, output_log=self.logger)
109 self.remove_config(config)
110
111 # Some of the cases depend on the timeout to expire. Allow overrides
112 # so that we don't have to wait 1000s which is the default.
113 overrides = {
114 'TEST_QEMUBOOT_TIMEOUT': boot_timeout,
115 }
116
117 print('Booting %s' % test_image)
118
119 try:
120 with runqemu(test_image, ssh=False,
121 runqemuparams='nographic slirp',
122 qemuparams=self.ovmf_qemuparams,
123 overrides=overrides,
124 image_fstype='wic') as qemu:
125
126 cmd = 'uname -a'
127
128 status, output = qemu.run_serial(cmd)
129
130 self.assertTrue(status, 'Could not run \'uname -a\' (status=%s):\n%s' % (status, output))
131
132 # if we got this far without a correctly signed image, something went wrong
133 if signing_key != self.correct_key:
134 self.fail('The image not give a Security violation when expected. Boot log:\n%s' % output)
135
136
137 except Exception:
138
139 # Currently runqemu() fails if 'login:' prompt is not seen and it's
140 # not possible to login as 'root'. Those conditions aren't met when
141 # booting to EFI shell (See [YOCTO #11438]). We catch the failure
142 # and parse the boot log to determine the success. Note: the
143 # timeout triggers verbose bb.error() but that's normal with some
144 # of the test cases.
145
146 workdir = get_bb_var('WORKDIR', test_image)
147 bootlog = "%s/testimage/qemu_boot_log" % workdir
148
149 with open(bootlog, "r") as log:
150
151 # This isn't right but all we can do at this point. The right
152 # approach would run commands in the EFI shell to determine
153 # the BIOS rejects unsigned and/or images signed with keys in
154 # dbx key store but that needs changes in oeqa framework.
155
156 output = log.read()
157
158 # PASS if we see a security violation on unsigned or incorrectly signed images, otherwise fail
159 if signing_key == self.correct_key:
160 self.fail('Correctly signed image failed to boot. Boot log:\n%s' % output)
161 elif not re.search('Security Violation', output):
162 self.fail('The image not give a Security violation when expected. Boot log:\n%s' % output)
163
164 def test_boot_unsigned_image(self):
165 """ Boot unsigned image with secureboot enabled in UEFI."""
166 self.secureboot_with_image(boot_timeout=120, signing_key=None)
167
168 @OETestDepends(['secureboot.SecureBootTests.test_boot_unsigned_image'])
169 def test_boot_incorrectly_signed_image(self):
170 """ Boot (correctly) signed image with secureboot enabled in UEFI."""
171 self.secureboot_with_image(boot_timeout=120, signing_key=self.incorrect_key)
172
173 @OETestDepends(['secureboot.SecureBootTests.test_boot_incorrectly_signed_image'])
174 def test_boot_correctly_signed_image(self):
175 """ Boot (correctly) signed image with secureboot enabled in UEFI."""
176 self.secureboot_with_image(boot_timeout=150, signing_key=self.correct_key)
diff --git a/recipes-bsp/ace/ace_6.5.3.bb b/recipes-bsp/ace/ace_6.5.3.bb
deleted file mode 100644
index 53ec3243..00000000
--- a/recipes-bsp/ace/ace_6.5.3.bb
+++ /dev/null
@@ -1,37 +0,0 @@
1DESCRIPTION = "C++ network programming framework that implements many core \
2patterns for concurrent communication software"
3LICENSE = "ACE-TAO-CIAO"
4LIC_FILES_CHKSUM = "file://COPYING;md5=407a202d1b887b998dc9480442840630"
5
6DEPENDS += "openssl gperf-native"
7
8SRC_URI = "ftp://download.dre.vanderbilt.edu/previous_versions/ACE-${PV}.tar.bz2 \
9 file://ace_config.patch \
10 "
11
12SRC_URI[md5sum] = "4cc5f109ebd17cd56f0539d1b47d16b3"
13SRC_URI[sha256sum] = "b1d6a716394bd15c21bb90037b8a12a4d8034cc9d8878b0ad39b3c467df19b1a"
14
15COMPATIBLE_HOST_libc-musl = "null"
16
17S = "${WORKDIR}/ACE_wrappers"
18B = "${WORKDIR}/ACE_wrappers/ace"
19export ACE_ROOT="${WORKDIR}/ACE_wrappers"
20
21inherit pkgconfig
22
23CXXFLAGS_append = " -fpermissive -Wnodeprecated-declarations"
24
25do_install() {
26 export D="${D}"
27 oe_runmake install
28
29 for i in $(find ${D} -name "*.pc") ; do
30 sed -i -e s:${D}::g \
31 -e s:/${TARGET_SYS}::g \
32 $i
33 done
34
35 rm -r ${D}/usr/share
36}
37
diff --git a/recipes-bsp/ace/files/ace_config.patch b/recipes-bsp/ace/files/ace_config.patch
deleted file mode 100644
index 207b85ab..00000000
--- a/recipes-bsp/ace/files/ace_config.patch
+++ /dev/null
@@ -1,12 +0,0 @@
1diff -ruN ACE_wrappers1/ace/config.h ACE_wrappers/ace/config.h
2--- ACE_wrappers1/ace/config.h 1970-01-01 02:00:00.000000000 +0200
3+++ ACE_wrappers/ace/config.h 2019-01-10 13:36:52.698012477 +0200
4@@ -0,0 +1,1 @@
5+#include "ace/config-linux.h"
6diff -ruN ACE_wrappers1/include/makeinclude/platform_macros.GNU ACE_wrappers/include/makeinclude/platform_macros.GNU
7--- ACE_wrappers1/include/makeinclude/platform_macros.GNU 1970-01-01 02:00:00.000000000 +0200
8+++ ACE_wrappers/include/makeinclude/platform_macros.GNU 2018-10-31 15:11:18.265392460 +0200
9@@ -0,0 +1,3 @@
10+INSTALL_PREFIX = $(D)$(exec_prefix)
11+INSTALL_LIB = $(base_libdir)
12+include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
diff --git a/recipes-bsp/formfactor/formfactor_0.0.bbappend b/recipes-bsp/formfactor/formfactor_0.0.bbappend
index 6dd422ae..d21c3bee 100644
--- a/recipes-bsp/formfactor/formfactor_0.0.bbappend
+++ b/recipes-bsp/formfactor/formfactor_0.0.bbappend
@@ -1 +1 @@
FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:" FILESEXTRAPATHS:prepend:intel-x86-common := "${THISDIR}/${PN}:"
diff --git a/recipes-bsp/gma500-gfx-check/gma500-gfx-check/gma500-gfx-check.conf b/recipes-bsp/gma500-gfx-check/gma500-gfx-check/gma500-gfx-check.conf
deleted file mode 100644
index 74d33c87..00000000
--- a/recipes-bsp/gma500-gfx-check/gma500-gfx-check/gma500-gfx-check.conf
+++ /dev/null
@@ -1,2 +0,0 @@
1# Mimic modprobe's install funcitonality with busybox's modprobe
2install gma500_gfx dmesg | grep gma500_gfx_checked || { /etc/modprobe.d/gma500-gfx-check.sh || modprobe gma500_gfx; }
diff --git a/recipes-bsp/gma500-gfx-check/gma500-gfx-check/gma500-gfx-check.sh b/recipes-bsp/gma500-gfx-check/gma500-gfx-check/gma500-gfx-check.sh
deleted file mode 100644
index 75cda99f..00000000
--- a/recipes-bsp/gma500-gfx-check/gma500-gfx-check/gma500-gfx-check.sh
+++ /dev/null
@@ -1,15 +0,0 @@
1#!/bin/sh
2
3# Check for devices we wish to avoid gma500_gfx for
4DEVICES="0x8119 0x4108"
5
6# Checked flag to avoid infinite modprobe
7echo "gma500_gfx_checked" >> /dev/kmsg;
8
9for DEVICE in $DEVICES; do
10 if udevadm trigger --subsystem-match=pci --verbose --attr-match=device=$DEVICE | grep "pci" >> /dev/null ; then
11 echo "Found $DEVICE, avoiding gma500_gfx module" >> /dev/kmsg;
12 exit 0
13 fi
14done
15exit 1
diff --git a/recipes-bsp/gma500-gfx-check/gma500-gfx-check_1.0.bb b/recipes-bsp/gma500-gfx-check/gma500-gfx-check_1.0.bb
deleted file mode 100644
index 7b08064b..00000000
--- a/recipes-bsp/gma500-gfx-check/gma500-gfx-check_1.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
1SUMMARY = "Intel gma500_gfx fix for certain hardware"
2DESCRIPTION = "Avoid inserting gma500_gfx module for certain hardware devices."
3LICENSE="GPLv2"
4LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
5
6SRC_URI = "file://gma500-gfx-check.conf \
7 file://gma500-gfx-check.sh "
8
9do_install(){
10 install -d ${D}${sysconfdir}/modprobe.d/
11 install -m 755 ${WORKDIR}/gma500-gfx-check.sh ${D}${sysconfdir}/modprobe.d/gma500-gfx-check.sh
12 install -m 644 ${WORKDIR}/gma500-gfx-check.conf ${D}${sysconfdir}/modprobe.d/gma500-gfx-check.conf
13}
14
15FILES_${PN}="${sysconfdir}/modprobe.d/gma500-gfx-check.conf \
16 ${sysconfdir}/modprobe.d/gma500-gfx-check.sh"
17
18COMPATIBLE_MACHINE = "intel-core2-32"
diff --git a/recipes-bsp/intel-cmt-cat/intel-cmt-cat_25.04.bb b/recipes-bsp/intel-cmt-cat/intel-cmt-cat_25.04.bb
new file mode 100644
index 00000000..a0e8d214
--- /dev/null
+++ b/recipes-bsp/intel-cmt-cat/intel-cmt-cat_25.04.bb
@@ -0,0 +1,29 @@
1SUMMARY = "intel-cmt-cat"
2DESCRIPTION = "Software package which provides basic support for Intel(R) \
3Resource Director Technology (Intel(R) RDT)"
4HOMEPAGE = "https://github.com/intel/intel-cmt-cat"
5
6LICENSE = "BSD-3-Clause"
7LIC_FILES_CHKSUM = "file://LICENSE;md5=4b63c65942e1c16fd897f8cd20abebf8"
8
9SRC_URI = "git://github.com/intel/intel-cmt-cat;protocol=https;branch=master"
10SRCREV = "17629d0b726875836af6c7d9cb38b8ed23f32089"
11
12S = "${WORKDIR}/git"
13
14COMPATIBLE_HOST = '(x86_64).*-linux'
15COMPATIBLE_HOST:libc-musl = "null"
16
17do_install() {
18 oe_runmake install PREFIX=${D}${prefix} NOLDCONFIG=y
19}
20
21FILES:${PN} += "${nonarch_libdir}/libpqos*"
22FILES:${PN}-doc = "/usr/man*"
23
24INSANE_SKIP:${PN} += "ldflags"
25INSANE_SKIP:${PN} += "dev-so"
26INSANE_SKIP:${PN} += "libdir"
27INSANE_SKIP:${PN} += "already-stripped"
28
29INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/recipes-bsp/metee/metee_2.1.0.bb b/recipes-bsp/metee/metee_3.2.4.bb
index e477f57a..da8220b9 100644
--- a/recipes-bsp/metee/metee_2.1.0.bb
+++ b/recipes-bsp/metee/metee_3.2.4.bb
@@ -10,10 +10,9 @@ COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
10 10
11inherit cmake 11inherit cmake
12 12
13SRC_URI = "git://github.com/intel/metee.git" 13SRC_URI = "git://github.com/intel/metee.git;branch=master;protocol=https \
14SRCREV = "642eedfcacc677fc43181f0b7c16d8f90724a9cb" 14"
15 15SRCREV = "db45e37e146fd9c06907a15ade55eba06ad1f951"
16COMPATIBLE_HOST_libc-musl = "null"
17 16
18S = "${WORKDIR}/git" 17S = "${WORKDIR}/git"
19 18
diff --git a/recipes-bsp/systemd-boot/systemd-boot_%.bbappend b/recipes-bsp/systemd-boot/systemd-boot_%.bbappend
deleted file mode 100644
index d2e1c16b..00000000
--- a/recipes-bsp/systemd-boot/systemd-boot_%.bbappend
+++ /dev/null
@@ -1,9 +0,0 @@
1PACKAGE_ARCH_intel-x86-common = "${INTEL_COMMON_PACKAGE_ARCH}"
2
3do_compile_append_intel-x86-common() {
4 ninja src/boot/efi/linux${SYSTEMD_BOOT_EFI_ARCH}.efi.stub
5}
6
7do_deploy_append_intel-x86-common() {
8 install ${B}/src/boot/efi/linux*.efi.stub ${DEPLOYDIR}
9}
diff --git a/recipes-bsp/thermald/thermald/0001-Use-correct-format-specifier-for-size_t.patch b/recipes-bsp/thermald/thermald/0001-Use-correct-format-specifier-for-size_t.patch
deleted file mode 100644
index 6897ffc1..00000000
--- a/recipes-bsp/thermald/thermald/0001-Use-correct-format-specifier-for-size_t.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From bb7631163c8f3f44d0dc83690765cdb799664fd5 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Wed, 26 Sep 2018 10:34:15 +0800
4Subject: [PATCH] Use correct format specifier for size_t
5
6%zu instead of %lu, otherwise on 32 bit:
7
8| ../git/src/thd_zone.cpp: In member function 'void cthd_zone::sort_and_update_poll_trip()':
9| ../git/src/thd_zone.cpp:106:16: error: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'std::vector<cthd_trip_point>::size_type' {aka 'unsigned int'} [-Werror=format=]
10| thd_log_debug("sort_and_update_poll_trip: trip_points_size =%lu\n",
11| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12| trip_points.size());
13
14Upstream-Status: Submitted
15[https://github.com/intel/thermal_daemon/pull/165]
16
17Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
18---
19 src/thd_zone.cpp | 2 +-
20 1 file changed, 1 insertion(+), 1 deletion(-)
21
22diff --git a/src/thd_zone.cpp b/src/thd_zone.cpp
23index b7edf9e..cb7b8e8 100644
24--- a/src/thd_zone.cpp
25+++ b/src/thd_zone.cpp
26@@ -103,7 +103,7 @@ int cthd_zone::read_user_set_psv_temp() {
27 }
28
29 void cthd_zone::sort_and_update_poll_trip() {
30- thd_log_debug("sort_and_update_poll_trip: trip_points_size =%lu\n",
31+ thd_log_debug("sort_and_update_poll_trip: trip_points_size =%zu\n",
32 trip_points.size());
33 if (trip_points.size()) {
34 unsigned int polling_trip = 0;
35--
362.17.1
37
diff --git a/recipes-core/images/core-image-minimal-initramfs.bbappend b/recipes-core/images/core-image-minimal-initramfs.bbappend
index 132f15b5..90ac28fd 100644
--- a/recipes-core/images/core-image-minimal-initramfs.bbappend
+++ b/recipes-core/images/core-image-minimal-initramfs.bbappend
@@ -1,2 +1,2 @@
1# Add i915 graphics firmware 1# Add i915 graphics firmware
2PACKAGE_INSTALL_append_intel-x86-common = " linux-firmware-i915" 2PACKAGE_INSTALL:append:intel-x86-common = " linux-firmware-i915"
diff --git a/recipes-core/images/core-image-tiny.bb b/recipes-core/images/core-image-tiny.bb
index 6b09b0c2..f521f668 100644
--- a/recipes-core/images/core-image-tiny.bb
+++ b/recipes-core/images/core-image-tiny.bb
@@ -32,5 +32,5 @@ python() {
32 d.appendVarFlag('do_image', 'depends', ' %s:do_image_complete' % initrd_i) 32 d.appendVarFlag('do_image', 'depends', ' %s:do_image_complete' % initrd_i)
33} 33}
34 34
35WKS_FILE_intel-corei7-64 = "core-image-tiny.wks.in" 35WKS_FILE:intel-corei7-64 = "core-image-tiny.wks.in"
36WKS_FILE_intel-core2-32 = "core-image-tiny.wks.in" 36WKS_FILE:intel-core2-32 = "core-image-tiny.wks.in"
diff --git a/recipes-core/libxcam/libxcam/0001-fake_v4l2_device.h-fix-narrowing-warning.patch b/recipes-core/libxcam/libxcam/0001-fake_v4l2_device.h-fix-narrowing-warning.patch
new file mode 100644
index 00000000..f15d5cc7
--- /dev/null
+++ b/recipes-core/libxcam/libxcam/0001-fake_v4l2_device.h-fix-narrowing-warning.patch
@@ -0,0 +1,94 @@
1From d4c97b50b577ea16b9ff6d9a352ab474a119310e Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Wed, 18 May 2022 15:41:24 +0800
4Subject: [PATCH] fake_v4l2_device.h: fix narrowing warning
5
6Use uint32_t instead of int for IOCTLs commands.
7
8Warning log:
9| ../../../git/xcore/fake_v4l2_device.h: In member function 'virtual int XCam::FakeV4l2Device::io_control(int, void*)':
10| ../../../git/xcore/fake_v4l2_device.h:42:14: error: narrowing conversion of '3225441794' from 'long unsigned int' to 'int' [-Wnarrowing]
11| 42 | case VIDIOC_ENUM_FMT:
12| | ^~~~~~~~~~~~~~~
13| make[4]: *** [Makefile:685: libgstxcamsrc_la-gstxcamsrc.lo] Error 1
14
15Issue: https://github.com/intel/libxcam/issues/801
16Upstream-Status: Submitted [https://github.com/intel/libxcam/pull/802]
17
18Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
19---
20 xcore/base/xcam_common.h | 2 +-
21 xcore/fake_v4l2_device.h | 2 +-
22 xcore/v4l2_device.cpp | 2 +-
23 xcore/v4l2_device.h | 2 +-
24 xcore/xcam_common.cpp | 2 +-
25 5 files changed, 5 insertions(+), 5 deletions(-)
26
27diff --git a/xcore/base/xcam_common.h b/xcore/base/xcam_common.h
28index 1f16e1e..4aa6cb9 100644
29--- a/xcore/base/xcam_common.h
30+++ b/xcore/base/xcam_common.h
31@@ -75,7 +75,7 @@ void xcam_free (void *ptr);
32 * return, 0 successfully
33 * else, check errno
34 */
35-int xcam_device_ioctl (int fd, int cmd, void *arg);
36+int xcam_device_ioctl (int fd, uint32_t cmd, void *arg);
37 const char *xcam_fourcc_to_string (uint32_t fourcc);
38
39 void xcam_set_log (const char* file_name);
40diff --git a/xcore/fake_v4l2_device.h b/xcore/fake_v4l2_device.h
41index f679c19..e29787d 100644
42--- a/xcore/fake_v4l2_device.h
43+++ b/xcore/fake_v4l2_device.h
44@@ -33,7 +33,7 @@ public:
45 : V4l2Device ("/dev/null")
46 {}
47
48- int io_control (int cmd, void *arg)
49+ int io_control (uint32_t cmd, void *arg)
50 {
51 XCAM_UNUSED (arg);
52
53diff --git a/xcore/v4l2_device.cpp b/xcore/v4l2_device.cpp
54index 395461e..66a8ac6 100644
55--- a/xcore/v4l2_device.cpp
56+++ b/xcore/v4l2_device.cpp
57@@ -185,7 +185,7 @@ V4l2Device::close ()
58 }
59
60 int
61-V4l2Device::io_control (int cmd, void *arg)
62+V4l2Device::io_control (uint32_t cmd, void *arg)
63
64 {
65 if (_fd <= 0)
66diff --git a/xcore/v4l2_device.h b/xcore/v4l2_device.h
67index b4ad7ad..2551a92 100644
68--- a/xcore/v4l2_device.h
69+++ b/xcore/v4l2_device.h
70@@ -104,7 +104,7 @@ public:
71 XCamReturn queue_buffer (SmartPtr<V4l2Buffer> &buf);
72
73 // use as less as possible
74- virtual int io_control (int cmd, void *arg);
75+ virtual int io_control (uint32_t cmd, void *arg);
76
77 protected:
78
79diff --git a/xcore/xcam_common.cpp b/xcore/xcam_common.cpp
80index 848884d..d4d5093 100644
81--- a/xcore/xcam_common.cpp
82+++ b/xcore/xcam_common.cpp
83@@ -53,7 +53,7 @@ void xcam_free(void *ptr)
84 free (ptr);
85 }
86
87-int xcam_device_ioctl (int fd, int cmd, void *arg)
88+int xcam_device_ioctl (int fd, uint32_t cmd, void *arg)
89 {
90 int ret = 0;
91 int tried_time = 0;
92--
932.25.1
94
diff --git a/recipes-core/libxcam/libxcam_1.5.0.bb b/recipes-core/libxcam/libxcam_1.5.0.bb
new file mode 100644
index 00000000..df459d72
--- /dev/null
+++ b/recipes-core/libxcam/libxcam_1.5.0.bb
@@ -0,0 +1,39 @@
1SUMMARY = "libXCam is a project for extended camera(not limited in camera) \
2features and focus on image quality improvement and video analysis"
3LICENSE = "Apache-2.0"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=8c911f084a3e5f46b21582a6cc9973e6"
5SECTION = "lib"
6
7inherit autotools pkgconfig
8
9S = "${WORKDIR}/git"
10SRCREV = "231a1d5243cd45c7a6b511b667f1ec52178fdda8"
11SRC_URI = "git://github.com/intel/libxcam.git;branch=1.5.0;protocol=https \
12 file://0001-fake_v4l2_device.h-fix-narrowing-warning.patch \
13"
14
15COMPATIBLE_HOST:libc-musl = "null"
16
17PACKAGECONFIG ??= " gst \
18 ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "gles", "", d)} \
19 ${@bb.utils.contains("DISTRO_FEATURES", "vulkan", "vulkan", "", d)} \
20 "
21
22PACKAGECONFIG[gst] = "--enable-gst, --disable-gst, gstreamer1.0 gstreamer1.0-plugins-base"
23PACKAGECONFIG[aiq] = "--enable-aiq, --disable-aiq,"
24PACKAGECONFIG[libcl] = "--enable-libcl, --disable-libcl,"
25PACKAGECONFIG[opencv] = "--enable-opencv, --disable-opencv, opencv"
26PACKAGECONFIG[render] = "--enable-render, --disable-render,"
27PACKAGECONFIG[gles] = "--enable-gles, --disable-gles, virtual/mesa"
28PACKAGECONFIG[vulkan] = "--enable-vulkan, --disable-vulkan, vulkan-loader virtual/mesa"
29PACKAGECONFIG[dnn] = "--enable-dnn, --disable-dnn,"
30
31do_install:append () {
32 install -d ${D}${bindir}/libxcam
33 cp -r ${B}/tests/.libs/* ${D}${bindir}/libxcam/
34}
35
36FILES:${PN} += "${libdir}/gstreamer-*/*.so"
37FILES:${PN}-test = "${bindir}/libxcam/*"
38PACKAGES =+ "${PN}-test"
39RDEPENDS:${PN}-test =+ "bash"
diff --git a/recipes-core/meta/icx-environment.inc b/recipes-core/meta/icx-environment.inc
new file mode 100644
index 00000000..65322a91
--- /dev/null
+++ b/recipes-core/meta/icx-environment.inc
@@ -0,0 +1,15 @@
1export ICX_LDFLAGS_OPTION = " -Wl,-dynamic-linker,/lib/ld-linux-x86-64.so.2"
2export ICXSDK_PREFIX_OPTION = "-B ${TARGET_PREFIX}"
3export ICXQSDK_PREFIX_OPTION = "-qgnu-prefix=${TARGET_PREFIX}"
4
5create_sdk_files:append() {
6 script=${SDK_OUTPUT}/${SDKPATH}/environment-setup-${REAL_MULTIMACH_TARGET_SYS}
7 if ${@bb.utils.contains('ICXSDK', '1', 'true', 'false', d)}; then
8 echo 'export ICX="icx ${ICXSDK_PREFIX_OPTION} --target=${TARGET_SYS} ${TARGET_CC_ARCH} --sysroot=$SDKTARGETSYSROOT ${ICX_LDFLAGS_OPTION}"' >> $script
9 echo 'export ICXCXX="icpx ${ICXSDK_PREFIX_OPTION} --target=${TARGET_SYS} ${TARGET_CC_ARCH} --sysroot=$SDKTARGETSYSROOT ${ICX_LDFLAGS_OPTION}"' >> $script
10 echo 'export ICXCPP="icx ${ICXSDK_PREFIX_OPTION} -E --target=${TARGET_SYS} ${TARGET_CC_ARCH} --sysroot=$SDKTARGETSYSROOT ${ICX_LDFLAGS_OPTION}"' >> $script
11 echo 'export ICXLD="xild --sysroot=$SDKTARGETSYSROOT "' >> $script
12 echo 'export ICXCCLD="icx ${ICXSDK_PREFIX_OPTION} --sysroot=$SDKTARGETSYSROOT"' >> $script
13 echo 'export ICXAR="xiar ${ICXQSDK_PREFIX_OPTION}"' >> $script
14 fi
15}
diff --git a/recipes-core/meta/meta-environment-extsdk.bbappend b/recipes-core/meta/meta-environment-extsdk.bbappend
new file mode 100644
index 00000000..2cff6fc4
--- /dev/null
+++ b/recipes-core/meta/meta-environment-extsdk.bbappend
@@ -0,0 +1,3 @@
1FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
2
3require ${@bb.utils.contains('ICXSDK', '1', 'icx-environment.inc', '', d)}
diff --git a/recipes-core/meta/meta-environment.bbappend b/recipes-core/meta/meta-environment.bbappend
new file mode 100644
index 00000000..2cff6fc4
--- /dev/null
+++ b/recipes-core/meta/meta-environment.bbappend
@@ -0,0 +1,3 @@
1FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
2
3require ${@bb.utils.contains('ICXSDK', '1', 'icx-environment.inc', '', d)}
diff --git a/recipes-core/microcode/intel-microcode_20190618.bb b/recipes-core/microcode/intel-microcode_20250512.bb
index 2edf947e..de011fda 100644
--- a/recipes-core/microcode/intel-microcode_20190618.bb
+++ b/recipes-core/microcode/intel-microcode_20250512.bb
@@ -11,12 +11,12 @@ DESCRIPTION = "The microcode data file contains the latest microcode\
11 if the file is placed in the /etc/firmware directory of the Linux system." 11 if the file is placed in the /etc/firmware directory of the Linux system."
12 12
13LICENSE = "Intel-Microcode-License" 13LICENSE = "Intel-Microcode-License"
14LIC_FILES_CHKSUM = "file://license;md5=99b296eb12723fd1eeb52e24971eed84" 14LIC_FILES_CHKSUM = "file://license;md5=d8405101ec6e90c1d84b082b0c40c721"
15 15
16SRC_URI = "git://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files.git;protocol=https \ 16SRC_URI = "git://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files.git;protocol=https;branch=main \
17 " 17 "
18 18
19SRCREV = "940d904b7272edd689a5f0eef9dee09c13746748" 19SRCREV = "eeb93b7a818bb27cb6b7a2be0454f8a0a75f1bd6"
20 20
21DEPENDS = "iucode-tool-native" 21DEPENDS = "iucode-tool-native"
22S = "${WORKDIR}/git" 22S = "${WORKDIR}/git"
@@ -34,21 +34,16 @@ do_compile() {
34 ${STAGING_DIR_NATIVE}${sbindir_native}/iucode_tool \ 34 ${STAGING_DIR_NATIVE}${sbindir_native}/iucode_tool \
35 ${UCODE_FILTER_PARAMETERS} \ 35 ${UCODE_FILTER_PARAMETERS} \
36 --overwrite \ 36 --overwrite \
37 --write-to=${WORKDIR}/microcode_${PV}.bin \
38 ${S}/intel-ucode/* ${S}/intel-ucode-with-caveats/*
39
40 ${STAGING_DIR_NATIVE}${sbindir_native}/iucode_tool \
41 ${UCODE_FILTER_PARAMETERS} \
42 --overwrite \
43 --write-earlyfw=${WORKDIR}/microcode_${PV}.cpio \ 37 --write-earlyfw=${WORKDIR}/microcode_${PV}.cpio \
44 ${S}/intel-ucode/* ${S}/intel-ucode-with-caveats/* 38 ${S}/intel-ucode/* ${S}/intel-ucode-with-caveats/*
45} 39}
46 40
47do_install() { 41do_install() {
48 install -d ${D}${base_libdir}/firmware/intel-ucode/ 42 install -d ${D}${nonarch_base_libdir}/firmware/intel-ucode/
49 install ${WORKDIR}/microcode_${PV}.bin ${D}${base_libdir}/firmware/intel-ucode/ 43 ${STAGING_DIR_NATIVE}${sbindir_native}/iucode_tool \
50 cd ${D}${base_libdir}/firmware/intel-ucode/ 44 ${UCODE_FILTER_PARAMETERS} \
51 ln -sf microcode_${PV}.bin microcode.bin 45 --write-firmware=${D}${nonarch_base_libdir}/firmware/intel-ucode \
46 ${S}/intel-ucode/* ${S}/intel-ucode-with-caveats/*
52} 47}
53 48
54do_deploy() { 49do_deploy() {
@@ -63,6 +58,6 @@ addtask deploy before do_build after do_compile
63 58
64PACKAGES = "${PN}" 59PACKAGES = "${PN}"
65 60
66FILES_${PN} = "${base_libdir}" 61FILES:${PN} = "${nonarch_base_libdir}"
67 62
68UPSTREAM_CHECK_GITTAGREGEX = "^microcode-(?P<pver>(\d+)[a-z])$" 63UPSTREAM_CHECK_GITTAGREGEX = "^microcode-(?P<pver>(\d+)[a-z]*)$"
diff --git a/recipes-core/microcode/iucode-tool_2.3.1.bb b/recipes-core/microcode/iucode-tool_2.3.1.bb
index df74a8e9..19417b7c 100644
--- a/recipes-core/microcode/iucode-tool_2.3.1.bb
+++ b/recipes-core/microcode/iucode-tool_2.3.1.bb
@@ -12,14 +12,14 @@ DESCRIPTION = "iucode_tool is a program to manipulate Intel i686 and X86-64\
12HOMEPAGE = "https://gitlab.com/iucode-tool/" 12HOMEPAGE = "https://gitlab.com/iucode-tool/"
13BUGTRACKER = "https://bugs.debian.org/cgi-bin/pkgreport.cgi?ordering=normal;archive=0;src=iucode-tool;repeatmerged=0" 13BUGTRACKER = "https://bugs.debian.org/cgi-bin/pkgreport.cgi?ordering=normal;archive=0;src=iucode-tool;repeatmerged=0"
14 14
15LICENSE = "GPLv2+" 15LICENSE = "GPL-2.0-or-later"
16LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ 16LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
17 file://iucode_tool.c;beginline=1;endline=15;md5=71eeab3190360ff0267101b570874756" 17 file://iucode_tool.c;beginline=1;endline=15;md5=71eeab3190360ff0267101b570874756"
18 18
19DEPENDS_append_libc-musl = " argp-standalone" 19DEPENDS:append:libc-musl = " argp-standalone"
20 20
21SRC_URI = "https://gitlab.com/iucode-tool/releases/raw/master/iucode-tool_${PV}.tar.xz" 21SRC_URI = "https://gitlab.com/iucode-tool/releases/raw/master/iucode-tool_${PV}.tar.xz"
22SRC_URI_append_libc-musl = " file://0001-Makefile.am-Add-arg-parse-library-for-MUSL-support.patch" 22SRC_URI:append:libc-musl = " file://0001-Makefile.am-Add-arg-parse-library-for-MUSL-support.patch"
23 23
24SRC_URI[md5sum] = "63b33cc0ea1f8c73b443412abbf39d6f" 24SRC_URI[md5sum] = "63b33cc0ea1f8c73b443412abbf39d6f"
25SRC_URI[sha256sum] = "12b88efa4d0d95af08db05a50b3dcb217c0eb2bfc67b483779e33d498ddb2f95" 25SRC_URI[sha256sum] = "12b88efa4d0d95af08db05a50b3dcb217c0eb2bfc67b483779e33d498ddb2f95"
diff --git a/recipes-core/mkl-dnn/mkl-dnn_git.bb b/recipes-core/mkl-dnn/mkl-dnn_git.bb
deleted file mode 100644
index 14f4cec4..00000000
--- a/recipes-core/mkl-dnn/mkl-dnn_git.bb
+++ /dev/null
@@ -1,25 +0,0 @@
1SUMMARY = "Intel Math Kernel Library for Deep Neural Networks"
2DESCRIPTION = "This software is a user mode library that accelerates\
3deep-learning applications and frameworks on Intel architecture."
4LICENSE = "Apache-2.0 & BSD-3-Clause"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=afa44a3d001cc203032135324f9636b7 \
6 file://tests/gtests/gtest/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a \
7 file://src/cpu/xbyak/COPYRIGHT;md5=03532861dad9003cc2c17f14fc7a4efa"
8SECTION = "lib"
9
10inherit pkgconfig cmake
11
12S = "${WORKDIR}/git"
13SRCREV = "027de7603662a569366e15132ac80298902b96b8"
14SRC_URI = "git://github.com/intel/mkl-dnn.git;branch=rls-v0.19"
15PV = "0.19+git${SRCPV}"
16
17UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$"
18
19COMPATIBLE_HOST = '(x86_64).*-linux'
20COMPATIBLE_HOST_libc-musl = 'null'
21
22EXTRA_OECMAKE += "-DMKLDNN_LIBRARY_TYPE=SHARED"
23EXTRA_OECMAKE += "-DMKLDNN_THREADING=OMP"
24EXTRA_OECMAKE += "-DWITH_EXAMPLE=ON"
25EXTRA_OECMAKE += "-DWITH_TEST=ON"
diff --git a/recipes-core/ovmf/files/0001-ovmf-RefkitTestCA-TEST-UEFI-SecureBoot.patch b/recipes-core/ovmf/files/0001-ovmf-RefkitTestCA-TEST-UEFI-SecureBoot.patch
deleted file mode 100644
index 62db0633..00000000
--- a/recipes-core/ovmf/files/0001-ovmf-RefkitTestCA-TEST-UEFI-SecureBoot.patch
+++ /dev/null
@@ -1,105 +0,0 @@
1From 48e511481d83c1614cd00a5a2edcf6b5d746b9c4 Mon Sep 17 00:00:00 2001
2From: Mikko Ylinen <mikko.ylinen@linux.intel.com>
3Date: Fri, 7 Apr 2017 12:06:14 +0300
4Subject: [PATCH] ovmf: RefkitTestCA: TEST UEFI SecureBoot
5
6This patch adds refkit-db.cer (via xxd -i) in OVMF's db
7signature database when used with EnrollDefaultKeys EFI
8application. It's used for testing purposes only.
9
10Images signed with refkit-db keys are allowed to boot.
11
12Signed-off-by: Mikko Ylinen <mikko.ylinen@linux.intel.com>
13---
14 OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c | 68 +++++++++++++++++++++++++++
15 1 file changed, 68 insertions(+)
16
17diff --git a/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c b/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c
18index 24ab977..a3c12ba 100644
19--- a/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c
20+++ b/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c
21@@ -516,6 +516,73 @@ STATIC CONST UINT8 MicrosoftUefiCA[] = {
22 0x07, 0x92, 0x9b, 0xf5, 0xa6, 0xbc, 0x59, 0x83, 0x58
23 };
24
25+STATIC CONST UINT8 RefkitTestCA[] = {
26+ 0x30, 0x82, 0x02, 0xfb, 0x30, 0x82, 0x01, 0xe3, 0xa0, 0x03, 0x02, 0x01,
27+ 0x02, 0x02, 0x09, 0x00, 0xd4, 0xf6, 0x48, 0xc2, 0x68, 0x19, 0x91, 0xac,
28+ 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
29+ 0x0b, 0x05, 0x00, 0x30, 0x14, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55,
30+ 0x04, 0x03, 0x0c, 0x09, 0x72, 0x65, 0x66, 0x6b, 0x69, 0x74, 0x2d, 0x64,
31+ 0x62, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x34, 0x32, 0x30, 0x31,
32+ 0x32, 0x30, 0x36, 0x33, 0x32, 0x5a, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x34,
33+ 0x32, 0x30, 0x31, 0x32, 0x30, 0x36, 0x33, 0x32, 0x5a, 0x30, 0x14, 0x31,
34+ 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x09, 0x72, 0x65,
35+ 0x66, 0x6b, 0x69, 0x74, 0x2d, 0x64, 0x62, 0x30, 0x82, 0x01, 0x22, 0x30,
36+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01,
37+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02,
38+ 0x82, 0x01, 0x01, 0x00, 0xb4, 0x1c, 0x22, 0xa6, 0x22, 0x01, 0x57, 0xcd,
39+ 0xf1, 0x4f, 0xaf, 0x72, 0xe3, 0xd9, 0x01, 0x80, 0x50, 0x55, 0xef, 0x02,
40+ 0x5e, 0xeb, 0x99, 0x35, 0xcb, 0x7f, 0x2a, 0x79, 0xff, 0xb5, 0x3e, 0xec,
41+ 0x5d, 0x92, 0x06, 0x30, 0x20, 0xe7, 0x95, 0xad, 0xa4, 0x84, 0x2e, 0x3f,
42+ 0xfa, 0xd7, 0x46, 0xdd, 0x49, 0xa8, 0xe8, 0xe3, 0x79, 0x49, 0xf6, 0x8f,
43+ 0x0b, 0x1d, 0xfe, 0x63, 0xa8, 0xd1, 0x63, 0xa3, 0xd6, 0x0d, 0x4e, 0x6c,
44+ 0x66, 0x5c, 0xd6, 0x66, 0x26, 0xd1, 0x26, 0x98, 0xd4, 0x4f, 0x76, 0xc9,
45+ 0x65, 0x48, 0x58, 0x13, 0x08, 0x31, 0xbc, 0xe5, 0x47, 0x25, 0x65, 0x95,
46+ 0x39, 0x89, 0x5f, 0x02, 0xf1, 0xc5, 0x06, 0x17, 0x58, 0xca, 0x09, 0xfd,
47+ 0xf6, 0x1e, 0xc5, 0x97, 0xda, 0xa3, 0x4e, 0x1a, 0x48, 0xbe, 0xcf, 0x96,
48+ 0x27, 0x04, 0x4b, 0xb7, 0x6d, 0x67, 0xb6, 0x50, 0x18, 0x04, 0x73, 0x51,
49+ 0xd2, 0x6a, 0x2d, 0xdf, 0x3b, 0xab, 0xf2, 0x2d, 0x95, 0xd7, 0xa8, 0xb8,
50+ 0xa8, 0x30, 0xa1, 0xab, 0x8b, 0x92, 0x2b, 0x60, 0x3e, 0x3a, 0xe5, 0x86,
51+ 0x40, 0x71, 0xc1, 0x3f, 0x2d, 0x2e, 0x90, 0xe7, 0xd6, 0xec, 0xcc, 0xc2,
52+ 0x0b, 0x79, 0x83, 0x71, 0x6d, 0xf6, 0xa3, 0xa9, 0x4c, 0xcd, 0x46, 0x81,
53+ 0xdc, 0xef, 0xec, 0x51, 0xbe, 0x81, 0x2a, 0xf1, 0x78, 0x73, 0x41, 0xdb,
54+ 0x54, 0xce, 0x7c, 0xce, 0xa2, 0xe3, 0x90, 0x4f, 0x45, 0x1a, 0xf9, 0x3d,
55+ 0x88, 0xfc, 0x0e, 0xed, 0xd3, 0x69, 0x22, 0x4c, 0xfa, 0x0a, 0x69, 0xd1,
56+ 0x48, 0xc0, 0xaa, 0xa9, 0x3a, 0xb3, 0x8f, 0x10, 0x3a, 0x76, 0xa8, 0x0c,
57+ 0x7a, 0x3d, 0xd8, 0x79, 0xce, 0x1c, 0x96, 0x62, 0xf4, 0x06, 0xee, 0x47,
58+ 0xe8, 0xe0, 0x69, 0x91, 0xae, 0xea, 0x34, 0xcf, 0xda, 0xa8, 0xb4, 0x39,
59+ 0x5e, 0xf3, 0x7a, 0xd0, 0x88, 0x48, 0x47, 0x69, 0x02, 0x03, 0x01, 0x00,
60+ 0x01, 0xa3, 0x50, 0x30, 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
61+ 0x04, 0x16, 0x04, 0x14, 0x68, 0x60, 0x11, 0x25, 0x85, 0x14, 0x78, 0x1b,
62+ 0x1a, 0x9f, 0x46, 0x12, 0xe6, 0x21, 0xe4, 0xef, 0xfb, 0x3b, 0xaa, 0xdd,
63+ 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80,
64+ 0x14, 0x68, 0x60, 0x11, 0x25, 0x85, 0x14, 0x78, 0x1b, 0x1a, 0x9f, 0x46,
65+ 0x12, 0xe6, 0x21, 0xe4, 0xef, 0xfb, 0x3b, 0xaa, 0xdd, 0x30, 0x0c, 0x06,
66+ 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30,
67+ 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b,
68+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x8f, 0xd2, 0x84, 0x7c, 0x43,
69+ 0x47, 0xca, 0x6b, 0xfd, 0x87, 0x83, 0xd0, 0xef, 0x75, 0xd3, 0x20, 0x52,
70+ 0x73, 0x18, 0xaa, 0x32, 0x71, 0xfb, 0xa5, 0xf4, 0xc9, 0x11, 0xa3, 0x68,
71+ 0x4d, 0xb7, 0x9d, 0xe6, 0xd9, 0x46, 0x24, 0xdc, 0xc7, 0xc2, 0x3b, 0xf9,
72+ 0xb0, 0x98, 0xfc, 0xee, 0x34, 0x6e, 0x10, 0x9b, 0x3d, 0x44, 0x6e, 0x33,
73+ 0x09, 0x11, 0xb8, 0x29, 0xd6, 0x2d, 0x06, 0xcf, 0x67, 0x8f, 0x96, 0x85,
74+ 0x9d, 0x63, 0x72, 0xbf, 0x64, 0x5f, 0x0d, 0xe3, 0xc9, 0x63, 0x19, 0x71,
75+ 0xd4, 0x7d, 0x4c, 0x9c, 0x77, 0x46, 0xda, 0x20, 0x97, 0x6d, 0xbc, 0xdd,
76+ 0xc2, 0x1f, 0xf3, 0x40, 0x38, 0x1e, 0xe7, 0xcc, 0x55, 0x05, 0x72, 0xba,
77+ 0x24, 0x4f, 0xb3, 0x8a, 0x93, 0x0c, 0x30, 0x60, 0xda, 0x9f, 0x6f, 0x35,
78+ 0xf6, 0xfb, 0xb0, 0x1f, 0xb3, 0x00, 0xdd, 0xc4, 0xa6, 0xbc, 0xe2, 0x37,
79+ 0xc1, 0xa3, 0xef, 0xd9, 0xa1, 0x86, 0xf9, 0xeb, 0xa4, 0xa5, 0x45, 0x38,
80+ 0xff, 0x4e, 0x87, 0x4a, 0x41, 0xcf, 0x6e, 0x69, 0x7e, 0x97, 0xbe, 0x2d,
81+ 0x22, 0xbc, 0x8d, 0xa0, 0x1a, 0x21, 0x8f, 0x4b, 0x72, 0x90, 0x01, 0x5c,
82+ 0xba, 0xa5, 0x9c, 0x2d, 0xd7, 0x25, 0x24, 0xfc, 0xff, 0x5c, 0x58, 0x14,
83+ 0x46, 0x30, 0x09, 0x7c, 0x55, 0x64, 0x83, 0x0b, 0xb9, 0xdf, 0xcf, 0x25,
84+ 0xee, 0xec, 0xf7, 0xcb, 0xdb, 0xd1, 0x5b, 0x93, 0x93, 0xc8, 0x8a, 0x10,
85+ 0x46, 0xb8, 0xb0, 0x35, 0x1c, 0x6c, 0x0d, 0x8f, 0x03, 0x6a, 0x8f, 0x1b,
86+ 0x36, 0x68, 0xf3, 0x53, 0x89, 0x36, 0x5b, 0x21, 0x80, 0xde, 0xe3, 0x92,
87+ 0x52, 0x94, 0x97, 0x9d, 0x49, 0x89, 0x7d, 0x3e, 0xde, 0x29, 0x51, 0xba,
88+ 0x11, 0xf7, 0xba, 0x01, 0xf7, 0xab, 0xea, 0xc1, 0xa7, 0x2e, 0xa3, 0x4d,
89+ 0x65, 0xfd, 0x40, 0x71, 0xf1, 0xe2, 0x3f, 0x6c, 0x28, 0xcb, 0xd3
90+};
91+
92 //
93 // The most important thing about the variable payload is that it is a list of
94 // lists, where the element size of any given *inner* list is constant.
95@@ -908,6 +975,7 @@ ShellAppMain (
96 &gEfiImageSecurityDatabaseGuid,
97 MicrosoftPCA, sizeof MicrosoftPCA, &gEfiCallerIdGuid,
98 MicrosoftUefiCA, sizeof MicrosoftUefiCA, &gEfiCallerIdGuid,
99+ RefkitTestCA, sizeof RefkitTestCA, &gEfiCallerIdGuid,
100 NULL);
101 if (EFI_ERROR (Status)) {
102 return 1;
103--
1042.1.4
105
diff --git a/recipes-core/ovmf/ovmf-shell-image-enrollkeys.bb b/recipes-core/ovmf/ovmf-shell-image-enrollkeys.bb
deleted file mode 100644
index b20f6e58..00000000
--- a/recipes-core/ovmf/ovmf-shell-image-enrollkeys.bb
+++ /dev/null
@@ -1,13 +0,0 @@
1require recipes-core/ovmf/ovmf-shell-image.bb
2
3WKS_SEARCH_PATH_append = ":${COREBASE}/meta/recipes-core/ovmf"
4
5QB_DRIVE_TYPE = "/dev/vd"
6
7do_image_append() {
8 cat > ${IMAGE_ROOTFS}/startup.nsh << EOF
9EnrollDefaultKeys
10reset
11EOF
12
13}
diff --git a/recipes-core/ovmf/ovmf_%.bbappend b/recipes-core/ovmf/ovmf_%.bbappend
deleted file mode 100644
index bbf5fa32..00000000
--- a/recipes-core/ovmf/ovmf_%.bbappend
+++ /dev/null
@@ -1,6 +0,0 @@
1FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/files:"
2
3SRC_URI_append_intel-x86-common = " \
4 file://0001-ovmf-RefkitTestCA-TEST-UEFI-SecureBoot.patch \
5"
6PACKAGECONFIG_append_intel-x86-common = " secureboot"
diff --git a/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend b/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
new file mode 100644
index 00000000..b5a5fdd4
--- /dev/null
+++ b/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend
@@ -0,0 +1 @@
RDEPENDS:${PN} += "${@bb.utils.contains('ICXSDK', '1', ' intel-oneapi-dpcpp-cpp intel-oneapi-dpcpp-cpp-dev intel-oneapi-dpcpp-cpp-runtime intel-oneapi-dpcpp-cpp-runtime-dev ', '', d)}"
diff --git a/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend b/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend
new file mode 100644
index 00000000..608ea3d3
--- /dev/null
+++ b/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend
@@ -0,0 +1 @@
RRECOMMENDS:${PN}:append:intel-x86-common = "${@bb.utils.contains('ICXSDK', '1', ' intel-oneapi-dpcpp-cpp intel-oneapi-dpcpp-cpp-dev intel-oneapi-dpcpp-cpp-runtime intel-oneapi-dpcpp-cpp-runtime-dev ', '', d)}"
diff --git a/recipes-core/zlib/zlib-intel_1.2.11.1_jtkv6.3.bb b/recipes-core/zlib/zlib-intel_1.2.11.1_jtkv6.3.bb
deleted file mode 100644
index 02b75156..00000000
--- a/recipes-core/zlib/zlib-intel_1.2.11.1_jtkv6.3.bb
+++ /dev/null
@@ -1,16 +0,0 @@
1require recipes-core/zlib/zlib_1.2.11.bb
2
3FILESEXTRAPATHS_append = ":${COREBASE}/meta/recipes-core/zlib/zlib"
4
5SUMMARY = "Zlib Compression Library (Intel-tuned)"
6
7PROVIDES = "zlib"
8
9SRC_URI_remove = "${SOURCEFORGE_MIRROR}/libpng/${BPN}/${PV}/${BPN}-${PV}.tar.xz"
10SRC_URI_prepend = "git://github.com/jtkukunas/zlib.git;protocol=git "
11
12SRCREV = "a43a247bfa16ec5368747b5b64f11ea5ca033010"
13S = "${WORKDIR}/git"
14
15RPROVIDES_${PN} += "zlib"
16RPROVIDES_${PN}-ptest += "zlib-ptest"
diff --git a/recipes-devtools/opencl/opencl-clang-native_8.0.0.bb b/recipes-devtools/opencl/opencl-clang-native_8.0.0.bb
deleted file mode 100644
index cfba8d97..00000000
--- a/recipes-devtools/opencl/opencl-clang-native_8.0.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
1SUMMARY = "Common clang is a thin wrapper library around clang"
2DESCRIPTION = "Common clang has OpenCL-oriented API and is capable \
3 to compile OpenCL C kernels to SPIR-V modules."
4
5LICENSE = "NCSA"
6LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c"
7
8SRC_URI = "git://github.com/intel/opencl-clang.git;branch=ocl-open-80;protocol=https"
9
10SRCREV = "daf5e4dd718477ae8cf89a283c653939d9182f15"
11
12S = "${WORKDIR}/git"
13
14inherit native
15
16do_configure[noexec] = "1"
17
18do_compile() {
19 ${CC} linux_linker/linux_resource_linker.cpp -o linux_resource_linker
20}
21
22do_install() {
23 install -d ${D}${bindir}
24 install -m 0755 linux_resource_linker ${D}${bindir}/
25}
diff --git a/recipes-devtools/slimboot/slimboot-tools_git.bb b/recipes-devtools/slimboot/slimboot-tools_git.bb
new file mode 100644
index 00000000..72b3ffe8
--- /dev/null
+++ b/recipes-devtools/slimboot/slimboot-tools_git.bb
@@ -0,0 +1,22 @@
1SUMMARY = "Slim Bootloader Host Tools"
2DESCRIPTION = "Native host tools to generate the container images in a \
3binary file format understood by Slim Bootloader to load and initialize\
4Operating Systems or Hypervisors."
5HOMEPAGE = "https://slimbootloader.github.io/tools/index.html"
6
7SRC_URI = "git://github.com/slimbootloader/slimbootloader;protocol=https;branch=master"
8SRCREV = "a63818df94d3c9d8c04cdca5869ba7cde9fb5a38"
9PV = "0.0.0+git${SRCPV}"
10LICENSE = "BSD-2-Clause-Patent"
11LIC_FILES_CHKSUM = "file://LICENSE;md5=ef7fba7be2819ac13aaf5d0f842ce5d9"
12S = "${WORKDIR}/git"
13
14inherit python3native
15BBCLASSEXTEND = "native"
16
17do_configure[noexec] = "1"
18do_compile[noexec] = "1"
19do_install() {
20 install -m 755 -d ${D}${libexecdir}/slimboot/Tools
21 install -m 755 ${S}/BootloaderCorePkg/Tools/*.py ${D}${libexecdir}/slimboot/Tools
22}
diff --git a/recipes-graphics/gmmlib/gmmlib_19.1.2.bb b/recipes-graphics/gmmlib/gmmlib_22.7.1.bb
index f47174da..590141f1 100644
--- a/recipes-graphics/gmmlib/gmmlib_19.1.2.bb
+++ b/recipes-graphics/gmmlib/gmmlib_22.7.1.bb
@@ -4,18 +4,22 @@ device specific and buffer management for the Intel(R) Graphics \
4Compute Runtime for OpenCL(TM) and the Intel(R) Media Driver for VAAPI." 4Compute Runtime for OpenCL(TM) and the Intel(R) Media Driver for VAAPI."
5 5
6LICENSE = "MIT" 6LICENSE = "MIT"
7LIC_FILES_CHKSUM = "file://LICENSE.md;md5=d9a6e772cd4c362ee4c8ef87c5aad843" 7LIC_FILES_CHKSUM = "file://LICENSE.md;md5=465fe90caea3edd6a2cecb3f0c28a654"
8 8
9SRC_URI = " \ 9SRC_URI = " \
10 git://github.com/intel/gmmlib.git;protocol=https \ 10 git://github.com/intel/gmmlib.git;protocol=https;branch=master \
11 " 11 "
12 12
13SRCREV = "50707fb182bc8fc8f9711d2c0da96f6ded1b8ef4" 13SRCREV = "aa4e5d6c8f1d798b78ffd7ea85296fdd3a3946b2"
14 14
15S = "${WORKDIR}/git" 15S = "${WORKDIR}/git"
16 16
17COMPATIBLE_HOST:x86-x32 = "null"
18
17UPSTREAM_CHECK_GITTAGREGEX = "^intel-gmmlib-(?P<pver>(\d+(\.\d+)+))$" 19UPSTREAM_CHECK_GITTAGREGEX = "^intel-gmmlib-(?P<pver>(\d+(\.\d+)+))$"
18 20
19inherit pkgconfig cmake 21inherit pkgconfig cmake
20 22
21EXTRA_OECMAKE += "-DRUN_TEST_SUITE=OFF" 23EXTRA_OECMAKE += "-DRUN_TEST_SUITE=OFF"
24
25BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-graphics/hdcp/hdcp/0001-main-fix-hdcpd-service-failure.patch b/recipes-graphics/hdcp/hdcp/0001-main-fix-hdcpd-service-failure.patch
new file mode 100644
index 00000000..6d32da43
--- /dev/null
+++ b/recipes-graphics/hdcp/hdcp/0001-main-fix-hdcpd-service-failure.patch
@@ -0,0 +1,42 @@
1From 5cbcecff0bb7fa1c617d3082e7ad94c22e5f4eb1 Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Wed, 3 Jul 2019 17:13:15 +0800
4Subject: [PATCH] main: fix hdcpd service failure
5
6Child process not able to finish before parent process
7exits, which causing hdcpd service failure.
8
9Added wait function to block parent process
10until child process exits.
11
12Upstream-Status: Submitted [https://github.com/intel/hdcp/pull/17]
13
14Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
15---
16 daemon/main.cpp | 3 +++
17 1 file changed, 3 insertions(+)
18
19diff --git a/daemon/main.cpp b/daemon/main.cpp
20index 9a028d7..ef1e047 100644
21--- a/daemon/main.cpp
22+++ b/daemon/main.cpp
23@@ -36,6 +36,7 @@
24 #include <sys/ioctl.h>
25 #include <fcntl.h>
26 #include <iostream>
27+#include <sys/wait.h>
28
29 #include "hdcpdef.h"
30 #include "srm.h"
31@@ -93,6 +94,8 @@ int32_t daemon_init(void)
32 }
33 else if (pid != 0)
34 {
35+ int status;
36+ wait(&status);
37 exit(SUCCESS); // parent exit
38 }
39
40--
412.17.1
42
diff --git a/recipes-graphics/hdcp/hdcp_21.2.0.bb b/recipes-graphics/hdcp/hdcp_21.2.0.bb
new file mode 100644
index 00000000..8529b5ab
--- /dev/null
+++ b/recipes-graphics/hdcp/hdcp_21.2.0.bb
@@ -0,0 +1,26 @@
1SUMMARY = "Intel(R) unified HDCP SDK"
2DESCRIPTION = "This is a user space implementation to prevent copying of \
3digital audio & video content across digital display interfaces. It provides \
4Linux user space implementation to enable the HDCP1.4 and HDCP2.2 protection \
5for external digital display interface"
6LICENSE = "BSD-3-Clause"
7LIC_FILES_CHKSUM = "file://LICENSE.md;md5=c50969be4feb8b99c6baa3795ede4dce"
8SECTION = "lib"
9
10inherit pkgconfig cmake useradd systemd features_check
11
12SRC_URI = "git://github.com/intel/hdcp.git;branch=master;protocol=https \
13 file://0001-main-fix-hdcpd-service-failure.patch \
14"
15SRCREV = "cacc352159c5bdaf1c21846cecdd1eb7b031e1d3"
16S = "${WORKDIR}/git"
17
18REQUIRED_DISTRO_FEATURES = "systemd"
19
20DEPENDS = "libdrm virtual/mesa systemd"
21
22USERADD_PACKAGES = "${PN}"
23USERADD_PARAM:${PN} = "--system --no-create-home --shell /bin/false --gid nogroup media"
24
25SYSTEMD_SERVICE:${PN} = "hdcpd.service"
26SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/recipes-graphics/igt-gpu-tools/files/0001-lib-fb-Fix-rgb24-to-nv12-conversion.patch b/recipes-graphics/igt-gpu-tools/files/0001-lib-fb-Fix-rgb24-to-nv12-conversion.patch
deleted file mode 100644
index 46b2eef5..00000000
--- a/recipes-graphics/igt-gpu-tools/files/0001-lib-fb-Fix-rgb24-to-nv12-conversion.patch
+++ /dev/null
@@ -1,40 +0,0 @@
1From f01796214bbde31e37b0593e547ad9436fdd02ba Mon Sep 17 00:00:00 2001
2From: Petri Latvala <petri.latvala@intel.com>
3Date: Wed, 9 Jan 2019 14:28:29 +0200
4Subject: [PATCH] lib/fb: Fix rgb24 to nv12 conversion
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9A typo fix in 1x2 pixel block conversion code, revealed by GCC 9
10
11Fixes: 1c7ef3890045 ("lib: Use igt_matrix for ycbcr<->rgb conversion")
12Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109257
13Reported-by: Martin Liska <mliska@suse.cz>
14Signed-off-by: Petri Latvala <petri.latvala@intel.com>
15Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
16Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
17Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
18
19Upstream-Status: Backport
20Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
21---
22 lib/igt_fb.c | 2 +-
23 1 file changed, 1 insertion(+), 1 deletion(-)
24
25diff --git a/lib/igt_fb.c b/lib/igt_fb.c
26index 8244e517..5cd1829a 100644
27--- a/lib/igt_fb.c
28+++ b/lib/igt_fb.c
29@@ -1779,7 +1779,7 @@ static void convert_rgb24_to_nv12(struct fb_convert *cvt)
30 struct igt_vec4 yuv[2];
31
32 read_rgb(&rgb[0], &rgb24[j * 8 + 0]);
33- read_rgb(&rgb[2], &rgb24[j * 8 + 0 + rgb24_stride]);
34+ read_rgb(&rgb[1], &rgb24[j * 8 + 0 + rgb24_stride]);
35
36 yuv[0] = igt_matrix_transform(&m, &rgb[0]);
37 yuv[1] = igt_matrix_transform(&m, &rgb[1]);
38--
392.20.1
40
diff --git a/recipes-graphics/igt-gpu-tools/igt-gpu-tools_1.23.bb b/recipes-graphics/igt-gpu-tools/igt-gpu-tools_1.23.bb
deleted file mode 100644
index 33c04e77..00000000
--- a/recipes-graphics/igt-gpu-tools/igt-gpu-tools_1.23.bb
+++ /dev/null
@@ -1,44 +0,0 @@
1require ${COREBASE}/meta/recipes-graphics/xorg-app/xorg-app-common.inc
2
3SUMMARY = "Intel GPU tools"
4DESCRIPTION = "Variety of small tools for testing intel graphics."
5
6LIC_FILES_CHKSUM = "file://COPYING;md5=e4b3dd344780e0400593b21b115a6947"
7
8LICENSE_append = " & ISC"
9
10inherit autotools gtk-doc
11
12SRC_URI = "${XORG_MIRROR}/individual/app/${BP}.tar.xz \
13 file://0001-lib-fb-Fix-rgb24-to-nv12-conversion.patch \
14 "
15
16DEPENDS += "libdrm libpciaccess cairo udev glib-2.0 libxv libx11 libxext libxrandr procps libunwind kmod openssl"
17RDEPENDS_${PN} += "bash"
18RDEPENDS_${PN}-tests += "bash"
19
20PACKAGE_BEFORE_PN = "${PN}-benchmarks ${PN}-tests"
21
22SRC_URI[md5sum] = "04c1f10d6fd85e079271540b0ea786e9"
23SRC_URI[sha256sum] = "4d4b086c513bace5c23d0889de3f42ac3ebd3d968c64dedae6e28e006a499ad0"
24
25EXTRA_OECONF = "--disable-nouveau --disable-shader-debugger"
26COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux"
27COMPATIBLE_HOST_libc-musl_class-target = "null"
28
29PACKAGECONFIG ??= ""
30PACKAGECONFIG[audio] = "--enable-audio,--disable-audio,alsa-lib gsl"
31
32gputools_sysroot_preprocess() {
33 rm -f ${SYSROOT_DESTDIR}${libdir}/pkgconfig/intel-gen4asm.pc
34}
35SYSROOT_PREPROCESS_FUNCS += "gputools_sysroot_preprocess"
36
37FILES_${PN} += "${libdir}/intel_aubdump.so"
38FILES_${PN}-benchmarks += "${libexecdir}/${BPN}/benchmarks"
39FILES_${PN}-tests += "\
40 ${libexecdir}/${BPN}/*\
41 ${datadir}/${BPN}/1080p-right.png\
42 ${datadir}/${BPN}/1080p-left.png\
43 ${datadir}/${BPN}/pass.png\
44 ${datadir}/${BPN}/test-list.txt"
diff --git a/recipes-graphics/libva/libva-intel-utils_2.22.0.bb b/recipes-graphics/libva/libva-intel-utils_2.22.0.bb
new file mode 100644
index 00000000..4ad97eed
--- /dev/null
+++ b/recipes-graphics/libva/libva-intel-utils_2.22.0.bb
@@ -0,0 +1,35 @@
1SUMMARY = "libva-utils is a collection of utilities from libva project"
2
3DESCRIPTION = "libva-utils is a collection of utilities \
4and examples to exercise VA-API in accordance with the libva \
5project.VA-API is an open-source library and API specification, \
6which provides access to graphics hardware acceleration capabilities \
7for video processing. It consists of a main library and driver-specific \
8acceleration backends for each supported hardware vendor"
9
10HOMEPAGE = "https://01.org/linuxmedia/vaapi"
11BUGTRACKER = "https://github.com/intel/libva-utils/issues"
12
13SECTION = "x11"
14LICENSE = "MIT"
15LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e"
16
17SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.22-branch;protocol=https"
18SRCREV = "1a13ae13382b7b548f3a7e8035e1d7df66662c0a"
19S = "${WORKDIR}/git"
20
21UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
22
23DEPENDS = "libva"
24
25inherit meson pkgconfig features_check
26
27# depends on libva which requires opengl
28REQUIRED_DISTRO_FEATURES = "opengl"
29
30PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
31PACKAGECONFIG[x11] = "-Dx11=true, -Dx11=false,virtual/libx11 libxext libxfixes"
32PACKAGECONFIG[wayland] = "-Dwayland=true, -Dwayland=false,wayland-native wayland"
33
34PROVIDES = "libva-utils"
35RPROVIDES:${PN} += "libva-utils"
diff --git a/recipes-graphics/libva/libva-intel_2.22.0.bb b/recipes-graphics/libva/libva-intel_2.22.0.bb
new file mode 100644
index 00000000..2405f440
--- /dev/null
+++ b/recipes-graphics/libva/libva-intel_2.22.0.bb
@@ -0,0 +1,56 @@
1SUMMARY = "Video Acceleration (VA) API for Linux"
2DESCRIPTION = "Video Acceleration API (VA API) is a library (libVA) \
3and API specification which enables and provides access to graphics \
4hardware (GPU) acceleration for video processing on Linux and UNIX \
5based operating systems. Accelerated processing includes video \
6decoding, video encoding, subpicture blending and rendering. The \
7specification was originally designed by Intel for its GMA (Graphics \
8Media Accelerator) series of GPU hardware, the API is however not \
9limited to GPUs or Intel specific hardware, as other hardware and \
10manufacturers can also freely use this API for hardware accelerated \
11video decoding."
12
13HOMEPAGE = "https://01.org/linuxmedia/vaapi"
14BUGTRACKER = "https://github.com/intel/libva/issues"
15
16SECTION = "x11"
17LICENSE = "MIT"
18LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
19
20SRC_URI = "git://github.com/intel/libva.git;protocol=https;branch=v2.22-branch \
21 "
22
23SRCREV = "217da1c28336d6a7e9c0c4cb8f1c303968a675f1"
24
25S = "${WORKDIR}/git"
26
27UPSTREAM_CHECK_URI = "https://github.com/intel/libva/releases"
28
29DEPENDS = "libdrm"
30
31inherit meson pkgconfig
32
33PACKAGECONFIG ??= " \
34 ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'glx', '', d)} \
35 ${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)} \
36"
37
38PACKAGECONFIG[x11] = "-Dwith_x11=yes,-Dwith_x11=no,virtual/libx11 libxext libxfixes"
39PACKAGECONFIG[glx] = "-Dwith_glx=yes,-Dwith_glx=no,virtual/mesa"
40
41PACKAGECONFIG[wayland] = "-Dwith_wayland=yes,-Dwith_wayland=no,wayland-native wayland"
42
43PACKAGES =+ "${PN}-x11 ${PN}-glx ${PN}-wayland"
44
45RDEPENDS:${PN}-x11 =+ "${PN}"
46RDEPENDS:${PN}-glx =+ "${PN}-x11"
47
48FILES:${PN}-x11 =+ "${libdir}/libva-x11*${SOLIBS}"
49FILES:${PN}-glx =+ "${libdir}/libva-glx*${SOLIBS}"
50FILES:${PN}-wayland =+ "${libdir}/libva-wayland*${SOLIBS}"
51
52PROVIDES += "libva"
53RPROVIDES:${PN} += "libva"
54RPROVIDES:${PN}-x11 += "libva-x11"
55RPROVIDES:${PN}-glx += "libva-glx"
56RPROVIDES:${PN}-wayland += "libva-wayland"
diff --git a/recipes-graphics/metrics-discovery/metrics-discovery_1.5.102.bb b/recipes-graphics/metrics-discovery/metrics-discovery_1.13.178.bb
index 14dda35b..dbc17c1d 100644
--- a/recipes-graphics/metrics-discovery/metrics-discovery_1.5.102.bb
+++ b/recipes-graphics/metrics-discovery/metrics-discovery_1.13.178.bb
@@ -2,14 +2,15 @@ SUMMARY = "Intel Metrics Discovery Application Programming Interface"
2DESCRIPTION = "This software is a user mode library that provides access to \ 2DESCRIPTION = "This software is a user mode library that provides access to \
3GPU performance data." 3GPU performance data."
4LICENSE = "MIT" 4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://LICENSE.md;md5=5ac9e51fb25f5d5b10a1bea412a4b74c" 5LIC_FILES_CHKSUM = "file://LICENSE.md;md5=195912d57508b573e068231099eba64c"
6SECTION = "lib" 6SECTION = "lib"
7 7
8inherit pkgconfig cmake 8inherit pkgconfig cmake
9 9
10S = "${WORKDIR}/git" 10S = "${WORKDIR}/git"
11SRCREV = "ac8d17cfd7f33aefea353dfc4eda65f6beb0a9ae" 11SRCREV = "65ffef89cf79d704f618768bcd3d95f4dd6d875b"
12SRC_URI = "git://github.com/intel/metrics-discovery.git" 12SRC_URI = "git://github.com/intel/metrics-discovery.git;branch=master;protocol=https \
13 "
13 14
14EXTRA_OECMAKE += "-DMD_PLATFORM=linux" 15EXTRA_OECMAKE += "-DMD_PLATFORM=linux"
15EXTRA_OECMAKE += "-DMD_LIBDRM_SRC=${STAGING_INCDIR}" 16EXTRA_OECMAKE += "-DMD_LIBDRM_SRC=${STAGING_INCDIR}"
diff --git a/recipes-graphics/xorg-driver/xf86-video-ast_1.1.5.bb b/recipes-graphics/xorg-driver/xf86-video-ast_1.1.6.bb
index 090efd62..d7e4eab4 100644
--- a/recipes-graphics/xorg-driver/xf86-video-ast_1.1.5.bb
+++ b/recipes-graphics/xorg-driver/xf86-video-ast_1.1.6.bb
@@ -7,6 +7,6 @@ DESCRIPTION = "ast is an Xorg driver for ASpeed Technologies video cards"
7LIC_FILES_CHKSUM = "file://COPYING;md5=0b8c242f0218eea5caa949b7910a774b" 7LIC_FILES_CHKSUM = "file://COPYING;md5=0b8c242f0218eea5caa949b7910a774b"
8 8
9DEPENDS += "libpciaccess" 9DEPENDS += "libpciaccess"
10XORG_DRIVER_COMPRESSOR = ".tar.gz"
10 11
11SRC_URI[md5sum] = "4f85febe48d51e53624550a96fc9e9ee" 12SRC_URI[sha256sum] = "eeff52178ce2916a0e07b531bb23c8b105826b6e6e6c5f7c90e33f757827a7c7"
12SRC_URI[sha256sum] = "1edbbc55d47d3fd71dec99b15c2483e22738c642623a0fb86ef4a81a9067a2de"
diff --git a/recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-skip-host-depmod.patch b/recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-skip-host-depmod.patch
deleted file mode 100644
index 0041af57..00000000
--- a/recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-skip-host-depmod.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From 5f87ef7ed60bc9762467184ed0a6d000b80713d9 Mon Sep 17 00:00:00 2001
2From: sweeaun <swee.aun.khor@intel.com>
3Date: Sun, 8 Apr 2018 17:21:52 +0800
4Subject: [PATCH] ixgbe: skip host depmod
5
6Upstream-Status: Inappropriate [Cross-Compile]
7
8Depmod during do_install is irrelevant when cross-compiling.
9Remove the depmod steps during do_install.
10
11Signed-off-by: sweeaun <swee.aun.khor@intel.com>
12---
13 Makefile | 2 --
14 1 file changed, 2 deletions(-)
15
16diff --git a/Makefile b/Makefile
17index 545489a..07e422f 100644
18--- a/Makefile
19+++ b/Makefile
20@@ -141,8 +141,6 @@ install: default manfile
21 @install -D -m 644 ${DRIVER}.${MANSECTION}.gz ${INSTALL_MOD_PATH}${MANDIR}/man${MANSECTION}/${DRIVER}.${MANSECTION}.gz
22 @echo "Installing modules..."
23 @+$(call devkernelbuild,modules_install)
24- @echo "Running depmod..."
25- @$(call cmd_depmod)
26
27 uninstall:
28 rm -f ${INSTALL_MOD_PATH}/lib/modules/${KVER}/${INSTALL_MOD_DIR}/${DRIVER}.ko;
29--
302.7.4
31
diff --git a/recipes-kernel/intel-ethernet/ixgbe_5.5.5.bb b/recipes-kernel/intel-ethernet/ixgbe_5.20.10.bb
index a788b61c..696c5c26 100644
--- a/recipes-kernel/intel-ethernet/ixgbe_5.5.5.bb
+++ b/recipes-kernel/intel-ethernet/ixgbe_5.20.10.bb
@@ -1,33 +1,32 @@
1SUMMARY="ixgbe kernel driver for Intel Magnolia Park 10GbE" 1SUMMARY = "ixgbe kernel driver for Intel Magnolia Park 10GbE"
2DESCRIPTION="The ixgbe driver supports 82598- and 82599-based \ 2DESCRIPTION = "The ixgbe driver supports 82598- and 82599-based \
3PCI Express* 10 Gigabit Network Connections." 3PCI Express* 10 Gigabit Network Connections."
4 4
5HOMEPAGE = "https://sourceforge.net/projects/e1000/" 5HOMEPAGE = "https://sourceforge.net/projects/e1000/"
6SECTION = "kernel/network" 6SECTION = "kernel/network"
7LICENSE = "GPLv2" 7LICENSE = "GPL-2.0-only"
8LIC_FILES_CHKSUM = "file://${WORKDIR}/${BP}/COPYING;md5=a216b4192dc6b777b6f0db560e9a8417" 8LIC_FILES_CHKSUM = "file://${WORKDIR}/${BP}/COPYING;md5=a216b4192dc6b777b6f0db560e9a8417"
9 9
10SRC_URI = "https://sourceforge.net/projects/e1000/files/ixgbe%20stable/${PV}/${BP}.tar.gz \ 10SRC_URI = "https://sourceforge.net/projects/e1000/files/ixgbe%20stable/${PV}/${BP}.tar.gz \
11 file://0001-ixgbe-skip-host-depmod.patch \
12 " 11 "
13 12
14SRC_URI[md5sum] = "f0c72a5c5d8ae48742b1108c1f9d94cd" 13SRC_URI[sha256sum] = "da7e7b62ffb85a820d7541623fbef5c4abef8d1df7ac0af3f1acc3b3d76c9822"
15SRC_URI[sha256sum] = "cb15614cd06df7bad313ab54b466297fac6346f1999a5a87bb1cc2f0b66e7fb1"
16 14
17UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/e1000/files/ixgbe%20stable/" 15UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/e1000/files/ixgbe%20stable/"
18UPSTREAM_CHECK_REGEX = "ixgbe%20stable/(?P<pver>\d+(\.\d+)+)/" 16UPSTREAM_CHECK_REGEX = "ixgbe%20stable/(?P<pver>\d+(\.\d+)+)/"
19 17
18CVE_PRODUCT = "linux:linux_kernel_ixgbe"
19
20S = "${WORKDIR}/${BP}/src" 20S = "${WORKDIR}/${BP}/src"
21MODULES_INSTALL_TARGET = "install"
22 21
23EXTRA_OEMAKE='KSRC="${STAGING_KERNEL_BUILDDIR}" KVER="${KERNEL_VERSION}" INSTALL_MOD_PATH="${D}"' 22EXTRA_OEMAKE = ' KSRC="${STAGING_KERNEL_DIR}" KOBJ="${STAGING_KERNEL_BUILDDIR}" KVER="${KERNEL_VERSION}" INSTALL_MOD_PATH="${D}"'
24 23
25KERNEL_MODULE_AUTOLOAD_append_intel-core2-32 = " ixgbe" 24KERNEL_MODULE_AUTOLOAD:append:intel-core2-32 = " ixgbe"
26KERNEL_MODULE_AUTOLOAD_append_intel-corei7-64 = " ixgbe" 25KERNEL_MODULE_AUTOLOAD:append:intel-corei7-64 = " ixgbe"
27 26
28inherit module 27inherit module
29 28
30do_install_append () { 29do_install:append () {
31 # Install scripts/set_irq_affinity 30 # Install scripts/set_irq_affinity
32 install -d ${D}${sysconfdir}/network 31 install -d ${D}${sysconfdir}/network
33 install -m 0755 ${S}/../scripts/set_irq_affinity ${D}${sysconfdir}/network 32 install -m 0755 ${S}/../scripts/set_irq_affinity ${D}${sysconfdir}/network
@@ -37,4 +36,8 @@ do_install_append () {
37 36
38PACKAGES += "${PN}-script" 37PACKAGES += "${PN}-script"
39 38
40FILES_${PN}-script += "${sysconfdir}/network/set_irq_affinity" 39FILES:${PN}-script += "${sysconfdir}/network/set_irq_affinity"
40
41EXCLUDE_FROM_WORLD = "1"
42
43CVE_STATUS[CVE-2015-1142857] = "fixed-version: Fixed from version 4.4-rc1"
diff --git a/recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-skip-host-depmod.patch b/recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-skip-host-depmod.patch
deleted file mode 100644
index 656a897d..00000000
--- a/recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-skip-host-depmod.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From 9677d09f5c3984997ac8e7d90b5d4b11fb9ce277 Mon Sep 17 00:00:00 2001
2From: sweeaun <swee.aun.khor@intel.com>
3Date: Sat, 7 Oct 2017 20:56:35 -0700
4Subject: [PATCH] ixgbevf: skip host depmod
5
6Upstream-Status: Inappropriate [Cross-Compile]
7
8Depmod during do_install is irrelevant when cross-compiling.
9Remove the depmod steps during do_install.
10
11Signed-off-by: sweeaun <swee.aun.khor@intel.com>
12---
13 Makefile | 2 --
14 1 file changed, 2 deletions(-)
15
16diff --git a/Makefile b/Makefile
17index 91df705..1dcf350 100644
18--- a/Makefile
19+++ b/Makefile
20@@ -104,8 +104,6 @@ modules_install: default manfile
21 @install -D -m 644 ${DRIVER}.${MANSECTION}.gz ${INSTALL_MOD_PATH}${MANDIR}/man${MANSECTION}/${DRIVER}.${MANSECTION}.gz
22 @echo "Installing modules..."
23 @+$(call kernelbuild,modules_install)
24- @echo "Running depmod..."
25- @$(call cmd_depmod)
26
27 uninstall:
28 rm -f ${INSTALL_MOD_PATH}/lib/modules/${KVER}/${INSTALL_MOD_DIR}/${DRIVER}.ko;
29--
302.7.4
31
diff --git a/recipes-kernel/intel-ethernet/ixgbevf_4.5.3.bb b/recipes-kernel/intel-ethernet/ixgbevf_4.19.10.bb
index fe8c252d..92e25739 100644
--- a/recipes-kernel/intel-ethernet/ixgbevf_4.5.3.bb
+++ b/recipes-kernel/intel-ethernet/ixgbevf_4.19.10.bb
@@ -1,5 +1,5 @@
1SUMMARY="ixgbevf kernel driver for Intel Magnolia Park 10GbE" 1SUMMARY = "ixgbevf kernel driver for Intel Magnolia Park 10GbE"
2DESCRIPTION="This virtual function driver supports kernel versions 2.6.x and newer \ 2DESCRIPTION = "This virtual function driver supports kernel versions 2.6.x and newer \
3This driver supports 82599, X540, X550, and X552-based virtual function devices \ 3This driver supports 82599, X540, X550, and X552-based virtual function devices \
4that can only be activated on kernels that support SR-IOV. \ 4that can only be activated on kernels that support SR-IOV. \
5SR-IOV requires the correct platform and OS support. \ 5SR-IOV requires the correct platform and OS support. \
@@ -7,30 +7,29 @@ The guest OS loading this driver must support MSI-X interrupts."
7 7
8HOMEPAGE = "https://sourceforge.net/projects/e1000/" 8HOMEPAGE = "https://sourceforge.net/projects/e1000/"
9SECTION = "kernel/network" 9SECTION = "kernel/network"
10LICENSE = "GPLv2" 10LICENSE = "GPL-2.0-only"
11LIC_FILES_CHKSUM = "file://${WORKDIR}/${BP}/COPYING;md5=a216b4192dc6b777b6f0db560e9a8417" 11LIC_FILES_CHKSUM = "file://${WORKDIR}/${BP}/COPYING;md5=a216b4192dc6b777b6f0db560e9a8417"
12 12
13SRC_URI = "https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/${PV}/${BP}.tar.gz \ 13SRC_URI = "https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/${PV}/${BP}.tar.gz \
14 file://0001-ixgbevf-skip-host-depmod.patch \
15 " 14 "
16 15
17SRC_URI[md5sum] = "f3be87f000161ef6c956ab3b41b7e9f8" 16SRC_URI[sha256sum] = "73c6a27be324a48b069dbda0d1d07212a2214c71f54df57bca7177fc92b04881"
18SRC_URI[sha256sum] = "623ec55f2e225a4353f02222e6694a47836f67be21a45a68794961c74a5557fa"
19 17
20UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/" 18UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/"
21UPSTREAM_CHECK_REGEX = "ixgbevf%20stable/(?P<pver>\d+(\.\d+)+)/" 19UPSTREAM_CHECK_REGEX = "ixgbevf%20stable/(?P<pver>\d+(\.\d+)+)/"
22 20
21CVE_PRODUCT = "linux:linux_kernel_ixgbe"
22
23S = "${WORKDIR}/${BP}/src" 23S = "${WORKDIR}/${BP}/src"
24MODULES_INSTALL_TARGET = "install"
25 24
26EXTRA_OEMAKE='KSRC="${STAGING_KERNEL_BUILDDIR}" KVER="${KERNEL_VERSION}" INSTALL_MOD_PATH="${D}"' 25EXTRA_OEMAKE = 'KSRC="${STAGING_KERNEL_DIR}" KOBJ="${STAGING_KERNEL_BUILDDIR}" KVER="${KERNEL_VERSION}" INSTALL_MOD_PATH="${D}"'
27 26
28KERNEL_MODULE_AUTOLOAD_append_intel-core2-32 = " ixgbevf" 27KERNEL_MODULE_AUTOLOAD:append:intel-core2-32 = " ixgbevf"
29KERNEL_MODULE_AUTOLOAD_append_intel-corei7-64 = " ixgbevf" 28KERNEL_MODULE_AUTOLOAD:append:intel-corei7-64 = " ixgbevf"
30 29
31inherit module 30inherit module
32 31
33do_install_append () { 32do_install:append () {
34 # Install scripts/set_irq_affinity 33 # Install scripts/set_irq_affinity
35 install -d ${D}${sysconfdir}/network 34 install -d ${D}${sysconfdir}/network
36 install -m 0755 ${S}/../scripts/set_irq_affinity ${D}${sysconfdir}/network 35 install -m 0755 ${S}/../scripts/set_irq_affinity ${D}${sysconfdir}/network
@@ -40,4 +39,8 @@ do_install_append () {
40 39
41PACKAGES += "${PN}-script" 40PACKAGES += "${PN}-script"
42 41
43FILES_${PN}-script += "${sysconfdir}/network/set_irq_affinity" 42FILES:${PN}-script += "${sysconfdir}/network/set_irq_affinity"
43
44CVE_STATUS[CVE-2015-1142857] = "fixed-version: Fixed from version 4.4-rc1"
45
46EXCLUDE_FROM_WORLD = "1"
diff --git a/recipes-kernel/iwlwifi/backport-iwlwifi_git.bb b/recipes-kernel/iwlwifi/backport-iwlwifi_git.bb
index 71837318..7aaf22c2 100644
--- a/recipes-kernel/iwlwifi/backport-iwlwifi_git.bb
+++ b/recipes-kernel/iwlwifi/backport-iwlwifi_git.bb
@@ -1,13 +1,13 @@
1SUMMARY = "Intel Wireless LinuxCore kernel driver" 1SUMMARY = "Intel Wireless LinuxCore kernel driver"
2DESCRIPTION = "Intel Wireless LinuxCore kernel driver" 2DESCRIPTION = "Intel Wireless LinuxCore kernel driver"
3SECTION = "kernel" 3SECTION = "kernel"
4LICENSE = "GPLv2" 4LICENSE = "GPL-2.0-only"
5 5
6REQUIRED_DISTRO_FEATURES = "wifi" 6REQUIRED_DISTRO_FEATURES = "wifi"
7 7
8LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" 8LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
9 9
10inherit module 10inherit module features_check
11 11
12# For some iwfwifi LinuxCore supported wireless chips, the best/latest 12# For some iwfwifi LinuxCore supported wireless chips, the best/latest
13# firmware blobs are found in the iwlwifi's linux-firmware.git fork. 13# firmware blobs are found in the iwlwifi's linux-firmware.git fork.
@@ -17,11 +17,11 @@ inherit module
17# When updating this recipe, ensure that the proper firmware is included from 17# When updating this recipe, ensure that the proper firmware is included from
18# either the linux-firmware or iwlwifi-firmware repos. 18# either the linux-firmware or iwlwifi-firmware repos.
19 19
20PV = "30" 20PV = "79"
21SRCREV = "b31221a99488021300e7f89d2ecf9bdd2bc52dd2" 21SRCREV = "574631d89d736fd2c76b0e2ea489270c50903e52"
22 22
23SRC_URI = " \ 23SRC_URI = " \
24 git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi;branch=release/LinuxCore${PV} \ 24 git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi;branch=release/core${PV} \
25 file://0001-Makefile.real-skip-host-install-scripts.patch \ 25 file://0001-Makefile.real-skip-host-install-scripts.patch \
26 file://iwlwifi.conf \ 26 file://iwlwifi.conf \
27 " 27 "
@@ -34,18 +34,20 @@ do_configure() {
34 CC=gcc CFLAGS= LDFLAGS= make defconfig-iwlwifi-public KLIB_BUILD=${KBUILD_OUTPUT} 34 CC=gcc CFLAGS= LDFLAGS= make defconfig-iwlwifi-public KLIB_BUILD=${KBUILD_OUTPUT}
35} 35}
36 36
37MODULES_INSTALL_TARGET="install" 37MODULES_INSTALL_TARGET = "install"
38 38
39do_install_append() { 39do_install:append() {
40 ## install configs and service scripts 40 ## install configs and service scripts
41 install -d ${D}${sysconfdir}/modprobe.d 41 install -d ${D}${sysconfdir}/modprobe.d
42 install -m 0644 ${WORKDIR}/iwlwifi.conf ${D}${sysconfdir}/modprobe.d 42 install -m 0644 ${WORKDIR}/iwlwifi.conf ${D}${sysconfdir}/modprobe.d
43} 43}
44 44
45RDEPENDS_${PN} = "linux-firmware-iwlwifi" 45RDEPENDS:${PN} = "linux-firmware-iwlwifi"
46 46
47KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " iwlwifi" 47FILES:${PN} += "${sysconfdir}/modprobe.d/iwlwifi.conf"
48KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " iwlwifi" 48
49KERNEL_MODULE_AUTOLOAD:append:core2-32-intel-common = " iwlwifi"
50KERNEL_MODULE_AUTOLOAD:append:corei7-64-intel-common = " iwlwifi"
49 51
50KERNEL_MODULE_PACKAGE_PREFIX = "backport-iwlwifi" 52KERNEL_MODULE_PACKAGE_PREFIX = "backport-iwlwifi"
51 53
diff --git a/recipes-kernel/linux/linux-intel-dev.bb b/recipes-kernel/linux/linux-intel-dev.bb
deleted file mode 100644
index 316baa50..00000000
--- a/recipes-kernel/linux/linux-intel-dev.bb
+++ /dev/null
@@ -1,35 +0,0 @@
1require recipes-kernel/linux/linux-yocto.inc
2require recipes-kernel/linux/meta-intel-compat-kernel.inc
3
4FILESEXTRAPATHS_prepend := "${THISDIR}/linux-intel:"
5
6SRC_URI = " \
7 git://github.com/intel/mainline-tracking.git;protocol=https;name=machine;branch=${KBRANCH}; \
8 git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=${KMETA_BRANCH};destsuffix=${KMETA} \
9 file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch \
10 "
11SRC_URI_append_core2-32-intel-common = " file://disable_skylake_sound.cfg"
12
13KMETA = "kernel-meta"
14KCONF_BSP_AUDIT_LEVEL = "2"
15
16KBRANCH = "base"
17KMETA_BRANCH = "master"
18
19LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
20
21DEPENDS += "elfutils-native openssl-native util-linux-native"
22
23LINUX_VERSION ?= "5.1.0"
24SRCREV_machine ?= "abcfe412cc5140d20a592965744c050fd3cc3d19"
25SRCREV_meta ?= "b8bce20786a4063e5f053036e5236d82c8fc3d91"
26
27LINUX_VERSION_EXTENSION ?= "-mainline-tracking-${LINUX_KERNEL_TYPE}"
28PV = "${LINUX_VERSION}+git${SRCPV}"
29
30COMPATIBLE_MACHINE ?= "(intel-corei7-64|intel-core2-32)"
31
32# Functionality flags
33KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
34KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
35KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/security/security.scc"
diff --git a/recipes-kernel/linux/linux-intel-rt_4.14.bb b/recipes-kernel/linux/linux-intel-rt_4.14.bb
deleted file mode 100644
index cae40019..00000000
--- a/recipes-kernel/linux/linux-intel-rt_4.14.bb
+++ /dev/null
@@ -1,24 +0,0 @@
1require linux-intel.inc
2
3# Skip processing of this recipe if it is not explicitly specified as the
4# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
5# to build multiple virtual/kernel providers, e.g. as dependency of
6# core-image-rt-sdk, core-image-rt.
7python () {
8 if d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-intel-rt":
9 raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-intel-rt to enable it")
10}
11
12KBRANCH = "4.14/preempt-rt"
13KMETA_BRANCH = "yocto-4.14"
14
15# Fix for 32-bit perf issue. Remove when patch is backported to 4.14.
16SRC_URI_append = " file://0001-perf-x86-32-explicitly-include-errno.h.patch"
17
18DEPENDS += "elfutils-native openssl-native util-linux-native"
19
20LINUX_VERSION ?= "4.14.115"
21SRCREV_machine ?= "ab4155a2f9a055b4004d7c8608ef1937dfff093a"
22SRCREV_meta ?= "bc35d5bd224ab031440a69f9806d839db382f05c"
23
24LINUX_KERNEL_TYPE = "preempt-rt"
diff --git a/recipes-kernel/linux/linux-intel-rt_4.19.bb b/recipes-kernel/linux/linux-intel-rt_4.19.bb
deleted file mode 100644
index 0fd47585..00000000
--- a/recipes-kernel/linux/linux-intel-rt_4.19.bb
+++ /dev/null
@@ -1,24 +0,0 @@
1require linux-intel.inc
2
3# Skip processing of this recipe if it is not explicitly specified as the
4# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
5# to build multiple virtual/kernel providers, e.g. as dependency of
6# core-image-rt-sdk, core-image-rt.
7python () {
8 if d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-intel-rt":
9 raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-intel-rt to enable it")
10}
11
12LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
13SRC_URI_append = " file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch"
14
15KBRANCH = "4.19/preempt-rt"
16KMETA_BRANCH = "yocto-4.19"
17
18DEPENDS += "elfutils-native openssl-native util-linux-native"
19
20LINUX_VERSION ?= "4.19.31"
21SRCREV_machine ?= "8b4bc03e27be3bd3b23249205d11185b2ed21ec6"
22SRCREV_meta ?= "d85f07e03c980eca5ffd5ba058985d6ed3a83801"
23
24LINUX_KERNEL_TYPE = "preempt-rt"
diff --git a/recipes-kernel/linux/linux-intel-rt_6.12.bb b/recipes-kernel/linux/linux-intel-rt_6.12.bb
new file mode 100644
index 00000000..13b495d1
--- /dev/null
+++ b/recipes-kernel/linux/linux-intel-rt_6.12.bb
@@ -0,0 +1,35 @@
1require linux-intel.inc
2
3SRC_URI:prepend = "git://github.com/intel/linux-intel-lts.git;protocol=https;name=machine;branch=${KBRANCH}; \
4 "
5SRC_URI:append = " file://0001-6.12-lib-build_OID_registry-fix-reproducibility-issues.patch \
6 "
7
8# Skip processing of this recipe if it is not explicitly specified as the
9# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
10# to build multiple virtual/kernel providers, e.g. as dependency of
11# core-image-rt-sdk, core-image-rt.
12python () {
13 if d.getVar("KERNEL_PACKAGE_NAME", True) == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-intel-rt":
14 raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-intel-rt to enable it")
15}
16
17KBRANCH = "6.12/linux"
18KMETA_BRANCH = "yocto-6.12"
19
20LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
21
22DEPENDS += "elfutils-native openssl-native util-linux-native"
23
24LINUX_VERSION_EXTENSION ??= "-intel-pk-${LINUX_KERNEL_TYPE}"
25
26LINUX_VERSION ?= "6.12.27"
27SRCREV_machine ?= "9e2f92c31c6353101755c83670232c94e0c07ddc"
28SRCREV_meta ?= "da71eb19ceab34a7a6ff4284f1580e043c870168"
29
30LINUX_KERNEL_TYPE = "preempt-rt"
31
32# Functionality flags
33KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/security/security.scc"
34
35UPSTREAM_CHECK_GITTAGREGEX = "^lts-(?P<pver>v6.12.(\d+)-linux-(\d+)T(\d+)Z)$"
diff --git a/recipes-kernel/linux/linux-intel.inc b/recipes-kernel/linux/linux-intel.inc
index f2ba0d13..c698ae28 100644
--- a/recipes-kernel/linux/linux-intel.inc
+++ b/recipes-kernel/linux/linux-intel.inc
@@ -1,25 +1,22 @@
1require recipes-kernel/linux/linux-yocto.inc 1require recipes-kernel/linux/linux-yocto.inc
2require recipes-kernel/linux/meta-intel-compat-kernel.inc 2require recipes-kernel/linux/meta-intel-compat-kernel.inc
3 3
4FILESEXTRAPATHS_prepend := "${THISDIR}/linux-intel:" 4FILESEXTRAPATHS:prepend := "${THISDIR}/linux-intel:"
5 5
6KERNEL_CONFIG_URI ?= "git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=${KMETA_BRANCH};destsuffix=${KMETA}" 6KERNEL_CONFIG_URI ?= "git://git.yoctoproject.org/yocto-kernel-cache;protocol=https;type=kmeta;name=meta;branch=${KMETA_BRANCH};destsuffix=${KMETA}"
7 7
8SRC_URI = " \ 8SRC_URI = " \
9 git://github.com/intel/linux-intel-lts.git;protocol=https;name=machine;branch=${KBRANCH}; \
10 ${KERNEL_CONFIG_URI} \ 9 ${KERNEL_CONFIG_URI} \
10 file://fix-perf-reproducibility.patch \
11 file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch \
12 file://0002-mconf-fix-output-of-cflags-and-libraries.patch \
11 " 13 "
12 14
13SRC_URI_append_core2-32-intel-common = " file://disable_skylake_sound.cfg"
14
15LINUX_VERSION_EXTENSION ?= "-intel-pk-${LINUX_KERNEL_TYPE}"
16
17PV = "${LINUX_VERSION}+git${SRCPV}" 15PV = "${LINUX_VERSION}+git${SRCPV}"
18 16
19KMETA = "kernel-meta" 17KMETA = "kernel-meta"
20KCONF_BSP_AUDIT_LEVEL = "2" 18KCONF_BSP_AUDIT_LEVEL = "0"
21 19
22COMPATIBLE_MACHINE ?= "(intel-corei7-64|intel-core2-32)" 20COMPATIBLE_MACHINE ?= "(intel-corei7-64)"
23 21
24KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" 22KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
25KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
diff --git a/recipes-kernel/linux/linux-intel/0001-6.12-lib-build_OID_registry-fix-reproducibility-issues.patch b/recipes-kernel/linux/linux-intel/0001-6.12-lib-build_OID_registry-fix-reproducibility-issues.patch
new file mode 100644
index 00000000..df2a4139
--- /dev/null
+++ b/recipes-kernel/linux/linux-intel/0001-6.12-lib-build_OID_registry-fix-reproducibility-issues.patch
@@ -0,0 +1,48 @@
1From 4881d0f985aab70c685bd63b56a2d6ad5e790abc Mon Sep 17 00:00:00 2001
2From: Bruce Ashfield <bruce.ashfield@gmail.com>
3Date: Sun, 10 Jul 2022 22:56:53 -0400
4Subject: [PATCH] lib/build_OID_registry: fix reproducibility issues
5
6The script build_OID_registry captures the full path of itself
7in the generated data. This causes reproduciblity issues as the
8path is captured and packaged.
9
10We use the basename of the script instead, and that allows us
11to be reprodicible, with slightly less information captured in
12the output data (but the generating script can still easily
13be found).
14
15Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
16Upstream-Status: Inappropriate
17
18Taken from linux-yocto, v5.15/standard/base.
19
20Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
21---
22 lib/build_OID_registry | 3 ++-
23 1 file changed, 2 insertions(+), 1 deletion(-)
24
25diff --git a/lib/build_OID_registry b/lib/build_OID_registry
26index 8267e8d71338..755dd33a8b04 100755
27--- a/lib/build_OID_registry
28+++ b/lib/build_OID_registry
29@@ -9,6 +9,7 @@
30
31 use strict;
32 use Cwd qw(abs_path);
33+use File::Basename;
34
35 my @names = ();
36 my @oids = ();
37@@ -40,7 +41,7 @@ open C_FILE, ">$ARGV[1]" or die;
38 print C_FILE "/*\n";
39 my $scriptname = $0;
40 $scriptname =~ s#^\Q$abs_srctree/\E##;
41-print C_FILE " * Automatically generated by ", $scriptname, ". Do not edit\n";
42+print C_FILE " * Automatically generated by ", basename $0, ". Do not edit\n";
43 print C_FILE " */\n";
44
45 #
46--
472.34.1
48
diff --git a/recipes-kernel/linux/linux-intel/0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch b/recipes-kernel/linux/linux-intel/0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch
deleted file mode 100644
index a9e9213b..00000000
--- a/recipes-kernel/linux/linux-intel/0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch
+++ /dev/null
@@ -1,62 +0,0 @@
1From e6ebc8e654bba53f28af5229a1069fc74fa58b7b Mon Sep 17 00:00:00 2001
2From: Jason Wessel <jason.wessel@windriver.com>
3Date: Thu, 25 Sep 2014 11:26:49 -0700
4Subject: [PATCH] menuconfig,check-lxdiaglog.sh: Allow specification of ncurses
5 location
6
7In some cross build environments such as the Yocto Project build
8environment it provides an ncurses library that is compiled
9differently than the host's version. This causes display corruption
10problems when the host's curses includes are used instead of the
11includes from the provided compiler are overridden. There is a second
12case where there is no curses libraries at all on the host system and
13menuconfig will just fail entirely.
14
15The solution is simply to allow an override variable in
16check-lxdialog.sh for environments such as the Yocto Project. Adding
17a CROSS_CURSES_LIB and CROSS_CURSES_INC solves the issue and allowing
18compiling and linking against the right headers and libraries.
19
20Upstream-Status: submitted [https://lkml.org/lkml/2013/3/3/103]
21
22Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
23cc: Michal Marek <mmarek@suse.cz>
24cc: linux-kbuild@vger.kernel.org
25Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
26Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
27---
28 scripts/kconfig/lxdialog/check-lxdialog.sh | 8 ++++++++
29 1 file changed, 8 insertions(+)
30 mode change 100755 => 100644 scripts/kconfig/lxdialog/check-lxdialog.sh
31
32diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
33old mode 100755
34new mode 100644
35index 5075ebf2d3b9..ba9242101190
36--- a/scripts/kconfig/lxdialog/check-lxdialog.sh
37+++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
38@@ -4,6 +4,10 @@
39 # What library to link
40 ldflags()
41 {
42+ if [ "$CROSS_CURSES_LIB" != "" ]; then
43+ echo "$CROSS_CURSES_LIB"
44+ exit
45+ fi
46 pkg-config --libs ncursesw 2>/dev/null && exit
47 pkg-config --libs ncurses 2>/dev/null && exit
48 for ext in so a dll.a dylib ; do
49@@ -21,6 +25,10 @@ ldflags()
50 # Where is ncurses.h?
51 ccflags()
52 {
53+ if [ x"$CROSS_CURSES_INC" != x ]; then
54+ echo "$CROSS_CURSES_INC"
55+ exit
56+ fi
57 if pkg-config --cflags ncursesw 2>/dev/null; then
58 echo '-DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1'
59 elif pkg-config --cflags ncurses 2>/dev/null; then
60--
612.14.3
62
diff --git a/recipes-kernel/linux/linux-intel/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch b/recipes-kernel/linux/linux-intel/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch
index 3dc71ff2..a601e783 100644
--- a/recipes-kernel/linux/linux-intel/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch
+++ b/recipes-kernel/linux/linux-intel/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch
@@ -1,7 +1,8 @@
1From bebd63730a433ba62549a80114a9851328aa8897 Mon Sep 17 00:00:00 2001 1From 1811da09f42ca5e82282970e8ad014707bc94c82 Mon Sep 17 00:00:00 2001
2From: Bruce Ashfield <bruce.ashfield@windriver.com> 2From: Bruce Ashfield <bruce.ashfield@windriver.com>
3Date: Mon, 2 Jul 2018 23:10:28 -0400 3Date: Mon, 2 Jul 2018 23:10:28 -0400
4Subject: [PATCH] menuconfig,mconf-cfg: Allow specification of ncurses location 4Subject: [PATCH 1/2] menuconfig,mconf-cfg: Allow specification of ncurses
5 location
5 6
6In some cross build environments such as the Yocto Project build 7In some cross build environments such as the Yocto Project build
7environment it provides an ncurses library that is compiled 8environment it provides an ncurses library that is compiled
@@ -16,33 +17,36 @@ check-lxdialog.sh for environments such as the Yocto Project. Adding
16a CROSS_CURSES_LIB and CROSS_CURSES_INC solves the issue and allowing 17a CROSS_CURSES_LIB and CROSS_CURSES_INC solves the issue and allowing
17compiling and linking against the right headers and libraries. 18compiling and linking against the right headers and libraries.
18 19
20Upstream-Status: Submitted
21
19Signed-off-by: Jason Wessel <jason.wessel@windriver.com> 22Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
20cc: Michal Marek <mmarek@suse.cz> 23cc: Michal Marek <mmarek@suse.cz>
21cc: linux-kbuild@vger.kernel.org 24cc: linux-kbuild@vger.kernel.org
22Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> 25Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
26Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
23--- 27---
24 scripts/kconfig/mconf-cfg.sh | 8 ++++++++ 28 scripts/kconfig/mconf-cfg.sh | 8 ++++++++
25 1 file changed, 8 insertions(+) 29 1 file changed, 8 insertions(+)
26 30
27diff --git a/scripts/kconfig/mconf-cfg.sh b/scripts/kconfig/mconf-cfg.sh 31diff --git a/scripts/kconfig/mconf-cfg.sh b/scripts/kconfig/mconf-cfg.sh
28index c812872d7f9d..42d20819025c 100755 32index 1e61f50a5905..38cf8304bb31 100755
29--- a/scripts/kconfig/mconf-cfg.sh 33--- a/scripts/kconfig/mconf-cfg.sh
30+++ b/scripts/kconfig/mconf-cfg.sh 34+++ b/scripts/kconfig/mconf-cfg.sh
31@@ -4,6 +4,14 @@ 35@@ -7,6 +7,14 @@ libs=$2
32 PKG="ncursesw" 36 PKG="ncursesw"
33 PKG2="ncurses" 37 PKG2="ncurses"
34 38
35+if [ "$CROSS_CURSES_LIB" != "" ]; then 39+if [ "$CROSS_CURSES_LIB" != "" ]; then
36+ echo libs=\'$CROSS_CURSES_LIB\' 40+ echo libs=\'$CROSS_CURSES_LIB\'
37+ if [ x"$CROSS_CURSES_INC" != x ]; then 41+ if [ x"$CROSS_CURSES_INC" != x ]; then
38+ echo cflags=\'$CROSS_CURSES_INC\' 42+ echo cflags=\'$CROSS_CURSES_INC\'
39+ fi 43+ fi
40+ exit 0 44+ exit 0
41+fi 45+fi
42+ 46+
43 if [ -n "$(command -v pkg-config)" ]; then 47 if [ -n "$(command -v ${HOSTPKG_CONFIG})" ]; then
44 if pkg-config --exists $PKG; then 48 if ${HOSTPKG_CONFIG} --exists $PKG; then
45 echo cflags=\"$(pkg-config --cflags $PKG)\" 49 ${HOSTPKG_CONFIG} --cflags ${PKG} > ${cflags}
46-- 50--
472.17.1 512.34.1
48 52
diff --git a/recipes-kernel/linux/linux-intel/0001-perf-x86-32-explicitly-include-errno.h.patch b/recipes-kernel/linux/linux-intel/0001-perf-x86-32-explicitly-include-errno.h.patch
deleted file mode 100644
index 5c8b27c7..00000000
--- a/recipes-kernel/linux/linux-intel/0001-perf-x86-32-explicitly-include-errno.h.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1From 57af599929263e7bb6f2f369c9e4bc1e440528a9 Mon Sep 17 00:00:00 2001
2From: Bruce Ashfield <bruce.ashfield@windriver.com>
3Date: Mon, 21 Aug 2017 13:52:53 -0400
4Subject: [PATCH 1/1] perf: x86-32: explicitly include <errno.h>
5
6Upstream-Status: submitted
7
8The 32bit x86 perf build does not find the system definitions of error
9return values, hence we end up with:
10
11| In file included from util/libunwind/x86_32.c:32:0:
12| util/libunwind/../../arch/x86/util/unwind-libunwind.c: In function 'libunwind__x86_reg_id':
13| util/libunwind/../../arch/x86/util/unwind-libunwind.c:109:11: error: 'EINVAL' undeclared (first use in this function); did you mean 'UNW_EINVAL'?
14| return -EINVAL;
15| ^~~~~~
16| UNW_EINVAL
17
18By explicitly including errno.h, we can fix this build without impacting
19other architectures.
20
21Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
22---
23
24 tools/perf/util/libunwind/x86_32.c | 1 +
25 1 file changed, 1 insertion(+)
26
27diff --git a/tools/perf/util/libunwind/x86_32.c b/tools/perf/util/libunwind/x86_32.c
28index 957ffff72428..d781f7bdeb88 100644
29--- a/tools/perf/util/libunwind/x86_32.c
30+++ b/tools/perf/util/libunwind/x86_32.c
31@@ -20,6 +20,7 @@
32 #define LIBUNWIND__ARCH_REG_IP PERF_REG_X86_IP
33 #define LIBUNWIND__ARCH_REG_SP PERF_REG_X86_SP
34
35+#include <errno.h>
36 #include "unwind.h"
37 #include "debug.h"
38 #include "libunwind-x86.h"
39--
402.14.3
41
diff --git a/recipes-kernel/linux/linux-intel/0002-mconf-fix-output-of-cflags-and-libraries.patch b/recipes-kernel/linux/linux-intel/0002-mconf-fix-output-of-cflags-and-libraries.patch
new file mode 100644
index 00000000..a96b68d9
--- /dev/null
+++ b/recipes-kernel/linux/linux-intel/0002-mconf-fix-output-of-cflags-and-libraries.patch
@@ -0,0 +1,40 @@
1From 1b53d82a8152843afcddd7f16b0c43b6b4f22895 Mon Sep 17 00:00:00 2001
2From: Bruce Ashfield <bruce.ashfield@gmail.com>
3Date: Mon, 17 Jul 2023 17:17:55 -0400
4Subject: [PATCH 2/2] mconf: fix output of cflags and libraries
5
6commit 3122c84409d578a5df8bcb1 [kconfig: refactor Makefile to reduce
7process forks] changes the way that flags are detected. They are
8no longer just echo'd and captured, they are written to a file and
9later read.
10
11We adjust our CROSS ncurses patch accordingly.
12
13We'll eventually be able to drop this patch, but not quite yet.
14
15Upstream-Status: Inappropriate [OE-Specific]
16Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
17Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
18---
19 scripts/kconfig/mconf-cfg.sh | 4 ++--
20 1 file changed, 2 insertions(+), 2 deletions(-)
21
22diff --git a/scripts/kconfig/mconf-cfg.sh b/scripts/kconfig/mconf-cfg.sh
23index 38cf8304bb31..a5ae56e08b07 100755
24--- a/scripts/kconfig/mconf-cfg.sh
25+++ b/scripts/kconfig/mconf-cfg.sh
26@@ -8,9 +8,9 @@ PKG="ncursesw"
27 PKG2="ncurses"
28
29 if [ "$CROSS_CURSES_LIB" != "" ]; then
30- echo libs=\'$CROSS_CURSES_LIB\'
31+ echo $CROSS_CURSES_LIB > ${libs}
32 if [ x"$CROSS_CURSES_INC" != x ]; then
33- echo cflags=\'$CROSS_CURSES_INC\'
34+ echo $CROSS_CURSES_INC > ${cflags}
35 fi
36 exit 0
37 fi
38--
392.34.1
40
diff --git a/recipes-kernel/linux/linux-intel/disable_skylake_sound.cfg b/recipes-kernel/linux/linux-intel/disable_skylake_sound.cfg
deleted file mode 100644
index b38cf6c2..00000000
--- a/recipes-kernel/linux/linux-intel/disable_skylake_sound.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
1# CONFIG_SND_SOC_INTEL_SKYLAKE is not set
2# CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH is not set
3# CONFIG_SND_SOC_INTEL_BXT_RT298_MACH is not set
4# CONFIG_SND_SOC_INTEL_BXT_TDF8532_MACH is not set
5# CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH is not set
6# CONFIG_SND_SOC_INTEL_SKL_RT286_MACH is not set
7# CONFIG_SND_SOC_INTEL_CNL_RT274_MACH is not set
8# CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH is not set
9# CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH is not set
10# CONFIG_SND_SOC_INTEL_CNL_CS42L42_MACH is not set
11# CONFIG_SND_SOC_INTEL_CNL_RT700_MACH is not set
12# CONFIG_SND_SOC_INTEL_CNL_SVFPGA_MACH is not set
diff --git a/recipes-kernel/linux/linux-intel/fix-perf-reproducibility.patch b/recipes-kernel/linux/linux-intel/fix-perf-reproducibility.patch
new file mode 100644
index 00000000..1a98b1db
--- /dev/null
+++ b/recipes-kernel/linux/linux-intel/fix-perf-reproducibility.patch
@@ -0,0 +1,39 @@
1From b8cd0e429bf75b673c438a8277d4bc74327df992 Mon Sep 17 00:00:00 2001
2From: Tom Zanussi <tom.zanussi@intel.com>
3Date: Tue, 3 Jul 2012 13:07:23 -0500
4Subject: perf: change --root to --prefix for python install
5
6Otherwise we get the sysroot path appended to the build path, not what
7we want.
8
9Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
10
11Upstream-Status: Inappropriate
12
13Taken from linux-yocto, v5.15/standard/base
14https://git.yoctoproject.org/linux-yocto/commit?id=b8cd0e429bf75b673c438a8277d4bc74327df992&h=v5.15%2Fstandard%2Fbase
15
16Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
17---
18 tools/perf/Makefile.perf | 2 +-
19 1 file changed, 1 insertion(+), 1 deletion(-)
20
21(limited to 'tools/perf/Makefile.perf')
22
23diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
24index 8f738e11356d..ee945d8e3996 100644
25--- a/tools/perf/Makefile.perf
26+++ b/tools/perf/Makefile.perf
27@@ -1022,7 +1022,7 @@ install-bin: install-tools install-tests install-traceevent-plugins
28 install: install-bin try-install-man
29
30 install-python_ext:
31- $(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)'
32+ $(PYTHON_WORD) util/setup.py --quiet install --prefix='$(DESTDIR_SQ)/usr'
33
34 # 'make install-doc' should call 'make -C Documentation install'
35 $(INSTALL_DOC_TARGETS):
36--
37cgit
38
39
diff --git a/recipes-kernel/linux/linux-intel_4.14.bb b/recipes-kernel/linux/linux-intel_4.14.bb
deleted file mode 100644
index f38af5e2..00000000
--- a/recipes-kernel/linux/linux-intel_4.14.bb
+++ /dev/null
@@ -1,22 +0,0 @@
1require linux-intel.inc
2
3KBRANCH = "4.14/base"
4KMETA_BRANCH = "yocto-4.14"
5
6# Fix for 32-bit perf issue. Remove when patch is backported to 4.14.
7SRC_URI_append = " file://0001-perf-x86-32-explicitly-include-errno.h.patch \
8 file://0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch \
9 "
10
11DEPENDS += "elfutils-native openssl-native util-linux-native"
12
13LINUX_VERSION ?= "4.14.123"
14SRCREV_machine ?= "6aab3d561d738f3ceb9230a828b3f0b1ed5e98a3"
15SRCREV_meta ?= "bc35d5bd224ab031440a69f9806d839db382f05c"
16
17# For Crystalforest and Romley
18KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " uio"
19KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " uio"
20
21# Functionality flags
22KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/security/security.scc"
diff --git a/recipes-kernel/linux/linux-intel_4.19.bb b/recipes-kernel/linux/linux-intel_4.19.bb
deleted file mode 100644
index c073851a..00000000
--- a/recipes-kernel/linux/linux-intel_4.19.bb
+++ /dev/null
@@ -1,21 +0,0 @@
1require linux-intel.inc
2
3KBRANCH = "4.19/base"
4KMETA_BRANCH = "yocto-4.19"
5
6LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
7
8SRC_URI_append = " file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch"
9
10DEPENDS += "elfutils-native openssl-native util-linux-native"
11
12LINUX_VERSION ?= "4.19.50"
13SRCREV_machine ?= "78a3f5c9f69658f9d590fcf93015055aa7283513"
14SRCREV_meta ?= "ad235db461bf4595c668700ca8a909c322009cc1"
15
16# For Crystalforest and Romley
17KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " uio"
18KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " uio"
19
20# Functionality flags
21KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/security/security.scc"
diff --git a/recipes-kernel/linux/linux-intel_6.12.bb b/recipes-kernel/linux/linux-intel_6.12.bb
new file mode 100644
index 00000000..32b0b2e4
--- /dev/null
+++ b/recipes-kernel/linux/linux-intel_6.12.bb
@@ -0,0 +1,25 @@
1require linux-intel.inc
2
3SRC_URI:prepend = "git://github.com/intel/linux-intel-lts.git;protocol=https;name=machine;branch=${KBRANCH}; \
4 "
5SRC_URI:append = " file://0001-6.12-lib-build_OID_registry-fix-reproducibility-issues.patch \
6 "
7KBRANCH = "6.12/linux"
8KMETA_BRANCH = "yocto-6.12"
9
10LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
11
12DEPENDS += "elfutils-native openssl-native util-linux-native"
13
14LINUX_VERSION_EXTENSION ??= "-intel-pk-${LINUX_KERNEL_TYPE}"
15
16LINUX_VERSION ?= "6.12.27"
17SRCREV_machine ?= "9e2f92c31c6353101755c83670232c94e0c07ddc"
18SRCREV_meta ?= "da71eb19ceab34a7a6ff4284f1580e043c870168"
19
20# Functionality flags
21KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc \
22 features/security/security.scc \
23 features/intel-npu/intel-npu.scc"
24
25UPSTREAM_CHECK_GITTAGREGEX = "^lts-(?P<pver>v6.12.(\d+)-linux-(\d+)T(\d+)Z)$"
diff --git a/recipes-kernel/linux/linux-yocto-dev.bbappend b/recipes-kernel/linux/linux-yocto-dev.bbappend
index 6173148c..deb19940 100644
--- a/recipes-kernel/linux/linux-yocto-dev.bbappend
+++ b/recipes-kernel/linux/linux-yocto-dev.bbappend
@@ -1,21 +1,21 @@
1FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:" 1FILESEXTRAPATHS:prepend:intel-x86-common := "${THISDIR}/${PN}:"
2 2
3COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}" 3COMPATIBLE_MACHINE:core2-32-intel-common = "${MACHINE}"
4KMACHINE_core2-32-intel-common = "intel-core2-32" 4KMACHINE:core2-32-intel-common = "intel-core2-32"
5KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}" 5KERNEL_FEATURES:append:core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
6 6
7COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}" 7COMPATIBLE_MACHINE:corei7-64-intel-common = "${MACHINE}"
8KMACHINE_corei7-64-intel-common = "intel-corei7-64" 8KMACHINE:corei7-64-intel-common = "intel-corei7-64"
9KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}" 9KERNEL_FEATURES:append:corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}"
10 10
11# NOTE: We do not set SRCREVs here as -dev is intended to be built with AUTOREV 11# NOTE: We do not set SRCREVs here as -dev is intended to be built with AUTOREV
12# and setting them here breaks the default mechanism to use AUTOREV if the 12# and setting them here breaks the default mechanism to use AUTOREV if the
13# default SRCREV is set and linux-yocto-dev is the preferred provider. 13# default SRCREV is set and linux-yocto-dev is the preferred provider.
14 14
15# For Crystalforest and Romley 15# For Crystalforest and Romley
16KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " uio" 16KERNEL_MODULE_AUTOLOAD:append:core2-32-intel-common = " uio"
17KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " uio" 17KERNEL_MODULE_AUTOLOAD:append:corei7-64-intel-common = " uio"
18 18
19# For FRI2, NUC 19# For FRI2, NUC
20KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " iwlwifi" 20KERNEL_MODULE_AUTOLOAD:append:core2-32-intel-common = " iwlwifi"
21KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " iwlwifi" 21KERNEL_MODULE_AUTOLOAD:append:corei7-64-intel-common = " iwlwifi"
diff --git a/recipes-kernel/linux/linux-yocto-rt_4.19.bbappend b/recipes-kernel/linux/linux-yocto-rt_%.bbappend
index daa7dd6b..daa7dd6b 100644
--- a/recipes-kernel/linux/linux-yocto-rt_4.19.bbappend
+++ b/recipes-kernel/linux/linux-yocto-rt_%.bbappend
diff --git a/recipes-kernel/linux/linux-yocto-rt_5.0.bbappend b/recipes-kernel/linux/linux-yocto-rt_5.0.bbappend
deleted file mode 100644
index daa7dd6b..00000000
--- a/recipes-kernel/linux/linux-yocto-rt_5.0.bbappend
+++ /dev/null
@@ -1 +0,0 @@
1require meta-intel-compat-kernel.inc
diff --git a/recipes-kernel/linux/linux-yocto_%.bbappend b/recipes-kernel/linux/linux-yocto_%.bbappend
index 7c29be14..9f3d43e3 100644
--- a/recipes-kernel/linux/linux-yocto_%.bbappend
+++ b/recipes-kernel/linux/linux-yocto_%.bbappend
@@ -1,4 +1,6 @@
1require meta-intel-compat-kernel.inc
2
1# The kernel build is 64-bit regardless, so include both common overrides. 3# The kernel build is 64-bit regardless, so include both common overrides.
2# Without this, the kernel will be missing vars that make it buildable for the 4# Without this, the kernel will be missing vars that make it buildable for the
3# intel-corei7-64 machine. 5# intel-corei7-64 machine.
4MACHINEOVERRIDES_prepend_corei7-64-x32-intel-common = "corei7-64-intel-common:" 6MACHINEOVERRIDES:prepend:corei7-64-x32-intel-common = "corei7-64-intel-common:"
diff --git a/recipes-kernel/linux/linux-yocto_4.19.bbappend b/recipes-kernel/linux/linux-yocto_4.19.bbappend
deleted file mode 100644
index daa7dd6b..00000000
--- a/recipes-kernel/linux/linux-yocto_4.19.bbappend
+++ /dev/null
@@ -1 +0,0 @@
1require meta-intel-compat-kernel.inc
diff --git a/recipes-kernel/linux/linux-yocto_5.0.bbappend b/recipes-kernel/linux/linux-yocto_5.0.bbappend
deleted file mode 100644
index daa7dd6b..00000000
--- a/recipes-kernel/linux/linux-yocto_5.0.bbappend
+++ /dev/null
@@ -1 +0,0 @@
1require meta-intel-compat-kernel.inc
diff --git a/recipes-kernel/linux/meta-intel-compat-kernel.inc b/recipes-kernel/linux/meta-intel-compat-kernel.inc
index be5056c2..0c861e13 100644
--- a/recipes-kernel/linux/meta-intel-compat-kernel.inc
+++ b/recipes-kernel/linux/meta-intel-compat-kernel.inc
@@ -3,11 +3,12 @@
3 3
4KERNEL_FEATURES_INTEL_COMMON ?= "" 4KERNEL_FEATURES_INTEL_COMMON ?= ""
5 5
6COMPATIBLE_MACHINE_intel-x86-common = "${MACHINE}" 6COMPATIBLE_MACHINE:intel-x86-common = "${MACHINE}"
7KERNEL_FEATURES_intel-x86-common = "${KERNEL_FEATURES_INTEL_COMMON}" 7KERNEL_FEATURES:intel-x86-common = "${KERNEL_FEATURES_INTEL_COMMON}"
8 8
9KMACHINE_corei7-64-intel-common = "intel-corei7-64" 9KMACHINE:corei7-64-intel-common = "intel-corei7-64"
10KMACHINE_core2-32-intel-common = "intel-core2-32" 10KMACHINE:core2-32-intel-common = "intel-core2-32"
11KMACHINE:x86-64-v3-intel-common = "intel-corei7-64"
11 12
12INTEL_COMMON_AUTOLOAD ?= " uio iwlwifi i915" 13INTEL_COMMON_AUTOLOAD ?= " uio iwlwifi i915"
13KERNEL_MODULE_AUTOLOAD_intel-x86-common = " ${INTEL_COMMON_AUTOLOAD}" 14KERNEL_MODULE_AUTOLOAD:intel-x86-common = " ${INTEL_COMMON_AUTOLOAD}"
diff --git a/recipes-multimedia/itt/itt/0001-CMakeLists.txt-set-output-directory-path.patch b/recipes-multimedia/itt/itt/0001-CMakeLists.txt-set-output-directory-path.patch
deleted file mode 100644
index 6009669a..00000000
--- a/recipes-multimedia/itt/itt/0001-CMakeLists.txt-set-output-directory-path.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From 6bced614fe448ee7fc6216b528e2c5684446f9c6 Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Tue, 14 May 2019 16:57:27 +0800
4Subject: [PATCH] CMakeLists.txt: set output directory path
5
6Installer section of CMakeLists.txt expect bin
7direcotry should be present at PROJECT_SOURCE_DIR
8
9set(SEA_PROJECT_BIN ${PROJECT_SOURCE_DIR}/bin)
10
11Upstream-Status: Inappropriate
12
13Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
14---
15 CMakeLists.txt | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18diff --git a/CMakeLists.txt b/CMakeLists.txt
19index 479c443..01f0124 100644
20--- a/CMakeLists.txt
21+++ b/CMakeLists.txt
22@@ -65,7 +65,7 @@ foreach (Flag ${Flags})
23 message(STATUS "${Flag} = ${${Flag}}")
24 endforeach()
25
26-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../../bin)
27+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
28
29 set(EXECUTABLE_OUTPUT_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
30 set(LIBRARY_OUTPUT_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
31--
322.17.0
33
diff --git a/recipes-multimedia/itt/itt_17.0.bb b/recipes-multimedia/itt/itt_17.0.bb
deleted file mode 100644
index a40a2e9b..00000000
--- a/recipes-multimedia/itt/itt_17.0.bb
+++ /dev/null
@@ -1,30 +0,0 @@
1SUMMARY = "Intel® Single Event API"
2DESCRIPTION = "Intel® SEAPI is the translator of itt_notify calls into \
3several OS specific and third party tracing formats. \
4You can use it as memory/performance/whatever profiler."
5
6LICENSE = "BSD-3-Clause"
7LIC_FILES_CHKSUM = "file://sea_itt_lib/Copyright.txt;md5=7d54dfc8860742fb06b9c5ad28f41fcd"
8
9SRC_URI = "\
10 git://github.com/intel/IntelSEAPI.git;protocol=https \
11 file://0001-CMakeLists.txt-set-output-directory-path.patch \
12"
13SRCREV="36bff07521afffc0c0f7db79252338954ca7e6dd"
14S = "${WORKDIR}/git"
15
16inherit pkgconfig cmake
17
18EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=Release"
19EXTRA_OECMAKE += "-DDCO_PILOT=0"
20EXTRA_OECMAKE += "${@oe.utils.conditional('TARGET_ARCH','x86_64','','-DFORCE_32=ON',d)}"
21
22COMPATIBLE_HOST_libc-musl_class-target = "null"
23
24do_install() {
25 install -d -m 755 ${D}${libdir} ${D}${includedir}
26 install -m 644 ${S}/bin/*.a ${D}${libdir}
27 install -m 644 ${S}/ittnotify/include/ittnotify.h ${D}${includedir}
28}
29
30RDEPENDS_${PN}-dev_remove = "${PN} (= ${EXTENDPKGV})"
diff --git a/recipes-multimedia/itt/itt_3.26.1.bb b/recipes-multimedia/itt/itt_3.26.1.bb
new file mode 100644
index 00000000..0043b5de
--- /dev/null
+++ b/recipes-multimedia/itt/itt_3.26.1.bb
@@ -0,0 +1,33 @@
1SUMMARY = "Intel® Instrumentation and Tracing Technology (ITT) and Just-In-Time (JIT) API"
2DESCRIPTION = "The Instrumentation and Tracing Technology (ITT) API enables \
3application to generate and control the collection of trace data during its \
4execution across different Intel tools."
5
6LICENSE = "BSD-3-Clause & GPL-2.0-only"
7LIC_FILES_CHKSUM = "file://LICENSES/BSD-3-Clause.txt;md5=c551872bcf41ce707df54c722edeca7b \
8 file://LICENSES/GPL-2.0-only.txt;md5=e2d76e7801260c21b90eea3605508ad6 \
9 "
10
11SRC_URI = "git://github.com/intel/ittapi.git;protocol=https;branch=master"
12SRCREV = "e535d565c88e4407f044719e2e9ec70c0b023d23"
13S = "${WORKDIR}/git"
14PE = "1"
15
16UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$"
17
18COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
19
20inherit pkgconfig cmake
21
22EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=Release"
23EXTRA_OECMAKE += "${@oe.utils.conditional('TARGET_ARCH','x86_64','','-DFORCE_32=ON',d)}"
24
25do_install() {
26 install -d -m 755 ${D}${libdir} ${D}${includedir}/ittnotify
27 install -m 644 ${B}/bin/*.a ${D}${libdir}
28 cp -r ${S}/include/* ${D}${includedir}/ittnotify
29 cp -r ${S}/src/ittnotify/*.h ${D}${includedir}/ittnotify
30 rm -r ${D}${includedir}/ittnotify/fortran/win32
31}
32
33RDEPENDS:${PN}-dev:remove = "${PN} (= ${EXTENDPKGV})"
diff --git a/recipes-multimedia/libva/files/0003-Force-ARGB-surface-to-tile4-for-ACM.patch b/recipes-multimedia/libva/files/0003-Force-ARGB-surface-to-tile4-for-ACM.patch
new file mode 100644
index 00000000..ffb5b747
--- /dev/null
+++ b/recipes-multimedia/libva/files/0003-Force-ARGB-surface-to-tile4-for-ACM.patch
@@ -0,0 +1,44 @@
1From 6132115dd2f1db55a6a5371618247dfaa334a035 Mon Sep 17 00:00:00 2001
2From: Lim Siew Hoon <siew.hoon.lim@intel.com>
3Date: Wed, 11 Oct 2023 15:36:21 +0800
4Subject: [PATCH 3/7] Force ARGB surface to tile4 for ACM
5
6Upstream-Status: Submitted [https://github.com/intel/media-driver/pull/1728]
7
8Signed-off-by: Soon, Thean Siew <thean.siew.soon@intel.com>
9Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
10---
11 media_driver/linux/common/ddi/media_libva_util.cpp | 10 ++++++++++
12 1 file changed, 10 insertions(+)
13
14diff --git a/media_driver/linux/common/ddi/media_libva_util.cpp b/media_driver/linux/common/ddi/media_libva_util.cpp
15index a4e12edfa..11634f66e 100755
16--- a/media_driver/linux/common/ddi/media_libva_util.cpp
17+++ b/media_driver/linux/common/ddi/media_libva_util.cpp
18@@ -521,6 +521,7 @@ VAStatus DdiMediaUtil_AllocateSurface(
19 gmmCustomParams.Flags.Gpu.UnifiedAuxSurface = 0;
20 }
21 }
22+
23 break;
24 case TILING_X:
25 gmmCustomParams.Flags.Info.TiledX = true;
26@@ -702,6 +703,15 @@ VAStatus DdiMediaUtil_AllocateSurface(
27 }
28 }
29 }
30+ // There's no VAAPI interface for modifier query yet. As a workaround, always allocate
31+ // RGB surface as tile4.
32+ if ((format == Media_Format_A8R8G8B8 ||
33+ format == Media_Format_B10G10R10A2 |
34+ format == Media_Format_A8B8G8R8 ||
35+ format == Media_Format_X8R8G8B8) && !MEDIA_IS_SKU(&mediaDrvCtx->SkuTable, FtrTileY))
36+ {
37+ gmmParams.Flags.Info.Tile4 = true;
38+ }
39 break;
40 case TILING_X:
41 gmmParams.Flags.Info.TiledX = true;
42--
432.43.0
44
diff --git a/recipes-multimedia/libva/files/0004-Fix-failed-4k-videowalll-test-case-and-color-corrupt.patch b/recipes-multimedia/libva/files/0004-Fix-failed-4k-videowalll-test-case-and-color-corrupt.patch
new file mode 100644
index 00000000..49e3ff13
--- /dev/null
+++ b/recipes-multimedia/libva/files/0004-Fix-failed-4k-videowalll-test-case-and-color-corrupt.patch
@@ -0,0 +1,85 @@
1From a32b95e58fd3e34847e799b909e08dbe5c9dc692 Mon Sep 17 00:00:00 2001
2From: Lim Siew Hoon <siew.hoon.lim@intel.com>
3Date: Fri, 2 Aug 2024 13:25:13 +0800
4Subject: [PATCH 4/7] Fix failed 4k videowalll test case and color corruption
5 of video composition in Gen12 platform
6
7Fix failed 4k video wall test case from 16CH video only show
81CH output and corruption observed on certain number of video
9composition when doing sample_multi_transcode in legacy path.
10
11platform: TGL/ADL/RPL
12
13Upstream-Status: Submitted [https://github.com/intel/media-driver/pull/1839]
14
15Signed-off-by: xupianch <xu.pian.chan@intel.com>
16Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
17---
18 .../common/vp/hal/vphal_render_composite.cpp | 9 ++++++++-
19 .../linux/common/vp/ddi/media_libva_vp.c | 18 +++++-------------
20 2 files changed, 13 insertions(+), 14 deletions(-)
21
22diff --git a/media_driver/agnostic/common/vp/hal/vphal_render_composite.cpp b/media_driver/agnostic/common/vp/hal/vphal_render_composite.cpp
23index 169030209..cc7c241c1 100644
24--- a/media_driver/agnostic/common/vp/hal/vphal_render_composite.cpp
25+++ b/media_driver/agnostic/common/vp/hal/vphal_render_composite.cpp
26@@ -6784,6 +6784,13 @@ bool CompositeState::BuildFilter(
27
28 for (i = 0; (i < (int)pCompParams->uSourceCount) && (iMaxFilterSize > 0); i++)
29 {
30+ if (i > 0)
31+ {
32+ if (!RECT1_CONTAINS_RECT2(pCompParams->pSource[0]->rcDst, pCompParams->pSource[i]->rcDst))
33+ {
34+ pFilter->forceToTargetColorSpace = true;
35+ }
36+ }
37 pSrc = pCompParams->pSource[i];
38
39 //--------------------------------
40@@ -8154,4 +8161,4 @@ bool CompositeState::IsSamplerIDForY(
41 return true;
42 }
43 return false;
44- }
45\ No newline at end of file
46+ }
47diff --git a/media_driver/linux/common/vp/ddi/media_libva_vp.c b/media_driver/linux/common/vp/ddi/media_libva_vp.c
48index 48a452315..4f0fc2c48 100644
49--- a/media_driver/linux/common/vp/ddi/media_libva_vp.c
50+++ b/media_driver/linux/common/vp/ddi/media_libva_vp.c
51@@ -1148,7 +1148,7 @@ DdiVp_SetProcPipelineParams(
52
53 // Background Colorfill
54 // According to libva definition, if alpha in output background color is zero, then colorfill is not needed
55- if ((pPipelineParam->output_background_color >> 24) != 0 || pVpHalTgtSurf->ColorSpace == CSpace_sRGB)
56+ if ((pPipelineParam->output_background_color >> 24) != 0)
57 {
58 if (pVpHalRenderParams->pColorFillParams == nullptr)
59 {
60@@ -1157,18 +1157,10 @@ DdiVp_SetProcPipelineParams(
61
62 DDI_CHK_NULL(pVpHalRenderParams->pColorFillParams, "Null pColorFillParams.", VA_STATUS_ERROR_UNKNOWN);
63
64- if (pVpHalTgtSurf->ColorSpace == CSpace_sRGB && (pPipelineParam->output_background_color >> 24) == 0)
65- {
66- // set color space for sRGB output
67- pVpHalRenderParams->pColorFillParams->CSpace = CSpace_sRGB;
68- }
69- else
70- {
71- // set background colorfill option
72- pVpHalRenderParams->pColorFillParams->Color = pPipelineParam->output_background_color;
73- pVpHalRenderParams->pColorFillParams->bYCbCr = false;
74- pVpHalRenderParams->pColorFillParams->CSpace = CSpace_sRGB;
75- }
76+ // set background colorfill option
77+ pVpHalRenderParams->pColorFillParams->Color = pPipelineParam->output_background_color;
78+ pVpHalRenderParams->pColorFillParams->bYCbCr = false;
79+ pVpHalRenderParams->pColorFillParams->CSpace = CSpace_sRGB;
80 }else
81 {
82 MOS_FreeMemAndSetNull(pVpHalRenderParams->pColorFillParams);
83--
842.43.0
85
diff --git a/recipes-multimedia/libva/intel-media-driver/0001-linux-fix-build-when-using-musl.patch b/recipes-multimedia/libva/intel-media-driver/0001-linux-fix-build-when-using-musl.patch
deleted file mode 100644
index ea203ca9..00000000
--- a/recipes-multimedia/libva/intel-media-driver/0001-linux-fix-build-when-using-musl.patch
+++ /dev/null
@@ -1,28 +0,0 @@
1From cc96bcbde6556cb412944ddc40f7b6a89fe4ae27 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Fri, 23 Nov 2018 14:22:36 +0800
4Subject: [PATCH] linux: fix build when using musl
5
6Alternative definition for CONCAT which is not defined by musl.
7
8Upstream-Status: Pending
9
10Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
11---
12 media_driver/linux/common/os/mos_defs_specific.h | 3 ++-
13 1 file changed, 2 insertions(+), 1 deletion(-)
14
15diff --git a/media_driver/linux/common/os/mos_defs_specific.h b/media_driver/linux/common/os/mos_defs_specific.h
16index 29a8d566..d8244207 100644
17--- a/media_driver/linux/common/os/mos_defs_specific.h
18+++ b/media_driver/linux/common/os/mos_defs_specific.h
19@@ -81,7 +81,8 @@ typedef struct _TP_CALLBACK_INSTANCE TP_CALLBACK_INSTANCE, *PTP_CALLBACK_INSTANC
20 /* compile-time ASSERT */
21
22 #ifndef C_ASSERT
23- #define __UNIQUENAME( a1, a2 ) __CONCAT( a1, a2 )
24+ #define __CONCATING( a1, a2 ) a1 ## a2
25+ #define __UNIQUENAME( a1, a2 ) __CONCATING( a1, a2 )
26 #define UNIQUENAME( __text ) __UNIQUENAME( __text, __COUNTER__ )
27 #define C_ASSERT(e) typedef char UNIQUENAME(STATIC_ASSERT_)[(e)?1:-1]
28 #endif
diff --git a/recipes-multimedia/libva/intel-media-driver_19.1.0.bb b/recipes-multimedia/libva/intel-media-driver_25.1.4.bb
index 18bb2052..b972e230 100644
--- a/recipes-multimedia/libva/intel-media-driver_19.1.0.bb
+++ b/recipes-multimedia/libva/intel-media-driver_25.1.4.bb
@@ -11,29 +11,42 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=6aab5363823095ce682b155fef0231f0 \
11 file://media_driver/media_libvpx.LICENSE;md5=d5b04755015be901744a78cc30d390d4 \ 11 file://media_driver/media_libvpx.LICENSE;md5=d5b04755015be901744a78cc30d390d4 \
12 " 12 "
13 13
14# Only for 64 bit until this is resolved: https://github.com/intel/media-driver/issues/356 14COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
15COMPATIBLE_HOST = '(x86_64).*-linux' 15
16inherit features_check
17REQUIRED_DISTRO_FEATURES = "opengl"
16 18
17DEPENDS += "libva gmmlib" 19DEPENDS += "libva gmmlib"
18 20
19SRC_URI = "git://github.com/intel/media-driver.git;protocol=https;branch=intel-media-19.1 \ 21SRC_URI = "git://github.com/intel/media-driver.git;protocol=https;nobranch=1 \
20 file://0001-linux-fix-build-when-using-musl.patch \ 22 file://0003-Force-ARGB-surface-to-tile4-for-ACM.patch \
21 " 23 file://0004-Fix-failed-4k-videowalll-test-case-and-color-corrupt.patch \
24 "
22 25
23SRCREV = "72d50d2450ee6f642531a5819d317925c7619af9" 26SRCREV = "14e2e7bcf1014186dbf1c099089c7c05cd880ae8"
24S = "${WORKDIR}/git" 27S = "${WORKDIR}/git"
25 28
29COMPATIBLE_HOST:x86-x32 = "null"
30
26UPSTREAM_CHECK_GITTAGREGEX = "^intel-media-(?P<pver>(?!600\..*)\d+(\.\d+)+)$" 31UPSTREAM_CHECK_GITTAGREGEX = "^intel-media-(?P<pver>(?!600\..*)\d+(\.\d+)+)$"
27 32
28inherit cmake pkgconfig 33inherit cmake pkgconfig
29 34
30MEDIA_DRIVER_ARCH_x86 = "32" 35MEDIA_DRIVER_ARCH:x86 = "32"
31MEDIA_DRIVER_ARCH_x86-64 = "64" 36MEDIA_DRIVER_ARCH:x86-64 = "64"
37
38EXTRA_OECMAKE += " \
39 -DMEDIA_RUN_TEST_SUITE=OFF \
40 -DARCH=${MEDIA_DRIVER_ARCH} \
41 -DMEDIA_BUILD_FATAL_WARNINGS=OFF \
42 "
43
44CXXFLAGS:append:x86 = " -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
32 45
33EXTRA_OECMAKE += "-DMEDIA_RUN_TEST_SUITE=OFF -DARCH=${MEDIA_DRIVER_ARCH}" 46do_configure:prepend:toolchain-clang() {
47 sed -i -e '/-fno-tree-pre/d' ${S}/media_driver/cmake/linux/media_compile_flags_linux.cmake
48}
34 49
35# See: https://github.com/intel/media-driver/issues/358 50FILES:${PN} += " \
36FILES_${PN} += " \
37 ${libdir}/dri/ \ 51 ${libdir}/dri/ \
38 ${libdir}/igfxcmrt64.so \
39 " 52 "
diff --git a/recipes-multimedia/libva/intel-vaapi-driver_2.3.0.bb b/recipes-multimedia/libva/intel-vaapi-driver_2.4.1.bb
index 6ec1745b..5038d8d7 100644
--- a/recipes-multimedia/libva/intel-vaapi-driver_2.3.0.bb
+++ b/recipes-multimedia/libva/intel-vaapi-driver_2.4.1.bb
@@ -13,21 +13,22 @@ COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
13 13
14DEPENDS = "libva libdrm" 14DEPENDS = "libva libdrm"
15 15
16SRC_URI = "https://github.com/intel/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.bz2" 16SRC_URI = "https://github.com/intel/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.bz2 \
17SRC_URI[md5sum] = "9d835d1a3f7a9ef394f0f4c348cd4b3e" 17 "
18SRC_URI[sha256sum] = "5c2e5deab024a0a6ae81dfe77ef455542a88d824eda7bfd07684337407ecdfe3" 18
19SRC_URI[sha256sum] = "0081fce08eb3a83f7d99c3b853c8fdfa0af437b8f5b0fb7c66faeb83bcbe0c19"
19 20
20UPSTREAM_CHECK_URI = "https://github.com/intel/intel-vaapi-driver/releases" 21UPSTREAM_CHECK_URI = "https://github.com/intel/intel-vaapi-driver/releases"
21 22
22inherit autotools pkgconfig distro_features_check 23inherit meson pkgconfig features_check
23 24
24REQUIRED_DISTRO_FEATURES = "opengl" 25REQUIRED_DISTRO_FEATURES = "opengl"
25 26
26PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", d)} \ 27PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", d)} \
27 ${@bb.utils.contains("DISTRO_FEATURES", "opengl wayland", "wayland", "", d)}" 28 ${@bb.utils.contains("DISTRO_FEATURES", "opengl wayland", "wayland", "", d)}"
28PACKAGECONFIG[x11] = "--enable-x11,--disable-x11" 29PACKAGECONFIG[x11] = "-Dwith_x11=yes, -Dwith_x11=no"
29PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native virtual/egl" 30PACKAGECONFIG[wayland] = "-Dwith_wayland=yes, -Dwith_wayland=no, wayland wayland-native virtual/egl"
30 31
31FILES_${PN} += "${libdir}/dri/*.so" 32FILES:${PN} += "${libdir}/dri/*.so"
32FILES_${PN}-dev += "${libdir}/dri/*.la" 33FILES:${PN}-dev += "${libdir}/dri/*.la"
33FILES_${PN}-dbg += "${libdir}/dri/.debug" 34FILES:${PN}-dbg += "${libdir}/dri/.debug"
diff --git a/recipes-multimedia/libyami/libyami-utils/0001-Fix-build-with-clang.patch b/recipes-multimedia/libyami/libyami-utils/0001-Fix-build-with-clang.patch
deleted file mode 100644
index f7de9d16..00000000
--- a/recipes-multimedia/libyami/libyami-utils/0001-Fix-build-with-clang.patch
+++ /dev/null
@@ -1,96 +0,0 @@
1From f2e6d2ecfea635ab952649156e31ca893d4b1a47 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 12 Aug 2017 08:49:20 -0700
4Subject: [PATCH] Fix build with clang
5
6Fix errors e.g.
7error: comparison of constant -1 with expression of type 'char' is always true [-Werror,-Wtautological-constant-out-of-range-compare]error: comparison of constant -1 with expression of type 'char' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
8
9and
10
11psnr.cpp:225:17: error: bool literal returned from 'main' [-Werror,-Wmain]
12
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14Upstream-Status: Pending
15
16---
17 tests/decodehelp.cpp | 2 +-
18 tests/encodehelp.h | 2 +-
19 tests/vpp.cpp | 2 +-
20 tests/yamitranscode.cpp | 2 +-
21 testscripts/psnr.cpp | 4 ++--
22 5 files changed, 6 insertions(+), 6 deletions(-)
23
24diff --git a/tests/decodehelp.cpp b/tests/decodehelp.cpp
25index b27b977..62cca63 100644
26--- a/tests/decodehelp.cpp
27+++ b/tests/decodehelp.cpp
28@@ -81,7 +81,7 @@ bool processCmdLine(int argc, char** argv, DecodeParameter* parameters)
29 { NULL, no_argument, NULL, 0 }
30 };
31
32- char opt;
33+ int opt;
34 while ((opt = getopt_long_only(argc, argv, "h:m:n:i:f:o:w:?", long_opts,&option_index)) != -1){
35 switch (opt) {
36 case 'h':
37diff --git a/tests/encodehelp.h b/tests/encodehelp.h
38index 63580a4..651ec08 100644
39--- a/tests/encodehelp.h
40+++ b/tests/encodehelp.h
41@@ -109,7 +109,7 @@ static VideoRateControl string_to_rc_mode(char *str)
42
43 static bool process_cmdline(int argc, char *argv[])
44 {
45- char opt;
46+ int opt;
47 const struct option long_opts[] = {
48 { "help", no_argument, NULL, 'h' },
49 { "qp", required_argument, NULL, 0 },
50diff --git a/tests/vpp.cpp b/tests/vpp.cpp
51index 5a60c0a..52da43b 100644
52--- a/tests/vpp.cpp
53+++ b/tests/vpp.cpp
54@@ -151,7 +151,7 @@ public:
55 private:
56 bool processCmdLine(int argc, char* argv[])
57 {
58- char opt;
59+ int opt;
60 const struct option long_opts[] = {
61 { "help", no_argument, NULL, 'h' },
62 { "sharpening", required_argument, NULL, 's' },
63diff --git a/tests/yamitranscode.cpp b/tests/yamitranscode.cpp
64index 6207209..00164ce 100755
65--- a/tests/yamitranscode.cpp
66+++ b/tests/yamitranscode.cpp
67@@ -100,7 +100,7 @@ static VideoRateControl string_to_rc_mode(char *str)
68
69 static bool processCmdLine(int argc, char *argv[], TranscodeParams& para)
70 {
71- char opt;
72+ int opt;
73 const struct option long_opts[] = {
74 { "help", no_argument, NULL, 'h' },
75 { "qp", required_argument, NULL, 0 },
76diff --git a/testscripts/psnr.cpp b/testscripts/psnr.cpp
77index 5cc24c9..68bd668 100644
78--- a/testscripts/psnr.cpp
79+++ b/testscripts/psnr.cpp
80@@ -215,14 +215,14 @@ int main(int argc, char *argv[])
81 const char* psnrresult = "average_psnr.txt";
82 int width=0,height=0;
83 int standardpsnr = NORMAL_PSNR;
84- char opt;
85+ int opt;
86 while ((opt = getopt(argc, argv, "h:W:H:i:o:s:?")) != -1)
87 {
88 switch (opt) {
89 case 'h':
90 case '?':
91 print_help(argv[0]);
92- return false;
93+ return -1;
94 case 'i':
95 filename1 = optarg;
96 break;
diff --git a/recipes-multimedia/libyami/libyami-utils_1.3.1.bb b/recipes-multimedia/libyami/libyami-utils_1.3.1.bb
deleted file mode 100644
index ab1b83aa..00000000
--- a/recipes-multimedia/libyami/libyami-utils_1.3.1.bb
+++ /dev/null
@@ -1,26 +0,0 @@
1SUMMARY = "Applications and Scripts for libyami."
2DESCRIPTION = "Applications and Scripts for libyami."
3
4HOMEPAGE = "https://github.com/intel/libyami-utils"
5BUGTRACKER = "https://github.com/intel/libyami-utils/issues/new"
6
7LICENSE = "Apache-2.0"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
9
10SRC_URI = "git://github.com/intel/libyami-utils.git \
11 file://0001-Fix-build-with-clang.patch \
12 "
13SRCREV = "7e801b5cc3066b176c2dccffda0af8d762184650"
14S = "${WORKDIR}/git"
15
16DEPENDS = "libva libyami"
17
18inherit autotools pkgconfig distro_features_check
19
20REQUIRED_DISTRO_FEATURES = "opengl"
21
22PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
23
24# --enable-x11 needs libva-x11
25# gles-tests fail to build without x11: see https://github.com/intel/libyami-utils/issues/91
26PACKAGECONFIG[x11] = "--enable-x11 --enable-egl,--disable-x11 --disable-egl, virtual/libx11"
diff --git a/recipes-multimedia/libyami/libyami/0001-bitWriter.cpp-Delete-unused-CACHEBYTES.patch b/recipes-multimedia/libyami/libyami/0001-bitWriter.cpp-Delete-unused-CACHEBYTES.patch
deleted file mode 100644
index a96c9b85..00000000
--- a/recipes-multimedia/libyami/libyami/0001-bitWriter.cpp-Delete-unused-CACHEBYTES.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From 294874b610a5b8af9b736b3afc938010af58785e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 11 Aug 2017 17:15:45 -0700
4Subject: [PATCH 1/9] bitWriter.cpp: Delete unused CACHEBYTES
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8Upstream-Status: Pending
9
10 codecparsers/bitWriter.cpp | 1 -
11 1 file changed, 1 deletion(-)
12
13diff --git a/codecparsers/bitWriter.cpp b/codecparsers/bitWriter.cpp
14index 9bcb14d..08469bf 100644
15--- a/codecparsers/bitWriter.cpp
16+++ b/codecparsers/bitWriter.cpp
17@@ -24,7 +24,6 @@
18
19 namespace YamiParser {
20
21-const uint32_t CACHEBYTES = sizeof(unsigned long int);
22 const uint32_t CACHEBITS = sizeof(unsigned long int) * 8;
23
24 // clip to keep lowest n bits
25--
262.14.1
27
diff --git a/recipes-multimedia/libyami/libyami/0002-typecast-index-from-size_t-to-int.patch b/recipes-multimedia/libyami/libyami/0002-typecast-index-from-size_t-to-int.patch
deleted file mode 100644
index a216566c..00000000
--- a/recipes-multimedia/libyami/libyami/0002-typecast-index-from-size_t-to-int.patch
+++ /dev/null
@@ -1,42 +0,0 @@
1From 88fa048e22ad00b04054b8a64df53bd440e01537 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 11 Aug 2017 17:29:02 -0700
4Subject: [PATCH 2/9] typecast index from size_t to int
5
6size_t is not consistent across architectures e.g. on arm its unsigned int
7
8Fixes
9error: comparison of unsigned expression < 0 is always false [-Werror,-Wtautological-compare]
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13Upstream-Status: Pending
14
15 codecparsers/jpegParser.cpp | 4 ++--
16 1 file changed, 2 insertions(+), 2 deletions(-)
17
18diff --git a/codecparsers/jpegParser.cpp b/codecparsers/jpegParser.cpp
19index 2217028..6da5c36 100644
20--- a/codecparsers/jpegParser.cpp
21+++ b/codecparsers/jpegParser.cpp
22@@ -639,7 +639,7 @@ bool Parser::parseDAC()
23
24 length -= 2;
25
26- if (index < 0 || index >= (2 * NUM_ARITH_TBLS)) {
27+ if ((int)index < 0 || index >= (2 * NUM_ARITH_TBLS)) {
28 ERROR("Invalid DAC Index");
29 return false;
30 }
31@@ -747,7 +747,7 @@ bool Parser::parseDHT()
32 huffTables = &m_dcHuffTables;
33 }
34
35- if (index < 0 || index >= NUM_HUFF_TBLS) {
36+ if ((int)index < 0 || index >= NUM_HUFF_TBLS) {
37 ERROR("Bad Huff Table Index");
38 return false;
39 }
40--
412.14.1
42
diff --git a/recipes-multimedia/libyami/libyami/0003-Add-Wno-invalid-offsetof-to-compiler-commandline.patch b/recipes-multimedia/libyami/libyami/0003-Add-Wno-invalid-offsetof-to-compiler-commandline.patch
deleted file mode 100644
index 17289602..00000000
--- a/recipes-multimedia/libyami/libyami/0003-Add-Wno-invalid-offsetof-to-compiler-commandline.patch
+++ /dev/null
@@ -1,29 +0,0 @@
1From 533d63287e9dd8f269b137c18fbe6c19206c8668 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 11 Aug 2017 17:49:43 -0700
4Subject: [PATCH 3/9] Add -Wno-invalid-offsetof to compiler commandline
5
6clang++ is fussy about offsetof on non-POD types
7
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9---
10Upstream-Status: Pending
11
12 codecparsers/Makefile.am | 1 +
13 1 file changed, 1 insertion(+)
14
15diff --git a/codecparsers/Makefile.am b/codecparsers/Makefile.am
16index 720bf81..d9226b3 100644
17--- a/codecparsers/Makefile.am
18+++ b/codecparsers/Makefile.am
19@@ -118,6 +118,7 @@ libyami_codecparser_cppflags = \
20 -Dvp8dx_start_decode=libyami_vp8dx_start_decode \
21 -Dvp8dx_bool_decoder_fill=libyami_vp8dx_bool_decoder_fill \
22 -I$(top_srcdir)/interface \
23+ -Wno-invalid-offsetof \
24 $(extra_includes) \
25 $(NULL)
26
27--
282.14.1
29
diff --git a/recipes-multimedia/libyami/libyami/0004-Typecast-POWER32SUB2-to-uint8_t.patch b/recipes-multimedia/libyami/libyami/0004-Typecast-POWER32SUB2-to-uint8_t.patch
deleted file mode 100644
index 27eca39b..00000000
--- a/recipes-multimedia/libyami/libyami/0004-Typecast-POWER32SUB2-to-uint8_t.patch
+++ /dev/null
@@ -1,33 +0,0 @@
1From d9c831ee38da4551396fad5cd53c3dfc0e5e0cf8 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 11 Aug 2017 17:57:34 -0700
4Subject: [PATCH 4/9] Typecast POWER32SUB2 to uint8_t
5
6Fixes
7
8h265Parser.cpp:1064:5: error: comparison of constant 4294967294 with expression
9of type 'uint8_t' (aka 'unsigned char') is always false [-Werror,-Wtautological-constant-out-of-range-compare]
10
11Signed-off-by: Khem Raj <raj.khem@gmail.com>
12---
13Upstream-Status: Pending
14
15 codecparsers/h265Parser.cpp | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-)
17
18diff --git a/codecparsers/h265Parser.cpp b/codecparsers/h265Parser.cpp
19index 0dea3a6..c6cded2 100644
20--- a/codecparsers/h265Parser.cpp
21+++ b/codecparsers/h265Parser.cpp
22@@ -125,7 +125,7 @@ namespace H265 {
23 \
24 CHECK_READ_UE(var->var##_max_num_reorder_pics[i], 0, var->var##_max_dec_pic_buffering_minus1[i]); \
25 \
26- CHECK_READ_UE(var->var##_max_latency_increase_plus1[i], 0, POWER32SUB2); \
27+ CHECK_READ_UE(var->var##_max_latency_increase_plus1[i], 0, (uint8_t)POWER32SUB2); \
28 } \
29 }
30
31--
322.14.1
33
diff --git a/recipes-multimedia/libyami/libyami/0006-Avoid-namespace-conflicts-by-adding-explicit-using-n.patch b/recipes-multimedia/libyami/libyami/0006-Avoid-namespace-conflicts-by-adding-explicit-using-n.patch
deleted file mode 100644
index c9c74520..00000000
--- a/recipes-multimedia/libyami/libyami/0006-Avoid-namespace-conflicts-by-adding-explicit-using-n.patch
+++ /dev/null
@@ -1,41 +0,0 @@
1From 27b61f5ab1b1643436f56517e4980734b4b9acca Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 11 Aug 2017 18:38:05 -0700
4Subject: [PATCH 6/9] Avoid namespace conflicts by adding explicit using
5 <namespace>
6
7Signed-off-by: Khem Raj <raj.khem@gmail.com>
8---
9Upstream-Status: Pending
10
11 decoder/vaapidecoder_h264.h | 1 +
12 decoder/vaapidecoder_h265.h | 1 +
13 2 files changed, 2 insertions(+)
14
15diff --git a/decoder/vaapidecoder_h264.h b/decoder/vaapidecoder_h264.h
16index 57e2c27..ea5c2f2 100644
17--- a/decoder/vaapidecoder_h264.h
18+++ b/decoder/vaapidecoder_h264.h
19@@ -30,6 +30,7 @@ namespace YamiMediaCodec {
20
21 class VaapiDecPictureH264;
22 class VaapiDecoderH264 : public VaapiDecoderBase {
23+using YamiMediaCodec::VaapiDecoderBase::createPicture;
24 public:
25 typedef SharedPtr<VaapiDecPictureH264> PicturePtr;
26 typedef std::vector<PicturePtr> RefSet;
27diff --git a/decoder/vaapidecoder_h265.h b/decoder/vaapidecoder_h265.h
28index f7e2303..159e25f 100644
29--- a/decoder/vaapidecoder_h265.h
30+++ b/decoder/vaapidecoder_h265.h
31@@ -38,6 +38,7 @@ namespace YamiMediaCodec {
32
33 class VaapiDecPictureH265;
34 class VaapiDecoderH265:public VaapiDecoderBase {
35+ using YamiMediaCodec::VaapiDecoderBase::createPicture;
36 typedef YamiParser::H265::SPS SPS;
37 typedef YamiParser::H265::SliceHeader SliceHeader;
38 typedef YamiParser::H265::NalUnit NalUnit;
39--
402.14.1
41
diff --git a/recipes-multimedia/libyami/libyami/0007-Delete-unused-variables.patch b/recipes-multimedia/libyami/libyami/0007-Delete-unused-variables.patch
deleted file mode 100644
index b80774c9..00000000
--- a/recipes-multimedia/libyami/libyami/0007-Delete-unused-variables.patch
+++ /dev/null
@@ -1,36 +0,0 @@
1From b982997c96e11b9c0b3cd58a31af2d0a219713a3 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 11 Aug 2017 18:39:58 -0700
4Subject: [PATCH 7/9] Delete unused variables
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8Upstream-Status: Pending
9
10 decoder/vaapidecoder_vp8.cpp | 8 ++++----
11 1 file changed, 4 insertions(+), 4 deletions(-)
12
13diff --git a/decoder/vaapidecoder_vp8.cpp b/decoder/vaapidecoder_vp8.cpp
14index 5fc89ec..ff5b896 100644
15--- a/decoder/vaapidecoder_vp8.cpp
16+++ b/decoder/vaapidecoder_vp8.cpp
17@@ -32,12 +32,12 @@ typedef VaapiDecoderVP8::PicturePtr PicturePtr;
18
19 // the following parameter apply to Intra-Predicted Macroblocks,
20 // $11.2 $11.4: key frame default probs
21-static const uint8_t keyFrameYModeProbs[4] = { 145, 156, 163, 128 };
22-static const uint8_t keyFrameUVModeProbs[3] = { 142, 114, 183 };
23+//static const uint8_t keyFrameYModeProbs[4] = { 145, 156, 163, 128 };
24+//static const uint8_t keyFrameUVModeProbs[3] = { 142, 114, 183 };
25
26 // $16.1: non-key frame default probs
27-static const uint8_t nonKeyFrameDefaultYModeProbs[4] = { 112, 86, 140, 37 };
28-static const uint8_t nonKeyFrameDefaultUVModeProbs[3] = { 162, 101, 204 };
29+//static const uint8_t nonKeyFrameDefaultYModeProbs[4] = { 112, 86, 140, 37 };
30+//static const uint8_t nonKeyFrameDefaultUVModeProbs[3] = { 162, 101, 204 };
31
32 static const uint32_t surfaceNumVP8 = 3;
33
34--
352.14.1
36
diff --git a/recipes-multimedia/libyami/libyami/0008-NalUnit-is-declared-in-different-namespace.patch b/recipes-multimedia/libyami/libyami/0008-NalUnit-is-declared-in-different-namespace.patch
deleted file mode 100644
index 18b98be8..00000000
--- a/recipes-multimedia/libyami/libyami/0008-NalUnit-is-declared-in-different-namespace.patch
+++ /dev/null
@@ -1,31 +0,0 @@
1From c54130511c91e457f1c5bb47729f5e3a0fc0cb91 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 11 Aug 2017 18:42:28 -0700
4Subject: [PATCH 8/9] NalUnit is declared in different namespace
5
6Fixes
7vaapidecoder_h265.h:32:5: error: struct 'NalUnit' was previously declared as a class [-Werror,-Wmismatched-tags] struct NalUnit;
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11Upstream-Status: Pending
12
13 decoder/vaapidecoder_h265.h | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/decoder/vaapidecoder_h265.h b/decoder/vaapidecoder_h265.h
17index 159e25f..674638f 100644
18--- a/decoder/vaapidecoder_h265.h
19+++ b/decoder/vaapidecoder_h265.h
20@@ -29,7 +29,7 @@ namespace YamiParser {
21 namespace H265 {
22 struct SPS;
23 struct SliceHeader;
24- struct NalUnit;
25+ class NalUnit;
26 class Parser;
27 };
28 };
29--
302.14.1
31
diff --git a/recipes-multimedia/libyami/libyami/0009-Fix-clang-warnings.patch b/recipes-multimedia/libyami/libyami/0009-Fix-clang-warnings.patch
deleted file mode 100644
index 08ef455b..00000000
--- a/recipes-multimedia/libyami/libyami/0009-Fix-clang-warnings.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1From a54dc7b6a777882f55a3f31bd97748a261db03d2 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 11 Aug 2017 18:53:06 -0700
4Subject: [PATCH 9/9] Fix clang warnings
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8Upstream-Status: Pending
9
10 encoder/vaapiencoder_h264.cpp | 4 ++--
11 1 file changed, 2 insertions(+), 2 deletions(-)
12
13diff --git a/encoder/vaapiencoder_h264.cpp b/encoder/vaapiencoder_h264.cpp
14index 98bc2ed..94015cb 100644
15--- a/encoder/vaapiencoder_h264.cpp
16+++ b/encoder/vaapiencoder_h264.cpp
17@@ -509,7 +509,7 @@ bit_writer_write_sps(BitWriter* bitwriter,
18 }
19 /* vcl_hrd_parameters_present_flag */
20 bitwriter->writeBits(0, 1);
21- if (nal_hrd_parameters_present_flag || 0/*vcl_hrd_parameters_present_flag*/) {
22+ if (nal_hrd_parameters_present_flag || !!(0)/*vcl_hrd_parameters_present_flag*/) {
23 /* low_delay_hrd_flag */
24 bitwriter->writeBits(0, 1);
25 }
26@@ -1889,7 +1889,7 @@ bool VaapiEncoderH264::addSliceHeaders (const PicturePtr& picture) const
27 sliceParam->num_macroblocks = curSliceMbs;
28 sliceParam->macroblock_info = VA_INVALID_ID;
29 sliceParam->slice_type = h264_get_slice_type (picture->m_type);
30- assert (sliceParam->slice_type != -1);
31+ assert ((int)sliceParam->slice_type != -1);
32 sliceParam->idr_pic_id = m_idrNum;
33 sliceParam->pic_order_cnt_lsb = picture->m_poc % m_maxPicOrderCnt;
34
35--
362.14.1
37
diff --git a/recipes-multimedia/libyami/libyami/0010-h26xparser-Fix-build-error-with-GCC9.patch b/recipes-multimedia/libyami/libyami/0010-h26xparser-Fix-build-error-with-GCC9.patch
deleted file mode 100644
index be69ab71..00000000
--- a/recipes-multimedia/libyami/libyami/0010-h26xparser-Fix-build-error-with-GCC9.patch
+++ /dev/null
@@ -1,157 +0,0 @@
1From fdb8185749098eaf55050c4ec5c0f21c5be1e326 Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Tue, 4 Jun 2019 16:53:16 +0800
4Subject: [PATCH] h26xparser: Fix build error with GCC9
5
6GCC9 causing build failure:
7
8| ../../git/codecparsers/h264Parser.cpp: In constructor 'YamiParser::H264::PPS::PPS()':
9| ../../git/codecparsers/h264Parser.cpp:140:41: error: 'void* memset(void*, int, size_t)' clearing an object of type 'struct YamiParser::H264::PPS' with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess]
10| 140 | memset(this, 0, offsetof(PPS, m_sps));
11| | ^
12| In file included from ../../git/codecparsers/h264Parser.cpp:21:
13| ../../git/codecparsers/h264Parser.h:292:8: note: 'struct YamiParser::H264::PPS' declared here
14| 292 | struct PPS {
15| | ^~~
16| ../../git/codecparsers/h264Parser.cpp: In constructor 'YamiParser::H264::SliceHeader::SliceHeader()':
17| ../../git/codecparsers/h264Parser.cpp:686:49: error: 'void* memset(void*, int, size_t)' clearing an object of type 'class YamiParser::H264::SliceHeader' with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess]
18| 686 | memset(this, 0, offsetof(SliceHeader, m_pps));
19| | ^
20| In file included from ../../git/codecparsers/h264Parser.cpp:21:
21| ../../git/codecparsers/h264Parser.h:371:7: note: 'class YamiParser::H264::SliceHeader' declared here
22| 371 | class SliceHeader {
23| | ^~~~~~~~~~~
24| ../../git/codecparsers/h265Parser.cpp: In constructor 'YamiParser::H265::VPS::VPS()':
25| ../../git/codecparsers/h265Parser.cpp:165:53: error: 'void* memset(void*, int, size_t)' clearing an object of type 'struct YamiParser::H265::VPS' with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess]
26| 165 | memset(this, 0, offsetof(VPS, hrd_layer_set_idx));
27| | ^
28| In file included from ../../git/codecparsers/h265Parser.cpp:21:
29| ../../git/codecparsers/h265Parser.h:256:12: note: 'struct YamiParser::H265::VPS' declared here
30| 256 | struct VPS {
31| | ^~~
32| ../../git/codecparsers/h265Parser.cpp: In constructor 'YamiParser::H265::SPS::SPS()':
33| ../../git/codecparsers/h265Parser.cpp:174:39: error: 'void* memset(void*, int, size_t)' clearing an object of type 'struct YamiParser::H265::SPS' with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess]
34| 174 | memset(this, 0, offsetof(SPS, vps));
35| | ^
36| In file included from ../../git/codecparsers/h265Parser.cpp:21:
37| ../../git/codecparsers/h265Parser.h:290:12: note: 'struct YamiParser::H265::SPS' declared here
38| 290 | struct SPS {
39| | ^~~
40| ../../git/codecparsers/h265Parser.cpp: In constructor 'YamiParser::H265::PPS::PPS()':
41| ../../git/codecparsers/h265Parser.cpp:179:39: error: 'void* memset(void*, int, size_t)' clearing an object of type 'struct YamiParser::H265::PPS' with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess]
42| 179 | memset(this, 0, offsetof(PPS, sps));
43| | ^
44| In file included from ../../git/codecparsers/h265Parser.cpp:21:
45| ../../git/codecparsers/h265Parser.h:362:12: note: 'struct YamiParser::H265::PPS' declared here
46| 362 | struct PPS {
47| | ^~~
48| ../../git/codecparsers/h265Parser.cpp: In constructor 'YamiParser::H265::SliceHeader::SliceHeader()':
49| ../../git/codecparsers/h265Parser.cpp:184:47: error: 'void* memset(void*, int, size_t)' clearing an object of type 'struct YamiParser::H265::SliceHeader' with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess]
50| 184 | memset(this, 0, offsetof(SliceHeader, pps));
51| | ^
52| In file included from ../../git/codecparsers/h265Parser.cpp:21:
53| ../../git/codecparsers/h265Parser.h:499:12: note: 'struct YamiParser::H265::SliceHeader' declared here
54| 499 | struct SliceHeader {
55| | ^~~~~~~~~~~
56| ../../git/codecparsers/mpeg2_parser.cpp: In constructor 'YamiParser::MPEG2::SeqHeader::SeqHeader()':
57| ../../git/codecparsers/mpeg2_parser.cpp:163:59: error: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct YamiParser::MPEG2::SeqHeader'; use assignment or value-initialization instead [-Werror=class-memaccess]
58| 163 | SeqHeader::SeqHeader() { memset(this, 0, sizeof(*this)); }
59| | ^
60| In file included from ../../git/codecparsers/mpeg2_parser.cpp:34:
61| ../../git/codecparsers/mpeg2_parser.h:153:12: note: 'struct YamiParser::MPEG2::SeqHeader' declared here
62| 153 | struct SeqHeader {
63| | ^~~~~~~~~
64| cc1plus: all warnings being treated as errors
65
66By typecasting structure pointer to void pointer, GCC9 does normal memset operation where offsetof() give correct
67number of bytes to set.
68
69Status: Submitted [https://github.com/intel/libyami/pull/876]
70
71Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
72---
73 codecparsers/h264Parser.cpp | 4 ++--
74 codecparsers/h265Parser.cpp | 8 ++++----
75 codecparsers/mpeg2_parser.cpp | 3 ++-
76 3 files changed, 8 insertions(+), 7 deletions(-)
77
78diff --git a/codecparsers/h264Parser.cpp b/codecparsers/h264Parser.cpp
79index 22117a1..6f7959e 100644
80--- a/codecparsers/h264Parser.cpp
81+++ b/codecparsers/h264Parser.cpp
82@@ -137,7 +137,7 @@ static bool scalingList(NalReader& br, uint8_t* sl, uint32_t size, uint32_t inde
83
84 PPS::PPS()
85 {
86- memset(this, 0, offsetof(PPS, m_sps));
87+ memset((void*)this, 0, offsetof(PPS, m_sps));
88 }
89
90 PPS::~PPS()
91@@ -683,7 +683,7 @@ Parser::searchSps(uint8_t id) const
92
93 SliceHeader::SliceHeader()
94 {
95- memset(this, 0, offsetof(SliceHeader, m_pps));
96+ memset((void*)this, 0, offsetof(SliceHeader, m_pps));
97 }
98
99 bool SliceHeader::refPicListModification(NalReader& br, RefPicListModification* pm0,
100diff --git a/codecparsers/h265Parser.cpp b/codecparsers/h265Parser.cpp
101index 0dea3a6..d7e6740 100644
102--- a/codecparsers/h265Parser.cpp
103+++ b/codecparsers/h265Parser.cpp
104@@ -162,7 +162,7 @@ static const uint8_t DefaultScalingList2[64] = {
105
106 VPS::VPS()
107 {
108- memset(this, 0, offsetof(VPS, hrd_layer_set_idx));
109+ memset((void*)this, 0, offsetof(VPS, hrd_layer_set_idx));
110 }
111
112 VPS::~VPS()
113@@ -171,17 +171,17 @@ VPS::~VPS()
114
115 SPS::SPS()
116 {
117- memset(this, 0, offsetof(SPS, vps));
118+ memset((void*)this, 0, offsetof(SPS, vps));
119 }
120
121 PPS::PPS()
122 {
123- memset(this, 0, offsetof(PPS, sps));
124+ memset((void*)this, 0, offsetof(PPS, sps));
125 }
126
127 SliceHeader::SliceHeader()
128 {
129- memset(this, 0, offsetof(SliceHeader, pps));
130+ memset((void*)this, 0, offsetof(SliceHeader, pps));
131 }
132
133 SliceHeader::~SliceHeader()
134diff --git a/codecparsers/mpeg2_parser.cpp b/codecparsers/mpeg2_parser.cpp
135index 21032b1..173da39 100644
136--- a/codecparsers/mpeg2_parser.cpp
137+++ b/codecparsers/mpeg2_parser.cpp
138@@ -33,6 +33,7 @@
139 #include "common/log.h"
140 #include "mpeg2_parser.h"
141 #include <inttypes.h>
142+#include <cstddef>
143
144 namespace YamiParser {
145 namespace MPEG2 {
146@@ -160,7 +161,7 @@ namespace MPEG2 {
147
148 SeqExtension::SeqExtension() { memset(this, 0, sizeof(*this)); }
149
150- SeqHeader::SeqHeader() { memset(this, 0, sizeof(*this)); }
151+ SeqHeader::SeqHeader() { memset((void*)this, 0, offsetof(SeqHeader, quantizationMatrices)); }
152
153 StreamHeader::StreamHeader() { memset(this, 0, sizeof(*this)); }
154
155--
1562.17.0
157
diff --git a/recipes-multimedia/libyami/libyami_1.3.1.bb b/recipes-multimedia/libyami/libyami_1.3.1.bb
deleted file mode 100644
index 83845935..00000000
--- a/recipes-multimedia/libyami/libyami_1.3.1.bb
+++ /dev/null
@@ -1,31 +0,0 @@
1SUMMARY = "Yami is media infrastructure base on libva"
2DESCRIPTION = "Yet Another Media Infrastructure \
3light weight hardware codec library base on VA-API "
4
5HOMEPAGE = "https://github.com/intel/libyami"
6BUGTRACKER = "https://github.com/intel/libyami/issues/new"
7
8LICENSE = "Apache-2.0"
9LIC_FILES_CHKSUM = "file://LICENSE.md;md5=3b83ef96387f14655fc854ddc3c6bd57"
10
11SRC_URI = "git://github.com/intel/libyami.git;branch=apache \
12 file://0001-bitWriter.cpp-Delete-unused-CACHEBYTES.patch \
13 file://0002-typecast-index-from-size_t-to-int.patch \
14 file://0003-Add-Wno-invalid-offsetof-to-compiler-commandline.patch \
15 file://0004-Typecast-POWER32SUB2-to-uint8_t.patch \
16 file://0006-Avoid-namespace-conflicts-by-adding-explicit-using-n.patch \
17 file://0007-Delete-unused-variables.patch \
18 file://0008-NalUnit-is-declared-in-different-namespace.patch \
19 file://0009-Fix-clang-warnings.patch \
20 file://0010-h26xparser-Fix-build-error-with-GCC9.patch \
21"
22SRCREV = "fb48083de91f837ddbf599dd4b5ad1eb1239e1cf"
23S = "${WORKDIR}/git"
24
25PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", d)}"
26PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxrandr libxrender"
27
28DEPENDS = "libva"
29inherit autotools pkgconfig distro_features_check
30
31REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/recipes-multimedia/mediasdk/intel-mediasdk_19.1.0.bb b/recipes-multimedia/mediasdk/intel-mediasdk_19.1.0.bb
deleted file mode 100644
index 7dd4da63..00000000
--- a/recipes-multimedia/mediasdk/intel-mediasdk_19.1.0.bb
+++ /dev/null
@@ -1,38 +0,0 @@
1SUMMARY = "Intel(R) Media SDK for hardware accelerated media processing"
2DESCRIPTION = "Intel(R) Media SDK provides an API to access hardware-accelerated \
3video decode, encode and filtering on Intel® platforms with integrated graphics."
4
5HOMEPAGE = "https://github.com/Intel-Media-SDK/MediaSDK"
6BUGTRACKER = "https://github.com/Intel-Media-SDK/MediaSDK/issues"
7
8LICENSE = "MIT"
9LIC_FILES_CHKSUM = "file://LICENSE;md5=3cb331af679cd8f968bf799a9c55b46e"
10
11# Only for 64 bit until media-driver issues aren't fixed
12COMPATIBLE_HOST = '(x86_64).*-linux'
13
14DEPENDS += "libdrm libva intel-media-driver"
15
16PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "dri3", "", d)} \
17 ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", d)}"
18
19PACKAGECONFIG[dri3] = "-DENABLE_X11_DRI3=ON, -DENABLE_X11_DRI3=OFF"
20PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND=ON, -DENABLE_WAYLAND=OFF, wayland wayland-native"
21
22SRC_URI = " \
23 git://github.com/Intel-Media-SDK/MediaSDK.git;protocol=https;branch=${BPN}-19.1 \
24 "
25
26SRCREV = "428b07dabe13b991ba20cf796c91f897a8d1b972"
27S = "${WORKDIR}/git"
28
29UPSTREAM_CHECK_GITTAGREGEX = "^intel-mediasdk-(?P<pver>(\d+(\.\d+)+))$"
30
31inherit cmake pkgconfig
32
33EXTRA_OECMAKE += "-DMFX_INCLUDE=${S}/api/include -DBUILD_SAMPLES=OFF"
34
35FILES_${PN} += " \
36 ${libdir}/mfx \
37 ${datadir}/mfx/plugins.cfg \
38 "
diff --git a/recipes-multimedia/vpl/files/0001-Add-cstdint-header-to-resolve-build-issue-with-gcc-1.patch b/recipes-multimedia/vpl/files/0001-Add-cstdint-header-to-resolve-build-issue-with-gcc-1.patch
new file mode 100644
index 00000000..3158aef6
--- /dev/null
+++ b/recipes-multimedia/vpl/files/0001-Add-cstdint-header-to-resolve-build-issue-with-gcc-1.patch
@@ -0,0 +1,34 @@
1From a0fe1b898ba446fdd45ff7fdad18d442140df090 Mon Sep 17 00:00:00 2001
2From: Yogesh Tyagi <yogesh.tyagi@intel.com>
3Date: Sun, 11 May 2025 17:21:17 +0530
4Subject: [PATCH] Add cstdint header to resolve build issue with gcc-15
5
6Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
7
8Upstream-Status: Submitted [https://github.com/intel/libvpl-tools/pull/7]
9---
10 tools/legacy/sample_vpp/src/sample_vpp_frc_adv.cpp | 3 ++-
11 1 file changed, 2 insertions(+), 1 deletion(-)
12
13diff --git a/tools/legacy/sample_vpp/src/sample_vpp_frc_adv.cpp b/tools/legacy/sample_vpp/src/sample_vpp_frc_adv.cpp
14index 29d4a99..91baf8b 100644
15--- a/tools/legacy/sample_vpp/src/sample_vpp_frc_adv.cpp
16+++ b/tools/legacy/sample_vpp/src/sample_vpp_frc_adv.cpp
17@@ -5,6 +5,7 @@
18 ############################################################################*/
19
20 #include "sample_vpp_frc_adv.h"
21+#include <cstdint>
22 #include <math.h>
23 #include <algorithm>
24 #include "vm/strings_defs.h"
25@@ -179,4 +180,4 @@ mfxU64 FRCAdvancedChecker::GetExpectedPTS(mfxU32 frameNumber, mfxU64 timeOffset,
26
27 } // mfxU64 FRCAdvancedChecker::GetExpectedPTS( mfxU32 frameNumber, mfxU64 timeOffset, mfxU64 timeJump )
28
29-/* EOF */
30\ No newline at end of file
31+/* EOF */
32--
332.43.0
34
diff --git a/recipes-multimedia/vpl/files/0001-Update-vpl-inspect-to-remove-ReportedStats.patch b/recipes-multimedia/vpl/files/0001-Update-vpl-inspect-to-remove-ReportedStats.patch
new file mode 100644
index 00000000..8ccd7e46
--- /dev/null
+++ b/recipes-multimedia/vpl/files/0001-Update-vpl-inspect-to-remove-ReportedStats.patch
@@ -0,0 +1,73 @@
1From 39ec70e27cb6887d6b9e6abc231d1052f02c4d9b Mon Sep 17 00:00:00 2001
2From: "Yuan, Jenny" <jenny.yuan@intel.com>
3Date: Thu, 13 Feb 2025 11:54:46 -0800
4Subject: [PATCH] Update vpl-inspect to remove ReportedStats
5
6Since experimental API mfxEncoderDescription::encoder::ReportedStats is
7going to be removed, update vpl-inspect to remove ReportedStats field
8report.
9
10Upstream-Status: Backport [https://github.com/intel/libvpl-tools/commit/39ec70e27cb6887d6b9e6abc231d1052f02c4d9b]
11---
12 tools/cli/vpl-inspect/src/vpl-inspect.cpp | 38 -----------------------
13 1 file changed, 38 deletions(-)
14
15diff --git a/tools/cli/vpl-inspect/src/vpl-inspect.cpp b/tools/cli/vpl-inspect/src/vpl-inspect.cpp
16index e872316..b6e302f 100644
17--- a/tools/cli/vpl-inspect/src/vpl-inspect.cpp
18+++ b/tools/cli/vpl-inspect/src/vpl-inspect.cpp
19@@ -113,22 +113,6 @@ const char *_print_MediaAdapterType(mfxMediaAdapterType type) {
20 return "<unknown media adapter type>";
21 }
22
23-#ifdef ONEVPL_EXPERIMENTAL
24-const char *_print_EncodeStatsType(mfxU16 type) {
25- switch (type) {
26- STRING_OPTION(MFX_ENCODESTATS_LEVEL_BLK);
27- STRING_OPTION(MFX_ENCODESTATS_LEVEL_SLICE);
28- STRING_OPTION(MFX_ENCODESTATS_LEVEL_TILE);
29- STRING_OPTION(MFX_ENCODESTATS_LEVEL_FRAME);
30-
31- default:
32- break;
33- }
34-
35- return "<unknown encode stats type>";
36-}
37-#endif
38-
39 #ifdef ONEVPL_EXPERIMENTAL
40 const char *_print_SurfaceType(mfxSurfaceType type) {
41 switch (type) {
42@@ -549,28 +533,6 @@ int main(int argc, char *argv[]) {
43 "",
44 enc->Codecs[codec].BiDirectionalPrediction);
45
46-#ifdef ONEVPL_EXPERIMENTAL
47- // Once ReportedStats is moved out of experimental API the struct version of mfxEncoderDescription should
48- // be updated, and that can be used to know whether this field is valid.
49- // For now, just check implementation API version.
50- mfxVersion reqApiVersionReportedStats = {};
51- reqApiVersionReportedStats.Major = 2;
52- reqApiVersionReportedStats.Minor = 7;
53- if (idesc->ApiVersion.Version >= reqApiVersionReportedStats.Version) {
54- mfxU16 reportedStats = enc->Codecs[codec].ReportedStats;
55- if (reportedStats) {
56- for (mfxU16 statMask = 1; statMask != 0; statMask <<= 1) {
57- if (reportedStats & statMask) {
58- const char *statStr = _print_EncodeStatsType(statMask);
59- printf("%4sReportedStats: %s\n", "", statStr);
60- }
61- }
62- }
63- else {
64- printf("%4sReportedStats: 0\n", "");
65- }
66- }
67-#endif
68 for (int profile = 0; profile < enc->Codecs[codec].NumProfiles; profile++) {
69 printf("%6sProfile: %s\n",
70 "",
71--
722.43.0
73
diff --git a/recipes-multimedia/vpl/files/0001-vpl.pc.in-dont-pass-pcfiledir-to-cflags.patch b/recipes-multimedia/vpl/files/0001-vpl.pc.in-dont-pass-pcfiledir-to-cflags.patch
new file mode 100644
index 00000000..f9a568a7
--- /dev/null
+++ b/recipes-multimedia/vpl/files/0001-vpl.pc.in-dont-pass-pcfiledir-to-cflags.patch
@@ -0,0 +1,25 @@
1From ff715f4c543ddabc5c90160d0ae5c5598e8e1289 Mon Sep 17 00:00:00 2001
2From: Markus Volk <f_l_k@t-online.de>
3Date: Thu, 15 Jun 2023 13:43:32 +0200
4Subject: [PATCH] vpl.pc.in: dont pass pcfiledir to cflags
5
6Signed-off-by: Markus Volk <f_l_k@t-online.de>
7
8Upstream-Status: Inappropriate [oe specific]
9---
10 libvpl/pkgconfig/vpl.pc.in | 4 ++--
11 1 file changed, 2 insertions(+), 2 deletions(-)
12
13diff --git a/libvpl/pkgconfig/vpl.pc.in b/libvpl/pkgconfig/vpl.pc.in
14index aa9b158..b4e85ff 100644
15--- a/libvpl/pkgconfig/vpl.pc.in
16+++ b/libvpl/pkgconfig/vpl.pc.in
17@@ -7,6 +7,6 @@ Description: Accelerated video decode, encode, and frame processing capabilities
18 Version: @API_VERSION_MAJOR@.@API_VERSION_MINOR@
19 URL: https://github.com/intel/libvpl
20
21-Libs: -L${libdir} -l@OUTPUT_NAME@ @VPL_PKGCONFIG_DEPENDENT_LIBS@
22+Libs: -L@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@ -l@OUTPUT_NAME@ @VPL_PKGCONFIG_DEPENDENT_LIBS@
23 Libs.private: @VPL_PKGCONFIG_PRIVATE_LIBS@
24-Cflags: -I${includedir} -I${includedir}/vpl
25+Cflags: -I@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@ -I@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@/vpl
diff --git a/recipes-multimedia/vpl/libvpl-tools_1.3.0.bb b/recipes-multimedia/vpl/libvpl-tools_1.3.0.bb
new file mode 100644
index 00000000..e89a9d46
--- /dev/null
+++ b/recipes-multimedia/vpl/libvpl-tools_1.3.0.bb
@@ -0,0 +1,44 @@
1SUMMARY = "Intel Video Processing Library Tools"
2DESCRIPTION = "Intel Video Processing Library (VPL) Tools provides \
3access to hardware accelerated video decode, encode and video processing \
4capabilities on Intel® GPUs use cases."
5
6HOMEPAGE = "https://github.com/intel/libvpl-tools"
7LICENSE = "MIT"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=c18ea6bb4786a26bf4eee88a7424a408 \
9 file://third-party-programs.txt;md5=ddf05049184e74942f45b0ca4cc69b8a"
10
11SRC_URI = "git://github.com/intel/libvpl-tools.git;protocol=https;branch=main \
12 file://0001-Update-vpl-inspect-to-remove-ReportedStats.patch \
13 file://0001-Add-cstdint-header-to-resolve-build-issue-with-gcc-1.patch \
14 "
15
16SRCREV = "82eab13ecec99f34e0f1d5dac490611b604406c9"
17S = "${WORKDIR}/git"
18
19inherit cmake
20DEPENDS += "libva libvpl pkgconfig-native"
21
22PACKAGECONFIG ??= "tools"
23PACKAGECONFIG[tools] = "-DENABLE_WAYLAND=ON, -DENABLE_WAYLAND=OFF, wayland wayland-native wayland-protocols"
24
25do_install:append() {
26 mkdir -p ${D}${datadir}/VPL/samples
27 mv ${D}${bindir}/sample_* ${D}${datadir}/VPL/samples
28 mv ${D}${bindir}/metrics_monitor ${D}${datadir}/VPL/samples
29}
30
31COMPATIBLE_HOST = '(x86_64).*-linux'
32
33FILES_SOLIBSDEV = ""
34
35FILES:${PN} += " ${datadir}/VPL/samples \
36 ${libdir}/libcttmetrics.so \
37 ${libdir}/vpl-tools/libvpl_wayland.* \
38 "
39
40FILES:${PN}-dev += "${libdir}/vpl-tools/libvpl_wayland.so \
41 "
42
43FILES:${PN}-doc += " ${datadir}/vpl-tools \
44 "
diff --git a/recipes-multimedia/vpl/libvpl_2.14.0.bb b/recipes-multimedia/vpl/libvpl_2.14.0.bb
new file mode 100644
index 00000000..d52ca076
--- /dev/null
+++ b/recipes-multimedia/vpl/libvpl_2.14.0.bb
@@ -0,0 +1,44 @@
1SUMMARY = "Intel Video Processing Library"
2DESCRIPTION = "Intel Video Processing Library (VPL) provides \
3a single video processing API for encode, decode, and video processing \
4that works across a wide range of accelerators."
5
6HOMEPAGE = "https://github.com/intel/libvpl"
7LICENSE = "MIT"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=c18ea6bb4786a26bf4eee88a7424a408 \
9 file://third-party-programs.txt;md5=ddf05049184e74942f45b0ca4cc69b8a"
10
11SRC_URI = "git://github.com/intel/libvpl.git;protocol=https;branch=main \
12 file://0001-vpl.pc.in-dont-pass-pcfiledir-to-cflags.patch \
13 "
14SRCREV = "025d43d086a3e663184cb49febe86152bf05409f"
15S = "${WORKDIR}/git"
16
17inherit cmake
18DEPENDS += "libva pkgconfig-native"
19
20PACKAGECONFIG ??= "tools"
21PACKAGECONFIG[tools] = "-DBUILD_TOOLS=ON, -DBUILD_TOOLS=OFF, wayland wayland-native wayland-protocols"
22
23EXTRA_OECMAKE = "-DBUILD_EXAMPLES=ON"
24
25do_install:append() {
26 mkdir -p ${D}${datadir}/VPL/samples
27 mv ${D}${bindir}/hello-* ${D}${datadir}/VPL/samples
28}
29
30COMPATIBLE_HOST = '(x86_64).*-linux'
31
32PACKAGES =+ "${PN}-examples"
33
34RREPLACES:${PN} = "onevpl"
35RCONFLICTS:${PN} = "onevpl"
36
37FILES:${PN}-examples = "${datadir}/vpl \
38 "
39
40FILES_SOLIBSDEV = ""
41FILES:${PN}-dev += "${libdir}/libvpl.so"
42
43FILES:${PN} += " ${datadir}/VPL/samples \
44 "
diff --git a/recipes-multimedia/vpl/vpl-gpu-rt_25.1.4.bb b/recipes-multimedia/vpl/vpl-gpu-rt_25.1.4.bb
new file mode 100644
index 00000000..d182ce53
--- /dev/null
+++ b/recipes-multimedia/vpl/vpl-gpu-rt_25.1.4.bb
@@ -0,0 +1,33 @@
1SUMMARY = "Intel(R) oneVPL runtime for Intel GPU accelerated media processing"
2DESCRIPTION = "Intel(R) oneVPL runtime provides an runtime to access hardware-accelerated \
3video decode, encode and filtering on Intel® graphics."
4
5HOMEPAGE = "https://github.com/intel/vpl-gpu-rt"
6BUGTRACKER = "https://github.com/intel/vpl-gpu-rt/issues"
7
8LICENSE = "MIT"
9LIC_FILES_CHKSUM = "file://LICENSE;md5=eb8cb45b9b57dbaa9fcc9adc4230202b"
10
11PE = "1"
12
13# Only for 64 bit
14COMPATIBLE_HOST = '(x86_64).*-linux'
15COMPATIBLE_HOST:x86-x32 = "null"
16
17DEPENDS += "libdrm libva intel-media-driver libvpl pkgconfig-native"
18RDEPENDS:${PN} += "intel-media-driver"
19
20SRC_URI = "git://github.com/intel/vpl-gpu-rt.git;protocol=https;nobranch=1;lfs=0 \
21 "
22
23SRCREV = "c65990e456acf901597a76b22407232679152547"
24S = "${WORKDIR}/git"
25
26FILES:${PN} += " \
27 ${libdir}/libmfx-gen/enctools.so \
28 "
29
30inherit cmake
31
32RREPLACES:${PN} = "onevpl-intel-gpu"
33RCONFLICTS:${PN} = "onevpl-intel-gpu"
diff --git a/recipes-oneapi/crypto/intel-crypto-mb/0001-CMakeLists.txt-exclude-host-system-headers.patch b/recipes-oneapi/crypto/intel-crypto-mb/0001-CMakeLists.txt-exclude-host-system-headers.patch
new file mode 100644
index 00000000..58ed1c9a
--- /dev/null
+++ b/recipes-oneapi/crypto/intel-crypto-mb/0001-CMakeLists.txt-exclude-host-system-headers.patch
@@ -0,0 +1,27 @@
1From efedbf9080c19241c2aa9ee7ba901245d38c8fa2 Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Mon, 7 Mar 2022 16:44:24 +0800
4Subject: [PATCH 1/2] CMakeLists.txt: exclude host system headers
5
6Upstream-Status: Inappropriate
7
8Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
9---
10 sources/ippcp/crypto_mb/CMakeLists.txt | 1 -
11 1 file changed, 1 deletion(-)
12
13diff --git a/sources/ippcp/crypto_mb/CMakeLists.txt b/sources/ippcp/crypto_mb/CMakeLists.txt
14index c4cc82a..4094f34 100644
15--- a/sources/ippcp/crypto_mb/CMakeLists.txt
16+++ b/sources/ippcp/crypto_mb/CMakeLists.txt
17@@ -82,7 +82,6 @@ include_directories(
18 ${CRYPTO_MB_INCLUDE_DIR}
19 ${OPENSSL_INCLUDE_DIR}
20 $<$<C_COMPILER_ID:Intel>:$ENV{ROOT}/compiler/include $ENV{ROOT}/compiler/include/icc>
21- $<$<NOT:$<C_COMPILER_ID:Intel>>:${CMAKE_SYSTEM_INCLUDE_PATH}>
22 $<$<OR:$<C_COMPILER_ID:Intel>,$<BOOL:${MSVC_IDE}>>:$ENV{INCLUDE}>
23 )
24
25--
262.17.1
27
diff --git a/recipes-oneapi/crypto/intel-crypto-mb/0001-crypto-mb-Make-sure-libs-are-installed-correctly.patch b/recipes-oneapi/crypto/intel-crypto-mb/0001-crypto-mb-Make-sure-libs-are-installed-correctly.patch
new file mode 100644
index 00000000..c47c8de5
--- /dev/null
+++ b/recipes-oneapi/crypto/intel-crypto-mb/0001-crypto-mb-Make-sure-libs-are-installed-correctly.patch
@@ -0,0 +1,42 @@
1From 3b7b4eca54aa8d851e37f60c74e4a027fa7b21f2 Mon Sep 17 00:00:00 2001
2From: Anuj Mittal <anuj.mittal@intel.com>
3Date: Wed, 14 Jun 2023 13:18:45 +0800
4Subject: [PATCH] crypto-mb: Make sure libs are installed correctly
5
6Dont assume that "lib" is always the correct destination. This fixes
7multilib builds when libdir != /usr/lib.
8
9Upstream-Status: Pending
10
11Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
12---
13 sources/ippcp/crypto_mb/src/CMakeLists.txt | 6 +++---
14 1 file changed, 3 insertions(+), 3 deletions(-)
15
16diff --git a/sources/ippcp/crypto_mb/src/CMakeLists.txt b/sources/ippcp/crypto_mb/src/CMakeLists.txt
17index c9cad06..31f52bd 100644
18--- a/sources/ippcp/crypto_mb/src/CMakeLists.txt
19+++ b/sources/ippcp/crypto_mb/src/CMakeLists.txt
20@@ -123,8 +123,8 @@ endif(DYNAMIC_LIB OR MB_STANDALONE)
21 # Installation of the shared library
22 if (MB_STANDALONE) # standalone crypto_mb's cmake run
23 install(TARGETS ${MB_DYN_LIB_TARGET}
24- LIBRARY DESTINATION "lib"
25- RUNTIME DESTINATION "lib"
26+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
27+ RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}
28 PUBLIC_HEADER DESTINATION "include/crypto_mb")
29 elseif (DYNAMIC_LIB) # build from ippcp's cmake
30 install(TARGETS ${MB_DYN_LIB_TARGET}
31@@ -154,7 +154,7 @@ endif()
32 # Static lib installation
33 if(MB_STANDALONE)
34 install(TARGETS ${MB_STATIC_LIB_TARGET}
35- ARCHIVE DESTINATION "lib"
36+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
37 PUBLIC_HEADER DESTINATION "include/crypto_mb")
38 else()
39 install(TARGETS ${MB_STATIC_LIB_TARGET}
40--
412.37.3
42
diff --git a/recipes-oneapi/crypto/intel-crypto-mb/0002-cmake-exclude-Yocto-build-flags.patch b/recipes-oneapi/crypto/intel-crypto-mb/0002-cmake-exclude-Yocto-build-flags.patch
new file mode 100644
index 00000000..62b56ea2
--- /dev/null
+++ b/recipes-oneapi/crypto/intel-crypto-mb/0002-cmake-exclude-Yocto-build-flags.patch
@@ -0,0 +1,45 @@
1From b4549bb765d279b5ba042c6340e1dd69d0890b64 Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Thu, 10 Mar 2022 14:30:01 +0800
4Subject: [PATCH 2/2] cmake: exclude Yocto build flags
5
6Ipp-crypto has its own set of flags and -march values,
7which causes conflict with default -march=nehalem in gcc
8
9Upstream-Status: Inappropriate
10
11Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
12---
13 sources/ippcp/crypto_mb/src/CMakeLists.txt | 2 +-
14 sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake | 2 +-
15 2 files changed, 2 insertions(+), 2 deletions(-)
16
17diff --git a/sources/ippcp/crypto_mb/src/CMakeLists.txt b/sources/ippcp/crypto_mb/src/CMakeLists.txt
18index 1ca1a8c..5284d62 100644
19--- a/sources/ippcp/crypto_mb/src/CMakeLists.txt
20+++ b/sources/ippcp/crypto_mb/src/CMakeLists.txt
21@@ -81,7 +81,7 @@ endif()
22 set(MB_LIB_TARGET ${MB_DYN_LIB_TARGET})
23
24 set_source_files_properties(${CRYPTO_MB_SOURCES} PROPERTIES COMPILE_DEFINITIONS "${AVX512_LIBRARY_DEFINES}"
25- COMPILE_FLAGS "${AVX512_CFLAGS} ${CMAKE_ASM_FLAGS} ${CMAKE_C_FLAGS_SECURITY}")
26+ COMPILE_FLAGS "${AVX512_CFLAGS} ${CMAKE_C_FLAGS_SECURITY}")
27
28 # Don't specify architectural flags for the assembler for this sources, because of the bug in Intel® C Compiler under MacOS: error: invalid instruction mnemonic 'vkmovb'
29 # The bug has been fixed since version 2021.3. This is a workaround to support older versions of Intel® C Compiler.
30diff --git a/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake b/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake
31index a2abeeb..aadd6e2 100644
32--- a/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake
33+++ b/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake
34@@ -58,7 +58,7 @@ set(LINK_FLAGS_DYNAMIC "${LINK_FLAGS_DYNAMIC} ${CRYPTO_MB_SOURCES_DIR}/cmake/dll
35 # Compiler flags
36
37 # Tells the compiler to align functions and loops
38-set(CMAKE_C_FLAGS " -falign-functions=32 -falign-loops=32")
39+set(CMAKE_C_FLAGS " -falign-functions=32 -falign-loops=32 ${TOOLCHAIN_OPTIONS}")
40 # Ensures that compilation takes place in a freestanding environment
41 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffreestanding")
42
43--
442.17.1
45
diff --git a/recipes-oneapi/crypto/intel-crypto-mb_2021.12.1.bb b/recipes-oneapi/crypto/intel-crypto-mb_2021.12.1.bb
new file mode 100644
index 00000000..61383f82
--- /dev/null
+++ b/recipes-oneapi/crypto/intel-crypto-mb_2021.12.1.bb
@@ -0,0 +1,28 @@
1SUMMARY = "Crypto Multi-buffer Library"
2DESCRIPTION = "Intel® Integrated Performance Primitives (Intel® IPP) Cryptography \
3is a secure, fast and lightweight library of building blocks for cryptography, \
4highly-optimized for various Intel® CPUs."
5HOMEPAGE = "https://github.com/intel/ipp-crypto"
6
7LICENSE = "Apache-2.0"
8
9LIC_FILES_CHKSUM = "file://../../../LICENSE;md5=d94a5b4dbbc5c6a0c2ce95ab337df6c4"
10
11IPP_BRANCH = "ipp-crypto_${@'_'.join(d.getVar('PV').rsplit('.')[-3:])}"
12
13SRC_URI = "git://github.com/intel/ipp-crypto;protocol=https;branch=${IPP_BRANCH} \
14 file://0001-CMakeLists.txt-exclude-host-system-headers.patch;striplevel=4 \
15 file://0002-cmake-exclude-Yocto-build-flags.patch;striplevel=4 \
16 file://0001-crypto-mb-Make-sure-libs-are-installed-correctly.patch;striplevel=4 \
17 "
18SRCREV = "7d6ac349507258f49d00909df33d5dea4ff77f39"
19
20S = "${WORKDIR}/git/sources/ippcp/crypto_mb"
21
22DEPENDS = "openssl"
23
24inherit cmake pkgconfig
25COMPATIBLE_HOST = '(x86_64).*-linux'
26
27EXTRA_OECMAKE += " -DARCH=intel64"
28EXTRA_OECMAKE += " -DTOOLCHAIN_OPTIONS='${TOOLCHAIN_OPTIONS}'"
diff --git a/recipes-oneapi/onedpl/onedpl_2022.8.0.bb b/recipes-oneapi/onedpl/onedpl_2022.8.0.bb
new file mode 100644
index 00000000..7e3f309f
--- /dev/null
+++ b/recipes-oneapi/onedpl/onedpl_2022.8.0.bb
@@ -0,0 +1,26 @@
1SUMMARY = "oneAPI DPC++ Library (oneDPL)"
2DESCRIPTION = "The oneAPI DPC++ Library (oneDPL) aims to work with the \
3oneAPI DPC++ Compiler to provide high-productivity APIs to developers, \
4which can minimize DPC++ programming efforts across devices for high \
5performance parallel applications."
6HOMEPAGE = "https://github.com/oneapi-src/oneDPL"
7
8LICENSE = "Apache-2.0-with-LLVM-exception"
9LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2e982d844baa4df1c80de75470e0c5cb \
10 file://third-party-programs.txt;md5=409cd5c825a23043b6bb347861d34b35"
11
12S = "${WORKDIR}/git"
13
14SRC_URI = "git://github.com/uxlfoundation/oneDPL.git;protocol=https;branch=release/2022.8.0 \
15 "
16SRCREV = "89d8d8befd4da2cb52f3724f668d17d7e39d42cf"
17
18do_compile[noexec] = "1"
19do_configure[noexec] = "1"
20
21do_install() {
22 install -d -m 755 ${D}${includedir}/onedpl
23 cp -r ${S}/include/* ${D}${includedir}/onedpl
24}
25
26UPSTREAM_CHECK_GITTAGREGEX = "^oneDPL-(?P<pver>(\d+(\.\d+)+))-release$"
diff --git a/recipes-oneapi/setup-oneapi-env/files/intel-oneapi-runtime.conf b/recipes-oneapi/setup-oneapi-env/files/intel-oneapi-runtime.conf
new file mode 100644
index 00000000..5faf9854
--- /dev/null
+++ b/recipes-oneapi/setup-oneapi-env/files/intel-oneapi-runtime.conf
@@ -0,0 +1,4 @@
1/opt/intel/oneapi/lib
2/opt/intel/oneapi/lib/intel64
3/opt/intel/oneapi/lib/ia32
4/opt/intel/oneapi/lib/emu
diff --git a/recipes-oneapi/setup-oneapi-env/setup-intel-oneapi-env_2023.0.0-25370.bb b/recipes-oneapi/setup-oneapi-env/setup-intel-oneapi-env_2023.0.0-25370.bb
new file mode 100644
index 00000000..a1762a16
--- /dev/null
+++ b/recipes-oneapi/setup-oneapi-env/setup-intel-oneapi-env_2023.0.0-25370.bb
@@ -0,0 +1,23 @@
1SUMMARY = "Intel® oneAPI runtime libraries environment set up"
2DESCRIPTION = "Recipe to set up the environment for Intel® oneAPI runtime libraries \
3via configuration file in ld.so.conf.d directory."
4
5LICENSE = "EULA"
6LIC_FILES_CHKSUM = "file://${CUSTOM_LICENSES_PATH}/EULA;md5=7bfc91523de2e84e7131d0eacf2827d4"
7
8SRC_URI = "file://intel-oneapi-runtime.conf"
9
10S = "${WORKDIR}/sources"
11UNPACKDIR = "${S}"
12
13do_install() {
14 mkdir -p ${D}${sysconfdir}/ld.so.conf.d/
15 install -m 644 ${S}/intel-oneapi-runtime.conf ${D}${sysconfdir}/ld.so.conf.d/
16}
17
18pkg_postinst_ontarget:${PN}() {
19if [ x"$D" = "x" ]; then
20 if [ -x /sbin/ldconfig ]; then /sbin/ldconfig ; fi
21fi
22}
23BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-opencl/igc/files/0001-Fix-for-the-gcc-9-issue.patch b/recipes-opencl/igc/files/0001-Fix-for-the-gcc-9-issue.patch
deleted file mode 100644
index 70447176..00000000
--- a/recipes-opencl/igc/files/0001-Fix-for-the-gcc-9-issue.patch
+++ /dev/null
@@ -1,76 +0,0 @@
1From c3e985e0e82e9b4c2cc8d4dbfd8ff7890daa50e0 Mon Sep 17 00:00:00 2001
2From: "Wesierski, Lukasz" <lukasz.wesierski@intel.com>
3Date: Thu, 6 Jun 2019 21:00:00 -0700
4Subject: [PATCH] Fix for the gcc-9 issue.
5
6Fixes #91
7
8Change-Id: I8149771d6add9645126cb94584f46485c256a488
9
10Upstream-Status: Backport
11[https://github.com/intel/intel-graphics-compiler/commit/b95b2220ddd1d50b718cae6829d832a14ff60790]
12
13Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
14---
15 IGC/AdaptorOCL/cif/cif/common/cif.h | 8 ++++++++
16 IGC/common/LLVMWarningsPop.hpp | 4 ++++
17 IGC/common/LLVMWarningsPush.hpp | 10 ++++++++++
18 3 files changed, 22 insertions(+)
19
20diff --git a/IGC/AdaptorOCL/cif/cif/common/cif.h b/IGC/AdaptorOCL/cif/cif/common/cif.h
21index 99d67d5a..00352964 100644
22--- a/IGC/AdaptorOCL/cif/cif/common/cif.h
23+++ b/IGC/AdaptorOCL/cif/cif/common/cif.h
24@@ -310,6 +310,14 @@ struct InterfacesList {
25 requestedInterfaceId, std::forward<DefaultValueT>(defaultValue), std::forward<Args>(args)...);
26 }
27
28+ /// Calls Callable::Call with all contained interfaces (sequentially, one at a time) as template parameters.
29+ /// Arguments will be forwarded as regular function parameters to Callable::Call.
30+ template <typename Callable, typename RetType, typename DefaultValueT>
31+ static RetType forwardToOne(InterfaceId_t requestedInterfaceId, DefaultValueT &&defaultValue) {
32+ return forwardToOneImpl<0, RetType, Callable, DefaultValueT, InterfacePack<SupportedInterfaces...>>(
33+ requestedInterfaceId, std::forward<DefaultValueT>(defaultValue));
34+ }
35+
36 /// Calls Callable::Call with all contained interfaces (sequentially, one at a time) as template parameters.
37 /// Arguments will be forwarded as regular function parameters to Callable::Call.
38 template <typename Callable, typename... Args>
39diff --git a/IGC/common/LLVMWarningsPop.hpp b/IGC/common/LLVMWarningsPop.hpp
40index 9875acb8..f8e405d2 100644
41--- a/IGC/common/LLVMWarningsPop.hpp
42+++ b/IGC/common/LLVMWarningsPop.hpp
43@@ -57,3 +57,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
44 #ifdef _MSC_VER
45 # pragma warning( pop )
46 #endif
47+
48+#if defined(__linux__)
49+# pragma GCC diagnostic pop
50+#endif
51diff --git a/IGC/common/LLVMWarningsPush.hpp b/IGC/common/LLVMWarningsPush.hpp
52index bab4a5e1..aca8db34 100644
53--- a/IGC/common/LLVMWarningsPush.hpp
54+++ b/IGC/common/LLVMWarningsPush.hpp
55@@ -55,8 +55,18 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
56 # pragma warning( push )
57 #endif
58
59+#if defined(__linux__)
60+# pragma GCC diagnostic push
61+#endif
62+
63 #include <llvm/Config/llvm-config.h>
64
65+#if defined(__linux__)
66+# if __GNUC__ > 8
67+# pragma GCC diagnostic ignored "-Winit-list-lifetime"
68+# endif
69+#endif
70+
71 #if defined( _WIN32 ) || defined( _WIN64 )
72
73 // 'inline' : used more than once
74--
752.17.0
76
diff --git a/recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch b/recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch
deleted file mode 100644
index 1e0c3444..00000000
--- a/recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch
+++ /dev/null
@@ -1,39 +0,0 @@
1From 78270818abd269bc8a1cf5deb69f15e3849333fe Mon Sep 17 00:00:00 2001
2From: Naveen Saini <naveen.kumar.saini@intel.com>
3Date: Wed, 12 Jun 2019 14:10:23 +0800
4Subject: [PATCH] skip execution of ElfPackager
5
6ElfPackager adds the ability to convert llvm bitcode into elf files for
7easier partitioning. Skip for now until we start building a native
8version for this.
9
10Upstream-Status: Inappropriate [configuration specific]
11
12Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
13Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
14---
15 IGC/ElfPackager/CMakeLists.txt | 8 ++++----
16 1 file changed, 4 insertions(+), 4 deletions(-)
17
18diff --git a/IGC/ElfPackager/CMakeLists.txt b/IGC/ElfPackager/CMakeLists.txt
19index 6bf4aa01..d8cd4e8b 100644
20--- a/IGC/ElfPackager/CMakeLists.txt
21+++ b/IGC/ElfPackager/CMakeLists.txt
22@@ -69,10 +69,10 @@ include_directories (
23 ${IGC_SOURCE_DIR}/AdaptorOCL/CLElfLib/
24 )
25
26-add_custom_command(TARGET ${IGC_BUILD__PROJ__ElfPackager}
27- POST_BUILD
28- COMMAND $<TARGET_FILE:${IGC_BUILD__PROJ__ElfPackager}> -includeSizet -funcList ${CMAKE_CURRENT_SOURCE_DIR}/function_bin.txt ${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc ${IGC_BUILD__BIF_DIR}/igdclbif.bin
29- )
30+#add_custom_command(TARGET ${IGC_BUILD__PROJ__ElfPackager}
31+# POST_BUILD
32+# COMMAND $<TARGET_FILE:${IGC_BUILD__PROJ__ElfPackager}> -includeSizet -funcList ${CMAKE_CURRENT_SOURCE_DIR}/function_bin.txt ${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc ${IGC_BUILD__BIF_DIR}/igdclbif.bin
33+# )
34
35
36 add_dependencies("${IGC_BUILD__PROJ__ElfPackager}" "${IGC_BUILD__PROJ__BiFModule_OCL}")
37--
382.17.0
39
diff --git a/recipes-opencl/igc/intel-graphics-compiler_1.0.6.bb b/recipes-opencl/igc/intel-graphics-compiler_1.0.6.bb
deleted file mode 100644
index f64b97fd..00000000
--- a/recipes-opencl/igc/intel-graphics-compiler_1.0.6.bb
+++ /dev/null
@@ -1,27 +0,0 @@
1SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)"
2DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \
3llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \
4hardware architecture."
5
6LICENSE = "MIT & BSD-3-Clause"
7LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \
8 file://IGC/Compiler/LegalizationPass.cpp;md5=4e9a7f0d710a0546cbf5581e1565a986"
9
10SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https \
11 file://0001-skip-execution-of-ElfPackager.patch \
12 file://0001-Fix-for-the-gcc-9-issue.patch \
13 "
14
15SRCREV = "ebfc688126900a821e407a96417800919b793447"
16
17S = "${WORKDIR}/git"
18
19inherit cmake
20
21COMPATIBLE_HOST = '(x86_64).*-linux'
22COMPATIBLE_HOST_libc-musl = "null"
23
24DEPENDS_class-target = " flex-native bison-native clang clang-cross-x86_64"
25
26EXTRA_OECMAKE = "-DIGC_PREFERRED_LLVM_VERSION=8.0.0 -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python2"
27EXTRA_OECMAKE += "-DCOMMON_CLANG_LIBRARY_NAME=common_clang"
diff --git a/recipes-rt/images/core-image-rt-sdk.bb b/recipes-rt/images/core-image-rt-sdk.bb
index 920c4cee..1270283e 100644
--- a/recipes-rt/images/core-image-rt-sdk.bb
+++ b/recipes-rt/images/core-image-rt-sdk.bb
@@ -13,7 +13,7 @@ tools for real-time use. It includes the full meta-toolchain, development \
13headers and libraries to form a standalone SDK." 13headers and libraries to form a standalone SDK."
14DEPENDS += "linux-intel-rt" 14DEPENDS += "linux-intel-rt"
15 15
16IMAGE_FEATURES += "dev-pkgs tools-sdk tools-debug eclipse-debug tools-profile tools-testapps debug-tweaks" 16IMAGE_FEATURES += "dev-pkgs tools-sdk tools-debug eclipse-debug tools-profile tools-testapps"
17 17
18IMAGE_INSTALL += "rt-tests hwlatdetect kernel-dev" 18IMAGE_INSTALL += "rt-tests hwlatdetect kernel-dev"
19 19
diff --git a/recipes-selftest/images/files/incorrect.crt b/recipes-selftest/images/files/incorrect.crt
deleted file mode 100644
index 3a2411ab..00000000
--- a/recipes-selftest/images/files/incorrect.crt
+++ /dev/null
@@ -1,19 +0,0 @@
1-----BEGIN CERTIFICATE-----
2MIIDCTCCAfGgAwIBAgIJAIYXAHv3cQNjMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV
3BAMMEFRlc3QgWW9jdG8gdGhpbmcwHhcNMTcwMTI1MjI1MjI3WhcNMTgwMTI1MjI1
4MjI3WjAbMRkwFwYDVQQDDBBUZXN0IFlvY3RvIHRoaW5nMIIBIjANBgkqhkiG9w0B
5AQEFAAOCAQ8AMIIBCgKCAQEAukI2ioMeL8qaXxMtryonAT51w+Zre0wB8bDBPuXD
6SwDVXNWfiKKTfCVEkLEUnsUEd7jiKswCT5orTwCD7aQK0mTrkAWEi8hEI3MkNoeh
7T51gkuTfv7A/HgPkhhlU4UQqipI6XoLf7o7PUV33ZfB43//iKY2kLBdsFvs4ALWE
831hLOkCFb+nqMnfZxq7DgvBwIdxJdLQvaskpDMfkna+zE3QWqkH5v55atW8Bunwk
9/6q5kqNhyrjZb4i0BqJ5AHFUEQzlDcjpyFVUtR14r0IxjBFMHZXrx4uLe7KvGf/4
10GqpqeFOPqxMsfC5ILJJ7nvwFViqftGgtWg/12bKMTB5saQIDAQABo1AwTjAdBgNV
11HQ4EFgQURA8KbgpiGfS2+7MT0H5AvpxeYLowHwYDVR0jBBgwFoAURA8KbgpiGfS2
12+7MT0H5AvpxeYLowDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAK9n+
139T+hlM2kEpsUgtyihEJbGHzbw+Pj11b0ICntCVuPKewtBMveYp8lejrQwMFNGRMt
14ZQe1LFb9HcLeM3MLUz9Lm4BJIjkey3Jfq1AskROYk/bJnFIJIx6P3U9gBa20P46X
15LH3g6yub1HR7KZC9nfBsak3FPoJR/SYTJs0HsMeL4878+2IbETA4BL0kbKW48FFW
16jF4f6don0eiaF8b4KkfbWKrCaEm+LMxbyBEQ6fIb1cmGY8A9A5houjmgi6YWSkoi
17SLpOC9TZ2R51fO9rRsv7XwLK0V9o9YaEYPBg6V/TeJl5nxAZBeVTKVTQbBGZY+l2
18nzN0pKsl7RXLf3SRYA==
19-----END CERTIFICATE-----
diff --git a/recipes-selftest/images/files/incorrect.key b/recipes-selftest/images/files/incorrect.key
deleted file mode 100644
index d05475b6..00000000
--- a/recipes-selftest/images/files/incorrect.key
+++ /dev/null
@@ -1,27 +0,0 @@
1-----BEGIN RSA PRIVATE KEY-----
2MIIEowIBAAKCAQEAukI2ioMeL8qaXxMtryonAT51w+Zre0wB8bDBPuXDSwDVXNWf
3iKKTfCVEkLEUnsUEd7jiKswCT5orTwCD7aQK0mTrkAWEi8hEI3MkNoehT51gkuTf
4v7A/HgPkhhlU4UQqipI6XoLf7o7PUV33ZfB43//iKY2kLBdsFvs4ALWE31hLOkCF
5b+nqMnfZxq7DgvBwIdxJdLQvaskpDMfkna+zE3QWqkH5v55atW8Bunwk/6q5kqNh
6yrjZb4i0BqJ5AHFUEQzlDcjpyFVUtR14r0IxjBFMHZXrx4uLe7KvGf/4GqpqeFOP
7qxMsfC5ILJJ7nvwFViqftGgtWg/12bKMTB5saQIDAQABAoIBAQCEtAox86s9N6d2
8164z3998Zmj3UyL+7K9x6JI2YvMabBSYGOeaLOLRj6fjQxdC63H8brBM958p4di7
9Z82XMco4Dok6yoOeJ+hMLYv+gfGvTJxy7DhyVXsSwok99axg9vUsV3TYw3wSdpNF
10EKLkcUldpu0W2ADBHUr4sLI85xctHH3Kt0sNDzhgADFa5rDYACXTKHtFOhEqBIwN
11FmbuRQirnErUkI3Pczgl2Xy1MlaozH9CB+bLAb5q2FYu4DKgjl4UorC+w2HV41KH
12XoL7L36XXqLRHBfEAwOWb8yro+TK8T7gW7aagTI1wgsbbQkjQmOHxclmJACdMOiJ
13DjPeR0GBAoGBAO7i2eaEoKa9QlKokN+93uOJD/F6DBi6jF0vGOqWlF8AVTj3kGL3
14X8fY/avrSlg7hKZWdei+Q5PyZViKxqmHjq781ZisKck52Tqz4s7ylqRXSgStinZr
15UqrkShCqZ3g1W91gIeVPQz0/b+gBskoHzQ5WQHfV5v9S1PaxjzcYtCrRAoGBAMea
16LcA2jjuEjqxa5v5fh8ygcHasJMRKJxW1OCKiQ94DjjzPsdVqZ1sJZChLW/N3nxe7
17wHlNJmsGbJ2w1zD5+qkkPjLq5Q4B5KAd62NNrWaEHFdEc/PPkn4xP7Zkfuu5K+m2
187z/MF4ibvVh9PvD3HY8FWKEtkqB4rfD8AoUOVd4ZAoGAXxXAsfa8k2Hl0kzyTXyg
19CWV3CSERS46FbFngyw9gw2e4hFJWEG5ym3ONlS60iuY16JelmxyQfYUQPewPI0+n
20xZMx2fE9OLFj+++6KbF5sLRl6/K/mF8jqo3vxS5uvPRQOo+XLlUcaHalrm1ub/Um
2187v1MT3dEmgACKmoXb/hhuECgYAZluiapePiOYJZEmZe4jx0vXTtofAswhz0qYEC
223663vdj0buQrqjKJ91BB4jdtpT5eOpHYe02blv1B0jQkcUfze1QGDxtCineXF37g
23Aktiwzkm7v22mjv7tbCnX4buDZVVp0BQ+4dg2iaSO6xgFC5T8amFMGSF8jLKnGRu
24ToIvsQKBgADBTse2vnI85NRsYq48ztQuIU2zlGXIAcoPSvGb8Vhty/joc0jWcI5P
25raGXBARbuVlcEapK3mDRfO0CQjDaTPK4EYYJwGp8k33Hkkcbgs4kfm308jRsclMr
26YeMwQsYyOv45x4iPCwrqZEhpPDvACBi7DB6QvZ0++vJbobTt1jyi
27-----END RSA PRIVATE KEY-----
diff --git a/recipes-selftest/images/files/refkit-db.crt b/recipes-selftest/images/files/refkit-db.crt
deleted file mode 100644
index 22ad6a89..00000000
--- a/recipes-selftest/images/files/refkit-db.crt
+++ /dev/null
@@ -1,18 +0,0 @@
1-----BEGIN CERTIFICATE-----
2MIIC+zCCAeOgAwIBAgIJANT2SMJoGZGsMA0GCSqGSIb3DQEBCwUAMBQxEjAQBgNV
3BAMMCXJlZmtpdC1kYjAeFw0xNzA0MjAxMjA2MzJaFw0xODA0MjAxMjA2MzJaMBQx
4EjAQBgNVBAMMCXJlZmtpdC1kYjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
5ggEBALQcIqYiAVfN8U+vcuPZAYBQVe8CXuuZNct/Knn/tT7sXZIGMCDnla2khC4/
6+tdG3Umo6ON5SfaPCx3+Y6jRY6PWDU5sZlzWZibRJpjUT3bJZUhYEwgxvOVHJWWV
7OYlfAvHFBhdYygn99h7Fl9qjThpIvs+WJwRLt21ntlAYBHNR0mot3zur8i2V16i4
8qDChq4uSK2A+OuWGQHHBPy0ukOfW7MzCC3mDcW32o6lMzUaB3O/sUb6BKvF4c0Hb
9VM58zqLjkE9FGvk9iPwO7dNpIkz6CmnRSMCqqTqzjxA6dqgMej3Yec4clmL0Bu5H
106OBpka7qNM/aqLQ5XvN60IhIR2kCAwEAAaNQME4wHQYDVR0OBBYEFGhgESWFFHgb
11Gp9GEuYh5O/7O6rdMB8GA1UdIwQYMBaAFGhgESWFFHgbGp9GEuYh5O/7O6rdMAwG
12A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAI/ShHxDR8pr/YeD0O910yBS
13cxiqMnH7pfTJEaNoTbed5tlGJNzHwjv5sJj87jRuEJs9RG4zCRG4KdYtBs9nj5aF
14nWNyv2RfDePJYxlx1H1MnHdG2iCXbbzdwh/zQDge58xVBXK6JE+zipMMMGDan281
159vuwH7MA3cSmvOI3waPv2aGG+eukpUU4/06HSkHPbml+l74tIryNoBohj0tykAFc
16uqWcLdclJPz/XFgURjAJfFVkgwu5388l7uz3y9vRW5OTyIoQRriwNRxsDY8Dao8b
17NmjzU4k2WyGA3uOSUpSXnUmJfT7eKVG6Efe6Afer6sGnLqNNZf1AcfHiP2woy9M=
18-----END CERTIFICATE-----
diff --git a/recipes-selftest/images/files/refkit-db.key b/recipes-selftest/images/files/refkit-db.key
deleted file mode 100644
index 4b54587e..00000000
--- a/recipes-selftest/images/files/refkit-db.key
+++ /dev/null
@@ -1,28 +0,0 @@
1-----BEGIN PRIVATE KEY-----
2MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC0HCKmIgFXzfFP
3r3Lj2QGAUFXvAl7rmTXLfyp5/7U+7F2SBjAg55WtpIQuP/rXRt1JqOjjeUn2jwsd
4/mOo0WOj1g1ObGZc1mYm0SaY1E92yWVIWBMIMbzlRyVllTmJXwLxxQYXWMoJ/fYe
5xZfao04aSL7PlicES7dtZ7ZQGARzUdJqLd87q/ItldeouKgwoauLkitgPjrlhkBx
6wT8tLpDn1uzMwgt5g3Ft9qOpTM1Ggdzv7FG+gSrxeHNB21TOfM6i45BPRRr5PYj8
7Du3TaSJM+gpp0UjAqqk6s48QOnaoDHo92HnOHJZi9AbuR+jgaZGu6jTP2qi0OV7z
8etCISEdpAgMBAAECggEAbtXplKbUgL4hQ9JKN2Cxhc7qMv0YgI92BVaqQw1S8ffu
91Q+tynH5MDRPi06gBJ59SvkA6AsZsvrv8nM7zQWd9ZKh+aLHk1X04upOgDoW9JiX
10FV/txlslTUrs/ohIMfsgCrweNXvUSTXZobIi8s8QHyipE4HpXMFjjZYHIV7GTlgA
11PRgGu3NygbWfR8hcx5JtzVz/jka7FFFSbk/pMr0TeJHXP55VfqWLeeSBQmWwooj2
12QcRfqMXgLKgu6uEggaP5HMcfTuWgWNhbke/596CgsUtQ5Gg64Q6v7cKcPy0/lgn1
13PnvfT9uhgEFDLNFkSBxV3ImrNYo73Nqmbp3w5tK9SQKBgQDs/HW7pNnB0LD51qok
14pkX0SBvyKxDT1QuU4z0FY9GT7OKOg8Xa0ZGyErt+ZbyFiyUGF5Axc3rJ3DyGslgu
155O+AqcpCQOlOyovGQ6ST9x/gEeVcRnZn1MV4vMxwaOSXtY7u0IGyaDlFn1QWHWCN
16imv8OR6YuhivwBIXGzJ16oEqDwKBgQDCj3ls7tlPrLvUQIh8gfjCoInU8fRAqtAe
17Ab/OximLsKQPKLDma6xd+X2Fk8Dowdb88GNT99x3VZjHqVJM9URDkiOGKAXA/rBp
18jAXhnQwahT8YCzOUHqDYNMMQrXHvbiHqLodGrrO2WjYNmH69prQAk8WYAIwl+hdx
19BS70LGLPBwKBgQDU9RinAkBcFjiyieBjBreeCJ50Q5bfhHbf2EOhcE2IbDo6bteB
20Bwmxx3uM3cdHCf6/NrVweqFAfBQ3xlPP8BH4wJrsZoBBOWnZRDfEbzHJnMtK3FbS
21fzTkhmQAL4Ibgh9rIxspQtcUZVSees+k4VqgUIPaIoDEjgizktEJfS2MqQKBgQDA
22rOFtVaRz2PYyHq6LzxMRe3bEIdDn8cEk1kqjdW9TXV07feqiZmNOtXLvRAG4/63u
231Akp8L6ul2Az6qUMfaBa4nC3vQ7lr9P40qhIZATGhsqS/xTXTPWw55999qZsnL6N
24cgKZpw1mOzRohmqNWnfMUotOGsywF1n7nUyAlyxLJQKBgElTaNTFYF3MbGfhl1He
25fnDXlf8OCOK1i5oIzMLqverb2UN/qp6p0b3SAtcw5cUXcaPlajHrfYgacF/0Qyua
26Cerey9GLEdJ7saDWhz0GyJ8yyEXy8CVs0svVaLPWI0s2B7/obzP9+gTb/WE9qZqu
27bNoVEpJ/wZhk+IL4+KPmqphu
28-----END PRIVATE KEY-----
diff --git a/recipes-selftest/images/secureboot-selftest-image-signed.bb b/recipes-selftest/images/secureboot-selftest-image-signed.bb
deleted file mode 100644
index 3ce11f32..00000000
--- a/recipes-selftest/images/secureboot-selftest-image-signed.bb
+++ /dev/null
@@ -1,6 +0,0 @@
1require secureboot-selftest-image-unsigned.bb
2
3IMAGE_FEATURES += "secureboot"
4
5SECURE_BOOT_SIGNING_KEY ?= "${THISDIR}/files/refkit-db.key"
6SECURE_BOOT_SIGNING_CERT ?= "${THISDIR}/files/refkit-db.crt"
diff --git a/recipes-selftest/images/secureboot-selftest-image-unsigned.bb b/recipes-selftest/images/secureboot-selftest-image-unsigned.bb
deleted file mode 100644
index e03e7b47..00000000
--- a/recipes-selftest/images/secureboot-selftest-image-unsigned.bb
+++ /dev/null
@@ -1,20 +0,0 @@
1require recipes-core/images/core-image-minimal.bb
2
3DEPENDS_remove = "grub-efi"
4
5inherit uefi-comboapp
6
7WKS_FILE = "generic-bootdisk.wks.in"
8
9do_uefiapp_deploy_append() {
10 for i in ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.boot*.efi; do
11 target=`basename $i`
12 target=`echo $target | sed -e 's/${IMAGE_LINK_NAME}.//'`
13
14 cat > ${IMAGE_ROOTFS}/boot/startup.nsh << EOF
15$target
16reset
17EOF
18 break
19 done
20}
diff --git a/recipes-support/isa-l/isa-l_2.31.1.bb b/recipes-support/isa-l/isa-l_2.31.1.bb
new file mode 100644
index 00000000..78850579
--- /dev/null
+++ b/recipes-support/isa-l/isa-l_2.31.1.bb
@@ -0,0 +1,19 @@
1SUMMARY = "Intelligent Storage Acceleration Library"
2DESCRIPTION = "ISA-L is a collection of optimized low-level functions \
3targeting storage applications."
4LICENSE = "BSD-3-Clause"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=2476688d0948d4a3f7c69473a603540d"
6SECTION = "lib"
7
8inherit autotools pkgconfig
9
10S = "${WORKDIR}/git"
11SRCREV = "c387163fcbca62701d646149564c550c78a4f985"
12SRC_URI = "git://github.com/intel/isa-l.git;branch=master;protocol=https"
13
14DEPENDS = "nasm-native"
15AS[unexport] = "1"
16
17TARGET_CC_ARCH += "${LDFLAGS}"
18
19COMPATIBLE_HOST = '(x86_64).*-linux'
diff --git a/recipes-support/jhi/jhi_1.33.bb b/recipes-support/jhi/jhi_1.33.bb
deleted file mode 100755
index 034b56a6..00000000
--- a/recipes-support/jhi/jhi_1.33.bb
+++ /dev/null
@@ -1,65 +0,0 @@
1SUMMARY = "Intel Dynamic Application Loader (DAL) Host Interface"
2DESCRIPTION = "A daemon and libraries which allow user space applications \
3to install Java applets on DAL FW and communicate with them"
4LICENSE = "Apache-2.0"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=833126f14614a3276708a4d7c9734645"
6
7SRC_URI = "git://github.com/intel/dynamic-application-loader-host-interface.git;protocol=https"
8
9inherit cmake useradd systemd pkgconfig
10
11SRCREV = "44d64cdbcf7eacd397ce9c18b9094514b62093e6"
12
13S = "${WORKDIR}/git"
14
15DEPENDS += "util-linux libxml2"
16DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
17RDEPENDS_${PN} += "bash"
18
19USERADD_PACKAGES = "${PN}"
20USERADD_PARAM_${PN} = "--system --no-create-home --shell /bin/false -g mei jhi"
21
22GROUPADD_PARAM_${PN} = "-g 880 mei"
23
24SYSTEMD_PACKAGES = "${PN}"
25
26COMPATIBLE_HOST_libc-musl = 'null'
27
28# systemd is the default so they are installed when sysvinit is not selected as INIT_SYSTEM
29EXTRA_OECMAKE = "-DCMAKE_SKIP_RPATH=ON \
30 -DINIT_SYSTEM=${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'SysVinit', 'systemd', d)} \
31 -DAPPLETS_DIR=${libdir}/dal/applets \
32 -DAPP_REPO_DIR=${localstatedir}/cache/dal/applet_repository \
33 "
34
35do_install_append () {
36 install -d ${D}${localstatedir}/cache/dal/applet_repository
37
38 chown -R jhi ${D}${localstatedir}/cache/dal/applet_repository
39 chgrp -R mei ${D}${localstatedir}/cache/dal/applet_repository
40
41 install -d ${D}${bindir}
42 install -m 755 ${B}/bin_linux/smoketest ${D}${bindir}
43 install -m 755 ${B}/bin_linux/bist ${D}${bindir}
44
45 install -d ${D}${libdir}/dal/smoketest/applets
46 cp -r ${S}/test/smoketest/applets/* ${D}${libdir}/dal/smoketest/applets/
47}
48
49PACKAGES =+ "${PN}-test"
50
51FILES_${PN}-dev = ""
52
53FILES_${PN} = "\
54 ${sbindir} \
55 ${sysconfdir} \
56 ${libdir} \
57 ${libdir}/dal/applets \
58 ${systemd_system_unitdir} \
59 ${localstatedir}/cache/dal/applet_repository \
60 "
61
62FILES_${PN}-test = "\
63 ${bindir} \
64 ${libdir}/dal/smoketest/applets \
65 "
diff --git a/recipes-support/libipt/libipt_2.1.2.bb b/recipes-support/libipt/libipt_2.1.2.bb
new file mode 100644
index 00000000..edc9c371
--- /dev/null
+++ b/recipes-support/libipt/libipt_2.1.2.bb
@@ -0,0 +1,34 @@
1SUMMARY = "Intel(R) Processor Trace Decoder Library"
2DESCRIPTION = "The Intel Processor Trace (Intel PT) Decoder Library is Intel's \
3reference implementation for decoding Intel PT. It can be used as a standalone \
4library or it can be partially or fully integrated into your tool."
5HOMEPAGE = "https://github.com/intel/libipt"
6
7LICENSE = "BSD-3-Clause"
8LIC_FILES_CHKSUM = "file://LICENSE;md5=491799fd9431e57ad52cb0ef3497afce"
9
10inherit pkgconfig cmake
11
12S = "${WORKDIR}/git"
13
14SRC_URI = "git://github.com/intel/libipt.git;protocol=https;branch=stable/v2.1"
15
16SRCREV = "ffc548e5fbc2fa3e9795d4593f861e1df99cf906"
17
18EXTRA_OECMAKE += " \
19 -DPTDUMP=ON \
20 -DPTTC=ON \
21 -DPTSEG=ON \
22 -DCMAKE_SKIP_RPATH=ON \
23 "
24
25do_install:append() {
26 install -d ${D}${bindir}/libipt
27 install -d ${D}${bindir}/libipt/tests
28
29 cp -r ${B}/bin/* ${D}${bindir}/libipt/
30 cp -r ${S}/test/src/* ${D}${bindir}/libipt/tests
31}
32
33FILES:${PN}-test = "${bindir}"
34PACKAGES =+ "${PN}-test"
diff --git a/recipes-support/sbsigntool/sbsigntool-native_git.bb b/recipes-support/sbsigntool/sbsigntool-native_git.bb
deleted file mode 100644
index 65546c5c..00000000
--- a/recipes-support/sbsigntool/sbsigntool-native_git.bb
+++ /dev/null
@@ -1,80 +0,0 @@
1DESCRIPTION = "Utility for signing and verifying files for UEFI Secure Boot"
2LICENSE = "GPLv3 & LGPL-2.1 & LGPL-3.0 & MIT"
3
4# sbsigntool statically links to libccan.a which is built with modules
5# passed to "create-ccan-tree" (and their dependencies). Therefore,
6# we also keep track of all the ccan module licenses.
7LIC_FILES_CHKSUM = "file://LICENSE.GPLv3;md5=9eef91148a9b14ec7f9df333daebc746 \
8 file://COPYING;md5=a7710ac18adec371b84a9594ed04fd20 \
9 file://lib/ccan.git/ccan/endian/LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \
10 file://lib/ccan.git/ccan/htable/LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \
11 file://lib/ccan.git/ccan/list/LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \
12 file://lib/ccan.git/ccan/read_write_all/LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \
13 file://lib/ccan.git/ccan/talloc/LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \
14 file://lib/ccan.git/ccan/typesafe_cb/LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \
15 file://lib/ccan.git/ccan/failtest/LICENSE;md5=6a6a8e020838b23406c81b19c1d46df6 \
16 file://lib/ccan.git/ccan/tlist/LICENSE;md5=6a6a8e020838b23406c81b19c1d46df6 \
17 file://lib/ccan.git/ccan/time/LICENSE;md5=838c366f69b72c5df05c96dff79b35f2 \
18"
19
20# The original upstream is git://kernel.ubuntu.com/jk/sbsigntool but it has
21# not been maintained and many patches have been backported in this repo.
22SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git;protocol=https;name=sbsigntools \
23 git://github.com/rustyrussell/ccan.git;protocol=https;destsuffix=git/lib/ccan.git;name=ccan \
24 file://0001-configure-Fixup-build-dependencies-for-cross-compili.patch \
25 "
26
27SRCREV_sbsigntools ?= "216dbd3331a7e14ff79cc4dd68c29896f1152ae4"
28SRCREV_ccan ?= "b1f28e17227f2320d07fe052a8a48942fe17caa5"
29SRCREV_FORMAT = "sbsigntools_ccan"
30
31DEPENDS = "binutils-native gnu-efi-native help2man-native openssl-native util-linux-native"
32
33PV = "0.9.2-git${SRCPV}"
34
35S = "${WORKDIR}/git"
36
37inherit native autotools pkgconfig
38
39do_configure_prepend() {
40 cd ${S}
41
42 sed -i s#RECIPE_SYSROOT#${RECIPE_SYSROOT_NATIVE}#g configure.ac
43
44 if [ ! -e lib/ccan ]; then
45
46 # Use empty SCOREDIR because 'make scores' is not run.
47 # The default setting depends on (non-whitelisted) host tools.
48 sed -i -e 's#^\(SCOREDIR=\).*#\1#' lib/ccan.git/Makefile
49
50 lib/ccan.git/tools/create-ccan-tree \
51 --build-type=automake lib/ccan \
52 talloc read_write_all build_assert array_size endian
53 fi
54
55 # Create generatable docs from git
56 (
57 echo "Authors of sbsigntool:"
58 echo
59 git log --format='%an' | sort -u | sed 's,^,\t,'
60 ) > AUTHORS
61
62 # Generate simple ChangeLog
63 git log --date=short --format='%ad %t %an <%ae>%n%n * %s%n' > ChangeLog
64
65 cd ${B}
66}
67
68def efi_arch(d):
69 import re
70 harch = d.getVar("HOST_ARCH")
71 if re.match("i[3456789]86", harch):
72 return "ia32"
73 return harch
74
75EXTRA_OEMAKE = "\
76 INCLUDES+='-I${S}/lib/ccan.git/ \
77 -I${STAGING_INCDIR_NATIVE}/efi \
78 -I${STAGING_INCDIR_NATIVE} \
79 -I${STAGING_INCDIR_NATIVE}/efi/${@efi_arch(d)}' \
80 "
diff --git a/recipes-support/sbsigntool/sbsigntool/0001-configure-Fixup-build-dependencies-for-cross-compili.patch b/recipes-support/sbsigntool/sbsigntool/0001-configure-Fixup-build-dependencies-for-cross-compili.patch
deleted file mode 100644
index ef686511..00000000
--- a/recipes-support/sbsigntool/sbsigntool/0001-configure-Fixup-build-dependencies-for-cross-compili.patch
+++ /dev/null
@@ -1,54 +0,0 @@
1From c3533b8da1e1425801d2fc0bcd231e13d593f16b Mon Sep 17 00:00:00 2001
2From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
3Date: Tue, 19 Feb 2019 20:07:45 +0800
4Subject: [PATCH] configure: Fixup build dependencies for cross-compiling
5
6When cross-compiling, custom header files and libraries need to be
7specified. sbsign assumes that all the dependencies are located
8under /usr/include and /usr/lib.
9
10Prepend these paths with a placeholder that can be replaced with the
11actual paths once they are resolved.
12
13Upstream status: inappropriate [OE specific]
14
15Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
16
17Taken from :
18https://github.com/intel/luv-yocto/tree/master/meta-luv/recipes-devtools/sbsigntool/sbsigntool
19
20Corrected typo error and ported to version 0.9.2
21
22Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
23---
24 configure.ac | 7 +++++--
25 1 file changed, 5 insertions(+), 2 deletions(-)
26
27diff --git a/configure.ac b/configure.ac
28index 1459e91..3e34c8d 100644
29--- a/configure.ac
30+++ b/configure.ac
31@@ -70,7 +70,10 @@ AM_CONDITIONAL(TEST_BINARY_FORMAT, [ test "$EFI_ARCH" = "arm" -o "$EFI_ARCH" = "
32 ##
33 # no consistent view of where gnu-efi should dump the efi stuff, so find it
34 ##
35-for path in /lib /lib64 /usr/lib /usr/lib64 /usr/lib32 /lib/efi /lib64/efi /usr/lib/efi /usr/lib64/efi /usr/lib/gnuefi /usr/lib64/gnuefi ; do
36+for path in RECIPE_SYSROOT/lib RECIPE_SYSROOT/lib64 RECIPE_SYSROOT/usr/lib \
37+ RECIPE_SYSROOT/usr/lib64 RECIPE_SYSROOT/usr/lib32 \
38+ RECIPE_SYSROOT/lib/efi RECIPE_SYSROOT/lib64/efi \
39+ RECIPE_SYSROOT/usr/lib/efi RECIPE_SYSROOT/usr/lib64/efi; do
40 if test -e $path/crt0-efi-$EFI_ARCH.o; then
41 CRTPATH=$path
42 fi
43@@ -79,7 +82,7 @@ if test -z "$CRTPATH"; then
44 AC_MSG_ERROR([cannot find the gnu-efi crt path])
45 fi
46
47-EFI_CPPFLAGS="-I/usr/include/efi -I/usr/include/efi/$EFI_ARCH \
48+EFI_CPPFLAGS="-IRECIPE_SYSROOT/usr/include/efi -IRECIPE_SYSROOT/usr/include/efi/$EFI_ARCH \
49 -DEFI_FUNCTION_WRAPPER"
50 CPPFLAGS_save="$CPPFLAGS"
51 CPPFLAGS="$CPPFLAGS $EFI_CPPFLAGS"
52--
532.7.4
54
diff --git a/wic/grub-bootdisk-microcode.wks.in b/wic/grub-bootdisk-microcode.wks.in
index d83b1dfb..7dc66f98 100644
--- a/wic/grub-bootdisk-microcode.wks.in
+++ b/wic/grub-bootdisk-microcode.wks.in
@@ -9,4 +9,4 @@ part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024
9 9
10part swap --ondisk sda --size 44 --label swap1 --fstype=swap --use-uuid 10part swap --ondisk sda --size 44 --label swap1 --fstype=swap --use-uuid
11 11
12bootloader --ptable gpt --timeout=5 --append="rootfstype=ext4 ${APPEND}" 12bootloader --ptable gpt --timeout=5 --append=" rootfstype=ext4 "
diff --git a/wic/image-installer.wks.in b/wic/image-installer.wks.in
index 4de318f6..933e8d85 100644
--- a/wic/image-installer.wks.in
+++ b/wic/image-installer.wks.in
@@ -5,4 +5,4 @@ part /boot --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER},title=ins
5 5
6part / --source bootimg-partition --ondisk sda --fstype=ext4 --label image --use-uuid --align 1024 6part / --source bootimg-partition --ondisk sda --fstype=ext4 --label image --use-uuid --align 1024
7 7
8bootloader --ptable gpt --timeout=5 --append="rootwait ${APPEND}" 8bootloader --ptable gpt --timeout=5 --append=" rootwait "
diff --git a/wic/systemd-bootdisk-microcode.wks.in b/wic/systemd-bootdisk-microcode.wks.in
index 03528950..925c1fa3 100644
--- a/wic/systemd-bootdisk-microcode.wks.in
+++ b/wic/systemd-bootdisk-microcode.wks.in
@@ -10,4 +10,4 @@ part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024
10 10
11part swap --ondisk sda --size 44 --label swap1 --fstype=swap --use-uuid 11part swap --ondisk sda --size 44 --label swap1 --fstype=swap --use-uuid
12 12
13bootloader --ptable gpt --timeout=5 --append="rootfstype=ext4 ${APPEND}" 13bootloader --ptable gpt --timeout=5 --append=" rootfstype=ext4 "