├── .gitignore ├── LICENSE-Flexbuild-BSD-3-CLAUSE.txt ├── LICENSE_SDK.txt ├── README.md ├── SCR.txt ├── configs ├── board │ ├── common │ │ ├── imx_memorylayout.cfg │ │ └── layerscape_memorylayout.cfg │ ├── imx6qpsabresd.conf │ ├── imx6qsabresd.conf │ ├── imx6sllevk.conf │ ├── imx7ulpevk.conf │ ├── imx8mmevk.conf │ ├── imx8mnevk.conf │ ├── imx8mpevk.conf │ ├── imx8mqevk.conf │ ├── imx8qmmek.conf │ ├── imx8qxpmek.conf │ ├── imx8ulpevk.conf │ ├── imx91evk.conf │ ├── imx91frdm.conf │ ├── imx93evk.conf │ ├── imx93frdm.conf │ ├── ls1012afrwy.conf │ ├── ls1012aqds.conf │ ├── ls1012ardb.conf │ ├── ls1021aqds.conf │ ├── ls1021atwr.conf │ ├── ls1028aqds.conf │ ├── ls1028ardb.conf │ ├── ls1043aqds.conf │ ├── ls1043ardb.conf │ ├── ls1046afrwy.conf │ ├── ls1046aqds.conf │ ├── ls1046ardb.conf │ ├── ls1088aqds.conf │ ├── ls1088ardb.conf │ ├── ls2088aqds.conf │ ├── ls2088ardb.conf │ ├── lx2160aqds.conf │ ├── lx2160ardb.conf │ └── lx2162aqds.conf ├── buildroot │ ├── arm32_devel_defconfig │ ├── arm32_imaevm_defconfig │ ├── arm32_tiny_defconfig │ ├── arm64_devel_defconfig │ ├── arm64_imaevm_defconfig │ ├── arm64_tiny_defconfig │ ├── lsdk-busybox.config │ ├── post-build.sh │ ├── post-image.sh │ ├── ps1.sh │ └── sec_imaevm.sh ├── debian │ ├── debian_base_arm64.yaml │ ├── debian_desktop_arm64.yaml │ ├── debian_server_arm64.yaml │ └── extra_packages_list ├── linux │ ├── demo_kernel.config │ ├── ima_evm_arm32.config │ ├── ima_evm_arm64.config │ ├── linux_arm32_IMX.its │ ├── linux_arm32_LS.its │ ├── linux_arm64_IMX.its │ ├── linux_arm64_LS.its │ └── lttng.config ├── ml.yml ├── poky │ ├── local_arm32_devel.conf │ ├── local_arm32_tiny.conf │ ├── local_arm64_devel.conf │ ├── local_arm64_tiny.conf │ └── reconfig.sh └── sdk.yml ├── docker ├── debian │ ├── Dockerfile │ └── Makefile └── ubuntu │ ├── Dockerfile │ └── Makefile ├── docs ├── FAQ-add-new-package-and-board.md ├── FAQ-docker-setup.md ├── build_and_deploy_distro.md ├── flexbuild_usage.md ├── flexbuild_workflow.txt ├── host_requirement.md ├── memory_layout.txt ├── nxp_linux_sdk.md └── proxy.md ├── include ├── repo.mk └── repo_update.inc ├── patch ├── apitrace │ └── 0001-dlsym-workaround-glibc-2.34-build-failure.patch ├── cheese │ ├── 0001-Revert-Enable-cameras-with-only-MJPEG-output.patch │ ├── 0001-change-encoding-profile-hide-video-recording-timesta.patch │ ├── 0001-cheese-camera-support-max-framerate-to-60.patch │ ├── 0001-cheese-limitation-the-max-resolution-to-3840x2160.patch │ ├── 0001-disable-global-preset-usage-for-encoder-auto-plugin.patch │ ├── 0002-Revert-Preserve-video-x-raw-over-image-jpeg.patch │ ├── 0002-disable-viewfinder-sink-a-v-sync-to-get-better-perfo.patch │ ├── 0002-don-t-build-help-folder-to-avoid-build-break.patch │ └── 0003-Revert-Support-camera-video-formats-with-MJPEG-outpu.patch ├── clutter_gst │ ├── 0001-cluttervideosink-try-to-import-dmabuf.patch │ ├── 0002-cluttervideosink-add-YUY2-format-support.patch │ ├── 0003-cluttervideosink-create-internal-buffer-pool-to-copy.patch │ ├── 0004-MMFMWK-8957-cluttervideosink-import-video-crop-meta.patch │ └── 0005-clutter-video-sink-fix-totem-video-jitter-issue.patch ├── cogl │ ├── 0001-cogl-texture-2d-support-import-dmabuf-using-egl-imag.patch │ ├── 0001-cogl-winsys-egl-add-glFinish-after-swapbuffer.patch │ ├── 0001-configure.ac-don-t-require-eglmesaext.h.patch │ └── 0001-fix-build-break-cased-by-viv-gbm-version-number-only.patch ├── cryptodev_linux │ └── 0001-add-support-for-RSA-public-and-private-key-operation.patch ├── gst_plugins_bad │ └── 0001-fix-build-issues-to-support-compiling-gst_plugins_ba.patch ├── gst_plugins_base │ └── 0001-add-imxvideoconvert_g2d-into-playsink.patch ├── gst_plugins_good │ ├── 0001-LF-9558-gtkgstbasewidget-default-set-ignore-alpha-to.patch │ └── 0001-request-for-2-more-buffer-for-better-performance.patch ├── gstreamer │ └── 0001-don-t-remove-v4l2-plugin-it-s-the-only-decoder-on-8q.patch ├── imx_demos_list │ └── 0001-Add-support-for-i.MX93-FRDM-board.patch ├── imx_nnstreamer_examples │ ├── 0001-MICRSE-2243-Use-GoPoint-downloads-folder.patch │ └── 0002-MICRSE-2243-Allow-camera-to-get-swapped-out.patch ├── imx_smart_kitchen │ └── 0001-Smart-Kitchen-add-support-for-imx93frdm-board.patch ├── linux │ ├── 0001-gpio-pca953x-fix-pca953x_irq_bus_sync_unlock-race.patch │ ├── 0002-arm64-dts-add-i.MX93-11x11-FRDM-basic-support.patch │ ├── 0003-arm64-dts-add-imx93-11x11-frdm-mt9m114-dts.patch │ ├── 0004-Add-DSI-Panel-for-imx93.patch │ ├── 0005-Add-CTP-support-for-waveshare-panel.patch │ ├── 0006-arm64-dts-add-imx93-11x11-frdm-tianma-wvga-panel-dts.patch │ ├── 0007-arm64-dts-add-imx93-11x11-frdm-aud-hat-dts.patch │ ├── 0008-arm64-dts-add-button-support.patch │ ├── 0009-arm64-dts-add-imx93-11x11-frdm-ov5640-dts.patch │ ├── 0010-arm64-dts-add-imx93-11x11-frdm-ld.dts-for-lpm.patch │ ├── 0011-arm64-dts-add-pwm-function-of-the-LED.patch │ ├── 0012-arm64-dts-add-imx93-11x11-frdm-8mic.dts.patch │ ├── 0013-arm64-dts-add-imx93-11x11-frdm-lpuart.dts.patch │ ├── 0014-arm64-dts-add-imx91-frdm-dts-files.patch │ ├── 0015-arm64-dts-add-imx91-11x11-frdm-tianma-wvga-panel-dts.patch │ ├── 0016-arm64-dts-add-imx91-11x11-frdm-mt9m114.dts.patch │ ├── 0017-arm64-dts-add-imx91-11x11-frdm-aud-hat-dts.patch │ ├── 0018-arm64-dts-add-imx91-11x11-frdm-8mic.dts.patch │ └── 0019-arm64-dts-add-imx91-11x11-frdm-lpuart.dts.patch ├── nnstreamer │ └── 0001-AIR-11938-tensor-filter-use-memcpy-ethosu-delegate.patch ├── openssl │ ├── 0001-e_devcrypto-add-func-ptr-for-init-do-ctrl.patch │ ├── 0002-e_devcrypto-add-support-for-TLS1.2-algorithms-offloa.patch │ └── openssl-3.0-add-Kernel-TLS-configuration.patch ├── optee_os │ └── 0001-add-optee-os-support-for-imx91evk-imx91frdm-imx93frd.patch ├── uboot │ ├── 0001-fix-issue-failed-to-boot-kernel-itb-image.patch │ ├── 0001-net-phy-motorcomm-Add-support-for-YT8521-PHY.patch │ ├── 0002-imx-imx93_frdm-Add-basic-board-support.patch │ ├── 0003-imx-imx91_frdm-Add-basic-board-support.patch │ └── 0004-imx-imx93-91-frdm-add-board-version-print.patch └── vkmark │ ├── 0001-scenes-Use-depth-format-supported-by-i.MX.patch │ ├── 0002-src-meson.build-Prepend-sysroot-for-the-includedir.patch │ └── 0003-meson.build-Enable-native-wayland-scanner.patch ├── setup.env ├── src ├── Makefile ├── apps │ ├── Makefile │ ├── connectivity │ │ └── nxp_wlan_bt.mk │ ├── gopoint │ │ ├── imx_demo_experience.mk │ │ ├── imx_demos_list.mk │ │ ├── imx_nnstreamer_examples.mk │ │ ├── imx_smart_fitness.mk │ │ └── imx_smart_kitchen.mk │ ├── graphics │ │ ├── apitrace.mk │ │ ├── clutter_gst.mk │ │ ├── cogl.mk │ │ ├── gpu_viv.mk │ │ ├── gputop.mk │ │ ├── imx_dpu_g2d.mk │ │ ├── imx_g2d_samples.mk │ │ ├── imx_gpu_g2d.mk │ │ ├── imx_pxp_g2d.mk │ │ ├── libdrm.mk │ │ ├── libgpuperfcnt.mk │ │ ├── vkmark.mk │ │ ├── vulkan_headers.mk │ │ ├── wayland.mk │ │ ├── wayland_protocols.mk │ │ └── weston.mk │ ├── ml │ │ ├── eiq_examples.mk │ │ ├── ethosu_driver_stack.mk │ │ ├── ethosu_firmware.mk │ │ ├── ethosu_vela.mk │ │ ├── flatbuffers.mk │ │ ├── nnshark.mk │ │ ├── nnstreamer.mk │ │ ├── nnstreamer_edge.mk │ │ ├── pytorch.mk │ │ ├── ssat.mk │ │ ├── tflite.mk │ │ ├── tflite_ethosu_delegate.mk │ │ ├── tflite_vx_delegate.mk │ │ ├── tim_vx.mk │ │ └── tvm.mk │ ├── multimedia │ │ ├── alsa_lib.mk │ │ ├── alsa_state.mk │ │ ├── basler_camera.mk │ │ ├── cheese.mk │ │ ├── gst_plugins_bad.mk │ │ ├── gst_plugins_base.mk │ │ ├── gst_plugins_good.mk │ │ ├── gst_plugins_ugly.mk │ │ ├── gstreamer.mk │ │ ├── imx_alsa_plugin.mk │ │ ├── imx_codec.mk │ │ ├── imx_dsp.mk │ │ ├── imx_dsp_codec_ext.mk │ │ ├── imx_dspc_asrc.mk │ │ ├── imx_gst_plugin.mk │ │ ├── imx_isp.mk │ │ ├── imx_parser.mk │ │ ├── imx_sw_pdm.mk │ │ ├── imx_vpu_hantro.mk │ │ ├── imx_vpu_hantro_daemon.mk │ │ ├── imx_vpu_hantro_vc.mk │ │ ├── imx_vpuwrap.mk │ │ └── sof_zephyr.mk │ ├── networking │ │ ├── aiopsl.mk │ │ ├── aquantia_fw_util.mk │ │ ├── ceetm.mk │ │ ├── dce.mk │ │ ├── dpdk.mk │ │ ├── flib.mk │ │ ├── fmc.mk │ │ ├── fmlib.mk │ │ ├── gpp_aioptool.mk │ │ ├── ovs_dpdk.mk │ │ ├── pktgen_dpdk.mk │ │ ├── qbman_userspace.mk │ │ ├── restool.mk │ │ ├── spc.mk │ │ ├── tsntool.mk │ │ └── vpp.mk │ ├── robotics │ │ └── ros.mk │ ├── security │ │ ├── crconf.mk │ │ ├── cst.mk │ │ ├── ecc_example.mk │ │ ├── imx_smw.mk │ │ ├── keyctl_caam.mk │ │ ├── libpkcs11.mk │ │ ├── openssl.mk │ │ ├── openssl_provider_se05x.mk │ │ ├── optee_client.mk │ │ ├── optee_os.mk │ │ ├── optee_test.mk │ │ └── secure_obj.mk │ └── utils │ │ ├── firmwared.mk │ │ └── imx_test.mk ├── bsp │ ├── Makefile │ ├── atf.mk │ ├── grub.mk │ ├── imx_firmware.mk │ ├── imx_mkimage.mk │ ├── layerscape_fw.mk │ ├── mcore_demo.mk │ ├── rcw.mk │ └── uboot.mk ├── linux │ ├── Makefile │ ├── cryptodev_linux.mk │ ├── isp_vvcam_module.mk │ ├── linux.mk │ ├── lttng_modules.mk │ ├── mdio_proxy_module.mk │ └── perf.mk └── system │ ├── 100-sysvinit-inittab │ ├── alsa_state │ ├── asound.conf │ └── asound.state │ ├── blacklist.conf │ ├── boot.mount │ ├── debian-post-install-pkg │ ├── distroplatcfg │ ├── firmwared.service │ ├── fmc.service │ ├── gpuconfig │ ├── gpuconfig.service │ ├── init-ls104xa │ ├── meson.cross │ ├── pkgconfig │ ├── libproc2.pc │ ├── tensorflow2-lite.pc │ └── tvm_runtime.pc │ ├── platcfg.service │ ├── ts.conf │ ├── udev │ ├── udev-rules-imx │ │ └── 10-imx.rules │ └── udev-rules-qoriq │ │ ├── 72-fsl-dpaa-persistent-networking.rules │ │ └── 73-fsl-enetc-networking.rules │ └── weston │ ├── weston │ ├── weston.desktop │ ├── weston.ini │ ├── weston.png │ └── weston.service └── tools ├── clean_components ├── create_bootpartition ├── create_composite_firmware ├── distro_buildroot ├── distro_debian ├── distro_poky ├── flash_images ├── flex-builder ├── flex-installer ├── getvariable ├── parse_yaml ├── repo_update ├── resizerfs └── secure_sign_image /.gitignore: -------------------------------------------------------------------------------- 1 | # Build products 2 | components_lsdk* 3 | build_lsdk* 4 | logs 5 | uuu 6 | configs/.sdk.cfg 7 | tools/bld 8 | .bash* 9 | *.tgz 10 | *.tar.zst 11 | *.log 12 | *.o 13 | 14 | -------------------------------------------------------------------------------- /LICENSE-Flexbuild-BSD-3-CLAUSE.txt: -------------------------------------------------------------------------------- 1 | Flexbuild is distributed under BSD-3-Clause 2 | 3 | The BSD 3 Clause License 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | 1. Redistributions of source code must retain the above copyright notice, this 9 | list of conditions and the following disclaimer. 10 | 11 | 2. Redistributions in binary form must reproduce the above copyright notice, 12 | this list of conditions and the following disclaimer in the documentation 13 | and/or other materials provided with the distribution. 14 | 15 | 3. Neither the name of the copyright holder nor the names of its contributors 16 | may be used to endorse or promote products derived from this software without 17 | specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 23 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 27 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /configs/board/common/imx_memorylayout.cfg: -------------------------------------------------------------------------------- 1 | # see docs/memory_layout.txt 2 | 3 | # only SD boot for imx 4 | MULTI_BOOTTYPE="false" 5 | 6 | # bootloader type 7 | BOOTLOADER_TYPE="uboot" 8 | 9 | # secure boot type 10 | SECURE_TYPE="normal" 11 | 12 | # Maximum number of separate images in the composite firmware 13 | MAX_COMPOSITE_IMG_NUM=5 14 | 15 | # u-boot.imx or flash.bin 16 | COMPOSITE_IMG1_OFFSET=0x00000000 17 | 18 | # u-boot env 19 | COMPOSITE_IMG2_OFFSET=0x00400000 20 | 21 | # reserved 22 | COMPOSITE_IMG3_OFFSET=0x00480000 23 | 24 | # reserved 25 | COMPOSITE_IMG4_OFFSET=0x00500000 26 | 27 | # Kernel itb with tiny initramfs 28 | COMPOSITE_IMG5_OFFSET=0x00800000 29 | COMPOSITE_IMG5_FILE_sd="images/${DISTRIB_VERSION}_poky_tiny_IMX_${DESTARCH}.itb" 30 | 31 | # default offset 32k, overriden by the setting in board-specific manifest 32 | DISK_BOOTLOADER_OFFSET="32768" 33 | -------------------------------------------------------------------------------- /configs/board/common/layerscape_memorylayout.cfg: -------------------------------------------------------------------------------- 1 | # see docs/memory_layout.txt 2 | 3 | # Layerscape supports multiple boot type: sd boot, nand boot, qspi boot, flexspi-nor(xspi) boot, ifc-nor boot 4 | MULTI_BOOTTYPE="true" 5 | 6 | # bootloader type: uboot or uefi, some boards support both 7 | BOOTLOADER_TYPE="uboot" 8 | 9 | # secure boot type 10 | # SECURE_TYPE="normal secure" 11 | SECURE_TYPE="normal" 12 | 13 | # Maximum number of separate images in the composite firmware 14 | MAX_COMPOSITE_IMG_NUM=15 15 | 16 | # ATF BL2 with RCW/PBL 17 | COMPOSITE_IMG1_OFFSET=0x00000000 18 | 19 | # ATF BL33 with bootloader (U-Boot or UEFI) 20 | COMPOSITE_IMG2_OFFSET=0x00100000 21 | 22 | # Bootloader environment 23 | COMPOSITE_IMG3_OFFSET=0x00500000 24 | 25 | # Secure boot header 26 | COMPOSITE_IMG4_OFFSET=0x00600000 27 | 28 | # DDR PHY FW or reserved 29 | COMPOSITE_IMG5_OFFSET=0x00800000 30 | 31 | # Fuse provisioning hdr or reserved 32 | COMPOSITE_IMG6_OFFSET=0x00880000 33 | 34 | # DPAA FMAN ucode or reserved 35 | COMPOSITE_IMG7_OFFSET=0x00900000 36 | 37 | # QE ucode or DP firmware 38 | COMPOSITE_IMG8_OFFSET=0x00940000 39 | 40 | # Ethernet PHY firmware 41 | COMPOSITE_IMG9_OFFSET=0x00980000 42 | 43 | # U-boot script or reserved 44 | COMPOSITE_IMG10_OFFSET=0x009C0000 45 | 46 | # DPAA2-MC or PFE firmware 47 | COMPOSITE_IMG11_OFFSET=0x00A00000 48 | 49 | # DPAA2 DPL or reserved 50 | COMPOSITE_IMG12_OFFSET=0x00D00000 51 | 52 | # DPAA2 DPC or reserved 53 | COMPOSITE_IMG13_OFFSET=0x00E00000 54 | 55 | # Device tree dtb or reserved 56 | COMPOSITE_IMG14_OFFSET=0x00F00000 57 | 58 | # Kernel itb with tiny initramfs 59 | COMPOSITE_IMG15_OFFSET=0x01000000 60 | COMPOSITE_IMG15_FILE="images/${DISTRIB_VERSION}_poky_tiny_LS_${DESTARCH}.itb" 61 | 62 | # The sequence number of secure header file 63 | SECURE_HEADER_NUM=4 64 | 65 | # default offset 4k for Layerscape 66 | DISK_BOOTLOADER_OFFSET="4096" 67 | -------------------------------------------------------------------------------- /configs/board/imx6qpsabresd.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | machine=imx6qpsabresd 3 | 4 | UBOOT_CONFIG="mx6qsabresd_defconfig" 5 | 6 | device_tree="linux/kernel/arm32/IMX/imx6qp-sabresd.dtb" 7 | 8 | # offset 1k 9 | DISK_BOOTLOADER_OFFSET="1024" 10 | 11 | COMPOSITE_IMG1_FILE_sd="bsp/u-boot/imx6qpsabresd/u-boot-dtb.imx" 12 | 13 | 14 | # distro boot script 15 | distro_bootscript="bsp/u-boot/imx6qpsabresd/imx6qpsabresd_boot.scr" 16 | 17 | distroboot=\ 18 | 'env exists fdtfile || setenv fdtfile imx6qp-sabresd.dtb;'\ 19 | 'env exists image || setenv image zImage;'\ 20 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 21 | 'env exists devpart_root || setenv devpart_root 3;'\ 22 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 23 | 'setenv bootargs console=ttymxc0,115200 root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 24 | 'load $devtype $devnum:$devpart_boot $kernel_addr_r $image;'\ 25 | 'load $devtype $devnum:$devpart_boot $fdt_addr_r $fdtfile;'\ 26 | 'bootz $kernel_addr_r - $fdt_addr_r' 27 | -------------------------------------------------------------------------------- /configs/board/imx6qsabresd.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | machine=imx6qsabresd 3 | 4 | UBOOT_CONFIG="mx6qsabresd_defconfig" 5 | 6 | device_tree="linux/kernel/arm32/IMX/imx6q-sabresd.dtb" 7 | 8 | # offset 1k 9 | DISK_BOOTLOADER_OFFSET="1024" 10 | 11 | COMPOSITE_IMG1_FILE_sd="bsp/u-boot/imx6qsabresd/u-boot-dtb.imx" 12 | 13 | # distro boot script 14 | distro_bootscript="bsp/u-boot/imx6qsabresd/imx6qsabresd_boot.scr" 15 | 16 | distroboot=\ 17 | 'env exists fdtfile || setenv fdtfile imx6q-sabresd.dtb;'\ 18 | 'env exists image || setenv image zImage;'\ 19 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 20 | 'env exists devpart_root || setenv devpart_root 3;'\ 21 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 22 | 'setenv bootargs console=ttymxc0,115200 root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 23 | 'load $devtype $devnum:$devpart_boot $kernel_addr_r $image;'\ 24 | 'load $devtype $devnum:$devpart_boot $fdt_addr_r $fdtfile;'\ 25 | 'bootz $kernel_addr_r - $fdt_addr_r' 26 | -------------------------------------------------------------------------------- /configs/board/imx6sllevk.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | machine=imx6sllevk 3 | 4 | UBOOT_CONFIG="mx6sllevk_defconfig" 5 | 6 | device_tree="linux/kernel/arm32/IMX/imx6sll-evk.dtb" 7 | 8 | # offset 1k 9 | DISK_BOOTLOADER_OFFSET="1024" 10 | 11 | COMPOSITE_IMG1_FILE_sd="bsp/u-boot/imx6sllevk/u-boot-dtb.imx" 12 | 13 | 14 | # [distro autoboot script] 15 | distro_bootscript=bsp/u-boot/imx6sllevk/imx6sllevk_boot.scr 16 | distroboot=\ 17 | 'env exists fdtfile || setenv fdtfile imx6sll-evk.dtb;'\ 18 | 'env exists image || setenv image zImage;'\ 19 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 20 | 'env exists devpart_root || setenv devpart_root 3;'\ 21 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 22 | 'setenv bootargs console=ttymxc0,115200 earlycon=ec_imx6q,0x30860000,115200 root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 23 | 'load $devtype $devnum:$devpart_boot $kernel_addr_r $image;'\ 24 | 'load $devtype $devnum:$devpart_boot $fdt_addr_r $fdtfile;'\ 25 | 'bootz $kernel_addr_r - $fdt_addr_r' 26 | -------------------------------------------------------------------------------- /configs/board/imx7ulpevk.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | machine=imx7ulpevk 3 | 4 | UBOOT_CONFIG="mx7ulp_evk_defconfig" 5 | 6 | device_tree="linux/kernel/arm32/IMX/imx7ulp-evk.dtb" 7 | 8 | # offset 1k 9 | DISK_BOOTLOADER_OFFSET="1024" 10 | 11 | COMPOSITE_IMG1_FILE_sd="bsp/u-boot/imx7ulpevk/u-boot-dtb.imx" 12 | 13 | # distro boot script 14 | distro_bootscript="bsp/u-boot/imx7ulpevk/imx7ulp_boot.scr" 15 | 16 | distroboot=\ 17 | 'env exists fdtfile || setenv fdtfile imx7ulp-evk.dtb;'\ 18 | 'env exists image || setenv image zImage;'\ 19 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 20 | 'env exists devpart_root || setenv devpart_root 3;'\ 21 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 22 | 'setenv bootargs console=ttyLP0,115200 root=PARTUUID=$partuuidr rw rootwait;'\ 23 | 'load $devtype $devnum:$devpart_boot $kernel_addr_r $image;'\ 24 | 'load $devtype $devnum:$devpart_boot $fdt_addr_r $fdtfile;'\ 25 | 'bootz $kernel_addr_r - $fdt_addr_r' 26 | -------------------------------------------------------------------------------- /configs/board/imx8mmevk.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | machine=imx8mmevk 3 | 4 | UBOOT_CONFIG="imx8mm_evk_defconfig" 5 | 6 | # BOARD_VARIANTS="lpddr4 ddr4" 7 | 8 | COMPOSITE_IMG1_FILE_sd="bsp/imx-mkimage/imx8mmevk/flash.bin" 9 | 10 | # offset 33k 11 | DISK_BOOTLOADER_OFFSET="33792" 12 | 13 | 14 | # distro boot script 15 | distro_bootscript="bsp/u-boot/imx8mmevk/imx8mmevk_boot.scr" 16 | 17 | distroboot=\ 18 | 'env exists fdtfile || setenv fdtfile imx8mm-evk.dtb;'\ 19 | 'env exists image || setenv image Image;'\ 20 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 21 | 'env exists devpart_root || setenv devpart_root 3;'\ 22 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 23 | 'setenv bootargs console=ttymxc1,115200 root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 24 | 'ext4load mmc $mmcdev:$devpart_boot $fdt_addr $fdtfile;'\ 25 | 'ext4load mmc $mmcdev:$devpart_boot $loadaddr $image;'\ 26 | 'booti $loadaddr - $fdt_addr' 27 | -------------------------------------------------------------------------------- /configs/board/imx8mnevk.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | machine=imx8mnevk 3 | 4 | UBOOT_CONFIG="imx8mn_evk_defconfig" 5 | 6 | # BOARD_VARIANTS="lpddr4 ddr4" 7 | 8 | COMPOSITE_IMG1_FILE_sd="bsp/imx-mkimage/imx8mnevk/flash.bin" 9 | 10 | # offset 32k 11 | DISK_BOOTLOADER_OFFSET="32768" 12 | 13 | 14 | # [distro autoboot script] 15 | distro_bootscript=bsp/u-boot/imx8mnevk/imx8mnevk_boot.scr 16 | distroboot=\ 17 | 'env exists fdtfile || setenv fdtfile imx8mn-ddr4-evk.dtb;'\ 18 | 'env exists image || setenv image Image;'\ 19 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 20 | 'env exists devpart_root || setenv devpart_root 3;'\ 21 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 22 | 'setenv bootargs console=ttymxc1,115200 root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 23 | 'ext4load mmc $mmcdev:$devpart_boot $fdt_addr $fdtfile;'\ 24 | 'ext4load mmc $mmcdev:$devpart_boot $loadaddr $image;'\ 25 | 'booti $loadaddr - $fdt_addr' 26 | -------------------------------------------------------------------------------- /configs/board/imx8mpevk.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | 3 | machine=imx8mpevk 4 | 5 | UBOOT_CONFIG="imx8mp_evk_defconfig" 6 | 7 | # BOARD_VARIANTS="lpddr4 ddr4" 8 | 9 | COMPOSITE_IMG1_FILE_sd="bsp/imx-mkimage/imx8mpevk/flash.bin" 10 | 11 | # distro boot script 12 | distro_bootscript="bsp/u-boot/imx8mpevk/imx8mpevk_boot.scr" 13 | 14 | # imx8mp-ddr4-evk.dtb for ddr4 rev-a3 board 15 | # imx8mp-evk.dtb for lpddr4 rev-b2 board with sound-wm8960 codec 16 | # imx8mp-evk-revb4.dtb for lpddr4 rev-b4 board with new sound-wm8962 codec 17 | # setenv fdtfile imx8mp-evk-os08a20.dtb for camera os08a20 18 | 19 | # set distro boot to generate boot.scr which is searched by u-boot automatically 20 | distroboot=\ 21 | 'env exists fdtfile || setenv fdtfile imx8mp-evk.dtb;'\ 22 | 'env exists image || setenv image Image;'\ 23 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 24 | 'env exists devpart_root || setenv devpart_root 3;'\ 25 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 26 | 'setenv bootargs console=ttymxc1,115200 root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 27 | 'ext4load mmc $mmcdev:$devpart_boot $fdt_addr $fdtfile;'\ 28 | 'ext4load mmc $mmcdev:$devpart_boot $loadaddr $image;'\ 29 | 'booti $loadaddr - $fdt_addr' 30 | -------------------------------------------------------------------------------- /configs/board/imx8mqevk.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | machine=imx8mqevk 3 | 4 | UBOOT_CONFIG="imx8mq_evk_defconfig" 5 | 6 | # BOARD_VARIANTS="lpddr4 ddr4" 7 | 8 | COMPOSITE_IMG1_FILE_sd="bsp/imx-mkimage/imx8mqevk/flash.bin" 9 | 10 | # offset 33k 11 | DISK_BOOTLOADER_OFFSET="33792" 12 | 13 | # distro boot script 14 | distro_bootscript="bsp/u-boot/imx8mqevk/imx8mqevk_boot.scr" 15 | 16 | distroboot=\ 17 | 'env exists fdtfile || setenv fdtfile imx8mq-evk.dtb;'\ 18 | 'env exists image || setenv image Image;'\ 19 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 20 | 'env exists devpart_root || setenv devpart_root 3;'\ 21 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 22 | 'setenv bootargs console=ttymxc0,115200 root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 23 | 'ext4load mmc $mmcdev:$mmcpart $fdt_addr $fdtfile;'\ 24 | 'ext4load mmc $mmcdev:$mmcpart $loadaddr $image;'\ 25 | 'booti $loadaddr - $fdt_addr' 26 | -------------------------------------------------------------------------------- /configs/board/imx8qmmek.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | machine=imx8qmmek 3 | 4 | UBOOT_CONFIG="imx8qm_mek_defconfig" 5 | 6 | # offset 32k for imx8qm B0, 33k for imx8qm A0 7 | DISK_BOOTLOADER_OFFSET="32768" 8 | 9 | COMPOSITE_IMG1_FILE_sd="bsp/imx-mkimage/imx8qmmek/flash.bin" 10 | 11 | 12 | # distro boot script 13 | distro_bootscript="bsp/u-boot/imx8qmmek/imx8qmmek_boot.scr" 14 | 15 | distroboot=\ 16 | 'env exists fdtfile || setenv fdtfile imx8qm-mek.dtb;'\ 17 | 'env exists image || setenv image Image;'\ 18 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 19 | 'env exists devpart_root || setenv devpart_root 3;'\ 20 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 21 | 'setenv bootargs console=ttyLP0,115200 root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 22 | 'ext4load mmc $mmcdev:$mmcpart $fdt_addr $fdtfile;'\ 23 | 'ext4load mmc $mmcdev:$mmcpart $loadaddr $image;'\ 24 | 'booti $loadaddr - $fdt_addr' 25 | -------------------------------------------------------------------------------- /configs/board/imx8qxpmek.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | machine=imx8qxpmek 3 | 4 | UBOOT_CONFIG="imx8qxp_mek_defconfig" 5 | 6 | # BOARD_VARIANTS="b0 c0" 7 | 8 | # offset 33k for imx8qxp A0, 32K for B0 and C0 9 | DISK_BOOTLOADER_OFFSET="32768" 10 | 11 | # COMPOSITE_IMG1_FILE_sd_b0="bsp/imx-mkimage/imx8qxpmek/flash-b0.bin" 12 | # COMPOSITE_IMG1_FILE_sd_c0="bsp/imx-mkimage/imx8qxpmek/flash-c0.bin" 13 | 14 | # only for B0 by default 15 | COMPOSITE_IMG1_FILE_sd="bsp/imx-mkimage/imx8qxpmek/flash.bin" 16 | 17 | # distro boot script 18 | distro_bootscript=bsp/u-boot/imx8qxpmek/imx8qxpmek_boot.scr 19 | 20 | distroboot=\ 21 | 'env exists fdtfile || setenv fdtfile imx8qxp-mek.dtb;'\ 22 | 'env exists image || setenv image Image;'\ 23 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 24 | 'env exists devpart_root || setenv devpart_root 3;'\ 25 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 26 | 'setenv bootargs console=ttyLP0,115200 root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 27 | 'ext4load mmc $mmcdev:$mmcpart $fdt_addr $fdtfile;'\ 28 | 'ext4load mmc $mmcdev:$mmcpart $loadaddr $image;'\ 29 | 'booti $loadaddr - $fdt_addr' 30 | -------------------------------------------------------------------------------- /configs/board/imx8ulpevk.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | 3 | machine=imx8ulpevk 4 | 5 | UBOOT_CONFIG="imx8ulp_evk_defconfig" 6 | 7 | # default target = flash_singleboot_m33 for imx-mkimage 8 | COMPOSITE_IMG1_FILE_sd="bsp/imx-mkimage/imx8ulpevk/flash.bin" 9 | 10 | 11 | # distro boot script 12 | distro_bootscript="bsp/u-boot/imx8mpevk/imx8ulpevk_boot.scr" 13 | 14 | distroboot=\ 15 | 'env exists fdtfile || setenv fdtfile imx8ulp-evk.dtb;'\ 16 | 'env exists image || setenv image Image;'\ 17 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 18 | 'env exists devpart_root || setenv devpart_root 3;'\ 19 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 20 | 'setenv bootargs console=ttyLP1,115200 earlycon root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 21 | 'ext4load mmc $mmcdev:$mmcpart $fdt_addr $fdtfile;'\ 22 | 'ext4load mmc $mmcdev:$mmcpart $loadaddr $image;'\ 23 | 'booti $loadaddr - $fdt_addr' 24 | -------------------------------------------------------------------------------- /configs/board/imx91evk.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | 3 | machine=imx91evk 4 | 5 | UBOOT_CONFIG="imx91_11x11_evk_defconfig" 6 | 7 | COMPOSITE_IMG1_FILE_sd="bsp/imx-mkimage/imx91evk/flash.bin" 8 | 9 | 10 | # distro boot script 11 | distro_bootscript="bsp/u-boot/imx91evk/imx91evk_boot.scr" 12 | 13 | # set distro boot to generate boot.scr which is searched by u-boot 14 | distroboot=\ 15 | 'env exists fdtfile || setenv fdtfile imx91-11x11-evk.dtb;'\ 16 | 'env exists image || setenv image Image;'\ 17 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 18 | 'env exists devpart_root || setenv devpart_root 3;'\ 19 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 20 | 'setenv bootargs console=ttyLP0,115200 earlycon root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 21 | 'ext4load mmc $mmcdev:$mmcpart $fdt_addr $fdtfile;'\ 22 | 'ext4load mmc $mmcdev:$mmcpart $loadaddr $image;'\ 23 | 'booti $loadaddr - $fdt_addr' 24 | -------------------------------------------------------------------------------- /configs/board/imx91frdm.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | 3 | machine=imx91frdm 4 | 5 | UBOOT_CONFIG="imx91_11x11_frdm_defconfig" 6 | 7 | COMPOSITE_IMG1_FILE_sd="bsp/imx-mkimage/imx91frdm/flash.bin" 8 | 9 | 10 | # distro boot script 11 | distro_bootscript="bsp/u-boot/imx91frdm/imx91frdm_boot.scr" 12 | 13 | # set distro boot to generate boot.scr which is searched by u-boot 14 | distroboot=\ 15 | 'env exists fdtfile || setenv fdtfile imx91-11x11-frdm.dtb;'\ 16 | 'env exists image || setenv image Image;'\ 17 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 18 | 'env exists devpart_root || setenv devpart_root 3;'\ 19 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 20 | 'setenv bootargs console=ttyLP0,115200 earlycon root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 21 | 'ext4load mmc $mmcdev:$mmcpart $fdt_addr $fdtfile;'\ 22 | 'ext4load mmc $mmcdev:$mmcpart $loadaddr $image;'\ 23 | 'booti $loadaddr - $fdt_addr' 24 | -------------------------------------------------------------------------------- /configs/board/imx93evk.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | 3 | machine=imx93evk 4 | 5 | UBOOT_CONFIG="imx93_11x11_evk_defconfig" 6 | 7 | # BOARD_VARIANTS="a0 a1" 8 | 9 | # default A1 target = flash_singleboot for imx-mkimage 10 | COMPOSITE_IMG1_FILE_sd="bsp/imx-mkimage/imx93evk/flash.bin" 11 | 12 | 13 | # distro boot script 14 | distro_bootscript="bsp/u-boot/imx93evk/imx93evk_boot.scr" 15 | 16 | # for camera module, put firmware ap1302.fw to /lib/firmware/imx/camera/ap1302.fw 17 | 18 | # setenv fdtfile imx93-11x11-evk-boe-wxga-lvds-panel.dtb for LVDS TouchScreen 19 | 20 | # set distro boot to generate boot.scr which is searched by u-boot 21 | distroboot=\ 22 | 'env exists fdtfile || setenv fdtfile imx93-11x11-evk.dtb;'\ 23 | 'env exists image || setenv image Image;'\ 24 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 25 | 'env exists devpart_root || setenv devpart_root 3;'\ 26 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 27 | 'setenv bootargs console=ttyLP0,115200 earlycon root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 28 | 'ext4load mmc $mmcdev:$mmcpart $fdt_addr $fdtfile;'\ 29 | 'ext4load mmc $mmcdev:$mmcpart $loadaddr $image;'\ 30 | 'booti $loadaddr - $fdt_addr' 31 | -------------------------------------------------------------------------------- /configs/board/imx93frdm.conf: -------------------------------------------------------------------------------- 1 | # [general] 2 | 3 | machine=imx93frdm 4 | 5 | UBOOT_CONFIG="imx93_11x11_frdm_defconfig" 6 | 7 | COMPOSITE_IMG1_FILE_sd="bsp/imx-mkimage/imx93frdm/flash.bin" 8 | 9 | 10 | # distro boot script 11 | distro_bootscript="bsp/u-boot/imx93frdm/imx93frdm_boot.scr" 12 | 13 | # for camera module, put firmware ap1302.fw to /lib/firmware/imx/camera/ap1302.fw 14 | 15 | # setenv fdtfile imx93-11x11-frdm-dsi.dtb for touchscreen 16 | 17 | # set distro boot to generate boot.scr which is searched by u-boot 18 | distroboot=\ 19 | 'env exists fdtfile || setenv fdtfile imx93-11x11-frdm.dtb;'\ 20 | 'env exists image || setenv image Image;'\ 21 | 'env exists devpart_boot || setenv devpart_boot 1;'\ 22 | 'env exists devpart_root || setenv devpart_root 3;'\ 23 | 'part uuid $devtype $devnum:$devpart_root partuuidr;'\ 24 | 'setenv bootargs console=ttyLP0,115200 earlycon root=PARTUUID=$partuuidr rw rootwait $othbootargs;'\ 25 | 'ext4load mmc $mmcdev:$mmcpart $fdt_addr $fdtfile;'\ 26 | 'ext4load mmc $mmcdev:$mmcpart $loadaddr $image;'\ 27 | 'booti $loadaddr - $fdt_addr' 28 | -------------------------------------------------------------------------------- /configs/buildroot/arm32_imaevm_defconfig: -------------------------------------------------------------------------------- 1 | # Architecture 2 | BR2_arm=y 3 | BR2_ARM_FPU_NEON=y 4 | 5 | # Toolchain 6 | BR2_TOOLCHAIN=y 7 | BR2_TOOLCHAIN_USES_GLIBC=y 8 | BR2_TOOLCHAIN_EXTERNAL=y 9 | BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM=y 10 | BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL="toolchain-external-codesourcery-arm" 11 | BR2_TOOLCHAIN_EXTERNAL_PREFIX="arm-none-linux-gnueabi" 12 | 13 | # Download 14 | BR2_DL_DIR="$(HOME)/.buildrootdl" 15 | BR2_ROOTFS_OVERLAY="$(FBOUTDIR)/rfs/rootfs_$(DISTRIB_VERSION)_buildroot_$(DISTROVARIANT)_$(DESTARCH)/overlay" 16 | 17 | # Hostname and issue 18 | BR2_TARGET_GENERIC_HOSTNAME="lsdk-imaevm" 19 | BR2_TARGET_GENERIC_ISSUE="LSDK initramfs IMA-EVM" 20 | 21 | # Target packages 22 | BR2_TARGET_ROOTFS_CPIO=y 23 | BR2_TARGET_ROOTFS_CPIO_GZIP=y 24 | BR2_PACKAGE_KEYUTILS=y 25 | BR2_PACKAGE_UTIL_LINUX=y 26 | BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y 27 | BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox.config" 28 | BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="" 29 | 30 | # BR2_INIT_BUSYBOX is not set 31 | BR2_INIT_NONE=y 32 | # BR2_TARGET_ENABLE_ROOT_LOGIN is not set 33 | # BR2_TARGET_GENERIC_GETTY is not set 34 | BR2_PACKAGE_PROVIDES_SKELETON="skeleton-init-none" 35 | BR2_PACKAGE_SKELETON_INIT_NONE=y 36 | #BR2_TARGET_ROOTFS_TAR_GZIP=y 37 | 38 | # packages on host 39 | # BR2_PACKAGE_HOST_DOSFSTOOLS is not set 40 | # BR2_PACKAGE_HOST_GENIMAGE is not set 41 | # BR2_PACKAGE_HOST_MTOOLS is not set 42 | 43 | BR2_TARGET_ROOTFS_TAR_GZIP=y 44 | BR2_PACKAGE_COLLECTD=y 45 | BR2_PACKAGE_COLLECTD_LOGFILE=y 46 | BR2_PACKAGE_COLLECTD_SYSLOG=y 47 | 48 | -------------------------------------------------------------------------------- /configs/buildroot/arm64_imaevm_defconfig: -------------------------------------------------------------------------------- 1 | # Architecture 2 | BR2_aarch64=y 3 | 4 | # Toolchain 5 | BR2_TOOLCHAIN=y 6 | BR2_TOOLCHAIN_USES_GLIBC=y 7 | BR2_TOOLCHAIN_EXTERNAL=y 8 | BR2_TOOLCHAIN_EXTERNAL_LINARO_AARCH64=y 9 | BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL="toolchain-external-linaro-aarch64" 10 | BR2_TOOLCHAIN_EXTERNAL_PREFIX="aarch64-linux-gnu" 11 | 12 | # Download 13 | BR2_DL_DIR="$(HOME)/.buildrootdl" 14 | BR2_ROOTFS_OVERLAY="$(FBOUTDIR)/rfs/rootfs_$(DISTRIB_VERSION)_buildroot_$(DISTROVARIANT)_$(DESTARCH)/overlay" 15 | 16 | # Hostname and issue 17 | BR2_TARGET_GENERIC_HOSTNAME="lsdk-imaevm" 18 | BR2_TARGET_GENERIC_ISSUE="LSDK initramfs IMA-EVM" 19 | 20 | # Target packages 21 | BR2_TARGET_ROOTFS_CPIO=y 22 | BR2_TARGET_ROOTFS_CPIO_GZIP=y 23 | BR2_PACKAGE_KEYUTILS=y 24 | BR2_PACKAGE_UTIL_LINUX=y 25 | BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y 26 | BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox.config" 27 | BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="" 28 | 29 | # BR2_INIT_BUSYBOX is not set 30 | BR2_INIT_NONE=y 31 | # BR2_TARGET_ENABLE_ROOT_LOGIN is not set 32 | # BR2_TARGET_GENERIC_GETTY is not set 33 | BR2_PACKAGE_PROVIDES_SKELETON="skeleton-init-none" 34 | BR2_PACKAGE_SKELETON_INIT_NONE=y 35 | #BR2_TARGET_ROOTFS_TAR_GZIP=y 36 | 37 | # packages on host 38 | # BR2_PACKAGE_HOST_DOSFSTOOLS is not set 39 | # BR2_PACKAGE_HOST_GENIMAGE is not set 40 | # BR2_PACKAGE_HOST_MTOOLS is not set 41 | 42 | BR2_TARGET_ROOTFS_TAR_GZIP=y 43 | BR2_PACKAGE_COLLECTD=y 44 | BR2_PACKAGE_COLLECTD_LOGFILE=y 45 | BR2_PACKAGE_COLLECTD_SYSLOG=y 46 | -------------------------------------------------------------------------------- /configs/buildroot/lsdk-busybox.config: -------------------------------------------------------------------------------- 1 | CONFIG_FDISK_SUPPORT_LARGE_DISKS=y 2 | CONFIG_FATATTR=y 3 | CONFIG_TASKSET=y 4 | CONFIG_DEVMEM=y 5 | CONFIG_FEATURE_TASKSET_FANCY=y 6 | CONFIG_FEATURE_DF_FANCY=y 7 | CONFIG_FEATURE_SEAMLESS_GZ=y 8 | CONFIG_FEATURE_SEAMLESS_BZ2=y 9 | CONFIG_FEATURE_SEAMLESS_XZ=y 10 | -------------------------------------------------------------------------------- /configs/buildroot/post-build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright 2017-2019 NXP 4 | # 5 | # SPDX-License-Identifier: BSD-3-Clause 6 | # 7 | 8 | 9 | set -e 10 | DESTDIR=$FBOUTDIR/apps/components_${DESTARCH}_buildroot 11 | cp $FBDIR/tools/flex-installer ${TARGET_DIR}/usr/bin 12 | cp $FBDIR/configs/buildroot/ps1.sh ${TARGET_DIR}/etc/profile.d 13 | mkdir -p ${TARGET_DIR}/usr/{include,local} 14 | 15 | if [ $DESTARCH = arm64 ]; then 16 | if [ ! -f $DESTDIR/etc/buildinfo ]; then 17 | bld apps -r buildroot:${DISTROVARIANT} -f $CONFIGLIST && \ 18 | releasestamp="Built at: `date +'%Y-%m-%d %H:%M:%S'`" && \ 19 | echo $releasestamp > $DESTDIR/etc/buildinfo 20 | fi 21 | echo merge apps components from $DESTDIR to ${TARGET_DIR} ... 22 | cp -rf $DESTDIR/* ${TARGET_DIR}/ 23 | fi 24 | 25 | # setup kernel lib modules 26 | curbrch=`cd $KERNEL_PATH && git branch | grep ^* | cut -d' ' -f2 && cd $FBDIR` 27 | libmodules=$FBOUTDIR/linux/kernel/$DESTARCH/$SOCFAMILY/output/$curbrch/tmp/lib/modules 28 | modulename=$(echo `ls -t $libmodules` | cut -d' ' -f1) 29 | modulespath=$libmodules/$modulename 30 | if [ -n "$modulename" -a $DISTROVARIANT = devel ]; then 31 | rm -rf ${TARGET_DIR}/lib/modules/* 32 | cp -rf $modulespath ${TARGET_DIR}/lib/modules 33 | fi 34 | 35 | if [ -d ${TARGET_DIR}/etc/udev/rules.d ]; then 36 | sudo cp -f $FBDIR/src/system/udev/udev-rules-qoriq/72-fsl-dpaa-persistent-networking.rules ${TARGET_DIR}/etc/udev/rules.d 37 | sudo cp -f $FBDIR/src/system/udev/udev-rules-qoriq/73-fsl-enetc-networking.rules ${TARGET_DIR}/etc/udev/rules.d 38 | fi 39 | -------------------------------------------------------------------------------- /configs/buildroot/post-image.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright 2017-2019 NXP 4 | # 5 | # SPDX-License-Identifier: BSD-3-Clause 6 | # 7 | 8 | set -e 9 | 10 | IMGDIR=$FBOUTDIR/images 11 | mkdir -p $IMGDIR 12 | rfsname=rootfs_${DISTRIB_VERSION}_buildroot_${DISTROVARIANT}_${DESTARCH} 13 | cp -f ${BINARIES_DIR}/rootfs.cpio.gz $IMGDIR/${rfsname}.cpio.gz 14 | cp -f ${BINARIES_DIR}/rootfs.ext2.gz $IMGDIR/${rfsname}.ext2.gz 15 | cp -f ${BINARIES_DIR}/rootfs.jffs2 $IMGDIR/${rfsname}.jffs2 16 | cp -f ${BINARIES_DIR}/rootfs.squashfs $IMGDIR/${rfsname}.squashfs 17 | -------------------------------------------------------------------------------- /configs/buildroot/ps1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright 2018 NXP 4 | # 5 | # SPDX-License-Identifier: BSD-3-Clause 6 | 7 | 8 | if [ "`id -u`" -eq 0 ]; then 9 | export PS1="[\u@\h \W]\# " 10 | else 11 | export PS1="[\u@\h \W]\$ " 12 | fi 13 | -------------------------------------------------------------------------------- /configs/buildroot/sec_imaevm.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright 2018 NXP 4 | # 5 | # SPDX-License-Identifier: BSD-3-Clause 6 | # 7 | 8 | 9 | 10 | # mount the /proc and /sys filesystems. 11 | /bin/mount -t proc none /proc 12 | /bin/mount -t sysfs none /sys 13 | 14 | a=`/bin/cat /proc/cmdline` 15 | 16 | /bin/mount -n -t securityfs securityfs /sys/kernel/security 17 | 18 | # Mount the root filesystem. 19 | if ! echo $a | /bin/grep -q 'mount=' ; then 20 | # set default mount device if mountdev is not set in othbootargs env 21 | mountdev=mmcblk0p4 22 | # echo Using default mountdev: $mountdev 23 | else 24 | mountdev=`echo $a | /bin/sed -r 's/.*(mount=[^ ]+) .*/\1/'` 25 | echo Using specified mountdev: $mountdev 26 | fi 27 | 28 | partnum=`echo $mountdev | /usr/bin/awk '{print substr($0,length())}'` 29 | echo partnum: $partnum 30 | 31 | /bin/mknod /dev/$mountdev b 179 $partnum 32 | /bin/mount /dev/$mountdev /mnt 33 | 34 | # ima emv mode: fix or enforce 35 | ima_fix='evm=fix' 36 | 37 | if echo $a | /bin/grep -q $ima_fix; then 38 | echo "Creating keys" 39 | /bin/keyctl add secure kmk-master "new 32" @u > /dev/null 40 | /bin/keyctl pipe `/bin/keyctl search @u secure kmk-master` > /mnt/etc/secure_key.blob 41 | /bin/keyctl add encrypted evm-key "new secure:kmk-master 32" @u > /dev/null 42 | /bin/keyctl pipe `/bin/keyctl search @u encrypted evm-key` > /mnt/etc/encrypted_key.blob 43 | 44 | /bin/chmod 1400 /mnt/etc/secure_key.blob 45 | /bin/chmod 1400 /mnt/etc/encrypted_key.blob 46 | /bin/chattr =i /mnt/etc/secure_key.blob 47 | /bin/chattr =i /mnt/etc/encrypted_key.blob 48 | else 49 | echo "Loading blobs" 50 | /bin/keyctl add secure kmk-master "load `/bin/cat /mnt/etc/secure_key.blob`" @u > /dev/null 51 | /bin/keyctl add encrypted evm-key "load `/bin/cat /mnt/etc/encrypted_key.blob`" @u > /dev/null 52 | fi 53 | 54 | echo "1" > /sys/kernel/security/evm 55 | 56 | if echo $a | /bin/grep -q $ima_fix; then 57 | echo "Labelling files in fix mode. This will take few minutes. Reboot once done" 58 | usr/bin/find /mnt/ -type f -exec head -c 1 '{}' > /dev/null \; 59 | echo "Attributes labeled." 60 | #echo b > /proc/sysrq-trigger 61 | #/sbin/reboot 62 | fi 63 | 64 | exec /bin/busybox switch_root /mnt /sbin/init 65 | -------------------------------------------------------------------------------- /configs/linux/ima_evm_arm32.config: -------------------------------------------------------------------------------- 1 | CONFIG_ASN1=y 2 | CONFIG_HW_RANDOM_TPM=y 3 | CONFIG_TCG_TPM=y 4 | CONFIG_SECURE_KEYS=y 5 | CONFIG_ENCRYPTED_KEYS=y 6 | CONFIG_SECURITY=y 7 | CONFIG_SECURITYFS=y 8 | CONFIG_INTEGRITY=y 9 | CONFIG_IMA=y 10 | CONFIG_IMA_MEASURE_PCR_IDX=10 11 | CONFIG_IMA_NG_TEMPLATE=y 12 | CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng" 13 | CONFIG_IMA_DEFAULT_HASH_SHA1=y 14 | CONFIG_IMA_DEFAULT_HASH="sha1" 15 | CONFIG_IMA_APPRAISE=y 16 | CONFIG_IMA_APPRAISE_BOOTPARAM=y 17 | CONFIG_EVM=y 18 | CONFIG_EVM_ATTR_FSUUID=y 19 | CONFIG_CRYPTO_AKCIPHER=y 20 | CONFIG_CRYPTO_RSA=y 21 | CONFIG_CRYPTO_HASH_INFO=y 22 | CONFIG_CRYPTO_DEV_FSL_CAAM_COMMON=y 23 | CONFIG_CRYPTO_DEV_FSL_CAAM=y 24 | CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y 25 | CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 26 | CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y 27 | CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI=y 28 | CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y 29 | CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y 30 | CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y 31 | CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC=y 32 | CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC=y 33 | CONFIG_MPILIB=y 34 | CONFIG_AUDIT=y 35 | CONFIG_AUDITSYSCALL=y 36 | CONFIG_AUDIT_WATCH=y 37 | CONFIG_AUDIT_TREE=y 38 | CONFIG_INTEGRITY_AUDIT=y 39 | CONFIG_AUDIT_GENERIC=y 40 | -------------------------------------------------------------------------------- /configs/linux/ima_evm_arm64.config: -------------------------------------------------------------------------------- 1 | # 2 | # PCMCIA character devices 3 | # 4 | CONFIG_TCG_TPM=y 5 | CONFIG_TCG_CRB=y 6 | # 7 | # Security options 8 | # 9 | CONFIG_SECURE_KEYS=y 10 | CONFIG_ENCRYPTED_KEYS=y 11 | CONFIG_SECURITYFS=y 12 | CONFIG_IMA=y 13 | CONFIG_IMA_MEASURE_PCR_IDX=10 14 | CONFIG_IMA_NG_TEMPLATE=y 15 | CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng" 16 | CONFIG_IMA_DEFAULT_HASH_SHA1=y 17 | CONFIG_IMA_DEFAULT_HASH="sha1" 18 | CONFIG_IMA_APPRAISE=y 19 | CONFIG_IMA_APPRAISE_BOOTPARAM=y 20 | CONFIG_EVM=y 21 | CONFIG_EVM_ATTR_FSUUID=y 22 | # 23 | # Random Number Generation 24 | # 25 | CONFIG_CRYPTO_HASH_INFO=y 26 | -------------------------------------------------------------------------------- /configs/linux/linux_arm32_LS.its: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 - 2020 NXP 3 | * 4 | */ 5 | 6 | 7 | /dts-v1/; 8 | 9 | / { 10 | description = "Image file for the QorIQ ARM 32b Linux Kernel"; 11 | #address-cells = <1>; 12 | 13 | images { 14 | kernel-v7 { 15 | description = "ARM32 Linux kernel"; 16 | data = /incbin/("../../build/linux/kernel/arm32/LS/zImage"); 17 | type = "kernel"; 18 | arch = "arm"; 19 | os = "linux"; 20 | compression = "none"; 21 | load = <0x80008000>; 22 | entry = <0x80008000>; 23 | }; 24 | 25 | initrd { 26 | description = "initrd for arm32"; 27 | data = /incbin/("../../build/images/rootfs_poky_tiny_arm32.cpio.gz"); 28 | type = "ramdisk"; 29 | arch = "arm"; 30 | os = "linux"; 31 | compression = "none"; 32 | }; 33 | 34 | ls1021atwr-dtb { 35 | description = "ls1021atwr-dtb"; 36 | data = /incbin/("../../build/linux/kernel/arm32/LS/ls1021a-twr.dtb"); 37 | type = "flat_dt"; 38 | arch = "arm"; 39 | compression = "none"; 40 | load = <0x90000000>; 41 | }; 42 | 43 | 44 | ls1021aqds-dtb { 45 | description = "ls1021aqds-dtb"; 46 | data = /incbin/("../../build/linux/kernel/arm32/LS/ls1021a-qds.dtb"); 47 | type = "flat_dt"; 48 | arch = "arm"; 49 | compression = "none"; 50 | load = <0x90000000>; 51 | }; 52 | 53 | }; 54 | 55 | configurations { 56 | ls1021atwr { 57 | description = "config for ls1021atwr"; 58 | kernel = "kernel-v7"; 59 | fdt = "ls1021atwr-dtb"; 60 | ramdisk = "initrd"; 61 | }; 62 | 63 | ls1021aqds { 64 | description = "config for ls1021aqds"; 65 | kernel = "kernel-v7"; 66 | fdt = "ls1021aqds-dtb"; 67 | ramdisk = "initrd"; 68 | }; 69 | }; 70 | }; 71 | -------------------------------------------------------------------------------- /configs/linux/lttng.config: -------------------------------------------------------------------------------- 1 | # LTTng options 2 | CONFIG_FUNCTION_TRACER=y 3 | CONFIG_HAVE_FUNCTION_TRACER=y 4 | CONFIG_NOP_TRACER=y 5 | CONFIG_STACKTRACE=y 6 | CONFIG_RING_BUFFER=y 7 | CONFIG_EVENT_TRACING=y 8 | CONFIG_CONTEXT_SWITCH_TRACER=y 9 | CONFIG_TRACING=y 10 | CONFIG_GENERIC_TRACER=y 11 | CONFIG_TRACING_SUPPORT=y 12 | CONFIG_FTRACE=y 13 | CONFIG_DYNAMIC_FTRACE=y 14 | CONFIG_TRACEPOINTS=y 15 | CONFIG_CONTEXT_SWITCH_TRACER=y 16 | CONFIG_TRACE_CLOCK=y 17 | CONFIG_BINARY_PRINTF=y 18 | CONFIG_HAVE_SYSCALL_TRACEPOINTS=y 19 | CONFIG_PERF_EVENTS=y 20 | CONFIG_KPROBES=y 21 | CONFIG_KRETPROBES=y 22 | -------------------------------------------------------------------------------- /configs/ml.yml: -------------------------------------------------------------------------------- 1 | # repo configurations for eIQ Machine Learning and GoPoint demo experience on iMX MPU platforms 2 | 3 | 4 | # eIQ AI/ML components 5 | repo: 6 | tim_vx: 7 | url: https://github.com/nxp-imx/tim-vx-imx.git 8 | 9 | tvm: 10 | url: https://github.com/nxp-imx/eiq-tvm-imx.git 11 | 12 | tflite: 13 | url: https://github.com/nxp-imx/tensorflow-imx.git 14 | 15 | tflite_vx_delegate: 16 | url: https://github.com/nxp-imx/tflite-vx-delegate-imx.git 17 | 18 | tflite_ethosu_delegate: 19 | url: https://github.com/nxp-imx/tflite-ethosu-delegate-imx.git 20 | 21 | ethosu_driver_stack: 22 | url: https://github.com/nxp-imx/ethos-u-driver-stack-imx.git 23 | 24 | ethosu_firmware: 25 | url: https://github.com/nxp-imx/ethos-u-firmware.git 26 | 27 | ethosu_vela: 28 | url: https://github.com/nxp-imx/ethos-u-vela.git 29 | 30 | nnstreamer: 31 | url: https://github.com/nnstreamer/nnstreamer.git 32 | commit: f82789170b8f2696 33 | 34 | nnstreamer_edge: 35 | url: https://github.com/nnstreamer/nnstreamer-edge.git 36 | commit: 2efc10afd1161a02 37 | 38 | nnshark: 39 | url: https://github.com/nxp-imx/nnshark.git 40 | 41 | ssat: 42 | url: https://github.com/myungjoo/ssat.git 43 | commit: 1635168973 44 | 45 | eiq_examples: 46 | url: https://github.com/nxp-imx/eiq-example.git 47 | 48 | pytorch: 49 | url: https://github.com/nxp-imx/pytorch-release.git 50 | commit: 6948822f1d3 51 | 52 | flatbuffers: 53 | url: https://github.com/google/flatbuffers.git 54 | commit: 7d6d99c6befa63 55 | 56 | 57 | # NXP GoPoint Demo Experience components 58 | imx_demo_experience: 59 | url: https://github.com/nxp-imx-support/nxp-demo-experience.git 60 | 61 | imx_nnstreamer_examples: 62 | url: https://github.com/nxp-imx/nxp-nnstreamer-examples.git 63 | commit: 1450073874cf6ef 64 | 65 | imx_demos_list: 66 | url: https://github.com/nxp-imx-support/nxp-demo-experience-demos-list.git 67 | 68 | imx_smart_kitchen: 69 | url: https://github.com/nxp-imx-support/smart-kitchen.git 70 | commit: 1f42aceae2e79f 71 | 72 | imx_smart_fitness: 73 | url: https://github.com/nxp-imx-support/imx-smart-fitness.git 74 | commit: 5ac9a93c6c651e 75 | -------------------------------------------------------------------------------- /docker/debian/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:bookworm 2 | 3 | ARG http_proxy 4 | ENV http_proxy $http_proxy 5 | ARG https_proxy 6 | ENV https_proxy $https_proxy 7 | ARG no_proxy 8 | ENV no_proxy $no_proxy 9 | ENV DEBIAN_FRONTEND noninteractive 10 | ENV DEBCONF_NONINTERACTIVE_SEEN true 11 | RUN echo "Acquire::http::proxy \"$http_proxy\";" | tee -a /etc/apt/apt.conf && \ 12 | echo "Acquire::https::proxy \"$https_proxy\";" | tee -a /etc/apt/apt.conf && \ 13 | echo 'PS1="[\u@\h \W]\$ "' | tee -a /root/.bashrc 1>/dev/null && \ 14 | echo syntax on > /root/.vimrc 15 | RUN rm -rf /var/lib/apt/lists/* && apt autoclean 16 | RUN apt-get update --fix-missing && apt-get install -y locales && \ 17 | localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 && export LANG=en_US.utf8 18 | 19 | RUN apt-get update && apt-get install -y \ 20 | u-boot-tools device-tree-compiler autoconf automake dh-autoreconf libssl-dev zip \ 21 | openssl curl flex bison bc git gcc vim ethtool wget ftp make makedev tclsh ccache \ 22 | binfmt-support qemu-system-common qemu-user-static debootstrap sudo ncurses-dev \ 23 | gcc-arm-linux-gnueabihf crossbuild-essential-arm64 gcc-aarch64-linux-gnu file \ 24 | build-essential gdb u-boot-tools device-tree-compiler python3 python3-dev python3-pip \ 25 | libxml2-dev libsensors4-dev libssl-dev libedit-dev liblzma-dev tree binutils-dev \ 26 | libnuma-dev libpcap-dev libtool mtd-utils libncurses5-dev libelf-dev net-tools \ 27 | libcunit1-dev pkg-config autotools-dev crossbuild-essential-armhf openssh-server \ 28 | openssh-client crossbuild-essential-armhf qemu-utils kmod g++-aarch64-linux-gnu \ 29 | cpp-arm-linux-gnueabihf dosfstools ruby iputils-ping cpio rsync libtclap-dev \ 30 | parted rpm2cpio lsb-release xutils-dev libwayland-bin cmake locales texinfo gawk \ 31 | chrpath diffstat scons libgflags-dev libhdf5-serial-dev python3-numpy python3-wheel \ 32 | python3-h5py 33 | -------------------------------------------------------------------------------- /docker/debian/Makefile: -------------------------------------------------------------------------------- 1 | include $(FBDIR)/configs/$(CONFIGLIST) 2 | 3 | build: 4 | @if [ -n "$(http_proxy)" -o -n "$(https_proxy)" ]; then \ 5 | if [ -z "$(http_proxy)" -o -z "$(https_proxy)" ]; then \ 6 | echo Please set http_proxy and https_proxy ! && exit 1; \ 7 | fi; \ 8 | docker build -t fbdebian:$(DEBIAN_VERSION) --network host \ 9 | --build-arg http_proxy=$(http_proxy) \ 10 | --build-arg https_proxy=$(https_proxy) . ; \ 11 | else \ 12 | docker build -t fbdebian:$(DEBIAN_VERSION) --network host . ; \ 13 | fi 14 | -------------------------------------------------------------------------------- /docker/ubuntu/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:24.04 2 | 3 | ARG http_proxy 4 | ENV http_proxy $http_proxy 5 | ARG https_proxy 6 | ENV https_proxy $https_proxy 7 | ARG no_proxy 8 | ENV no_proxy $no_proxy 9 | ENV DEBIAN_FRONTEND noninteractive 10 | ENV DEBCONF_NONINTERACTIVE_SEEN true 11 | RUN echo "Acquire::http::proxy \"$http_proxy\";" | tee -a /etc/apt/apt.conf && \ 12 | echo "Acquire::https::proxy \"$https_proxy\";" | tee -a /etc/apt/apt.conf && \ 13 | echo 'PS1="[\u@\h \W]\$ "' | tee -a /root/.bashrc 1>/dev/null && \ 14 | echo syntax on > /root/.vimrc 15 | RUN rm -rf /var/lib/apt/lists/* && apt autoclean 16 | RUN apt-get update --fix-missing && apt-get install -y locales && \ 17 | localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8 && export LANG=en_US.utf8 18 | 19 | RUN apt-get update && apt-get install -y \ 20 | u-boot-tools device-tree-compiler autoconf automake dh-autoreconf libssl-dev zip \ 21 | openssl curl flex bison bc git gcc vim ethtool wget ftp make makedev tclsh ccache \ 22 | binfmt-support qemu-system-common qemu-user-static debootstrap sudo ncurses-dev \ 23 | gcc-arm-linux-gnueabihf crossbuild-essential-arm64 gcc-aarch64-linux-gnu file \ 24 | build-essential gdb u-boot-tools device-tree-compiler python3 python3-dev python3-pip \ 25 | libxml2-dev libssl-dev libedit-dev liblzma-dev tree binutils-dev \ 26 | libnuma-dev libpcap-dev libtool mtd-utils libncurses5-dev libelf-dev net-tools \ 27 | libcunit1-dev pkg-config autotools-dev crossbuild-essential-armhf openssh-server \ 28 | openssh-client crossbuild-essential-armhf qemu-utils kmod g++-aarch64-linux-gnu \ 29 | cpp-arm-linux-gnueabihf dosfstools ruby iputils-ping cpio rsync libtclap-dev \ 30 | parted rpm2cpio lsb-release xutils-dev libwayland-bin cmake locales texinfo gawk \ 31 | chrpath diffstat scons libgflags-dev libhdf5-serial-dev python3-numpy python3-wheel \ 32 | python3-h5py 33 | -------------------------------------------------------------------------------- /docker/ubuntu/Makefile: -------------------------------------------------------------------------------- 1 | include $(FBDIR)/configs/$(CONFIGLIST) 2 | 3 | build: 4 | @if [ -n "$(http_proxy)" -o -n "$(https_proxy)" ]; then \ 5 | if [ -z "$(http_proxy)" -o -z "$(https_proxy)" ]; then \ 6 | echo Please set http_proxy and https_proxy ! && exit 1; \ 7 | fi; \ 8 | docker build -t fbubuntu:$(UBUNTU_VERSION) --network host \ 9 | --build-arg http_proxy=$(http_proxy) \ 10 | --build-arg https_proxy=$(https_proxy) . ; \ 11 | else \ 12 | docker build -t fbubuntu:$(UBUNTU_VERSION) --network host . ; \ 13 | fi 14 | -------------------------------------------------------------------------------- /docs/host_requirement.md: -------------------------------------------------------------------------------- 1 | ## Host system requirement 2 | - Ubuntu LTS (e.g. 22.04, 20.04) or any other distro on which Docker is running (Refer to docs/FAQ-docker-setup.md) 3 | - Debian 12 host 4 | 5 | 6 | For root users, there is no limitation for the build. 7 | For non-root users, obtain sudo permission by executing "sudoedit /etc/sudoers" and adding a line as below 8 | ``` 9 | ALL=(ALL:ALL) NOPASSWD: ALL 10 | ``` 11 | 12 | - The host machine must can access to the external Internet in your network environment. 13 | 14 | Users must have sudo permission for Docker commands or be added to docker group as below, 15 | Change current group to "docker", add account to it and restart docker service: 16 | ``` 17 | $ sudo newgrp - docker 18 | $ sudo usermod -aG docker 19 | $ sudo gpasswd -a docker 20 | $ sudo service docker restart 21 | ``` 22 | 23 | NOTE: 24 | If your Linux host machine is in a subnet that needs HTTP(s) proxy to access external Internet, it needs to set 25 | environment variable http_proxy and https_proxy according to [this step](proxy.md) 26 | -------------------------------------------------------------------------------- /docs/proxy.md: -------------------------------------------------------------------------------- 1 | ## Set HTTP proxy 2 | In case your build machine is located in a subnet that needs HTTP(s) Proxy to access external Internet, 3 | you can set the following HTTP proxy 4 | Example: 5 | 1. Set proxy in /etc/profile.d/proxy.sh or ~/.bashrc 6 | ``` 7 | export http_proxy="http://:" 8 | export https_proxy="https://:" 9 | export no_proxy="localhost" 10 | ``` 11 | 2. Set proxy in /etc/apt/apt.conf 12 | ``` 13 | Acquire::http::Proxy "http://:"; 14 | Acquire::https::Proxy "https://:"; 15 | ``` 16 | -------------------------------------------------------------------------------- /patch/apitrace/0001-dlsym-workaround-glibc-2.34-build-failure.patch: -------------------------------------------------------------------------------- 1 | From d11884c88eac803c174f759414d0162154450b6a Mon Sep 17 00:00:00 2001 2 | From: Andrey Zhizhikin 3 | Date: Thu, 2 Sep 2021 09:43:33 +0000 4 | Subject: [PATCH] dlsym: workaround glibc 2.34 build failure 5 | 6 | As suggested in [1], upstream component does not have a solution for the 7 | issue, and therefore for glibc version >= 2.34 dlsym wrappers should be 8 | skipped. 9 | 10 | Link: [1]: https://github.com/apitrace/apitrace/issues/756 11 | 12 | Upstream-Status: Pending 13 | Signed-off-by: Andrey Zhizhikin 14 | --- 15 | wrappers/dlsym.cpp | 2 +- 16 | 1 file changed, 1 insertion(+), 1 deletion(-) 17 | 18 | Index: git/wrappers/dlsym.cpp 19 | =================================================================== 20 | --- git.orig/wrappers/dlsym.cpp 21 | +++ git/wrappers/dlsym.cpp 22 | @@ -34,7 +34,7 @@ 23 | #include "os.hpp" 24 | 25 | 26 | -#if defined(__GLIBC__) && !defined(__UCLIBC__) 27 | +#if defined(__GLIBC__) && !defined(__UCLIBC__) && !(__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34) 28 | 29 | 30 | #include 31 | -------------------------------------------------------------------------------- /patch/cheese/0001-cheese-limitation-the-max-resolution-to-3840x2160.patch: -------------------------------------------------------------------------------- 1 | From f1652c724715af007c99051cfaf609157a69894f Mon Sep 17 00:00:00 2001 2 | From: Haihua Hu 3 | Date: Tue, 5 Apr 2022 13:56:33 +0800 4 | Subject: [PATCH] cheese: limitation the max resolution to 3840x2160 5 | 6 | Signed-off-by: Haihua Hu 7 | --- 8 | libcheese/cheese-camera-device.c | 8 ++++---- 9 | 1 file changed, 4 insertions(+), 4 deletions(-) 10 | 11 | diff --git a/libcheese/cheese-camera-device.c b/libcheese/cheese-camera-device.c 12 | index c916258e..a7d6dd50 100644 13 | --- a/libcheese/cheese-camera-device.c 14 | +++ b/libcheese/cheese-camera-device.c 15 | @@ -475,10 +475,10 @@ cheese_camera_device_update_format_table (CheeseCameraDevice *device) 16 | if (min_height < 120) 17 | min_height = 120; 18 | 19 | - if (max_width > 5120) 20 | - max_width = 5120; 21 | - if (max_height > 3840) 22 | - max_height = 3840; 23 | + if (max_width > 3840) 24 | + max_width = 3840; 25 | + if (max_height > 2160) 26 | + max_height = 2160; 27 | 28 | cur_width = min_width; 29 | cur_height = min_height; 30 | -- 31 | 2.17.1 32 | 33 | -------------------------------------------------------------------------------- /patch/cheese/0001-disable-global-preset-usage-for-encoder-auto-plugin.patch: -------------------------------------------------------------------------------- 1 | From 83d229aa6e2f4b9bafbaca46ca862641cb551d44 Mon Sep 17 00:00:00 2001 2 | From: Haihua Hu 3 | Date: Thu, 23 Sep 2021 22:16:30 +0800 4 | Subject: [PATCH] disable global preset usage for encoder auto plugin 5 | 6 | --- 7 | libcheese/cheese-camera.c | 4 +++- 8 | 1 file changed, 3 insertions(+), 1 deletion(-) 9 | 10 | diff --git a/libcheese/cheese-camera.c b/libcheese/cheese-camera.c 11 | index e41d42f1..f62afc4d 100644 12 | --- a/libcheese/cheese-camera.c 13 | +++ b/libcheese/cheese-camera.c 14 | @@ -441,6 +441,7 @@ cheese_camera_set_video_recording (CheeseCamera *camera, GError **error) 15 | const gchar *video_preset; 16 | gboolean res; 17 | 18 | +#if 0 19 | /* Check if we can use global preset for vp8enc. */ 20 | video_enc = gst_element_factory_make ("vpuenc_h264", "vpuenc_h264"); 21 | video_preset = (gchar *) &CHEESE_VIDEO_ENC_PRESET; 22 | @@ -468,6 +469,7 @@ cheese_camera_set_video_recording (CheeseCamera *camera, GError **error) 23 | } 24 | } 25 | gst_object_unref(video_enc); 26 | +#endif 27 | 28 | /* create profile for webm encoding */ 29 | caps = gst_caps_new_simple ("video/quicktime", "variant", G_TYPE_STRING, 30 | @@ -478,7 +480,7 @@ cheese_camera_set_video_recording (CheeseCamera *camera, GError **error) 31 | caps = gst_caps_from_string("video/x-h264"); 32 | v_prof = gst_encoding_video_profile_new (caps, NULL, NULL, 1); 33 | gst_encoding_video_profile_set_variableframerate(v_prof, TRUE); 34 | - gst_encoding_profile_set_preset((GstEncodingProfile*) v_prof, video_preset); 35 | +// gst_encoding_profile_set_preset((GstEncodingProfile*) v_prof, video_preset); 36 | gst_encoding_container_profile_add_profile(prof, (GstEncodingProfile*) v_prof); 37 | gst_caps_unref (caps); 38 | 39 | -- 40 | 2.17.1 41 | 42 | -------------------------------------------------------------------------------- /patch/cheese/0002-disable-viewfinder-sink-a-v-sync-to-get-better-perfo.patch: -------------------------------------------------------------------------------- 1 | From 5aae79851b03cd945051943623f73bb01f153916 Mon Sep 17 00:00:00 2001 2 | From: Haihua Hu 3 | Date: Wed, 7 Jul 2021 14:17:15 +0800 4 | Subject: [PATCH 2/2] disable viewfinder-sink a/v sync to get better 5 | performance 6 | 7 | Signed-off-by: Haihua Hu 8 | --- 9 | libcheese/cheese-camera.c | 3 +++ 10 | 1 file changed, 3 insertions(+) 11 | 12 | diff --git a/libcheese/cheese-camera.c b/libcheese/cheese-camera.c 13 | index 91392892..e41d42f1 100644 14 | --- a/libcheese/cheese-camera.c 15 | +++ b/libcheese/cheese-camera.c 16 | @@ -1591,6 +1591,9 @@ cheese_camera_setup (CheeseCamera *camera, CheeseCameraDevice *device, GError ** 17 | "size-change", G_CALLBACK(cheese_camera_size_change_cb), camera); 18 | 19 | g_object_set (G_OBJECT (priv->camerabin), "viewfinder-sink", video_sink, NULL); 20 | + /* disable viewfinder-sink a/v sync to get better performance */ 21 | + if (video_sink) 22 | + g_object_set (video_sink, "sync", FALSE, NULL); 23 | 24 | /* Set flags to enable conversions*/ 25 | 26 | -- 27 | 2.17.1 28 | 29 | -------------------------------------------------------------------------------- /patch/cheese/0002-don-t-build-help-folder-to-avoid-build-break.patch: -------------------------------------------------------------------------------- 1 | From 136aa53d70ab3504f996d097316c22d81bc86103 Mon Sep 17 00:00:00 2001 2 | From: Haihua Hu 3 | Date: Thu, 4 Mar 2021 10:49:47 +0800 4 | Subject: [PATCH 2/2] don't build help folder to avoid build break 5 | 6 | --- 7 | meson.build | 2 +- 8 | 1 file changed, 1 insertion(+), 1 deletion(-) 9 | 10 | diff --git a/meson.build b/meson.build 11 | index a4775d44..90ee2935 100644 12 | --- a/meson.build 13 | +++ b/meson.build 14 | @@ -183,7 +183,7 @@ if get_option('tests') 15 | endif 16 | 17 | subdir('po') 18 | -subdir('help') 19 | +#subdir('help') 20 | 21 | enable_gtk_doc = get_option('gtk_doc') 22 | enable_man = get_option('man') 23 | -- 24 | 2.17.1 25 | 26 | -------------------------------------------------------------------------------- /patch/clutter_gst/0004-MMFMWK-8957-cluttervideosink-import-video-crop-meta.patch: -------------------------------------------------------------------------------- 1 | From 6aaadef340b8c01a66ff510c77fff391b7aff071 Mon Sep 17 00:00:00 2001 2 | From: Haihua Hu 3 | Date: Tue, 1 Jun 2021 17:09:35 +0800 4 | Subject: [PATCH] MMFMWK-8957 cluttervideosink: import video crop meta 5 | 6 | Signed-off-by: Haihua Hu 7 | --- 8 | clutter-gst/clutter-gst-video-sink.c | 12 ++++++++---- 9 | 1 file changed, 8 insertions(+), 4 deletions(-) 10 | 11 | diff --git a/clutter-gst/clutter-gst-video-sink.c b/clutter-gst/clutter-gst-video-sink.c 12 | index e8ad874..a590a4b 100644 13 | --- a/clutter-gst/clutter-gst-video-sink.c 14 | +++ b/clutter-gst/clutter-gst-video-sink.c 15 | @@ -1850,7 +1850,7 @@ clutter_gst_dmabuf_upload (ClutterGstVideoSink *sink, 16 | GstBuffer *buffer) 17 | { 18 | ClutterGstVideoSinkPrivate *priv = sink->priv; 19 | - GstMemory *mem; 20 | + GstVideoCropMeta *crop; 21 | guint i, width, height; 22 | guint nplanes; 23 | int fourcc; 24 | @@ -1861,9 +1861,6 @@ clutter_gst_dmabuf_upload (ClutterGstVideoSink *sink, 25 | CoglColorRange range; 26 | CoglError *internal_error = NULL; 27 | 28 | - mem = gst_buffer_peek_memory (buffer, 0); 29 | - 30 | - 31 | width = GST_VIDEO_INFO_WIDTH (&priv->info); 32 | height = GST_VIDEO_INFO_HEIGHT (&priv->info); 33 | nplanes = GST_VIDEO_INFO_N_PLANES (&priv->info); 34 | @@ -1871,6 +1868,13 @@ clutter_gst_dmabuf_upload (ClutterGstVideoSink *sink, 35 | 36 | if (fourcc < 0) 37 | goto bail; 38 | + 39 | + crop = gst_buffer_get_video_crop_meta (buffer); 40 | + if (crop) { 41 | + width = MIN (crop->width, width); 42 | + height = MIN (crop->height, height); 43 | + GST_DEBUG ("video crop size %dx%d", width, height); 44 | + } 45 | 46 | for (i = 0; i < nplanes; i++) { 47 | guint offset, stride, mem_idx, length; 48 | -- 49 | 2.17.1 50 | 51 | -------------------------------------------------------------------------------- /patch/cogl/0001-fix-build-break-cased-by-viv-gbm-version-number-only.patch: -------------------------------------------------------------------------------- 1 | From c84bf361e09feff55bff8ed7486b94d992295dd5 Mon Sep 17 00:00:00 2001 2 | From: Haihua Hu 3 | Date: Fri, 5 Feb 2021 17:39:21 +0800 4 | Subject: [PATCH] fix build break cased by viv gbm version number only has two 5 | number 6 | 7 | in cogl-winsys-egl-kms.c it has below compare, the COGL_GBM_MICRO is none 8 | when queryed from viv gbm.pc 9 | COGL_VERSION_ENCODE (8, 1, 0)) 10 | --- 11 | configure.ac | 4 ++++ 12 | 1 file changed, 4 insertions(+) 13 | 14 | diff --git a/configure.ac b/configure.ac 15 | index b7ba95d2..e6c4b5d8 100644 16 | --- a/configure.ac 17 | +++ b/configure.ac 18 | @@ -1107,6 +1107,10 @@ AS_IF([test "x$enable_kms_egl_platform" = "xyes"], 19 | GBM_MAJOR=`echo $GBM_VERSION | cut -d'.' -f1` 20 | GBM_MINOR=`echo $GBM_VERSION | cut -d'.' -f2` 21 | GBM_MICRO=`echo $GBM_VERSION | cut -d'.' -f3 | sed 's/-.*//'` 22 | + [test "x$GBM_MICRO" = "x"], 23 | + [ 24 | + GBM_MICRO=0 25 | + ] 26 | 27 | AC_DEFINE_UNQUOTED([COGL_GBM_MAJOR], [$GBM_MAJOR], [The major version for libgbm]) 28 | AC_DEFINE_UNQUOTED([COGL_GBM_MINOR], [$GBM_MINOR], [The minor version for libgbm]) 29 | -- 30 | 2.17.1 31 | 32 | -------------------------------------------------------------------------------- /patch/gst_plugins_base/0001-add-imxvideoconvert_g2d-into-playsink.patch: -------------------------------------------------------------------------------- 1 | From 36dbd3cdbd9baf10df1c9a4d28ac182679eb16a4 Mon Sep 17 00:00:00 2001 2 | From: Haihua Hu 3 | Date: Thu, 23 Sep 2021 13:30:14 +0800 4 | Subject: [PATCH] add imxvideoconvert_g2d into playsink 5 | 6 | --- 7 | gst/playback/gstplaysink.c | 6 ++++++ 8 | 1 file changed, 6 insertions(+) 9 | 10 | diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c 11 | index 2c080bc59..843b8a9e4 100755 12 | --- a/gst/playback/gstplaysink.c 13 | +++ b/gst/playback/gstplaysink.c 14 | @@ -692,6 +692,12 @@ gst_play_sink_init (GstPlaySink * playsink) 15 | gst_bin_add (GST_BIN_CAST (playsink), 16 | GST_ELEMENT_CAST (playsink->stream_synchronizer)); 17 | 18 | + playsink->video_filter = 19 | + gst_element_factory_make ("imxvideoconvert_g2d", "g2dconvert"); 20 | + if (!playsink->video_filter) { 21 | + GST_WARNING ("imxvideoconvert_g2d is not installed"); 22 | + } 23 | + 24 | g_rec_mutex_init (&playsink->lock); 25 | GST_OBJECT_FLAG_SET (playsink, GST_ELEMENT_FLAG_SINK); 26 | gst_bin_set_suppressed_flags (GST_BIN (playsink), 27 | -- 28 | 2.17.1 29 | 30 | -------------------------------------------------------------------------------- /patch/gst_plugins_good/0001-LF-9558-gtkgstbasewidget-default-set-ignore-alpha-to.patch: -------------------------------------------------------------------------------- 1 | From b6a53eaae906b45a33adb11eaff2c0aa891111d2 Mon Sep 17 00:00:00 2001 2 | From: Haihua Hu 3 | Date: Fri, 14 Jul 2023 19:10:44 +0900 4 | Subject: [PATCH] LF-9558 gtkgstbasewidget: default set ignore alpha to false 5 | 6 | ignore alpha equals to true will make gtkglsink set has alpha to false 7 | via gtk_gl_area_set_has_alpha, which will make gtkglarea rendering 8 | by cpu/cario. Need set has alpha to true to enable gpu drawing for video 9 | --- 10 | ext/gtk/gtkgstbasewidget.c | 2 +- 11 | 1 file changed, 1 insertion(+), 1 deletion(-) 12 | 13 | diff --git a/ext/gtk/gtkgstbasewidget.c b/ext/gtk/gtkgstbasewidget.c 14 | index ed7cfa660..95fea458b 100644 15 | --- a/ext/gtk/gtkgstbasewidget.c 16 | +++ b/ext/gtk/gtkgstbasewidget.c 17 | @@ -35,7 +35,7 @@ GST_DEBUG_CATEGORY (gst_debug_gtk_base_widget); 18 | #define DEFAULT_DISPLAY_PAR_D 1 19 | #define DEFAULT_VIDEO_PAR_N 0 20 | #define DEFAULT_VIDEO_PAR_D 1 21 | -#define DEFAULT_IGNORE_ALPHA TRUE 22 | +#define DEFAULT_IGNORE_ALPHA FALSE 23 | 24 | enum 25 | { 26 | -- 27 | 2.34.1 28 | 29 | -------------------------------------------------------------------------------- /patch/gst_plugins_good/0001-request-for-2-more-buffer-for-better-performance.patch: -------------------------------------------------------------------------------- 1 | From b7d3b3620cb5a3c566b747e9045f3c5027b30690 Mon Sep 17 00:00:00 2001 2 | From: Haihua Hu 3 | Date: Wed, 7 Jul 2021 15:38:11 +0800 4 | Subject: [PATCH] request for 2 more buffer for better performance 5 | 6 | --- 7 | sys/v4l2/gstv4l2object.c | 2 +- 8 | 1 file changed, 1 insertion(+), 1 deletion(-) 9 | 10 | diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c 11 | index eddd4f77d..486ba01ff 100755 12 | --- a/sys/v4l2/gstv4l2object.c 13 | +++ b/sys/v4l2/gstv4l2object.c 14 | @@ -5479,7 +5479,7 @@ gst_v4l2_object_decide_allocation (GstV4l2Object * obj, GstQuery * query) 15 | /* If no allocation parameters where provided, allow for a little more 16 | * buffers and enable copy threshold */ 17 | if (!update) { 18 | - own_min += 2; 19 | + own_min += 4; 20 | gst_v4l2_buffer_pool_copy_at_threshold (GST_V4L2_BUFFER_POOL (pool), 21 | TRUE); 22 | } else { 23 | -------------------------------------------------------------------------------- /patch/gstreamer/0001-don-t-remove-v4l2-plugin-it-s-the-only-decoder-on-8q.patch: -------------------------------------------------------------------------------- 1 | From 794e596f03d164bfddc8b14b4e51add2c28e71b9 Mon Sep 17 00:00:00 2001 2 | From: Haihua Hu 3 | Date: Mon, 25 Jul 2022 13:34:11 +0800 4 | Subject: [PATCH] don't remove v4l2 plugin, it's the only decoder on 8qm 5 | 6 | --- 7 | gst/gstregistry.c | 8 ++++++++ 8 | 1 file changed, 8 insertions(+) 9 | 10 | diff --git a/gst/gstregistry.c b/gst/gstregistry.c 11 | index 1c5bc324d9..0f792899d2 100644 12 | --- a/gst/gstregistry.c 13 | +++ b/gst/gstregistry.c 14 | @@ -633,6 +633,14 @@ gst_registry_remove_feature (GstRegistry * registry, GstPluginFeature * feature) 15 | feature, gst_plugin_feature_get_name (feature)); 16 | 17 | GST_OBJECT_LOCK (registry); 18 | + 19 | + if (g_strcmp0 ("video4linux2", 20 | + gst_plugin_feature_get_plugin_name (feature)) == 0) { 21 | + GST_DEBUG_OBJECT (registry, "ignore request for remove v4l2 plugin"); 22 | + GST_OBJECT_UNLOCK (registry); 23 | + return; 24 | + } 25 | + 26 | registry->priv->features = g_list_remove (registry->priv->features, feature); 27 | g_hash_table_remove (registry->priv->feature_hash, GST_OBJECT_NAME (feature)); 28 | registry->priv->cookie++; 29 | -- 30 | 2.17.1 31 | 32 | -------------------------------------------------------------------------------- /patch/imx_nnstreamer_examples/0001-MICRSE-2243-Use-GoPoint-downloads-folder.patch: -------------------------------------------------------------------------------- 1 | From bcdd6561d22887e6f7312b9cc92acaf16bc98c5e Mon Sep 17 00:00:00 2001 2 | From: Michael Pontikes 3 | Date: Thu, 15 Feb 2024 14:21:10 -0700 4 | Subject: [PATCH 1/2] [MICRSE-2243] Use GoPoint downloads folder 5 | 6 | --- 7 | classification/example_classification_mobilenet_v1_tflite.sh | 2 +- 8 | detection/example_detection_mobilenet_ssd_v2_tflite.sh | 2 +- 9 | pose/example_pose_movenet_tflite.py | 2 +- 10 | 3 files changed, 3 insertions(+), 3 deletions(-) 11 | 12 | diff --git a/classification/example_classification_mobilenet_v1_tflite.sh b/classification/example_classification_mobilenet_v1_tflite.sh 13 | index 82d87ea..6516ee7 100755 14 | --- a/classification/example_classification_mobilenet_v1_tflite.sh 15 | +++ b/classification/example_classification_mobilenet_v1_tflite.sh 16 | @@ -6,7 +6,7 @@ set -x 17 | 18 | REALPATH="$(readlink -e "$0")" 19 | BASEDIR="$(dirname "${REALPATH}")/.." 20 | -MODELS_DIR="${BASEDIR}/downloads/models/classification" 21 | +MODELS_DIR="/opt/gopoint-apps/downloads" 22 | 23 | source "${BASEDIR}/common/common_utils.sh" 24 | source "${BASEDIR}/classification/classification_utils.sh" 25 | diff --git a/detection/example_detection_mobilenet_ssd_v2_tflite.sh b/detection/example_detection_mobilenet_ssd_v2_tflite.sh 26 | index b771615..4c34a3c 100755 27 | --- a/detection/example_detection_mobilenet_ssd_v2_tflite.sh 28 | +++ b/detection/example_detection_mobilenet_ssd_v2_tflite.sh 29 | @@ -6,7 +6,7 @@ set -x 30 | 31 | REALPATH="$(readlink -e "$0")" 32 | BASEDIR="$(dirname "${REALPATH}")/.." 33 | -MODELS_DIR="${BASEDIR}/downloads/models/detection" 34 | +MODELS_DIR="/opt/gopoint-apps/downloads" 35 | 36 | source "${BASEDIR}/common/common_utils.sh" 37 | source "${BASEDIR}/detection/detection_utils.sh" 38 | diff --git a/pose/example_pose_movenet_tflite.py b/pose/example_pose_movenet_tflite.py 39 | index 7facc1a..bff8d0d 100755 40 | --- a/pose/example_pose_movenet_tflite.py 41 | +++ b/pose/example_pose_movenet_tflite.py 42 | @@ -144,7 +144,7 @@ class PoseExample: 43 | 44 | current_folder = os.path.dirname(os.path.abspath(__file__)) 45 | 46 | - model_dir = os.path.join(current_folder, '../downloads/models/pose') 47 | + model_dir = os.path.realpath("/opt/gopoint-apps/downloads") 48 | self.tflite_path = os.path.join(model_dir, tflite_model) 49 | if not os.path.exists(self.tflite_path): 50 | raise FileExistsError(f'cannot find tflite model [{self.tflite_path}]') 51 | -- 52 | 2.34.1 53 | 54 | -------------------------------------------------------------------------------- /patch/imx_nnstreamer_examples/0002-MICRSE-2243-Allow-camera-to-get-swapped-out.patch: -------------------------------------------------------------------------------- 1 | From a30d1e14d64c4c7e4ad284cd19bc7a4a2206fcfb Mon Sep 17 00:00:00 2001 2 | From: Michael Pontikes 3 | Date: Wed, 28 Aug 2024 14:20:09 -0700 4 | Subject: [PATCH 2/2] [MICRSE-2243] Allow camera to get swapped out 5 | 6 | --- 7 | pose/example_pose_movenet_tflite.py | 6 ++++-- 8 | 1 file changed, 4 insertions(+), 2 deletions(-) 9 | 10 | diff --git a/pose/example_pose_movenet_tflite.py b/pose/example_pose_movenet_tflite.py 11 | index 800f778..b1d702c 100755 12 | --- a/pose/example_pose_movenet_tflite.py 13 | +++ b/pose/example_pose_movenet_tflite.py 14 | @@ -149,7 +149,7 @@ class PoseExample: 15 | if not os.path.exists(self.tflite_path): 16 | raise FileExistsError(f'cannot find tflite model [{self.tflite_path}]') 17 | 18 | - video_dir = os.path.join(current_folder, '../downloads/media/movies') 19 | + video_dir = os.path.realpath("/opt/gopoint-apps/downloads") 20 | self.video_path = os.path.join(video_dir, self.video_file) 21 | if not os.path.exists(self.video_path): 22 | raise FileExistsError(f'cannot find video [{self.video_path}]') 23 | @@ -167,6 +167,7 @@ class PoseExample: 24 | self.mainloop = GLib.MainLoop() 25 | 26 | self.source = os.getenv('SOURCE', 'VIDEO') 27 | + device = os.getenv('CAMERA_DEVICE', default = "/dev/video3") 28 | 29 | if self.source == 'VIDEO': 30 | cmdline = 'filesrc location={:s} ! matroskademux ! vpudec !' \ 31 | @@ -176,7 +177,8 @@ class PoseExample: 32 | cmdline += ' video/x-raw,width={:d},height={:d} ! ' \ 33 | .format(self.VIDEO_INPUT_HEIGHT, self.VIDEO_INPUT_HEIGHT) 34 | elif self.source == 'CAMERA': 35 | - cmdline = 'v4l2src name=cam_src device=/dev/video3 num-buffers=-1 !' 36 | + cmdline = 'v4l2src name=cam_src device={:s} num-buffers=-1 !' \ 37 | + .format(device) 38 | else: 39 | raise ValueError('Wrong source, must be VIDEO or CAMERA') 40 | 41 | -- 42 | 2.34.1 43 | 44 | -------------------------------------------------------------------------------- /patch/imx_smart_kitchen/0001-Smart-Kitchen-add-support-for-imx93frdm-board.patch: -------------------------------------------------------------------------------- 1 | From ed7c78da7d4d6f50d68ef2e7b24f3564a62bccbb Mon Sep 17 00:00:00 2001 2 | From: Danwei Luo 3 | Date: Wed, 28 Aug 2024 16:13:43 +0900 4 | Subject: [PATCH] Smart Kitchen: add support for imx93frdm board 5 | 6 | UI works with default imx93-11x11-frdm.dtb 7 | If users want to use VIT, need to use imx93-11x11-frdm-aud-hat.dtb 8 | and install 8MIC board 9 | 10 | Signed-off-by: Danwei Luo 11 | --- 12 | misc/conf/asound.conf_imx93 | 2 +- 13 | misc/scripts/run.sh | 2 +- 14 | 2 files changed, 2 insertions(+), 2 deletions(-) 15 | 16 | diff --git a/misc/conf/asound.conf_imx93 b/misc/conf/asound.conf_imx93 17 | index 6c5aa31..a400010 100644 18 | --- a/misc/conf/asound.conf_imx93 19 | +++ b/misc/conf/asound.conf_imx93 20 | @@ -4,7 +4,7 @@ defaults.pcm.rate_converter "linear" 21 | pcm.spk 22 | { 23 | type plug 24 | - slave.pcm "hw:wm8962audio,0" 25 | + slave.pcm "hw:mqsaudio,0" 26 | } 27 | 28 | # mic represents the physical source (capture) 29 | diff --git a/misc/scripts/run.sh b/misc/scripts/run.sh 30 | index f80c773..af00618 100755 31 | --- a/misc/scripts/run.sh 32 | +++ b/misc/scripts/run.sh 33 | @@ -18,7 +18,7 @@ mv /unit_tests/nxp-afe/Config.ini /unit_tests/nxp-afe/Config.ini.original 34 | if [[ $evk == "imx8mp-lpddr4-evk" || $evk == "imx8mpevk" ]]; then 35 | audiocard="micfilaudio" 36 | cp -v $mypath/conf/asound.conf_imx8mp /etc/asound.conf 37 | -elif [[ $evk == "imx93-11x11-lpddr4x-evk" || $evk == "imx93evk" ]]; then 38 | +elif [[ $evk == "imx93-11x11-lpddr4x-evk" || $evk == "imx93evk" || $evk == "imx93-11x11-lpddr4x-frdm" || $evk == "imx93frdm" ]]; then 39 | audiocard="micfilaudio" 40 | cp -v $mypath/conf/asound.conf_imx93 /etc/asound.conf 41 | elif [[ $evk == "imx8mm-lpddr4-evk" || $evk == "imx8mmevk" ]]; then 42 | -- 43 | 2.25.1 44 | 45 | -------------------------------------------------------------------------------- /patch/linux/0001-gpio-pca953x-fix-pca953x_irq_bus_sync_unlock-race.patch: -------------------------------------------------------------------------------- 1 | From 8d20778f74a717169062635e509c79c384142af2 Mon Sep 17 00:00:00 2001 2 | From: Ian Ray 3 | Date: Thu, 20 Jun 2024 07:29:15 +0300 4 | Subject: [PATCH 01/19] gpio: pca953x: fix pca953x_irq_bus_sync_unlock race 5 | 6 | [ Upstream commit bfc6444b57dc7186b6acc964705d7516cbaf3904 ] 7 | 8 | Ensure that `i2c_lock' is held when setting interrupt latch and mask in 9 | pca953x_irq_bus_sync_unlock() in order to avoid races. 10 | 11 | The other (non-probe) call site pca953x_gpio_set_multiple() ensures the 12 | lock is held before calling pca953x_write_regs(). 13 | 14 | The problem occurred when a request raced against irq_bus_sync_unlock() 15 | approximately once per thousand reboots on an i.MX8MP based system. 16 | 17 | * Normal case 18 | 19 | 0-0022: write register AI|3a {03,02,00,00,01} Input latch P0 20 | 0-0022: write register AI|49 {fc,fd,ff,ff,fe} Interrupt mask P0 21 | 0-0022: write register AI|08 {ff,00,00,00,00} Output P3 22 | 0-0022: write register AI|12 {fc,00,00,00,00} Config P3 23 | 24 | * Race case 25 | 26 | 0-0022: write register AI|08 {ff,00,00,00,00} Output P3 27 | 0-0022: write register AI|08 {03,02,00,00,01} *** Wrong register *** 28 | 0-0022: write register AI|12 {fc,00,00,00,00} Config P3 29 | 0-0022: write register AI|49 {fc,fd,ff,ff,fe} Interrupt mask P0 30 | 31 | Signed-off-by: Ian Ray 32 | Link: https://lore.kernel.org/r/20240620042915.2173-1-ian.ray@gehealthcare.com 33 | Signed-off-by: Bartosz Golaszewski 34 | Signed-off-by: Sasha Levin 35 | --- 36 | drivers/gpio/gpio-pca953x.c | 2 ++ 37 | 1 file changed, 2 insertions(+) 38 | 39 | diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c 40 | index c80429b00b10..c7cd3a5602f2 100644 41 | --- a/drivers/gpio/gpio-pca953x.c 42 | +++ b/drivers/gpio/gpio-pca953x.c 43 | @@ -767,6 +767,8 @@ static void pca953x_irq_bus_sync_unlock(struct irq_data *d) 44 | int level; 45 | 46 | if (chip->driver_data & PCA_PCAL) { 47 | + guard(mutex)(&chip->i2c_lock); 48 | + 49 | /* Enable latch on interrupt-enabled inputs */ 50 | pca953x_write_regs(chip, PCAL953X_IN_LATCH, chip->irq_mask); 51 | 52 | -- 53 | 2.25.1 54 | 55 | -------------------------------------------------------------------------------- /patch/linux/0008-arm64-dts-add-button-support.patch: -------------------------------------------------------------------------------- 1 | From d277001dc50e99f4fe517c7331c7dec6618df91e Mon Sep 17 00:00:00 2001 2 | From: Yuantian Tang 3 | Date: Fri, 21 Jun 2024 10:59:52 +0800 4 | Subject: [PATCH 08/19] arm64: dts: add button support 5 | 6 | FRDM board was equipped 3 buttons. 7 | K1 is onoff button to power on/off the board. 8 | K2 and K3 are user defined buttons. 9 | K2/K3 can be tested by: 10 | ~# evtest /dev/input/event1 11 | 12 | Signed-off-by: Andy Tang 13 | --- 14 | .../boot/dts/freescale/imx93-11x11-frdm.dts | 20 +++++++++++++++++++ 15 | 1 file changed, 20 insertions(+) 16 | 17 | diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts 18 | index 0f3d483c16f0..4ef8e729f3f5 100644 19 | --- a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts 20 | +++ b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts 21 | @@ -205,6 +205,26 @@ sound-mqs { 22 | audio-cpu = <&sai1>; 23 | audio-codec = <&mqs1>; 24 | }; 25 | + 26 | + sw-keys { 27 | + compatible = "gpio-keys"; 28 | + 29 | + K2: user_btn1 { 30 | + label = "User Button1"; 31 | + linux,code = ; 32 | + gpios = <&pcal6524 5 GPIO_PULL_UP>; 33 | + interrupt-parent = <&pcal6524>; 34 | + interrupts = <5 IRQ_TYPE_EDGE_FALLING>; 35 | + }; 36 | + 37 | + K3: user_btn2 { 38 | + label = "User Button2"; 39 | + linux,code = ; 40 | + gpios = <&pcal6524 6 GPIO_PULL_UP>; 41 | + interrupt-parent = <&pcal6524>; 42 | + interrupts = <6 IRQ_TYPE_EDGE_FALLING>; 43 | + }; 44 | + }; 45 | }; 46 | 47 | &sai1 { 48 | -- 49 | 2.25.1 50 | 51 | -------------------------------------------------------------------------------- /patch/openssl/openssl-3.0-add-Kernel-TLS-configuration.patch: -------------------------------------------------------------------------------- 1 | From 24254454e5f5fc503b5e4cc1fa8c6d9b1a3ae9ba Mon Sep 17 00:00:00 2001 2 | From: Gaurav Jain 3 | Date: Wed, 19 Jan 2022 15:45:29 +0530 4 | Subject: [PATCH] openssl 3.0: add Kernel TLS configuration 5 | 6 | Upstream-Status: Inappropriate [i.MX, Layerscape specific] 7 | Signed-off-by: Gaurav Jain 8 | --- 9 | apps/openssl.cnf | 9 +++++++++ 10 | 1 file changed, 9 insertions(+) 11 | 12 | diff --git a/apps/openssl.cnf b/apps/openssl.cnf 13 | index 03330e0120..ec18df388e 100644 14 | --- a/apps/openssl.cnf 15 | +++ b/apps/openssl.cnf 16 | @@ -30,6 +30,15 @@ oid_section = new_oids 17 | # (Alternatively, use a configuration file that has only 18 | # X.509v3 extensions in its main [= default] section.) 19 | 20 | +[ openssl_init ] 21 | +ssl_conf = ssl_configuration 22 | + 23 | +[ ssl_configuration ] 24 | +ktls = ktls_conf 25 | + 26 | +[ ktls_conf ] 27 | +Options = KTLS 28 | + 29 | [ new_oids ] 30 | # We can add new OIDs in here for use by 'ca', 'req' and 'ts'. 31 | # Add a simple OID like this: 32 | -- 33 | 2.25.1 34 | 35 | -------------------------------------------------------------------------------- /patch/optee_os/0001-add-optee-os-support-for-imx91evk-imx91frdm-imx93frd.patch: -------------------------------------------------------------------------------- 1 | From 1e01273df9ffc583d3bf1f61b8562cb78b89cb83 Mon Sep 17 00:00:00 2001 2 | From: Shengzhou 3 | Date: Tue, 22 Oct 2024 11:14:13 +0200 4 | Subject: [PATCH] add optee-os support for imx91evk imx91frdm imx93frdm 5 | 6 | --- 7 | core/arch/arm/plat-imx/conf.mk | 4 +++- 8 | 1 file changed, 3 insertions(+), 1 deletion(-) 9 | 10 | diff --git a/core/arch/arm/plat-imx/conf.mk b/core/arch/arm/plat-imx/conf.mk 11 | index 33647835f..5a621cc4b 100644 12 | --- a/core/arch/arm/plat-imx/conf.mk 13 | +++ b/core/arch/arm/plat-imx/conf.mk 14 | @@ -90,12 +90,14 @@ mx8ulp-flavorlist = \ 15 | 16 | mx93-flavorlist = \ 17 | mx93evk \ 18 | + mx93frdm \ 19 | 20 | mx95-flavorlist = \ 21 | mx95evk \ 22 | 23 | mx91-flavorlist = \ 24 | mx91evk \ 25 | + mx91frdm \ 26 | 27 | ifneq (,$(filter $(PLATFORM_FLAVOR),$(mx6ul-flavorlist))) 28 | $(call force,CFG_MX6,y) 29 | @@ -488,7 +490,7 @@ CFG_DDR_SIZE ?= 0x80000000 30 | CFG_UART_BASE ?= UART5_BASE 31 | endif 32 | 33 | -ifneq (,$(filter $(PLATFORM_FLAVOR),mx93evk mx91evk)) 34 | +ifneq (,$(filter $(PLATFORM_FLAVOR),mx93evk mx93frdm mx91evk mx91frdm)) 35 | CFG_DDR_SIZE ?= 0x80000000 36 | CFG_UART_BASE ?= UART1_BASE 37 | endif 38 | -- 39 | 2.34.1 40 | 41 | -------------------------------------------------------------------------------- /patch/uboot/0001-fix-issue-failed-to-boot-kernel-itb-image.patch: -------------------------------------------------------------------------------- 1 | From 5390c2a706569a5349c60e8c972fa9d4e74263db Mon Sep 17 00:00:00 2001 2 | From: Shengzhou 3 | Date: Tue, 6 Aug 2024 16:48:47 +0900 4 | Subject: [PATCH] fix issue failed to boot kernel itb image 5 | 6 | --- 7 | configs/imx8mm_evk_defconfig | 1 + 8 | configs/imx8mp_evk_defconfig | 2 +- 9 | configs/imx93_11x11_evk_defconfig | 2 ++ 10 | 3 files changed, 4 insertions(+), 1 deletion(-) 11 | 12 | diff --git a/configs/imx8mm_evk_defconfig b/configs/imx8mm_evk_defconfig 13 | index 703e2f49514..05f58ecd343 100644 14 | --- a/configs/imx8mm_evk_defconfig 15 | +++ b/configs/imx8mm_evk_defconfig 16 | @@ -32,6 +32,7 @@ CONFIG_BOOTCOMMAND="run sr_ir_v2_cmd;run distro_bootcmd;run bsp_bootcmd" 17 | CONFIG_OF_SYSTEM_SETUP=y 18 | CONFIG_SYS_CBSIZE=2048 19 | CONFIG_SYS_PBSIZE=2074 20 | +CONFIG_SYS_BOOTM_LEN=0x4000000 21 | CONFIG_BOARD_LATE_INIT=y 22 | CONFIG_SPL_HAS_BSS_LINKER_SECTION=y 23 | CONFIG_SPL_BSS_START_ADDR=0x910000 24 | diff --git a/configs/imx8mp_evk_defconfig b/configs/imx8mp_evk_defconfig 25 | index 7112fdf5859..70b23904a76 100644 26 | --- a/configs/imx8mp_evk_defconfig 27 | +++ b/configs/imx8mp_evk_defconfig 28 | @@ -56,7 +56,7 @@ CONFIG_SPL_WATCHDOG=y 29 | CONFIG_SYS_PROMPT="u-boot=> " 30 | CONFIG_SYS_CBSIZE=2048 31 | CONFIG_SYS_PBSIZE=2074 32 | -CONFIG_SYS_BOOTM_LEN=0x2000000 33 | +CONFIG_SYS_BOOTM_LEN=0x4000000 34 | # CONFIG_BOOTM_NETBSD is not set 35 | # CONFIG_CMD_EXPORTENV is not set 36 | # CONFIG_CMD_IMPORTENV is not set 37 | diff --git a/configs/imx93_11x11_evk_defconfig b/configs/imx93_11x11_evk_defconfig 38 | index 93b5c5a6575..287707466c8 100644 39 | --- a/configs/imx93_11x11_evk_defconfig 40 | +++ b/configs/imx93_11x11_evk_defconfig 41 | @@ -27,6 +27,8 @@ CONFIG_SYS_MEMTEST_START=0x80000000 42 | CONFIG_SYS_MEMTEST_END=0x90000000 43 | CONFIG_REMAKE_ELF=y 44 | CONFIG_FIT=y 45 | +CONFIG_FIT_EXTERNAL_OFFSET=0x3000 46 | +CONFIG_SPL_LOAD_FIT=y 47 | CONFIG_FIT_SIGNATURE=y 48 | CONFIG_DISTRO_DEFAULTS=y 49 | CONFIG_OF_SYSTEM_SETUP=y 50 | -- 51 | 2.34.1 52 | 53 | -------------------------------------------------------------------------------- /patch/vkmark/0001-scenes-Use-depth-format-supported-by-i.MX.patch: -------------------------------------------------------------------------------- 1 | From d88b1869c51581c56624eaf6cbedfdf6bdb19a41 Mon Sep 17 00:00:00 2001 2 | From: Tom Hochstein 3 | Date: Wed, 13 Jun 2018 22:02:20 +0000 4 | Subject: [PATCH] scenes: Use depth format supported by i.MX 5 | 6 | Upstream-Status: Inappropriate [i.MX-specific] 7 | 8 | Signed-off-by: Tom Hochstein 9 | 10 | --- 11 | src/scenes/shading_scene.cpp | 2 +- 12 | src/scenes/texture_scene.cpp | 2 +- 13 | src/scenes/vertex_scene.cpp | 2 +- 14 | 3 files changed, 3 insertions(+), 3 deletions(-) 15 | 16 | diff --git a/src/scenes/shading_scene.cpp b/src/scenes/shading_scene.cpp 17 | index fa496ba..3e19ee8 100644 18 | --- a/src/scenes/shading_scene.cpp 19 | +++ b/src/scenes/shading_scene.cpp 20 | @@ -64,7 +64,7 @@ void ShadingScene::setup( 21 | vulkan = &vulkan_; 22 | extent = vulkan_images[0].extent; 23 | format = vulkan_images[0].format; 24 | - depth_format = vk::Format::eD32Sfloat; 25 | + depth_format = vk::Format::eD24UnormS8Uint; 26 | aspect = static_cast(extent.height) / extent.width; 27 | 28 | mesh = Model{"cat.3ds"}.to_mesh( 29 | diff --git a/src/scenes/texture_scene.cpp b/src/scenes/texture_scene.cpp 30 | index 04a8207..ccc9d2f 100644 31 | --- a/src/scenes/texture_scene.cpp 32 | +++ b/src/scenes/texture_scene.cpp 33 | @@ -65,7 +65,7 @@ void TextureScene::setup( 34 | vulkan = &vulkan_; 35 | extent = vulkan_images[0].extent; 36 | format = vulkan_images[0].format; 37 | - depth_format = vk::Format::eD32Sfloat; 38 | + depth_format = vk::Format::eD24UnormS8Uint; 39 | aspect = static_cast(extent.height) / extent.width; 40 | 41 | mesh = Model{"cube.3ds"}.to_mesh( 42 | diff --git a/src/scenes/vertex_scene.cpp b/src/scenes/vertex_scene.cpp 43 | index 0fd7fe7..4f6d49a 100644 44 | --- a/src/scenes/vertex_scene.cpp 45 | +++ b/src/scenes/vertex_scene.cpp 46 | @@ -66,7 +66,7 @@ void VertexScene::setup( 47 | vulkan = &vulkan_; 48 | extent = vulkan_images[0].extent; 49 | format = vulkan_images[0].format; 50 | - depth_format = vk::Format::eD32Sfloat; 51 | + depth_format = vk::Format::eD24UnormS8Uint; 52 | aspect = static_cast(extent.height) / extent.width; 53 | 54 | mesh = Model{"horse.3ds"}.to_mesh( 55 | -------------------------------------------------------------------------------- /patch/vkmark/0002-src-meson.build-Prepend-sysroot-for-the-includedir.patch: -------------------------------------------------------------------------------- 1 | From 316d477d0f8dc0936b4e057545ff83f1993047a6 Mon Sep 17 00:00:00 2001 2 | From: Neena Busireddy 3 | Date: Mon, 3 May 2021 11:44:46 -0700 4 | Subject: [PATCH] src/meson.build: Prepend sysroot for the includedir 5 | 6 | Need to prepend PKG_CONFIG_SYSROOT_DIR to the dir path for cross compilation 7 | 8 | Upstream-Status: Inappropriate [OE-specific] 9 | 10 | Signed-off-by: Neena Busireddy 11 | 12 | --- 13 | src/meson.build | 3 +++ 14 | 1 file changed, 3 insertions(+) 15 | 16 | diff --git a/src/meson.build b/src/meson.build 17 | index 35813c5..9032706 100644 18 | --- a/src/meson.build 19 | +++ b/src/meson.build 20 | @@ -6,6 +6,9 @@ vulkan_hpp = join_paths([ 21 | 'vulkan.hpp' 22 | ]) 23 | 24 | +pkgconf_sysroot = run_command(prog_python, '-c', 'import os; print(os.environ.get("PKG_CONFIG_SYSROOT_DIR"))').stdout().strip() 25 | +vulkan_hpp = pkgconf_sysroot + vulkan_hpp 26 | + 27 | format_map_gen_h = custom_target( 28 | 'format_map_gen.h', 29 | output: 'format_map_gen.h', 30 | -------------------------------------------------------------------------------- /patch/vkmark/0003-meson.build-Enable-native-wayland-scanner.patch: -------------------------------------------------------------------------------- 1 | From ec56eaab16cb99dad7d9b3fa45ddbcd3a3bc469c Mon Sep 17 00:00:00 2001 2 | From: Neena Busireddy 3 | Date: Tue, 11 Oct 2022 12:42:10 -0700 4 | Subject: [PATCH] meson.build: Enable native wayland scanner 5 | 6 | With openembedded commit e525db4eb9 ("wayland: update 1.20.0 -> 1.21.0") 7 | package config seems no longer to provide the path to the native 8 | wayland scanner. 9 | 10 | This patch fixes the following build break: 11 | 12 | Program /usr/bin/wayland-scanner found: NO 13 | | 14 | | ../git/src/meson.build:93:4: ERROR: Program '/usr/bin/wayland-scanner' not found or not executable 15 | | 16 | 17 | Signed-off-by: Neena Busireddy 18 | 19 | --- 20 | meson.build | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/meson.build b/meson.build 24 | index 0d83918..9c33652 100644 25 | --- a/meson.build 26 | +++ b/meson.build 27 | @@ -29,7 +29,7 @@ xcb_icccm_dep = dependency('xcb-icccm', required : get_option('xcb') == 'true') 28 | wayland_client_dep = dependency('wayland-client', required : get_option('wayland') == 'true') 29 | wayland_protocols_dep = dependency('wayland-protocols', version : '>= 1.12', 30 | required : get_option('wayland') == 'true') 31 | -wayland_scanner_dep = dependency('wayland-scanner', required : get_option('wayland') == 'true') 32 | +wayland_scanner_dep = dependency('wayland-scanner', required : get_option('wayland') == 'true', native: true) 33 | libdrm_dep = dependency('libdrm', required : get_option('kms') == 'true') 34 | gbm_dep = dependency('gbm', required : get_option('kms') == 'true') 35 | 36 | -------------------------------------------------------------------------------- /setup.env: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export FBDIR=$(pwd) 4 | export PATH="$FBDIR:$FBDIR/tools:$PATH" 5 | export GIT_SSL_NO_VERIFY=1 6 | 7 | if [ `hostname` = fbdebian ] && [ `whoami` = root ]; then 8 | cp -f /root/.bashrc . && . .bashrc 9 | git config --global --add safe.directory $FBDIR 10 | fi 11 | 12 | [ ! -L tools/bld ] && ln -s flex-builder tools/bld 13 | [ ! -f /usr/bin/python ] && sudo ln -s python3 /usr/bin/python 14 | -------------------------------------------------------------------------------- /src/Makefile: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | include $(FBDIR)/configs/$(CONFIGLIST) 7 | 8 | .PHONY: linux bsp apps 9 | 10 | apps: 11 | @$(MAKE) -C $(FBDIR)/src/$@ 12 | 13 | $(BSP_REPO_LIST): 14 | @$(MAKE) -C $(FBDIR)/src/bsp $@ 15 | 16 | $(LINUX_REPO_LIST) linux-headers linux-deb linux-modules: 17 | @$(MAKE) -C $(FBDIR)/src/linux $@ 18 | 19 | $(APPS_REPO_LIST) utils security ml gopoint robotics \ 20 | networking graphics multimedia connectivity: 21 | @$(MAKE) -C $(FBDIR)/src/apps $@ 22 | -------------------------------------------------------------------------------- /src/apps/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2017-2024 NXP 3 | # 4 | # SPDX-License-Identifier: BSD-3-Clause 5 | # 6 | # 7 | # SDK Application Components 8 | # 9 | 10 | SHELL=/bin/bash 11 | include $(FBDIR)/configs/$(CONFIGLIST) 12 | include $(FBDIR)/include/repo.mk 13 | 14 | 15 | GRAPHICSDIR = $(PKGDIR)/apps/graphics 16 | CONNDIR = $(PKGDIR)/apps/connectivity 17 | MMDIR = $(PKGDIR)/apps/multimedia 18 | NETDIR = $(PKGDIR)/apps/networking 19 | SECDIR = $(PKGDIR)/apps/security 20 | UTILSDIR = $(PKGDIR)/apps/utils 21 | MLDIR = $(PKGDIR)/apps/ml 22 | GPDIR = $(PKGDIR)/apps/gopoint 23 | ROBOTDIR = $(PKGDIR)/apps/robotics 24 | 25 | all: $(APPS_REPO_LIST) 26 | @$(call fbprint_d,"apps components") 27 | 28 | 29 | connectivity: $(CONNECTIVITY_REPO_LIST) 30 | networking: $(NETWORKING_REPO_LIST) 31 | multimedia: $(MULTIMEDIA_REPO_LIST) 32 | graphics: $(GRAPHICS_REPO_LIST) 33 | security: $(SECURITY_REPO_LIST) 34 | utils: $(UTILS_REPO_LIST) 35 | gopoint: $(GOPOINT_REPO_LIST) 36 | robotics: $(ROBOTICS_REPO_LIST) 37 | ml: $(ML_REPO_LIST) 38 | 39 | 40 | include $(sort $(wildcard $(FBDIR)/src/apps/*/*.mk)) 41 | include $(FBDIR)/include/repo_update.inc 42 | -------------------------------------------------------------------------------- /src/apps/connectivity/nxp_wlan_bt.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # NXP WiFi + Bluetooth SDK for IW612, W8997, W8987, W9098, etc 7 | 8 | # https://www.nxp.com/products/wireless/wi-fi-plus-bluetooth 9 | 10 | 11 | nxp_wlan_bt: 12 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 13 | $(call fbprint_b,"nxp_wlan_bt") && \ 14 | $(call repo-mngr,fetch,linux,linux) 1>/dev/null && \ 15 | $(call repo-mngr,fetch,nxp_wlan_bt,apps/connectivity) && \ 16 | curbrch=`cd $(KERNEL_PATH) && git branch | grep ^* | cut -d' ' -f2` && \ 17 | kerneloutdir=$(KERNEL_OUTPUT_PATH)/$$curbrch && \ 18 | if [ ! -f $$kerneloutdir/include/generated/autoconf.h ]; then \ 19 | bld linux -a $(DESTARCH) -p $(SOCFAMILY); \ 20 | fi && \ 21 | export INSTALL_MOD_PATH=$$kerneloutdir/tmp && \ 22 | cd $(PKGDIR)/apps/connectivity/nxp_wlan_bt && \ 23 | if [ -d $(FBDIR)/patch/nxp_wlan_bt ] && [ ! -f .patchdone ]; then \ 24 | git am $(FBDIR)/patch/nxp_wlan_bt/*.patch && touch .patchdone; \ 25 | fi && \ 26 | \ 27 | make build KERNELDIR=$(KERNEL_PATH) O=$$kerneloutdir && \ 28 | kernelrelease=`cat $(KERNEL_OUTPUT_PATH)/$$curbrch/include/config/kernel.release` && \ 29 | mkdir -p $(DESTDIR)/usr/share/nxp_wireless && \ 30 | install -d $$kerneloutdir/tmp/lib/modules/$$kernelrelease/kernel/drivers/net/wireless/nxp && \ 31 | cp -f mlan.ko moal.ko $$kerneloutdir/tmp/lib/modules/$$kernelrelease/kernel/drivers/net/wireless/nxp && \ 32 | cp -f bin_wlan/README $(DESTDIR)/usr/share/nxp_wireless/ && \ 33 | $(call fbprint_d,"nxp_wlan_bt") 34 | -------------------------------------------------------------------------------- /src/apps/gopoint/imx_demo_experience.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # NXP Demo Experience Launcher 6 | # GoPoint on i.MX Application Processors 7 | 8 | # https://github.com/nxp-imx-support/nxp-demo-experience 9 | 10 | # Depend: 11 | # qt6-base-dev qt6-wayland qt6-declarative-dev 12 | # qml6-module-qtquick qml6-module-qtquick-controls qml6-module-qtquick-window qml6-module-qtquick-templates 13 | # qml6-module-qtquick-layouts qml6-module-qtqml-workerscript qml6-module-qt5compat-graphicaleffects 14 | 15 | imx_demo_experience: 16 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) != desktop ] && exit || \ 17 | $(call fbprint_b,"imx_demo_experience") && \ 18 | $(call repo-mngr,fetch,imx_demo_experience,apps/gopoint) && \ 19 | export INSTALL_ROOT=$(DESTDIR) && \ 20 | export QT_SELECT=qt6 && \ 21 | if qtchooser -install qt6 /usr/bin/qmake6 | grep 'already exists'; then \ 22 | echo qtchooser: qt6 already exists; \ 23 | fi && \ 24 | cd $(GPDIR)/imx_demo_experience && \ 25 | qmake -makefile -o Makefile demoexperience.pro -spec linux-aarch64-gnu-g++ && \ 26 | sed -e "s|aarch64-linux-gnu-g++|aarch64-linux-gnu-g++ --sysroot=$(RFSDIR)|g" \ 27 | -e "s|/usr/lib/x86_64-linux-gnu|$(RFSDIR)/usr/lib/aarch64-linux-gnu|g" \ 28 | -e "s|/usr/include/x86_64-linux-gnu|$(RFSDIR)/usr/include/aarch64-linux-gnu|g" \ 29 | -e '/-spec linux-aarch64-gnu-g++/d' -i Makefile && \ 30 | $(MAKE) -j$(JOBS) && \ 31 | $(MAKE) -j$(JOBS) install && \ 32 | mv $(DESTDIR)/opt/demoexperience/bin/demoexperience $(DESTDIR)/usr/bin/ && \ 33 | rm -rf $(DESTDIR)/opt/demoexperience && \ 34 | ln -sf demoexperience $(DESTDIR)/usr/bin/gopoint && \ 35 | $(call fbprint_d,"imx_demo_experience") 36 | -------------------------------------------------------------------------------- /src/apps/gopoint/imx_demos_list.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # RDEPENDS: python3-packaging python3-paramiko iproute2 iproute2-tc python3-matplotlib 7 | 8 | 9 | GPNT_APPS_FOLDER = /opt/gopoint-apps 10 | 11 | 12 | imx_demos_list: 13 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 14 | $(call fbprint_b,"imx_demos_list") && \ 15 | $(call repo-mngr,fetch,imx_demos_list,apps/gopoint) && \ 16 | cd $(GPDIR)/imx_demos_list && \ 17 | if [ -d $(FBDIR)/patch/imx_demos_list ] && [ ! -f .patchdone ]; then \ 18 | git am $(FBDIR)/patch/imx_demos_list/*.patch && touch .patchdone; \ 19 | fi && \ 20 | mkdir -p $(DESTDIR)/$(GPNT_APPS_FOLDER) && \ 21 | cp -r * $(DESTDIR)/$(GPNT_APPS_FOLDER) && \ 22 | chmod 777 $(DESTDIR)/$(GPNT_APPS_FOLDER) && \ 23 | if ! grep -q no-check-certificate $(DESTDIR)/opt/gopoint-apps/scripts/utils.py; then \ 24 | sed -i 's/wget/wget --no-check-certificate/g' $(DESTDIR)/opt/gopoint-apps/scripts/utils.py; \ 25 | fi && \ 26 | $(call fbprint_d,"imx_demos_list") 27 | -------------------------------------------------------------------------------- /src/apps/gopoint/imx_nnstreamer_examples.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # NNStreamer Examples on i.MX platforms 6 | 7 | # NNStreamer Examples LICENSE: BSD-3-Clause 8 | 9 | # DEPENDS: glib-2.0 gstreamer1.0 nnstreamer 10 | 11 | 12 | GPNT_APPS_FOLDER = /opt/gopoint-apps 13 | 14 | IMX_NNSTREANER_DIR = $(GPNT_APPS_FOLDER)/scripts/machine_learning/nnstreamer 15 | 16 | imx_nnstreamer_examples: 17 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base \ 18 | -o $(DISTROVARIANT) = server ] && exit || \ 19 | $(call fbprint_b,"imx_nnstreamer_examples") && \ 20 | $(call repo-mngr,fetch,imx_nnstreamer_examples,apps/gopoint) && \ 21 | cd $(GPDIR)/imx_nnstreamer_examples && \ 22 | if [ -d $(FBDIR)/patch/imx_nnstreamer_examples ] && [ ! -f .patchdone ]; then \ 23 | git am $(FBDIR)/patch/imx_nnstreamer_examples/*.patch && touch .patchdone; \ 24 | fi && \ 25 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 26 | export CXX="$(CROSS_COMPILE)g++ --sysroot=$(RFSDIR)" && \ 27 | export CXXFLAGS="-I$(DESTDIR)/usr/include/ -L$(DESTDIR)/usr/lib -lgstreamer-1.0" && \ 28 | export CFLAGS="-I$(DESTDIR)/usr/include/ -L$(DESTDIR)/usr/lib -lgstreamer-1.0" && \ 29 | export PKG_CONFIG_LIBDIR=$(RFSDIR)/usr/lib/aarch64-linux-gnu/pkgconfig && \ 30 | export PKG_CONFIG_PATH=$(RFSDIR)/usr/share/pkgconfig:$(RFSDIR)/usr/lib/pkgconfig && \ 31 | rm -rf build_$(DISTROTYPE)_$(ARCH) && \ 32 | mkdir -p build_$(DISTROTYPE)_$(ARCH) && \ 33 | cmake -S $(GPDIR)/imx_nnstreamer_examples \ 34 | -B build_$(DISTROTYPE)_$(ARCH) \ 35 | -DCMAKE_BUILD_TYPE=release && \ 36 | cmake --build build_$(DISTROTYPE)_$(ARCH) -j$(JOBS) --target all && \ 37 | cmake --install build_$(DISTROTYPE)_$(ARCH) --prefix /usr && \ 38 | mkdir -p $(DESTDIR)/$(IMX_NNSTREANER_DIR)/{common,classification,detection,pose} && \ 39 | cp -r common/* $(DESTDIR)/$(IMX_NNSTREANER_DIR)/common/ && \ 40 | cp {LICENSE,SCR-*} $(DESTDIR)/$(IMX_NNSTREANER_DIR) && \ 41 | cp classification/{README.md,*.sh} $(DESTDIR)/$(IMX_NNSTREANER_DIR)/classification && \ 42 | cp build_$(DISTROTYPE)_$(ARCH)/classification/example_classification_mobilenet_v1_tflite \ 43 | $(DESTDIR)/$(IMX_NNSTREANER_DIR)/classification && \ 44 | cp detection/{README.md,*.sh} $(DESTDIR)/$(IMX_NNSTREANER_DIR)/detection && \ 45 | cp pose/{README.md,example_pose_movenet_tflite.py} $(DESTDIR)/$(IMX_NNSTREANER_DIR)/pose && \ 46 | $(call fbprint_d,"imx_nnstreamer_examples") 47 | -------------------------------------------------------------------------------- /src/apps/gopoint/imx_smart_fitness.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # Smart Fitness application on i.MX 6 | 7 | # DEPENDS: glib-2.0 gstreamer1.0 nnstreamer cairo 8 | 9 | GPNT_APPS_FOLDER = /opt/gopoint-apps 10 | 11 | IMX_SMART_FITNESS_DIR = $(GPNT_APPS_FOLDER)/scripts/machine_learning/imx_smart_fitness 12 | 13 | imx_smart_fitness: 14 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) != desktop ] && exit || \ 15 | $(call fbprint_b,"imx_smart_fitness") && \ 16 | $(call repo-mngr,fetch,imx_smart_fitness,apps/gopoint) && \ 17 | if [ ! -f $(DESTDIR)/usr/lib/gstreamer-1.0/libnnstreamer.so ]; then \ 18 | bld nnstreamer -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 19 | fi && \ 20 | sudo cp -rf $(DESTDIR)//usr/include/nnstreamer $(RFSDIR)//usr/include && \ 21 | cd $(GPDIR)/imx_smart_fitness && \ 22 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 23 | export CXX="$(CROSS_COMPILE)g++ --sysroot=$(RFSDIR)" && \ 24 | export PKG_CONFIG_LIBDIR=$(RFSDIR)/usr/lib/aarch64-linux-gnu/pkgconfig && \ 25 | export PKG_CONFIG_PATH=$(RFSDIR)/usr/share/pkgconfig && \ 26 | mkdir -p build_$(DISTROTYPE)_$(ARCH) && \ 27 | cmake -S $(GPDIR)/imx_smart_fitness \ 28 | -B build_$(DISTROTYPE)_$(ARCH) \ 29 | -DCMAKE_CXX_FLAGS="-I$(DESTDIR)/usr/include -I$(RFSDIR)/usr/include" \ 30 | -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ 31 | -DLIBRARY_PATH=$(RFSDIR)/usr/lib/aarch64-linux-gnu \ 32 | -DCMAKE_BUILD_TYPE=release && \ 33 | cmake --build build_$(DISTROTYPE)_$(ARCH) --target all && \ 34 | cmake --install build_$(DISTROTYPE)_$(ARCH) --prefix /usr && \ 35 | $(CROSS_COMPILE)strip --remove-section=.comment --remove-section=.note --strip-unneeded \ 36 | build_$(DISTROTYPE)_$(ARCH)/src/imx-smart-fitness && \ 37 | install -m 0755 build_$(DISTROTYPE)_$(ARCH)/src/imx-smart-fitness $(DESTDIR)/$(IMX_SMART_FITNESS_DIR) && \ 38 | $(call fbprint_d,"imx_smart_fitness") 39 | -------------------------------------------------------------------------------- /src/apps/gopoint/imx_smart_kitchen.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | GPNT_APPS_FOLDER = /opt/gopoint-apps 6 | 7 | imx_smart_kitchen: 8 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) != desktop ] && exit || \ 9 | $(call fbprint_b,"imx_smart_kitchen") && \ 10 | $(call repo-mngr,fetch,imx_smart_kitchen,apps/gopoint) && \ 11 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 12 | export CXX="$(CROSS_COMPILE)g++ --sysroot=$(RFSDIR)" && \ 13 | cd $(GPDIR)/imx_smart_kitchen && \ 14 | if [ -d $(FBDIR)/patch/imx_smart_kitchen ] && [ ! -f .patchdone ]; then \ 15 | git am $(FBDIR)/patch/imx_smart_kitchen/*.patch && touch .patchdone; \ 16 | fi && \ 17 | sed -i 's|/home/root/.nxp-demo-experience|/opt/gopoint-apps|g' \ 18 | main.cpp main.cpp misc/scripts/vit-notify/WWCommandNotify && \ 19 | if [ ! -f lvgl/.patchdone ]; then \ 20 | cp misc/patches/*.patch lvgl/ && \ 21 | cp -r wayland-client/* lv_drivers/wayland/ && \ 22 | cd lvgl && git am *.patch && touch .patchdone && cd ..; \ 23 | fi && \ 24 | rm -rf smart-kitchen-deploy && \ 25 | $(MAKE) -j$(JOBS) && \ 26 | install -d -m 755 $(DESTDIR)$(GPNT_APPS_FOLDER)/scripts/multimedia/smart-kitchen && \ 27 | cp -rf smart-kitchen-deploy/* $(DESTDIR)$(GPNT_APPS_FOLDER)/scripts/multimedia/smart-kitchen && \ 28 | $(call fbprint_d,"imx_smart_kitchen") 29 | -------------------------------------------------------------------------------- /src/apps/graphics/apitrace.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # Tools for tracing OpenGL, Direct3D, and other graphics APIs 7 | # http://apitrace.github.io 8 | 9 | # DEPEND: libwaffle-dev procps zlib1g-dev libpng-dev 10 | 11 | 12 | apitrace: 13 | ifeq ($(CONFIG_APITRACE),y) 14 | @[ $(DISTROVARIANT) != desktop ] && exit || \ 15 | $(call fbprint_b,"apitrace") && \ 16 | $(call repo-mngr,fetch,apitrace,apps/graphics) && \ 17 | cd $(GRAPHICSDIR)/apitrace && \ 18 | if [ ! -f .patchdone ]; then \ 19 | git am $(FBDIR)/patch/apitrace/*.patch && touch .patchdone; \ 20 | fi && \ 21 | cp -f $(FBDIR)/src/system/pkgconfig/libproc2.pc $(DESTDIR)/usr/lib/pkgconfig && \ 22 | export CC="$(CROSS_COMPILE)gcc -march=armv8-a+crc+crypto -mbranch-protection=standard --sysroot=$(RFSDIR)" && \ 23 | export CXX="$(CROSS_COMPILE)g++ -march=armv8-a+crc+crypto -mbranch-protection=standard --sysroot=$(RFSDIR)" && \ 24 | export PKG_CONFIG_SYSROOT_DIR=$(RFSDIR) && \ 25 | export PKG_CONFIG_PATH=$(RFSDIR)/usr/lib/aarch64-linux-gnu/pkgconfig:$(RFSDIR)/usr/share/pkgconfig:$(DESTDIR)/usr/lib/pkgconfig && \ 26 | mkdir -p build_$(DISTROTYPE)_$(ARCH) && \ 27 | cmake -S $(GRAPHICSDIR)/apitrace \ 28 | -B $(GRAPHICSDIR)/apitrace/build_$(DISTROTYPE)_$(ARCH) \ 29 | -DCMAKE_INSTALL_PREFIX:PATH=/usr \ 30 | -DCMAKE_INSTALL_LIBDIR:PATH=lib \ 31 | -DPython3_ROOT_DIR=/usr/bin \ 32 | -DENABLE_STATIC_LIBGCC=OFF \ 33 | -DENABLE_STATIC_LIBSTDCXX=OFF \ 34 | -DENABLE_EGL=ON \ 35 | -DENABLE_GUI=OFF \ 36 | -DENABLE_MULTIARCH=OFF \ 37 | -DENABLE_VIVANTE=ON \ 38 | -DENABLE_WAFFLE=ON \ 39 | -DENABLE_X11=OFF \ 40 | -DVivante_INC_SEARCH_PATH=$(RFSDIR)/usr/include \ 41 | -DVivante_LIB_SEARCH_PATH=$(RFSDIR)/usr/lib \ 42 | -DCMAKE_BUILD_TYPE=release && \ 43 | VERBOSE=1 cmake --build $(GRAPHICSDIR)/apitrace/build_$(DISTROTYPE)_$(ARCH) --target install && \ 44 | $(call fbprint_d,"apitrace") 45 | endif 46 | -------------------------------------------------------------------------------- /src/apps/graphics/clutter_gst.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # GStreamer integration library for Clutter 7 | # clutter-gst is an integration library for using GStreamer with Clutter. 8 | # It provides a GStreamer sink to upload frames to GL and an actor that implements the ClutterGstPlayer interface using playbin. 9 | # http://www.clutter-project.org 10 | 11 | # depends on clutter-1.0 which depends on cogl-1.0 12 | # depends on gstreamer1.0-plugins-base gstreamer1.0-plugins-bad clutter-1.0 libgudev 13 | 14 | clutter_gst: 15 | @[ $(DISTROVARIANT) != desktop ] && exit || \ 16 | $(call fbprint_b,"clutter_gst") && \ 17 | $(call repo-mngr,fetch,clutter_gst,apps/graphics) && \ 18 | if [ ! -f $(DESTDIR)/usr/lib/libgstplay-1.0.so.0 ]; then \ 19 | bld gst_plugins_bad -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 20 | fi && \ 21 | if [ ! -f $(DESTDIR)/usr/lib/libcogl.so ]; then \ 22 | bld cogl -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 23 | fi && \ 24 | if [ ! -f $(DESTDIR)/usr/lib/libdrm.so ]; then \ 25 | bld libdrm -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 26 | fi && \ 27 | sudo cp -Pf $(DESTDIR)/usr/lib/{libGLESv2.so*,libVSC.so,libEGL.so*,libGAL.so*,libgbm.so*,libcogl.so*,libdrm.so*,libgst*.so*} \ 28 | $(RFSDIR)/usr/lib && \ 29 | sudo cp -rf $(DESTDIR)/usr/include/cogl $(RFSDIR)/usr/include && \ 30 | sudo cp $(DESTDIR)/usr/lib/libgbm_viv.so* $(RFSDIR)/usr/lib && \ 31 | sudo rm -f $(RFSDIR)/usr/lib/aarch64-linux-gnu/{libgbm.so,libcogl.so,libgstallocators-1.0.so*,libclutter-gst-3.0.so.0} && \ 32 | \ 33 | cd $(GRAPHICSDIR)/clutter_gst && \ 34 | if [ ! -f .patchdone ]; then \ 35 | git am $(FBDIR)/patch/clutter_gst/*.patch && touch .patchdone; \ 36 | fi && \ 37 | sed -i 's/noinst_PROGRAMS/bin_PROGRAMS/' examples/Makefile.am && \ 38 | export CFLAGS="-I$(DESTDIR)/usr/include -I$(DESTDIR)/usr/include/gstreamer-1.0 \ 39 | -I$(DESTDIR)/usr/include/clutter-1.0 -I$(RFSDIR)/usr/include" && \ 40 | export GST_PLUGIN_SCANNER_1_0=$(GRAPHICSDIR)/clutter_gst/gst-plugin-scanner-dummy && \ 41 | \ 42 | ./autogen.sh --prefix=/usr --host=aarch64-linux-gnu && \ 43 | ./configure CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" \ 44 | --host=aarch64-linux-gnu \ 45 | --enable-introspection=no \ 46 | --disable-gtk-doc \ 47 | --disable-static \ 48 | --enable-nls \ 49 | --prefix=/usr && \ 50 | $(MAKE) -j$(JOBS) && \ 51 | $(MAKE) install && \ 52 | $(call fbprint_d,"clutter_gst") 53 | -------------------------------------------------------------------------------- /src/apps/graphics/cogl.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # Cogl is a small open source library for using 3D graphics hardware for rendering. 7 | # https://gitlab.gnome.org/GNOME/cogl 8 | 9 | # clutter-1.0 depends on cogl-1.0 10 | 11 | cogl: 12 | @[ $(DESTARCH) != arm64 -o $(DISTROVARIANT) != desktop ] && exit || \ 13 | $(call fbprint_b,"cogl") && \ 14 | $(call repo-mngr,fetch,cogl,apps/graphics) && \ 15 | cd $(GRAPHICSDIR)/cogl && \ 16 | if [ ! -f $(DESTDIR)/usr/lib/libGLESv2.so ]; then \ 17 | bld gpu_viv -r $(DISTROTYPE):$(DISTROVARIANT); \ 18 | fi && \ 19 | if [ ! -f .patchdone ]; then \ 20 | git am $(FBDIR)/patch/cogl/*.patch && touch .patchdone; \ 21 | fi && \ 22 | export CROSS=$(CROSS_COMPILE) && \ 23 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR) \ 24 | -march=armv8-a+crc+crypto -mbranch-protection=standard -O2 \ 25 | -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat \ 26 | -Wformat-security -Werror=format-security -Wno-error=maybe-uninitialized" && \ 27 | export CFLAGS="-I$(DESTDIR)/usr/include/libdrm -I$(DESTDIR)/usr/include -I$(RFSDIR)/usr/include" && \ 28 | export LDFLAGS="-L$(DESTDIR)/usr/lib -L$(RFSDIR)/usr/lib/aarch64-linux-gnu" && \ 29 | sudo cp $(DESTDIR)/usr/lib/{libVSC.so,libgbm_viv.so,libGLESv2.so*} $(RFSDIR)/usr/lib && \ 30 | \ 31 | ./autogen.sh --prefix=/usr --host=aarch64-linux-gnu && \ 32 | ./configure CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" \ 33 | --host=aarch64-linux-gnu \ 34 | --prefix=/usr \ 35 | --disable-silent-rules \ 36 | --disable-dependency-tracking \ 37 | --with-libtool-sysroot=$(RFSDIR) \ 38 | --disable-introspection \ 39 | --disable-gtk-doc \ 40 | --enable-examples-install \ 41 | --enable-cogl-pango \ 42 | --enable-kms-egl-platform \ 43 | --disable-null-egl-platform \ 44 | --enable-wayland-egl-platform \ 45 | --disable-xlib-egl-platform \ 46 | --disable-gles1 \ 47 | --disable-cairo \ 48 | --disable-static \ 49 | --enable-gles2 \ 50 | --enable-gl \ 51 | --enable-glx \ 52 | --enable-wayland-egl-server \ 53 | --enable-nls && \ 54 | $(MAKE) -j$(JOBS) && \ 55 | $(MAKE) install && \ 56 | $(call fbprint_d,"cogl") 57 | -------------------------------------------------------------------------------- /src/apps/graphics/gpu_viv.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # GPU driver and demo test apps for Vivante GPU on i.MX and LS1028a platforms 6 | 7 | 8 | gpu_viv: 9 | @[ $(SOCFAMILY) != IMX -a $${MACHINE:0:7} != ls1028a -o \ 10 | $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 11 | echo Building gpu_viv ... && \ 12 | if [ ! -d $(GRAPHICSDIR)/gpu_viv ]; then \ 13 | mkdir -p $(GRAPHICSDIR) && cd $(GRAPHICSDIR) && \ 14 | echo Downloading $(repo_gpu_viv_bin_url) && \ 15 | wget -q $(repo_gpu_viv_bin_url) -O gpu_viv.bin && chmod +x gpu_viv.bin && \ 16 | ./gpu_viv.bin --auto-accept && mv imx-gpu-* gpu_viv && rm -f gpu_viv.bin; \ 17 | fi && \ 18 | cd $(GRAPHICSDIR)/gpu_viv && \ 19 | cp -rfa gpu-core/* $(DESTDIR) && \ 20 | ln -sf libvulkan_VSI.so $(DESTDIR)/usr/lib/libvulkan.so.1 && \ 21 | ln -sf libvulkan.so.1 $(DESTDIR)/usr/lib/libvulkan.so && \ 22 | rm -f $(DESTDIR)/usr/lib/libGL.so* && \ 23 | sudo rm -f $(RFSDIR)/usr/lib/aarch64-linux-gnu/{libGLESv2.so,libGLESv2.so.2,libgbm.so.1,libvulkan.so,libvulkan.so.1,libEGL.so,libEGL.so.1} && \ 24 | if [ -d gpu-tools ]; then cp -rfa gpu-tools/gmem-info/usr $(DESTDIR); fi && \ 25 | if [ -d gpu-demos ]; then cp -rf gpu-demos/opt $(DESTDIR); fi && \ 26 | $(call fbprint_d,"gpu_viv") 27 | -------------------------------------------------------------------------------- /src/apps/graphics/gputop.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # Sample program to monitor i.MX GPU performance data 7 | 8 | 9 | gputop: 10 | @[ $(DESTARCH) != arm64 -o $(DISTROVARIANT) != desktop ] && exit || \ 11 | $(call fbprint_b,"gputop") && \ 12 | $(call repo-mngr,fetch,gputop,apps/graphics) && \ 13 | if [ ! -f $(DESTDIR)/usr/include/gpuperfcnt/gpuperfcnt.h ]; then \ 14 | bld libgpuperfcnt -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 15 | fi && \ 16 | cd $(GRAPHICSDIR)/gputop && \ 17 | mkdir -p build_$(DISTROTYPE)_$(ARCH) && \ 18 | cd build_$(DISTROTYPE)_$(ARCH) && \ 19 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 20 | cmake -DCMAKE_TOOLCHAIN_FILE=$(GRAPHICSDIR)/gputop/cmake/OEToolchainConfig.cmake \ 21 | -DGPUPERFCNT_INCLUDE_PATH=$(DESTDIR)/usr/include \ 22 | -DGPUPERFCNT_LIB_PATH=$(DESTDIR)/usr/lib .. && \ 23 | $(MAKE) -j$(JOBS) && $(MAKE) install && \ 24 | install -m 0444 ../man/* $(DESTDIR)/usr/local/share/man/man8/ && \ 25 | $(call fbprint_d,"gputop") 26 | -------------------------------------------------------------------------------- /src/apps/graphics/imx_dpu_g2d.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # G2D library using i.MX DPU on imx8dx, imx8qxp, imx8qm 7 | # 8 | # DEPENDS: libgal-imx libdrm 9 | 10 | 11 | imx_dpu_g2d: 12 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) != desktop ] && exit || \ 13 | $(call fbprint_b,"imx_dpu_g2d") && \ 14 | cd $(GRAPHICSDIR) && \ 15 | if [ ! -d $(GRAPHICSDIR)/imx_dpu_g2d ]; then \ 16 | wget -q $(repo_imx_dpu_g2d_bin_url) -O imx_dpu_g2d.bin && \ 17 | chmod +x imx_dpu_g2d.bin && ./imx_dpu_g2d.bin --auto-accept && \ 18 | mv imx-dpu-g2d-* imx_dpu_g2d && rm -f imx_dpu_g2d.bin; \ 19 | fi && \ 20 | cd imx_dpu_g2d && \ 21 | cp -Pf g2d/usr/lib/*.so* $(DESTDIR)/usr/lib/ && \ 22 | cp -Pr g2d/usr/include/* $(DESTDIR)/usr/include/ && \ 23 | $(call fbprint_d,"imx_dpu_g2d") 24 | -------------------------------------------------------------------------------- /src/apps/graphics/imx_g2d_samples.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # Set of sample applications for i.MX G2D 6 | 7 | 8 | # PXP on imx93 9 | # DPU on imx8dx, imx8qxp, imx8qm 10 | # GPU on others 11 | 12 | ifeq ($(MACHINE),imx93evk) 13 | BUILD_IMPLEMENTATION = pxp 14 | else ifeq ($(MACHINE),imx8qm) 15 | BUILD_IMPLEMENTATION = dpu 16 | else ifeq ($(MACHINE),imx8dx) 17 | BUILD_IMPLEMENTATION = dpu 18 | else ifeq ($(MACHINE),imx8qxp) 19 | BUILD_IMPLEMENTATION = dpu 20 | else 21 | BUILD_IMPLEMENTATION = gpu-drm 22 | endif 23 | 24 | 25 | imx_g2d_samples: 26 | @[ $(DISTROVARIANT) != desktop -o $(SOCFAMILY) != IMX ] && exit || \ 27 | $(call fbprint_b,"imx_g2d_samples for $(BUILD_IMPLEMENTATION)") && \ 28 | $(call repo-mngr,fetch,imx_g2d_samples,apps/graphics) && \ 29 | \ 30 | if [ ! -f $(DESTDIR)/usr/lib/libg2d.so.2 ]; then \ 31 | bld imx_gpu_g2d -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 32 | fi && \ 33 | cd $(GRAPHICSDIR)/imx_g2d_samples && \ 34 | sudo cp $(DESTDIR)/usr/lib/{libOpenCL.so*,libSPIRV_viv.so*} $(RFSDIR)/usr/lib && \ 35 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 36 | export BUILD_IMPLEMENTATION=$(BUILD_IMPLEMENTATION) && \ 37 | export SDKTARGETSYSROOT=$(RFSDIR) && \ 38 | export CFLAGS="-I$(DESTDIR)/usr/include" && \ 39 | export LDFLAGS="-L$(DESTDIR)/usr/lib" && \ 40 | $(MAKE) clean && \ 41 | $(MAKE) -j$(JOBS) && \ 42 | $(MAKE) -j$(JOBS) install DESTDIR=$(DESTDIR) && \ 43 | $(call fbprint_d,"imx_g2d_samples") 44 | -------------------------------------------------------------------------------- /src/apps/graphics/imx_gpu_g2d.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # GPU G2D library and apps for i.MX with 2D GPU 7 | 8 | # COMPATIBLE_MACHINE: imx8mm 9 | 10 | imx_gpu_g2d: 11 | @[ $(SOCFAMILY) != IMX -a $${MACHINE:0:7} != ls1028a -o \ 12 | $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 13 | $(call fbprint_b,"imx_gpu_g2d") && \ 14 | cd $(GRAPHICSDIR) && \ 15 | if [ ! -d $(GRAPHICSDIR)/imx_gpu_g2d ]; then \ 16 | wget -q $(repo_imx_gpu_g2d_bin_url) -O imx_gpu_g2d.bin && \ 17 | chmod +x imx_gpu_g2d.bin && ./imx_gpu_g2d.bin --auto-accept && \ 18 | mv imx-gpu-g2d-* imx_gpu_g2d && rm -f imx_gpu_g2d.bin; \ 19 | fi && \ 20 | cd imx_gpu_g2d && \ 21 | cp -Pr g2d/usr/include/* $(DESTDIR)/usr/include/ && \ 22 | cp -Pf g2d/usr/lib/libg2d* $(DESTDIR)/usr/lib/ && \ 23 | cp g2d/usr/lib/mx8mm/libg2d-viv.so.2.2.0 $(DESTDIR)/usr/lib/libg2d-viv-mx8mm.so.2.2.0 && \ 24 | $(call fbprint_d,"imx_gpu_g2d") 25 | -------------------------------------------------------------------------------- /src/apps/graphics/imx_pxp_g2d.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # G2D library using i.MX PXP on imx93 6 | 7 | 8 | 9 | imx_pxp_g2d: 10 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 11 | $(call fbprint_b,"imx_pxp_g2d") && \ 12 | $(call repo-mngr,fetch,imx_pxp_g2d,apps/graphics) && \ 13 | if [ ! -f $(DESTDIR)/usr/include/linux/pxp_device.h ]; then \ 14 | bld linux-headers -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 15 | fi && \ 16 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 17 | cd $(GRAPHICSDIR)/imx_pxp_g2d && \ 18 | $(MAKE) clean && \ 19 | $(MAKE) -j$(JOBS) PLATFORM=IMX93 INCLUDE='-I$(DESTDIR)/usr/include' DEST_DIR=$(DESTDIR) && \ 20 | $(MAKE) -j$(JOBS) DEST_DIR=$(DESTDIR) install && \ 21 | $(call fbprint_d,"imx_pxp_g2d") 22 | -------------------------------------------------------------------------------- /src/apps/graphics/libdrm.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | libdrm: 6 | @[ $(SOCFAMILY) != IMX -a $${MACHINE:0:7} != ls1028a -o \ 7 | $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 8 | $(call fbprint_b,"libdrm") && \ 9 | $(call repo-mngr,fetch,libdrm,apps/graphics) && \ 10 | cd $(GRAPHICSDIR)/libdrm && \ 11 | sed -e 's%@TARGET_CROSS@%$(CROSS_COMPILE)%g' -e 's%@STAGING_DIR@%$(RFSDIR)%g' \ 12 | -e 's%@DESTDIR@%$(DESTDIR)%g' $(FBDIR)/src/system/meson.cross > meson.cross && \ 13 | PYTHONNOUSERSITE=y PKG_CONFIG_SYSROOT_DIR=$(RFSDIR) \ 14 | meson setup build_$(DISTROTYPE)_$(ARCH) \ 15 | --cross-file=meson.cross \ 16 | --prefix=/usr \ 17 | --default-library=shared --buildtype=release \ 18 | -Damdgpu=enabled \ 19 | -Dcairo-tests=disabled \ 20 | -Detnaviv=enabled \ 21 | -Dexynos=disabled \ 22 | -Dfreedreno=enabled \ 23 | -Dfreedreno-kgsl=false \ 24 | -Dinstall-test-programs=true \ 25 | -Dintel=enabled \ 26 | -Dman-pages=disabled \ 27 | -Dnouveau=enabled \ 28 | -Domap=enabled \ 29 | -Dradeon=enabled \ 30 | -Dtegra=disabled \ 31 | -Dtests=true \ 32 | -Dudev=false \ 33 | -Dvalgrind=disabled \ 34 | -Dvc4=enabled \ 35 | -Dvivante=true \ 36 | -Dvmwgfx=enabled \ 37 | -Dc_link_args="-pthread" && \ 38 | PYTHONNOUSERSITE=y DESTDIR=$(DESTDIR) \ 39 | ninja -j$(JOBS) install -C build_$(DISTROTYPE)_$(ARCH) && \ 40 | $(call fbprint_d,"libdrm") 41 | -------------------------------------------------------------------------------- /src/apps/graphics/libgpuperfcnt.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # A library to retrieve i.MX GPU performance data 7 | 8 | 9 | 10 | libgpuperfcnt: 11 | @[ $(DISTROVARIANT) != desktop ] && exit || \ 12 | $(call fbprint_b,"libgpuperfcnt") && \ 13 | cd $(GRAPHICSDIR) && \ 14 | if [ ! -d libgpuperfcnt ]; then \ 15 | wget -q $(repo_libgpuperfcnt_bin_url) -O libgpuperfcnt.bin && \ 16 | chmod +x libgpuperfcnt.bin && ./libgpuperfcnt.bin --auto-accept && \ 17 | rm -f libgpuperfcnt.bin; \ 18 | fi && \ 19 | cp -Prf libgpuperfcnt/usr $(DESTDIR) && \ 20 | $(call fbprint_d,"libgpuperfcnt") 21 | -------------------------------------------------------------------------------- /src/apps/graphics/vkmark.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # vkmark is an extensible Vulkan benchmarking suite with targeted, configurable scenes 6 | 7 | # DEPENDS: libvulkan1 libassimp-dev libglm-dev 8 | 9 | repo_vkmark_url=https://github.com/vkmark/vkmark.git 10 | repo_vkmark_commit=ab6e6f3407 11 | 12 | vkmark: 13 | ifeq ($(CONFIG_VKMARK),y) 14 | @[ $(DISTROVARIANT) != desktop ] && exit || \ 15 | $(call fbprint_b,"vkmark") && \ 16 | $(call repo-mngr,fetch,vkmark,apps/graphics) && \ 17 | bld vulkan_headers -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 18 | cd $(GRAPHICSDIR)/vkmark && \ 19 | if [ ! -f .patchdone ]; then \ 20 | git am $(FBDIR)/patch/vkmark/*.patch && touch .patchdone; \ 21 | fi && \ 22 | [ `hostname` = fbdebian ] && export PKG_CONFIG_SYSROOT_DIR="" || true && \ 23 | sed -e 's%@TARGET_CROSS@%$(CROSS_COMPILE)%g' -e 's%@STAGING_DIR@%$(RFSDIR)%g' \ 24 | -e 's%@DESTDIR@%$(DESTDIR)%g' $(FBDIR)/src/system/meson.cross > meson.cross && \ 25 | sudo rm -f $(RFSDIR)/usr/lib/aarch64-linux-gnu/libvulkan.so && \ 26 | sudo cp -fa $(DESTDIR)/usr/lib/{libvulkan*.so*,libSPIRV_viv.so,libGLSLC.so} $(RFSDIR)/usr/lib && \ 27 | sudo cp -fr $(DESTDIR)/usr/include/vulkan $(RFSDIR)/usr/include/ && \ 28 | meson setup build_$(DISTROTYPE)_$(ARCH) \ 29 | --cross-file=meson.cross \ 30 | --prefix=/usr \ 31 | --buildtype=release \ 32 | -Dc_args="-I$(DESTDIR)/usr/include/vulkan" && \ 33 | ninja -j$(JOBS) install -C build_$(DISTROTYPE)_$(ARCH) && \ 34 | $(call fbprint_d,"vkmark") 35 | endif 36 | -------------------------------------------------------------------------------- /src/apps/graphics/vulkan_headers.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2020-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # https://www.khronos.org/vulkan 6 | # Vulkan Header files and API registry 7 | 8 | repo_vulkan_headers_url=https://github.com/KhronosGroup/Vulkan-Headers.git 9 | repo_vulkan_headers_commit=2bb0a23104ceffd9a2 10 | 11 | 12 | vulkan_headers: 13 | @[ $(DESTARCH) != arm64 -o $(DISTROVARIANT) != desktop ] && exit || \ 14 | $(call fbprint_b,"vulkan_headers") && \ 15 | $(call repo-mngr,fetch,vulkan_headers,apps/graphics) && \ 16 | cd $(GRAPHICSDIR)/vulkan_headers && \ 17 | mkdir -p build_$(DISTROTYPE)_$(ARCH) && \ 18 | cmake -S . -B build_$(DISTROTYPE)_$(ARCH) && \ 19 | cmake --install build_$(DISTROTYPE)_$(ARCH) --prefix /usr && \ 20 | $(call fbprint_d,"vulkan_headers") 21 | -------------------------------------------------------------------------------- /src/apps/graphics/wayland.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | wayland: 7 | ifeq ($(CONFIG_WAYLAND),y) 8 | @[ $(SOCFAMILY) = LS -a $${MACHINE:0:7} != ls1028a -o \ 9 | $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 10 | $(call fbprint_b,"wayland") && \ 11 | $(call repo-mngr,fetch,wayland,apps/graphics) && \ 12 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 13 | export PKG_CONFIG_SYSROOT_DIR=$(RFSDIR) && \ 14 | export PKG_CONFIG_LIBDIR=$(DESTDIR)/usr/lib/pkgconfig:$(RFSDIR)/usr/lib/aarch64-linux-gnu/pkgconfig && \ 15 | cd $(GRAPHICSDIR)/wayland && \ 16 | sed -e 's%@TARGET_CROSS@%$(CROSS_COMPILE)%g' -e 's%@TARGET_ARCH@%aarch64%g' \ 17 | -e 's%@TARGET_CPU@%cortex-a72%g' -e 's%@TARGET_ENDIAN@%little%g' -e 's%@STAGING_DIR@%$(RFSDIR)%g' \ 18 | $(FBDIR)/src/system/meson.cross > meson.cross && \ 19 | meson setup build_$(DISTROTYPE)_$(ARCH) \ 20 | -Ddocumentation=false \ 21 | -Dtests=false \ 22 | -Dc_args="-I$(DESTDIR)/usr/include -I$(RFSDIR)/usr/include" \ 23 | -Dc_link_args="-L$(DESTDIR)/usr/local/lib -L$(RFSDIR)/lib/aarch64-linux-gnu" \ 24 | --prefix=/usr \ 25 | --buildtype=release \ 26 | --cross-file=meson.cross && \ 27 | DESTDIR=$(DESTDIR) ninja -j $(JOBS) -C build_$(DISTROTYPE)_$(ARCH) install && \ 28 | $(call fbprint_d,"wayland") 29 | endif 30 | -------------------------------------------------------------------------------- /src/apps/graphics/wayland_protocols.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | 7 | wayland_protocols: 8 | @[ $(SOCFAMILY) != IMX -a $${MACHINE:0:7} != ls1028a -o \ 9 | $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 10 | $(call fbprint_b,"wayland_protocols") && \ 11 | $(call repo-mngr,fetch,wayland_protocols,apps/graphics) && \ 12 | cd $(GRAPHICSDIR)/wayland_protocols && \ 13 | sed -e 's%@TARGET_CROSS@%$(CROSS_COMPILE)%g' -e 's%@STAGING_DIR@%$(RFSDIR)%g' \ 14 | -e 's%@DESTDIR@%$(DESTDIR)%g' $(FBDIR)/src/system/meson.cross > meson.cross && \ 15 | meson setup build_$(DISTROTYPE)_$(ARCH) \ 16 | -Dtests=false \ 17 | -Dc_link_args="-L$(DESTDIR)/usr/local/lib -L$(RFSDIR)/lib/aarch64-linux-gnu" \ 18 | --prefix=/usr \ 19 | --buildtype=release \ 20 | --cross-file meson.cross && \ 21 | DESTDIR=$(DESTDIR) ninja -j $(JOBS) -C build_$(DISTROTYPE)_$(ARCH) install && \ 22 | $(call fbprint_d,"wayland_protocols") 23 | -------------------------------------------------------------------------------- /src/apps/ml/eiq_examples.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2022-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # The eiq examples based on tf-lite on imx93evk 6 | 7 | # RDEPENDS: python3 python3-numpy python3-pillow python3-requests python3-opencv tensorflow-lite 8 | 9 | 10 | eiq_examples: 11 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 12 | $(call fbprint_b,"eiq_examples") && \ 13 | $(call repo-mngr,fetch,eiq_examples,apps/ml) && \ 14 | cd $(MLDIR)/eiq_examples && \ 15 | install -d $(DESTDIR)/usr/bin/eiq-examples && \ 16 | cp -rfa * $(DESTDIR)/usr/bin/eiq-examples && \ 17 | $(call fbprint_d,"eiq_examples") 18 | -------------------------------------------------------------------------------- /src/apps/ml/ethosu_driver_stack.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # The Linux driver stack for Arm(R) Ethos(TM)-U provides an example of how a rich operating system like Linux can 6 | # dispatch inferences to an Arm Cortex(R)-M subsystem, consisting of an Arm Cortex-M of choice and an Arm Ethos-U NPU. 7 | 8 | # depend: libflatbuffers-dev on target 9 | 10 | # COMPATIBLE_MACHINE: imx93 11 | 12 | PYTHON_SITEPACKAGES_DIR = "/usr/lib/python3.11/site-packages" 13 | 14 | 15 | ethosu_driver_stack: 16 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 17 | $(call fbprint_b,"ethosu_driver_stack") && \ 18 | $(call repo-mngr,fetch,ethosu_driver_stack,apps/ml) && \ 19 | cd $(MLDIR)/ethosu_driver_stack && \ 20 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 21 | export CXX="$(CROSS_COMPILE)g++ --sysroot=$(RFSDIR)" && \ 22 | mkdir -p build_$(DISTROTYPE)_$(ARCH)/dist && \ 23 | cmake -S $(MLDIR)/ethosu_driver_stack \ 24 | -B $(MLDIR)/ethosu_driver_stack/build_$(DISTROTYPE)_$(ARCH) && \ 25 | $(MAKE) -j$(JOBS) -C build_$(DISTROTYPE)_$(ARCH) && \ 26 | cmake --install build_$(DISTROTYPE)_$(ARCH) --prefix /usr --strip && \ 27 | NO_FETCH_BUILD=1 \ 28 | STAGING_INCDIR=$(RFSDIR)/usr/include \ 29 | STAGING_LIBDIR=$(RFSDIR)/usr/lib \ 30 | python3 setup.py bdist_wheel --verbose --dist-dir build_$(DISTROTYPE)_$(ARCH)/dist build_ext \ 31 | --library-dirs build_$(DISTROTYPE)_$(ARCH)/driver_library && \ 32 | mkdir -p $(DESTDIR)/$(PYTHON_SITEPACKAGES_DIR)/ethosu && \ 33 | cp build/lib.linux-*-cpython*/ethosu/interpreter.cpython-*-linux-gnu.so $(DESTDIR)/$(PYTHON_SITEPACKAGES_DIR)/ethosu && \ 34 | rename "s/x86_64/aarch64/" $(DESTDIR)/$(PYTHON_SITEPACKAGES_DIR)/ethosu/*.so && \ 35 | $(call fbprint_d,"ethosu_driver_stack") 36 | -------------------------------------------------------------------------------- /src/apps/ml/ethosu_firmware.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # The firmware of Cortex(R)-M33 for Arm(R) Ethos(TM)-U NPU 6 | 7 | # COMPATIBLE_MACHINE: imx93 8 | 9 | ethosu_firmware: 10 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 11 | $(call fbprint_b,"ethosu_firmware") && \ 12 | $(call repo-mngr,fetch,ethosu_firmware,apps/ml) && \ 13 | cd $(MLDIR)/ethosu_firmware && \ 14 | cp -f ethosu_firmware $(DESTDIR)/usr/lib/ && \ 15 | $(call fbprint_d,"ethosu_firmware") 16 | -------------------------------------------------------------------------------- /src/apps/ml/ethosu_vela.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # The firmware of Cortex-M33 for Arm Ethos-U NPU on imx93 6 | 7 | # COMPATIBLE_MACHINE: imx93 8 | 9 | # RDEPEND: python3-flatbuffers python3-numpy python3-lxml 10 | 11 | PYTHON_SITEPACKAGES_DIR = "/usr/lib/python3.11/site-packages" 12 | 13 | 14 | ethosu_vela: 15 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 16 | $(call fbprint_b,"ethosu_vela") && \ 17 | $(call repo-mngr,fetch,ethosu_vela,apps/ml) && \ 18 | cd $(MLDIR)/ethosu_vela && \ 19 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR) -I$(RFSDIR)/usr/include/python3.11" && \ 20 | export LDFLAGS="-L$(DESTDIR)/usr/lib -L$(RFSDIR)/usr/lib/aarch64-linux-gnu" && \ 21 | mkdir -p $(MLDIR)/ethosu_vela/build/dist && \ 22 | NO_FETCH_BUILD=1 ARCH=arm64 \ 23 | STAGING_INCDIR=$(RFSDIR)/usr/include \ 24 | STAGING_LIBDIR=$(RFSDIR)/usr/lib/aarch64-linux-gnu \ 25 | python3 setup.py bdist_wheel --verbose --dist-dir build/dist && \ 26 | pip3 install --ignore-installed --disable-pip-version-check -t $(DESTDIR)/$(PYTHON_SITEPACKAGES_DIR) \ 27 | --no-cache-dir --no-deps build/dist/ethos_u_vela*.whl && \ 28 | cp -rfa build/lib.linux-*cpython*/ethosu $(DESTDIR)/$(PYTHON_SITEPACKAGES_DIR) && \ 29 | rename "s/x86_64/aarch64/" $(DESTDIR)/$(PYTHON_SITEPACKAGES_DIR)/ethosu/*.so && \ 30 | if [ -f $(DESTDIR)/$(PYTHON_SITEPACKAGES_DIR)/bin/vela ]; then \ 31 | mv $(DESTDIR)/$(PYTHON_SITEPACKAGES_DIR)/bin/vela $(DESTDIR)/usr/bin/; \ 32 | fi && \ 33 | $(call fbprint_d,"ethosu_vela") 34 | -------------------------------------------------------------------------------- /src/apps/ml/flatbuffers.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # https://github.com/google/flatbuffers 6 | # Memory Efficient Serialization Library 7 | 8 | # The native version 2.0.8 of Debian 12 libflatbuffers-dev doesn't match the required version 23.5.26 used for NNStreamer build. 9 | 10 | 11 | flatbuffers: 12 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 13 | $(call fbprint_b,"flatbuffers") && \ 14 | $(call repo-mngr,fetch,flatbuffers,apps/ml) && \ 15 | cd $(MLDIR)/flatbuffers && \ 16 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 17 | export CXX="$(CROSS_COMPILE)g++ --sysroot=$(RFSDIR)" && \ 18 | mkdir -p build_$(DISTROTYPE)_$(ARCH) && \ 19 | cmake -S $(MLDIR)/flatbuffers \ 20 | -B $(MLDIR)/flatbuffers/build_$(DISTROTYPE)_$(ARCH) \ 21 | -DCMAKE_CXX_FLAGS="-I$(DESTDIR)/usr/include -I$(RFSDIR)/usr/include" \ 22 | -DFLATBUFFERS_BUILD_TESTS=OFF \ 23 | -DFLATBUFFERS_BUILD_SHAREDLIB=ON && \ 24 | cmake --build $(MLDIR)/flatbuffers/build_$(DISTROTYPE)_$(ARCH) -j$(JOBS) --target all && \ 25 | cmake --install build_$(DISTROTYPE)_$(ARCH) --prefix /usr && \ 26 | $(call fbprint_d,"flatbuffers") 27 | -------------------------------------------------------------------------------- /src/apps/ml/nnshark.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # A GStreamer NNstreamer pipelines real-time profiling plugin 6 | 7 | # Depend: gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad libgpuperfcnt perf 8 | 9 | nnshark: 10 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) != desktop ] && exit || \ 11 | $(call fbprint_b,"nnshark") && \ 12 | $(call repo-mngr,fetch,nnshark,apps/ml) && \ 13 | if [ ! -f $(DESTDIR)/usr/lib/libgstplay-1.0.so.0 ]; then \ 14 | bld gst_plugins_bad -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 15 | fi && \ 16 | if [ ! -f $(DESTDIR)/usr/lib/libgpuperfcnt.so ]; then \ 17 | bld libgpuperfcnt -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 18 | fi && \ 19 | sudo cp -rf $(DESTDIR)/usr/lib/libgpuperfcnt.so* $(RFSDIR)/usr/lib/ && \ 20 | sudo cp -rf $(DESTDIR)/usr/include/gpuperfcnt $(RFSDIR)/usr/include/ && \ 21 | cd $(MLDIR)/nnshark && \ 22 | sed -i 's/--exclude=gtkdocize//' autogen.sh && \ 23 | ./autogen.sh --noconfigure --prefix=/usr --host=aarch64-linux-gnu && \ 24 | ./configure CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" \ 25 | --host=aarch64-linux-gnu \ 26 | --disable-graphviz \ 27 | --disable-gtk-doc \ 28 | --prefix=/usr && \ 29 | $(MAKE) -j$(JOBS) && \ 30 | $(MAKE) install && \ 31 | $(call fbprint_d,"nnshark") 32 | -------------------------------------------------------------------------------- /src/apps/ml/nnstreamer_edge.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # NNStreamer-Edge library 6 | # Remote source nodes for NNStreamer pipelines without GStreamer dependencies 7 | 8 | # NNStreamer LICENSE: Apache-2.0 9 | 10 | # DEPENDS: gtest 11 | 12 | nnstreamer_edge: 13 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 14 | $(call fbprint_b,"nnstreamer_edge") && \ 15 | $(call repo-mngr,fetch,nnstreamer_edge,apps/ml) && \ 16 | cd $(MLDIR)/nnstreamer_edge && \ 17 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 18 | export CXX="$(CROSS_COMPILE)g++ --sysroot=$(RFSDIR)" && \ 19 | export PKG_CONFIG_LIBDIR=$(RFSDIR)/usr/lib/aarch64-linux-gnu/pkgconfig && \ 20 | export PKG_CONFIG_PATH=$(RFSDIR)/usr/share/pkgconfig && \ 21 | mkdir -p build_$(DISTROTYPE)_$(ARCH) && \ 22 | cmake -S $(MLDIR)/nnstreamer_edge \ 23 | -B build_$(DISTROTYPE)_$(ARCH) \ 24 | -DCMAKE_BUILD_TYPE=release \ 25 | -DENABLE_TEST=OFF && \ 26 | cmake --build build_$(DISTROTYPE)_$(ARCH) -j$(JOBS) --target all && \ 27 | cmake --install build_$(DISTROTYPE)_$(ARCH) --prefix /usr && \ 28 | mv $(DESTDIR)/usr/local/include/nnstreamer-edge.h $(DESTDIR)/usr/include && \ 29 | mv $(DESTDIR)/pkgconfig/nnstreamer-edge.pc $(DESTDIR)/usr/lib/pkgconfig/ && \ 30 | rm -rf $(DESTDIR)/pkgconfig && \ 31 | $(call fbprint_d,"nnstreamer_edge") 32 | -------------------------------------------------------------------------------- /src/apps/ml/pytorch.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # Tensors and Dynamic neural networks in Python with strong GPU acceleration 6 | 7 | # RDEPENDS: python3-core python3-numpy python3-future python3-typing-extensions numactl 8 | 9 | PV = "2.0.0" 10 | PYV = "cp311" 11 | PYTHON_SITEPACKAGES_DIR = "/usr/lib/python3.11/site-packages" 12 | 13 | 14 | pytorch: 15 | ifeq ($(CONFIG_PYTORCH),y) 16 | @[ $(DESTARCH) != arm64 -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 17 | $(call fbprint_b,"pytorch") && \ 18 | $(call repo-mngr,fetch,pytorch,apps/ml) && \ 19 | cd $(MLDIR)/pytorch && \ 20 | install -d $(DESTDIR)/$(PYTHON_SITEPACKAGES_DIR) && \ 21 | install -d $(DESTDIR)/usr/bin/pytorch/examples && \ 22 | install -m 0555 examples/* $(DESTDIR)/usr/bin/pytorch/examples && \ 23 | install -m 0555 src/build.sh $(DESTDIR)/usr/bin/pytorch && \ 24 | pip3 install --ignore-installed --disable-pip-version-check -v --platform linux_aarch64 \ 25 | -t $(DESTDIR)/$(PYTHON_SITEPACKAGES_DIR) --no-cache-dir --no-deps whl/torch-$(PV)-$(PYV)*.whl && \ 26 | mv $(DESTDIR)/$(PYTHON_SITEPACKAGES_DIR)/bin/* $(DESTDIR)/usr/bin && \ 27 | rm -rf $(DESTDIR)/$(PYTHON_SITEPACKAGES_DIR)/bin && \ 28 | rm -rf $(DESTDIR)/$(PYTHON_SITEPACKAGES_DIR)/torch/bin/test_cpp_rpc &&\ 29 | $(call fbprint_d,"pytorch") 30 | endif 31 | -------------------------------------------------------------------------------- /src/apps/ml/ssat.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # Shell Script Automated Tester (unit testing executable files) 6 | 7 | ssat: 8 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 9 | $(call fbprint_b,"ssat") && \ 10 | $(call repo-mngr,fetch,ssat,apps/ml) && \ 11 | cd $(MLDIR)/ssat && \ 12 | install -p -m 0755 ssat.sh $(DESTDIR)/usr/bin/ && \ 13 | install -p -m 0644 ssat-api.sh $(DESTDIR)/usr/bin/ && \ 14 | ln -sf ssat.sh $(DESTDIR)/usr/bin/ssat && \ 15 | $(call fbprint_d,"ssat") 16 | -------------------------------------------------------------------------------- /src/apps/ml/tflite_ethosu_delegate.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # TensorFlow Lite Ethos-u Delegate on imx93 6 | 7 | # DEPEND: tensorflow-lite ethosu-driver-stack libpython3.11-dev 8 | 9 | 10 | tflite_ethosu_delegate: 11 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 12 | $(call fbprint_b,"tflite_ethosu_delegate") && \ 13 | $(call repo-mngr,fetch,tflite_ethosu_delegate,apps/ml) && \ 14 | if [ ! -f $(DESTDIR)/usr/lib/libtensorflow-lite.so ]; then \ 15 | bld tflite -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 16 | fi && \ 17 | if [ ! -f $(DESTDIR)/usr/lib/libethosu.so ]; then \ 18 | bld ethosu_driver_stack -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 19 | fi && \ 20 | cd $(MLDIR)/tflite_ethosu_delegate && \ 21 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 22 | export CXX="$(CROSS_COMPILE)g++ --sysroot=$(RFSDIR)" && \ 23 | export CXXFLAGS="-O2 -pipe -g -fPIC -feliminate-unused-debug-types -I$(DESTDIR)/usr/include" && \ 24 | mkdir -p build_$(DISTROTYPE)_$(ARCH) && \ 25 | cmake -S $(MLDIR)/tflite_ethosu_delegate \ 26 | -B $(MLDIR)/tflite_ethosu_delegate/build_$(DISTROTYPE)_$(ARCH) \ 27 | -DFETCHCONTENT_FULLY_DISCONNECTED=OFF \ 28 | -DFETCHCONTENT_SOURCE_DIR_TENSORFLOW=$(MLDIR)/tflite \ 29 | -DTFLITE_LIB_LOC=$(DESTDIR)/usr/lib/libtensorflow-lite.so \ 30 | -DPython_INCLUDE_DIRS=$(RFSDIR)/usr/include/python3.11 \ 31 | -DPython_EXECUTABLE=$(RFSDIR)/usr/bin/python3.11 \ 32 | -DPython_LIBRARY=$(RFSDIR)/usr/lib/aarch64-linux-gnu/libpython3.11.so && \ 33 | $(MAKE) -j$(JOBS) -C build_$(DISTROTYPE)_$(ARCH) ethosu_delegate && \ 34 | $(CROSS_COMPILE)strip build_$(DISTROTYPE)_$(ARCH)/libethosu_delegate.so && \ 35 | install -m 0644 build_$(DISTROTYPE)_$(ARCH)/libethosu_delegate.so $(DESTDIR)/usr/lib && \ 36 | $(call fbprint_d,"tflite_ethosu_delegate") 37 | -------------------------------------------------------------------------------- /src/apps/ml/tflite_vx_delegate.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # TensorFlow Lite VX Delegate 6 | 7 | # DEPEND: tensorflow-lite tim-vx 8 | 9 | # ./benchmark_model --external_delegate_path= --graph= 10 | 11 | 12 | 13 | tflite_vx_delegate: 14 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 15 | $(call fbprint_b,"tflite_vx_delegate") && \ 16 | $(call repo-mngr,fetch,tflite_vx_delegate,apps/ml) && \ 17 | if [ ! -f $(DESTDIR)/usr/lib/libtensorflow-lite.so ]; then \ 18 | bld tflite -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 19 | fi && \ 20 | if [ ! -f $(DESTDIR)/usr/lib/libtim-vx.so ]; then \ 21 | bld tim_vx -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 22 | fi && \ 23 | cd $(MLDIR)/tflite_vx_delegate && \ 24 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 25 | export CXX="$(CROSS_COMPILE)g++ --sysroot=$(RFSDIR)" && \ 26 | export CXXFLAGS="-O2 -pipe -g -fPIC -feliminate-unused-debug-types -I$(RFSDIR)//usr/include/python3.11" && \ 27 | mkdir -p build_$(DISTROTYPE)_$(ARCH) && \ 28 | cmake -S $(MLDIR)/tflite_vx_delegate \ 29 | -B $(MLDIR)/tflite_vx_delegate/build_$(DISTROTYPE)_$(ARCH) \ 30 | -DFETCHCONTENT_FULLY_DISCONNECTED=OFF \ 31 | -DTIM_VX_INSTALL=$(DESTDIR)/usr \ 32 | -DFETCHCONTENT_SOURCE_DIR_TENSORFLOW=$(MLDIR)/tflite \ 33 | -DTFLITE_LIB_LOC=$(DESTDIR)/usr/lib/libtensorflow-lite.so && \ 34 | $(MAKE) -j$(JOBS) -C build_$(DISTROTYPE)_$(ARCH) vx_delegate && \ 35 | $(CROSS_COMPILE)strip build_$(DISTROTYPE)_$(ARCH)/libvx_delegate.so && \ 36 | cp -f build_$(DISTROTYPE)_$(ARCH)/libvx_delegate.so $(DESTDIR)/usr/lib && \ 37 | install -d $(DESTDIR)/usr/include/tensorflow-lite-vx-delegate && \ 38 | cp --parents vsi_npu_custom_op.h op_map.h utils.h delegate_main.h examples/util.h \ 39 | $(DESTDIR)/usr/include/tensorflow-lite-vx-delegate && \ 40 | $(call fbprint_d,"tflite_vx_delegate") 41 | -------------------------------------------------------------------------------- /src/apps/ml/tim_vx.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # Tensor Interface Module for OpenVX 6 | # TIM-VX is a software integration module provided by VeriSilicon to facilitate deployment of Neural-Networks on OpenVX enabled ML accelerators. 7 | # It serves as the backend binding for runtime frameworks such as Android NN, Tensorflow-Lite, MLIR, TVM and more 8 | 9 | 10 | # DEPEND: gpu_viv 11 | 12 | 13 | tim_vx: 14 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 15 | $(call fbprint_b,"tim_vx") && \ 16 | $(call repo-mngr,fetch,tim_vx,apps/ml) && \ 17 | if [ ! -f $(DESTDIR)/usr/lib/libOpenVX.so ]; then \ 18 | bld gpu_viv -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 19 | fi && \ 20 | cd $(MLDIR)/tim_vx && \ 21 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(DESTDIR)" && \ 22 | export CXX="$(CROSS_COMPILE)g++ --sysroot=$(DESTDIR)" && \ 23 | mkdir -p $(DESTDIR)/usr/include/VX && \ 24 | cp -f prebuilt-sdk/*linux/include/VX/vx_khr_cnn.h $(DESTDIR)/usr/include/VX && \ 25 | mkdir -p build_$(DISTROTYPE)_$(ARCH) && \ 26 | cmake -S $(MLDIR)/tim_vx \ 27 | -B $(MLDIR)/tim_vx/build_$(DISTROTYPE)_$(ARCH) \ 28 | -DCMAKE_C_FLAGS="-I$(DESTDIR)/usr/include -I$(RFSDIR)/usr/include" \ 29 | -DCONFIG=YOCTO \ 30 | -DTIM_VX_ENABLE_TEST=off \ 31 | -DTIM_VX_USE_EXTERNAL_OVXLIB=off && \ 32 | cmake --build $(MLDIR)/tim_vx/build_$(DISTROTYPE)_$(ARCH) -j$(JOBS) --target all && \ 33 | $(CROSS_COMPILE)strip build_$(DISTROTYPE)_$(ARCH)/src/tim/libtim-vx.so && \ 34 | cp build_$(DISTROTYPE)_$(ARCH)/src/tim/libtim-vx.so $(DESTDIR)/usr/lib && \ 35 | install -d $(DESTDIR)/usr/include/tim && \ 36 | cp -rf $(MLDIR)/tim_vx/include/tim/{transform,vx} $(DESTDIR)/usr/include/tim && \ 37 | $(call fbprint_d,"tim_vx") 38 | -------------------------------------------------------------------------------- /src/apps/multimedia/alsa_lib.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # alsa-lib is a library to interface with ALSA (Advanced Linux Sound Architecture) 7 | # in the Linux kernel and virtual devices using a plugin system. 8 | 9 | 10 | alsa_lib: 11 | @[ $(SOCFAMILY) != IMX -a $${MACHINE:0:7} != ls1028a -o \ 12 | $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 13 | $(call fbprint_b,"alsa_lib") && \ 14 | $(call repo-mngr,fetch,alsa_lib,apps/multimedia) && \ 15 | cd $(MMDIR)/alsa_lib && \ 16 | sed -i 's|=Versions|=$(srcdir)/Versions|g' src/topology/Makefile.am && \ 17 | export LD_LIBRARY_PATH=$(DESTDIR)/usr/lib:$(RFSDIR)/usr/lib:$(RFSDIR)/usr/lib/aarch64-linux-gnu && \ 18 | export PKG_CONFIG_PATH=$(DESTDIR)/usr/lib/pkgconfig:$(RFSDIR)/usr/lib/pkgconfig && \ 19 | libtoolize --force --copy --automake && aclocal && \ 20 | autoheader && automake --foreign --copy --add-missing && autoconf && \ 21 | ./configure --host=aarch64 CC=aarch64-linux-gnu-gcc 1>/dev/null && \ 22 | $(MAKE) -j$(JOBS) install && \ 23 | $(call fbprint_d,"alsa_lib") 24 | -------------------------------------------------------------------------------- /src/apps/multimedia/alsa_state.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # Alsa scenario state files to restore sound state at system boot and save it at system shut down 7 | 8 | 9 | alsa_state: 10 | @[ $(SOCFAMILY) != IMX -a $${MACHINE:0:7} != ls1028a -o \ 11 | $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 12 | $(call fbprint_b,"alsa_state") && \ 13 | install -d $(DESTDIR)/var/lib/alsa && \ 14 | install -m 0644 $(FBDIR)/src/system/alsa_state/asound.state $(DESTDIR)/var/lib/alsa && \ 15 | install -m 0644 $(FBDIR)/src/system/alsa_state/asound.conf $(DESTDIR)/etc && \ 16 | $(call fbprint_d,"alsa_state") 17 | -------------------------------------------------------------------------------- /src/apps/multimedia/basler_camera.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # Basler camera binary drivers for iMX8MP 7 | 8 | 9 | basler_camera: 10 | @[ $(DISTROVARIANT) != desktop -o $(SOCFAMILY) != IMX ] && exit || \ 11 | $(call fbprint_b,"basler_camera") && \ 12 | cd $(MMDIR) && \ 13 | if [ ! -d $(MMDIR)/basler_camera ]; then \ 14 | wget -q $(repo_basler_camera_bin_url) -O basler_camera.bin && \ 15 | chmod +x basler_camera.bin && ./basler_camera.bin --auto-accept && \ 16 | mv basler-camera-* basler_camera && rm -f basler_camera.bin; \ 17 | fi && \ 18 | cd basler_camera && \ 19 | install -d $(DESTDIR)/opt/imx8-isp/bin && \ 20 | cp -rfv ./opt/imx8-isp/bin/* $(DESTDIR)/opt/imx8-isp/bin && \ 21 | cp -rfv ./usr/lib/* $(DESTDIR)/usr/lib/ && \ 22 | $(call fbprint_d,"basler_camera") 23 | -------------------------------------------------------------------------------- /src/apps/multimedia/cheese.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # https://wiki.gnome.org/Apps/Cheese 7 | # Take photos and videos with your webcam, with fun graphical effects 8 | 9 | 10 | # depends on gstreamer1.0 gstreamer1.0-plugins-base libcanberra gtk4 clutter-1.0 clutter-gst-3.0 11 | # libclutter-gtk-1.0-dev vala-native gnome-desktop libxml2-native gdk-pixbuf-native itstool-native 12 | 13 | 14 | cheese: 15 | @[ $(DISTROVARIANT) != desktop -o $(SOCFAMILY) != IMX ] && exit || \ 16 | $(call fbprint_b,"cheese") && \ 17 | $(call repo-mngr,fetch,cheese,apps/multimedia) && \ 18 | cd $(MMDIR)/cheese && \ 19 | if [ ! -f .patchdone ]; then \ 20 | git am $(FBDIR)/patch/cheese/*.patch && touch .patchdone; \ 21 | fi && \ 22 | sed -e 's%@TARGET_CROSS@%$(CROSS_COMPILE)%g' -e 's%@STAGING_DIR@%$(RFSDIR)%g' \ 23 | -e 's%@DESTDIR@%$(DESTDIR)%g' $(FBDIR)/src/system/meson.cross > meson.cross && \ 24 | if [ ! -f $(DESTDIR)/usr/lib/libgstplay-1.0.so.0 ]; then \ 25 | bld gst_plugins_bad -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 26 | fi && \ 27 | if [ ! -f $(DESTDIR)/usr/lib/libclutter-gst-3.0.so ]; then \ 28 | bld clutter_gst -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 29 | fi && \ 30 | sudo rm -f $(RFSDIR)/usr/lib/aarch64-linux-gnu/libgstallocators-1.0.so.0 && \ 31 | sudo cp -rf $(DESTDIR)/usr/include/cogl $(RFSDIR)/usr/include && \ 32 | \ 33 | meson setup build_$(DISTROTYPE)_$(ARCH) \ 34 | -Dc_args="-I$(DESTDIR)/usr/include/gstreamer-1.0 -I$(DESTDIR)/usr/include \ 35 | -I$(DESTDIR)/usr/include/clutter-gst-3.0" \ 36 | -Dc_link_args="-L$(DESTDIR)/usr/lib -L$(RFSDIR)/usr/lib/aarch64-linux-gnu -lgstbase-1.0 -lclutter-gst-3.0" \ 37 | -Dcpp_link_args="-L$(DESTDIR)/usr/lib -L$(RFSDIR)/usr/lib/aarch64-linux-gnu -lgstbase-1.0 -lclutter-gst-3.0" \ 38 | --prefix=/usr --buildtype=release \ 39 | --cross-file meson.cross \ 40 | --strip \ 41 | -Dintrospection=false \ 42 | -Dgtk_doc=false \ 43 | -Dman=false && \ 44 | ninja -C build_$(DISTROTYPE)_$(ARCH) install && \ 45 | rm -f $(DESTDIR)/usr/share/icons/hicolor/scalable/apps/org.gnome.Cheese.svg && \ 46 | rm -f $(DESTDIR)/usr/share/icons/hicolor/symbolic/apps/org.gnome.Cheese-symbolic.svg && \ 47 | $(call fbprint_d,"cheese") 48 | -------------------------------------------------------------------------------- /src/apps/multimedia/gst_plugins_ugly.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # https://gstreamer.freedesktop.org 7 | 8 | 9 | gst_plugins_ugly: 10 | ifeq ($(CONFIG_GST_PLUGINS_UGLY),y) 11 | @[ $(SOCFAMILY) != IMX -a $${MACHINE:0:7} != ls1028a -o \ 12 | $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 13 | $(call fbprint_b,"gst_plugins_ugly") && \ 14 | $(call repo-mngr,fetch,gst_plugins_ugly,apps/multimedia) && \ 15 | cd $(MMDIR)/gst_plugins_ugly && \ 16 | export CROSS=$(CROSS_COMPILE) && \ 17 | sed -e 's%@TARGET_CROSS@%$(CROSS_COMPILE)%g' -e 's%@STAGING_DIR@%$(RFSDIR)%g' \ 18 | -e 's%@DESTDIR@%$(DESTDIR)%g' $(FBDIR)/src/system/meson.cross > meson.cross && \ 19 | if [ ! -f $(DESTDIR)/usr/lib/gstreamer-1.0/libgstvolume.so ]; then \ 20 | bld gst_plugins_base -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 21 | fi && \ 22 | meson setup build_$(DISTROTYPE)_$(ARCH) \ 23 | -Dc_args="-I$(RFSDIR)/usr/include/gstreamer-1.0 -I$(DESTDIR)/usr/include" \ 24 | -Dc_link_args="-L$(DESTDIR)/usr/lib -L$(RFSDIR)/usr/lib/aarch64-linux-gnu -ludev \ 25 | -lpthread -lgstvideo-1.0 -lgstsdp-1.0" \ 26 | --prefix=/usr --buildtype=release \ 27 | --cross-file meson.cross \ 28 | --strip \ 29 | -Dx264=enabled \ 30 | -Dmpeg2dec=enabled \ 31 | -Dsidplay=disabled \ 32 | -Dorc=enabled && \ 33 | ninja -j $(JOBS) -C build_$(DISTROTYPE)_$(ARCH) install && \ 34 | $(call fbprint_d,"gst_plugins_ugly") 35 | endif 36 | -------------------------------------------------------------------------------- /src/apps/multimedia/gstreamer.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # https://gstreamer.freedesktop.org 6 | 7 | # GStreamer 1.0 framework for streaming media. 8 | # GStreamer is a multimedia framework for encoding and decoding video and sound. 9 | # It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime. 10 | 11 | # introspection=enabled option depends on gobject-introspection for /usr/bin/g-ir-scanner g-ir-compiler on host 12 | # depends on libgirepository1.0-dev for GLib-2.0.gir and GObject-2.0.gir on host 13 | # depends on libgstreamer1.0-dev for /usr/share/gir-1.0/Gst-1.0.gir 14 | 15 | 16 | gstreamer: 17 | @[ $(SOCFAMILY) != IMX -a $${MACHINE:0:7} != ls1028a -o \ 18 | $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 19 | $(call fbprint_b,"gstreamer") && \ 20 | $(call repo-mngr,fetch,gstreamer,apps/multimedia) && \ 21 | if [ ! -d $(RFSDIR)/usr/lib/aarch64-linux-gnu ]; then \ 22 | bld rfs -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 23 | fi && \ 24 | cd $(MMDIR)/gstreamer && \ 25 | if [ ! -f .patchdone ]; then \ 26 | git am $(FBDIR)/patch/gstreamer/*.patch && touch .patchdone; \ 27 | fi && \ 28 | export HAVE_PTP_HELPER_CAPABILITIES=0 && \ 29 | if ! grep -q libexecdir= meson.build; then \ 30 | sed -i "/pkgconfig_variables =/a\ 'libexecdir=\$\{prefix\}/libexec'," meson.build && \ 31 | sed -i "/pkgconfig_variables =/a\ 'datadir=\$\{prefix\}/share'," meson.build && \ 32 | sed -i 's/1\.1/0.61/' meson.build; \ 33 | fi && \ 34 | sed -e 's%@TARGET_CROSS@%$(CROSS_COMPILE)%g' -e 's%@STAGING_DIR@%$(RFSDIR)%g' \ 35 | -e 's%@DESTDIR@%$(DESTDIR)%g' $(FBDIR)/src/system/meson.cross > meson.cross && \ 36 | \ 37 | meson setup build_$(DISTROTYPE)_$(ARCH) \ 38 | --cross-file meson.cross \ 39 | -Dc_args="--sysroot=$(RFSDIR) -I$(DESTDIR)/usr/local/include" \ 40 | -Dc_link_args="-L$(DESTDIR)/usr/lib" \ 41 | --prefix=/usr --buildtype=release --strip \ 42 | -Dintrospection=disabled \ 43 | -Ddoc=disabled \ 44 | -Dexamples=disabled \ 45 | -Ddbghelp=disabled \ 46 | -Dnls=enabled \ 47 | -Dbash-completion=disabled \ 48 | -Dcheck=enabled \ 49 | -Dcoretracers=disabled \ 50 | -Dgst_debug=true \ 51 | -Dlibdw=disabled \ 52 | -Dtests=disabled \ 53 | -Dtools=enabled \ 54 | -Dtracer_hooks=true \ 55 | -Dlibunwind=disabled && \ 56 | ninja -j $(JOBS) -C build_$(DISTROTYPE)_$(ARCH) install && \ 57 | $(call fbprint_d,"gstreamer") 58 | -------------------------------------------------------------------------------- /src/apps/multimedia/imx_alsa_plugin.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # depends on libasound2 and libasound2-dev 6 | 7 | imx_alsa_plugin: 8 | @[ $(DESTARCH) != arm64 -o $(DISTROVARIANT) != desktop ] && exit || \ 9 | $(call fbprint_b,"imx_alsa_plugin") && \ 10 | $(call repo-mngr,fetch,imx_alsa_plugin,apps/multimedia) && \ 11 | if [ ! -f $(DESTDIR)/usr/lib/pkgconfig/alsa.pc ]; then \ 12 | bld alsa_lib -r $(DISTROTYPE):$(DISTROVARIANT); \ 13 | fi && \ 14 | if [ ! -f $(DESTDIR)/usr/include/imx-mm/audio-codec/swpdm/imx-swpdm.h ]; then \ 15 | bld imx_sw_pdm -r $(DISTROTYPE):$(DISTROVARIANT); \ 16 | fi && \ 17 | sudo cp -rf $(DESTDIR)/usr/include/imx-mm $(RFSDIR)/usr/include && \ 18 | sudo ln -sf libasound.so.2 $(RFSDIR)/usr/lib/aarch64-linux-gnu/libasound.so && \ 19 | \ 20 | cd $(MMDIR)/imx_alsa_plugin && \ 21 | sed -i 's/imx\///' asrc/asrc_pair.h asrc/asrc_pair.c && \ 22 | libtoolize --force --copy --automake && \ 23 | aclocal && autoheader && \ 24 | automake --foreign --copy --add-missing && \ 25 | touch depcomp && autoconf && \ 26 | ./configure --host=aarch64 CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" \ 27 | --with-libtool-sysroot=$(RFSDIR) \ 28 | --disable-silent-rules --disable-static --enable-swpdm \ 29 | CFLAGS="-O2 -Wall -W -pipe -g -I$(DESTDIR)/usr/include" 1>/dev/null && \ 30 | $(MAKE) install && \ 31 | $(call fbprint_d,"imx_alsa_plugin") 32 | -------------------------------------------------------------------------------- /src/apps/multimedia/imx_codec.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # iMX multimedia codec libs 7 | 8 | # option --enable-vpu only for imx6q/imx6dl 9 | 10 | 11 | imx_codec: 12 | @[ $(DISTROVARIANT) != desktop -o $(SOCFAMILY) != IMX ] && exit || \ 13 | $(call fbprint_b,"imx_codec") && \ 14 | cd $(MMDIR) && \ 15 | if [ ! -d imx_codec ]; then \ 16 | wget -q $(repo_imx_codec_bin_url) -O imx_codec.bin && \ 17 | chmod +x imx_codec.bin && ./imx_codec.bin --auto-accept && \ 18 | mv imx-codec* imx_codec && rm -f imx_codec.bin; \ 19 | fi && \ 20 | cd imx_codec && \ 21 | ./configure CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" \ 22 | --enable-armv8 \ 23 | --disable-static \ 24 | --disable-vpu \ 25 | --prefix=/usr && \ 26 | $(MAKE) -j$(JOBS) && \ 27 | $(MAKE) install && \ 28 | rm -rf $(DESTDIR)/usr/share/imx-mm/*-codec/build $(DESTDIR)/usr/lib/imx-mm/video-codec && \ 29 | find $(DESTDIR)/usr/*/imx-mm -name *arm12* -o -name *arm11* -o -name *arm9* | xargs rm -f && \ 30 | for p in lib_aac_dec_arm_elinux.so.3 lib_mp3_dec_arm_elinux.so.2 lib_oggvorbis_dec_arm_elinux.so.2; do \ 31 | cp -f $(DESTDIR)/usr/lib/imx-mm/audio-codec/$$p $(DESTDIR)/usr/lib/; \ 32 | done && \ 33 | $(call fbprint_d,"imx_codec") 34 | -------------------------------------------------------------------------------- /src/apps/multimedia/imx_dsp.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # i.MX DSP Wrapper, Firmware Binary, Codec Libraries for mx8mp, mx8qm, mx8qxp, mx8dx, mx8ulp 7 | 8 | 9 | ifeq ($(MACHINE),all) 10 | HIFI4_PLATFORM = imx8mp 11 | else ifeq ($(MACHINE),imx8mpevk) 12 | HIFI4_PLATFORM = imx8mp 13 | else ifeq ($(MACHINE),imx8ulpevk) 14 | HIFI4_PLATFORM = imx8ulp 15 | else 16 | HIFI4_PLATFORM = imx8qmqxp 17 | endif 18 | 19 | 20 | imx_dsp: 21 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 22 | $(call fbprint_b,"imx_dsp") && \ 23 | cd $(MMDIR) && \ 24 | if [ ! -d imx_dsp ]; then \ 25 | wget -q $(repo_imx_dsp_bin_url) -O imx_dsp.bin && \ 26 | chmod +x imx_dsp.bin && ./imx_dsp.bin --auto-accept && \ 27 | mv imx-dsp* imx_dsp && rm -f imx_dsp.bin; \ 28 | fi && \ 29 | cd imx_dsp && \ 30 | ./configure CC=aarch64-linux-gnu-gcc \ 31 | --bindir=/unit_tests \ 32 | -datadir=/lib/firmware \ 33 | --enable-armv8 \ 34 | --prefix=/usr && \ 35 | export DESTDIR=$(FBOUTDIR)/bsp/imx_firmware && \ 36 | $(MAKE) -j$(JOBS) && \ 37 | $(MAKE) install && \ 38 | ln -sf hifi4_$(HIFI4_PLATFORM).bin $(FBOUTDIR)/bsp/imx_firmware/lib/firmware/imx/dsp/hifi4.bin && \ 39 | $(call fbprint_d,"imx_dsp") 40 | -------------------------------------------------------------------------------- /src/apps/multimedia/imx_dsp_codec_ext.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # i.MX DSP Codec Wrapper and Lib for mx8mp, mx8qm, mx8qxp, mx8dx, mx8ulp 7 | 8 | 9 | ifeq ($(MACHINE),all) 10 | EXTRA_CONF = --enable-imx8m 11 | else ifeq ($(MACHINE),imx8mpevk) 12 | EXTRA_CONF = --enable-imx8m 13 | else ifeq ($(MACHINE),imx8ulpevk) 14 | EXTRA_CONF = --enable-imx8ulp 15 | else ifeq ($(MACHINE),imx8qxpmek) 16 | EXTRA_CONF = --enable-imx8qmqxp 17 | else ifeq ($(MACHINE),imx8qmmek) 18 | EXTRA_CONF = --enable-imx8qmqxp 19 | else 20 | EXTRA_CONF = 21 | endif 22 | 23 | 24 | imx_dsp_codec_ext: 25 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 26 | $(call fbprint_b,"imx_dsp_codec_ext $(EXTRA_CONF)") && \ 27 | cd $(MMDIR) && \ 28 | if [ ! -d imx_dsp_codec_ext ]; then \ 29 | wget -q $(repo_imx_dsp_codec_ext_bin_url) -O imx_dsp_codec_ext.bin && \ 30 | chmod +x imx_dsp_codec_ext.bin && ./imx_dsp_codec_ext.bin --auto-accept && \ 31 | mv imx-dsp-codec-ext* imx_dsp_codec_ext && rm -f imx_dsp_codec_ext.bin; \ 32 | fi && \ 33 | cd imx_dsp_codec_ext && \ 34 | ./configure CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" \ 35 | $(EXTRA_CONF) \ 36 | --prefix=/usr && \ 37 | $(MAKE) -j$(JOBS) && \ 38 | $(MAKE) install && \ 39 | $(call fbprint_d,"imx_dsp_codec_ext") 40 | -------------------------------------------------------------------------------- /src/apps/multimedia/imx_dspc_asrc.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # NXP Asynchronous Sample Rate Converter 7 | 8 | 9 | 10 | imx_dspc_asrc: 11 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 12 | $(call fbprint_b,"imx_dspc_asrc") && \ 13 | cd $(MMDIR) && \ 14 | if [ ! -d imx_dspc_asrc ]; then \ 15 | wget -q $(repo_imx_dspc_asrc_bin_url) -O imx_dspc_asrc.bin && \ 16 | chmod +x imx_dspc_asrc.bin && ./imx_dspc_asrc.bin --auto-accept && \ 17 | mv imx-dspc-asrc* imx_dspc_asrc && rm -f imx_dspc_asrc.bin; \ 18 | fi && \ 19 | cd imx_dspc_asrc && \ 20 | ./configure CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" \ 21 | --enable-armv8 \ 22 | --libdir=/usr/lib \ 23 | --bindir=/unit_tests \ 24 | --prefix=/usr && \ 25 | $(MAKE) -j$(JOBS) && \ 26 | $(MAKE) install && \ 27 | $(call fbprint_d,"imx_dspc_asrc") 28 | -------------------------------------------------------------------------------- /src/apps/multimedia/imx_parser.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # iMX multimedia parser libs 7 | 8 | 9 | imx_parser: 10 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) != desktop ] && exit || \ 11 | $(call fbprint_b,"imx_parser") && \ 12 | cd $(MMDIR) && \ 13 | if [ ! -d imx_parser ]; then \ 14 | wget -q $(repo_imx_parser_bin_url) -O imx_parser.bin && \ 15 | chmod +x imx_parser.bin && ./imx_parser.bin --auto-accept && \ 16 | mv imx-parser* imx_parser && rm -f imx_parser.bin; \ 17 | fi && \ 18 | cd imx_parser && \ 19 | ./configure CC=aarch64-linux-gnu-gcc \ 20 | --enable-armv8 \ 21 | --disable-static \ 22 | --prefix=/usr && \ 23 | $(MAKE) -j$(JOBS) && \ 24 | $(MAKE) install && \ 25 | $(call fbprint_d,"imx_parser") 26 | -------------------------------------------------------------------------------- /src/apps/multimedia/imx_sw_pdm.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # NXP PDM to PCM Software Decimation SIMD Library 7 | 8 | 9 | imx_sw_pdm: 10 | @[ $(DESTARCH) != arm64 -o $(DISTROVARIANT) != desktop ] && exit || \ 11 | $(call fbprint_b,"imx_sw_pdm") && \ 12 | cd $(MMDIR) && \ 13 | if [ ! -d imx_sw_pdm ]; then \ 14 | wget -q $(repo_imx_sw_pdm_bin_url) -O imx_sw_pdm.bin && \ 15 | chmod +x imx_sw_pdm.bin && ./imx_sw_pdm.bin --auto-accept && \ 16 | mv imx-sw-pdm* imx_sw_pdm && rm -f imx_sw_pdm.bin; \ 17 | fi && \ 18 | cd imx_sw_pdm && \ 19 | ./configure CC=aarch64-linux-gnu-gcc \ 20 | --enable-armv8 \ 21 | --prefix=/usr && \ 22 | $(MAKE) -j$(JOBS) && \ 23 | $(MAKE) install && \ 24 | $(call fbprint_d,"imx_sw_pdm") 25 | -------------------------------------------------------------------------------- /src/apps/multimedia/imx_vpu_hantro.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # i.MX HANTRO VPU library for IMX8MM, IMX8MP, IMX8MQ 7 | 8 | # RDEPEND: imx_vpu_hantro_daemon 9 | 10 | 11 | imx_vpu_hantro: 12 | @[ $(DISTROVARIANT) != desktop -o $(SOCFAMILY) != IMX ] && exit || \ 13 | $(call fbprint_b,"imx_vpu_hantro") && \ 14 | cd $(MMDIR) && \ 15 | if [ ! -d imx_vpu_hantro ]; then \ 16 | wget -q $(repo_vpu_hantro_bin_url) -O vpu_hantro.bin && chmod +x vpu_hantro.bin && \ 17 | ./vpu_hantro.bin --auto-accept && \ 18 | mv imx-vpu-hantro-* imx_vpu_hantro && rm -f vpu_hantro.bin; \ 19 | fi && \ 20 | \ 21 | if [ ! -f $(DESTDIR)/usr/include/linux/hantrodec.h ]; then \ 22 | bld linux-headers -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 23 | fi && \ 24 | cd imx_vpu_hantro && \ 25 | sed -i 's/\/imx//' Makefile_G1G2 Makefile_H1 && \ 26 | sed -i 's/dma-buf.h/dma-buf-imx.h/' decoder_sw/software/linux/dwl/dwl_linux.c \ 27 | h1_encoder/software/linux_reference/ewl/ewl_x280_common.c && \ 28 | ln -sf dma-buf.h $(DESTDIR)/usr/include/linux/dma-buf-imx.h && \ 29 | sudo cp -rf $(DESTDIR)/usr/include/linux $(RFSDIR)/usr/include/ && \ 30 | DEST_DIR=$(DESTDIR) CROSS_COMPILE=aarch64-linux-gnu- \ 31 | PLATFORM=IMX8MM ARCH="-march=armv8-a+crc+crypto" SDKTARGETSYSROOT=$(RFSDIR) \ 32 | $(MAKE) all && \ 33 | $(MAKE) install PLATFORM=IMX8MM DEST_DIR=$(DESTDIR) libdir=/usr/lib && \ 34 | $(call fbprint_d,"imx_vpu_hantro") 35 | -------------------------------------------------------------------------------- /src/apps/multimedia/imx_vpu_hantro_daemon.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # i.MX VPU HANTRO V4L2 Daemon for IMX8MM, IMX8MP, IMX8MQ 7 | 8 | # /usr/bin/vsidaemon 9 | # for 8mm (845): -lhantro -lg1 -lhantro_h1 10 | # for 8mq (850): -lhantro -lg1 11 | # for 8mp (865): -lhantro -lg1 -lhantro_vc8000e 12 | 13 | SOCLIST = IMX8MM IMX8MQ IMX8MP 14 | 15 | imx_vpu_hantro_daemon: 16 | @[ $(DISTROVARIANT) != desktop -o $(SOCFAMILY) != IMX ] && exit || \ 17 | $(call fbprint_b,"imx_vpu_hantro_daemon") && \ 18 | if [ ! -d $(MMDIR)/imx_vpu_hantro_daemon ]; then \ 19 | cd $(MMDIR) && wget -q $(repo_vpu_hantro_daemon_tar_url) -O imx_vpu_hantro_daemon.tar.gz && \ 20 | tar xf imx_vpu_hantro_daemon.tar.gz && rm -rf imx_vpu_hantro_daemon.tar.gz && \ 21 | mv imx-vpu-hantro-daemon-* imx_vpu_hantro_daemon; \ 22 | fi && \ 23 | if [ ! -f $(DESTDIR)/usr/lib/libhantro.so ]; then \ 24 | bld imx_vpu_hantro -r $(DISTROTYPE):$(DISTROVARIANT) -p $(SOCFAMILY); \ 25 | fi && \ 26 | if [ ! -f $(DESTDIR)/usr/include/hantro_VC8000E_enc/ewl.h ]; then \ 27 | bld imx_vpu_hantro_vc -r $(DISTROTYPE):$(DISTROVARIANT) -p $(SOCFAMILY); \ 28 | fi && \ 29 | cd $(MMDIR)/imx_vpu_hantro_daemon && \ 30 | sed -e 's|HANTRO_VC8000E_LIB_DIR =.*|HANTRO_VC8000E_LIB_DIR = $(DESTDIR)/usr/lib|' \ 31 | -e 's|HANTRO_G1G2_LIB_DIR =.*|HANTRO_G1G2_LIB_DIR = $(DESTDIR)/usr/lib|' \ 32 | -e 's|HANTRO_H1_LIB_DIR =.*|HANTRO_H1_LIB_DIR = $(DESTDIR)/usr/lib|' \ 33 | -e 's|CTRLSW_HDRPATH =.*|CTRLSW_HDRPATH = $(DESTDIR)/usr/include|' -i Makefile && \ 34 | for socplat in $(SOCLIST); do \ 35 | $(MAKE) clean && \ 36 | $(MAKE) SDKTARGETSYSROOT=$(RFSDIR) DEST_DIR=$(DESTDIR) PLATFORM=$$socplat && \ 37 | $(MAKE) SDKTARGETSYSROOT=$(RFSDIR) DEST_DIR=$(DESTDIR) PLATFORM=$$socplat install && \ 38 | mv $(DESTDIR)/usr/bin/vsidaemon $(DESTDIR)/usr/bin/vsidaemon-$$socplat; \ 39 | done && \ 40 | $(call fbprint_d,"imx_vpu_hantro_daemon") 41 | -------------------------------------------------------------------------------- /src/apps/multimedia/imx_vpu_hantro_vc.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # i.MX vc8000e encoder library on imx8mp 7 | 8 | 9 | imx_vpu_hantro_vc: 10 | @[ $(DISTROVARIANT) != desktop -o $(SOCFAMILY) != IMX ] && exit || \ 11 | $(call fbprint_b,"imx_vpu_hantro_vc") && \ 12 | cd $(MMDIR) && \ 13 | if [ ! -d imx_vpu_hantro_vc ]; then \ 14 | cd $(MMDIR) && wget -q $(repo_vpu_hantro_vc_bin_url) -O vpu_hantro_vc.bin && \ 15 | chmod +x vpu_hantro_vc.bin && \ 16 | ./vpu_hantro_vc.bin --auto-accept && \ 17 | mv imx-vpu-hantro-vc-* imx_vpu_hantro_vc && rm -f vpu_hantro_vc.bin; \ 18 | fi && \ 19 | cp -Prf $(MMDIR)/imx_vpu_hantro_vc/usr $(DESTDIR)/ && \ 20 | cp -Prf $(MMDIR)/imx_vpu_hantro_vc/unit_tests $(DESTDIR) && \ 21 | $(call fbprint_d,"imx_vpu_hantro_vc") 22 | -------------------------------------------------------------------------------- /src/apps/multimedia/imx_vpuwrap.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # iMX multimedia VPU wrapper 7 | 8 | 9 | imx_vpuwrap: 10 | @[ $(DISTROVARIANT) != desktop -o $(SOCFAMILY) != IMX ] && exit || \ 11 | $(call fbprint_b,"imx_vpuwrap") && \ 12 | $(call repo-mngr,fetch,imx_vpuwrap,apps/multimedia) && \ 13 | if [ ! -f $(DESTDIR)/usr/lib/libcodec.so ]; then \ 14 | bld imx_vpu_hantro -r $(DISTROTYPE):$(DISTROVARIANT); \ 15 | fi && \ 16 | cd $(MMDIR)/imx_vpuwrap && \ 17 | export CFLAGS="-I$(DESTDIR)/usr/include -I$(DESTDIR)/usr/include/hantro_dec -I$(DESTDIR)/usr/include/hantro_enc" && \ 18 | export LDFLAGS="-L$(DESTDIR)/usr/lib -Wl,-O2" && \ 19 | if [ ! -f /usr/bin/libtool ]; then sudo ln -s libtoolize /usr/bin/libtool; fi && \ 20 | ./autogen.sh --prefix=/usr --host=aarch64-linux-gnu --with-sysroot=$(RFSDIR) 1>/dev/null && \ 21 | sed -e 's/^am__append_3/#am__append_3/' -e 's/^am__append_5/#am__append_5/' \ 22 | -e 's/^am__append_8/#am__append_8/' -e 's/^am__objects_3/#am__objects_3/' \ 23 | -e 's/^am__DEPENDENCIES_2/#am__DEPENDENCIES_2/' -e 's/^am__append_5/#am__append_5/' \ 24 | -e 's/^include /#include /' -i Makefile && \ 25 | if [ ! -f $(DESTDIR)/usr/include/hantro_VC8000E_enc/hevcencapi.h ]; then \ 26 | bld imx_vpu_hantro_vc -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 27 | fi && \ 28 | $(MAKE) DEST_DIR=$(DESTDIR) SDKTARGETSYSROOT=$(DESTDIR) CC=aarch64-linux-gnu-gcc && \ 29 | $(MAKE) DEST_DIR=$(DESTDIR) SDKTARGETSYSROOT=$(DESTDIR) install && \ 30 | echo installed examples in $(DESTDIR)/usr/share/imx-mm/video-codec/examples && \ 31 | $(call fbprint_d,"imx_vpuwrap") 32 | -------------------------------------------------------------------------------- /src/apps/multimedia/sof_zephyr.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # Sound Open Firmware with Zephy 7 | # https://www.sofproject.org" 8 | # LICENSE: Apache-2.0 & BSD-3-Clause 9 | 10 | sof_zephyr: 11 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) != desktop ] && exit || \ 12 | $(call fbprint_b,"sof_zephyr") && \ 13 | if [ ! -d $(MMDIR)/sof_zephyr/sof-xcc ]; then \ 14 | mkdir -p $(MMDIR)/sof_zephyr && cd $(MMDIR)/sof_zephyr && \ 15 | wget -q $(repo_sof_zephyr_tar_url) -O sof_zephyr.tar.gz && \ 16 | tar xf sof_zephyr.tar.gz --strip-components 1; \ 17 | fi && \ 18 | if [ ! -d $(RFSDIR)/usr/lib ]; then \ 19 | bld rfs -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 20 | fi && \ 21 | cd $(MMDIR)/sof_zephyr && \ 22 | rm -f sof_zephyr.tar.gz && \ 23 | mkdir -p $(FBOUTDIR)/bsp/imx_firmware/lib/firmware/imx && \ 24 | cp -Prf sof* $(FBOUTDIR)/bsp/imx_firmware/lib/firmware/imx && \ 25 | $(call fbprint_d,"sof_zephyr") 26 | -------------------------------------------------------------------------------- /src/apps/networking/aiopsl.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | 7 | aiopsl: 8 | @[ $${MACHINE:0:5} != lx216 -a $${MACHINE:0:6} != ls1088 -a $${MACHINE:0:6} != ls2088 ] && exit || \ 9 | $(call fbprint_b,"AIOPSL") && \ 10 | $(call repo-mngr,fetch,aiopsl,apps/networking) && \ 11 | cd $(NETDIR)/aiopsl && \ 12 | mkdir -p $(DESTDIR)/usr/local/aiop/bin && \ 13 | cp -rf misc/setup/scripts $(DESTDIR)/usr/local/aiop && \ 14 | cp -rf misc/setup/traffic_files $(DESTDIR)/usr/local/aiop && \ 15 | cp -rf demos/images/* $(DESTDIR)/usr/local/aiop/bin && \ 16 | $(call fbprint_d,"AIOPSL") 17 | -------------------------------------------------------------------------------- /src/apps/networking/aquantia_fw_util.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # a utility to program Aquantia PHY firmware 6 | 7 | aquantia_fw_util: 8 | @[ $(SOCFAMILY) != LS -o $(DISTROVARIANT) != server ] && exit || \ 9 | $(call repo-mngr,fetch,aquantia_fw_util,apps/networking) && \ 10 | cd $(NETDIR)/aquantia_fw_util && \ 11 | $(MAKE) -j$(JOBS) && \ 12 | cp -f aq-firmware-tool $(DESTDIR)/usr/local/bin && \ 13 | $(call fbprint_d,"aquantia_fw_util") 14 | -------------------------------------------------------------------------------- /src/apps/networking/ceetm.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | iproute2_src_url ?= https://mirrors.edge.kernel.org/pub/linux/utils/net/iproute2/iproute2-4.15.0.tar.gz 7 | 8 | ceetm: 9 | @[ $(DESTARCH) != arm64 -o $(SOCFAMILY) != LS -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 10 | $(call fbprint_b,"CEETM") && \ 11 | $(call repo-mngr,fetch,ceetm,apps/networking) && \ 12 | cd $(NETDIR)/ceetm && \ 13 | if [ ! -f iproute2-4.15.0/tc/tc_util.h ]; then \ 14 | wget --no-check-certificate $(iproute2_src_url) && \ 15 | tar xzf iproute2-4.15.0.tar.gz; \ 16 | fi && \ 17 | export IPROUTE2_DIR=$(NETDIR)/ceetm/iproute2-4.15.0 && \ 18 | $(MAKE) clean && \ 19 | $(MAKE) -j$(JOBS) && \ 20 | $(MAKE) install && \ 21 | $(call fbprint_d,"CEETM") 22 | -------------------------------------------------------------------------------- /src/apps/networking/dce.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | # 5 | # 6 | # SDK Networking Components 7 | 8 | 9 | dce: 10 | @[ $(SOCFAMILY) != LS -o $(DISTROVARIANT) != server ] && exit || \ 11 | $(call fbprint_b,"dce") && \ 12 | $(call repo-mngr,fetch,dce,apps/networking) && \ 13 | cd $(NETDIR)/dce && \ 14 | sed -i 's/DESTDIR)\/sbin/DESTDIR)\/usr\/bin/' Makefile && \ 15 | sed -i 's/-Wwrite-strings -Wno-error/-Wwrite-strings -fcommon -Wno-error/' lib/qbman_userspace/Makefile && \ 16 | make clean && \ 17 | $(MAKE) -j$(JOBS) ARCH=aarch64 && \ 18 | $(MAKE) -j$(JOBS) install && \ 19 | $(call fbprint_d,"dce") 20 | -------------------------------------------------------------------------------- /src/apps/networking/dpdk.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # cross compile DPDK against Debian/Ubuntu userland 7 | 8 | # depends on libssl-dev for libcrypto.so 9 | 10 | # choose some extra examples to build 11 | # DPDK_EXAMPLES = all 12 | # DPDK_EXAMPLES = "l2fwd,l3fwd,ip_fragmentation,ip_reassembly,qdma_demo,ethtool,link_status_interrupt,multi_process/symmetric_mp,multi_process/simple_mp,ipsec-secgw,qos_sched,multi_process/client_server_mp/mp_server,multi_process/client_server_mp/mp_client,l3fwd-power,l2fwd-event,l2fwd-crypto,bond" 13 | 14 | DPDK_EXAMPLES = "l2fwd,l3fwd,ip_fragmentation,ip_reassembly,qdma_demo,ethtool" 15 | 16 | 17 | dpdk: 18 | @[ $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 19 | $(call fbprint_b,"dpdk") && \ 20 | $(call repo-mngr,fetch,dpdk,apps/networking) && \ 21 | $(call repo-mngr,fetch,linux,linux) && \ 22 | if [ ! -d $(RFSDIR)/usr/lib ]; then \ 23 | bld rfs -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 24 | fi && \ 25 | curbrch=`cd $(KERNEL_PATH) && git branch | grep ^* | cut -d' ' -f2` && \ 26 | if [ ! -f $(KERNEL_OUTPUT_PATH)/$$curbrch/.config ]; then \ 27 | bld linux -a $(DESTARCH) -p $(SOCFAMILY); \ 28 | fi && \ 29 | \ 30 | cd $(NETDIR)/dpdk && \ 31 | build_dir=build_$(DISTROTYPE)_$(ARCH) && \ 32 | meson setup $$build_dir \ 33 | --prefix=/usr --buildtype=release \ 34 | --strip \ 35 | -Denable_kmods=false \ 36 | -Dkernel_dir=$(KERNEL_OUTPUT_PATH)/$$curbrch \ 37 | -Dexamples=$(DPDK_EXAMPLES) \ 38 | -Dc_args="-Ofast -fPIC -ftls-model=local-dynamic -Wno-error=implicit-function-declaration -I$(DESTDIR)/usr/include" \ 39 | -Doptimization=3 \ 40 | --cross-file=config/arm/arm64_dpaa_linux_gcc && \ 41 | DESTDIR=$(DESTDIR) ninja -j $(JOBS) -C $$build_dir install && \ 42 | cd $$build_dir/examples && find . -perm -111 -a -type f | xargs -I {} cp {} $(DESTDIR)/usr/local/bin && \ 43 | cd - && mkdir -p $(DESTDIR)/usr/local/dpdk && \ 44 | cp -rf $(NETDIR)/dpdk/nxp/* $(DESTDIR)/usr/local/dpdk && \ 45 | cp -f $(NETDIR)/dpdk/drivers/bus/pci/bus_pci_driver.h $(DESTDIR)/usr/include && \ 46 | $(CROSS_COMPILE)strip $(DESTDIR)/usr/local/bin/dpdk-* && \ 47 | ln -sf $$build_dir/rte_build_config.h rte_build_config.h && \ 48 | $(call fbprint_d,"dpdk") 49 | -------------------------------------------------------------------------------- /src/apps/networking/flib.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | flib: 7 | @[ $(SOCFAMILY) != LS -o $(DISTROVARIANT) != server ] && exit || \ 8 | $(call fbprint_b,"flib") && \ 9 | $(call repo-mngr,fetch,flib,apps/networking) && \ 10 | $(MAKE) -C $(NETDIR)/flib install && \ 11 | $(call fbprint_d,"flib") 12 | -------------------------------------------------------------------------------- /src/apps/networking/fmlib.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # DPAA1 Frame Manager User Space Library 7 | 8 | fmlib: 9 | @[ $(SOCFAMILY) != LS -o $(DISTROVARIANT) != server ] && exit || \ 10 | $(call fbprint_b,"fmlib") && \ 11 | $(call repo-mngr,fetch,fmlib,apps/networking) && \ 12 | if [ ! -d $(KERNEL_PATH)/include/uapi/linux/fmd ]; then \ 13 | bld linux -a $(DESTARCH) -p $(SOCFAMILY); \ 14 | fi && \ 15 | cd $(NETDIR)/fmlib && \ 16 | export PREFIX=/usr && \ 17 | export KERNEL_SRC=$(KERNEL_PATH) && \ 18 | export CFLAGS="-O2 -pipe -I$(RFSDIR)/usr/include -I$(RFSDIR)/usr/include/aarch64-linux-gnu" && \ 19 | $(MAKE) clean && \ 20 | $(MAKE) && \ 21 | $(MAKE) install-libfm-arm && \ 22 | $(call fbprint_d,"fmlib") 23 | -------------------------------------------------------------------------------- /src/apps/networking/gpp_aioptool.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | 7 | gpp_aioptool: 8 | @[ $${MACHINE:0:3} != lx2 -a $${MACHINE:0:6} != ls2088 ] && exit || \ 9 | $(call fbprint_b,"gpp_aioptool") && \ 10 | $(call repo-mngr,fetch,gpp_aioptool,apps/networking) && \ 11 | cd $(NETDIR)/gpp_aioptool && \ 12 | sed -i '/libio.h/d' flib/mc/fsl_mc_sys.h && \ 13 | sed -i 's/= -Wall/= -fcommon -Wall/' Makefile && \ 14 | $(MAKE) clean && \ 15 | $(MAKE) -j$(JOBS) && \ 16 | $(MAKE) install && \ 17 | $(call fbprint_d,"gpp_aioptool") 18 | -------------------------------------------------------------------------------- /src/apps/networking/ovs_dpdk.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | ovs_dpdk: 7 | @[ $(SOCFAMILY) != LS -o $(DISTROVARIANT) != server ] && exit || \ 8 | $(call fbprint_b,"ovs_dpdk") && \ 9 | $(call repo-mngr,fetch,ovs_dpdk,apps/networking) && \ 10 | if [ ! -d $(RFSDIR)/usr/lib/aarch64-linux-gnu ]; then \ 11 | bld rfs -r $(DISTROTYPE):$(DISTROVARIANT); \ 12 | fi && \ 13 | if [ ! -d $(DESTDIR)/usr/local/dpdk ]; then \ 14 | bld dpdk -r $(DISTROTYPE):$(DISTROVARIANT) -p $(SOCFAMILY); \ 15 | fi && \ 16 | if [ ! -f $(RFSDIR)/usr/include/rte_config.h ]; then \ 17 | sudo cp -Pf $(DESTDIR)/usr/include/rte_*.h $(RFSDIR)/usr/include/ && \ 18 | sudo cp -rf $(DESTDIR)/usr/include/generic $(RFSDIR)/usr/include/; \ 19 | fi && \ 20 | \ 21 | cd $(NETDIR)/ovs_dpdk && \ 22 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 23 | export LDFLAGS="-L$(DESTDIR)/usr/lib -L$(RFSDIR)/usr/lib -L$(RFSDIR)/lib/aarch64-linux-gnu" && \ 24 | export LIBS="$(shell PKG_CONFIG_PATH=$(DESTDIR)/usr/lib/pkgconfig $(CROSS)pkg-config --libs libdpdk)" && \ 25 | ./boot.sh && \ 26 | ./configure --prefix=/usr \ 27 | --host=aarch64-linux-gnu \ 28 | --with-dpdk=static \ 29 | --disable-ssl \ 30 | --disable-libcapng && \ 31 | $(MAKE) -j$(JOBS) --no-print-directory CFLAGS='-g -Ofast' install && \ 32 | $(CROSS_COMPILE)strip $(DESTDIR)/usr/sbin/{ovs-vswitchd,ovsdb-server} && \ 33 | $(call fbprint_d,"ovs_dpdk") 34 | -------------------------------------------------------------------------------- /src/apps/networking/pktgen_dpdk.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | 7 | pktgen_dpdk: 8 | @[ $(SOCFAMILY) != LS -o $(DISTROVARIANT) != server ] && exit || \ 9 | $(call fbprint_b,"pktgen_dpdk") && \ 10 | $(call repo-mngr,fetch,pktgen_dpdk,apps/networking) && \ 11 | if [ ! -d $(RFSDIR)/usr/lib ]; then \ 12 | bld rfs -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 13 | fi && \ 14 | if [ ! -d $(DESTDIR)/usr/local/dpdk ]; then \ 15 | bld dpdk -r $(DISTROTYPE):$(DISTROVARIANT); \ 16 | fi && \ 17 | \ 18 | cd $(NETDIR)/pktgen_dpdk && \ 19 | export RTE_SDK=$(NETDIR)/dpdk && \ 20 | export RTE_TARGET=arm64-dpaa-linuxapp-gcc && \ 21 | export RTE_TARGET=arm64-dpaa-linuxapp-gcc && export RTE_SDK=$(DESTDIR)/usr/share/dpdk && \ 22 | sed -i "/add_project_arguments('-march=native'/s/^/#&/" meson.build && \ 23 | sed -e 's%@TARGET_CROSS@%$(CROSS_COMPILE)%g' -e 's%@STAGING_DIR@%$(RFSDIR)%g' \ 24 | -e 's%@DESTDIR@%$(DESTDIR)%g' $(FBDIR)/src/system/meson.cross > meson.cross && \ 25 | sudo cp -ra $(DESTDIR)/usr/lib/librte* $(RFSDIR)/usr/lib/ && \ 26 | build_dir=build_$(DISTROTYPE)_$(ARCH) && \ 27 | \ 28 | meson setup $$build_dir \ 29 | -Dc_args="-DRTE_FORCE_INTRINSICS -I$(DESTDIR)/usr/include -Wno-error=mismatched-dealloc \ 30 | -Wno-error=nonnull -Wno-error=implicit-function-declaration -Wno-error=unused-variable" \ 31 | -Dc_link_args="-L$(DESTDIR)/usr/lib -L$(RFSDIR)/lib/aarch64-linux-gnu" \ 32 | --prefix=$(DESTDIR)/usr --buildtype=release \ 33 | --cross-file meson.cross && \ 34 | DESTDIR=$(DESTDIR) ninja -j $(JOBS) -C $$build_dir && \ 35 | install -m 755 $$build_dir/app/pktgen Pktgen.lua ${DESTDIR}/usr/bin && \ 36 | $(call fbprint_d,"pktgen_dpdk") 37 | -------------------------------------------------------------------------------- /src/apps/networking/qbman_userspace.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | 7 | 8 | qbman_userspace: 9 | @[ $(SOCFAMILY) != LS -o $(DISTROVARIANT) != server ] && exit || \ 10 | $(call fbprint_b,"qbman_userspace") && \ 11 | $(call repo-mngr,fetch,qbman_userspace,apps/networking) && \ 12 | cd $(NETDIR)/qbman_userspace && \ 13 | export PREFIX=/usr && \ 14 | export ARCH=aarch64 && \ 15 | $(MAKE) -j$(JOBS) && \ 16 | cp -f lib_aarch64_static/libqbman.a $(DESTDIR)/usr/lib && \ 17 | cp -f include/*.h $(DESTDIR)/usr/include && \ 18 | $(call fbprint_d,"qbman_userspace") 19 | -------------------------------------------------------------------------------- /src/apps/networking/restool.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # DPAA2 Resource Manager Tool 6 | 7 | restool: 8 | @[ $(SOCFAMILY) != LS -o $(DISTROVARIANT) != server ] && exit || \ 9 | $(call repo-mngr,fetch,restool,apps/networking) && \ 10 | cd $(NETDIR)/restool && \ 11 | $(MAKE) clean && \ 12 | $(MAKE) -j$(JOBS) && \ 13 | $(MAKE) -j$(JOBS) install && \ 14 | $(call fbprint_d,"restool") 15 | -------------------------------------------------------------------------------- /src/apps/networking/spc.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | spc: 7 | @[ $(SOCFAMILY) != LS -o $(DISTROVARIANT) != server ] && exit || \ 8 | $(call repo-mngr,fetch,spc,apps/networking) && \ 9 | if [ $(DISTROTYPE) = ubuntu -o $(DISTROTYPE) = poky -o $(DISTROTYPE) = debian ]; then \ 10 | xmlhdr=$(RFSDIR)/usr/include/libxml2; \ 11 | elif [ $(DISTROTYPE) = buildroot ]; then \ 12 | xmlhdr=$(RFSDIR)/../host/include/libxml2; \ 13 | fi && \ 14 | if [ ! -f $$xmlhdr/libxml/parser.h ]; then \ 15 | bld rfs -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 16 | fi && \ 17 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 18 | export CXX="$(CROSS_COMPILE)g++ --sysroot=$(RFSDIR)" && \ 19 | export CFLAGS="-fpermissive -I$(RFSDIR)/usr/include/aarch64-linux-gnu" && \ 20 | export LDFLAGS="-L$(RFSDIR)/usr/lib -L$(RFSDIR)/usr/lib/aarch64-linux-gnu" && \ 21 | \ 22 | $(MAKE) -C $(NETDIR)/spc/source \ 23 | LIBXML2_HEADER_PATH=$$xmlhdr \ 24 | TCLAP_HEADER_PATH=$(RFSDIR)/usr/include \ 25 | NET_USPACE_HEADER_PATH=$(NETDIR)/spc/source/include/net \ 26 | CXX="$(CROSS_COMPILE)g++ --sysroot=$(RFSDIR)" \ 27 | CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 28 | cp -rf $(NETDIR)/spc/source/spc $(DESTDIR)/usr/local/bin && \ 29 | cp -rf $(NETDIR)/spc/etc $(DESTDIR) && \ 30 | $(call fbprint_d,"SPC") 31 | -------------------------------------------------------------------------------- /src/apps/networking/tsntool.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # depends on libnl-3-dev 7 | 8 | tsntool: 9 | @[ $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 10 | $(call fbprint_b,"tsntool") && \ 11 | $(call repo-mngr,fetch,tsntool,apps/networking) && \ 12 | $(call repo-mngr,fetch,linux,linux) && \ 13 | if [ ! -f $(RFSDIR)/lib/aarch64-linux-gnu/libnl-genl-3.so -a ! -f $(RFSDIR)/usr/lib/libnl-genl-3.so ]; then \ 14 | echo missing libnl-genl-3.so in $(RFSDIR) && exit 1; \ 15 | fi && \ 16 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 17 | export CFLAGS="-I$(DESTDIR)/usr/include -I$(RFSDIR)/usr/include/libnl3 -I$(RFSDIR)/usr/include/aarch64-linux-gnu" && \ 18 | export LDFLAGS="-lcjson -lnl-3 -lnl-genl-3 -L$(DESTDIR)/usr/lib/aarch64-linux-gnu \ 19 | -L$(RFSDIR)/usr/lib -L$(RFSDIR)/usr/lib/aarch64-linux-gnu" && \ 20 | \ 21 | cd $(NETDIR)/tsntool && \ 22 | mkdir -p include/linux && \ 23 | cp -f $(KERNEL_PATH)/include/uapi/linux/tsn.h include/linux && \ 24 | $(MAKE) clean && \ 25 | $(MAKE) -j$(JOBS) && \ 26 | install -d $(DESTDIR)/usr/local/bin && install -d $(DESTDIR)/usr/lib && \ 27 | install -m 755 tsntool $(DESTDIR)/usr/local/bin/tsntool && \ 28 | install -m 755 libtsn.so $(DESTDIR)/usr/lib/libtsn.so && \ 29 | $(call fbprint_d,"tsntool") 30 | -------------------------------------------------------------------------------- /src/apps/networking/vpp.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # open source version of Cisco's Vector Packet Processing (VPP) 7 | # https://wiki.fd.io/view/VPP 8 | 9 | # depends on libmnl-dev for libmnl/libmnl.h 10 | 11 | vpp: 12 | @[ $(SOCFAMILY) != LS -o $(DISTROVARIANT) != server ] && exit || \ 13 | $(call fbprint_b,"vpp") && \ 14 | $(call repo-mngr,fetch,vpp,apps/networking) && \ 15 | if [ ! -d $(RFSDIR)/usr/lib/aarch64-linux-gnu ]; then \ 16 | bld rfs -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 17 | fi && \ 18 | if [ ! -d $(DESTDIR)/usr/local/dpdk ]; then \ 19 | bld dpdk -r $(DISTROTYPE):$(DISTROVARIANT); \ 20 | fi && \ 21 | export CROSS_PREFIX=aarch64-linux-gnu && \ 22 | export CROSS_TOOLCHAIN=/usr && \ 23 | export CROSS_SYSROOT=$(RFSDIR) && \ 24 | export ARCH=arm64 && export OPENSSL_PATH=$(RFSDIR)/usr && \ 25 | export EXTRA_INC="$(NETDIR)/dpdk/lib/eal/include -I$(NETDIR)/dpdk/drivers/bus/vmbus \ 26 | -I$(NETDIR)/dpdk/lib/cryptodev -I$(RFSDIR)/usr/include/aarch64-linux-gnu" && \ 27 | export EXTRA_LIBS=$(RFSDIR)/lib/aarch64-linux-gnu && \ 28 | export DPDK_PATH=$(DESTDIR)/usr && \ 29 | export LD_LIBRARY_PATH=$(DESTDIR)/usr/local/lib:$(RFSDIR)/lib/aarch64-linux-gnu:$(RFSDIR)/lib && \ 30 | [ ! -f /usr/lib/python3.11/_sysconfigdata__aarch64-linux-gnu.py ] && \ 31 | sudo ln -s $(RFSDIR)/usr/lib/python3.11/_sysconfigdata__aarch64-linux-gnu.py \ 32 | /usr/lib/python3.11/_sysconfigdata__aarch64-linux-gnu.py || true && \ 33 | \ 34 | cd $(NETDIR)/vpp && \ 35 | sed -i -e 's/22.04)/12)/g' -e 's/clang-format-11/clang-format/g' \ 36 | -e 's/libffi7/libffi8/g' -e 's/E apt-get/E apt-get -y/g' Makefile && \ 37 | sed -i -e "s/-Werror -Wall//g" -e "/^#check_c_compiler_flag/s/#//g" \ 38 | -e "/^# compiler_flag_no_address/s/#//g" src/CMakeLists.txt && \ 39 | $(MAKE) -j$(JOBS) install-dep && \ 40 | cd build-root && \ 41 | $(MAKE) -j$(JOBS) distclean && \ 42 | $(MAKE) -j$(JOBS) V=0 PLATFORM=dpaa TAG=dpaa vpp-package-deb && \ 43 | mkdir -p $(DESTDIR)/usr/local/vpp ${DESTDIR}/etc/vpp && \ 44 | cp -vf *.deb $(DESTDIR)/usr/local/vpp && \ 45 | cp -f $(NETDIR)/vpp/src/vpp/conf/startup.conf $(DESTDIR)/etc/vpp/startup.conf && \ 46 | $(call fbprint_d,"vpp") 47 | -------------------------------------------------------------------------------- /src/apps/robotics/ros.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # ROS (Robot Operating System) provides libraries and tools to help software developers create robot applications. 7 | # It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. 8 | # ROS is licensed under an open source, BSD license. 9 | 10 | # https://docs.ros.org 11 | 12 | # Cross installing ROS2 for target arm64 Debian rootfs 13 | 14 | 15 | ros: 16 | ifeq ($(CONFIG_ROS), "y") 17 | @[ $(DISTROVARIANT) = base ] && exit || \ 18 | if [ -d $(RFSDIR)/opt/ros2_jazzy ]; then \ 19 | $(call fbprint_n,"ROS was already installed in $(RFSDIR)/opt/ros2_jazzy") && exit; \ 20 | fi && \ 21 | if [ ! -d $(RFSDIR)/usr/lib/aarch64-linux-gnu ]; then \ 22 | bld rfs -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 23 | fi && \ 24 | $(call fbprint_b,"ROS2") && \ 25 | sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o $(RFSDIR)/usr/share/keyrings/ros-archive-keyring.gpg && \ 26 | echo "deb [arch=arm64 signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu bookworm main" | \ 27 | sudo tee $(RFSDIR)/etc/apt/sources.list.d/ros2.list > /dev/null && \ 28 | sudo chroot $(RFSDIR) apt update && \ 29 | sudo chroot $(RFSDIR) apt install -y \ 30 | python3-flake8-blind-except \ 31 | python3-flake8-class-newline \ 32 | python3-flake8-deprecated \ 33 | python3-mypy \ 34 | python3-pip \ 35 | python3-pytest \ 36 | python3-pytest-cov \ 37 | python3-pytest-mock \ 38 | python3-pytest-repeat \ 39 | python3-pytest-rerunfailures \ 40 | python3-pytest-runner \ 41 | python3-pytest-timeout \ 42 | ros-dev-tools && \ 43 | sudo mkdir -p $(RFSDIR)/opt/ros2_jazzy/src && \ 44 | $(call fbprint_d,"ROS2 Jazzy in $(RFSDIR)/opt/ros2_jazzy") 45 | endif 46 | -------------------------------------------------------------------------------- /src/apps/security/crconf.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | 7 | crconf: 8 | @[ $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 9 | $(call fbprint_b,"crconf") && \ 10 | $(call repo-mngr,fetch,crconf,apps/security) && \ 11 | sed -i -e 's/CC =/CC ?=/' -e 's/DESTDIR=/DESTDIR?=/' $(SECDIR)/crconf/Makefile && \ 12 | cd $(SECDIR)/crconf && \ 13 | export CC=$(CROSS_COMPILE)gcc && \ 14 | export DESTDIR=${DESTDIR}/usr/local && \ 15 | $(MAKE) clean && \ 16 | $(MAKE) -j$(JOBS) && \ 17 | $(MAKE) install && \ 18 | $(call fbprint_d,"crconf") 19 | -------------------------------------------------------------------------------- /src/apps/security/cst.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | 7 | cst: 8 | @[ $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base -o $(SOCFAMILY) != LS ] && exit || \ 9 | $(call fbprint_b,"CST") && \ 10 | $(call repo-mngr,fetch,cst,apps/security) && \ 11 | cd $(SECDIR)/cst && \ 12 | sed -i 's/^struct input_field/extern struct input_field/g' tools/*/*.c && \ 13 | sed -i 's/-g -Wall/-g -Wno-deprecated-declarations -Wall/' Makefile && \ 14 | $(MAKE) -j$(JOBS) && \ 15 | if [ -n "$(SECURE_PRI_KEY)" ]; then \ 16 | echo Using specified $(SECURE_PRI_KEY) and $(SECURE_PUB_KEY) ... ; \ 17 | cp -f $(SECURE_PRI_KEY) $(SECDIR)/cst/srk.pri; \ 18 | cp -f $(SECURE_PUB_KEY) $(SECDIR)/cst/srk.pub; \ 19 | elif [ ! -f srk.pri -o ! -f srk.pub ]; then \ 20 | ./gen_keys 1024 && echo "Generated new keys!"; \ 21 | else \ 22 | echo "Using default keys srk.pri and srk.pub"; \ 23 | fi && \ 24 | $(call fbprint_d,"CST") 25 | -------------------------------------------------------------------------------- /src/apps/security/ecc_example.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # Plug & Trust ECC example for NXP EdgeLock SE050 secure element product family 7 | 8 | # This example demonstrates Elliptic Curve Cryptography (ECC) sign and verify operation 9 | # using NXP Plug & Trust middleware for EdgeLock SE050 secure element family. 10 | 11 | 12 | ecc_example: 13 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 14 | $(call fbprint_b,"ecc_example") && \ 15 | $(call repo-mngr,fetch,ecc_example,apps/security) && \ 16 | cd $(SECDIR)/ecc_example && \ 17 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 18 | mkdir -p build_$(DISTROTYPE)_$(ARCH) $(DESTDIR)/usr/bin && \ 19 | cmake -S $(SECDIR)/ecc_example/ecc_example \ 20 | -B build_$(DISTROTYPE)_$(ARCH) \ 21 | -DCMAKE_BUILD_TYPE=release && \ 22 | cmake --build build_$(DISTROTYPE)_$(ARCH) --target all && \ 23 | cmake --install build_$(DISTROTYPE)_$(ARCH) --prefix /usr && \ 24 | install -m 0755 build_$(DISTROTYPE)_$(ARCH)/ex_ecc $(DESTDIR)/usr/bin/ && \ 25 | $(call fbprint_d,"ecc_example") 26 | -------------------------------------------------------------------------------- /src/apps/security/imx_smw.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # NXP i.MX Security Middleware Library 7 | 8 | 9 | imx_smw: 10 | ifeq ($(CONFIG_SMW),y) 11 | @[ $(SOCFAMILY) != IMX ] && exit || \ 12 | $(call fbprint_b,"imx_smw") && \ 13 | $(call repo-mngr,fetch,imx_smw,apps/security) && \ 14 | if [ ! -f $(DESTDIR)/usr/lib/libteec.so ]; then \ 15 | CONFIG_OPTEE=y bld optee_client -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 16 | fi && \ 17 | cd $(SECDIR)/imx_smw && \ 18 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 19 | mkdir -p build_$(DISTROTYPE)_$(ARCH) && \ 20 | cmake -S $(SECDIR)/imx_smw \ 21 | -B build_$(DISTROTYPE)_$(ARCH) \ 22 | -DCMAKE_BUILD_TYPE=release \ 23 | -DTA_DEV_KIT_ROOT=$(DESTDIR)/usr/include/optee/export-user_ta \ 24 | -DTEEC_ROOT=$(RFSDIR) \ 25 | -DJSONC_ROOT=$(RFSDIR)/usr/lib/aarch64-linux-gnu \ 26 | -DTEE_TA_DESTDIR=/usr/lib && \ 27 | cmake --build build_$(DISTROTYPE)_$(ARCH) --target all && \ 28 | cmake --install build_$(DISTROTYPE)_$(ARCH) --prefix /usr && \ 29 | $(call fbprint_d,"imx_smw") 30 | endif 31 | -------------------------------------------------------------------------------- /src/apps/security/keyctl_caam.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | keyctl_caam: 7 | ifeq ($(CONFIG_OPENSSL),y) 8 | @[ $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 9 | $(call fbprint_b,"keyctl_caam") && \ 10 | $(call repo-mngr,fetch,keyctl_caam,apps/security) && \ 11 | cd $(SECDIR)/keyctl_caam && \ 12 | export OPENSSL_PATH=$(SECDIR)/openssl && \ 13 | $(MAKE) CC=$(CROSS_COMPILE)gcc DESTDIR=$(DESTDIR) install && \ 14 | $(call fbprint_d,"keyctl_caam") 15 | endif 16 | -------------------------------------------------------------------------------- /src/apps/security/libpkcs11.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | 7 | libpkcs11: 8 | @[ $(DESTARCH) != arm64 -o $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 9 | $(call fbprint_b,"libpkcs11") && \ 10 | $(call repo-mngr,fetch,libpkcs11,apps/security) && \ 11 | if [ ! -d $(SECDIR)/secure_obj/securekey_lib/include ]; then \ 12 | bld secure_obj -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH) -p $(SOCFAMILY); \ 13 | fi && \ 14 | cd $(SECDIR)/libpkcs11 && \ 15 | sed -e 's/^CC/#CC/' -e 's/^LD/#LD/' -e 's/s -Werror/s/' -i flags.mk && \ 16 | sed -i 's/-g -Iinclude/-g -fcommon -Iinclude/' Makefile && \ 17 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 18 | export LDFLAGS="-L$(RFSDIR)/usr/lib -L$(RFSDIR)/usr/lib/aarch64-linux-gnu" && \ 19 | $(MAKE) clean && \ 20 | $(MAKE) all OPENSSL_PATH=$(SECDIR)/openssl \ 21 | EXPORT_DIR=$(DESTDIR)/usr/local CURDIR=$(SECDIR)/libpkcs11 \ 22 | SECURE_OBJ_PATH=$(SECDIR)/secure_obj/securekey_lib && \ 23 | mkdir -p $(DESTDIR)/usr/local/bin && \ 24 | mv $(DESTDIR)/usr/local/app/pkcs11_app $(DESTDIR)/usr/local/bin && \ 25 | cp -f images/thread_test $(DESTDIR)/usr/local/bin && \ 26 | $(call fbprint_d,"libpkcs11") 27 | -------------------------------------------------------------------------------- /src/apps/security/openssl.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | 7 | 8 | openssl: 9 | @[ $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 10 | $(call fbprint_b,"OpenSSL") && \ 11 | $(call repo-mngr,fetch,openssl,apps/security) && \ 12 | if [ ! -d $(DESTDIR)/usr/local/include/crypto ]; then \ 13 | bld cryptodev_linux -a $(DESTARCH) -p $(SOCFAMILY); \ 14 | fi && \ 15 | export MAKE=make && \ 16 | cd $(SECDIR)/openssl && \ 17 | if [ -d $(FBDIR)/patch/openssl ] && [ ! -f .patchdone ]; then \ 18 | git am $(FBDIR)/patch/openssl/*.patch && touch .patchdone; \ 19 | fi && \ 20 | ./Configure enable-devcryptoeng linux-aarch64 shared \ 21 | -I$(DESTDIR)/usr/include -I$(PKGDIR)/linux/cryptodev_linux \ 22 | --prefix=/usr \ 23 | --openssldir=lib/ssl && \ 24 | $(MAKE) -j$(JOBS) depend && \ 25 | $(MAKE) -j$(JOBS) 1>/dev/null && \ 26 | $(MAKE) -j$(JOBS) install DESTDIR=$(DESTDIR) MANSUFFIX=ssl 1>/dev/null && \ 27 | mkdir -p $(DESTDIR)/usr/local/bin && \ 28 | mv $(DESTDIR)/usr/bin/openssl $(DESTDIR)/usr/local/bin && \ 29 | rm -rf $(DESTDIR)/usr/lib/ssl/certs && \ 30 | rm -rf $(DESTDIR)/usr/lib/ssl/private && \ 31 | ln -sf engines-3/devcrypto.so $(DESTDIR)/usr/lib/libcryptodev.so && \ 32 | $(call fbprint_d,"OpenSSL") 33 | -------------------------------------------------------------------------------- /src/apps/security/openssl_provider_se05x.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # OpenSSL Provider for NXP EdgeLock secure element SE05X (SE050_C, SE051_E) 7 | 8 | # An OpenSSL provider for NXP EdgeLock SE05x secure element product family 9 | 10 | # generates libsssProvider.so 11 | 12 | 13 | APPLET ?= "SE05X_C" 14 | APPLET_VERSION ?= "07_02" 15 | APPLET_AUTH ?= "None" 16 | 17 | 18 | openssl_provider_se05x: 19 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 20 | $(call fbprint_b,"openssl_provider_se05x") && \ 21 | $(call repo-mngr,fetch,openssl_provider_se05x,apps/security) && \ 22 | cd $(SECDIR)/openssl_provider_se05x && \ 23 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 24 | mkdir -p build_$(DISTROTYPE)_$(ARCH) && \ 25 | cmake -S $(SECDIR)/openssl_provider_se05x \ 26 | -B build_$(DISTROTYPE)_$(ARCH) \ 27 | -DCMAKE_BUILD_TYPE=release \ 28 | -DCMAKE_C_FLAGS="-I$(DESTDIR)/usr/include -I$(RFSDIR)/usr/include" \ 29 | -DPTMW_Applet=$(APPLET) \ 30 | -DPTMW_SE05X_Ver=$(APPLET_VERSION) \ 31 | -DPTMW_SE05X_Auth=$(APPLET_AUTH) \ 32 | -DPTMW_HostCrypto=OPENSSL && \ 33 | cmake --build build_$(DISTROTYPE)_$(ARCH) --target all && \ 34 | cmake --install build_$(DISTROTYPE)_$(ARCH) --prefix /usr && \ 35 | $(call fbprint_d,"openssl_provider_se05x") 36 | -------------------------------------------------------------------------------- /src/apps/security/optee_client.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | 7 | optee_client: 8 | ifeq ($(CONFIG_OPTEE),y) 9 | @[ $(DESTARCH) != arm64 -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 10 | $(call fbprint_b,"optee_client") && \ 11 | $(call repo-mngr,fetch,optee_client,apps/security) && \ 12 | if [ ! -d $(RFSDIR)/usr/lib ]; then \ 13 | bld rfs -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 14 | fi && \ 15 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 16 | export LDFLAGS="-L$(RFSDIR)/usr/lib -L$(RFSDIR)/usr/lib/aarch64-linux-gnu" && \ 17 | export PKG_CONFIG=pkg-config && \ 18 | \ 19 | cd $(SECDIR)/optee_client && \ 20 | $(MAKE) ARCH=arm64 CFLAGS="-I$(RFSDIR)/usr/include/uuid" && \ 21 | $(call fbprint_d,"optee_client") 22 | endif 23 | -------------------------------------------------------------------------------- /src/apps/security/optee_os.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | 7 | optee_os: 8 | ifeq ($(CONFIG_OPTEE),y) 9 | @[ $(DESTARCH) != arm64 -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 10 | $(call fbprint_b,"optee_os") && \ 11 | $(call repo-mngr,fetch,optee_os,apps/security) && \ 12 | cd $(SECDIR)/optee_os && \ 13 | if [ -d $(FBDIR)/patch/optee_os ] && [ ! -f .patchdone ]; then \ 14 | git am $(FBDIR)/patch/optee_os/*.patch && touch .patchdone; \ 15 | fi && \ 16 | if [ $(SOCFAMILY) = LS ]; then \ 17 | if [ $(MACHINE) = lx2162aqds ]; then \ 18 | brd=lx2160aqds; \ 19 | elif [ $(MACHINE) = ls1046afrwy ]; then \ 20 | brd=ls1046ardb; \ 21 | elif [ $(MACHINE) = qemuarm64 -o $(MACHINE) = all ]; then \ 22 | brd=ls1028ardb; \ 23 | elif [ $(MACHINE) = ls1012afrwy ]; then \ 24 | exit 0; \ 25 | else \ 26 | brd=$(MACHINE); \ 27 | fi && \ 28 | $(MAKE) CFG_ARM64_core=y PLATFORM=ls-$$brd ARCH=arm \ 29 | CFG_TEE_CORE_LOG_LEVEL=1 CFG_TEE_TA_LOG_LEVEL=0 && \ 30 | mv out/arm-plat-ls/core/tee-raw.bin out/arm-plat-ls/core/tee_$${MACHINE:0:10}.bin && \ 31 | mkdir -p $(DESTDIR)/usr/lib/optee_armtz && \ 32 | cp -f out/arm-plat-ls/export-ta_arm64/ta/*.ta $(DESTDIR)/usr/lib/optee_armtz/ && \ 33 | if [ $(MACHINE) = ls1012afrwy ]; then \ 34 | mv out/arm-plat-ls/core/tee_$${MACHINE:0:10}.bin out/arm-plat-ls/core/tee_$${MACHINE:0:10}_512mb.bin && \ 35 | $(MAKE) -j$(JOBS) CFG_ARM64_core=y PLATFORM=ls-ls1012afrwy ARCH=arm CFG_DRAM0_SIZE=0x40000000 && \ 36 | mv out/arm-plat-ls/core/tee-raw.bin out/arm-plat-ls/core/tee_$${MACHINE:0:10}.bin; \ 37 | fi; \ 38 | elif [ $(SOCFAMILY) = IMX ]; then \ 39 | if [ $(MACHINE) = qemuarm64 -o $(MACHINE) = all ]; then \ 40 | brd=mx8mpevk; \ 41 | else \ 42 | brd=$${MACHINE:1}; \ 43 | fi && \ 44 | $(MAKE) PLATFORM=imx PLATFORM_FLAVOR=$$brd ARCH=arm CFG_TEE_TA_LOG_LEVEL=0 CFG_TEE_CORE_LOG_LEVEL=0 && \ 45 | $(CROSS_COMPILE)objcopy -v -O binary out/arm-plat-imx/core/tee.elf out/arm-plat-imx/core/tee_$(MACHINE).bin && \ 46 | mkdir -p $(DESTDIR)/usr/lib/optee_armtz && \ 47 | cp -f out/arm-plat-imx/export-ta_arm64/ta/*.ta $(DESTDIR)/usr/lib/optee_armtz/; \ 48 | fi && \ 49 | $(call fbprint_d,"optee_os") 50 | endif 51 | -------------------------------------------------------------------------------- /src/apps/security/optee_test.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | 7 | optee_test: 8 | ifeq ($(CONFIG_OPTEE),y) 9 | @[ $(DESTARCH) != arm64 -o $(DISTROVARIANT) = tiny -o $(DISTROVARIANT) = base ] && exit || \ 10 | $(call fbprint_b,"optee_test") && \ 11 | $(call repo-mngr,fetch,optee_test,apps/security) && \ 12 | if [ ! -f $(DESTDIR)/usr/lib/libteec.so.1.0 ]; then \ 13 | CONFIG_OPTEE=y bld optee_client -m $(MACHINE); \ 14 | fi && \ 15 | if [ ! -d $(SECDIR)/optee_os/out/arm-plat-ls/export-ta_arm64 ]; then \ 16 | CONFIG_OPTEE=y bld optee_os -m ls1028ardb -r $(DISTROTYPE):$(DISTROVARIANT); \ 17 | fi && \ 18 | \ 19 | cd $(SECDIR)/optee_test && \ 20 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 21 | $(MAKE) CFG_ARM64=y OPTEE_CLIENT_EXPORT=$(DESTDIR)/usr \ 22 | TA_DEV_KIT_DIR=$(SECDIR)/optee_os/out/arm-plat-ls/export-ta_arm64 && \ 23 | mkdir -p $(DESTDIR)/usr/lib/optee_armtz && \ 24 | cp $(SECDIR)/optee_test/out/ta/*/*.ta $(DESTDIR)/usr/lib/optee_armtz && \ 25 | cp $(SECDIR)/optee_test/out/xtest/xtest $(DESTDIR)/usr/bin && \ 26 | mkdir -p $(DESTDIR)/usr/lib/tee-supplicant/plugins && \ 27 | cp $(SECDIR)/optee_test/out/supp_plugin/*.plugin $(DESTDIR)/usr/lib/tee-supplicant/plugins/ && \ 28 | $(call fbprint_d,"optee_test") 29 | endif 30 | -------------------------------------------------------------------------------- /src/apps/utils/firmwared.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # The Linux Firmware Loader Daemon monitors the kernel for firmware requests and uploads the firmware blobs it has via the sysfs interface 7 | # https://github.com/teg/firmwared 8 | 9 | # DEPENDS: glib-2.0 systemd 10 | 11 | # needed to load camera ap1302.fw for imx93evk 12 | 13 | 14 | firmwared: 15 | @[ $(SOCFAMILY) != IMX -o $(DISTROVARIANT) = base -o $(DISTROVARIANT) = tiny ] && exit || \ 16 | $(call fbprint_b,"firmwared") && \ 17 | $(call repo-mngr,fetch,firmwared,apps/utils) && \ 18 | cd $(UTILSDIR)/firmwared && \ 19 | export CROSS=$(CROSS_COMPILE) && \ 20 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR) \ 21 | -march=armv8-a+crc+crypto -mbranch-protection=standard -O2 \ 22 | -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat \ 23 | -Wformat-security -Werror=format-security -Wno-error=maybe-uninitialized" && \ 24 | export CFLAGS="-I$(DESTDIR)/usr/include/libdrm -I$(DESTDIR)/usr/include -I$(RFSDIR)/usr/include" && \ 25 | export LDFLAGS="-L$(DESTDIR)/usr/lib -L$(RFSDIR)/usr/lib/aarch64-linux-gnu" && \ 26 | \ 27 | ./autogen.sh --prefix=/usr --host=aarch64-linux-gnu && \ 28 | ./configure CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" \ 29 | --host=aarch64-linux-gnu \ 30 | --prefix=/usr \ 31 | --disable-silent-rules \ 32 | --with-libtool-sysroot=$(RFSDIR) && \ 33 | $(MAKE) -j$(JOBS) && \ 34 | $(MAKE) install && \ 35 | mkdir -p $(DESTDIR)/usr/lib/systemd/system $(DESTDIR)/etc/systemd/system/multi-user.target.wants && \ 36 | install -m 0644 $(FBDIR)/src/system/firmwared.service $(DESTDIR)/usr/lib/systemd/system/ && \ 37 | ln -sf /usr/lib/systemd/system/firmwared.service $(DESTDIR)/etc/systemd/system/multi-user.target.wants/firmwared.service && \ 38 | $(call fbprint_d,"firmwared") 39 | -------------------------------------------------------------------------------- /src/apps/utils/imx_test.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2023-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # Unit tests for the i.MX BSP 6 | 7 | 8 | PLATFORM = IMX8 9 | 10 | imx_test: 11 | @[ $(DESTARCH) != arm64 -o $(SOCFAMILY) != IMX -o $(DISTROVARIANT) != desktop ] && exit || \ 12 | $(call fbprint_b,"imx_test") && \ 13 | $(call repo-mngr,fetch,imx_test,apps/utils) && \ 14 | if [ ! -f $(DESTDIR)/usr/include/linux/mxc_asrc.h ]; then \ 15 | bld linux-headers -r $(DISTROTYPE):$(DISTROVARIANT) -a $(DESTARCH); \ 16 | fi && \ 17 | if [ ! -f $(DESTDIR)/usr/include/xf86drm.h ]; then \ 18 | bld libdrm -r $(DISTROTYPE):$(DISTROVARIANT); \ 19 | fi && \ 20 | if [ ! -f $(DESTDIR)/usr/include/alsa/asoundlib.h ]; then \ 21 | bld alsa_lib -r $(DISTROTYPE):$(DISTROVARIANT); \ 22 | fi && \ 23 | sudo cp -rf $(DESTDIR)/usr/include/alsa $(RFSDIR)/usr/include && \ 24 | cd $(UTILSDIR)/imx_test && \ 25 | mkdir -p $(DESTDIR)/opt/unit_tests && \ 26 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR) -I$(RFSDIR)/usr/include -I$(DESTDIR)/usr/include -O2 -pipe -g" && \ 27 | V=0 VERBOSE='' SDKTARGETSYSROOT=$(DESTDIR) PLATFORM=$(PLATFORM) \ 28 | $(MAKE) -j$(JOBS) && \ 29 | $(MAKE) install DESTDIR=$(DESTDIR)/opt/unit_tests PLATFORM=$(PLATFORM) && \ 30 | $(call fbprint_d,"imx_test") 31 | -------------------------------------------------------------------------------- /src/bsp/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2017-2023 NXP 3 | # 4 | # SPDX-License-Identifier: BSD-3-Clause 5 | # 6 | # SDK BSP Components 7 | 8 | SHELL=/bin/bash 9 | include $(FBDIR)/configs/$(CONFIGLIST) 10 | include $(FBDIR)/include/repo.mk 11 | include $(FBDIR)/include/repo_update.inc 12 | include *.mk 13 | 14 | BSPDIR = $(PKGDIR)/bsp 15 | -------------------------------------------------------------------------------- /src/bsp/grub.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2018-2023 NXP 3 | # 4 | # SPDX-License-Identifier: BSD-3-Clause 5 | # 6 | 7 | grub_url ?= git://git.savannah.gnu.org/grub.git 8 | grub_tag ?= grub-2.12-rc1 9 | 10 | grub: 11 | ifeq ($(CONFIG_GRUB),y) 12 | @$(call fbprint_b,"grub") && \ 13 | git clone $(grub_url) $(BSPDIR)/grub -b $(grub_tag) && \ 14 | cd $(BSPDIR)/grub && \ 15 | ./bootstrap && ./autogen.sh && \ 16 | ./configure --target=aarch64-linux-gnu && \ 17 | $(MAKE) && \ 18 | echo 'configfile ${cmdpath}/grub.cfg' > grub.cfg && \ 19 | grub-mkstandalone --directory=./grub-core -O arm64-efi -o BOOTAA64.EFI \ 20 | --modules "part_gpt part_msdos" /boot/grub/grub.cfg=./grub.cfg && \ 21 | mkdir -p $(FBOUTDIR)/bsp/grub && \ 22 | cp -f BOOTAA64.EFI $(FBOUTDIR)/bsp/grub && \ 23 | $(call fbprint_d,"grub") 24 | endif 25 | -------------------------------------------------------------------------------- /src/bsp/imx_firmware.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | 7 | imx_firmware: 8 | @[ $(SOCFAMILY) != IMX ] && exit || \ 9 | $(call repo-mngr,fetch,imx_firmware,bsp) && \ 10 | cd $(BSPDIR)/imx_firmware && \ 11 | if [ -d $(FBDIR)/patch/imx_firmware ] && [ ! -f .patchdone ]; then \ 12 | git am $(FBDIR)/patch/imx_firmware/*.patch && touch .patchdone; \ 13 | fi && \ 14 | mkdir -p $(FBOUTDIR)/bsp/imx_firmware/lib/firmware/{nxp,imx,brcm} && \ 15 | echo Installing NXP WIFI/BT firmware && \ 16 | cp -f $(BSPDIR)/imx_firmware/nxp/FwImage_*/* $(FBOUTDIR)/bsp/imx_firmware/lib/firmware/nxp 2>/dev/null || true && \ 17 | cp -f $(BSPDIR)/imx_firmware/nxp/mfguart/*.bin $(FBOUTDIR)/bsp/imx_firmware/lib/firmware/nxp && \ 18 | cp -f $(BSPDIR)/imx_firmware/nxp/wifi_mod_para.conf $(FBOUTDIR)/bsp/imx_firmware/lib/firmware/nxp && \ 19 | echo Installing Murata WIFI/BT firmware && \ 20 | cp -f $(BSPDIR)/imx_firmware/cyw-wifi-bt/*/{*.bin,*.clm_blob,*.txt} $(FBOUTDIR)/bsp/imx_firmware/lib/firmware/brcm/ && \ 21 | cp -f $(BSPDIR)/imx_firmware/cyw-wifi-bt/*/*.hcd $(FBOUTDIR)/bsp/imx_firmware/lib/firmware/ && \ 22 | \ 23 | echo Installing firmware-imx for ddr,hdmi,dp,vpu,easrc,epdc,xcvr,xuvi && \ 24 | if [ ! -d $(BSPDIR)/firmware-imx ]; then \ 25 | cd $(BSPDIR) && wget -q $(repo_firmware_imx_bin_url) -O firmware_imx.bin && \ 26 | chmod +x firmware_imx.bin && \ 27 | ./firmware_imx.bin --auto-accept && mv firmware-imx* firmware-imx && rm -f firmware_imx.bin; \ 28 | fi && \ 29 | cp -Prf $(BSPDIR)/firmware-imx/firmware/* $(FBOUTDIR)/bsp/imx_firmware/lib/firmware/imx/ && \ 30 | $(call fbprint_d,"imx_firmware") 31 | -------------------------------------------------------------------------------- /src/bsp/mcore_demo.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | # i.MX M4/M7/M33 core Demo images 6 | 7 | IMX_MCORE_VERSION ?= 2.16.000 8 | 9 | MCORE_LIST ?= imx8mm-m4 imx8mq-m4 imx8mn-m7 imx8mp-m7 imx8ulp-m33 imx93-m33 imx95-m7 10 | 11 | FW_DOWNLOAD_URL ?= https://www.nxp.com/lgfiles/NMG/MAD/YOCTO 12 | 13 | 14 | mcore_demo: 15 | @[ $(SOCFAMILY) != IMX ] && exit || \ 16 | if [ ! -d $(BSPDIR)/imx_mcore_demos ]; then \ 17 | mkdir -p $(BSPDIR)/imx_mcore_demos && \ 18 | cd $(BSPDIR)/imx_mcore_demos && \ 19 | for soc in $(MCORE_LIST); do \ 20 | wget -q $(FW_DOWNLOAD_URL)/$${soc}-demo-$(IMX_MCORE_VERSION).bin -O $${soc}.bin && \ 21 | chmod +x $${soc}.bin && ./$${soc}.bin --auto-accept && \ 22 | mv $${soc}-demo-$(IMX_MCORE_VERSION) $${soc}-demo && \ 23 | rm -f $${soc}.bin; \ 24 | done; \ 25 | fi && \ 26 | [ ! -L $(FBOUTDIR)/bsp/imx_mcore_demos ] && ln -sf $(BSPDIR)/imx_mcore_demos $(FBOUTDIR)/bsp/imx_mcore_demos || true && \ 27 | $(call fbprint_d,"imx_mcore_demo") 28 | -------------------------------------------------------------------------------- /src/bsp/rcw.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2017-2023 NXP 3 | # 4 | # SPDX-License-Identifier: BSD-3-Clause 5 | 6 | 7 | # RCW for NXP QorIQ Layerscape SoC. 8 | 9 | rcw: 10 | @[ $(SOCFAMILY) != LS ] && exit || \ 11 | $(call repo-mngr,fetch,rcw,bsp) && \ 12 | cd $(BSPDIR) && mkdir -p $(FBOUTDIR)/bsp/rcw 13 | ifeq ($(MACHINE), all) 14 | @cd $(BSPDIR) && \ 15 | for brd in `find rcw -maxdepth 1 -type d -name "l*"|cut -d/ -f2`; do \ 16 | test -f rcw/$$brd/Makefile || continue; \ 17 | $(MAKE) -C rcw/$$brd && \ 18 | $(MAKE) -C rcw/$$brd install DESTDIR=$(FBOUTDIR)/bsp/rcw/$$brd; \ 19 | done 20 | else 21 | @cd $(BSPDIR) && \ 22 | [ $${MACHINE:0:6} = lx2160 ] && machine=$${MACHINE:0:10}_rev2 || machine=$(MACHINE) && \ 23 | $(MAKE) -C rcw/$$machine && \ 24 | $(MAKE) -C rcw/$$machine install DESTDIR=$(FBOUTDIR)/bsp/rcw/$(MACHINE) 25 | endif 26 | @rm -f $(FBOUTDIR)/bsp/rcw/*/README && \ 27 | $(call fbprint_d,"RCW") 28 | -------------------------------------------------------------------------------- /src/linux/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2017-2023 NXP 3 | # 4 | # SPDX-License-Identifier: BSD-3-Clause 5 | # 6 | # 7 | # SDK linux kernel and modules components 8 | 9 | SHELL=/bin/bash 10 | include $(FBDIR)/configs/$(CONFIGLIST) 11 | include $(FBDIR)/include/repo.mk 12 | include $(FBDIR)/include/repo_update.inc 13 | include $(FBDIR)/src/apps/connectivity/nxp_wlan_bt.mk 14 | 15 | include linux.mk 16 | include perf.mk 17 | include cryptodev_linux.mk 18 | include lttng_modules.mk 19 | include mdio_proxy_module.mk 20 | include isp_vvcam_module.mk 21 | -------------------------------------------------------------------------------- /src/linux/cryptodev_linux.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2024 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | cryptodev_linux: 7 | @[ "$(BUILDARG)" = custom ] && exit || \ 8 | $(call repo-mngr,fetch,cryptodev_linux,linux) && \ 9 | $(call repo-mngr,fetch,linux,linux) && \ 10 | $(call fbprint_b,"cryptodev_linux") && \ 11 | curbrch=`cd $(KERNEL_PATH) && git branch | grep ^* | cut -d' ' -f2` && \ 12 | opdir=$(KERNEL_OUTPUT_PATH)/$$curbrch && \ 13 | if [ ! -f $$opdir/include/config/auto.conf ]; then \ 14 | bld linux -a $(DESTARCH) -p $(SOCFAMILY); \ 15 | fi && \ 16 | if [ ! -d $(RFSDIR)/usr/lib/aarch64-linux-gnu ]; then \ 17 | bld rfs -a $(DESTARCH) -r $(DISTROTYPE):$(DISTROVARIANT); \ 18 | fi && \ 19 | \ 20 | cd $(PKGDIR)/linux/cryptodev_linux && \ 21 | if [ -d $(FBDIR)/patch/cryptodev_linux ] && [ ! -f .patchdone ]; then \ 22 | git am $(FBDIR)/patch/cryptodev_linux/*.patch && touch .patchdone; \ 23 | fi && \ 24 | export KERNEL_MAKE_OPTS="-lcrypto -L$(RFSDIR)/usr/lib/aarch64-linux-gnu" && \ 25 | $(MAKE) KERNEL_DIR=$(KERNEL_PATH) O=$$opdir && \ 26 | $(MAKE) install KERNEL_DIR=$(KERNEL_PATH) O=$$opdir INSTALL_MOD_PATH=$$opdir/tmp && \ 27 | $(call fbprint_d,"cryptodev_linux") 28 | -------------------------------------------------------------------------------- /src/linux/isp_vvcam_module.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | # Kernel loadable module verisilicon ISP vvcam v4l2 7 | 8 | # isp_vvcam_module/vvcam/readme_v4l2.txt 9 | 10 | 11 | isp_vvcam_module: 12 | @[ $(SOCFAMILY) != IMX ] && exit || \ 13 | $(call repo-mngr,fetch,isp_vvcam_module,linux) && \ 14 | $(call repo-mngr,fetch,$(KERNEL_TREE),linux) && \ 15 | \ 16 | if [ ! -d $(FBOUTDIR)/linux/kernel/$(DESTARCH)/$(SOCFAMILY) ]; then \ 17 | bld linux -a $(DESTARCH) -p $(SOCFAMILY); \ 18 | fi && \ 19 | curbrch=`cd $(KERNEL_PATH) && git branch | grep ^* | cut -d' ' -f2` && \ 20 | opdir=$(KERNEL_OUTPUT_PATH)/$$curbrch && mkdir -p $$opdir && \ 21 | \ 22 | cd $(PKGDIR)/linux/isp_vvcam_module/vvcam/v4l2 && \ 23 | $(call fbprint_b,"isp_vvcam_module") && \ 24 | export INSTALL_MOD_PATH=$$opdir/tmp && \ 25 | make KERNEL_SRC=$(KERNEL_PATH) O=$$opdir ENABLE_IRQ=yes && \ 26 | make KERNEL_SRC=$(KERNEL_PATH) O=$$opdir ENABLE_IRQ=yes modules_install && \ 27 | $(call fbprint_d,"isp_vvcam_module") 28 | -------------------------------------------------------------------------------- /src/linux/lttng_modules.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | lttng_modules: 7 | @$(call repo-mngr,fetch,lttng_modules,linux) && \ 8 | $(call repo-mngr,fetch,$(KERNEL_TREE),linux) && \ 9 | curbrch=`cd $(KERNEL_PATH) && git branch | grep ^* | cut -d' ' -f2` && \ 10 | opdir=$(KERNEL_OUTPUT_PATH)/$$curbrch && mkdir -p $$opdir && \ 11 | if ! grep CONFIG_STACKTRACE=y $$opdir/.config 1>/dev/null 2>&1; then \ 12 | bld linux -B fragment:lttng.config -a $(DESTARCH) -p $(SOCFAMILY); \ 13 | fi && \ 14 | cd $(PKGDIR)/linux/lttng_modules && \ 15 | $(call fbprint_b,"LTTng modules") && \ 16 | $(MAKE) KERNELDIR=$(KERNEL_PATH) O=$$opdir && \ 17 | $(MAKE) KERNELDIR=$(KERNEL_PATH) O=$$opdir modules_install && \ 18 | $(call fbprint_d,"LTTng modules") 19 | -------------------------------------------------------------------------------- /src/linux/mdio_proxy_module.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2021-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | 7 | mdio_proxy_module: 8 | @[ $(SOCFAMILY) != LS ] && exit || true && \ 9 | $(call repo-mngr,fetch,mdio_proxy_module,linux) && \ 10 | $(call repo-mngr,fetch,$(KERNEL_TREE),linux) && \ 11 | if [ ! -d $(FBOUTDIR)/linux/kernel/$(DESTARCH)/$(SOCFAMILY) ]; then \ 12 | bld linux -a $(DESTARCH) -p $(SOCFAMILY); \ 13 | fi && \ 14 | curbrch=`cd $(KERNEL_PATH) && git branch | grep ^* | cut -d' ' -f2` && \ 15 | opdir=$(KERNEL_OUTPUT_PATH)/$$curbrch && mkdir -p $$opdir && \ 16 | \ 17 | cd $(PKGDIR)/linux/mdio_proxy_module && \ 18 | $(call fbprint_b,"mdio-proxy-module") && \ 19 | $(MAKE) -j$(JOBS) KBUILD_DIR=$(KERNEL_PATH) O=$$opdir && \ 20 | cp -f mdio-proxy.ko $$opdir/tmp/lib/modules/*/kernel/drivers/net/mdio/ && \ 21 | $(call fbprint_d,"mdio_proxy_module") 22 | -------------------------------------------------------------------------------- /src/linux/perf.mk: -------------------------------------------------------------------------------- 1 | # Copyright 2017-2023 NXP 2 | # 3 | # SPDX-License-Identifier: BSD-3-Clause 4 | 5 | 6 | perf: 7 | @$(call repo-mngr,fetch,$(KERNEL_TREE),linux) && \ 8 | cd $(PKGDIR)/linux && \ 9 | curbrch=`cd $(KERNEL_PATH) && git branch | grep ^* | cut -d' ' -f2` && \ 10 | opdir=$(KERNEL_OUTPUT_PATH)/$$curbrch && \ 11 | $(call fbprint_b,"kernel tools/perf") && \ 12 | mkdir -p $$opdir && \ 13 | if [ ! -f $$opdir/.config ]; then \ 14 | $(MAKE) $(KERNEL_CFG) -C $(KERNEL_PATH) O=$$opdir 1>/dev/null; \ 15 | fi && \ 16 | export CC="$(CROSS_COMPILE)gcc --sysroot=$(RFSDIR)" && \ 17 | $(MAKE) -j$(JOBS) tools/perf -C $(KERNEL_PATH) O=$$opdir NO_LIBELF=1 NO_LIBTRACEEVENT=1 && \ 18 | cp $$opdir/tools/perf/perf $(FBOUTDIR)/linux/$(KERNEL_TREE)/$(DESTARCH)/$(SOCFAMILY) && \ 19 | ls -l $(FBOUTDIR)/linux/$(KERNEL_TREE)/$(DESTARCH)/$(SOCFAMILY)/perf && \ 20 | $(call fbprint_d,"kernel tools/perf") 21 | -------------------------------------------------------------------------------- /src/system/100-sysvinit-inittab: -------------------------------------------------------------------------------- 1 | # sysvinit-inittab - postinst 2 | set -e 3 | # run this on host and on target 4 | SERIAL_PORTS="ttyS0 ttyS1 ttyAMA0 ttymxc0 ttymxc1 ttyLP0" 5 | 6 | if [ -n "$D" ]; then 7 | $INTERCEPT_DIR/postinst_intercept delay_to_first_boot sysvinit-inittab mlprefix= 8 | exit 0 9 | fi 10 | # run this on the target 11 | if [ -e /proc/consoles ]; then 12 | for port in $SERIAL_PORTS 13 | do 14 | if [ -z "`grep ${port} /proc/consoles`" ]; then 15 | sed -i -e /^.*${port}\ /d -e /^.*${port}$/d /etc/inittab 16 | fi 17 | done 18 | kill -HUP 1 19 | else 20 | exit 1 21 | fi 22 | -------------------------------------------------------------------------------- /src/system/blacklist.conf: -------------------------------------------------------------------------------- 1 | # blacklist 2 | # Users can manually load it with modprobe later after booting. 3 | blacklist evbug 4 | blacklist btnxpuart 5 | -------------------------------------------------------------------------------- /src/system/boot.mount: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Boot Partition 3 | Before=systemd-modules-load.service 4 | 5 | [Mount] 6 | What=UUID=PARTUUID 7 | Where=/boot 8 | Type=ext4 9 | Options=defaults 10 | 11 | [Install] 12 | WantedBy=local-fs.target 13 | -------------------------------------------------------------------------------- /src/system/firmwared.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Linux Firmware Loader Daemon 3 | 4 | [Service] 5 | Type=simple 6 | ExecStart=/usr/bin/firmwared -d /lib/firmware 7 | 8 | [Install] 9 | WantedBy=multi-user.target 10 | -------------------------------------------------------------------------------- /src/system/fmc.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=NXP Frame Manager Configuration tool 3 | After=network.target 4 | 5 | [Service] 6 | ExecStart=/usr/local/fmc/init-ls104xa 7 | Type=oneshot 8 | 9 | [Install] 10 | WantedBy=multi-user.target 11 | -------------------------------------------------------------------------------- /src/system/gpuconfig: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ldconfig 4 | 5 | # Replace libGL.so.1 to libGLESv2.so.2 for libmutter 6 | patchelf --replace-needed libGL.so.1 libGLESv2.so.2 /lib/aarch64-linux-gnu/libmutter-*.so.0.0.0 7 | -------------------------------------------------------------------------------- /src/system/gpuconfig.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Configuration for NXP i.MX/LS GPU (Former rc_gpu.S) 3 | 4 | [Service] 5 | ExecStart=/etc/gpuconfig 6 | 7 | [Install] 8 | WantedBy=graphical.target 9 | -------------------------------------------------------------------------------- /src/system/init-ls104xa: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | # 3 | # Copyright 2018 NXP 4 | # 5 | 6 | soc="`cat /proc/device-tree/model |cut -d' ' -f1,2`" 7 | echo "Configuring for $soc..." 8 | fmc_path=/etc/fmc/config/private 9 | if [ "LS1043A RDB" = "$soc" ];then 10 | config=`ls $fmc_path/ls1043ardb/*/config.xml` 11 | policy=`ls $fmc_path/ls1043ardb/*/policy_ipv4.xml` 12 | if [ -n "$config" ] && [ -n "$policy" ];then 13 | /usr/local/bin/fmc -c $config -p $policy -a 14 | fi 15 | elif [ "LS1046A RDB" = "$soc" ];then 16 | config=`ls $fmc_path/ls1046ardb/*/config.xml` 17 | policy=`ls $fmc_path/ls1046ardb/*/policy_ipv4.xml` 18 | if [ -n "$config" ] && [ -n "$policy" ];then 19 | /usr/local/bin/fmc -c $config -p $policy -a 20 | fi 21 | elif [ "LS1046A FRWY" = "$soc" ];then 22 | config=`ls $fmc_path/ls1046afrwy/*/config.xml` 23 | policy=`ls $fmc_path/ls1046afrwy/*/policy_ipv4.xml` 24 | if [ -n "$config" ] && [ -n "$policy" ];then 25 | /usr/local/bin/fmc -c $config -p $policy -a 26 | fi 27 | fi 28 | echo "Finished." 29 | 30 | -------------------------------------------------------------------------------- /src/system/meson.cross: -------------------------------------------------------------------------------- 1 | [binaries] 2 | c = ['@TARGET_CROSS@gcc', '-march=armv8-a+crc+crypto', '-fstack-protector-strong', '-O2', '--sysroot=@STAGING_DIR@'] 3 | cpp = ['@TARGET_CROSS@g++', '-march=armv8-a+crc+crypto', '-fstack-protector-strong', '-O2', '--sysroot=@STAGING_DIR@'] 4 | ar = '@TARGET_CROSS@ar' 5 | strip = '@TARGET_CROSS@strip' 6 | ld = ['@TARGET_CROSS@ld', '--sysroot=@STAGING_DIR@'] 7 | pkgconfig = '/usr/bin/pkg-config' 8 | 9 | 10 | # g-ir-scanner = '/usr/bin/g-ir-scanner' 11 | # g-ir-compiler = '/usr/bin/g-ir-compiler' 12 | 13 | 14 | [built-in options] 15 | c_args = ['-O2', '-pipe', '-g', '-feliminate-unused-debug-types'] 16 | c_link_args = ['-Wl,-O1', '-Wl,--hash-style=gnu', '-Wl,--as-needed'] 17 | cpp_args = ['-O2', '-pipe', '-g', '-feliminate-unused-debug-types'] 18 | cpp_link_args = ['-Wl,-O1', '-Wl,--hash-style=gnu', '-Wl,--as-needed'] 19 | 20 | 21 | [properties] 22 | needs_exe_wrapper = true 23 | sys_root = '@STAGING_DIR@' 24 | pkg_config_libdir = '@DESTDIR@/usr/lib/pkgconfig:@STAGING_DIR@/usr/lib/pkgconfig:@STAGING_DIR@/usr/lib/aarch64-linux-gnu/pkgconfig:@STAGING_DIR@/usr/share/pkgconfig' 25 | 26 | [host_machine] 27 | system = 'linux' 28 | cpu_family = 'aarch64' 29 | cpu = 'aarch64' 30 | endian = 'little' 31 | 32 | [target_machine] 33 | system = 'linux' 34 | cpu_family ='aarch64' 35 | cpu = 'aarch64' 36 | endian = 'little' 37 | -------------------------------------------------------------------------------- /src/system/pkgconfig/libproc2.pc: -------------------------------------------------------------------------------- 1 | prefix=/usr 2 | exec_prefix=/usr 3 | libdir=/usr/lib 4 | includedir=/usr/include 5 | 6 | Name: libproc2 7 | Description: Library to control and query process state 8 | Version: 4.0.4 9 | Libs: -L${libdir} -lproc2 10 | Libs.private: 11 | Cflags: -I${includedir} 12 | -------------------------------------------------------------------------------- /src/system/pkgconfig/tensorflow2-lite.pc: -------------------------------------------------------------------------------- 1 | Name: tensorflow lite 2 | Description: tensorflow lite static library 3 | Version: 2.16.2 4 | Requires: 5 | Libs: -L/usr/lib -ltensorflow-lite -lrt 6 | Cflags: -I/usr/include 7 | -------------------------------------------------------------------------------- /src/system/pkgconfig/tvm_runtime.pc: -------------------------------------------------------------------------------- 1 | Name: tvm 2 | Description: tvm library 3 | Version: 0.7.0 4 | Requires: 5 | Libs: -L/usr/lib -ltvm_runtime 6 | Cflags: -I/usr/include 7 | -------------------------------------------------------------------------------- /src/system/platcfg.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Runtime Dynamic Configuration for various NXP i.MX/LS platforms 3 | 4 | [Service] 5 | ExecStart=/usr/bin/distroplatcfg 6 | 7 | [Install] 8 | WantedBy=multi-user.target 9 | -------------------------------------------------------------------------------- /src/system/ts.conf: -------------------------------------------------------------------------------- 1 | # Uncomment if you wish to use the linux input layer event interface 2 | module_raw input 3 | 4 | # Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d 5 | # module_raw collie 6 | 7 | # Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860 8 | # module_raw corgi 9 | 10 | # Uncomment if you're using a device with a UCB1200/1300/1400 TS interface 11 | # module_raw ucb1x00 12 | 13 | # Uncomment if you're using an HP iPaq h3600 or similar 14 | # module_raw h3600 15 | 16 | # Uncomment if you're using a Hitachi Webpad 17 | # module_raw mk712 18 | 19 | # Uncomment if you're using an IBM Arctic II 20 | # module_raw arctic2 21 | 22 | module pthres pmin=1 23 | module variance delta=30 24 | module dejitter delta=100 25 | module linear 26 | -------------------------------------------------------------------------------- /src/system/udev/udev-rules-imx/10-imx.rules: -------------------------------------------------------------------------------- 1 | # Create symlinks for i.mx keypads and touchscreens 2 | #SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="mxckpd", SYMLINK+="input/keyboard0" 3 | #SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="mxc_ts", SYMLINK+="input/ts0" 4 | #SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="imx_adc_ts", SYMLINK+="input/ts0" 5 | #SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="mpr084", SYMLINK+="input/keyboard0" 6 | #SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name}=="tsc2007", SYMLINK+="input/ts0" 7 | #SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name} =="STMP3XXX touchscreen", SYMLINK+="input/ts0" 8 | #SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name} =="MXS touchscreen", SYMLINK+="input/ts0" 9 | #SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name} =="HannStar P1003 Touchscreen", SYMLINK+="input/ts0" 10 | #SUBSYSTEM=="input" KERNEL=="event*" ATTRS{name} =="eGalax Touch Screen", SYMLINK+="input/ts0" 11 | 12 | # The long class name gets cut off to be mc13783_connectiv in 13 | # /sys/class/mc13783_connectivity/mc13783_connectivit 14 | KERNEL=="mc13783_connectiv*", NAME="mc13783_connectivity" 15 | # Anyone has readonly permission to IIM device file 16 | KERNEL=="mxc_iim", MODE="0444", SYMLINK+="mxc_mem" 17 | KERNEL=="mxs_viim", MODE="0444", SYMLINK+="mxc_mem" 18 | KERNEL=="mxc_ipu", MODE="0600" 19 | KERNEL=="mxc_vpu", MODE="0600" 20 | SUBSYSTEM=="video", MODE="0660" 21 | KERNEL=="fb[0-9]", MODE="0660", GROUP="video" 22 | KERNEL=="gsl_kmod", MODE="0660", GROUP="video" 23 | KERNEL=="galcore", MODE="0666", GROUP="video" 24 | 25 | # gstreamer a/v playback 26 | KERNEL=="linux,cma", SUBSYSTEM=="dma_heap", MODE="0666" 27 | KERNEL=="ion", MODE="0666" 28 | KERNEL=="mxc_hantro*", MODE="0666" 29 | 30 | # Fix for SDMA firmware not loading for two out of 3 dma controllers on imx8mm 31 | SUBSYSTEM=="platform" KERNEL=="302b0000.dma-controller", ACTION=="add", RUN+="/etc/sdma" 32 | SUBSYSTEM=="platform" KERNEL=="302c0000.dma-controller", ACTION=="add", RUN+="/etc/sdma" 33 | SUBSYSTEM=="platform" KERNEL=="30bd0000.dma-controller", ACTION=="add", RUN+="/etc/sdma" 34 | -------------------------------------------------------------------------------- /src/system/udev/udev-rules-qoriq/72-fsl-dpaa-persistent-networking.rules: -------------------------------------------------------------------------------- 1 | # Rules for handling naming the DPAA FMan ethernet ports in a consistent way 2 | SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1ae0000", NAME="fm1-mac1" 3 | SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1ae2000", NAME="fm1-mac2" 4 | SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1ae4000", NAME="fm1-mac3" 5 | SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1ae6000", NAME="fm1-mac4" 6 | SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1ae8000", NAME="fm1-mac5" 7 | SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1aea000", NAME="fm1-mac6" 8 | SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1af0000", NAME="fm1-mac9" 9 | SUBSYSTEM=="net", DRIVERS=="fsl_dpa*", ATTR{device_addr}=="1af2000", NAME="fm1-mac10" 10 | 11 | # Rename macless0 to "macless0" 12 | SUBSYSTEM=="net", ATTR{device_type}=="macless0", NAME="macless0" 13 | -------------------------------------------------------------------------------- /src/system/udev/udev-rules-qoriq/73-fsl-enetc-networking.rules: -------------------------------------------------------------------------------- 1 | # ENETC rules 2 | ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.0", DRIVERS=="fsl_enetc", NAME:="eno0" 3 | ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.1", DRIVERS=="fsl_enetc", NAME:="eno1" 4 | ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.2", DRIVERS=="fsl_enetc", NAME:="eno2" 5 | ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.6", DRIVERS=="fsl_enetc", NAME:="eno3" 6 | ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:01.0", DRIVERS=="fsl_enetc_vf", NAME:="eno0vf0" 7 | ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:01.1", DRIVERS=="fsl_enetc_vf", NAME:="eno0vf1" 8 | ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:01.2", DRIVERS=="fsl_enetc_vf", NAME:="eno1vf0" 9 | ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:01.3", DRIVERS=="fsl_enetc_vf", NAME:="eno1vf1" 10 | # LS1028 switch rules 11 | ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p0", NAME="swp0" 12 | ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p1", NAME="swp1" 13 | ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p2", NAME="swp2" 14 | ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p3", NAME="swp3" 15 | ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p4", NAME="swp4" 16 | ACTION=="add", SUBSYSTEM=="net", KERNELS=="0000:00:00.5", DRIVERS=="mscc_felix", ATTR{phys_port_name}=="p5", NAME="swp5" 17 | -------------------------------------------------------------------------------- /src/system/weston/weston: -------------------------------------------------------------------------------- 1 | HOME=/root/ 2 | QT_QPA_PLATFORM=wayland 3 | 4 | -------------------------------------------------------------------------------- /src/system/weston/weston.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Encoding=UTF-8 3 | Type=Application 4 | Name=Weston 5 | Comment=Wayland Compostitor 6 | Exec=weston 7 | Icon=weston 8 | Terminal=false 9 | Categories=Utility; 10 | -------------------------------------------------------------------------------- /src/system/weston/weston.ini: -------------------------------------------------------------------------------- 1 | [core] 2 | use-g2d=true 3 | repaint-window=16 4 | gbm-format=argb8888 5 | idle-time=0 6 | xwayland=true 7 | #enable-overlay-view=1 8 | 9 | [shell] 10 | 11 | [libinput] 12 | touchscreen_calibrator=true 13 | 14 | #[output] 15 | #name=HDMI-A-1 16 | #mode=1920x1080@60 17 | #transform=rotate-90 18 | 19 | #[output] 20 | #name=HDMI-A-2 21 | #mode=off 22 | # WIDTHxHEIGHT Resolution size width and height in pixels 23 | # off Disables the output 24 | # preferred Uses the preferred mode 25 | # current Uses the current crt controller mode 26 | #transform=rotate-90 27 | 28 | [screen-share] 29 | command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize 30 | #start-on-startup=true 31 | 32 | [launcher] 33 | icon=/opt/gopoint-apps/icon/icon_demo_launcher.png 34 | path=QMLSCENE_DEVICE=softwarecontext /usr/bin/gopoint 35 | 36 | [launcher] 37 | icon=/usr/share/weston/terminal.png 38 | path=/usr/bin/weston-terminal -------------------------------------------------------------------------------- /src/system/weston/weston.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NXP/flexbuild/6264b13c08eba18fba28afc45d3732c24643093b/src/system/weston/weston.png -------------------------------------------------------------------------------- /src/system/weston/weston.service: -------------------------------------------------------------------------------- 1 | # This is a system unit for launching Weston with auto-login as the 2 | # user configured here. 3 | # 4 | # Weston must be built with systemd support, and your weston.ini must load 5 | # the plugin systemd-notify.so. 6 | [Unit] 7 | Description=Weston, a Wayland compositor, as a system service 8 | Documentation=man:weston(1) man:weston.ini(5) 9 | Documentation=http://wayland.freedesktop.org/ 10 | 11 | # Make sure we are started after logins are permitted. 12 | Requires=systemd-user-sessions.service 13 | After=systemd-user-sessions.service 14 | 15 | # If Plymouth is used, we want to start when it is on its way out. 16 | After=plymouth-quit-wait.service 17 | 18 | # D-Bus is necessary for contacting logind. Logind is required. 19 | Wants=dbus.socket 20 | After=dbus.socket 21 | 22 | # Ensure the socket is present 23 | Requires=weston.socket 24 | 25 | # Since we are part of the graphical session, make sure we are started before 26 | # it is complete. 27 | Before=graphical.target 28 | 29 | # Prevent starting on systems without virtual consoles, Weston requires one 30 | # for now. 31 | ConditionPathExists=/dev/tty0 32 | 33 | [Service] 34 | # Requires systemd-notify.so Weston plugin. 35 | Type=notify 36 | EnvironmentFile=/etc/default/weston 37 | ExecStart=/usr/bin/weston --log=${XDG_RUNTIME_DIR}/weston.log --modules=systemd-notify.so 38 | 39 | # Optional watchdog setup 40 | #TimeoutStartSec=60 41 | #WatchdogSec=20 42 | 43 | # The user to run Weston as. 44 | User=root 45 | Group=root 46 | 47 | # Make sure the working directory is the users home directory 48 | WorkingDirectory=/home/weston 49 | 50 | # Set up a full user session for the user, required by Weston. 51 | PAMName=weston-autologin 52 | 53 | # A virtual terminal is needed. 54 | TTYPath=/dev/tty7 55 | TTYReset=yes 56 | TTYVHangup=yes 57 | TTYVTDisallocate=yes 58 | 59 | # Fail to start if not controlling the tty. 60 | StandardInput=tty-fail 61 | StandardOutput=journal 62 | StandardError=journal 63 | 64 | # Log this user with utmp, letting it show up with commands 'w' and 'who'. 65 | UtmpIdentifier=tty7 66 | UtmpMode=user 67 | 68 | [Install] 69 | # Note: If you only want weston to start on-demand, remove this line with a 70 | # service drop file 71 | WantedBy=graphical.target 72 | -------------------------------------------------------------------------------- /tools/clean_components: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Copyright 2021 NXP 4 | # 5 | # SPDX-License-Identifier: BSD-3-Clause 6 | 7 | 8 | clean_bsp_components() { 9 | rm -rf $FBOUTDIR/bsp 10 | rm -rf $PKGDIR/bsp/atf/build 11 | 12 | [ -d $PKGDIR/bsp/rcw ] && \ 13 | $MAKE clean -C $PKGDIR/bsp/rcw 2>/dev/null 14 | 15 | [ -d $PKGDIR/bsp/mc_utils/config ] && 16 | $MAKE clean -C $PKGDIR/bsp/mc_utils/config 17 | } 18 | 19 | 20 | clean_linux_components() { 21 | rm -rf $FBOUTDIR/linux 22 | } 23 | 24 | 25 | clean_apps_components() { 26 | # staging build directory 27 | rm -rf $DESTDIR 28 | 29 | [ -d $PKGDIR/apps/networking/vpp/build-root ] && \ 30 | $MAKE distclean -C $PKGDIR/apps/networking/vpp/build-root 31 | 32 | [ -d $PKGDIR/apps/networking/fmc/source ] && \ 33 | $MAKE clean -C $PKGDIR/apps/networking/fmc/source 34 | 35 | [ -d $PKGDIR/apps/security/optee_os ] && \ 36 | $MAKE clean -C $PKGDIR/apps/security/optee_os ARCH=arm 37 | 38 | [ -d $PKGDIR/apps/security/optee_client ] && \ 39 | rm -rf $PKGDIR/apps/security/optee_client/out 40 | 41 | [ -d $PKGDIR/apps/security/keyctl_caam ] && \ 42 | $MAKE clean -C $PKGDIR/apps/security/keyctl_caam 43 | 44 | [ -d $PKGDIR/apps/security/libpkcs11 ] && \ 45 | $MAKE clean -C $PKGDIR/apps/security/libpkcs11 46 | 47 | rm -rf $PKGDIR/apps/security/optee_test/out 48 | 49 | find $PKGDIR/apps -name build_${DISTROTYPE}_$ARCH | xargs rm -rf 50 | rm -f $FBOUTDIR/apps/.app${DESTARCH}${DISTROTYPE}${DISTROVARIANT}${SOCFAMILY} 51 | } 52 | -------------------------------------------------------------------------------- /tools/parse_yaml: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | function parse_yaml { 4 | local prefix=$2 5 | local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034') 6 | sed -ne "s|,$s\]$s\$|]|" \ 7 | -e ":1;s|^\($s\)\($w\)$s:$s\[$s\(.*\)$s,$s\(.*\)$s\]|\1\2: [\3]\n\1 - \4|;t1" \ 8 | -e "s|^\($s\)\($w\)$s:$s\[$s\(.*\)$s\]|\1\2:\n\1 - \3|;p" $1 | \ 9 | sed -ne "s|,$s}$s\$|}|" \ 10 | -e ":1;s|^\($s\)-$s{$s\(.*\)$s,$s\($w\)$s:$s\(.*\)$s}|\1- {\2}\n\1 \3: \4|;t1" \ 11 | -e "s|^\($s\)-$s{$s\(.*\)$s}|\1-\n\1 \2|;p" | \ 12 | sed -ne "s|^\($s\):|\1|" \ 13 | -e "s|^\($s\)-$s[\"']\(.*\)[\"']$s\$|\1$fs$fs\2|p" \ 14 | -e "s|^\($s\)-$s\(.*\)$s\$|\1$fs$fs\2|p" \ 15 | -e "s|^\($s\)\($w\)$s:$s[\"']\(.*\)[\"']$s\$|\1$fs\2$fs\3|p" \ 16 | -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" | \ 17 | awk -F$fs '{ 18 | indent = length($1)/2; 19 | vname[indent] = $2; 20 | for (i in vname) {if (i > indent) {delete vname[i]; idx[i]=0}} 21 | if(length($2)== 0){ vname[indent]= ++idx[indent] }; 22 | if (length($3) > 0) { 23 | vn=""; for (i=0; i