Merge branch 'dey-3.0/master' into dey-3.0/maint
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
This commit is contained in:
commit
e0055ce0cb
|
|
@ -13,6 +13,15 @@ LAYERDEPENDS_digi-arm = "core freescale-layer"
|
||||||
|
|
||||||
LAYERSERIES_COMPAT_digi-arm = "zeus"
|
LAYERSERIES_COMPAT_digi-arm = "zeus"
|
||||||
|
|
||||||
|
# Define new EULAs and add them to the list defined in meta-freescale.
|
||||||
|
# See fsl-eula-unpack.bbclass.
|
||||||
|
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V13 = "1b4db4b25c3a1e422c0c0ed64feb65d2"
|
||||||
|
FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V15 = "983e4c77621568488dd902b27e0c2143"
|
||||||
|
FSL_EULA_FILE_MD5SUMS_append = " \
|
||||||
|
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V13} \
|
||||||
|
${FSL_EULA_FILE_MD5SUM_LA_OPT_NXP_SOFTWARE_LICENSE_V15} \
|
||||||
|
"
|
||||||
|
|
||||||
# Digi's General and Open Source license agreements
|
# Digi's General and Open Source license agreements
|
||||||
DIGI_EULA_FILE = "${LAYERDIR}/DIGI_EULA"
|
DIGI_EULA_FILE = "${LAYERDIR}/DIGI_EULA"
|
||||||
DIGI_OPEN_EULA_FILE = "${LAYERDIR}/DIGI_OPEN_EULA"
|
DIGI_OPEN_EULA_FILE = "${LAYERDIR}/DIGI_OPEN_EULA"
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ UBOOT_DTB_NAME = "ccimx8mn-dvk.dtb"
|
||||||
KERNEL_DEVICETREE ?= " \
|
KERNEL_DEVICETREE ?= " \
|
||||||
digi/ccimx8mn-dvk.dtb \
|
digi/ccimx8mn-dvk.dtb \
|
||||||
digi/_ov_board_lvds_ccimx8mn-dvk.dtbo \
|
digi/_ov_board_lvds_ccimx8mn-dvk.dtbo \
|
||||||
|
digi/_ov_board_user-leds_ccimx8mn-dvk.dtbo \
|
||||||
digi/_ov_board_v1-v2_ccimx8mn-dvk.dtbo \
|
digi/_ov_board_v1-v2_ccimx8mn-dvk.dtbo \
|
||||||
digi/_ov_som_bt_ccimx8mn.dtbo \
|
digi/_ov_som_bt_ccimx8mn.dtbo \
|
||||||
digi/_ov_som_mca-keypad_ccimx8mn.dtbo \
|
digi/_ov_som_mca-keypad_ccimx8mn.dtbo \
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ KERNEL_DEVICETREE ?= " \
|
||||||
digi/_ov_board_parallel-camera_ccimx8x-sbc-pro.dtbo \
|
digi/_ov_board_parallel-camera_ccimx8x-sbc-pro.dtbo \
|
||||||
digi/_ov_board_pcie-card_ccimx8x-sbc-pro.dtbo \
|
digi/_ov_board_pcie-card_ccimx8x-sbc-pro.dtbo \
|
||||||
digi/_ov_board_pcie-modem_ccimx8x-sbc-pro.dtbo \
|
digi/_ov_board_pcie-modem_ccimx8x-sbc-pro.dtbo \
|
||||||
|
digi/_ov_board_user-leds_ccimx8x-sbc-pro.dtbo \
|
||||||
digi/_ov_board_v1-v3_ccimx8x-sbc-pro.dtbo \
|
digi/_ov_board_v1-v3_ccimx8x-sbc-pro.dtbo \
|
||||||
digi/_ov_som_bt_ccimx8x.dtbo \
|
digi/_ov_som_bt_ccimx8x.dtbo \
|
||||||
digi/_ov_som_mca-keypad_ccimx8x.dtbo \
|
digi/_ov_som_mca-keypad_ccimx8x.dtbo \
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ include conf/machine/include/tune-cortexa7.inc
|
||||||
# Platform u-boot settings
|
# Platform u-boot settings
|
||||||
UBOOT_PREFIX = "u-boot"
|
UBOOT_PREFIX = "u-boot"
|
||||||
UBOOT_SUFFIX = "imx"
|
UBOOT_SUFFIX = "imx"
|
||||||
|
UBOOT_HAS_FASTBOOT = "true"
|
||||||
|
|
||||||
STORAGE_MEDIA = "mtd"
|
STORAGE_MEDIA = "mtd"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ MACHINE_EXTRA_RRECOMMENDS += " \
|
||||||
${WIRELESS_MODULE} \
|
${WIRELESS_MODULE} \
|
||||||
"
|
"
|
||||||
|
|
||||||
MACHINE_FEATURES += "accel-graphics accel-video wifi bluetooth cryptochip mca"
|
MACHINE_FEATURES += "accel-graphics accel-video wifi bluetooth cryptochip mca optee"
|
||||||
|
|
||||||
# AARCH64 doesn't support self-extracting zImage
|
# AARCH64 doesn't support self-extracting zImage
|
||||||
KERNEL_IMAGETYPE = "Image.gz"
|
KERNEL_IMAGETYPE = "Image.gz"
|
||||||
|
|
@ -60,8 +60,6 @@ VIRTUAL-RUNTIME_initscripts ?= "initscripts"
|
||||||
|
|
||||||
# TrustFence
|
# TrustFence
|
||||||
TRUSTFENCE_SIGN_MODE = "HAB"
|
TRUSTFENCE_SIGN_MODE = "HAB"
|
||||||
# TODO: Encryption not yet supported
|
|
||||||
TRUSTFENCE_DEK_PATH = "0"
|
|
||||||
|
|
||||||
# Adding 'wayland' along with 'x11' enables the xwayland backend
|
# Adding 'wayland' along with 'x11' enables the xwayland backend
|
||||||
# Vulkan is necessary for wayland to build
|
# Vulkan is necessary for wayland to build
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,15 @@
|
||||||
|
|
||||||
DESCRIPTION = "i.MX System Controller Firmware, customized for Digi platforms"
|
DESCRIPTION = "i.MX System Controller Firmware, customized for Digi platforms"
|
||||||
LICENSE = "Proprietary"
|
LICENSE = "Proprietary"
|
||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=1b4db4b25c3a1e422c0c0ed64feb65d2"
|
LIC_FILES_CHKSUM = "file://COPYING;md5=983e4c77621568488dd902b27e0c2143"
|
||||||
SECTION = "BSP"
|
SECTION = "BSP"
|
||||||
|
|
||||||
inherit pkgconfig deploy
|
inherit pkgconfig deploy
|
||||||
|
|
||||||
SRC_URI = "${DIGI_PKG_SRC}/${BPN}-${PV}.tar.gz"
|
SRC_URI = "${DIGI_PKG_SRC}/${BPN}-${PV}.tar.gz"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "e9bb8ca081eeec038315de9e6110a3d7"
|
SRC_URI[md5sum] = "0059e04701ba4fe4436610eef680907d"
|
||||||
SRC_URI[sha256sum] = "2d107e56368447c26e73338e90e0c691fceed22682e1907f7f512d1a5a452b91"
|
SRC_URI[sha256sum] = "1776a5eeae3641cff8fe8dc16d78219e758cd30b12efdb7223bc31c34ae1580d"
|
||||||
|
|
||||||
S = "${WORKDIR}/${PN}-${PV}"
|
S = "${WORKDIR}/${PN}-${PV}"
|
||||||
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# firmware loader script
|
# firmware loader script
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# firmware loader script
|
# firmware loader script
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# firmware loader script
|
# firmware loader script
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# firmware loader script
|
# firmware loader script
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,14 @@
|
||||||
# Copyright (C) 2018 O.S. Systems Software LTDA.
|
# Copyright (C) 2018 O.S. Systems Software LTDA.
|
||||||
SECTION = "base"
|
SECTION = "base"
|
||||||
LICENSE = "Proprietary"
|
LICENSE = "Proprietary"
|
||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9"
|
LIC_FILES_CHKSUM = "file://COPYING;md5=983e4c77621568488dd902b27e0c2143"
|
||||||
|
|
||||||
SRC_URI = " \
|
SRC_URI = " \
|
||||||
${FSL_MIRROR}/firmware-imx-${PV}.bin;fsl-eula=true \
|
${FSL_MIRROR}/firmware-imx-${PV}.bin;fsl-eula=true \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "eabb27d28bba375a9f14d6306c07af5f"
|
SRC_URI[md5sum] = "7b36242be60a882f9b5f74bb6e2c6aa1"
|
||||||
SRC_URI[sha256sum] = "5ca1f8b6e6b191594d17ac7b51c38cdbc2ff808d15568ab4b0bbeb5dc6c621f6"
|
SRC_URI[sha256sum] = "a72f70fd2ecaa58800bb88ed672fddc322ab9843ee7777eb89b82016b0aa3614"
|
||||||
|
|
||||||
S = "${WORKDIR}/firmware-imx-${PV}"
|
S = "${WORKDIR}/firmware-imx-${PV}"
|
||||||
|
|
||||||
|
|
@ -107,11 +107,6 @@ PACKAGES_DYNAMIC = "${PN}-vpu-* ${PN}-sdma-*"
|
||||||
|
|
||||||
PACKAGES =+ "${PN}-epdc ${PN}-sdma ${PN}-easrc ${PN}-regulatory ${PN}-hdmi ${PN}-xcvr ${PN}-xuvi"
|
PACKAGES =+ "${PN}-epdc ${PN}-sdma ${PN}-easrc ${PN}-regulatory ${PN}-hdmi ${PN}-xcvr ${PN}-xuvi"
|
||||||
|
|
||||||
RDEPENDS_${PN}-epdc = "bash"
|
|
||||||
RDEPENDS_${PN}-sdma = "bash"
|
|
||||||
RDEPENDS_${PN}-regulatory = "bash"
|
|
||||||
RDEPENDS_${PN}-hdmi = "bash"
|
|
||||||
|
|
||||||
FILES_${PN}-epdc = "${base_libdir}/firmware/imx/epdc/ ${sysconfdir}/epdc ${systemd_system_unitdir}/epdc-firmware.service"
|
FILES_${PN}-epdc = "${base_libdir}/firmware/imx/epdc/ ${sysconfdir}/epdc ${systemd_system_unitdir}/epdc-firmware.service"
|
||||||
FILES_${PN}-scfw = "${base_libdir}/firmware/scfw/"
|
FILES_${PN}-scfw = "${base_libdir}/firmware/scfw/"
|
||||||
FILES_${PN}-sdma = "${base_libdir}/firmware/imx/sdma ${sysconfdir}/sdma ${systemd_system_unitdir}/sdma-firmware.service"
|
FILES_${PN}-sdma = "${base_libdir}/firmware/imx/sdma ${sysconfdir}/sdma ${systemd_system_unitdir}/sdma-firmware.service"
|
||||||
Binary file not shown.
|
|
@ -7,11 +7,11 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD-3-Clause;m
|
||||||
|
|
||||||
PV .= "+git${SRCPV}"
|
PV .= "+git${SRCPV}"
|
||||||
|
|
||||||
SRCBRANCH = "imx_5.4.24_2.1.0"
|
SRCBRANCH = "imx_5.4.47_2.2.0"
|
||||||
ATF_SRC ?= "git://source.codeaurora.org/external/imx/imx-atf.git;protocol=https"
|
ATF_SRC ?= "git://source.codeaurora.org/external/imx/imx-atf.git;protocol=https"
|
||||||
SRC_URI = "${ATF_SRC};branch=${SRCBRANCH} \
|
SRC_URI = "${ATF_SRC};branch=${SRCBRANCH} \
|
||||||
"
|
"
|
||||||
SRCREV = "b0a00f22b09c13572d3e87902a1069dee34763bd"
|
SRCREV = "c949a888e909811db191500c51456391dff61284"
|
||||||
|
|
||||||
SRC_URI_append_ccimx8mn = " file://0001-imx8mn-Disable-M7-debug-console.patch"
|
SRC_URI_append_ccimx8mn = " file://0001-imx8mn-Disable-M7-debug-console.patch"
|
||||||
|
|
||||||
|
|
@ -22,7 +22,7 @@ inherit deploy
|
||||||
BOOT_TOOLS = "imx-boot-tools"
|
BOOT_TOOLS = "imx-boot-tools"
|
||||||
|
|
||||||
PLATFORM ?= "INVALID"
|
PLATFORM ?= "INVALID"
|
||||||
PLATFORM_imx8dxlevk = "imx8dxl"
|
PLATFORM_mx8dxl = "imx8dxl"
|
||||||
PLATFORM_mx8dx = "imx8dx"
|
PLATFORM_mx8dx = "imx8dx"
|
||||||
PLATFORM_mx8dxlevk-phantom = "imx8qx"
|
PLATFORM_mx8dxlevk-phantom = "imx8qx"
|
||||||
PLATFORM_mx8mm = "imx8mm"
|
PLATFORM_mx8mm = "imx8mm"
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,7 @@ SOC_FAMILY_mx8x = "mx8x"
|
||||||
|
|
||||||
REV_OPTION ?= ""
|
REV_OPTION ?= ""
|
||||||
REV_OPTION_mx8qxpc0 = "REV=C0"
|
REV_OPTION_mx8qxpc0 = "REV=C0"
|
||||||
|
REV_OPTION_mx8phantomdxl = "REV=C0"
|
||||||
|
|
||||||
compile_mx8m() {
|
compile_mx8m() {
|
||||||
bbnote 8MQ/8MM boot binary build
|
bbnote 8MQ/8MM boot binary build
|
||||||
|
|
@ -126,9 +127,9 @@ compile_mx8() {
|
||||||
cp ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \
|
cp ${DEPLOY_DIR_IMAGE}/u-boot-spl.bin-${MACHINE}-${UBOOT_CONFIG} \
|
||||||
${BOOT_STAGING}/u-boot-spl.bin
|
${BOOT_STAGING}/u-boot-spl.bin
|
||||||
fi
|
fi
|
||||||
cp ${DEPLOY_DIR_IMAGE}/imx8qm_m4_0_TCM_power_mode_switch_m40.bin \
|
cp ${DEPLOY_DIR_IMAGE}/imx8qm_m4_TCM_power_mode_switch_m40.bin \
|
||||||
${BOOT_STAGING}/m4_image.bin
|
${BOOT_STAGING}/m4_image.bin
|
||||||
cp ${DEPLOY_DIR_IMAGE}/imx8qm_m4_1_TCM_power_mode_switch_m41.bin \
|
cp ${DEPLOY_DIR_IMAGE}/imx8qm_m4_TCM_power_mode_switch_m41.bin \
|
||||||
${BOOT_STAGING}/m4_1_image.bin
|
${BOOT_STAGING}/m4_1_image.bin
|
||||||
cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING}
|
cp ${DEPLOY_DIR_IMAGE}/${SECO_FIRMWARE_NAME} ${BOOT_STAGING}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,10 @@ mkimage is compatible for this use, and using it saves us from having to \
|
||||||
maintain a custom recipe."
|
maintain a custom recipe."
|
||||||
ln -sf ${STAGING_DIR_NATIVE}${bindir}/mkimage ${BOOT_STAGING}/mkimage_uboot
|
ln -sf ${STAGING_DIR_NATIVE}${bindir}/mkimage ${BOOT_STAGING}/mkimage_uboot
|
||||||
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
|
cp ${DEPLOY_DIR_IMAGE}/${BOOT_TOOLS}/${ATF_MACHINE_NAME} ${BOOT_STAGING}/bl31.bin
|
||||||
|
# Create dummy DEK blob
|
||||||
|
if [ "${TRUSTFENCE_DEK_PATH}" != "0" ]; then
|
||||||
|
dd if=/dev/zero of=${BOOT_STAGING}/dek_blob_fit_dummy.bin bs=96 count=1 && sync
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
do_compile () {
|
do_compile () {
|
||||||
|
|
@ -216,6 +220,12 @@ do_deploy_append () {
|
||||||
# Link to current "target" mkimage log
|
# Link to current "target" mkimage log
|
||||||
ln -sf mkimage-${target}.log mkimage.log
|
ln -sf mkimage-${target}.log mkimage.log
|
||||||
trustfence-sign-uboot.sh ${DEPLOYDIR}/${UBOOT_PREFIX}-${MACHINE}.bin-${target} ${DEPLOYDIR}/${UBOOT_PREFIX}-signed-${MACHINE}.bin-${target}
|
trustfence-sign-uboot.sh ${DEPLOYDIR}/${UBOOT_PREFIX}-${MACHINE}.bin-${target} ${DEPLOYDIR}/${UBOOT_PREFIX}-signed-${MACHINE}.bin-${target}
|
||||||
|
|
||||||
|
if [ "${TRUSTFENCE_DEK_PATH}" != "0" ]; then
|
||||||
|
export ENABLE_ENCRYPTION=y
|
||||||
|
trustfence-sign-uboot.sh ${DEPLOYDIR}/${UBOOT_PREFIX}-${MACHINE}.bin-${target} ${DEPLOYDIR}/${UBOOT_PREFIX}-encrypted-${MACHINE}.bin-${target}
|
||||||
|
unset ENABLE_ENCRYPTION
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
for ramc in ${UBOOT_RAM_COMBINATIONS}; do
|
for ramc in ${UBOOT_RAM_COMBINATIONS}; do
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
DEPENDS = "zlib openssl"
|
DEPENDS = "zlib openssl"
|
||||||
|
|
||||||
SRCBRANCH = "imx_5.4.24_2.1.0"
|
SRCBRANCH = "imx_5.4.47_2.2.0"
|
||||||
IMX_MKIMAGE_SRC ?= "git://source.codeaurora.org/external/imx/imx-mkimage.git;protocol=https"
|
IMX_MKIMAGE_SRC ?= "git://source.codeaurora.org/external/imx/imx-mkimage.git;protocol=https"
|
||||||
SRC_URI = "${IMX_MKIMAGE_SRC};branch=${SRCBRANCH}"
|
SRC_URI = "${IMX_MKIMAGE_SRC};branch=${SRCBRANCH}"
|
||||||
SRCREV = "6745ccdcf15384891639b7ced3aa6ce938682365"
|
SRCREV = "8da5cd231881df44b5fa21a36820536d86e413db"
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
BOOT_TOOLS = "imx-boot-tools"
|
BOOT_TOOLS = "imx-boot-tools"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
From 9e89d173a7fab97c913960344ae01dfa409b6258 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cristinel Panfir <cristinel.panfir@nxp.com>
|
||||||
|
Date: Mon, 27 Jul 2020 18:55:30 +0000
|
||||||
|
Subject: [PATCH] Makefile: Fix LIBDIR for multilib
|
||||||
|
|
||||||
|
Signed-off-by: Cristinel Panfir <cristinel.panfir@nxp.com>
|
||||||
|
---
|
||||||
|
Makefile | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile
|
||||||
|
index b16cebf..492d700 100644
|
||||||
|
--- a/Makefile
|
||||||
|
+++ b/Makefile
|
||||||
|
@@ -4,7 +4,8 @@ all: she_test hsm_test v2x_test she_lib.a seco_nvm_manager.a sm_lib.a
|
||||||
|
CFLAGS = -O1 -Werror -fPIC
|
||||||
|
DESTDIR ?= export
|
||||||
|
BINDIR ?= /usr/bin
|
||||||
|
-LIBDIR ?= /usr/lib
|
||||||
|
+base_libdir ?= /lib
|
||||||
|
+LIBDIR ?= /usr/$(base_libdir)
|
||||||
|
INCLUDEDIR ?= /usr/include
|
||||||
|
|
||||||
|
ifdef COVERAGE
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
@ -8,10 +8,12 @@ LIC_FILES_CHKSUM = "file://EULA.txt;md5=228c72f2a91452b8a03c4cab30f30ef9"
|
||||||
|
|
||||||
DEPENDS = "zlib"
|
DEPENDS = "zlib"
|
||||||
|
|
||||||
SRCBRANCH = "imx_5.4.24_2.1.0"
|
SRCBRANCH = "imx_5.4.47_2.2.0"
|
||||||
SECO_LIB_SRC ?= "git://github.com/NXP/imx-seco-libs.git;protocol=https"
|
SECO_LIB_SRC ?= "git://github.com/NXP/imx-seco-libs.git;protocol=https"
|
||||||
SRC_URI = "${SECO_LIB_SRC};branch=${SRCBRANCH}"
|
SRC_URI = "${SECO_LIB_SRC};branch=${SRCBRANCH} \
|
||||||
SRCREV = "a4faaa474e49fa0d3668db466739834fe45a6767"
|
file://0001-Makefile-Fix-LIBDIR-for-multilib.patch \
|
||||||
|
"
|
||||||
|
SRCREV = "5932c1e5240eb36c3cddc7bcbdc7abd9bd8b562c"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ SECO_FIRMWARE_NAME ?= "UNSUPPORTED"
|
||||||
SECO_FIRMWARE_NAME_mx8qm = "mx8qmb0-ahab-container.img"
|
SECO_FIRMWARE_NAME_mx8qm = "mx8qmb0-ahab-container.img"
|
||||||
SECO_FIRMWARE_NAME_mx8qxp = "mx8qxb0-ahab-container.img"
|
SECO_FIRMWARE_NAME_mx8qxp = "mx8qxb0-ahab-container.img"
|
||||||
SECO_FIRMWARE_NAME_mx8qxpc0 = "mx8qxc0-ahab-container.img"
|
SECO_FIRMWARE_NAME_mx8qxpc0 = "mx8qxc0-ahab-container.img"
|
||||||
SECO_FIRMWARE_NAME_mx8phantomdxl = "mx8qxb0-ahab-container.img"
|
SECO_FIRMWARE_NAME_mx8phantomdxl = "mx8qxc0-ahab-container.img"
|
||||||
SECO_FIRMWARE_NAME_mx8dxl = "mx8dxla0-ahab-container.img"
|
SECO_FIRMWARE_NAME_mx8dxl = "mx8dxla0-ahab-container.img"
|
||||||
|
|
||||||
# For the ccimx8x, we generate images for both the B0 and the C0 revisions of
|
# For the ccimx8x, we generate images for both the B0 and the C0 revisions of
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,15 @@ SUMMARY = "NXP i.MX SECO firmware"
|
||||||
DESCRIPTION = "NXP IMX SECO firmware"
|
DESCRIPTION = "NXP IMX SECO firmware"
|
||||||
SECTION = "base"
|
SECTION = "base"
|
||||||
LICENSE = "Proprietary"
|
LICENSE = "Proprietary"
|
||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9"
|
LIC_FILES_CHKSUM = "file://COPYING;md5=983e4c77621568488dd902b27e0c2143"
|
||||||
|
|
||||||
require imx-seco.inc
|
require imx-seco.inc
|
||||||
inherit fsl-eula-unpack deploy
|
inherit fsl-eula-unpack deploy
|
||||||
|
|
||||||
SRC_URI = "${FSL_MIRROR}/${BP}.bin;fsl-eula=true"
|
SRC_URI = "${FSL_MIRROR}/${BP}.bin;fsl-eula=true"
|
||||||
|
|
||||||
SRC_URI[md5sum] = "22a47e14e3f2e713b4b1b2b7ff768b11"
|
SRC_URI[md5sum] = "29d563790bf46629a083ba031a7de46d"
|
||||||
SRC_URI[sha256sum] = "52ba07633e0f8707d8c26724b5cd03ef96444c8de1e0e134acac50acacf3e7dd"
|
SRC_URI[sha256sum] = "b09f63139df6c4dfef3533570cd60b22eb4c48eed05f314268178e80b8de40fc"
|
||||||
|
|
||||||
do_compile[noexec] = "1"
|
do_compile[noexec] = "1"
|
||||||
|
|
||||||
|
|
@ -28,6 +28,4 @@ do_install() {
|
||||||
oe_runmake PLATFORM="${PLATFORM}" DEST_DIR="${D}" install
|
oe_runmake PLATFORM="${PLATFORM}" DEST_DIR="${D}" install
|
||||||
}
|
}
|
||||||
|
|
||||||
# Compatible only for i.MX with Chips&Media VPU
|
COMPATIBLE_MACHINE = "(mx6q|mx6dl)"
|
||||||
COMPATIBLE_MACHINE = "(^$)"
|
|
||||||
COMPATIBLE_MACHINE_imxvpucnm = "${MACHINE}"
|
|
||||||
|
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
||||||
# Copyright (C) 2017-2019 Digi International
|
|
||||||
SUMMARY = "NXP Code signing Tool for the High Assurance Boot library"
|
|
||||||
DESCRIPTION = "Provides software code signing support designed for use with \
|
|
||||||
i.MX processors that integrate the HAB library in the internal boot ROM."
|
|
||||||
HOMEPAGE = "https://www.nxp.com/webapp/Download?colCode=IMX_CST_TOOL"
|
|
||||||
LICENSE = "CLOSED"
|
|
||||||
|
|
||||||
DEPENDS = "openssl byacc flex"
|
|
||||||
|
|
||||||
# Explicitly add byacc-native as a dependency when building the package for the
|
|
||||||
# SDK, otherwise, it won't get installed in the sysroot, causing a compilation
|
|
||||||
# error.
|
|
||||||
# Explicitly add openssl-native for the SDK build to correctly link to the
|
|
||||||
# openssl libraries in the native dependencies folder.
|
|
||||||
DEPENDS_append_class-nativesdk = " byacc-native openssl-native"
|
|
||||||
|
|
||||||
SRC_URI = " \
|
|
||||||
${@oe.utils.conditional('TRUSTFENCE_SIGN', '1', 'file://cst-${PV}.tgz', '', d)} \
|
|
||||||
file://0001-gen_auth_encrypted_data-reuse-existing-DEK-file.patch \
|
|
||||||
file://0002-hab4_pki_tree.sh-automate-script.patch \
|
|
||||||
file://0003-openssl_helper-use-dev-urandom-as-seed-source.patch \
|
|
||||||
file://0004-hab4_pki_tree.sh-usa-a-random-password-for-the-defau.patch \
|
|
||||||
file://0005-ahab_pki_tree.sh-automate-script.patch \
|
|
||||||
file://0006-ahab_pki_tree.sh-use-a-random-password-for-the-defau.patch \
|
|
||||||
file://0007-Makefile-statically-link-libcrypto.patch \
|
|
||||||
"
|
|
||||||
|
|
||||||
# Usually local files (with file:// protocol) are not checked for
|
|
||||||
# premirrors. But in this case we want to be able to download the 'cst'
|
|
||||||
# package from a premirror in case it's not already in the DL_DIR, so prepend
|
|
||||||
# a premirror for the 'file://' protocol.
|
|
||||||
python() {
|
|
||||||
source_mirror_url = d.getVar('SOURCE_MIRROR_URL', True)
|
|
||||||
if source_mirror_url:
|
|
||||||
premirrors = d.getVar('PREMIRRORS', True)
|
|
||||||
d.setVar('PREMIRRORS', "file://cst.* %s \\n %s" % (source_mirror_url, premirrors))
|
|
||||||
}
|
|
||||||
|
|
||||||
S = "${WORKDIR}/cst-${PV}/"
|
|
||||||
|
|
||||||
do_compile() {
|
|
||||||
export LDLIBPATH=-L${WORKDIR}/recipe-sysroot-native/usr/lib
|
|
||||||
export COPTIONS=-I${WORKDIR}/recipe-sysroot-native/usr/include
|
|
||||||
cd ${S}/code/cst
|
|
||||||
oe_runmake OSTYPE=linux64 clean
|
|
||||||
oe_runmake OSTYPE=linux64 rel_bin
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install() {
|
|
||||||
install -d ${D}${bindir}
|
|
||||||
install -m 0755 $(find ${S}/code/cst/release/linux64 -type f -name cst) ${D}${bindir}/cst
|
|
||||||
install -m 0755 $(find ${S}/code/cst/release/linux64 -type f -name srktool) ${D}${bindir}/srktool
|
|
||||||
if [ "${TRUSTFENCE_SIGN_MODE}" = "AHAB" ]; then
|
|
||||||
install -m 0755 keys/ahab_pki_tree.sh ${D}${bindir}/trustfence-gen-pki.sh
|
|
||||||
elif [ "${TRUSTFENCE_SIGN_MODE}" = "HAB" ]; then
|
|
||||||
install -m 0755 keys/hab4_pki_tree.sh ${D}${bindir}/trustfence-gen-pki.sh
|
|
||||||
else
|
|
||||||
bberror "Unkown TRUSTFENCE_SIGN_MODE value"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
install -m 0755 ca/openssl.cnf ${D}${bindir}/openssl.cnf
|
|
||||||
install -m 0755 ca/v3_ca.cnf ${D}${bindir}/v3_ca.cnf
|
|
||||||
install -m 0755 ca/v3_usr.cnf ${D}${bindir}/v3_usr.cnf
|
|
||||||
}
|
|
||||||
|
|
||||||
INSANE_SKIP_${PN} += "already-stripped"
|
|
||||||
|
|
||||||
FILES_${PN} = "${bindir}"
|
|
||||||
BBCLASSEXTEND = "native nativesdk"
|
|
||||||
|
|
@ -1,3 +1,62 @@
|
||||||
# Copyright (C) 2019 Digi International
|
# Copyright (C) 2017-2020 Digi International
|
||||||
|
SUMMARY = "NXP Code signing Tool for the High Assurance Boot library"
|
||||||
|
DESCRIPTION = "Provides software code signing support designed for use with \
|
||||||
|
i.MX processors that integrate the HAB library in the internal boot ROM."
|
||||||
|
HOMEPAGE = "https://www.nxp.com/webapp/Download?colCode=IMX_CST_TOOL"
|
||||||
|
LICENSE = "BSD-3-Clause"
|
||||||
|
LIC_FILES_CHKSUM = "file://LICENSE.bsd3;md5=1fbcd66ae51447aa94da10cbf6271530"
|
||||||
|
|
||||||
require trustfence-cst.inc
|
DEPENDS = "openssl byacc flex"
|
||||||
|
|
||||||
|
# Explicitly add byacc-native as a dependency when building the package for the
|
||||||
|
# SDK, otherwise, it won't get installed in the sysroot, causing a compilation
|
||||||
|
# error.
|
||||||
|
# Explicitly add openssl-native for the SDK build to correctly link to the
|
||||||
|
# openssl libraries in the native dependencies folder.
|
||||||
|
DEPENDS_append_class-nativesdk = " byacc-native openssl-native"
|
||||||
|
|
||||||
|
SRC_URI = " \
|
||||||
|
${@oe.utils.conditional('TRUSTFENCE_SIGN', '1', '${DIGI_PKG_SRC}/cst-${PV}.tgz', '', d)} \
|
||||||
|
file://0001-gen_auth_encrypted_data-reuse-existing-DEK-file.patch \
|
||||||
|
file://0002-hab4_pki_tree.sh-automate-script.patch \
|
||||||
|
file://0003-openssl_helper-use-dev-urandom-as-seed-source.patch \
|
||||||
|
file://0004-hab4_pki_tree.sh-usa-a-random-password-for-the-defau.patch \
|
||||||
|
file://0005-ahab_pki_tree.sh-automate-script.patch \
|
||||||
|
file://0006-ahab_pki_tree.sh-use-a-random-password-for-the-defau.patch \
|
||||||
|
file://0007-Makefile-statically-link-libcrypto.patch \
|
||||||
|
"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "27ba9c8bc0b8a7f14d23185775c53794"
|
||||||
|
SRC_URI[sha256sum] = "8b7e44e3e126f814f5caf8a634646fe64021405302ca59ff02f5c8f3b9a5abb9"
|
||||||
|
|
||||||
|
S = "${WORKDIR}/cst-${PV}/"
|
||||||
|
|
||||||
|
do_compile() {
|
||||||
|
export LDLIBPATH=-L${WORKDIR}/recipe-sysroot-native/usr/lib
|
||||||
|
export COPTIONS=-I${WORKDIR}/recipe-sysroot-native/usr/include
|
||||||
|
cd ${S}/code/cst
|
||||||
|
oe_runmake OSTYPE=linux64 clean
|
||||||
|
oe_runmake OSTYPE=linux64 rel_bin
|
||||||
|
}
|
||||||
|
|
||||||
|
do_install() {
|
||||||
|
install -d ${D}${bindir}
|
||||||
|
install -m 0755 $(find ${S}/code/cst/release/linux64 -type f -name cst) ${D}${bindir}/cst
|
||||||
|
install -m 0755 $(find ${S}/code/cst/release/linux64 -type f -name srktool) ${D}${bindir}/srktool
|
||||||
|
if [ "${TRUSTFENCE_SIGN_MODE}" = "AHAB" ]; then
|
||||||
|
install -m 0755 keys/ahab_pki_tree.sh ${D}${bindir}/trustfence-gen-pki.sh
|
||||||
|
elif [ "${TRUSTFENCE_SIGN_MODE}" = "HAB" ]; then
|
||||||
|
install -m 0755 keys/hab4_pki_tree.sh ${D}${bindir}/trustfence-gen-pki.sh
|
||||||
|
else
|
||||||
|
bberror "Unkown TRUSTFENCE_SIGN_MODE value"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
install -m 0755 ca/openssl.cnf ${D}${bindir}/openssl.cnf
|
||||||
|
install -m 0755 ca/v3_ca.cnf ${D}${bindir}/v3_ca.cnf
|
||||||
|
install -m 0755 ca/v3_usr.cnf ${D}${bindir}/v3_usr.cnf
|
||||||
|
}
|
||||||
|
|
||||||
|
INSANE_SKIP_${PN} += "already-stripped"
|
||||||
|
|
||||||
|
FILES_${PN} = "${bindir}"
|
||||||
|
BBCLASSEXTEND = "native nativesdk"
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ SRC_URI = " \
|
||||||
SRC_URI_append = " \
|
SRC_URI_append = " \
|
||||||
file://boot.txt \
|
file://boot.txt \
|
||||||
file://install_linux_fw_sd.txt \
|
file://install_linux_fw_sd.txt \
|
||||||
|
file://install_linux_fw_usb.txt \
|
||||||
${@oe.utils.conditional('UBOOT_HAS_FASTBOOT', 'true', 'file://install_linux_fw_uuu.sh', '', d)} \
|
${@oe.utils.conditional('UBOOT_HAS_FASTBOOT', 'true', 'file://install_linux_fw_uuu.sh', '', d)} \
|
||||||
"
|
"
|
||||||
|
|
||||||
|
|
@ -152,6 +153,9 @@ do_deploy_append() {
|
||||||
sed -i -e 's,##GRAPHICAL_BACKEND##,${GRAPHICAL_BACKEND},g' ${WORKDIR}/install_linux_fw_sd.txt
|
sed -i -e 's,##GRAPHICAL_BACKEND##,${GRAPHICAL_BACKEND},g' ${WORKDIR}/install_linux_fw_sd.txt
|
||||||
mkimage -T script -n "DEY firmware install script" -C none -d ${WORKDIR}/install_linux_fw_sd.txt ${DEPLOYDIR}/install_linux_fw_sd.scr
|
mkimage -T script -n "DEY firmware install script" -C none -d ${WORKDIR}/install_linux_fw_sd.txt ${DEPLOYDIR}/install_linux_fw_sd.scr
|
||||||
|
|
||||||
|
sed -i -e 's,##GRAPHICAL_BACKEND##,${GRAPHICAL_BACKEND},g' ${WORKDIR}/install_linux_fw_usb.txt
|
||||||
|
mkimage -T script -n "DEY firmware install script" -C none -d ${WORKDIR}/install_linux_fw_usb.txt ${DEPLOYDIR}/install_linux_fw_usb.scr
|
||||||
|
|
||||||
if [ "${@oe.utils.conditional('UBOOT_HAS_FASTBOOT', 'true', 'true', '', d)}" = "true" ]; then
|
if [ "${@oe.utils.conditional('UBOOT_HAS_FASTBOOT', 'true', 'true', '', d)}" = "true" ]; then
|
||||||
# DEY firmware install uuu script
|
# DEY firmware install uuu script
|
||||||
sed -i -e 's,##GRAPHICAL_BACKEND##,${GRAPHICAL_BACKEND},g' ${WORKDIR}/install_linux_fw_uuu.sh
|
sed -i -e 's,##GRAPHICAL_BACKEND##,${GRAPHICAL_BACKEND},g' ${WORKDIR}/install_linux_fw_uuu.sh
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,168 @@
|
||||||
|
#
|
||||||
|
# U-Boot script for installing Linux images created by Yocto from a USB stick
|
||||||
|
# into the eMMC
|
||||||
|
#
|
||||||
|
|
||||||
|
echo "#######################################################"
|
||||||
|
echo "# Linux firmware install from USB #"
|
||||||
|
echo "#######################################################"
|
||||||
|
echo ""
|
||||||
|
echo " This process will erase your eMMC and will install a new"
|
||||||
|
echo " U-Boot and Linux firmware images on the eMMC."
|
||||||
|
echo ""
|
||||||
|
echo " Press CTRL+C now if you wish to abort or wait 10 seconds"
|
||||||
|
echo " to continue."
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
if test $? -eq 1; then
|
||||||
|
echo "Aborted by user.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Determine U-Boot file to program basing on module variant
|
||||||
|
if test -n "${module_variant}"; then
|
||||||
|
if test "${module_variant}" = "0x01" || test "${module_variant}" = "0x02"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6qpsbc2GB.imx;
|
||||||
|
elif test "${module_variant}" = "0x03"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6qpsbc1GB.imx;
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Use 'test -n ...' because 'test -z ...' does not work well on old versions of
|
||||||
|
# u-boot when the checked value is empty.
|
||||||
|
if test -n "${INSTALL_UBOOT_FILENAME}"; then
|
||||||
|
true;
|
||||||
|
else
|
||||||
|
echo "";
|
||||||
|
echo "[ERROR] Cannot determine U-Boot file for this module!";
|
||||||
|
echo "";
|
||||||
|
echo "1. Set variable 'INSTALL_UBOOT_FILENAME' depending on your ConnectCore 6 QuadPlus variant:";
|
||||||
|
echo " - For a QuadPlus CPU with 2GB DDR3, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6qpsbc2GB.imx";
|
||||||
|
echo " - For a DualPlus CPU with 1GB DDR3, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6qpsbc1GB.imx";
|
||||||
|
echo "";
|
||||||
|
echo "";
|
||||||
|
echo "2. Run the install script again.";
|
||||||
|
echo "";
|
||||||
|
echo "Aborted";
|
||||||
|
echo "";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
|
||||||
|
setenv INSTALL_USBDEV 0
|
||||||
|
setenv INSTALL_LINUX_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6qpsbc.boot.vfat
|
||||||
|
setenv INSTALL_RECOVERY_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6qpsbc.recovery.vfat
|
||||||
|
setenv INSTALL_ROOTFS_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6qpsbc.ext4
|
||||||
|
|
||||||
|
# Check for presence of firmware files on the USB
|
||||||
|
for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do
|
||||||
|
if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then
|
||||||
|
echo "ERROR: Could not find file ${install_f}";
|
||||||
|
install_abort=1;
|
||||||
|
fi;
|
||||||
|
done
|
||||||
|
if test -n "${install_abort}"; then
|
||||||
|
echo "Aborted.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Skip user confirmation for U-Boot update
|
||||||
|
setenv forced_update 1
|
||||||
|
|
||||||
|
# Set bootdelay to zero so that firmware update is run immediately after
|
||||||
|
# the first reset.
|
||||||
|
setenv bootdelay 0
|
||||||
|
|
||||||
|
# Set target MMC device index to eMMC
|
||||||
|
setenv mmcdev 0
|
||||||
|
|
||||||
|
# Update U-Boot
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
echo ">> Installing U-Boot boot loader (target will reset)"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
update uboot usb ${INSTALL_USBDEV} fat ${INSTALL_UBOOT_FILENAME}
|
||||||
|
if test $? -eq 1; then
|
||||||
|
echo "[ERROR] Failed to update U-Boot boot loader!";
|
||||||
|
echo "";
|
||||||
|
echo "Aborted.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set 'bootcmd' to the second part of the script that will
|
||||||
|
# - Reset environment to defaults
|
||||||
|
# - Save the environment
|
||||||
|
# - Partition the eMMC user data area for Linux
|
||||||
|
# - Update the 'linux' partition
|
||||||
|
# - Update the 'recovery' partition
|
||||||
|
# - Update the 'rootfs' partition
|
||||||
|
# - Configure recovery to wipe 'update' partition
|
||||||
|
# - Run 'recovery' and let the system boot after
|
||||||
|
setenv bootcmd "
|
||||||
|
env default -a;
|
||||||
|
saveenv;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Creating Linux partition table on the eMMC\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
run partition_mmc_linux;
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to create Linux partition table!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
usb start;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux kernel and device tree files\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update linux usb ${INSTALL_USBDEV} fat ${INSTALL_LINUX_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update linux partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing recovery\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update recovery usb ${INSTALL_USBDEV} fat ${INSTALL_RECOVERY_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update recovery partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux root file system\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update rootfs usb ${INSTALL_USBDEV} fat ${INSTALL_ROOTFS_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update rootfs partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
setenv boot_recovery yes;
|
||||||
|
setenv recovery_command wipe_update;
|
||||||
|
saveenv;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Firmware installation complete. Rebooting into recovery mode for final deployment.\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
sleep 1;
|
||||||
|
reset;
|
||||||
|
"
|
||||||
|
|
||||||
|
saveenv
|
||||||
|
reset
|
||||||
|
|
@ -0,0 +1,179 @@
|
||||||
|
#
|
||||||
|
# U-Boot script for installing Linux images created by Yocto from a USB stick
|
||||||
|
# into the eMMC
|
||||||
|
#
|
||||||
|
|
||||||
|
echo "#######################################################"
|
||||||
|
echo "# Linux firmware install from USB #"
|
||||||
|
echo "#######################################################"
|
||||||
|
echo ""
|
||||||
|
echo " This process will erase your eMMC and will install a new"
|
||||||
|
echo " U-Boot and Linux firmware images on the eMMC."
|
||||||
|
echo ""
|
||||||
|
echo " Press CTRL+C now if you wish to abort or wait 10 seconds"
|
||||||
|
echo " to continue."
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
if test $? -eq 1; then
|
||||||
|
echo "Aborted by user.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Determine U-Boot file to program basing on module variant
|
||||||
|
if test -n "${module_variant}"; then
|
||||||
|
if test "${module_variant}" = "0x12"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6qsbc2GB.imx;
|
||||||
|
elif test "${module_variant}" = "0x02" || test "${module_variant}" = "0x04" || test "${module_variant}" = "0x05" || test "${module_variant}" = "0x11" || test "${module_variant}" = "0x14"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6qsbc.imx;
|
||||||
|
elif test "${module_variant}" = "0x03" || test "${module_variant}" = "0x0e" || test "${module_variant}" = "0x0f"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6qsbc512MB.imx;
|
||||||
|
elif test "${module_variant}" = "0x0b" || test "${module_variant}" = "0x15"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6dlsbc.imx;
|
||||||
|
elif test "${module_variant}" = "0x0c" || test "${module_variant}" = "0x13"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6dlsbc512MB.imx;
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Use 'test -n ...' because 'test -z ...' does not work well on old versions of
|
||||||
|
# u-boot when the checked value is empty.
|
||||||
|
if test -n "${INSTALL_UBOOT_FILENAME}"; then
|
||||||
|
true;
|
||||||
|
else
|
||||||
|
echo "";
|
||||||
|
echo "[ERROR] Cannot determine U-Boot file for this module!";
|
||||||
|
echo "";
|
||||||
|
echo "1. Set variable 'INSTALL_UBOOT_FILENAME' depending on your ConnectCore 6 variant:";
|
||||||
|
echo " - For a Quad/Dual CPU with 2GB DDR3, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6qsbc2GB.imx";
|
||||||
|
echo " - For a Quad/Dual CPU with 1GB DDR3, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6qsbc.imx";
|
||||||
|
echo " - For a Quad/Dual CPU with 512MB DDR3, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6qsbc512MB.imx";
|
||||||
|
echo " - For a DualLite/Solo CPU with 1GB DDR3, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6dlsbc.imx";
|
||||||
|
echo " - For a DualLite/Solo CPU with 512MB DDR3, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6dlsbc512MB.imx";
|
||||||
|
echo "";
|
||||||
|
echo "2. Run the install script again.";
|
||||||
|
echo "";
|
||||||
|
echo "Aborted";
|
||||||
|
echo "";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
|
||||||
|
setenv INSTALL_USBDEV 0
|
||||||
|
setenv INSTALL_LINUX_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6sbc.boot.vfat
|
||||||
|
setenv INSTALL_RECOVERY_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6sbc.recovery.vfat
|
||||||
|
setenv INSTALL_ROOTFS_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6sbc.ext4
|
||||||
|
|
||||||
|
# Check for presence of firmware files on the USB
|
||||||
|
for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do
|
||||||
|
if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then
|
||||||
|
echo "ERROR: Could not find file ${install_f}";
|
||||||
|
install_abort=1;
|
||||||
|
fi;
|
||||||
|
done
|
||||||
|
if test -n "${install_abort}"; then
|
||||||
|
echo "Aborted.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Skip user confirmation for U-Boot update
|
||||||
|
setenv forced_update 1
|
||||||
|
|
||||||
|
# Set bootdelay to zero so that firmware update is run immediately after
|
||||||
|
# the first reset.
|
||||||
|
setenv bootdelay 0
|
||||||
|
|
||||||
|
# Set target MMC device index to eMMC
|
||||||
|
setenv mmcdev 0
|
||||||
|
|
||||||
|
# Update U-Boot
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
echo ">> Installing U-Boot boot loader (target will reset)"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
update uboot usb ${INSTALL_USBDEV} fat ${INSTALL_UBOOT_FILENAME}
|
||||||
|
if test $? -eq 1; then
|
||||||
|
echo "[ERROR] Failed to update U-Boot boot loader!";
|
||||||
|
echo "";
|
||||||
|
echo "Aborted.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set 'bootcmd' to the second part of the script that will
|
||||||
|
# - Reset environment to defaults
|
||||||
|
# - Save the environment
|
||||||
|
# - Partition the eMMC user data area for Linux
|
||||||
|
# - Update the 'linux' partition
|
||||||
|
# - Update the 'recovery' partition
|
||||||
|
# - Update the 'rootfs' partition
|
||||||
|
# - Configure recovery to wipe 'update' partition
|
||||||
|
# - Run 'recovery' and let the system boot after
|
||||||
|
setenv bootcmd "
|
||||||
|
env default -a;
|
||||||
|
saveenv;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Creating Linux partition table on the eMMC\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
run partition_mmc_linux;
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to create Linux partition table!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
usb start;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux kernel and device tree files\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update linux usb ${INSTALL_USBDEV} fat ${INSTALL_LINUX_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update linux partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing recovery\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update recovery usb ${INSTALL_USBDEV} fat ${INSTALL_RECOVERY_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update recovery partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux root file system\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update rootfs usb ${INSTALL_USBDEV} fat ${INSTALL_ROOTFS_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update rootfs partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
setenv boot_recovery yes;
|
||||||
|
setenv recovery_command wipe_update;
|
||||||
|
saveenv;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Firmware installation complete. Rebooting into recovery mode for final deployment.\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
sleep 1;
|
||||||
|
reset;
|
||||||
|
"
|
||||||
|
|
||||||
|
saveenv
|
||||||
|
reset
|
||||||
|
|
@ -0,0 +1,158 @@
|
||||||
|
#
|
||||||
|
# U-Boot script for installing Linux images created by Yocto from a USB stick
|
||||||
|
# into the NAND
|
||||||
|
#
|
||||||
|
|
||||||
|
echo "#######################################################"
|
||||||
|
echo "# Linux firmware install from USB #"
|
||||||
|
echo "#######################################################"
|
||||||
|
echo ""
|
||||||
|
echo " This process will erase your NAND and will install a new"
|
||||||
|
echo " U-Boot and Linux firmware images on the NAND."
|
||||||
|
echo ""
|
||||||
|
echo " Press CTRL+C now if you wish to abort or wait 10 seconds"
|
||||||
|
echo " to continue."
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
if test $? -eq 1; then
|
||||||
|
echo "Aborted by user.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Determine U-Boot file to program basing on module variant
|
||||||
|
if test -n "${module_variant}"; then
|
||||||
|
if test "${module_variant}" = "0x02" || test "${module_variant}" = "0x03" || test "${module_variant}" = "0x06" || test "${module_variant}" = "0x0a"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulsbc.imx;
|
||||||
|
elif test "${module_variant}" = "0x04" || test "${module_variant}" = "0x05" || test "${module_variant}" = "0x07"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulsbc1GB.imx;
|
||||||
|
elif test "${module_variant}" = "0x08" || test "${module_variant}" = "0x09"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulsbc512MB.imx
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Use 'test -n ...' because 'test -z ...' does not work well on old versions of
|
||||||
|
# u-boot when the checked value is empty.
|
||||||
|
if test -n "${INSTALL_UBOOT_FILENAME}"; then
|
||||||
|
true;
|
||||||
|
else
|
||||||
|
echo "";
|
||||||
|
echo "[ERROR] Cannot determine U-Boot file for this module!";
|
||||||
|
echo "";
|
||||||
|
echo "1. Set variable 'INSTALL_UBOOT_FILENAME' depending on your ConnectCore 6UL variant:";
|
||||||
|
echo " - For a SOM with 1GB DDR3, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulsbc1GB.imx";
|
||||||
|
echo " - For a SOM with 512MB DDR3, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulsbc512MB.imx";
|
||||||
|
echo " - For a SOM with 256MB DDR3, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulsbc.imx";
|
||||||
|
echo "";
|
||||||
|
echo "2. Run the install script again.";
|
||||||
|
echo "";
|
||||||
|
echo "Aborted";
|
||||||
|
echo "";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
|
||||||
|
setenv INSTALL_USBDEV 0
|
||||||
|
setenv INSTALL_LINUX_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6ulsbc.boot.ubifs
|
||||||
|
setenv INSTALL_RECOVERY_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6ulsbc.recovery.ubifs
|
||||||
|
setenv INSTALL_ROOTFS_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6ulsbc.ubifs
|
||||||
|
|
||||||
|
# Check for presence of firmware files on the USB
|
||||||
|
for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do
|
||||||
|
if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then
|
||||||
|
echo "ERROR: Could not find file ${install_f}";
|
||||||
|
install_abort=1;
|
||||||
|
fi;
|
||||||
|
done
|
||||||
|
if test -n "${install_abort}"; then
|
||||||
|
echo "Aborted.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Skip user confirmation for U-Boot update
|
||||||
|
setenv forced_update 1
|
||||||
|
|
||||||
|
# Set bootdelay to zero so that firmware update is run immediately after
|
||||||
|
# the first reset.
|
||||||
|
setenv bootdelay 0
|
||||||
|
|
||||||
|
# Update U-Boot
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
echo ">> Installing U-Boot boot loader (target will reset)"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
update uboot usb ${INSTALL_USBDEV} fat ${INSTALL_UBOOT_FILENAME}
|
||||||
|
if test $? -eq 1; then
|
||||||
|
echo "[ERROR] Failed to update U-Boot boot loader!";
|
||||||
|
echo "";
|
||||||
|
echo "Aborted.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set 'bootcmd' to the second part of the script that will
|
||||||
|
# - Reset environment to defaults
|
||||||
|
# - Save the environment
|
||||||
|
# - Update the 'linux' partition
|
||||||
|
# - Update the 'recovery' partition
|
||||||
|
# - Update the 'rootfs' partition
|
||||||
|
# - Configure recovery to wipe 'update' partition
|
||||||
|
# - Run 'recovery' and let the system boot after
|
||||||
|
setenv bootcmd "
|
||||||
|
env default -a;
|
||||||
|
saveenv;
|
||||||
|
usb start;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux kernel and device tree files\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
nand erase.part linux;
|
||||||
|
update linux usb ${INSTALL_USBDEV} fat ${INSTALL_LINUX_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update linux partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing recovery\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
nand erase.part recovery;
|
||||||
|
update recovery usb ${INSTALL_USBDEV} fat ${INSTALL_RECOVERY_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update recovery partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux root file system\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
nand erase.part rootfs;
|
||||||
|
update rootfs usb ${INSTALL_USBDEV} fat ${INSTALL_ROOTFS_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update rootfs partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
setenv boot_recovery yes;
|
||||||
|
setenv recovery_command wipe_update;
|
||||||
|
saveenv;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Firmware installation complete. Rebooting into recovery mode for final deployment.\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
sleep 1;
|
||||||
|
reset;
|
||||||
|
"
|
||||||
|
|
||||||
|
saveenv
|
||||||
|
reset
|
||||||
|
|
@ -0,0 +1,170 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
# Copyright (C) 2020 by Digi International Inc.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License version 2 as published by
|
||||||
|
# the Free Software Foundation.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Description:
|
||||||
|
# Script to flash Yocto build artifacts over USB to the target.
|
||||||
|
#===============================================================================
|
||||||
|
# set -x
|
||||||
|
clear
|
||||||
|
|
||||||
|
# Parse uuu cmd output
|
||||||
|
getenv()
|
||||||
|
{
|
||||||
|
uuu -v fb: ucmd printenv "${1}" | sed -ne "s,^${1}=,,g;T;p"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Update a NAND partition
|
||||||
|
# Params:
|
||||||
|
# 1. partition
|
||||||
|
# 2. file
|
||||||
|
# 3. timeout (in ms)
|
||||||
|
# Description:
|
||||||
|
# - downloads image to RAM
|
||||||
|
# - runs 'update' command from RAM
|
||||||
|
nand_update()
|
||||||
|
{
|
||||||
|
echo "\033[36m"
|
||||||
|
echo "====================================================================================="
|
||||||
|
echo "Updating '${1}' partition with file: ${2}"
|
||||||
|
echo "====================================================================================="
|
||||||
|
echo "\033[0m"
|
||||||
|
|
||||||
|
uuu fb: download -f "${2}"
|
||||||
|
uuu "fb[-t ${3}]:" ucmd update "${1}" ram \${fastboot_buffer} \${fastboot_bytes}
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# U-Boot script for installing Linux images created by Yocto into the NAND
|
||||||
|
#
|
||||||
|
echo "############################################################"
|
||||||
|
echo "# Linux firmware install through USB OTG #"
|
||||||
|
echo "############################################################"
|
||||||
|
echo ""
|
||||||
|
echo " This process will erase your NAND and will install a new"
|
||||||
|
echo " U-Boot and Linux firmware images on the NAND."
|
||||||
|
echo ""
|
||||||
|
echo " Press CTRL+C now if you wish to abort or wait 10 seconds"
|
||||||
|
echo " to continue."
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
# Enable the redirect support to get u-boot variables values
|
||||||
|
uuu fb: ucmd setenv stdout serial,fastboot
|
||||||
|
|
||||||
|
# Get U-Boot file name from cmdline when passed
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
INSTALL_UBOOT_FILENAME="$1"
|
||||||
|
else
|
||||||
|
module_variant=$(getenv "module_variant")
|
||||||
|
# Determine U-Boot file to program basing on SOM's variant
|
||||||
|
if [ -n "$module_variant" ]; then
|
||||||
|
if [ "$module_variant" = "0x08" ] || \
|
||||||
|
[ "$module_variant" = "0x09" ]; then
|
||||||
|
INSTALL_UBOOT_FILENAME="u-boot-ccimx6ulsbc512MB.imx"
|
||||||
|
elif [ "$module_variant" = "0x04" ] || \
|
||||||
|
[ "$module_variant" = "0x05" ] || \
|
||||||
|
[ "$module_variant" = "0x07" ]; then
|
||||||
|
INSTALL_UBOOT_FILENAME="u-boot-ccimx6ulsbc1GB.imx"
|
||||||
|
else
|
||||||
|
INSTALL_UBOOT_FILENAME="u-boot-ccimx6ulsbc.imx"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# remove redirect
|
||||||
|
uuu fb: ucmd setenv stdout serial
|
||||||
|
|
||||||
|
# u-boot when the checked value is empty.
|
||||||
|
if [ -n "${INSTALL_UBOOT_FILENAME}" ]; then
|
||||||
|
true
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "[ERROR] Cannot determine U-Boot file for this module!"
|
||||||
|
echo ""
|
||||||
|
echo "1. Add U-boot file name, depending on your ConnectCore 8X variant, to script command line:"
|
||||||
|
echo " - For a SOM with 1GB DDR3, run:"
|
||||||
|
echo " => ./install_linux_fs_uuu.sh u-boot-ccimx6ulsbc1GB.imx"
|
||||||
|
echo " - For a SOM with 512MB DDR3, run:"
|
||||||
|
echo " => ./install_linux_fs_uuu.sh u-boot-ccimx6ulsbc512MB.imx"
|
||||||
|
echo " - For a SOM with 256MB DDR3, run:"
|
||||||
|
echo " => ./install_linux_fs_uuu.sh u-boot-ccimx6ulsbc.imx"
|
||||||
|
echo ""
|
||||||
|
echo "2. Run the install script again."
|
||||||
|
echo ""
|
||||||
|
echo "Aborted"
|
||||||
|
echo ""
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set fastboot buffer address to $loadaddr, just in case
|
||||||
|
uuu fb: ucmd setenv fastboot_buffer \${loadaddr}
|
||||||
|
|
||||||
|
# Skip user confirmation for U-Boot update
|
||||||
|
uuu fb: ucmd setenv forced_update 1
|
||||||
|
|
||||||
|
# Update U-Boot
|
||||||
|
nand_update "uboot" "${INSTALL_UBOOT_FILENAME}" 5000
|
||||||
|
|
||||||
|
# Set 'bootcmd' for the second part of the script that will
|
||||||
|
# - Reset environment to defaults
|
||||||
|
# - Save the environment
|
||||||
|
# - Update the 'linux' partition
|
||||||
|
# - Update the 'recovery' partition
|
||||||
|
# - Update the 'rootfs' partition
|
||||||
|
uuu fb: ucmd setenv bootcmd "
|
||||||
|
env default -a;
|
||||||
|
saveenv;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux firmware\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
fastboot 0;
|
||||||
|
"
|
||||||
|
|
||||||
|
uuu fb: ucmd saveenv
|
||||||
|
uuu fb: acmd reset
|
||||||
|
|
||||||
|
INSTALL_LINUX_FILENAME="dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6ulsbc.boot.ubifs"
|
||||||
|
INSTALL_RECOVERY_FILENAME="dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6ulsbc.recovery.ubifs"
|
||||||
|
INSTALL_ROOTFS_FILENAME="dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6ulsbc.ubifs"
|
||||||
|
|
||||||
|
# Wait for the target to reset
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
# Set fastboot buffer address to $loadaddr
|
||||||
|
uuu fb: ucmd setenv fastboot_buffer \${loadaddr}
|
||||||
|
|
||||||
|
# Update Linux
|
||||||
|
nand_update "linux" "${INSTALL_LINUX_FILENAME}" 15000
|
||||||
|
|
||||||
|
# Update Recovery
|
||||||
|
nand_update "recovery" "${INSTALL_RECOVERY_FILENAME}" 15000
|
||||||
|
|
||||||
|
# Update Rootfs
|
||||||
|
nand_update "rootfs" "${INSTALL_ROOTFS_FILENAME}" 90000
|
||||||
|
|
||||||
|
# Configure u-boot to boot into recovery mode
|
||||||
|
uuu fb: ucmd setenv boot_recovery yes
|
||||||
|
uuu fb: ucmd setenv recovery_command wipe_update
|
||||||
|
|
||||||
|
uuu fb: ucmd saveenv
|
||||||
|
|
||||||
|
# Reset the target
|
||||||
|
uuu fb: acmd reset
|
||||||
|
|
||||||
|
echo "\033[32m"
|
||||||
|
echo "============================================================="
|
||||||
|
echo "Done! Wait for the target to complete first boot process."
|
||||||
|
echo "============================================================="
|
||||||
|
echo "\033[0m"
|
||||||
|
|
||||||
|
exit
|
||||||
|
|
@ -0,0 +1,158 @@
|
||||||
|
#
|
||||||
|
# U-Boot script for installing Linux images created by Yocto from a USB stick
|
||||||
|
# into the NAND
|
||||||
|
#
|
||||||
|
|
||||||
|
echo "#######################################################"
|
||||||
|
echo "# Linux firmware install from USB #"
|
||||||
|
echo "#######################################################"
|
||||||
|
echo ""
|
||||||
|
echo " This process will erase your NAND and will install a new"
|
||||||
|
echo " U-Boot and Linux firmware images on the NAND."
|
||||||
|
echo ""
|
||||||
|
echo " Press CTRL+C now if you wish to abort or wait 10 seconds"
|
||||||
|
echo " to continue."
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
if test $? -eq 1; then
|
||||||
|
echo "Aborted by user.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Determine U-Boot file to program basing on module variant
|
||||||
|
if test -n "${module_variant}"; then
|
||||||
|
if test "${module_variant}" = "0x02" || test "${module_variant}" = "0x03" || test "${module_variant}" = "0x06" || test "${module_variant}" = "0x0a"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulstarter.imx;
|
||||||
|
elif test "${module_variant}" = "0x04" || test "${module_variant}" = "0x05" || test "${module_variant}" = "0x07"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulstarter1GB.imx;
|
||||||
|
elif test "${module_variant}" = "0x08" || test "${module_variant}" = "0x09"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulstarter512MB.imx
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Use 'test -n ...' because 'test -z ...' does not work well on old versions of
|
||||||
|
# u-boot when the checked value is empty.
|
||||||
|
if test -n "${INSTALL_UBOOT_FILENAME}"; then
|
||||||
|
true;
|
||||||
|
else
|
||||||
|
echo "";
|
||||||
|
echo "[ERROR] Cannot determine U-Boot file for this module!";
|
||||||
|
echo "";
|
||||||
|
echo "1. Set variable 'INSTALL_UBOOT_FILENAME' depending on your ConnectCore 6UL variant:";
|
||||||
|
echo " - For a SOM with 1GB DDR3, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulstarter1GB.imx";
|
||||||
|
echo " - For a SOM with 512MB DDR3, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulstarter512MB.imx";
|
||||||
|
echo " - For a SOM with 256MB DDR3, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME u-boot-ccimx6ulstarter.imx";
|
||||||
|
echo "";
|
||||||
|
echo "2. Run the install script again.";
|
||||||
|
echo "";
|
||||||
|
echo "Aborted";
|
||||||
|
echo "";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
|
||||||
|
setenv INSTALL_USBDEV 0
|
||||||
|
setenv INSTALL_LINUX_FILENAME core-image-base-ccimx6ulstarter.boot.ubifs
|
||||||
|
setenv INSTALL_RECOVERY_FILENAME core-image-base-ccimx6ulstarter.recovery.ubifs
|
||||||
|
setenv INSTALL_ROOTFS_FILENAME core-image-base-ccimx6ulstarter.ubifs
|
||||||
|
|
||||||
|
# Check for presence of firmware files on the USB
|
||||||
|
for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do
|
||||||
|
if test ! -e mmc ${INSTALL_USBDEV} ${install_f}; then
|
||||||
|
echo "ERROR: Could not find file ${install_f}";
|
||||||
|
install_abort=1;
|
||||||
|
fi;
|
||||||
|
done
|
||||||
|
if test -n "${install_abort}"; then
|
||||||
|
echo "Aborted.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Skip user confirmation for U-Boot update
|
||||||
|
setenv forced_update 1
|
||||||
|
|
||||||
|
# Set bootdelay to zero so that firmware update is run immediately after
|
||||||
|
# the first reset.
|
||||||
|
setenv bootdelay 0
|
||||||
|
|
||||||
|
# Update U-Boot
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
echo ">> Installing U-Boot boot loader (target will reset)"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
update uboot usb ${INSTALL_USBDEV} fat ${INSTALL_UBOOT_FILENAME}
|
||||||
|
if test $? -eq 1; then
|
||||||
|
echo "[ERROR] Failed to update U-Boot boot loader!";
|
||||||
|
echo "";
|
||||||
|
echo "Aborted.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set 'bootcmd' to the second part of the script that will
|
||||||
|
# - Reset environment to defaults
|
||||||
|
# - Save the environment
|
||||||
|
# - Update the 'linux' partition
|
||||||
|
# - Update the 'recovery' partition
|
||||||
|
# - Update the 'rootfs' partition
|
||||||
|
# - Configure recovery to wipe 'update' partition
|
||||||
|
# - Run 'recovery' and let the system boot after
|
||||||
|
setenv bootcmd "
|
||||||
|
env default -a;
|
||||||
|
saveenv;
|
||||||
|
usb start;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux kernel and device tree files\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
nand erase.part linux;
|
||||||
|
update linux usb ${INSTALL_USBDEV} fat ${INSTALL_LINUX_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update linux partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing recovery\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
nand erase.part recovery;
|
||||||
|
update recovery usb ${INSTALL_USBDEV} fat ${INSTALL_RECOVERY_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update recovery partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux root file system\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
nand erase.part rootfs;
|
||||||
|
update rootfs usb ${INSTALL_USBDEV} fat ${INSTALL_ROOTFS_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update rootfs partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
setenv boot_recovery yes;
|
||||||
|
setenv recovery_command wipe_update;
|
||||||
|
saveenv;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Firmware installation complete. Rebooting into recovery mode for final deployment.\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
sleep 1;
|
||||||
|
reset;
|
||||||
|
"
|
||||||
|
|
||||||
|
saveenv
|
||||||
|
reset
|
||||||
|
|
@ -0,0 +1,170 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#===============================================================================
|
||||||
|
#
|
||||||
|
# Copyright (C) 2020 by Digi International Inc.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License version 2 as published by
|
||||||
|
# the Free Software Foundation.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Description:
|
||||||
|
# Script to flash Yocto build artifacts over USB to the target.
|
||||||
|
#===============================================================================
|
||||||
|
# set -x
|
||||||
|
clear
|
||||||
|
|
||||||
|
# Parse uuu cmd output
|
||||||
|
getenv()
|
||||||
|
{
|
||||||
|
uuu -v fb: ucmd printenv "${1}" | sed -ne "s,^${1}=,,g;T;p"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Update a NAND partition
|
||||||
|
# Params:
|
||||||
|
# 1. partition
|
||||||
|
# 2. file
|
||||||
|
# 3. timeout (in ms)
|
||||||
|
# Description:
|
||||||
|
# - downloads image to RAM
|
||||||
|
# - runs 'update' command from RAM
|
||||||
|
nand_update()
|
||||||
|
{
|
||||||
|
echo "\033[36m"
|
||||||
|
echo "====================================================================================="
|
||||||
|
echo "Updating '${1}' partition with file: ${2}"
|
||||||
|
echo "====================================================================================="
|
||||||
|
echo "\033[0m"
|
||||||
|
|
||||||
|
uuu fb: download -f "${2}"
|
||||||
|
uuu "fb[-t ${3}]:" ucmd update "${1}" ram \${fastboot_buffer} \${fastboot_bytes}
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# U-Boot script for installing Linux images created by Yocto into the NAND
|
||||||
|
#
|
||||||
|
echo "############################################################"
|
||||||
|
echo "# Linux firmware install through USB OTG #"
|
||||||
|
echo "############################################################"
|
||||||
|
echo ""
|
||||||
|
echo " This process will erase your NAND and will install a new"
|
||||||
|
echo " U-Boot and Linux firmware images on the NAND."
|
||||||
|
echo ""
|
||||||
|
echo " Press CTRL+C now if you wish to abort or wait 10 seconds"
|
||||||
|
echo " to continue."
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
# Enable the redirect support to get u-boot variables values
|
||||||
|
uuu fb: ucmd setenv stdout serial,fastboot
|
||||||
|
|
||||||
|
# Get U-Boot file name from cmdline when passed
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
INSTALL_UBOOT_FILENAME="$1"
|
||||||
|
else
|
||||||
|
module_variant=$(getenv "module_variant")
|
||||||
|
# Determine U-Boot file to program basing on SOM's variant
|
||||||
|
if [ -n "$module_variant" ]; then
|
||||||
|
if [ "$module_variant" = "0x08" ] || \
|
||||||
|
[ "$module_variant" = "0x09" ]; then
|
||||||
|
INSTALL_UBOOT_FILENAME="u-boot-ccimx6ulstarter512MB.imx"
|
||||||
|
elif [ "$module_variant" = "0x04" ] || \
|
||||||
|
[ "$module_variant" = "0x05" ] || \
|
||||||
|
[ "$module_variant" = "0x07" ]; then
|
||||||
|
INSTALL_UBOOT_FILENAME="u-boot-ccimx6ulstarter1GB.imx"
|
||||||
|
else
|
||||||
|
INSTALL_UBOOT_FILENAME="u-boot-ccimx6ulstarter.imx"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# remove redirect
|
||||||
|
uuu fb: ucmd setenv stdout serial
|
||||||
|
|
||||||
|
# u-boot when the checked value is empty.
|
||||||
|
if [ -n "${INSTALL_UBOOT_FILENAME}" ]; then
|
||||||
|
true
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "[ERROR] Cannot determine U-Boot file for this module!"
|
||||||
|
echo ""
|
||||||
|
echo "1. Add U-boot file name, depending on your ConnectCore 8X variant, to script command line:"
|
||||||
|
echo " - For a SOM with 1GB DDR3, run:"
|
||||||
|
echo " => ./install_linux_fs_uuu.sh u-boot-ccimx6ulstarter1GB.imx"
|
||||||
|
echo " - For a SOM with 512MB DDR3, run:"
|
||||||
|
echo " => ./install_linux_fs_uuu.sh u-boot-ccimx6ulstarter512MB.imx"
|
||||||
|
echo " - For a SOM with 256MB DDR3, run:"
|
||||||
|
echo " => ./install_linux_fs_uuu.sh u-boot-ccimx6ulstarter.imx"
|
||||||
|
echo ""
|
||||||
|
echo "2. Run the install script again."
|
||||||
|
echo ""
|
||||||
|
echo "Aborted"
|
||||||
|
echo ""
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set fastboot buffer address to $loadaddr, just in case
|
||||||
|
uuu fb: ucmd setenv fastboot_buffer \${loadaddr}
|
||||||
|
|
||||||
|
# Skip user confirmation for U-Boot update
|
||||||
|
uuu fb: ucmd setenv forced_update 1
|
||||||
|
|
||||||
|
# Update U-Boot
|
||||||
|
nand_update "uboot" "${INSTALL_UBOOT_FILENAME}" 5000
|
||||||
|
|
||||||
|
# Set 'bootcmd' for the second part of the script that will
|
||||||
|
# - Reset environment to defaults
|
||||||
|
# - Save the environment
|
||||||
|
# - Update the 'linux' partition
|
||||||
|
# - Update the 'recovery' partition
|
||||||
|
# - Update the 'rootfs' partition
|
||||||
|
uuu fb: ucmd setenv bootcmd "
|
||||||
|
env default -a;
|
||||||
|
saveenv;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux firmware\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
fastboot 0;
|
||||||
|
"
|
||||||
|
|
||||||
|
uuu fb: ucmd saveenv
|
||||||
|
uuu fb: acmd reset
|
||||||
|
|
||||||
|
INSTALL_LINUX_FILENAME="dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6ulstarter.boot.ubifs"
|
||||||
|
INSTALL_RECOVERY_FILENAME="dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6ulstarter.recovery.ubifs"
|
||||||
|
INSTALL_ROOTFS_FILENAME="dey-image-qt-##GRAPHICAL_BACKEND##-ccimx6ulstarter.ubifs"
|
||||||
|
|
||||||
|
# Wait for the target to reset
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
# Set fastboot buffer address to $loadaddr
|
||||||
|
uuu fb: ucmd setenv fastboot_buffer \${loadaddr}
|
||||||
|
|
||||||
|
# Update Linux
|
||||||
|
nand_update "linux" "${INSTALL_LINUX_FILENAME}" 15000
|
||||||
|
|
||||||
|
# Update Recovery
|
||||||
|
nand_update "recovery" "${INSTALL_RECOVERY_FILENAME}" 15000
|
||||||
|
|
||||||
|
# Update Rootfs
|
||||||
|
nand_update "rootfs" "${INSTALL_ROOTFS_FILENAME}" 90000
|
||||||
|
|
||||||
|
# Configure u-boot to boot into recovery mode
|
||||||
|
uuu fb: ucmd setenv boot_recovery yes
|
||||||
|
uuu fb: ucmd setenv recovery_command wipe_update
|
||||||
|
|
||||||
|
uuu fb: ucmd saveenv
|
||||||
|
|
||||||
|
# Reset the target
|
||||||
|
uuu fb: acmd reset
|
||||||
|
|
||||||
|
echo "\033[32m"
|
||||||
|
echo "============================================================="
|
||||||
|
echo "Done! Wait for the target to complete first boot process."
|
||||||
|
echo "============================================================="
|
||||||
|
echo "\033[0m"
|
||||||
|
|
||||||
|
exit
|
||||||
|
|
@ -0,0 +1,143 @@
|
||||||
|
#
|
||||||
|
# U-Boot script for installing Linux images created by Yocto from a USB stick
|
||||||
|
# into the eMMC
|
||||||
|
#
|
||||||
|
|
||||||
|
echo "#######################################################"
|
||||||
|
echo "# Linux firmware install from USB #"
|
||||||
|
echo "#######################################################"
|
||||||
|
echo ""
|
||||||
|
echo " This process will erase your eMMC and will install a new"
|
||||||
|
echo " U-Boot and Linux firmware images on the eMMC."
|
||||||
|
echo ""
|
||||||
|
echo " Press CTRL+C now if you wish to abort or wait 10 seconds"
|
||||||
|
echo " to continue."
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
if test $? -eq 1; then
|
||||||
|
echo "Aborted by user.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8mn-dvk.bin;
|
||||||
|
setenv INSTALL_USBDEV 0
|
||||||
|
setenv INSTALL_LINUX_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx8mn-dvk.boot.vfat
|
||||||
|
setenv INSTALL_RECOVERY_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx8mn-dvk.recovery.vfat
|
||||||
|
setenv INSTALL_ROOTFS_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx8mn-dvk.ext4
|
||||||
|
|
||||||
|
# Check for presence of firmware files on the USB
|
||||||
|
for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do
|
||||||
|
if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then
|
||||||
|
echo "ERROR: Could not find file ${install_f}";
|
||||||
|
install_abort=1;
|
||||||
|
fi;
|
||||||
|
done
|
||||||
|
if test -n "${install_abort}"; then
|
||||||
|
echo "Aborted.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Skip user confirmation for U-Boot update
|
||||||
|
setenv forced_update 1
|
||||||
|
|
||||||
|
# Set bootdelay to zero so that firmware update is run immediately after
|
||||||
|
# the first reset.
|
||||||
|
setenv bootdelay 0
|
||||||
|
|
||||||
|
# Set target MMC device index to eMMC
|
||||||
|
setenv mmcdev 0
|
||||||
|
|
||||||
|
# Update U-Boot
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
echo ">> Installing U-Boot boot loader (target will reset)"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
update uboot usb ${INSTALL_USBDEV} fat ${INSTALL_UBOOT_FILENAME}
|
||||||
|
if test $? -eq 1; then
|
||||||
|
echo "[ERROR] Failed to update U-Boot boot loader!";
|
||||||
|
echo "";
|
||||||
|
echo "Aborted.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set 'bootcmd' to the second part of the script that will
|
||||||
|
# - Reset environment to defaults
|
||||||
|
# - Save the environment
|
||||||
|
# - Force on-the-fly updates to avoid possible verification errors
|
||||||
|
# - Partition the eMMC user data area for Linux
|
||||||
|
# - Update the 'linux' partition
|
||||||
|
# - Update the 'recovery' partition
|
||||||
|
# - Update the 'rootfs' partition
|
||||||
|
# - Configure recovery to wipe 'update' partition
|
||||||
|
# - Disable on-the-fly updates
|
||||||
|
# - Run 'recovery' and let the system boot after
|
||||||
|
setenv bootcmd "
|
||||||
|
env default -a;
|
||||||
|
saveenv;
|
||||||
|
setenv otf-update yes;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Creating Linux partition table on the eMMC\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
run partition_mmc_linux;
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to create Linux partition table!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
usb start;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux kernel and device tree files\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update linux usb ${INSTALL_USBDEV} fat ${INSTALL_LINUX_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update linux partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing recovery\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update recovery usb ${INSTALL_USBDEV} fat ${INSTALL_RECOVERY_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update recovery partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux root file system\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update rootfs usb ${INSTALL_USBDEV} fat ${INSTALL_ROOTFS_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update rootfs partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
setenv boot_recovery yes;
|
||||||
|
setenv recovery_command wipe_update;
|
||||||
|
setenv otf-update;
|
||||||
|
saveenv;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Firmware installation complete. Rebooting into recovery mode for final deployment.\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
sleep 1;
|
||||||
|
reset;
|
||||||
|
"
|
||||||
|
|
||||||
|
saveenv
|
||||||
|
reset
|
||||||
|
|
@ -0,0 +1,200 @@
|
||||||
|
#
|
||||||
|
# U-Boot script for installing Linux images created by Yocto from a USB stick
|
||||||
|
# into the eMMC
|
||||||
|
#
|
||||||
|
|
||||||
|
echo "######################################################"
|
||||||
|
echo "# Linux firmware install from USB #"
|
||||||
|
echo "######################################################"
|
||||||
|
echo ""
|
||||||
|
echo " This process will erase your eMMC and will install a new"
|
||||||
|
echo " U-Boot and Linux firmware images on the eMMC."
|
||||||
|
echo ""
|
||||||
|
echo " Press CTRL+C now if you wish to abort or wait 10 seconds"
|
||||||
|
echo " to continue."
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
if test $? -eq 1; then
|
||||||
|
echo "Aborted by user.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Since SOMs with the B0 SOC might have an older U-Boot that doesn't export the
|
||||||
|
# SOC revision to the environment, use B0 by default
|
||||||
|
if test -z "${soc_rev}"; then
|
||||||
|
setenv soc_rev B0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# In case this script is used to update to a newer release whose imx-boot file
|
||||||
|
# is not recognized by the SECO fw check, bypass it by default. The script has
|
||||||
|
# the necessary logic to choose the correct imx-boot file for the target's SOC.
|
||||||
|
setenv skip-uboot-check "yes"
|
||||||
|
|
||||||
|
# Determine U-Boot file to program basing on SOM's RAM size and SOC type (linked to bus width)
|
||||||
|
bus_width="32bit"
|
||||||
|
if test -n "${module_ram}" && test -n "${soc_type}"; then
|
||||||
|
if test "${soc_type}" = "imx8dx"; then
|
||||||
|
bus_width="16bit"
|
||||||
|
fi
|
||||||
|
setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-express-${soc_rev}-${module_ram}_${bus_width}.bin;
|
||||||
|
else
|
||||||
|
# Determine U-Boot file to program basing on SOM's variant
|
||||||
|
if test -n "${module_variant}"; then
|
||||||
|
if test "${module_variant}" = "0x01"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-express-${soc_rev}-1GB_32bit.bin;
|
||||||
|
elif test "${module_variant}" = "0x02"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-express-${soc_rev}-2GB_32bit.bin;
|
||||||
|
elif test "${module_variant}" = "0x03"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-express-${soc_rev}-2GB_32bit.bin;
|
||||||
|
elif test "${module_variant}" = "0x04"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-express-${soc_rev}-1GB_16bit.bin;
|
||||||
|
elif test "${module_variant}" = "0x05"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-express-${soc_rev}-1GB_16bit.bin;
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use 'test -n ...' because 'test -z ...' does not work well on old versions of
|
||||||
|
# u-boot when the checked value is empty.
|
||||||
|
if test -n "${INSTALL_UBOOT_FILENAME}"; then
|
||||||
|
true;
|
||||||
|
else
|
||||||
|
echo "";
|
||||||
|
echo "[ERROR] Cannot determine U-Boot file for this module!";
|
||||||
|
echo "";
|
||||||
|
echo "1. Set variable 'INSTALL_UBOOT_FILENAME' depending on your ConnectCore 8X variant:";
|
||||||
|
echo " - For a QuadXPlus CPU with 1GB LPDDR4, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-express-${soc_rev}-1GB_32bit.bin";
|
||||||
|
echo " - For a QuadXPlus CPU with 2GB LPDDR4, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-express-${soc_rev}-2GB_32bit.bin";
|
||||||
|
echo " - For a DualX CPU with 1GB LPDDR4, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-express-${soc_rev}-1GB_16bit.bin";
|
||||||
|
echo "";
|
||||||
|
echo "2. Run the install script again.";
|
||||||
|
echo "";
|
||||||
|
echo "Aborted";
|
||||||
|
echo "";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
|
||||||
|
setenv INSTALL_USBDEV 0
|
||||||
|
setenv INSTALL_LINUX_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx8x-sbc-express.boot.vfat
|
||||||
|
setenv INSTALL_RECOVERY_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx8x-sbc-express.recovery.vfat
|
||||||
|
setenv INSTALL_ROOTFS_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx8x-sbc-express.ext4
|
||||||
|
|
||||||
|
# Check for presence of firmware files on the USB
|
||||||
|
for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do
|
||||||
|
if test ! -e mmc ${INSTALL_USBDEV} ${install_f}; then
|
||||||
|
echo "ERROR: Could not find file ${install_f}";
|
||||||
|
install_abort=1;
|
||||||
|
fi;
|
||||||
|
done
|
||||||
|
if test -n "${install_abort}"; then
|
||||||
|
echo "Aborted.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Skip user confirmation for U-Boot update
|
||||||
|
setenv forced_update 1
|
||||||
|
|
||||||
|
# Set bootdelay to zero so that firmware update is run immediately after
|
||||||
|
# the first reset.
|
||||||
|
setenv bootdelay 0
|
||||||
|
|
||||||
|
# Set target MMC device index to eMMC
|
||||||
|
setenv mmcdev 0
|
||||||
|
|
||||||
|
# Update U-Boot
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
echo ">> Installing U-Boot boot loader (target will reset)"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
update uboot usb ${INSTALL_USBDEV} fat ${INSTALL_UBOOT_FILENAME}
|
||||||
|
if test $? -eq 1; then
|
||||||
|
echo "[ERROR] Failed to update U-Boot boot loader!";
|
||||||
|
echo "";
|
||||||
|
echo "Aborted.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set 'bootcmd' to the second part of the script that will
|
||||||
|
# - Reset environment to defaults
|
||||||
|
# - Save the environment
|
||||||
|
# - Force on-the-fly updates to avoid possible verification errors
|
||||||
|
# - Partition the eMMC user data area for Linux
|
||||||
|
# - Update the 'linux' partition
|
||||||
|
# - Update the 'recovery' partition
|
||||||
|
# - Update the 'rootfs' partition
|
||||||
|
# - Configure recovery to wipe 'update' partition
|
||||||
|
# - Disable on-the-fly updates
|
||||||
|
# - Run 'recovery' and let the system boot after
|
||||||
|
setenv bootcmd "
|
||||||
|
env default -a;
|
||||||
|
saveenv;
|
||||||
|
setenv otf-update yes;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Creating Linux partition table on the eMMC\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
run partition_mmc_linux;
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to create Linux partition table!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
usb start;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux kernel and device tree files\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update linux usb ${INSTALL_USBDEV} fat ${INSTALL_LINUX_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update linux partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing recovery\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update recovery usb ${INSTALL_USBDEV} fat ${INSTALL_RECOVERY_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update recovery partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux root file system\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update rootfs usb ${INSTALL_USBDEV} fat ${INSTALL_ROOTFS_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update rootfs partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
setenv boot_recovery yes;
|
||||||
|
setenv recovery_command wipe_update;
|
||||||
|
setenv otf-update;
|
||||||
|
saveenv;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Firmware installation complete. Rebooting into recovery mode for final deployment.\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
sleep 1;
|
||||||
|
reset;
|
||||||
|
"
|
||||||
|
|
||||||
|
saveenv
|
||||||
|
reset
|
||||||
|
|
@ -0,0 +1,204 @@
|
||||||
|
#
|
||||||
|
# U-Boot script for installing Linux images created by Yocto from a USB stick
|
||||||
|
# into the eMMC
|
||||||
|
#
|
||||||
|
|
||||||
|
echo "######################################################"
|
||||||
|
echo "# Linux firmware install from USB #"
|
||||||
|
echo "######################################################"
|
||||||
|
echo ""
|
||||||
|
echo " This process will erase your eMMC and will install a new"
|
||||||
|
echo " U-Boot and Linux firmware images on the eMMC."
|
||||||
|
echo ""
|
||||||
|
echo " Press CTRL+C now if you wish to abort or wait 10 seconds"
|
||||||
|
echo " to continue."
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
if test $? -eq 1; then
|
||||||
|
echo "Aborted by user.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Since SOMs with the B0 SOC might have an older U-Boot that doesn't export the
|
||||||
|
# SOC revision to the environment, use B0 by default
|
||||||
|
if test -z "${soc_rev}"; then
|
||||||
|
setenv soc_rev B0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# In case this script is used to update to a newer release whose imx-boot file
|
||||||
|
# is not recognized by the SECO fw check, bypass it by default. The script has
|
||||||
|
# the necessary logic to choose the correct imx-boot file for the target's SOC.
|
||||||
|
setenv skip-uboot-check "yes"
|
||||||
|
|
||||||
|
# Determine U-Boot file to program basing on SOM's RAM size and SOC type (linked to bus width)
|
||||||
|
bus_width="32bit"
|
||||||
|
if test -n "${module_ram}" && test -n "${soc_type}"; then
|
||||||
|
if test "${soc_type}" = "imx8dx"; then
|
||||||
|
bus_width="16bit"
|
||||||
|
fi
|
||||||
|
setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-pro-${soc_rev}-${module_ram}_${bus_width}.bin;
|
||||||
|
else
|
||||||
|
# Determine U-Boot file to program basing on SOM's variant
|
||||||
|
if test -n "${module_variant}"; then
|
||||||
|
if test "${module_variant}" = "0x01"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-pro-${soc_rev}-1GB_32bit.bin;
|
||||||
|
elif test "${module_variant}" = "0x02"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-pro-${soc_rev}-2GB_32bit.bin;
|
||||||
|
elif test "${module_variant}" = "0x03"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-pro-${soc_rev}-2GB_32bit.bin;
|
||||||
|
elif test "${module_variant}" = "0x04"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-pro-${soc_rev}-1GB_16bit.bin;
|
||||||
|
elif test "${module_variant}" = "0x05"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-pro-${soc_rev}-1GB_16bit.bin;
|
||||||
|
elif test "${module_variant}" = "0x06"; then
|
||||||
|
setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-pro-${soc_rev}-512MB_16bit.bin;
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use 'test -n ...' because 'test -z ...' does not work well on old versions of
|
||||||
|
# u-boot when the checked value is empty.
|
||||||
|
if test -n "${INSTALL_UBOOT_FILENAME}"; then
|
||||||
|
true;
|
||||||
|
else
|
||||||
|
echo "";
|
||||||
|
echo "[ERROR] Cannot determine U-Boot file for this module!";
|
||||||
|
echo "";
|
||||||
|
echo "1. Set variable 'INSTALL_UBOOT_FILENAME' depending on your ConnectCore 8X variant:";
|
||||||
|
echo " - For a QuadXPlus CPU with 1GB LPDDR4, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-pro-${soc_rev}-1GB_32bit.bin";
|
||||||
|
echo " - For a QuadXPlus CPU with 2GB LPDDR4, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-pro-${soc_rev}-2GB_32bit.bin";
|
||||||
|
echo " - For a DualX CPU with 1GB LPDDR4, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-pro-${soc_rev}-1GB_16bit.bin";
|
||||||
|
echo " - For a DualX CPU with 512MB LPDDR4, run:";
|
||||||
|
echo " => setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-pro-${soc_rev}-512MB_16bit.bin";
|
||||||
|
echo "";
|
||||||
|
echo "2. Run the install script again.";
|
||||||
|
echo "";
|
||||||
|
echo "Aborted";
|
||||||
|
echo "";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
|
||||||
|
setenv INSTALL_USBDEV 0
|
||||||
|
setenv INSTALL_LINUX_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx8x-sbc-pro.boot.vfat
|
||||||
|
setenv INSTALL_RECOVERY_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx8x-sbc-pro.recovery.vfat
|
||||||
|
setenv INSTALL_ROOTFS_FILENAME dey-image-qt-##GRAPHICAL_BACKEND##-ccimx8x-sbc-pro.ext4
|
||||||
|
|
||||||
|
# Check for presence of firmware files on the USB
|
||||||
|
for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do
|
||||||
|
if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then
|
||||||
|
echo "ERROR: Could not find file ${install_f}";
|
||||||
|
install_abort=1;
|
||||||
|
fi;
|
||||||
|
done
|
||||||
|
if test -n "${install_abort}"; then
|
||||||
|
echo "Aborted.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Skip user confirmation for U-Boot update
|
||||||
|
setenv forced_update 1
|
||||||
|
|
||||||
|
# Set bootdelay to zero so that firmware update is run immediately after
|
||||||
|
# the first reset.
|
||||||
|
setenv bootdelay 0
|
||||||
|
|
||||||
|
# Set target MMC device index to eMMC
|
||||||
|
setenv mmcdev 0
|
||||||
|
|
||||||
|
# Update U-Boot
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
echo ">> Installing U-Boot boot loader (target will reset)"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
update uboot usb ${INSTALL_USBDEV} fat ${INSTALL_UBOOT_FILENAME}
|
||||||
|
if test $? -eq 1; then
|
||||||
|
echo "[ERROR] Failed to update U-Boot boot loader!";
|
||||||
|
echo "";
|
||||||
|
echo "Aborted.";
|
||||||
|
exit;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set 'bootcmd' to the second part of the script that will
|
||||||
|
# - Reset environment to defaults
|
||||||
|
# - Save the environment
|
||||||
|
# - Force on-the-fly updates to avoid possible verification errors
|
||||||
|
# - Partition the eMMC user data area for Linux
|
||||||
|
# - Update the 'linux' partition
|
||||||
|
# - Update the 'recovery' partition
|
||||||
|
# - Update the 'rootfs' partition
|
||||||
|
# - Configure recovery to wipe 'update' partition
|
||||||
|
# - Disable on-the-fly updates
|
||||||
|
# - Run 'recovery' and let the system boot after
|
||||||
|
setenv bootcmd "
|
||||||
|
env default -a;
|
||||||
|
saveenv;
|
||||||
|
setenv otf-update yes;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Creating Linux partition table on the eMMC\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
run partition_mmc_linux;
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to create Linux partition table!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
usb start;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux kernel and device tree files\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update linux usb ${INSTALL_USBDEV} fat ${INSTALL_LINUX_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update linux partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing recovery\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update recovery usb ${INSTALL_USBDEV} fat ${INSTALL_RECOVERY_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update recovery partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Installing Linux root file system\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
update rootfs usb ${INSTALL_USBDEV} fat ${INSTALL_ROOTFS_FILENAME};
|
||||||
|
if test \$? -eq 1; then
|
||||||
|
echo \"[ERROR] Failed to update rootfs partition!\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"Aborted.\";
|
||||||
|
exit;
|
||||||
|
fi;
|
||||||
|
echo \"\";
|
||||||
|
setenv boot_recovery yes;
|
||||||
|
setenv recovery_command wipe_update;
|
||||||
|
setenv otf-update;
|
||||||
|
saveenv;
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
echo \">> Firmware installation complete. Rebooting into recovery mode for final deployment.\";
|
||||||
|
echo \"\";
|
||||||
|
echo \"\";
|
||||||
|
sleep 1;
|
||||||
|
reset;
|
||||||
|
"
|
||||||
|
|
||||||
|
saveenv
|
||||||
|
reset
|
||||||
|
|
@ -8,4 +8,4 @@ DEPENDS += "flex-native bison-native"
|
||||||
SRCBRANCH = "v2020.04/maint"
|
SRCBRANCH = "v2020.04/maint"
|
||||||
SRCREV = "${AUTOREV}"
|
SRCREV = "${AUTOREV}"
|
||||||
|
|
||||||
COMPATIBLE_MACHINE = "(ccimx8x)"
|
COMPATIBLE_MACHINE = "(ccimx8x|ccimx8m|ccimx6ul)"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
The M4 demo app version of each SoCs are followed:
|
||||||
|
* 2.8.1 -- i.MX 8DXL
|
||||||
|
* 2.8.0.1 -- i.MX 7ULP, 8MM, 8MQ, 8QM, 8QXP
|
||||||
|
* 2.6.0 -- i.MX 8DXL-Phantom
|
||||||
|
* 1.0.1 -- i.MX 7D
|
||||||
|
|
||||||
|
The M7 demo app version of each SoCs are followed:
|
||||||
|
* 2.8.1 -- i.MX 8MP
|
||||||
|
* 2.8.0.1 -- i.MX 8MN
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Copyright 2017-2020 NXP
|
||||||
|
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||||
|
|
||||||
|
require imx-mcore-demos-2.8.inc
|
||||||
|
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYING;md5=1b4db4b25c3a1e422c0c0ed64feb65d2"
|
||||||
|
|
||||||
|
SRC_URI[imx7ulp.md5sum] = "e08d9dd060ad7da050b169d81492e163"
|
||||||
|
SRC_URI[imx7ulp.sha256sum] = "079b84263b5522711a31acec9d290e8843c002fd5b314e5a9a1fddee9c039aa6"
|
||||||
|
|
||||||
|
SRC_URI[imx8mm.md5sum] = "0a132f5bc45958eb722c669f4766d079"
|
||||||
|
SRC_URI[imx8mm.sha256sum] = "500a7d775b5d2af3c3f54f425f0cb3d05dcbf255e7dd7bb38c981ce9010ebec1"
|
||||||
|
|
||||||
|
SRC_URI[imx8mq.md5sum] = "bc5df9ad5986fd5fee745a80feb72bb1"
|
||||||
|
SRC_URI[imx8mq.sha256sum] = "7ed6f251d08e4c6c2fcfe8aef89dc98f3b8cb6e11007c9f3d8073c502e85c054"
|
||||||
|
|
||||||
|
SRC_URI[imx8qm.md5sum] = "7bfcad2c582c528aaeb0226598754ab3"
|
||||||
|
SRC_URI[imx8qm.sha256sum] = "c669de065923753c818f6b3bad0687d1f49eb94ababd076096556815c030a7f3"
|
||||||
|
|
||||||
|
SRC_URI[imx8qx.md5sum] = "501dc76bb0a889d4d3aec8ab428eda89"
|
||||||
|
SRC_URI[imx8qx.sha256sum] = "3521608924aad04f5fd06444e385b3e8c2e2a63344c7a0956f7d53314c56f187"
|
||||||
|
|
||||||
|
COMPATIBLE_MACHINE = "(mx7ulp|mx8mm|mx8mq|mx8qm|mx8qxp)"
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
# Copyright 2017-2019 NXP
|
|
||||||
# Released under the MIT license (see COPYING.MIT for the terms)
|
|
||||||
|
|
||||||
require imx-m4-demos-2.inc
|
|
||||||
|
|
||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9"
|
|
||||||
|
|
||||||
SRC_URI[imx8qx.md5sum] = "d9cbcb6a5bf4a9e73399dfa82191670e"
|
|
||||||
SRC_URI[imx8qx.sha256sum] = "7800cdbebe07f426cdac50b0e295d64215164a767e79ca58bd917445c50e345f"
|
|
||||||
|
|
||||||
COMPATIBLE_MACHINE = "(mx8qxp)"
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
# Copyright 2017-2020 NXP
|
||||||
|
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||||
|
|
||||||
|
require imx-mcore-demos-2.8.inc
|
||||||
|
|
||||||
|
LIC_FILES_CHKSUM_mx8qxp = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9"
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYING;md5=983e4c77621568488dd902b27e0c2143"
|
||||||
|
|
||||||
|
SRC_URI[imx8dxl.md5sum] = "7f09bb52f744f60b6301c70c43081d96"
|
||||||
|
SRC_URI[imx8dxl.sha256sum] = "63427d2ff6089b5cec2fc3cfdbaf915f371ca34fa637b856afa6c8d6957e9abf"
|
||||||
|
|
||||||
|
COMPATIBLE_MACHINE = "(mx8dxl)"
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
# Copyright 2019-2020 NXP
|
||||||
|
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||||
|
|
||||||
|
require imx-mcore-demos-2.8.inc
|
||||||
|
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYING;md5=1b4db4b25c3a1e422c0c0ed64feb65d2"
|
||||||
|
|
||||||
|
SRC_URI[imx8mn.md5sum] = "3beaedc3fde76585551890df2659e61b"
|
||||||
|
SRC_URI[imx8mn.sha256sum] = "13ce4a19d51e19cfdee9203a943a57637d001840fe546cacb5a5c741e66bbb43"
|
||||||
|
|
||||||
|
COMPATIBLE_MACHINE = "(mx8mn)"
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
# Copyright 2019-2020 NXP
|
||||||
|
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||||
|
|
||||||
|
require imx-mcore-demos-2.8.inc
|
||||||
|
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYING;md5=983e4c77621568488dd902b27e0c2143"
|
||||||
|
|
||||||
|
SRC_URI[imx8mp.md5sum] = "a4be9423223bffb703d31db799c3b7d9"
|
||||||
|
SRC_URI[imx8mp.sha256sum] = "4a324f3da3bb027e4c1f92184ea63b1a0f037fc22e355ac49b8819fd45821b9a"
|
||||||
|
|
||||||
|
COMPATIBLE_MACHINE = "(mx8mp)"
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# Copyright 2017-2018 NXP
|
# Copyright 2017-2020 NXP
|
||||||
# Released under the MIT license (see COPYING.MIT for the terms)
|
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||||
|
|
||||||
SUMMARY = "i.MX M4 core Demo images"
|
SUMMARY = "i.MX M4/M7 core Demo images"
|
||||||
SECTION = "app"
|
SECTION = "app"
|
||||||
LICENSE = "Proprietary"
|
LICENSE = "Proprietary"
|
||||||
|
|
||||||
|
|
@ -9,16 +9,23 @@ inherit deploy fsl-eula2-unpack2
|
||||||
|
|
||||||
SOC ?= "INVALID"
|
SOC ?= "INVALID"
|
||||||
SOC_mx7ulp = "imx7ulp"
|
SOC_mx7ulp = "imx7ulp"
|
||||||
|
SOC_mx8dxl = "imx8dxl"
|
||||||
SOC_mx8mm = "imx8mm"
|
SOC_mx8mm = "imx8mm"
|
||||||
|
SOC_mx8mn = "imx8mn"
|
||||||
|
SOC_mx8mp = "imx8mp"
|
||||||
SOC_mx8mq = "imx8mq"
|
SOC_mx8mq = "imx8mq"
|
||||||
SOC_mx8qm = "imx8qm"
|
SOC_mx8qm = "imx8qm"
|
||||||
SOC_mx8qxp = "imx8qx"
|
SOC_mx8qxp = "imx8qx"
|
||||||
SOC_mx8dxl = "imx8dxl"
|
SOC_mx8phantomdxl = "imx8dxl-phantom"
|
||||||
|
|
||||||
IMX_PACKAGE_NAME = "${SOC}-m4-demo-${PV}"
|
MCORE_TYPE ?= "m4"
|
||||||
|
MCORE_TYPE_mx8mn = "m7"
|
||||||
|
MCORE_TYPE_mx8mp = "m7"
|
||||||
|
|
||||||
|
IMX_PACKAGE_NAME = "${SOC}-${MCORE_TYPE}-demo-${PV}"
|
||||||
SRC_URI_append = ";name=${SOC}"
|
SRC_URI_append = ";name=${SOC}"
|
||||||
|
|
||||||
SCR = "SCR-${SOC}-m4-demo.txt"
|
SCR = "SCR-${SOC}-${MCORE_TYPE}-demo.txt"
|
||||||
|
|
||||||
do_install () {
|
do_install () {
|
||||||
# install elf format binary to /lib/firmware
|
# install elf format binary to /lib/firmware
|
||||||
|
|
@ -33,6 +40,7 @@ do_deploy () {
|
||||||
# Install the demo binaries
|
# Install the demo binaries
|
||||||
install -m 0644 ${S}/*.${DEPLOY_FILE_EXT} ${DEPLOYDIR}/
|
install -m 0644 ${S}/*.${DEPLOY_FILE_EXT} ${DEPLOYDIR}/
|
||||||
}
|
}
|
||||||
|
|
||||||
addtask deploy after do_install
|
addtask deploy after do_install
|
||||||
|
|
||||||
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
|
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
# Copyright 2019-2020 NXP
|
|
||||||
# Released under the MIT license (see COPYING.MIT for the terms)
|
|
||||||
|
|
||||||
SUMMARY = "i.MX M7 core Demo images"
|
|
||||||
SECTION = "app"
|
|
||||||
LICENSE = "Proprietary"
|
|
||||||
|
|
||||||
inherit deploy fsl-eula2-unpack2
|
|
||||||
|
|
||||||
SOC ?= "INVALID"
|
|
||||||
SOC_mx8mn = "imx8mn"
|
|
||||||
SOC_mx8mp = "imx8mp"
|
|
||||||
|
|
||||||
IMX_PACKAGE_NAME = "${SOC}-m7-demo-${PV}"
|
|
||||||
SRC_URI_append = ";name=${SOC}"
|
|
||||||
|
|
||||||
SCR = "SCR-${SOC}-m7-demo.txt"
|
|
||||||
|
|
||||||
do_install () {
|
|
||||||
# install elf format binary to /lib/firmware
|
|
||||||
install -d ${D}${base_libdir}/firmware
|
|
||||||
install -m 0644 ${S}/*.elf ${D}${base_libdir}/firmware
|
|
||||||
}
|
|
||||||
|
|
||||||
DEPLOY_FILE_EXT ?= "bin"
|
|
||||||
DEPLOY_FILE_EXT_mx7ulp = "img"
|
|
||||||
|
|
||||||
do_deploy () {
|
|
||||||
# Install the demo binaries
|
|
||||||
install -m 0644 ${S}/*.${DEPLOY_FILE_EXT} ${DEPLOYDIR}/
|
|
||||||
}
|
|
||||||
addtask deploy after do_install
|
|
||||||
|
|
||||||
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
|
|
||||||
|
|
||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9"
|
|
||||||
|
|
||||||
SRC_URI[imx8mn.md5sum] = "21b718fab2c4e77c8a848667698d74d1"
|
|
||||||
SRC_URI[imx8mn.sha256sum] = "e877c7462b6ea87c498563842f42352d204eb28a65f35f7dc1fec643f84abb66"
|
|
||||||
|
|
||||||
SRC_URI[imx8mp.md5sum] = "3dd44131b41dd902a8ce1b53eb9a0cd6"
|
|
||||||
SRC_URI[imx8mp.sha256sum] = "c7ed19d1d164c910af114d58fc53628b6e237262e657e082ac7beb685f0398ec"
|
|
||||||
|
|
||||||
COMPATIBLE_MACHINE = "(mx8mn|mx8mp)"
|
|
||||||
|
|
@ -128,9 +128,15 @@ if [ "${CONFIG_SIGN_MODE}" = "HAB" ]; then
|
||||||
DEK_BLOB_OFFSET="0x100"
|
DEK_BLOB_OFFSET="0x100"
|
||||||
if [ -n "${CONFIG_DEK_PATH}" ]; then
|
if [ -n "${CONFIG_DEK_PATH}" ]; then
|
||||||
if [ ! -f "${CONFIG_DEK_PATH}" ]; then
|
if [ ! -f "${CONFIG_DEK_PATH}" ]; then
|
||||||
echo "DEK not found. Generating random 256 bit DEK."
|
if [ "${PLATFORM}" = "ccimx8mn" ]; then
|
||||||
[ -d $(dirname ${CONFIG_DEK_PATH}) ] || mkdir -p $(dirname ${CONFIG_DEK_PATH})
|
echo "DEK not found. Generating random 128 bit DEK."
|
||||||
dd if=/dev/urandom of="${CONFIG_DEK_PATH}" bs=32 count=1 >/dev/null 2>&1
|
[ -d $(dirname ${CONFIG_DEK_PATH}) ] || mkdir -p $(dirname ${CONFIG_DEK_PATH})
|
||||||
|
dd if=/dev/urandom of="${CONFIG_DEK_PATH}" bs=16 count=1 >/dev/null 2>&1
|
||||||
|
else
|
||||||
|
echo "DEK not found. Generating random 256 bit DEK."
|
||||||
|
[ -d $(dirname ${CONFIG_DEK_PATH}) ] || mkdir -p $(dirname ${CONFIG_DEK_PATH})
|
||||||
|
dd if=/dev/urandom of="${CONFIG_DEK_PATH}" bs=32 count=1 >/dev/null 2>&1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
dek_size="$((8 * $(stat -L -c %s ${CONFIG_DEK_PATH})))"
|
dek_size="$((8 * $(stat -L -c %s ${CONFIG_DEK_PATH})))"
|
||||||
if [ "${dek_size}" != "128" ] && [ "${dek_size}" != "192" ] && [ "${dek_size}" != "256" ]; then
|
if [ "${dek_size}" != "128" ] && [ "${dek_size}" != "192" ] && [ "${dek_size}" != "256" ]; then
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright 2017-2018 NXP
|
# Copyright 2017-2020 NXP
|
||||||
# Released under the MIT license (see COPYING.MIT for the terms)
|
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||||
|
|
||||||
SUMMARY = "Installs i.MX-specific kernel headers"
|
SUMMARY = "Installs i.MX-specific kernel headers"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
# Copyright (C) 2019-2020 NXP
|
||||||
|
|
||||||
|
require recipes-security/optee-imx/optee-client_3.2.0.imx.bb
|
||||||
|
|
||||||
|
SRC_URI_remove = "file://0001-libteec-refactor-_dprintf.patch"
|
||||||
|
|
||||||
|
B = "${WORKDIR}/build"
|
||||||
|
|
||||||
|
EXTRA_OEMAKE_remove = "CFG_SECURE_DATA_PATH=y"
|
||||||
|
EXTRA_OEMAKE += "O=${B}"
|
||||||
|
|
||||||
|
do_install() {
|
||||||
|
oe_runmake -C ${S} install
|
||||||
|
|
||||||
|
install -D -p -m0755 ${B}/export/usr/sbin/tee-supplicant ${D}${bindir}/tee-supplicant
|
||||||
|
|
||||||
|
install -D -p -m0644 ${B}/export/usr/lib/libteec.so.1.0 ${D}${libdir}/libteec.so.1.0
|
||||||
|
ln -sf libteec.so.1.0 ${D}${libdir}/libteec.so
|
||||||
|
ln -sf libteec.so.1.0 ${D}${libdir}/libteec.so.1
|
||||||
|
|
||||||
|
cp -a ${B}/export/usr/include ${D}/usr/
|
||||||
|
|
||||||
|
sed -i -e s:/etc:${sysconfdir}:g \
|
||||||
|
-e s:/usr/bin:${bindir}:g \
|
||||||
|
${WORKDIR}/tee-supplicant.service
|
||||||
|
|
||||||
|
install -D -p -m0644 ${WORKDIR}/tee-supplicant.service ${D}${systemd_system_unitdir}/tee-supplicant.service
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
../../../../../meta-freescale/recipes-security/optee-imx/optee-client/tee-supplicant.service
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
# Copyright (C) 2020 NXP
|
||||||
|
require optee-client.imx.inc
|
||||||
|
|
||||||
|
SRCBRANCH = "imx_5.4.47_2.2.0"
|
||||||
|
SRCREV = "2a77cf88d956c34cb4a1c191bea6113e327f5fe0"
|
||||||
|
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
# Copyright (C) 2019-2020 NXP
|
||||||
|
|
||||||
|
require recipes-security/optee-imx/optee-os_3.2.0.imx.bb
|
||||||
|
|
||||||
|
LIC_FILES_CHKSUM = "file://LICENSE;md5=c1f21c4f72f372ef38a5a4aee55ec173"
|
||||||
|
|
||||||
|
inherit python3native
|
||||||
|
DEPENDS_remove = "python-pycrypto-native"
|
||||||
|
DEPENDS_append = " python3-pycrypto-native python3-pyelftools-native"
|
||||||
|
|
||||||
|
# The recipe uses Machine overrides variable
|
||||||
|
# to select the suitable OP-TEE Platform Flavor.
|
||||||
|
# The reason is that from an OP-TEE point of view there
|
||||||
|
# are no differences between for example a imx8mnddr4evk
|
||||||
|
# and a imx8mnevk MACHINE. In this example, the PLATFORM_FLAVOR
|
||||||
|
# defined is imx8mnevk, the other MACHINE derivatives
|
||||||
|
# are just using the original one.
|
||||||
|
PLATFORM_FLAVOR_mx8mn = "mx8mnevk"
|
||||||
|
PLATFORM_FLAVOR_mx8qxp = "mx8qxpmek"
|
||||||
|
PLATFORM_FLAVOR_mx8mp = "mx8mpevk"
|
||||||
|
PLATFORM_FLAVOR_mx8dx = "mx8dxmek"
|
||||||
|
PLATFORM_FLAVOR_mx8dxl = "mx8dxlevk"
|
||||||
|
PLATFORM_FLAVOR_mx8phantomdxl = "mx8qxpmek"
|
||||||
|
|
||||||
|
OPTEE_CORE_LOG_LEVEL ?= "1"
|
||||||
|
OPTEE_TA_LOG_LEVEL ?= "0"
|
||||||
|
|
||||||
|
EXTRA_OEMAKE_remove = "NOWERROR=1 \
|
||||||
|
CFG_SECURE_DATA_PATH=y \
|
||||||
|
CFG_TEE_SDP_MEM_BASE=0xCC000000 \
|
||||||
|
CFG_TEE_SDP_MEM_SIZE=0x02000000 \
|
||||||
|
CFG_TEE_SDP_NONCACHE=y \
|
||||||
|
"
|
||||||
|
|
||||||
|
EXTRA_OEMAKE += "CFG_WERROR=y \
|
||||||
|
CFG_TEE_CORE_LOG_LEVEL=${OPTEE_CORE_LOG_LEVEL} \
|
||||||
|
CFG_TEE_TA_LOG_LEVEL=${OPTEE_TA_LOG_LEVEL} \
|
||||||
|
CFG_NXPCRYPT=y \
|
||||||
|
CFG_GEN_DEK_BLOB=y \
|
||||||
|
"
|
||||||
|
|
||||||
|
do_compile () {
|
||||||
|
unset LDFLAGS
|
||||||
|
export CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_HOST}"
|
||||||
|
oe_runmake -C ${S} all
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
# Copyright (C) 2020 NXP
|
||||||
|
require optee-os.imx.inc
|
||||||
|
|
||||||
|
DEPENDS_append = " python3-pycryptodomex-native"
|
||||||
|
|
||||||
|
SRCBRANCH = "imx_5.4.47_2.2.0"
|
||||||
|
SRCREV = "b3914e547eaf90684b5630921d609126634ce64b"
|
||||||
|
|
||||||
|
# tee-init_load_addr.txt has been remove in lates optee-os version.
|
||||||
|
# to keep backward compatibility with existing optee-os recipe.
|
||||||
|
do_compile_append () {
|
||||||
|
if [ "${OPTEE_ARCH}" != "arm64" ]; then
|
||||||
|
IMX_LOAD_ADDR=`${TARGET_PREFIX}readelf -h ${B}/core/tee.elf | grep "Entry point address" | awk '{print $4}'` && \
|
||||||
|
echo ${IMX_LOAD_ADDR} > ${B}/core/tee-init_load_addr.txt
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
# Copyright (C) 2019-2020 NXP
|
||||||
|
|
||||||
|
require recipes-security/optee-imx/optee-test_3.2.0.imx.bb
|
||||||
|
|
||||||
|
inherit python3native
|
||||||
|
DEPENDS_remove = "python-pycrypto-native"
|
||||||
|
DEPENDS_append = " python3-pycrypto-native"
|
||||||
|
|
||||||
|
SRC_URI_remove = "file://0001-regression-4011-correct-potential-overflow.patch \
|
||||||
|
file://0001-xtest-prevent-unexpected-build-warning-with-strncpy.patch \
|
||||||
|
file://0003-sock_server-fix-compilation-against-musl-sys-errno.h.patch \
|
||||||
|
file://0004-build-ignore-declaration-after-statement-warnings.patch \
|
||||||
|
file://0005-benchmark_1000-fix-compilation-against-musl-uint.patch \
|
||||||
|
file://0006-regression_8100-use-null-terminated-strings-with-fil.patch \
|
||||||
|
"
|
||||||
|
B = "${WORKDIR}/build"
|
||||||
|
|
||||||
|
TA_DEV_KIT_DIR_aarch64 = "${STAGING_INCDIR}/optee/export-user_ta_arm64/"
|
||||||
|
OPTEE_ARCH_aarch64 = "arm64"
|
||||||
|
TA_DEV_KIT_DIR_arm = "${STAGING_INCDIR}/optee/export-user_ta_arm32/"
|
||||||
|
OPTEE_ARCH_arm = "arm"
|
||||||
|
|
||||||
|
EXTRA_OEMAKE = " \
|
||||||
|
TA_DEV_KIT_DIR=${TA_DEV_KIT_DIR} \
|
||||||
|
ARCH=${OPTEE_ARCH} \
|
||||||
|
OPTEE_CLIENT_EXPORT=${STAGING_DIR_HOST}/usr \
|
||||||
|
CROSS_COMPILE_HOST=${HOST_PREFIX} \
|
||||||
|
CROSS_COMPILE_TA=${HOST_PREFIX} \
|
||||||
|
CROSS_COMPILE=${HOST_PREFIX} \
|
||||||
|
OPTEE_OPENSSL_EXPORT=${STAGING_INCDIR}/ \
|
||||||
|
-C ${S} O=${B} \
|
||||||
|
"
|
||||||
|
do_compile_prepend () {
|
||||||
|
export CXXFLAGS="${CXXFLAGS} --sysroot=${STAGING_DIR_HOST}"
|
||||||
|
}
|
||||||
|
|
||||||
|
do_install () {
|
||||||
|
install -d ${D}/usr/bin
|
||||||
|
install ${B}/xtest/xtest ${D}/usr/bin/
|
||||||
|
|
||||||
|
install -d ${D}/lib/optee_armtz
|
||||||
|
find ${B}/ta -name '*.ta' | while read name; do
|
||||||
|
install -m 444 $name ${D}/lib/optee_armtz/
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
From 79330c8383e02e91a355964a3cc7b932d03c2517 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Chunrong Guo <chunrong.guo@nxp.com>
|
||||||
|
Date: Wed, 10 Jul 2019 11:09:01 +0200
|
||||||
|
Subject: [PATCH] fix build failure with GCC 9
|
||||||
|
|
||||||
|
Upstream-Status: Inappropriate [embedded specific]
|
||||||
|
|
||||||
|
Signed-off-by: C.r. Guo <nxa13725@lsv07004.swis.us-cdc01.nxp.com>
|
||||||
|
---
|
||||||
|
host/xtest/Makefile | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/host/xtest/Makefile b/host/xtest/Makefile
|
||||||
|
index e4e2881..e86e056 100644
|
||||||
|
--- a/host/xtest/Makefile
|
||||||
|
+++ b/host/xtest/Makefile
|
||||||
|
@@ -152,7 +152,7 @@ CFLAGS += -Wall -Wcast-align -Werror \
|
||||||
|
-Wmissing-include-dirs -Wmissing-noreturn \
|
||||||
|
-Wmissing-prototypes -Wnested-externs -Wpointer-arith \
|
||||||
|
-Wshadow -Wstrict-prototypes -Wswitch-default \
|
||||||
|
- -Wwrite-strings \
|
||||||
|
+ -Wwrite-strings -Wno-format-overflow \
|
||||||
|
-Wno-missing-field-initializers -Wno-format-zero-length
|
||||||
|
endif
|
||||||
|
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
# Copyright (C) 2020 NXP
|
||||||
|
require optee-test.imx.inc
|
||||||
|
|
||||||
|
DEPENDS_append = " python3-pycryptodomex-native"
|
||||||
|
|
||||||
|
SRCBRANCH = "imx_5.4.47_2.2.0"
|
||||||
|
SRCREV = "30efcbeaf8864d0f2a5c4be593a5411001fab31b"
|
||||||
|
|
||||||
|
do_compile_prepend () {
|
||||||
|
export CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_HOST}"
|
||||||
|
}
|
||||||
|
|
@ -21,7 +21,8 @@ FSTYPES_WHITELIST = " \
|
||||||
|
|
||||||
generate_installer_zip () {
|
generate_installer_zip () {
|
||||||
# Get list of files to pack
|
# Get list of files to pack
|
||||||
INSTALLER_FILELIST="${DEPLOY_DIR_IMAGE}/install_linux_fw_sd.scr"
|
INSTALLER_FILELIST="${DEPLOY_DIR_IMAGE}/install_linux_fw_sd.scr \
|
||||||
|
${DEPLOY_DIR_IMAGE}/install_linux_fw_usb.scr"
|
||||||
# Get UUU installation script
|
# Get UUU installation script
|
||||||
if readlink -e "${DEPLOY_DIR_IMAGE}/install_linux_fw_uuu.sh"; then
|
if readlink -e "${DEPLOY_DIR_IMAGE}/install_linux_fw_uuu.sh"; then
|
||||||
INSTALLER_FILELIST="${INSTALLER_FILELIST} ${DEPLOY_DIR_IMAGE}/install_linux_fw_uuu.sh"
|
INSTALLER_FILELIST="${INSTALLER_FILELIST} ${DEPLOY_DIR_IMAGE}/install_linux_fw_uuu.sh"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,88 @@
|
||||||
|
# Allow checking of required and conflicting DISTRO_FEATURES
|
||||||
|
#
|
||||||
|
# ANY_OF_DISTRO_FEATURES: ensure at least one item on this list is included
|
||||||
|
# in DISTRO_FEATURES.
|
||||||
|
# REQUIRED_DISTRO_FEATURES: ensure every item on this list is included
|
||||||
|
# in DISTRO_FEATURES.
|
||||||
|
# CONFLICT_DISTRO_FEATURES: ensure no item in this list is included in
|
||||||
|
# DISTRO_FEATURES.
|
||||||
|
# ANY_OF_MACHINE_FEATURES: ensure at least one item on this list is included
|
||||||
|
# in MACHINE_FEATURES.
|
||||||
|
# REQUIRED_MACHINE_FEATURES: ensure every item on this list is included
|
||||||
|
# in MACHINE_FEATURES.
|
||||||
|
# CONFLICT_MACHINE_FEATURES: ensure no item in this list is included in
|
||||||
|
# MACHINE_FEATURES.
|
||||||
|
# ANY_OF_COMBINED_FEATURES: ensure at least one item on this list is included
|
||||||
|
# in COMBINED_FEATURES.
|
||||||
|
# REQUIRED_COMBINED_FEATURES: ensure every item on this list is included
|
||||||
|
# in COMBINED_FEATURES.
|
||||||
|
# CONFLICT_COMBINED_FEATURES: ensure no item in this list is included in
|
||||||
|
# COMBINED_FEATURES.
|
||||||
|
#
|
||||||
|
# Copyright 2019 (C) Texas Instruments Inc.
|
||||||
|
# Copyright 2013 (C) O.S. Systems Software LTDA.
|
||||||
|
|
||||||
|
python () {
|
||||||
|
if d.getVar('PARSE_ALL_RECIPES', False):
|
||||||
|
return
|
||||||
|
|
||||||
|
# Assume at least one var is set.
|
||||||
|
distro_features = set((d.getVar('DISTRO_FEATURES') or '').split())
|
||||||
|
|
||||||
|
any_of_distro_features = set((d.getVar('ANY_OF_DISTRO_FEATURES') or '').split())
|
||||||
|
if any_of_distro_features:
|
||||||
|
if set.isdisjoint(any_of_distro_features, distro_features):
|
||||||
|
raise bb.parse.SkipRecipe("one of '%s' needs to be in DISTRO_FEATURES" % ' '.join(any_of_distro_features))
|
||||||
|
|
||||||
|
required_distro_features = set((d.getVar('REQUIRED_DISTRO_FEATURES') or '').split())
|
||||||
|
if required_distro_features:
|
||||||
|
missing = set.difference(required_distro_features, distro_features)
|
||||||
|
if missing:
|
||||||
|
raise bb.parse.SkipRecipe("missing required distro feature%s '%s' (not in DISTRO_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing)))
|
||||||
|
|
||||||
|
conflict_distro_features = set((d.getVar('CONFLICT_DISTRO_FEATURES') or '').split())
|
||||||
|
if conflict_distro_features:
|
||||||
|
conflicts = set.intersection(conflict_distro_features, distro_features)
|
||||||
|
if conflicts:
|
||||||
|
raise bb.parse.SkipRecipe("conflicting distro feature%s '%s' (in DISTRO_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts)))
|
||||||
|
|
||||||
|
# Assume at least one var is set.
|
||||||
|
machine_features = set((d.getVar('MACHINE_FEATURES') or '').split())
|
||||||
|
|
||||||
|
any_of_machine_features = set((d.getVar('ANY_OF_MACHINE_FEATURES') or '').split())
|
||||||
|
if any_of_machine_features:
|
||||||
|
if set.isdisjoint(any_of_machine_features, machine_features):
|
||||||
|
raise bb.parse.SkipRecipe("one of '%s' needs to be in MACHINE_FEATURES" % ' '.join(any_of_machine_features))
|
||||||
|
|
||||||
|
required_machine_features = set((d.getVar('REQUIRED_MACHINE_FEATURES') or '').split())
|
||||||
|
if required_machine_features:
|
||||||
|
missing = set.difference(required_machine_features, machine_features)
|
||||||
|
if missing:
|
||||||
|
raise bb.parse.SkipRecipe("missing required machine feature%s '%s' (not in MACHINE_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing)))
|
||||||
|
|
||||||
|
conflict_machine_features = set((d.getVar('CONFLICT_MACHINE_FEATURES') or '').split())
|
||||||
|
if conflict_machine_features:
|
||||||
|
conflicts = set.intersection(conflict_machine_features, machine_features)
|
||||||
|
if conflicts:
|
||||||
|
raise bb.parse.SkipRecipe("conflicting machine feature%s '%s' (in MACHINE_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts)))
|
||||||
|
|
||||||
|
# Assume at least one var is set.
|
||||||
|
combined_features = set((d.getVar('COMBINED_FEATURES') or '').split())
|
||||||
|
|
||||||
|
any_of_combined_features = set((d.getVar('ANY_OF_COMBINED_FEATURES') or '').split())
|
||||||
|
if any_of_combined_features:
|
||||||
|
if set.isdisjoint(any_of_combined_features, combined_features):
|
||||||
|
raise bb.parse.SkipRecipe("one of '%s' needs to be in COMBINED_FEATURES" % ' '.join(any_of_combined_features))
|
||||||
|
|
||||||
|
required_combined_features = set((d.getVar('REQUIRED_COMBINED_FEATURES') or '').split())
|
||||||
|
if required_combined_features:
|
||||||
|
missing = set.difference(required_combined_features, combined_features)
|
||||||
|
if missing:
|
||||||
|
raise bb.parse.SkipRecipe("missing required machine feature%s '%s' (not in COMBINED_FEATURES)" % ('s' if len(missing) > 1 else '', ' '.join(missing)))
|
||||||
|
|
||||||
|
conflict_combined_features = set((d.getVar('CONFLICT_COMBINED_FEATURES') or '').split())
|
||||||
|
if conflict_combined_features:
|
||||||
|
conflicts = set.intersection(conflict_combined_features, combined_features)
|
||||||
|
if conflicts:
|
||||||
|
raise bb.parse.SkipRecipe("conflicting machine feature%s '%s' (in COMBINED_FEATURES)" % ('s' if len(conflicts) > 1 else '', ' '.join(conflicts)))
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
DISTRO = "dey"
|
DISTRO = "dey"
|
||||||
DISTRO_NAME = "Digi Embedded Yocto"
|
DISTRO_NAME = "Digi Embedded Yocto"
|
||||||
DISTRO_VERSION = "3.0-r2"
|
DISTRO_VERSION = "3.0-r3"
|
||||||
DISTRO_CODENAME = "zeus"
|
DISTRO_CODENAME = "zeus"
|
||||||
SDK_VENDOR = "-deysdk"
|
SDK_VENDOR = "-deysdk"
|
||||||
SDK_VERSION := "${@d.getVar('DISTRO_VERSION')}"
|
SDK_VERSION := "${@d.getVar('DISTRO_VERSION')}"
|
||||||
|
|
@ -42,6 +42,7 @@ FEATURE_PACKAGES_dey-gstreamer = "packagegroup-dey-gstreamer"
|
||||||
FEATURE_PACKAGES_dey-network = "packagegroup-dey-network"
|
FEATURE_PACKAGES_dey-network = "packagegroup-dey-network"
|
||||||
FEATURE_PACKAGES_dey-qt = "packagegroup-dey-qt"
|
FEATURE_PACKAGES_dey-qt = "packagegroup-dey-qt"
|
||||||
FEATURE_PACKAGES_dey-trustfence = "packagegroup-dey-trustfence"
|
FEATURE_PACKAGES_dey-trustfence = "packagegroup-dey-trustfence"
|
||||||
|
FEATURE_PACKAGES_dey-webkit = "packagegroup-dey-webkit"
|
||||||
FEATURE_PACKAGES_dey-wireless = "packagegroup-dey-wireless"
|
FEATURE_PACKAGES_dey-wireless = "packagegroup-dey-wireless"
|
||||||
|
|
||||||
# Our layer only provides version 5.41, which we want to keep because
|
# Our layer only provides version 5.41, which we want to keep because
|
||||||
|
|
@ -69,6 +70,9 @@ PREFERRED_VERSION_libsoc = "git"
|
||||||
# recipe in case there are NXP-specific changes in it
|
# recipe in case there are NXP-specific changes in it
|
||||||
PREFERRED_PROVIDER_opencl-headers ?= "imx-gpu-viv"
|
PREFERRED_PROVIDER_opencl-headers ?= "imx-gpu-viv"
|
||||||
|
|
||||||
|
# Use the FDO backend for WPE WebKit
|
||||||
|
PREFERRED_PROVIDER_virtual/wpebackend = "wpebackend-fdo"
|
||||||
|
|
||||||
SDK_NAME = "${DISTRO}-${TCLIBC}-${SDKMACHINE}-${IMAGE_BASENAME}-${TUNE_PKGARCH}-${MACHINE}"
|
SDK_NAME = "${DISTRO}-${TCLIBC}-${SDKMACHINE}-${IMAGE_BASENAME}-${TUNE_PKGARCH}-${MACHINE}"
|
||||||
SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}/${MACHINE}"
|
SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}/${MACHINE}"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,10 @@ BBPATH .= ":${LAYERDIR}"
|
||||||
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
|
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
|
||||||
${LAYERDIR}/recipes-*/*/*.bbappend"
|
${LAYERDIR}/recipes-*/*/*.bbappend"
|
||||||
|
|
||||||
# Let us add layer-specific bbappends which are only applied when that
|
BBFILES_DYNAMIC += " \
|
||||||
# layer is included in our configuration
|
webkit:${LAYERDIR}/dynamic-layers/webkit/*/*/*.bb \
|
||||||
BBFILES += "${@' '.join('${LAYERDIR}/other-layers/%s/recipes*/*/*.bbappend' % layer \
|
webkit:${LAYERDIR}/dynamic-layers/webkit/*/*/*.bbappend \
|
||||||
for layer in BBFILE_COLLECTIONS.split())}"
|
"
|
||||||
|
|
||||||
BBFILE_COLLECTIONS += "digi-dey"
|
BBFILE_COLLECTIONS += "digi-dey"
|
||||||
BBFILE_PATTERN_digi-dey := "^${LAYERDIR}/"
|
BBFILE_PATTERN_digi-dey := "^${LAYERDIR}/"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,84 @@
|
||||||
|
From: Zan Dobersek <zdobersek@igalia.com>
|
||||||
|
Date: Tue, 10 Nov 2020 09:23:16 +0100
|
||||||
|
Subject: [PATCH 1/4] platform: add a common EGL proc address loader with dlsym
|
||||||
|
fallback
|
||||||
|
|
||||||
|
Provide a common EGL proc address loader function that incorporates
|
||||||
|
a dlsym-based fallback in case eglGetProcAddress() refuses to find
|
||||||
|
an otherwise-existing entrypoint.
|
||||||
|
|
||||||
|
This should avoid some drivers that fail to handle proc address
|
||||||
|
requests for specific entrypoints, but have those entrypoints
|
||||||
|
exported as regular symbols loadable through dlsym().
|
||||||
|
---
|
||||||
|
platform/cog-platform-drm.c | 4 +++-
|
||||||
|
platform/cog-platform-fdo.c | 4 +++-
|
||||||
|
platform/common/egl-proc-address.h | 15 +++++++++++++++
|
||||||
|
3 files changed, 21 insertions(+), 2 deletions(-)
|
||||||
|
create mode 100644 platform/common/egl-proc-address.h
|
||||||
|
|
||||||
|
diff --git a/platform/cog-platform-drm.c b/platform/cog-platform-drm.c
|
||||||
|
index 6fa4a25..27b4521 100644
|
||||||
|
--- a/platform/cog-platform-drm.c
|
||||||
|
+++ b/platform/cog-platform-drm.c
|
||||||
|
@@ -16,6 +16,8 @@
|
||||||
|
#include <EGL/egl.h>
|
||||||
|
#include <EGL/eglext.h>
|
||||||
|
|
||||||
|
+#include "common/egl-proc-address.h"
|
||||||
|
+
|
||||||
|
|
||||||
|
#if !defined(EGL_EXT_platform_base)
|
||||||
|
typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list);
|
||||||
|
@@ -379,7 +381,7 @@ init_egl (void)
|
||||||
|
{
|
||||||
|
static PFNEGLGETPLATFORMDISPLAYEXTPROC s_eglGetPlatformDisplay = NULL;
|
||||||
|
if (!s_eglGetPlatformDisplay)
|
||||||
|
- s_eglGetPlatformDisplay = (PFNEGLGETPLATFORMDISPLAYEXTPROC) eglGetProcAddress ("eglGetPlatformDisplayEXT");
|
||||||
|
+ s_eglGetPlatformDisplay = (PFNEGLGETPLATFORMDISPLAYEXTPROC) load_egl_proc_address ("eglGetPlatformDisplayEXT");
|
||||||
|
|
||||||
|
if (s_eglGetPlatformDisplay)
|
||||||
|
egl_data.display = s_eglGetPlatformDisplay (EGL_PLATFORM_GBM_KHR, gbm_data.device, NULL);
|
||||||
|
diff --git a/platform/cog-platform-fdo.c b/platform/cog-platform-fdo.c
|
||||||
|
index 960bc98..7bdf075 100644
|
||||||
|
--- a/platform/cog-platform-fdo.c
|
||||||
|
+++ b/platform/cog-platform-fdo.c
|
||||||
|
@@ -32,6 +32,8 @@
|
||||||
|
#include <xkbcommon/xkbcommon-compose.h>
|
||||||
|
#include <locale.h>
|
||||||
|
|
||||||
|
+#include "common/egl-proc-address.h"
|
||||||
|
+
|
||||||
|
#include "xdg-shell-client.h"
|
||||||
|
#include "fullscreen-shell-unstable-v1-client.h"
|
||||||
|
#include "presentation-time-client.h"
|
||||||
|
@@ -1586,7 +1588,7 @@ on_export_fdo_egl_image(void *data, struct wpe_fdo_egl_exported_image *image)
|
||||||
|
s_eglCreateWaylandBufferFromImageWL;
|
||||||
|
if (s_eglCreateWaylandBufferFromImageWL == NULL) {
|
||||||
|
s_eglCreateWaylandBufferFromImageWL = (PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL)
|
||||||
|
- eglGetProcAddress ("eglCreateWaylandBufferFromImageWL");
|
||||||
|
+ load_egl_proc_address ("eglCreateWaylandBufferFromImageWL");
|
||||||
|
g_assert (s_eglCreateWaylandBufferFromImageWL);
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/platform/common/egl-proc-address.h b/platform/common/egl-proc-address.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..44dd6a9
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/platform/common/egl-proc-address.h
|
||||||
|
@@ -0,0 +1,15 @@
|
||||||
|
+#pragma once
|
||||||
|
+
|
||||||
|
+#define __USE_GNU
|
||||||
|
+#include <dlfcn.h>
|
||||||
|
+
|
||||||
|
+#include <EGL/egl.h>
|
||||||
|
+
|
||||||
|
+static void*
|
||||||
|
+load_egl_proc_address (const char *name)
|
||||||
|
+{
|
||||||
|
+ void *proc_address = eglGetProcAddress (name);
|
||||||
|
+ if (!proc_address)
|
||||||
|
+ proc_address = dlsym (RTLD_NEXT, name);
|
||||||
|
+ return proc_address;
|
||||||
|
+}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
From: Zan Dobersek <zdobersek@igalia.com>
|
||||||
|
Date: Tue, 10 Nov 2020 09:42:01 +0100
|
||||||
|
Subject: [PATCH 2/4] egl-proc-address.h: add a license header.
|
||||||
|
|
||||||
|
---
|
||||||
|
platform/common/egl-proc-address.h | 7 +++++++
|
||||||
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/platform/common/egl-proc-address.h b/platform/common/egl-proc-address.h
|
||||||
|
index 44dd6a9..83ad90a 100644
|
||||||
|
--- a/platform/common/egl-proc-address.h
|
||||||
|
+++ b/platform/common/egl-proc-address.h
|
||||||
|
@@ -1,3 +1,10 @@
|
||||||
|
+/*
|
||||||
|
+ * egl-proc-address.h
|
||||||
|
+ * Copyright (C) 2020 Igalia S.L.
|
||||||
|
+ *
|
||||||
|
+ * Distributed under terms of the MIT license.
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define __USE_GNU
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
From: Gabriel Valcazar <gabriel.valcazar@digi.com>
|
||||||
|
Date: Tue, 10 Nov 2020 16:32:15 +0100
|
||||||
|
Subject: [PATCH 3/4] cog: remove the --platform parameter and hardcode the FDO
|
||||||
|
platform
|
||||||
|
|
||||||
|
We don't want users to accidentally generate errors by using different
|
||||||
|
platforms, so always use the FDO one by default.
|
||||||
|
|
||||||
|
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
|
||||||
|
---
|
||||||
|
cog.c | 27 ++++-----------------------
|
||||||
|
1 file changed, 4 insertions(+), 23 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/cog.c b/cog.c
|
||||||
|
index 950b14d..5f47d87 100644
|
||||||
|
--- a/cog.c
|
||||||
|
+++ b/cog.c
|
||||||
|
@@ -43,10 +43,7 @@ static struct {
|
||||||
|
GStrv arguments;
|
||||||
|
char *background_color;
|
||||||
|
#if !COG_USE_WEBKITGTK
|
||||||
|
- union {
|
||||||
|
- char *platform_name;
|
||||||
|
- CogPlatform *platform;
|
||||||
|
- };
|
||||||
|
+ CogPlatform *platform;
|
||||||
|
#endif // !COG_USE_WEBKITGTK
|
||||||
|
union {
|
||||||
|
char *action_name;
|
||||||
|
@@ -95,11 +92,6 @@ static GOptionEntry s_cli_options[] =
|
||||||
|
{ "bg-color", 'b', 0, G_OPTION_ARG_STRING, &s_options.background_color,
|
||||||
|
"Background color, as a CSS name or in #RRGGBBAA hex syntax (default: white)",
|
||||||
|
"BG_COLOR" },
|
||||||
|
-#if !COG_USE_WEBKITGTK
|
||||||
|
- { "platform", 'P', 0, G_OPTION_ARG_STRING, &s_options.platform_name,
|
||||||
|
- "Platform plug-in to use.",
|
||||||
|
- "NAME" },
|
||||||
|
-#endif // !COG_USE_WEBKITGTK
|
||||||
|
{ "web-extensions-dir", '\0', 0, G_OPTION_ARG_STRING, &s_options.web_extensions_dir,
|
||||||
|
"Load Web Extensions from given directory.",
|
||||||
|
"PATH"},
|
||||||
|
@@ -301,21 +293,10 @@ platform_setup (CogShell *shell)
|
||||||
|
* a given platform.
|
||||||
|
*/
|
||||||
|
|
||||||
|
- g_debug ("%s: Platform name: %s", __func__, s_options.platform_name);
|
||||||
|
-
|
||||||
|
- if (!s_options.platform_name)
|
||||||
|
- return FALSE;
|
||||||
|
-
|
||||||
|
- g_autofree char *platform_soname =
|
||||||
|
- g_strdup_printf ("libcogplatform-%s.so", s_options.platform_name);
|
||||||
|
- g_clear_pointer (&s_options.platform_name, g_free);
|
||||||
|
-
|
||||||
|
- g_debug ("%s: Platform plugin: %s", __func__, platform_soname);
|
||||||
|
-
|
||||||
|
g_autoptr(CogPlatform) platform = cog_platform_new ();
|
||||||
|
- if (!cog_platform_try_load (platform, platform_soname)) {
|
||||||
|
- g_warning ("Could not load: %s (possible cause: %s).\n",
|
||||||
|
- platform_soname, strerror (errno));
|
||||||
|
+ if (!cog_platform_try_load (platform, "libcogplatform-fdo.so")) {
|
||||||
|
+ g_warning ("Could not load: libcogplatform-fdo.so (possible cause: %s).\n",
|
||||||
|
+ strerror (errno));
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
From: Gabriel Valcazar <gabriel.valcazar@digi.com>
|
||||||
|
Date: Tue, 10 Nov 2020 16:36:21 +0100
|
||||||
|
Subject: [PATCH 4/4] cog-platform-fdo: always use fullscreen mode
|
||||||
|
|
||||||
|
Otherwise, the browser will spawn on a random place on the desktop every time.
|
||||||
|
|
||||||
|
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
|
||||||
|
---
|
||||||
|
platform/cog-platform-fdo.c | 44 ++++++++++---------------------------
|
||||||
|
1 file changed, 12 insertions(+), 32 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/platform/cog-platform-fdo.c b/platform/cog-platform-fdo.c
|
||||||
|
index 7bdf075..08b0b21 100644
|
||||||
|
--- a/platform/cog-platform-fdo.c
|
||||||
|
+++ b/platform/cog-platform-fdo.c
|
||||||
|
@@ -1911,39 +1911,19 @@ create_window (GError **error)
|
||||||
|
configure_surface_geometry (0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
- const char* env_var;
|
||||||
|
- if ((env_var = g_getenv ("COG_PLATFORM_FDO_VIEW_FULLSCREEN")) &&
|
||||||
|
- g_ascii_strtoll (env_var, NULL, 10) > 0)
|
||||||
|
- {
|
||||||
|
- win_data.is_maximized = false;
|
||||||
|
- win_data.is_fullscreen = true;
|
||||||
|
-
|
||||||
|
- if (wl_data.xdg_shell != NULL) {
|
||||||
|
- xdg_toplevel_set_fullscreen (win_data.xdg_toplevel, NULL);
|
||||||
|
- } else if (wl_data.shell != NULL) {
|
||||||
|
- wl_shell_surface_set_fullscreen (win_data.shell_surface,
|
||||||
|
- WL_SHELL_SURFACE_FULLSCREEN_METHOD_SCALE,
|
||||||
|
- 0,
|
||||||
|
- NULL);
|
||||||
|
- } else {
|
||||||
|
- g_warning ("No available shell capable of fullscreening.");
|
||||||
|
- win_data.is_fullscreen = false;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- else if ((env_var = g_getenv ("COG_PLATFORM_FDO_VIEW_MAXIMIZE")) &&
|
||||||
|
- g_ascii_strtoll (env_var, NULL, 10) > 0)
|
||||||
|
- {
|
||||||
|
- win_data.is_maximized = true;
|
||||||
|
- win_data.is_fullscreen = false;
|
||||||
|
+ win_data.is_maximized = false;
|
||||||
|
+ win_data.is_fullscreen = true;
|
||||||
|
|
||||||
|
- if (wl_data.xdg_shell != NULL) {
|
||||||
|
- xdg_toplevel_set_maximized (win_data.xdg_toplevel);
|
||||||
|
- } else if (wl_data.shell != NULL) {
|
||||||
|
- wl_shell_surface_set_maximized (win_data.shell_surface, NULL);
|
||||||
|
- } else {
|
||||||
|
- g_warning ("No available shell capable of maximizing.");
|
||||||
|
- win_data.is_maximized = false;
|
||||||
|
- }
|
||||||
|
+ if (wl_data.xdg_shell != NULL) {
|
||||||
|
+ xdg_toplevel_set_fullscreen (win_data.xdg_toplevel, NULL);
|
||||||
|
+ } else if (wl_data.shell != NULL) {
|
||||||
|
+ wl_shell_surface_set_fullscreen (win_data.shell_surface,
|
||||||
|
+ WL_SHELL_SURFACE_FULLSCREEN_METHOD_SCALE,
|
||||||
|
+ 0,
|
||||||
|
+ NULL);
|
||||||
|
+ } else {
|
||||||
|
+ g_warning ("No available shell capable of fullscreening.");
|
||||||
|
+ win_data.is_fullscreen = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
# Copyright 2020, Digi International Inc.
|
||||||
|
|
||||||
|
FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
|
||||||
|
|
||||||
|
SRC_URI_append = " \
|
||||||
|
file://0001-platform-add-a-common-EGL-proc-address-loader-with-d.patch \
|
||||||
|
file://0002-egl-proc-address.h-add-a-license-header.patch \
|
||||||
|
file://0003-cog-remove-the-platform-parameter-and-hardcode-the-F.patch \
|
||||||
|
file://0004-cog-platform-fdo-always-use-fullscreen-mode.patch \
|
||||||
|
"
|
||||||
|
|
||||||
|
EXTRA_OECMAKE += "-DCOG_HOME_URI=http://127.0.0.1/"
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
# Copyright (C) 2020 Digi International.
|
||||||
|
|
||||||
|
# By default, use the Busybox HTTP daemon as the webserver for the examples.
|
||||||
|
WEBSERVER_PACKAGE ?= "busybox-httpd"
|
||||||
|
WEBSERVER_ROOT ?= "srv/www"
|
||||||
|
|
||||||
|
# List of samples we want accesible via the landing page
|
||||||
|
WEBGL_SAMPLES = " \
|
||||||
|
aquarium \
|
||||||
|
blob \
|
||||||
|
dynamic-cubemap \
|
||||||
|
electricflower \
|
||||||
|
field \
|
||||||
|
multiple-views \
|
||||||
|
spacerocks \
|
||||||
|
toon-shading \
|
||||||
|
"
|
||||||
|
# Folders containing elements required by the samples we've selected
|
||||||
|
WEBGL_SAMPLE_DEPS = " \
|
||||||
|
colorpicker \
|
||||||
|
css \
|
||||||
|
fishtank \
|
||||||
|
fonts \
|
||||||
|
gradient-editor \
|
||||||
|
images \
|
||||||
|
jquery-ui-1.8.2.custom \
|
||||||
|
js \
|
||||||
|
lots-o-objects \
|
||||||
|
shared \
|
||||||
|
tdl \
|
||||||
|
"
|
||||||
|
# List of all folders that need to be installed
|
||||||
|
WEBGL_REQUIRED = " \
|
||||||
|
${WEBGL_SAMPLES} \
|
||||||
|
${WEBGL_SAMPLE_DEPS} \
|
||||||
|
"
|
||||||
|
|
||||||
|
# List of video sample formats
|
||||||
|
VIDEO_FORMATS = " \
|
||||||
|
mov \
|
||||||
|
webm \
|
||||||
|
"
|
||||||
|
# Name of the video sample
|
||||||
|
VIDEO_NAME = "big_buck_bunny"
|
||||||
|
VIDEO_NAME_UPPERCASE = "Big Buck Bunny"
|
||||||
|
|
||||||
|
# All packages involved in the webkit examples install their files in the
|
||||||
|
# webserver directory
|
||||||
|
FILES_${PN} = "/${WEBSERVER_ROOT}/*"
|
||||||
|
|
||||||
|
# Don't generate dbg or dev packages
|
||||||
|
PACKAGES = "${PN}"
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
# Copyright (C) 2020 Digi International.
|
||||||
|
|
||||||
|
SUMMARY = "A webpage containing several examples for the WPE WebKit on Digi embedded devices"
|
||||||
|
DESCRIPTION = "This webpage provides examples that show how the WPE WebKit leverages the hardware capabilities of Digi embedded devices for improved performance"
|
||||||
|
LICENSE = "MPL-2.0"
|
||||||
|
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad"
|
||||||
|
|
||||||
|
SRC_URI = "${DIGI_PKG_SRC}/${BPN}-${PV}.tar.gz"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "cc4b81cf92135be3e231375e9a22fe6a"
|
||||||
|
SRC_URI[sha256sum] = "26ed0fafcf9d66eabac4c6963ea2e3fb46d3cc94d76d50413883f28f9c28f737"
|
||||||
|
|
||||||
|
S = "${WORKDIR}/${PN}-${PV}"
|
||||||
|
|
||||||
|
require digi-webkit-examples.inc
|
||||||
|
|
||||||
|
RDEPENDS_${PN} = " \
|
||||||
|
cog \
|
||||||
|
video-examples \
|
||||||
|
webglsamples \
|
||||||
|
${WEBSERVER_PACKAGE} \
|
||||||
|
"
|
||||||
|
|
||||||
|
# The package contains static webpages, no need to configure or compile
|
||||||
|
do_configure[noexec] = "1"
|
||||||
|
do_compile[noexec] = "1"
|
||||||
|
|
||||||
|
do_install() {
|
||||||
|
install -d ${D}/${WEBSERVER_ROOT}/style
|
||||||
|
install -d ${D}/${WEBSERVER_ROOT}/images
|
||||||
|
install -m 644 ${S}/examples_viewer.html ${D}/${WEBSERVER_ROOT}
|
||||||
|
install -m 644 ${S}/index.html ${D}/${WEBSERVER_ROOT}
|
||||||
|
install -m 644 ${S}/style/* ${D}/${WEBSERVER_ROOT}/style
|
||||||
|
install -m 644 ${S}/images/* ${D}/${WEBSERVER_ROOT}/images
|
||||||
|
|
||||||
|
# Most entry points for the WebGL samples have the same format:
|
||||||
|
# <name>/<name>.html. Since we might define different sample lists per
|
||||||
|
# platform, we should generate the list of samples dynamically.
|
||||||
|
SAMPLE_LIST=""
|
||||||
|
for sample in ${WEBGL_SAMPLES}; do
|
||||||
|
SAMPLE_LIST="${SAMPLE_LIST}\n$(sed s/_name_/${sample}/g ${S}/webgl_demo_template)"
|
||||||
|
done
|
||||||
|
|
||||||
|
sed -i s,##WEBGL_SAMPLE_LIST##,"${SAMPLE_LIST}",g ${D}/${WEBSERVER_ROOT}/index.html
|
||||||
|
|
||||||
|
# Use the same method to dynamically generate the list of video
|
||||||
|
# examples.
|
||||||
|
SAMPLE_LIST=""
|
||||||
|
for format in ${VIDEO_FORMATS}; do
|
||||||
|
SAMPLE_LIST="${SAMPLE_LIST}\n$(sed s/_fmt_/${format}/g ${S}/video_demo_template | \
|
||||||
|
sed s/_name_/${VIDEO_NAME}/g | \
|
||||||
|
sed s/_name-upper_/"${VIDEO_NAME_UPPERCASE}"/g)"
|
||||||
|
done
|
||||||
|
|
||||||
|
sed -i s,##VIDEO_SAMPLE_LIST##,"${SAMPLE_LIST}",g ${D}/${WEBSERVER_ROOT}/index.html
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
# Copyright (C) 2020 Digi International.
|
||||||
|
|
||||||
|
SUMMARY = "Short videos to demonstrate video playback on the WPE WebKit"
|
||||||
|
DESCRIPTION = "This package contains fragments of the short film 'Big Buck Bunny', which are used to demonstrate how WebKit makes use of hardware acceleration for video decoding"
|
||||||
|
HOMEPAGE = "https://peach.blender.org/"
|
||||||
|
LICENSE = "CC-BY-3.0"
|
||||||
|
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7"
|
||||||
|
|
||||||
|
SRC_URI = "${DIGI_PKG_SRC}/${BPN}-${PV}.tar.gz"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "d22cc0fa20fde187455b27a799d2f9e6"
|
||||||
|
SRC_URI[sha256sum] = "97389f33d98c52d4311117366f0aa8dc78d00f51a787697af349de4668ccdbf6"
|
||||||
|
|
||||||
|
S = "${WORKDIR}/${PN}-${PV}"
|
||||||
|
|
||||||
|
require digi-webkit-examples.inc
|
||||||
|
|
||||||
|
# The package contains video files, no need to configure or compile
|
||||||
|
do_configure[noexec] = "1"
|
||||||
|
do_compile[noexec] = "1"
|
||||||
|
|
||||||
|
do_install() {
|
||||||
|
install -d ${D}/${WEBSERVER_ROOT}/videos
|
||||||
|
|
||||||
|
for format in ${VIDEO_FORMATS}; do
|
||||||
|
install -m 644 ${S}/${VIDEO_NAME}.${format} ${D}/${WEBSERVER_ROOT}/videos
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
# Copyright (C) 2020 Digi International.
|
||||||
|
|
||||||
|
SUMMARY = "A collection of WebGL samples"
|
||||||
|
DESCRIPTION = "This repo contains several examples of the WebGL JavaScript API, which allows web browsers to render 2D and 3D graphics with direct access to the system's GPU."
|
||||||
|
HOMEPAGE = "https://webglsamples.org/"
|
||||||
|
LICENSE = "BSD-3-Clause"
|
||||||
|
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=e20489d49c9f8517c8f8f3317844e7da"
|
||||||
|
|
||||||
|
WEBGL_SAMPLES_SRC ?= "git://github.com/WebGLSamples/WebGLSamples.github.io.git;protocol=https"
|
||||||
|
SRCBRANCH = "master"
|
||||||
|
|
||||||
|
SRC_URI = "${WEBGL_SAMPLES_SRC};branch=${SRCBRANCH}"
|
||||||
|
SRCREV = "dc4428bdc6ef2177f71d9e7bab164c43f9e29302"
|
||||||
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
|
require digi-webkit-examples.inc
|
||||||
|
|
||||||
|
# The package contains static webpages, no need to configure or compile
|
||||||
|
do_configure[noexec] = "1"
|
||||||
|
do_compile[noexec] = "1"
|
||||||
|
|
||||||
|
do_install() {
|
||||||
|
install -d ${D}/${WEBSERVER_ROOT}
|
||||||
|
|
||||||
|
cd ${S}
|
||||||
|
|
||||||
|
# All we need to do is copy the folders we want to the webserver root
|
||||||
|
# path. Make sure not to copy any source assets, since they're quite
|
||||||
|
# heavy.
|
||||||
|
for sample in ${WEBGL_REQUIRED}; do
|
||||||
|
find ${sample} -path *source_assets* -prune -false -o -type f \
|
||||||
|
-exec install -Dm 644 "{}" "${D}/${WEBSERVER_ROOT}/{}" \;
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2020, Digi International Inc.
|
||||||
|
#
|
||||||
|
SUMMARY = "WebKit packagegroup for DEY image"
|
||||||
|
|
||||||
|
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||||
|
inherit packagegroup
|
||||||
|
|
||||||
|
# Include WPE WebKit, launcher (cog) and examples
|
||||||
|
RDEPENDS_${PN} += " \
|
||||||
|
cog \
|
||||||
|
digi-webkit-examples \
|
||||||
|
wpewebkit \
|
||||||
|
"
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
From: Gabriel Valcazar <gabriel.valcazar@digi.com>
|
||||||
|
Date: Wed, 21 Oct 2020 17:14:43 +0200
|
||||||
|
Subject: [PATCH] Use imxvideoconvert_g2d plugin in gstreamer pipeline
|
||||||
|
|
||||||
|
This element is necessary to view videos correctly on the i.MX8X
|
||||||
|
|
||||||
|
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
|
||||||
|
---
|
||||||
|
.../platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp | 8 +++++---
|
||||||
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp
|
||||||
|
index 8d8f3822..3e047ebb 100644
|
||||||
|
--- a/Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp
|
||||||
|
+++ b/Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp
|
||||||
|
@@ -93,11 +93,13 @@ static void webKitGLVideoSinkConstructed(GObject* object)
|
||||||
|
ASSERT(sink->priv->appSink);
|
||||||
|
g_object_set(sink->priv->appSink.get(), "enable-last-sample", FALSE, "emit-signals", TRUE, "max-buffers", 1, nullptr);
|
||||||
|
|
||||||
|
+ GstElement* imxconvert = gst_element_factory_make("imxvideoconvert_g2d", nullptr);
|
||||||
|
+ GstElement* queue = gst_element_factory_make("queue", nullptr);
|
||||||
|
GstElement* upload = gst_element_factory_make("glupload", nullptr);
|
||||||
|
GstElement* colorconvert = gst_element_factory_make("glcolorconvert", nullptr);
|
||||||
|
ASSERT(upload);
|
||||||
|
ASSERT(colorconvert);
|
||||||
|
- gst_bin_add_many(GST_BIN_CAST(sink), upload, colorconvert, sink->priv->appSink.get(), nullptr);
|
||||||
|
+ gst_bin_add_many(GST_BIN_CAST(sink), imxconvert, queue, upload, colorconvert, sink->priv->appSink.get(), nullptr);
|
||||||
|
|
||||||
|
// Workaround until we can depend on GStreamer 1.16.2.
|
||||||
|
// https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/commit/8d32de090554cf29fe359f83aa46000ba658a693
|
||||||
|
@@ -121,9 +123,9 @@ static void webKitGLVideoSinkConstructed(GObject* object)
|
||||||
|
gst_caps_set_features(caps.get(), 0, gst_caps_features_new(GST_CAPS_FEATURE_MEMORY_GL_MEMORY, nullptr));
|
||||||
|
g_object_set(sink->priv->appSink.get(), "caps", caps.get(), nullptr);
|
||||||
|
|
||||||
|
- gst_element_link_many(upload, colorconvert, sink->priv->appSink.get(), nullptr);
|
||||||
|
+ gst_element_link_many(imxconvert, queue, upload, colorconvert, sink->priv->appSink.get(), nullptr);
|
||||||
|
|
||||||
|
- GRefPtr<GstPad> pad = adoptGRef(gst_element_get_static_pad(upload, "sink"));
|
||||||
|
+ GRefPtr<GstPad> pad = adoptGRef(gst_element_get_static_pad(imxconvert, "sink"));
|
||||||
|
gst_element_add_pad(GST_ELEMENT_CAST(sink), gst_ghost_pad_new("sink", pad.get()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
# Copyright 2020, Digi International Inc.
|
||||||
|
|
||||||
|
FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
|
||||||
|
|
||||||
|
SRC_URI_append_ccimx8x = " file://0001-Use-imxvideoconvert_g2d-plugin-in-gstreamer-pipeline.patch"
|
||||||
|
|
||||||
|
# The Qt WPE plugin depends on libgbm, which isn't available for i.MX6
|
||||||
|
# platforms. It also pulls in some fairly large Qt dependencies, so remove it.
|
||||||
|
PACKAGECONFIG_remove = "qtwpe"
|
||||||
|
|
||||||
|
# We can't build the WebKit with fb images, so force wayland as a required
|
||||||
|
# distro feature.
|
||||||
|
inherit distro_features_check
|
||||||
|
|
||||||
|
REQUIRED_DISTRO_FEATURES = "wayland"
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2020 Digi International.
|
||||||
|
#
|
||||||
|
require recipes-core/images/dey-image-graphical.inc
|
||||||
|
|
||||||
|
DESCRIPTION = "DEY image with WebKit browser engine support"
|
||||||
|
|
||||||
|
GRAPHICAL_CORE = "webkit"
|
||||||
|
|
||||||
|
COMPATIBLE_MACHINE = "(ccimx8x|ccimx8m|ccimx6$)"
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
# Copyright (C) 2020 Digi International Inc.
|
||||||
|
|
||||||
|
require recipes-digi/swu-images/swu.inc
|
||||||
|
|
||||||
|
# Point to the SRC_URI files in the original swu-images directory
|
||||||
|
FILESEXTRAPATHS_prepend := "${THISDIR}/../../../../recipes-digi/swu-images/files:"
|
||||||
|
|
||||||
|
IMG_NAME = "${@get_baseimg_pn(d)}-${GRAPHICAL_BACKEND}"
|
||||||
|
|
@ -36,6 +36,17 @@ if [ "${1}" == "pre" ]; then
|
||||||
systemctl stop bluetooth
|
systemctl stop bluetooth
|
||||||
systemctl stop bluetooth-init
|
systemctl stop bluetooth-init
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Configure Power LED for blinking in standby
|
||||||
|
if [ -d "/sys/class/leds/power:green" ]; then
|
||||||
|
# Configure LED for blinking
|
||||||
|
echo timer > /sys/class/leds/power\:green/trigger
|
||||||
|
# Turn LED on at max brightness
|
||||||
|
echo 19 > /sys/class/leds/power\:green/brightness
|
||||||
|
# Configure blinking timings
|
||||||
|
echo 100 > /sys/class/leds/power\:green/delay_on
|
||||||
|
echo 1000 > /sys/class/leds/power\:green/delay_off
|
||||||
|
fi
|
||||||
elif [ "${1}" == "post" ]; then
|
elif [ "${1}" == "post" ]; then
|
||||||
# Resume wireless interfaces
|
# Resume wireless interfaces
|
||||||
if [ -d "/proc/device-tree/wireless" ]; then
|
if [ -d "/proc/device-tree/wireless" ]; then
|
||||||
|
|
@ -61,4 +72,12 @@ elif [ "${1}" == "post" ]; then
|
||||||
rm -f /tmp/up_bt_on_resume
|
rm -f /tmp/up_bt_on_resume
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Configure Power LED solid on after resume
|
||||||
|
if [ -d "/sys/class/leds/power:green" ]; then
|
||||||
|
# Reset LED settings by writing 0 to brigtness descriptor
|
||||||
|
echo 0 > /sys/class/leds/power\:green/brightness
|
||||||
|
# Turn LED on at max brightness
|
||||||
|
echo 19 > /sys/class/leds/power\:green/brightness
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,17 @@ if [ "${1}" == "pre" ]; then
|
||||||
systemctl stop bluetooth
|
systemctl stop bluetooth
|
||||||
systemctl stop bluetooth-init
|
systemctl stop bluetooth-init
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Configure Power LED for blinking in standby
|
||||||
|
if [ -d "/sys/class/leds/power:green" ]; then
|
||||||
|
# Configure LED for blinking
|
||||||
|
echo timer > /sys/class/leds/power\:green/trigger
|
||||||
|
# Turn LED on at max brightness
|
||||||
|
echo 19 > /sys/class/leds/power\:green/brightness
|
||||||
|
# Configure blinking timings
|
||||||
|
echo 100 > /sys/class/leds/power\:green/delay_on
|
||||||
|
echo 1000 > /sys/class/leds/power\:green/delay_off
|
||||||
|
fi
|
||||||
elif [ "${1}" == "post" ]; then
|
elif [ "${1}" == "post" ]; then
|
||||||
# Resume wireless interfaces
|
# Resume wireless interfaces
|
||||||
if [ -d "/proc/device-tree/wireless" ]; then
|
if [ -d "/proc/device-tree/wireless" ]; then
|
||||||
|
|
@ -61,4 +72,12 @@ elif [ "${1}" == "post" ]; then
|
||||||
rm -f /tmp/up_bt_on_resume
|
rm -f /tmp/up_bt_on_resume
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Configure Power LED solid on after resume
|
||||||
|
if [ -d "/sys/class/leds/power:green" ]; then
|
||||||
|
# Reset LED settings by writing 0 to brigtness descriptor
|
||||||
|
echo 0 > /sys/class/leds/power\:green/brightness
|
||||||
|
# Turn LED on at max brightness
|
||||||
|
echo 19 > /sys/class/leds/power\:green/brightness
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,6 @@ SRC_URI += "file://standby \
|
||||||
file://standby-actions \
|
file://standby-actions \
|
||||||
file://standby-systemd \
|
file://standby-systemd \
|
||||||
file://busybox-ntpd \
|
file://busybox-ntpd \
|
||||||
file://index.html \
|
|
||||||
file://digi-logo.png \
|
|
||||||
file://busybox-httpd.service.in \
|
file://busybox-httpd.service.in \
|
||||||
file://nm \
|
file://nm \
|
||||||
file://busybox-acpid \
|
file://busybox-acpid \
|
||||||
|
|
@ -17,6 +15,10 @@ SRC_URI += "file://standby \
|
||||||
file://bridgeifupdown \
|
file://bridgeifupdown \
|
||||||
"
|
"
|
||||||
|
|
||||||
|
SRC_URI_append_ccimx6ul = " file://index.html \
|
||||||
|
file://digi-logo.png \
|
||||||
|
"
|
||||||
|
|
||||||
HAS_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}"
|
HAS_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}"
|
||||||
|
|
||||||
# hwclock bootscript init parameters
|
# hwclock bootscript init parameters
|
||||||
|
|
@ -54,8 +56,6 @@ do_install_append() {
|
||||||
fi
|
fi
|
||||||
if grep "CONFIG_HTTPD=y" ${WORKDIR}/defconfig; then
|
if grep "CONFIG_HTTPD=y" ${WORKDIR}/defconfig; then
|
||||||
install -d ${D}/srv/www/cgi-bin
|
install -d ${D}/srv/www/cgi-bin
|
||||||
install -m 0644 ${WORKDIR}/index.html ${D}/srv/www/
|
|
||||||
install -m 0644 ${WORKDIR}/digi-logo.png ${D}/srv/www/
|
|
||||||
install -m 0755 ${WORKDIR}/nm ${D}/srv/www/cgi-bin/
|
install -m 0755 ${WORKDIR}/nm ${D}/srv/www/cgi-bin/
|
||||||
if ${HAS_SYSTEMD}; then
|
if ${HAS_SYSTEMD}; then
|
||||||
install -d ${D}${systemd_unitdir}/system
|
install -d ${D}${systemd_unitdir}/system
|
||||||
|
|
@ -93,4 +93,13 @@ do_install_append() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
do_install_append_ccimx6ul() {
|
||||||
|
install -d ${D}/srv/www
|
||||||
|
if grep "CONFIG_HTTPD=y" ${WORKDIR}/defconfig; then
|
||||||
|
install -m 0644 ${WORKDIR}/index.html ${D}/srv/www/
|
||||||
|
install -m 0644 ${WORKDIR}/digi-logo.png ${D}/srv/www/
|
||||||
|
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2016-2020 Digi International.
|
||||||
|
#
|
||||||
|
DESCRIPTION = "DEY image with graphical libraries"
|
||||||
|
LICENSE = "MIT"
|
||||||
|
|
||||||
|
GRAPHICAL_CORE ??= "qt"
|
||||||
|
|
||||||
|
SOC_PACKAGES = ""
|
||||||
|
SOC_PACKAGES_ccimx6 = "imx-gpu-viv-demos imx-gpu-viv-tools"
|
||||||
|
|
||||||
|
IMAGE_INSTALL = " \
|
||||||
|
packagegroup-dey-core \
|
||||||
|
${CORE_IMAGE_EXTRA_INSTALL} \
|
||||||
|
${SOC_PACKAGES} \
|
||||||
|
"
|
||||||
|
|
||||||
|
IMAGE_FEATURES += " \
|
||||||
|
dey-network \
|
||||||
|
dey-${GRAPHICAL_CORE} \
|
||||||
|
eclipse-debug \
|
||||||
|
package-management \
|
||||||
|
ssh-server-dropbear \
|
||||||
|
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \
|
||||||
|
bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11-base x11-sato', \
|
||||||
|
'', d), d)} \
|
||||||
|
${@bb.utils.contains('MACHINE_FEATURES', 'accel-video', 'dey-gstreamer', '', d)} \
|
||||||
|
${@bb.utils.contains('MACHINE_FEATURES', 'alsa', 'dey-audio', '', d)} \
|
||||||
|
${@bb.utils.contains('MACHINE_FEATURES', 'bluetooth', 'dey-bluetooth', '', d)} \
|
||||||
|
${@bb.utils.contains('MACHINE_FEATURES', 'wifi', 'dey-wireless', '', d)} \
|
||||||
|
"
|
||||||
|
|
||||||
|
# Separately add 'dey-gstreamer' to ccimx6ulsbc platform.
|
||||||
|
# This platform does not have 'accel-video' but we want gstreamer for using
|
||||||
|
# it with video/camera
|
||||||
|
IMAGE_FEATURES_append_ccimx6ulsbc = " dey-gstreamer"
|
||||||
|
|
||||||
|
# Remove some features to reduce the rootfs size to fit in the internal storage.
|
||||||
|
IMAGE_FEATURES_remove_ccimx6ul = "package-management"
|
||||||
|
|
||||||
|
# SDK features (for toolchains generated from an image with populate_sdk)
|
||||||
|
SDKIMAGE_FEATURES ?= "dev-pkgs dbg-pkgs staticdev-pkgs"
|
||||||
|
|
||||||
|
IMAGE_LINGUAS = ""
|
||||||
|
|
||||||
|
inherit core-image
|
||||||
|
inherit dey-image
|
||||||
|
inherit distro_features_check
|
||||||
|
|
||||||
|
CONFLICT_DISTRO_FEATURES = "directfb"
|
||||||
|
|
||||||
|
IMAGE_ROOTFS_SIZE = "8192"
|
||||||
|
|
||||||
|
# Do not install udev-cache
|
||||||
|
BAD_RECOMMENDATIONS += "udev-cache"
|
||||||
|
BAD_RECOMMENDATIONS += "eudev-hwdb"
|
||||||
|
|
||||||
|
export IMAGE_BASENAME = "dey-image-${GRAPHICAL_CORE}-${GRAPHICAL_BACKEND}"
|
||||||
|
|
||||||
|
CORE_IMAGE_EXTRA_INSTALL += " \
|
||||||
|
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'weston-init weston-examples gtk+3-demo clutter-1.0-examples', '', d)} \
|
||||||
|
${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'weston-xwayland xterm', '', d)} \
|
||||||
|
dey-examples-digiapix \
|
||||||
|
"
|
||||||
|
|
@ -1,62 +1,8 @@
|
||||||
#
|
#
|
||||||
# Copyright (C) 2016-2018 Digi International.
|
# Copyright (C) 2016-2020 Digi International.
|
||||||
#
|
#
|
||||||
|
require dey-image-graphical.inc
|
||||||
|
|
||||||
DESCRIPTION = "DEY image with QT graphical libraries"
|
DESCRIPTION = "DEY image with QT graphical libraries"
|
||||||
LICENSE = "MIT"
|
|
||||||
|
|
||||||
SOC_PACKAGES = ""
|
GRAPHICAL_CORE = "qt"
|
||||||
SOC_PACKAGES_ccimx6 = "imx-gpu-viv-demos imx-gpu-viv-tools"
|
|
||||||
|
|
||||||
IMAGE_INSTALL = " \
|
|
||||||
packagegroup-dey-core \
|
|
||||||
${CORE_IMAGE_EXTRA_INSTALL} \
|
|
||||||
${SOC_PACKAGES} \
|
|
||||||
"
|
|
||||||
|
|
||||||
IMAGE_FEATURES += " \
|
|
||||||
dey-network \
|
|
||||||
dey-qt \
|
|
||||||
eclipse-debug \
|
|
||||||
package-management \
|
|
||||||
ssh-server-dropbear \
|
|
||||||
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \
|
|
||||||
bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11-base x11-sato', \
|
|
||||||
'', d), d)} \
|
|
||||||
${@bb.utils.contains('MACHINE_FEATURES', 'accel-video', 'dey-gstreamer', '', d)} \
|
|
||||||
${@bb.utils.contains('MACHINE_FEATURES', 'alsa', 'dey-audio', '', d)} \
|
|
||||||
${@bb.utils.contains('MACHINE_FEATURES', 'bluetooth', 'dey-bluetooth', '', d)} \
|
|
||||||
${@bb.utils.contains('MACHINE_FEATURES', 'wifi', 'dey-wireless', '', d)} \
|
|
||||||
"
|
|
||||||
|
|
||||||
# Separately add 'dey-gstreamer' to ccimx6ulsbc platform.
|
|
||||||
# This platform does not have 'accel-video' but we want gstreamer for using
|
|
||||||
# it with video/camera
|
|
||||||
IMAGE_FEATURES_append_ccimx6ulsbc = " dey-gstreamer"
|
|
||||||
|
|
||||||
# Remove some features to reduce the rootfs size to fit in the internal storage.
|
|
||||||
IMAGE_FEATURES_remove_ccimx6ul = "package-management"
|
|
||||||
|
|
||||||
# SDK features (for toolchains generated from an image with populate_sdk)
|
|
||||||
SDKIMAGE_FEATURES ?= "dev-pkgs dbg-pkgs staticdev-pkgs"
|
|
||||||
|
|
||||||
IMAGE_LINGUAS = ""
|
|
||||||
|
|
||||||
inherit core-image
|
|
||||||
inherit dey-image
|
|
||||||
inherit distro_features_check
|
|
||||||
|
|
||||||
CONFLICT_DISTRO_FEATURES = "directfb"
|
|
||||||
|
|
||||||
IMAGE_ROOTFS_SIZE = "8192"
|
|
||||||
|
|
||||||
# Do not install udev-cache
|
|
||||||
BAD_RECOMMENDATIONS += "udev-cache"
|
|
||||||
BAD_RECOMMENDATIONS += "eudev-hwdb"
|
|
||||||
|
|
||||||
export IMAGE_BASENAME = "dey-image-qt-${GRAPHICAL_BACKEND}"
|
|
||||||
|
|
||||||
CORE_IMAGE_EXTRA_INSTALL += " \
|
|
||||||
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'weston-init weston-examples gtk+3-demo clutter-1.0-examples', '', d)} \
|
|
||||||
${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'weston-xwayland xterm', '', d)} \
|
|
||||||
dey-examples-digiapix \
|
|
||||||
"
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
CPUREV=$(cat /sys/devices/soc0/soc_id)
|
CPUREV=$(cat /sys/devices/soc0/soc_id)
|
||||||
FILEVG=/usr/lib/libOpenVG.so
|
FILEVG=/usr/lib/libOpenVG.so
|
||||||
FILEVG3D=/usr/lib/libOpenVG.3d.so
|
FILEVG3D=/usr/lib/libOpenVG.3d.so.1.1.0
|
||||||
FILEVG355=/usr/lib/libOpenVG.2d.so
|
FILEVG355=/usr/lib/libOpenVG.2d.so.1.1.0
|
||||||
if [ -e $FILEVG3D ] && [ -e $FILEVG355 ]
|
if [ -e $FILEVG3D ] && [ -e $FILEVG355 ]
|
||||||
then
|
then
|
||||||
if [ -e $FILEVG ]
|
if [ -e $FILEVG ]
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
SUMMARY = "Python version of the NXP eRPC infrastructure"
|
||||||
|
DESCRIPTION = "eRPC (Embedded RPC) is an open source Remote Procedure Call (RPC) system for multichip embedded systems and heterogeneous multicore SoCs"
|
||||||
|
LICENSE = "BSD-3-Clause"
|
||||||
|
AUTHOR = "Jun Zhu <junzhu@nxp.com>"
|
||||||
|
|
||||||
|
RDEPENDS_${PN} = "python-pyserial python-enum34 python-argparse python-threading python-shell"
|
||||||
|
|
||||||
|
LIC_FILES_CHKSUM = "file://readme.md;md5=d3d754f8e1f07a15e65da588118bf793"
|
||||||
|
|
||||||
|
SRC_URI = "git://github.com/EmbeddedRPC/erpc.git;protocol=https;branch=develop"
|
||||||
|
|
||||||
|
SRCREV = "a5bb96821c111164defa6c8c932e189a8bcf86c2"
|
||||||
|
S = "${WORKDIR}/git/erpc_python"
|
||||||
|
|
||||||
|
PV = "1.7+git${SRCPV}"
|
||||||
|
|
||||||
|
inherit setuptools
|
||||||
|
|
||||||
|
do_configure[noexec] = "1"
|
||||||
|
|
||||||
|
do_compile_prepend () {
|
||||||
|
export IS_YOCTO="1"
|
||||||
|
}
|
||||||
|
|
||||||
|
do_install_prepend () {
|
||||||
|
export IS_YOCTO="1"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
Index: pycrypto-2.6/setup.py
|
||||||
|
===================================================================
|
||||||
|
--- pycrypto-2.6.orig/setup.py
|
||||||
|
+++ pycrypto-2.6/setup.py
|
||||||
|
@@ -271,7 +271,8 @@ class PCTBuildConfigure(Command):
|
||||||
|
if not os.path.exists("config.status"):
|
||||||
|
if os.system("chmod 0755 configure") != 0:
|
||||||
|
raise RuntimeError("chmod error")
|
||||||
|
- cmd = "sh configure" # we use "sh" here so that it'll work on mingw32 with standard python.org binaries
|
||||||
|
+ host = os.environ.get("HOST_SYS")
|
||||||
|
+ cmd = "ac_cv_func_malloc_0_nonnull=yes sh configure --host " + host # we use "sh" here so that it'll work on mingw32 with standard python.org binaries
|
||||||
|
if self.verbose < 1:
|
||||||
|
cmd += " -q"
|
||||||
|
if os.system(cmd) != 0:
|
||||||
|
@@ -370,7 +371,7 @@ kw = {'name':"pycrypto",
|
||||||
|
'ext_modules': plat_ext + [
|
||||||
|
# _fastmath (uses GNU mp library)
|
||||||
|
Extension("Crypto.PublicKey._fastmath",
|
||||||
|
- include_dirs=['src/','/usr/include/'],
|
||||||
|
+ include_dirs=['src/'],
|
||||||
|
libraries=['gmp'],
|
||||||
|
sources=["src/_fastmath.c"]),
|
||||||
|
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
DESCRIPTION = "Cryptographic modules for Python."
|
||||||
|
HOMEPAGE = "http://www.pycrypto.org/"
|
||||||
|
SECTION = "devel/python"
|
||||||
|
LICENSE = "PSFv2"
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=35f354d199e8cb7667b059a23578e63d"
|
||||||
|
|
||||||
|
SRCNAME = "pycrypto"
|
||||||
|
|
||||||
|
SRC_URI = "https://pypi.python.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \
|
||||||
|
file://cross-compiling.patch"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "55a61a054aa66812daf5161a0d5d7eda"
|
||||||
|
SRC_URI[sha256sum] = "f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c"
|
||||||
|
|
||||||
|
S = "${WORKDIR}/${SRCNAME}-${PV}"
|
||||||
|
|
||||||
|
inherit autotools autotools-brokensep distutils
|
||||||
|
|
||||||
|
DEPENDS += " gmp"
|
||||||
|
|
||||||
|
export STAGING_INCDIR
|
||||||
|
export STAGING_LIBDIR
|
||||||
|
export BUILD_SYS
|
||||||
|
export HOST_SYS
|
||||||
|
|
||||||
|
|
||||||
|
# We explicitly call distutils_do_install, since we want it to run, but
|
||||||
|
# *don't* want the autotools install to run, since this package doesn't
|
||||||
|
# provide a "make install" target.
|
||||||
|
do_install() {
|
||||||
|
distutils_do_install
|
||||||
|
}
|
||||||
|
|
||||||
|
BBCLASSEXTEND = "native"
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
SUMMARY = "Cryptographic library for Python"
|
||||||
|
DESCRIPTION = "PyCryptodome is a self-contained Python package of low-level \
|
||||||
|
cryptographic primitives.\
|
||||||
|
This library is a fork of the pycrypto library. It can be installed as a drop-in replacement\
|
||||||
|
or an independent library that works along side pycrypto."
|
||||||
|
|
||||||
|
HOMEPAGE = "http://www.pycryptodome.org"
|
||||||
|
LICENSE = "PD & BSD-2-Clause"
|
||||||
|
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=6dc0e2a13d2f25d6f123c434b761faba"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "46ba513d95b6e323734074d960a7d57b"
|
||||||
|
SRC_URI[sha256sum] = "22d970cee5c096b9123415e183ae03702b2cd4d3ba3f0ced25c4e1aba3967167"
|
||||||
|
inherit pypi
|
||||||
|
|
||||||
|
RDEPENDS_${PN} += " \
|
||||||
|
${PYTHON_PN}-io \
|
||||||
|
${PYTHON_PN}-math \
|
||||||
|
"
|
||||||
|
|
||||||
|
RDEPENDS_${PN}-tests += " \
|
||||||
|
${PYTHON_PN}-unittest \
|
||||||
|
"
|
||||||
|
|
||||||
|
PACKAGES =+ "${PN}-tests"
|
||||||
|
|
||||||
|
FILES_${PN}-tests += " \
|
||||||
|
${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/ \
|
||||||
|
${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/__pycache__/ \
|
||||||
|
"
|
||||||
|
|
||||||
|
BBCLASSEXTEND = "native nativesdk"
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
SUMMARY = "Python library and tools for doing stuff with EFL files."
|
||||||
|
DESCRIPTION = "Minimal but very flexible implementation of the expect pattern"
|
||||||
|
SECTION = "devel/python"
|
||||||
|
HOMEPAGE = " git://github.com/eliben/pyelftools"
|
||||||
|
LICENSE = "PD"
|
||||||
|
LIC_FILES_CHKSUM = "file://LICENSE;md5=5ce2a2b07fca326bc7c146d10105ccfc"
|
||||||
|
|
||||||
|
inherit pypi python3native
|
||||||
|
|
||||||
|
SRC_URI[sha256sum] = "89c6da6f56280c37a5ff33468591ba9a124e17d71fe42de971818cbff46c1b24"
|
||||||
|
|
||||||
|
BBCLASSEXTEND = "native nativesdk"
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
require python-pycryptodome.inc
|
||||||
|
inherit setuptools3
|
||||||
|
|
||||||
|
# This recipe install pycryptodome as an independent library.
|
||||||
|
do_configure_prepend () {
|
||||||
|
touch ${S}/.separate_namespace
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
inherit setuptools3
|
||||||
|
require python-pyelftools.inc
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
BBCLASSEXTEND = "native nativesdk"
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
require recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.7.0.bb
|
|
||||||
|
|
||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9"
|
|
||||||
|
|
||||||
SRC_URI[md5sum] = "2b8fea58c87a724c1d5c023ee8bd551b"
|
|
||||||
SRC_URI[sha256sum] = "7533e34f447e8b076fa6461ac83806efdd677310094741eef2a67858034730fe"
|
|
||||||
|
|
||||||
RDEPENDS_${PN} += "libopencl-imx"
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
require recipes-graphics/imx-dpu-g2d/imx-dpu-g2d_1.7.0.bb
|
||||||
|
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYING;md5=983e4c77621568488dd902b27e0c2143"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "e532d99c1116ac8b685cd03aab3f4c75"
|
||||||
|
SRC_URI[sha256sum] = "c48e2d408be9c4bf2731546bece39216c79856e554fd22f6c3040603a2348c72"
|
||||||
|
|
||||||
|
RDEPENDS_${PN} += "libopencl-imx"
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
require recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.2.4.p4.0.bb
|
|
||||||
|
|
||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9"
|
|
||||||
|
|
||||||
FSLBIN_NAME_arm = "${PN}-${PV}-${TARGET_ARCH}"
|
|
||||||
|
|
||||||
SRC_URI[aarch64.md5sum] = "88f98e03f3f85c9a768ea5e4ff7475fa"
|
|
||||||
SRC_URI[aarch64.sha256sum] = "553bbe9ee1caa222fd14b835deb2afedf9ed936b7a13424328df75892286f666"
|
|
||||||
SRC_URI[arm.md5sum] = "3b12892309d166554c697a87e8084b16"
|
|
||||||
SRC_URI[arm.sha256sum] = "010bab5780476f26406e16b058514453dc235a0e7f4b995fa03c976d06e5cb96"
|
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
require recipes-graphics/imx-gpu-g2d/imx-gpu-g2d_6.2.4.p4.0.bb
|
||||||
|
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYING;md5=983e4c77621568488dd902b27e0c2143"
|
||||||
|
|
||||||
|
FSLBIN_NAME_arm = "${PN}-${PV}-${TARGET_ARCH}"
|
||||||
|
|
||||||
|
SRC_URI[aarch64.md5sum] = "38d161708c42bb01362b7ba7f91bb6b4"
|
||||||
|
SRC_URI[aarch64.sha256sum] = "97ee90c81fa0db88e3249cb7df77f17f816ceb9a40355e03f72df99e600d7331"
|
||||||
|
SRC_URI[arm.md5sum] = "0011979d36205b1a3f03b404d6af4085"
|
||||||
|
SRC_URI[arm.sha256sum] = "725ad2edd41661713540d5e32509c754cda452acc608955689b8a64977b26ced"
|
||||||
|
|
@ -0,0 +1,371 @@
|
||||||
|
# Copyright (C) 2012-2016 Freescale Semiconductor
|
||||||
|
# Copyright (C) 2012-2018 O.S. Systems Software LTDA.
|
||||||
|
# Copyright 2017-2019 NXP
|
||||||
|
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||||
|
|
||||||
|
DESCRIPTION = "GPU driver and apps for i.MX"
|
||||||
|
SECTION = "libs"
|
||||||
|
LICENSE = "Proprietary"
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYING;md5=80c0478f4339af024519b3723023fe28"
|
||||||
|
|
||||||
|
DEPENDS += " \
|
||||||
|
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \
|
||||||
|
bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxdamage libxext libxfixes', \
|
||||||
|
'', d), d)} \
|
||||||
|
"
|
||||||
|
DEPENDS += " \
|
||||||
|
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcb libxshmfence libxxf86vm', \
|
||||||
|
'', d)} \
|
||||||
|
"
|
||||||
|
DEPENDS_append_imxdrm = " libdrm wayland"
|
||||||
|
DEPENDS_append_mx8 = " patchelf-native"
|
||||||
|
|
||||||
|
# imx-gpu-viv does not provide everything it needs to for virtual/libgl
|
||||||
|
# on x11 backend or on Wayland backend with XWayland support.
|
||||||
|
# We depend on mesa to fill in what is missing.
|
||||||
|
DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'mesa', '', d)}"
|
||||||
|
|
||||||
|
EXTRA_PROVIDES = ""
|
||||||
|
EXTRA_PROVIDES_append_imxgpu3d = " \
|
||||||
|
virtual/libgl \
|
||||||
|
virtual/libgles1 \
|
||||||
|
virtual/libgles2 \
|
||||||
|
"
|
||||||
|
EXTRA_PROVIDES_append_mx8 = " \
|
||||||
|
virtual/libgbm \
|
||||||
|
"
|
||||||
|
EXTRA_PROVIDES_append_mx8qm = " \
|
||||||
|
virtual/libopenvx \
|
||||||
|
"
|
||||||
|
PROVIDES_OPENVX = ""
|
||||||
|
PROVIDES_OPENVX_mx8 = "virtual/libopenvx"
|
||||||
|
PROVIDES_OPENVX_mx8mm = ""
|
||||||
|
PROVIDES += " \
|
||||||
|
imx-gpu-viv \
|
||||||
|
libgal-imx \
|
||||||
|
opencl-headers \
|
||||||
|
virtual/egl \
|
||||||
|
virtual/libopenvg \
|
||||||
|
virtual/opencl-headers \
|
||||||
|
virtual/opencl-icd \
|
||||||
|
${EXTRA_PROVIDES} \
|
||||||
|
${PROVIDES_OPENVX} \
|
||||||
|
"
|
||||||
|
|
||||||
|
RPROVIDES_${PN}_imxgpu3d += "imx-gpu-viv"
|
||||||
|
|
||||||
|
PE = "1"
|
||||||
|
|
||||||
|
inherit fsl-eula-unpack distro_features_check
|
||||||
|
|
||||||
|
REQUIRED_DISTRO_FEATURES_mx8 = "wayland"
|
||||||
|
|
||||||
|
SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}.bin;fsl-eula=true"
|
||||||
|
|
||||||
|
# Note : If you add a package here, to prevent a naming conflict see the python_anonymous() futher below
|
||||||
|
IMX_PACKAGES_GBM = ""
|
||||||
|
IMX_PACKAGES_GBM_mx8 = "libgbm-imx libgbm-imx-dev"
|
||||||
|
PACKAGES =+ "libclc-imx libclc-imx-dev \
|
||||||
|
libgl-imx libgl-imx-dev \
|
||||||
|
libgles1-imx libgles1-imx-dev \
|
||||||
|
libgles2-imx libgles2-imx-dev \
|
||||||
|
libgles3-imx-dev \
|
||||||
|
libglslc-imx libglslc-imx-dev \
|
||||||
|
libopencl-imx libopencl-imx-dev \
|
||||||
|
libopenvg-imx libopenvg-imx-dev \
|
||||||
|
libvdk-imx libvdk-imx-dev \
|
||||||
|
libegl-imx libegl-imx-dev \
|
||||||
|
libgal-imx libgal-imx-dev \
|
||||||
|
libvivante-dri-imx \
|
||||||
|
libvsc-imx \
|
||||||
|
${IMX_PACKAGES_GBM} \
|
||||||
|
libwayland-viv-imx libwayland-viv-imx-dev \
|
||||||
|
libgc-wayland-protocol-imx libgc-wayland-protocol-imx-dev \
|
||||||
|
imx-gpu-viv-tools \
|
||||||
|
imx-gpu-viv-demos \
|
||||||
|
libvulkan-imx libvulkan-imx-dev \
|
||||||
|
libopenvx-imx libopenvx-imx-dev \
|
||||||
|
libnn-imx \
|
||||||
|
"
|
||||||
|
python __anonymous () {
|
||||||
|
has_vivante_kernel_driver_support = (d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT') or '0')
|
||||||
|
if has_vivante_kernel_driver_support != '1':
|
||||||
|
raise bb.parse.SkipPackage('The kernel of machine needs to have Vivante kernel driver support for this recipe to be used.')
|
||||||
|
}
|
||||||
|
|
||||||
|
USE_X11 = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
|
||||||
|
USE_WL = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "yes", "no", d)}"
|
||||||
|
|
||||||
|
# Inhibit warnings about files being stripped.
|
||||||
|
INHIBIT_PACKAGE_STRIP = "1"
|
||||||
|
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||||
|
|
||||||
|
# FIXME: The provided binary doesn't provide soname. If in future BSP
|
||||||
|
# release the libraries are fixed, we can drop this hack.
|
||||||
|
REALSOLIBS := "${SOLIBS}"
|
||||||
|
SOLIBS = "${SOLIBSDEV}"
|
||||||
|
|
||||||
|
python __anonymous() {
|
||||||
|
# FIXME: All binaries lack GNU_HASH in elf binary but as we don't have
|
||||||
|
# the source we cannot fix it. Disable the insane check for now.
|
||||||
|
packages = d.getVar('PACKAGES').split()
|
||||||
|
for p in packages:
|
||||||
|
d.appendVar("INSANE_SKIP_%s" % p, " ldflags")
|
||||||
|
|
||||||
|
# For the packages that make up the OpenGL interfaces, inject variables so that
|
||||||
|
# they don't get Debian-renamed (which would remove the -imx suffix).
|
||||||
|
for p in (("libegl", "libegl1"), ("libgl", "libgl1"),
|
||||||
|
("libgles1", "libglesv1-cm1"), ("libgles2", "libglesv2-2"),
|
||||||
|
("libgles3",), ("libgbm",)):
|
||||||
|
fullp = p[0] + "-imx"
|
||||||
|
pkgs = "".join(' %s' % i for i in p)
|
||||||
|
d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1")
|
||||||
|
d.appendVar("RREPLACES_" + fullp, pkgs)
|
||||||
|
d.appendVar("RPROVIDES_" + fullp, pkgs)
|
||||||
|
d.appendVar("RCONFLICTS_" + fullp, pkgs)
|
||||||
|
|
||||||
|
# For -dev, the first element is both the Debian and original name
|
||||||
|
fullp += "-dev"
|
||||||
|
pkgs = p[0] + "-dev"
|
||||||
|
d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1")
|
||||||
|
d.appendVar("RREPLACES_" + fullp, pkgs)
|
||||||
|
d.appendVar("RPROVIDES_" + fullp, pkgs)
|
||||||
|
d.appendVar("RCONFLICTS_" + fullp, pkgs)
|
||||||
|
}
|
||||||
|
|
||||||
|
IS_MX6SL = "0"
|
||||||
|
IS_MX6SL_mx6sl = "1"
|
||||||
|
|
||||||
|
IS_MX8 = "0"
|
||||||
|
IS_MX8_mx8 = "1"
|
||||||
|
|
||||||
|
PACKAGE_FP_TYPE = "hardfp"
|
||||||
|
|
||||||
|
HAS_GBM = "false"
|
||||||
|
HAS_GBM_mx8 = "true"
|
||||||
|
|
||||||
|
GLES3_HEADER_REMOVALS = "gl31.h gl32.h"
|
||||||
|
GLES3_HEADER_REMOVALS_mx8mq = "gl32.h"
|
||||||
|
GLES3_HEADER_REMOVALS_mx8mn = "gl32.h"
|
||||||
|
GLES3_HEADER_REMOVALS_mx8mp = "gl32.h"
|
||||||
|
GLES3_HEADER_REMOVALS_mx8qxp = ""
|
||||||
|
GLES3_HEADER_REMOVALS_mx8qm = ""
|
||||||
|
|
||||||
|
do_install () {
|
||||||
|
install -d ${D}${libdir}
|
||||||
|
install -d ${D}${includedir}
|
||||||
|
install -d ${D}${bindir}
|
||||||
|
|
||||||
|
cp -P ${S}/gpu-core/usr/lib/*.so* ${D}${libdir}
|
||||||
|
cp -r ${S}/gpu-core/usr/include/* ${D}${includedir}
|
||||||
|
cp -r ${S}/gpu-demos/opt ${D}
|
||||||
|
cp -r ${S}/gpu-tools/gmem-info/usr/bin/* ${D}${bindir}
|
||||||
|
|
||||||
|
# Use vulkan header from vulkan-headers recipe to support vkmark
|
||||||
|
rm -rf ${D}${includedir}/vulkan/
|
||||||
|
|
||||||
|
install -d ${D}${libdir}/pkgconfig
|
||||||
|
if ${HAS_GBM}; then
|
||||||
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gbm.pc ${D}${libdir}/pkgconfig/gbm.pc
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The preference order, based in DISTRO_FEATURES, is Wayland (with or without X11), X11 and fb
|
||||||
|
if [ "${USE_WL}" = "yes" ]; then
|
||||||
|
|
||||||
|
backend=wayland
|
||||||
|
|
||||||
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_wayland.pc ${D}${libdir}/pkgconfig/egl.pc
|
||||||
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc
|
||||||
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc
|
||||||
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg.pc ${D}${libdir}/pkgconfig/vg.pc
|
||||||
|
|
||||||
|
if [ "${USE_X11}" = "yes" ]; then
|
||||||
|
|
||||||
|
cp -r ${S}/gpu-core/usr/lib/dri ${D}${libdir}
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ "${USE_X11}" = "yes" ]; then
|
||||||
|
|
||||||
|
cp -r ${S}/gpu-core/usr/lib/dri ${D}${libdir}
|
||||||
|
|
||||||
|
backend=x11
|
||||||
|
|
||||||
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gl_x11.pc ${D}${libdir}/pkgconfig/gl.pc
|
||||||
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_x11.pc ${D}${libdir}/pkgconfig/egl.pc
|
||||||
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm_x11.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc
|
||||||
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2_x11.pc ${D}${libdir}/pkgconfig/glesv2.pc
|
||||||
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg_x11.pc ${D}${libdir}/pkgconfig/vg.pc
|
||||||
|
|
||||||
|
else
|
||||||
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc
|
||||||
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc
|
||||||
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg.pc ${D}${libdir}/pkgconfig/vg.pc
|
||||||
|
|
||||||
|
# Regular framebuffer
|
||||||
|
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_linuxfb.pc ${D}${libdir}/pkgconfig/egl.pc
|
||||||
|
|
||||||
|
backend=fb
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install Vendor ICDs for OpenCL's installable client driver loader (ICDs Loader)
|
||||||
|
install -d ${D}${sysconfdir}/OpenCL/vendors/
|
||||||
|
install -m 0644 ${S}/gpu-core/etc/Vivante.icd ${D}${sysconfdir}/OpenCL/vendors/Vivante.icd
|
||||||
|
|
||||||
|
# Handle backend specific drivers
|
||||||
|
cp -r ${S}/gpu-core/usr/lib/${backend}/* ${D}${libdir}
|
||||||
|
if [ "${USE_WL}" = "yes" ]; then
|
||||||
|
# Special case for libVDK on Wayland backend, deliver fb library as well.
|
||||||
|
cp ${S}/gpu-core/usr/lib/fb/libVDK.so.1.2.0 ${D}${libdir}/libVDK-fb.so.1.2.0
|
||||||
|
fi
|
||||||
|
if [ "${IS_MX8}" = "1" ]; then
|
||||||
|
# Rename our libvulkan.so so it doesn't clash with vulkan-loader libvulkan.so
|
||||||
|
mv ${D}${libdir}/libvulkan.so.1.1.6 ${D}${libdir}/libvulkan_VSI.so.1.1.6
|
||||||
|
patchelf --set-soname libvulkan_VSI.so.1 ${D}${libdir}/libvulkan_VSI.so.1.1.6
|
||||||
|
ln -sf libvulkan_VSI.so.1.1.6 ${D}${libdir}/libvulkan_VSI.so.1
|
||||||
|
ln -sf libvulkan_VSI.so.1.1.6 ${D}${libdir}/libvulkan_VSI.so
|
||||||
|
rm ${D}${libdir}/libvulkan.so*
|
||||||
|
fi
|
||||||
|
for header in ${GLES3_HEADER_REMOVALS}; do
|
||||||
|
rm -f ${D}${includedir}/GLES3/${header}
|
||||||
|
done
|
||||||
|
|
||||||
|
# skip packaging wayland libraries if no support is requested
|
||||||
|
if [ "${USE_WL}" = "no" ]; then
|
||||||
|
find ${D}${libdir} -name "libgc_wayland_protocol.*" -exec rm '{}' ';'
|
||||||
|
find ${D}${libdir} -name "libwayland-viv.*" -exec rm '{}' ';'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# FIXME: MX6SL does not have 3D support; hack it for now
|
||||||
|
if [ "${IS_MX6SL}" = "1" ]; then
|
||||||
|
rm -rf ${D}${libdir}/libCLC* ${D}${includedir}/CL \
|
||||||
|
\
|
||||||
|
${D}${libdir}/libGL* ${D}${includedir}/GL* ${D}${libdir}/pkgconfig/gl.pc \
|
||||||
|
\
|
||||||
|
${D}${libdir}/libGLES* ${D}${libdir}/pkgconfig/gles*.pc \
|
||||||
|
\
|
||||||
|
${D}${libdir}/libOpenCL* ${D}${includedir}/CL \
|
||||||
|
\
|
||||||
|
${D}${libdir}/libOpenVG.3d.so \
|
||||||
|
\
|
||||||
|
${D}${libdir}/libVivanteOpenCL.so \
|
||||||
|
\
|
||||||
|
${D}/opt/viv_samples/vdk \
|
||||||
|
${D}/opt/viv_samples/es20 ${D}/opt/viv_samples/cl11
|
||||||
|
|
||||||
|
ln -sf libOpenVG.2d.so ${D}${libdir}/libOpenVG.so
|
||||||
|
fi
|
||||||
|
|
||||||
|
find ${D}${libdir} -type f -exec chmod 644 {} \;
|
||||||
|
find ${D}${includedir} -type f -exec chmod 644 {} \;
|
||||||
|
|
||||||
|
chown -R root:root "${D}"
|
||||||
|
}
|
||||||
|
|
||||||
|
ALLOW_EMPTY_${PN} = "1"
|
||||||
|
|
||||||
|
# FIXME: Remove the following lines after adding libopenvx package
|
||||||
|
INSANE_SKIP_imx-gpu-viv-dev += "dev-elf"
|
||||||
|
INSANE_SKIP_libclc-imx += "dev-deps"
|
||||||
|
|
||||||
|
FILES_libclc-imx = "${libdir}/libCLC${SOLIBS}"
|
||||||
|
FILES_libclc-imx-dev = "${includedir}/CL ${libdir}/libCLC${SOLIBSDEV}"
|
||||||
|
|
||||||
|
# libEGL.so is used by some demo apps from Freescale
|
||||||
|
INSANE_SKIP_libegl-imx += "dev-so"
|
||||||
|
FILES_libegl-imx = "${libdir}/libEGL${REALSOLIBS} ${libdir}/libEGL${SOLIBSDEV} "
|
||||||
|
FILES_libegl-imx-dev = "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
|
||||||
|
|
||||||
|
FILES_libgal-imx = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}"
|
||||||
|
FILES_libgal-imx-dev = "${libdir}/libGAL${SOLIBSDEV} ${includedir}/HAL"
|
||||||
|
RDEPENDS_libgal-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'valgrind', '', d)}"
|
||||||
|
RPROVIDES_libgal-imx += "libgal-imx"
|
||||||
|
INSANE_SKIP_libgal-imx += "build-deps"
|
||||||
|
|
||||||
|
FILES_libvsc-imx = "${libdir}/libVSC${SOLIBS}"
|
||||||
|
|
||||||
|
FILES_libgbm-imx_mx8 = "${libdir}/libgbm*${SOLIBS}"
|
||||||
|
FILES_libgbm-imx-dev_mx8 = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h ${libdir}/libgbm${SOLIBSDEV}"
|
||||||
|
RDEPENDS_libgbm-imx_append_mx8 = " libdrm"
|
||||||
|
|
||||||
|
FILES_libvulkan-imx = "${libdir}/libvulkan_VSI${SOLIBS} ${libdir}/libvulkan_VSI${REALSOLIBS} ${libdir}/libSPIRV_viv${SOLIBS}"
|
||||||
|
FILES_libvulkan-imx-dev = "${includedir}/vulkan ${libdir}/libvulkan_VSI${SOLIBSDEV}"
|
||||||
|
INSANE_SKIP_libvulkan-imx += "dev-so"
|
||||||
|
|
||||||
|
FILES_libopenvx-imx = "${libdir}/libOpenVX${SOLIBS} ${libdir}/libOpenVX${REALSOLIBS} ${libdir}/libOvx*${SOLIBS} ${libdir}/libOpenVXC${SOLIBS} ${libdir}/libOpenVXU${SOLIBS}"
|
||||||
|
FILES_libopenvx-imx-dev = "${includedir}/VX ${libdir}/libOpenVX${SOLIBSDEV}"
|
||||||
|
RDEPENDS_libopenvx-imx = "libnn-imx"
|
||||||
|
INSANE_SKIP_libopenvx-imx += "dev-so dev-deps"
|
||||||
|
|
||||||
|
FILES_libgl-imx = "${libdir}/libGL${REALSOLIBS}"
|
||||||
|
FILES_libgl-imx-dev = "${libdir}/libGL${SOLIBSDEV} ${includedir}/GL"
|
||||||
|
INSANE_SKIP_libgl-imx += "file-rdeps"
|
||||||
|
|
||||||
|
# libEGL needs to open libGLESv1.so
|
||||||
|
INSANE_SKIP_libgles1-imx += "dev-so"
|
||||||
|
FILES_libgles1-imx = "${libdir}/libGLESv1*${REALSOLIBS} ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${REALSOLIBS} ${libdir}/libGLES_*${SOLIBS}"
|
||||||
|
FILES_libgles1-imx-dev = "${includedir}/GLES ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${SOLIBSDEV} ${libdir}/pkgconfig/glesv1_cm.pc"
|
||||||
|
RPROVIDES_libgles1-imx = "libgles-imx"
|
||||||
|
RPROVIDES_libgles1-imx-dev = "libgles-imx-dev"
|
||||||
|
|
||||||
|
# libEGL needs to open libGLESv2.so
|
||||||
|
INSANE_SKIP_libgles2-imx += "dev-so"
|
||||||
|
FILES_libgles2-imx = "${libdir}/libGLESv2${REALSOLIBS} ${libdir}/libGLESv2${SOLIBS}"
|
||||||
|
FILES_libgles2-imx-dev = "${includedir}/GLES2 ${libdir}/libGLESv2${SOLIBSDEV} ${libdir}/pkgconfig/glesv2.pc"
|
||||||
|
RDEPENDS_libgles2-imx = "libglslc-imx"
|
||||||
|
|
||||||
|
FILES_libgles3-imx-dev = "${includedir}/GLES3"
|
||||||
|
# as long as there is no libgles3: ship libgles3-dev along with
|
||||||
|
# libgles2-dev - otherwise GLES3 headers have to be added manually
|
||||||
|
RDEPENDS_libgles2-imx-dev += "libgles3-imx-dev"
|
||||||
|
|
||||||
|
FILES_libglslc-imx = "${libdir}/libGLSLC${SOLIBS}"
|
||||||
|
FILES_libglslc-imx-dev = "${includedir}/CL ${libdir}/libGLSLC${SOLIBSDEV}"
|
||||||
|
|
||||||
|
FILES_libopencl-imx = "${libdir}/libOpenCL${SOLIBS} \
|
||||||
|
${libdir}/libOpenCL${REALSOLIBS} \
|
||||||
|
${libdir}/libVivanteOpenCL${SOLIBS} \
|
||||||
|
${libdir}/libLLVM_viv${SOLIBS} \
|
||||||
|
${sysconfdir}/OpenCL/vendors/Vivante.icd"
|
||||||
|
FILES_libopencl-imx-dev = "${includedir}/CL ${libdir}/libOpenCL${SOLIBSDEV}"
|
||||||
|
RDEPENDS_libopencl-imx= "libclc-imx"
|
||||||
|
INSANE_SKIP_libopencl-imx += "dev-so dev-deps"
|
||||||
|
|
||||||
|
FILES_libnn-imx = "${libdir}/libNN*${SOLIBS}"
|
||||||
|
|
||||||
|
INSANE_SKIP_libopenvg-imx += "dev-so"
|
||||||
|
FILES_libopenvg-imx = "${libdir}/libOpenVG*${REALSOLIBS}"
|
||||||
|
FILES_libopenvg-imx-dev = "${includedir}/VG ${libdir}/libOpenVG*${SOLIBSDEV} ${libdir}/pkgconfig/vg.pc"
|
||||||
|
RDEPENDS_libopenvg-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-gpuconfig', '', d)}"
|
||||||
|
|
||||||
|
FILES_libvdk-imx = "${libdir}/libVDK*${REALSOLIBS}"
|
||||||
|
FILES_libvdk-imx-dev = "${includedir}/*vdk*.h ${libdir}/libVDK${SOLIBSDEV}"
|
||||||
|
INSANE_SKIP_libvdk-imx += "dev-so"
|
||||||
|
|
||||||
|
FILES_libvivante-dri-imx = "${libdir}/dri/vivante_dri.so"
|
||||||
|
RDEPENDS_libvivante-dri-imx = "libdrm"
|
||||||
|
|
||||||
|
INSANE_SKIP_libwayland-viv-imx += "dev-so"
|
||||||
|
FILES_libwayland-viv-imx = "${libdir}/libwayland-viv${REALSOLIBS} ${libdir}/libwayland-viv${SOLIBS}"
|
||||||
|
FILES_libwayland-viv-imx-dev = "${includedir}/wayland-viv ${libdir})/libwayland-viv${SOLIBSDEV} ${libdir}/pkgconfig/wayland-viv.pc"
|
||||||
|
RPROVIDES_libwayland-viv-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'xf86-video-imx-vivante', '', d)}"
|
||||||
|
|
||||||
|
INSANE_SKIP_libgc-wayland-protocol-imx += "dev-so"
|
||||||
|
FILES_libgc-wayland-protocol-imx = "${libdir}/libgc_wayland_protocol${REALSOLIBS} ${libdir}/libgc_wayland_protocol${SOLIBS}"
|
||||||
|
FILES_libgc-wayland-protocol-imx-dev = "${libdir}/libgc_wayland_protocol${SOLIBSDEV} ${libdir}/pkgconfig/gc_wayland_protocol.pc"
|
||||||
|
|
||||||
|
FILES_imx-gpu-viv-tools = "${bindir}/gmem_info"
|
||||||
|
|
||||||
|
FILES_imx-gpu-viv-demos = "/opt"
|
||||||
|
INSANE_SKIP_imx-gpu-viv-demos += "rpaths dev-deps"
|
||||||
|
|
||||||
|
# COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx8)"
|
||||||
|
|
||||||
|
# Digi custom change: we include the imx-gpu-viv driver as built-in in the
|
||||||
|
# kernel, so this dependency isn't necessary
|
||||||
|
RDEPENDS_libgal-imx_remove = "kernel-module-imx-gpu-viv"
|
||||||
|
|
||||||
|
# Remove wayland as a requirement to build framebuffer images
|
||||||
|
REQUIRED_DISTRO_FEATURES_mx8_remove = "wayland"
|
||||||
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
require recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc
|
|
||||||
|
|
||||||
EXTRA_PROVIDES_remove = "virtual/libopenvx"
|
|
||||||
PROVIDES_OPENVX = ""
|
|
||||||
PROVIDES_OPENVX_mx8 = "virtual/libopenvx"
|
|
||||||
PROVIDES_OPENVX_mx8mm = ""
|
|
||||||
PROVIDES += "${PROVIDES_OPENVX}"
|
|
||||||
|
|
||||||
PACKAGES =+ "libnn-imx"
|
|
||||||
|
|
||||||
GLES3_HEADER_REMOVALS_mx8mn = "gl32.h"
|
|
||||||
GLES3_HEADER_REMOVALS_mx8mp = "gl32.h"
|
|
||||||
|
|
||||||
FILES_libgbm-imx_mx8 = "${libdir}/libgbm*${SOLIBS}"
|
|
||||||
|
|
||||||
FILES_libvulkan-imx_append = " ${libdir}/libvulkan_VSI${REALSOLIBS}"
|
|
||||||
INSANE_SKIP_libvulkan-imx += "dev-so"
|
|
||||||
|
|
||||||
FILES_libopenvx-imx_append = " ${libdir}/libOpenVX${REALSOLIBS} ${libdir}/libOvx*${SOLIBS}"
|
|
||||||
RDEPENDS_libopenvx-imx = "libnn-imx"
|
|
||||||
INSANE_SKIP_libopenvx-imx += "dev-so"
|
|
||||||
|
|
||||||
FILES_libopencl-imx_append = " ${libdir}/libOpenCL${REALSOLIBS}"
|
|
||||||
INSANE_SKIP_libopencl-imx += "dev-so"
|
|
||||||
|
|
||||||
FILES_libnn-imx = "${libdir}/libNN*${SOLIBS}"
|
|
||||||
|
|
||||||
RDEPENDS_libgal-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'valgrind', '', d)}"
|
|
||||||
|
|
||||||
RDEPENDS_libopenvg-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-gpuconfig', '', d)}"
|
|
||||||
|
|
||||||
# Digi custom change: we include the imx-gpu-viv driver as built-in in the
|
|
||||||
# kernel, so this dependency isn't necessary
|
|
||||||
RDEPENDS_libgal-imx_remove = "kernel-module-imx-gpu-viv"
|
|
||||||
|
|
||||||
# Remove wayland as a requirement to build framebuffer images
|
|
||||||
REQUIRED_DISTRO_FEATURES_mx8_remove = "wayland"
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
require imx-gpu-viv-v6.inc
|
|
||||||
|
|
||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9"
|
|
||||||
|
|
||||||
# FIXME: Remove this patch when upstream handles backend-specific libGL
|
|
||||||
SRC_URI += "file://Add-dummy-libgl.patch"
|
|
||||||
|
|
||||||
SRC_URI[md5sum] = "cd5e9ba9247aa0da5d97b0f030e2ede1"
|
|
||||||
SRC_URI[sha256sum] = "9cc4c6594083f5970bc394a698a0a8ed0c7f2a1a753dfbf25cb0be5ab8bdcbd5"
|
|
||||||
|
|
||||||
do_install_append() {
|
|
||||||
if [ "${IS_MX6SL}" != "1" ]; then
|
|
||||||
if [ "${USE_WL}" = "yes" -o "${USE_X11}" = "yes" ]; then
|
|
||||||
cp ${S}/gpu-core/usr/lib/libGL-${backend}.so ${D}${libdir}/libGL.so.1.2.0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx7ulp)"
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
require imx-gpu-viv-v6.inc
|
|
||||||
|
|
||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=228c72f2a91452b8a03c4cab30f30ef9"
|
|
||||||
|
|
||||||
SRC_URI[md5sum] = "633029434f0ccc0e8a6b01d92cae95b2"
|
|
||||||
SRC_URI[sha256sum] = "a295f41a6346c507fc8a677c26ecf9b2f416735e32e6d0734516ef5363027720"
|
|
||||||
|
|
||||||
do_install_append() {
|
|
||||||
if [ "${USE_WL}" = "yes" -o "${USE_X11}" = "yes" ]; then
|
|
||||||
cp ${S}/gpu-core/usr/lib/libGL-${backend}.so ${D}${libdir}/libGL.so.1.2.0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove the work done by the upstream install for libvulkan so
|
|
||||||
# we can install the newly versioned library files
|
|
||||||
rm ${D}${libdir}/libvulkan_VSI.so
|
|
||||||
# Copy backend-specific library and rename it for use by vulkan-loader
|
|
||||||
# library of the same name
|
|
||||||
for i in fb wl x11; do
|
|
||||||
if [ "$i" = "${backend}" ]; then
|
|
||||||
mv ${D}${libdir}/libvulkan-${backend}.so.1.1.3 ${D}${libdir}/libvulkan_VSI.so.1.1.3
|
|
||||||
else
|
|
||||||
rm ${D}${libdir}/libvulkan-${i}.so.1.1.3
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
patchelf --set-soname libvulkan_VSI.so.1 ${D}${libdir}/libvulkan_VSI.so.1.1.3
|
|
||||||
rm ${D}${libdir}/libvulkan.so.1 ${D}${libdir}/libvulkan.so
|
|
||||||
ln -s libvulkan_VSI.so.1.1.3 ${D}${libdir}/libvulkan_VSI.so.1
|
|
||||||
ln -s libvulkan_VSI.so.1.1.3 ${D}${libdir}/libvulkan_VSI.so
|
|
||||||
}
|
|
||||||
|
|
||||||
COMPATIBLE_MACHINE = "(mx8)"
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
require imx-gpu-viv-6.inc
|
||||||
|
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYING;md5=983e4c77621568488dd902b27e0c2143"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "163167d49e1667bab3a8a37ea33b7624"
|
||||||
|
SRC_URI[sha256sum] = "cdec43e45e840fe30e188e3b6f07c44b4a1ceafc315e605c8d278564db5fcbe9"
|
||||||
|
|
||||||
|
COMPATIBLE_MACHINE = "(mx6q|mx6dl|mx6sx|mx6sl|mx7ulp)"
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
require imx-gpu-viv-6.inc
|
||||||
|
|
||||||
|
LIC_FILES_CHKSUM = "file://COPYING;md5=983e4c77621568488dd902b27e0c2143"
|
||||||
|
|
||||||
|
SRC_URI[md5sum] = "db4c88a19d0c1f7ec2788531822f9144"
|
||||||
|
SRC_URI[sha256sum] = "b3bd03288106daf3a62d2301d09569292ef6a5c74c761cfa4e41dad85e4bf547"
|
||||||
|
|
||||||
|
COMPATIBLE_MACHINE = "(mx8)"
|
||||||
|
|
@ -7,7 +7,6 @@ SRC_URI += " \
|
||||||
file://profile \
|
file://profile \
|
||||||
"
|
"
|
||||||
|
|
||||||
SRC_URI_append_mx8dx = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', ' file://weston.config', '', d)}"
|
|
||||||
|
|
||||||
# To customize weston.ini, start by setting the desired assignment in weston.ini,
|
# To customize weston.ini, start by setting the desired assignment in weston.ini,
|
||||||
# commented out. For example:
|
# commented out. For example:
|
||||||
|
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
GBM_SET_FORMAT_MOD_LINEAR=1
|
|
||||||
|
|
@ -3,7 +3,7 @@ require recipes-graphics/wayland/weston_7.0.0.bb
|
||||||
SRC_URI_remove = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
|
SRC_URI_remove = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
|
||||||
WESTON_SRC ?= "git://source.codeaurora.org/external/imx/weston-imx.git;protocol=https"
|
WESTON_SRC ?= "git://source.codeaurora.org/external/imx/weston-imx.git;protocol=https"
|
||||||
SRC_URI_prepend = "${WESTON_SRC};branch=weston-imx-8.0 "
|
SRC_URI_prepend = "${WESTON_SRC};branch=weston-imx-8.0 "
|
||||||
SRCREV = "27cde5253235104c45b8ce72963e7ae159134f89"
|
SRCREV = "f13d40a3a0504a00baf2f28abe83b65dab8b2e10"
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|
||||||
# Disable OpenGL for parts with GPU support for 2D but not 3D
|
# Disable OpenGL for parts with GPU support for 2D but not 3D
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue