diff --git a/README.md b/README.md index 00ec34e54..67197f667 100644 --- a/README.md +++ b/README.md @@ -54,8 +54,31 @@ Software for the following hardware platforms is in production support: * [CC-WMX6UL-KIT](https://www.digi.com/products/models/cc-wmx6ul-kit) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/3.0/cc6ul/yocto-gs_index)) * [CC-SBP-WMX-JN58](https://www.digi.com/products/models/cc-sbp-wmx-jn58) -Previous versions of Digi Embedded Yocto include support for additional Digi -hardware. +## ConnectCore 6 Plus +* ConnectCore 6 Plus System-on-Module (SOM) + * [CC-WMX-KK8D-TN](https://www.digi.com/products/models/cc-wmx-kk8d-tn) +* ConnectCore 6 Plus professional development kit + * [CC-WMX6P-KIT](https://www.digi.com/products/models/cc-wmx6p-kit) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/3.0/cc6plus/yocto-gs_index)) + +## ConnectCore 6 +* ConnectCore 6 System-on-Module (SOM) + * [CC-WMX-J97C-TN](https://www.digi.com/products/models/cc-wmx-j97c-tn) + * [CC-WMX-L96C-TE](https://www.digi.com/products/models/cc-wmx-l96c-te) + * [CC-WMX-L87C-TE](https://www.digi.com/products/models/cc-wmx-l87c-te) + * [CC-MX-L76C-Z1](https://www.digi.com/products/models/cc-mx-l76c-z1) + * [CC-MX-L86C-Z1](https://www.digi.com/products/models/cc-mx-l86c-z1) + * [CC-MX-L96C-Z1](https://www.digi.com/products/models/cc-mx-l96c-z1) + * [CC-WMX-L76C-TE](https://www.digi.com/products/models/cc-wmx-l76c-te) + * CC-WMX-K87C-FJA + * CC-WMX-K77C-TE + * CC-WMX-L97D-TN + * CC-WMX-J98C-FJA + * CC-WMX-J98C-FJA-1 +* ConnectCore 6 Jumpstart Development Kit (SBC with Connectore 6 module) + * [CC-WMX6-KIT](https://www.digi.com/products/models/cc-wmx6-kit) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/3.0/cc6/yocto-gs_index)) + * [CC-SB-WMX-J97C-1](https://www.digi.com/products/models/cc-sb-wmx-j97c-1) + * [CC-SB-WMX-L87C-1](https://www.digi.com/products/models/cc-sb-wmx-l87c-1) + * [CC-SB-WMX-L76C-1](https://www.digi.com/products/models/cc-sb-wmx-l76c-1) # Installation @@ -70,11 +93,23 @@ Documentation is available online at https://www.digi.com/resources/documentatio # Downloads -* Demo images: https://ftp1.digi.com/support/digiembeddedyocto/3.0/r1/images/ -* Software Development Kit (SDK): https://ftp1.digi.com/support/digiembeddedyocto/3.0/r1/sdk/ +* Demo images: https://ftp1.digi.com/support/digiembeddedyocto/3.0/r2/images/ +* Software Development Kit (SDK): https://ftp1.digi.com/support/digiembeddedyocto/3.0/r2/sdk/ # Release Changelog +## 3.0-r2 + +* Updated BSP to NXP release rel_imx_5.4.24_2.1.0. +* Added support to ConnectCore 6 and ConnectCore 6 Plus (kernel v5.4). +* Updated U-Boot to version 2020.04-r1 for ConnectCore 8X. +* TrustFence: added secure console and U-Boot environment encryption support. + to ConnectCore 8X and 8M Nano. +* Added MCA keypad support for ConnectCore 8X and 8M Nano. +* Fix SoftAP on 5GHz on ConnectCore 6UL. +* Other minor fixes. + + ## 3.0-r1 * Release based on [Yocto 3.0 (Zeus)](https://www.yoctoproject.org/software-overview/downloads) including: @@ -87,10 +122,11 @@ Documentation is available online at https://www.digi.com/resources/documentatio * Removed support to bluez4 * Updated OpenSSL to v1.1.1d * Package upgrades and security fixes -* Updated kernel version to v5.4 for i.MX8X, i.MX8MN and i.MX6UL platforms -* Updated U-Boot to version 2017.03-r6 for i.MX6UL platform -* Updated U-Boot to version 2018.03-r4 for i.MX8MN platform -* Updated U-Boot to version 2019.04-r2 for i.MX8X platform +* Updated kernel version to v5.4 for ConnectCore 8X, ConnecCore 8M Nano and + ConnectCore 6UL +* Updated U-Boot to version 2017.03-r6 for ConnectCore 6UL +* Updated U-Boot to version 2018.03-r4 for ConnectCore 8 MNano platform +* Updated U-Boot to version 2019.04-r2 for ConnectCore 8X platform * Added support for ConnectCore 8M Nano v2 SOM * Added initial TrustFence support for ConnectCore 8M Nano @@ -116,17 +152,13 @@ updated list can be found on the online documentation. * When working as an access point, DFS-capable channels in the 5GHz band are not supported. * For P2P connections Digi recommends "Negotiated GO" modes. The QCA6564 - devices (ConnectCore 6UL and ConnectCore 8M Nano) fail to join autonomous - groups. -* Trustfence is not yet supported on the ConnectCore 8M Nano. + devices (ConnectCore 6UL, ConnectCore 6 Plus, and ConnectCore 8M Nano) fail + to join autonomous groups. ## ConnectCore 8M Nano * ConnectCore 8M Nano System-on-Module (SOM) * CPU wake-up sources are not yet supported -* ConnectCore 8M Nano DVK - * The maximum bitrate for CAN interface is 125 Kbits/s. This is a software - limitation from the CAN controller. ## ConnectCore 8X @@ -149,6 +181,34 @@ updated list can be found on the online documentation. reducing the maximum throughput of this interface. * The QCA6564 wireless chip does not support Wake On Wireless LAN. +## ConnectCore 6 Plus + +* ConnectCore 6 Plus System-on-Module (SOM) + * NXP i.MX6QP processor has a documented errata (ERR004512) whereby the maximum + performance of the Gigabit FEC is limited to 400Mbps (total for Tx and Rx). +* ConnectCore 6 Plus SBC + * The Micrel PHY KSZ9031 may take between five and six seconds to + auto-negotiate with Gigabit switches. + +## ConnectCore 6 + +* ConnectCore 6 System-on-Module (SOM) + * NXP i.MX6 processor has a documented errata (ERR004512) whereby the maximum + performance of the Gigabit FEC is limited to 400Mbps (total for Tx and Rx). + * When using softAP mode on Band A on the Qualcomm AR6233, channels used for + Dynamic Frequency Selection (DFS) are not supported. + * The Qualcomm AR6233 firmware does not support the following configuration + modes: + * Concurrent modes involving P2P mode, such as P2P + softAP or P2P + STA. + * Bluetooth + softAP + STA concurrent mode. + * A maximum of five clients are supported when using Qualcomm's AR6233 in + softAP mode. + * A maximum of ten connected devices are supported when using Qualcomm's AR6233 + Bluetooth Low Energy mode. +* ConnectCore 6 SBC + * The Micrel PHY KSZ9031 may take between five and six seconds to + auto-negotiate with Gigabit switches. + # Support Contact Information For support questions please contact Digi Technical Support: diff --git a/meta-digi-arm/conf/machine/ccimx6qpsbc.conf b/meta-digi-arm/conf/machine/ccimx6qpsbc.conf index 8b5fbea57..5895509ae 100644 --- a/meta-digi-arm/conf/machine/ccimx6qpsbc.conf +++ b/meta-digi-arm/conf/machine/ccimx6qpsbc.conf @@ -22,7 +22,8 @@ PREFERRED_PROVIDER_virtual/libg2d_mx6 = "imx-gpu-g2d" # U-Boot configurations # Last one is the default (the one the symlinks point at) -UBOOT_CONFIG ??= "ccimx6qpsbc2GB" +UBOOT_CONFIG ??= "ccimx6qpsbc1GB ccimx6qpsbc2GB" +UBOOT_CONFIG[ccimx6qpsbc1GB] = "ccimx6qpsbc1GB_defconfig,,u-boot-dtb.${UBOOT_SUFFIX}" UBOOT_CONFIG[ccimx6qpsbc2GB] = "ccimx6qpsbc2GB_defconfig,,u-boot-dtb.${UBOOT_SUFFIX}" KERNEL_DEVICETREE ?= " \ diff --git a/meta-digi-arm/conf/machine/ccimx8mn-dvk.conf b/meta-digi-arm/conf/machine/ccimx8mn-dvk.conf index 5b45b1424..966cee45a 100644 --- a/meta-digi-arm/conf/machine/ccimx8mn-dvk.conf +++ b/meta-digi-arm/conf/machine/ccimx8mn-dvk.conf @@ -15,12 +15,14 @@ SPL_BINARY = "spl/u-boot-spl.bin" UBOOT_DTB_NAME = "ccimx8mn-dvk.dtb" KERNEL_DEVICETREE ?= " \ - digi/ccimx8mn_ov_bt.dtbo \ - digi/ccimx8mn_ov_quad.dtbo \ - digi/ccimx8mn_ov_v1.dtbo \ - digi/ccimx8mn_ov_wifi.dtbo \ digi/ccimx8mn-dvk.dtb \ - digi/ccimx8mn-dvk_ov_lvds.dtbo \ + digi/_ov_board_lvds_ccimx8mn-dvk.dtbo \ + digi/_ov_board_v1-v2_ccimx8mn-dvk.dtbo \ + digi/_ov_som_bt_ccimx8mn.dtbo \ + digi/_ov_som_mca-keypad_ccimx8mn.dtbo \ + digi/_ov_som_quad_ccimx8mn.dtbo \ + digi/_ov_som_v1_ccimx8mn.dtbo \ + digi/_ov_som_wifi_ccimx8mn.dtbo \ " SERIAL_CONSOLES ?= "115200;ttymxc0" diff --git a/meta-digi-arm/conf/machine/ccimx8x-sbc-express.conf b/meta-digi-arm/conf/machine/ccimx8x-sbc-express.conf index e4aa15a34..c2599b41d 100644 --- a/meta-digi-arm/conf/machine/ccimx8x-sbc-express.conf +++ b/meta-digi-arm/conf/machine/ccimx8x-sbc-express.conf @@ -13,9 +13,9 @@ UBOOT_CONFIG[ccimx8x_sbc_express1GB] = "ccimx8x_sbc_express1GB_defconfig,,u-boot KERNEL_DEVICETREE ?= " \ digi/ccimx8x-sbc-express.dtb \ - digi/ccimx8x_ov_bt.dtbo \ - digi/ccimx8x_ov_qxp.dtbo \ - digi/ccimx8x_ov_wifi.dtbo \ + digi/_ov_som_bt_ccimx8x.dtbo \ + digi/_ov_som_quad_ccimx8x.dtbo \ + digi/_ov_som_wifi_ccimx8x.dtbo \ " SERIAL_CONSOLES ?= "115200;ttyLP2" diff --git a/meta-digi-arm/conf/machine/ccimx8x-sbc-pro.conf b/meta-digi-arm/conf/machine/ccimx8x-sbc-pro.conf index 9563dcfcd..3fb369cdc 100644 --- a/meta-digi-arm/conf/machine/ccimx8x-sbc-pro.conf +++ b/meta-digi-arm/conf/machine/ccimx8x-sbc-pro.conf @@ -14,16 +14,18 @@ UBOOT_CONFIG[ccimx8x_sbc_pro512MB] = "ccimx8x_sbc_pro512MB_defconfig,,u-boot-dtb KERNEL_DEVICETREE ?= " \ digi/ccimx8x-sbc-pro.dtb \ - digi/ccimx8x_ov_bt.dtbo \ - digi/ccimx8x_ov_qxp.dtbo \ - digi/ccimx8x_ov_wifi.dtbo \ - digi/ccimx8x-sbc-pro_ov_flexcan1.dtbo \ - digi/ccimx8x-sbc-pro_ov_lpuart3.dtbo \ - digi/ccimx8x-sbc-pro_ov_lt9812-hdmi-dsi0.dtbo \ - digi/ccimx8x-sbc-pro_ov_lvds1.dtbo \ - digi/ccimx8x-sbc-pro_ov_parallel-camera.dtbo \ - digi/ccimx8x-sbc-pro_ov_pcie-card.dtbo \ - digi/ccimx8x-sbc-pro_ov_hsd101pfw2_lvds.dtbo \ + digi/_ov_board_flexcan1_ccimx8x-sbc-pro.dtbo \ + digi/_ov_board_hsd101pfw2-lvds_ccimx8x-sbc-pro.dtbo \ + digi/_ov_board_lpuart3_ccimx8x-sbc-pro.dtbo \ + digi/_ov_board_lt9812-hdmi-dsi0_ccimx8x-sbc-pro.dtbo \ + digi/_ov_board_lvds1_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_v1-v3_ccimx8x-sbc-pro.dtbo \ + digi/_ov_som_bt_ccimx8x.dtbo \ + digi/_ov_som_mca-keypad_ccimx8x.dtbo \ + digi/_ov_som_quad_ccimx8x.dtbo \ + digi/_ov_som_wifi_ccimx8x.dtbo \ " SERIAL_CONSOLES ?= "115200;ttyLP2" diff --git a/meta-digi-arm/conf/machine/include/ccimx6.inc b/meta-digi-arm/conf/machine/include/ccimx6.inc index d646fa6f0..69becb213 100644 --- a/meta-digi-arm/conf/machine/include/ccimx6.inc +++ b/meta-digi-arm/conf/machine/include/ccimx6.inc @@ -20,9 +20,6 @@ STORAGE_MEDIA = "mmc" # Wireless external module WIRELESS_MODULE ?= "" -# Use our recipe of linux-imx-headers instead of the meta-freescale one -PREFERRED_VERSION_linux-imx-headers ?= "4.9" - # Firmware MACHINE_FIRMWARE ?= "firmware-imx-sdma" MACHINE_FIRMWARE_append_mx6q = " firmware-imx-vpu-imx6q" @@ -44,3 +41,6 @@ MACHINE_FEATURES += "accel-graphics accel-video wifi bluetooth pci" # TrustFence TRUSTFENCE_SIGN_MODE = "HAB" + +# Adding 'wayland' along with 'x11' enables the xwayland backend +DISTRO_FEATURES_append = " wayland" diff --git a/meta-digi-arm/conf/machine/include/ccimx8mn.inc b/meta-digi-arm/conf/machine/include/ccimx8mn.inc index e94d7e96e..ac0ee1ff2 100644 --- a/meta-digi-arm/conf/machine/include/ccimx8mn.inc +++ b/meta-digi-arm/conf/machine/include/ccimx8mn.inc @@ -62,7 +62,6 @@ VIRTUAL-RUNTIME_initscripts ?= "initscripts" TRUSTFENCE_SIGN_MODE = "HAB" # TODO: Encryption not yet supported TRUSTFENCE_DEK_PATH = "0" -TRUSTFENCE_ENCRYPT_ENVIRONMENT = "0" # Adding 'wayland' along with 'x11' enables the xwayland backend # Vulkan is necessary for wayland to build diff --git a/meta-digi-arm/conf/machine/include/digi-defaults.inc b/meta-digi-arm/conf/machine/include/digi-defaults.inc index 40a7604bd..6eecb5dd9 100644 --- a/meta-digi-arm/conf/machine/include/digi-defaults.inc +++ b/meta-digi-arm/conf/machine/include/digi-defaults.inc @@ -14,8 +14,10 @@ LINUXLIBCVERSION ?= "5.4%" # # Platform Linux U-Boot # ------------------------------------------------- +# ccimx6 5.4 2017.03 +# ccimx6qp 5.4 2017.03 # ccimx6ul 5.4 2017.03 -# ccimx8x 5.4 2019.04, 2018.03, 2017.03 (all packaged in imx-boot) +# ccimx8x 5.4 2020.04 (packaged in imx-boot) # ccimx8mn 5.4 2018.03 (packaged in imx-boot) # diff --git a/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/ccimx8mn/bdwlan30_US.bin b/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/ccimx8mn/bdwlan30_US.bin index b5b763136..486c810cc 100644 Binary files a/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/ccimx8mn/bdwlan30_US.bin and b/meta-digi-arm/recipes-bsp/firmware-qualcomm/firmware-qualcomm/ccimx8mn/bdwlan30_US.bin differ diff --git a/meta-digi-arm/recipes-bsp/imx-mkimage/files/0001-imx8m-soc.mak-preserve-dtbs-after-build.patch b/meta-digi-arm/recipes-bsp/imx-mkimage/files/0001-imx8m-soc.mak-preserve-dtbs-after-build.patch new file mode 100644 index 000000000..7c4fb2c82 --- /dev/null +++ b/meta-digi-arm/recipes-bsp/imx-mkimage/files/0001-imx8m-soc.mak-preserve-dtbs-after-build.patch @@ -0,0 +1,42 @@ +From: Gonzalo Ruiz +Date: Wed, 23 Sep 2020 10:15:08 +0200 +Subject: [PATCH] imx8m: soc.mak: preserve dtbs after build + +On commit ab433440269bbd5383b47ee60957e9906cda0b3b a dtb preprocess +was introduced to have compatibility with old U-Boots. + +As part of those changes, the content of variable $(dtbs) was deleted +at the end of the build. + +Since we added the dtbs variable as an argument, building is causing the +original dtb file to be removed, and a second build is failing since the +file pointed at by the dtbs variable does no longer exist. + +Remove the file removal to avoid this. + +Signed-off-by: Gonzalo Ruiz +--- + iMX8M/soc.mak | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/iMX8M/soc.mak b/iMX8M/soc.mak +index b7b3986..fa84c6a 100644 +--- a/iMX8M/soc.mak ++++ b/iMX8M/soc.mak +@@ -143,7 +143,7 @@ u-boot.itb: $(dtbs) + ./$(PAD_IMAGE) u-boot-nodtb.bin $(dtbs) + DEK_BLOB_LOAD_ADDR=$(DEK_BLOB_LOAD_ADDR) TEE_LOAD_ADDR=$(TEE_LOAD_ADDR) ATF_LOAD_ADDR=$(ATF_LOAD_ADDR) ./mkimage_fit_atf.sh $(dtbs) > u-boot.its + ./mkimage_uboot -E -p 0x3000 -f u-boot.its u-boot.itb +- @rm -f u-boot.its $(dtbs) ++ @rm -f u-boot.its + + dtbs_ddr3l = valddr3l.dtb + $(dtbs_ddr3l): +@@ -256,7 +256,6 @@ print_fit_hab: u-boot-nodtb.bin bl31.bin $(dtbs) + ./$(PAD_IMAGE) bl31.bin + ./$(PAD_IMAGE) u-boot-nodtb.bin $(dtbs) + TEE_LOAD_ADDR=$(TEE_LOAD_ADDR) ATF_LOAD_ADDR=$(ATF_LOAD_ADDR) VERSION=$(VERSION) ./print_fit_hab.sh $(PRINT_FIT_HAB_OFFSET) $(dtbs) +- @rm -f $(dtbs) + + print_fit_hab_ddr4: u-boot-nodtb.bin bl31.bin $(dtbs_ddr4_evk) + ./$(PAD_IMAGE) tee.bin diff --git a/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend index 918378d8d..53440c60c 100644 --- a/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend +++ b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend @@ -1,6 +1,8 @@ # Copyright 2019,2020 Digi International, Inc. inherit boot-artifacts +SRC_URI_append_ccimx8mn = " file://0001-imx8m-soc.mak-preserve-dtbs-after-build.patch" + IMX_EXTRA_FIRMWARE_ccimx8x = "digi-sc-firmware imx-seco" DEPENDS_append_ccimx8x = " coreutils-native" diff --git a/meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_git.bb b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_git.bb index 511bb6195..1b80cfd32 100644 --- a/meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_git.bb +++ b/meta-digi-arm/recipes-bsp/imx-mkimage/imx-mkimage_git.bb @@ -8,6 +8,8 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" SECTION = "BSP" +SRC_URI_append_ccimx8mn = " file://0001-imx8m-soc.mak-preserve-dtbs-after-build.patch" + # Beware: applied last to first DEBUG_PREFIX_MAP = "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ -fdebug-prefix-map=${STAGING_DIR_HOST}= \ diff --git a/meta-digi-arm/recipes-bsp/trustfence-cst/trustfence-cst.inc b/meta-digi-arm/recipes-bsp/trustfence-cst/trustfence-cst.inc index 005d65f9a..dae46cd48 100644 --- a/meta-digi-arm/recipes-bsp/trustfence-cst/trustfence-cst.inc +++ b/meta-digi-arm/recipes-bsp/trustfence-cst/trustfence-cst.inc @@ -7,6 +7,11 @@ 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. +DEPENDS_append_class-nativesdk = " byacc-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 \ diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/boot.txt index 7c9012a1e..2ae28ea4a 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/boot.txt @@ -2,19 +2,26 @@ # U-Boot bootscript for EMMC/SD images created by Yocto. # +# Back up environment variables +setenv ORIG_extra_bootargs ${extra_bootargs} + # # Set device tree filename depending on the board ID (if defined) # if test -n "${board_id}"; then - setenv fdt_file ${soc_family}-ccimx6qpsbc-id${board_id}.dtb + setenv fdt_file imx6qp-ccimx6qpsbc-id${board_id}.dtb else # # Set device tree filename depending on the hardware variant # if test "${module_variant}" = "0x01"; then - setenv fdt_file ${soc_family}-ccimx6qpsbc-wb.dtb + setenv fdt_file imx6qp-ccimx6qpsbc-wb.dtb + elif test "${module_variant}" = "0x02"; then + setenv fdt_file imx6qp-ccimx6qpsbc-wb.dtb + elif test "${module_variant}" = "0x03"; then + setenv fdt_file imx6qp-ccimx6qpsbc.dtb else - setenv fdt_file ${soc_family}-ccimx6qpsbc-wb.dtb + setenv fdt_file imx6qp-ccimx6qpsbc-wb.dtb fi fi @@ -34,3 +41,11 @@ else fi setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} dboot linux mmc ${mmcbootdev}:${mmcpart} + + + +# We only get here in case of an error on the dboot command. + +# Undo changes to environment variables +setenv extra_bootargs ${ORIG_extra_bootargs} +setenv ORIG_extra_bootargs diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/install_linux_fw_sd.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/install_linux_fw_sd.txt index 918a3715f..daceaa14a 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/install_linux_fw_sd.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/install_linux_fw_sd.txt @@ -21,8 +21,10 @@ fi # Determine U-Boot file to program basing on module variant if test -n "${module_variant}"; then - if test "${module_variant}" = "0x01"; 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 @@ -36,6 +38,9 @@ else 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 ""; diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/boot.txt index 95f55ff61..d68c1bfee 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/boot.txt @@ -2,6 +2,9 @@ # U-Boot bootscript for EMMC/SD images created by Yocto. # +# Back up environment variables +setenv ORIG_extra_bootargs ${extra_bootargs} + # # Set device tree filename depending on the board ID (if defined) # @@ -64,3 +67,11 @@ else fi setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} dboot linux mmc ${mmcbootdev}:${mmcpart} + + + +# We only get here in case of an error on the dboot command. + +# Undo changes to environment variables +setenv extra_bootargs ${ORIG_extra_bootargs} +setenv ORIG_extra_bootargs diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ulsbc/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ulsbc/boot.txt index 09e5b0ec1..00762b19a 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ulsbc/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ulsbc/boot.txt @@ -2,6 +2,9 @@ # U-Boot bootscript for NAND images created by Yocto. # +# Back up environment variables +setenv ORIG_extra_bootargs ${extra_bootargs} + # # Set device tree filename depending on the board ID (if defined) # @@ -28,3 +31,11 @@ else fi setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} dboot linux nand ${mtdbootpart} + + + +# We only get here in case of an error on the dboot command. + +# Undo changes to environment variables +setenv extra_bootargs ${ORIG_extra_bootargs} +setenv ORIG_extra_bootargs diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ulstarter/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ulstarter/boot.txt index 37758ec4f..daf3d707f 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ulstarter/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ulstarter/boot.txt @@ -2,6 +2,9 @@ # U-Boot bootscript for NAND images created by Yocto. # +# Back up environment variables +setenv ORIG_extra_bootargs ${extra_bootargs} + # # Set device tree filename depending on the board ID (if defined) # @@ -28,3 +31,11 @@ else fi setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} dboot linux nand ${mtdbootpart} + + + +# We only get here in case of an error on the dboot command. + +# Undo changes to environment variables +setenv extra_bootargs ${ORIG_extra_bootargs} +setenv ORIG_extra_bootargs diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8mn-dvk/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8mn-dvk/boot.txt index 0b72f146f..413f0e3f5 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8mn-dvk/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8mn-dvk/boot.txt @@ -2,6 +2,10 @@ # U-Boot bootscript for EMMC/SD images created by Yocto. # +# Back up environment variables +setenv ORIG_overlays ${overlays} +setenv ORIG_extra_bootargs ${extra_bootargs} + # Set SOC type to "imx8mn" if not already defined by U-Boot if test ! -n "${soc_type}"; then setenv soc_type "imx8mn" @@ -21,21 +25,26 @@ if test -n "${module_ram}"; then setexpr module_has_bt ${module_has_bt} / 20000 if test "${module_has_bt}" = "1"; then - setenv overlays ccimx8mn_ov_bt.dtbo,${overlays} + setenv overlays _ov_som_bt_ccimx8mn.dtbo,${overlays} fi if test "${module_has_wifi}" = "1"; then - setenv overlays ccimx8mn_ov_wifi.dtbo,${overlays} + setenv overlays _ov_som_wifi_ccimx8mn.dtbo,${overlays} fi if test "${som_hv}" = "1"; then - setenv overlays ccimx8mn_ov_v1.dtbo,${overlays} + setenv overlays _ov_som_v1_ccimx8mn.dtbo,${overlays} fi fi # Apply quad overlay if the SOC type is "imx8mn" if test "${soc_type}" = "imx8mn"; then - setenv overlays ccimx8mn_ov_quad.dtbo,${overlays} + setenv overlays _ov_som_quad_ccimx8mn.dtbo,${overlays} +fi + +# Apply DVK v1-v2 overlay if the board version is < 3 +if test "${board_version}" -lt "3"; then + setenv overlays _ov_board_v1-v2_ccimx8mn-dvk.dtbo,${overlays} fi # Get the UUID of the configured boot partition. @@ -54,3 +63,13 @@ else fi setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} dboot linux mmc ${mmcbootdev}:${mmcpart} + + + +# We only get here in case of an error on the dboot command. + +# Undo changes to environment variables +setenv overlays ${ORIG_overlays} +setenv ORIG_overlays +setenv extra_bootargs ${ORIG_extra_bootargs} +setenv ORIG_extra_bootargs diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-express/boot.txt similarity index 59% rename from meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/boot.txt rename to meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-express/boot.txt index c1e68612c..875d874de 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-express/boot.txt @@ -2,6 +2,10 @@ # U-Boot bootscript for EMMC/SD images created by Yocto. # +# Back up environment variables +setenv ORIG_overlays ${overlays} +setenv ORIG_extra_bootargs ${extra_bootargs} + # Set SOC type to "imx8qxp" if not already defined by U-Boot if test ! -n "${soc_type}"; then setenv soc_type "imx8qxp" @@ -17,26 +21,28 @@ if test -n "${module_ram}"; then setexpr module_has_bt ${module_has_bt} / 2 if test "${module_has_bt}" = "1"; then - setenv overlays ccimx8x_ov_bt.dtbo,${overlays} + setenv overlays _ov_som_bt_ccimx8x.dtbo,${overlays} fi if test "${module_has_wifi}" = "1"; then - setenv overlays ccimx8x_ov_wifi.dtbo,${overlays} + setenv overlays _ov_som_wifi_ccimx8x.dtbo,${overlays} fi else # # Set overlays depending on the hardware variant # - if test "${module_variant}" = "0x01" || - test "${module_variant}" = "0x02" || - test "${module_variant}" = "0x04"; then - setenv overlays ccimx8x_ov_bt.dtbo,ccimx8x_ov_wifi.dtbo,${overlays} + if test "${module_variant}" = "0x01"; then + setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays} + elif test "${module_variant}" = "0x02"; then + setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays} + elif test "${module_variant}" = "0x04"; then + setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays} fi fi # Apply QXP overlay if the SOC type is "imx8qxp" if test "${soc_type}" = "imx8qxp"; then - setenv overlays ccimx8x_ov_qxp.dtbo,${overlays} + setenv overlays _ov_som_quad_ccimx8x.dtbo,${overlays} fi # Get the UUID of the configured boot partition. @@ -55,3 +61,13 @@ else fi setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} dboot linux mmc ${mmcbootdev}:${mmcpart} + + + +# We only get here in case of an error on the dboot command. + +# Undo changes to environment variables +setenv overlays ${ORIG_overlays} +setenv ORIG_overlays +setenv extra_bootargs ${ORIG_extra_bootargs} +setenv ORIG_extra_bootargs diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-express/install_linux_fw_sd.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-express/install_linux_fw_sd.txt index cef4f9334..602b5f84c 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-express/install_linux_fw_sd.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-express/install_linux_fw_sd.txt @@ -19,24 +19,37 @@ if test $? -eq 1; then 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-${module_ram}_${bus_width}.bin; + 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-1GB_32bit.bin; - elif test "${module_variant}" = "0x02" || \ - test "${module_variant}" = "0x03"; then - setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-express-2GB_32bit.bin; - elif test "${module_variant}" = "0x04" || \ - test "${module_variant}" = "0x05"; then - setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-express-1GB_16bit.bin; + 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 @@ -51,11 +64,11 @@ else 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-1GB_32bit.bin"; + 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-2GB_32bit.bin"; + 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-1GB_16bit.bin"; + echo " => setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-express-${soc_rev}-1GB_16bit.bin"; echo ""; echo "2. Run the install script again."; echo ""; diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-pro/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-pro/boot.txt new file mode 100644 index 000000000..eb6de7f06 --- /dev/null +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-pro/boot.txt @@ -0,0 +1,78 @@ +# +# U-Boot bootscript for EMMC/SD images created by Yocto. +# + +# Back up environment variables +setenv ORIG_overlays ${overlays} +setenv ORIG_extra_bootargs ${extra_bootargs} + +# Set SOC type to "imx8qxp" if not already defined by U-Boot +if test ! -n "${soc_type}"; then + setenv soc_type "imx8qxp" +fi + +# +# Determine overlays to apply depending on the hardware capabilities +# described by the HWID, SOM version, and carrier board version. +# +if test -n "${module_ram}"; then + setexpr module_has_wifi ${hwid_3} \& 1 + setexpr module_has_bt ${hwid_3} \& 2 + setexpr module_has_bt ${module_has_bt} / 2 + + if test "${module_has_bt}" = "1"; then + setenv overlays _ov_som_bt_ccimx8x.dtbo,${overlays} + fi + + if test "${module_has_wifi}" = "1"; then + setenv overlays _ov_som_wifi_ccimx8x.dtbo,${overlays} + fi +else + # + # Set overlays depending on the hardware variant + # + if test "${module_variant}" = "0x01"; then + setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays} + elif test "${module_variant}" = "0x02"; then + setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays} + elif test "${module_variant}" = "0x04"; then + setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays} + fi +fi + +# Apply QXP overlay if the SOC type is "imx8qxp" +if test "${soc_type}" = "imx8qxp"; then + setenv overlays _ov_som_quad_ccimx8x.dtbo,${overlays} +fi + +# Apply SBCv3 overlay if the board_version is 3 or lesser +if test "${board_version}" -le "3"; then + setenv overlays _ov_board_v1-v3_ccimx8x-sbc-pro.dtbo,${overlays} +fi + +# Get the UUID of the configured boot partition. +part uuid mmc ${mmcbootdev}:${mmcpart} bootpart +# Check the boot source. +if test "${bootpart}" = "${part1_uuid}"; then + # We are booting from the eMMC using 'linux'. + true +elif test "${bootpart}" = "${part2_uuid}"; then + # We are booting from the eMMC using 'recovery'. + setenv boot_initrd true + setenv initrd_file uramdisk-recovery.img +else + # We are booting from the SD card. + setenv mmcroot /dev/mmcblk${mmcbootdev}p2 +fi +setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} +dboot linux mmc ${mmcbootdev}:${mmcpart} + + + +# We only get here in case of an error on the dboot command. + +# Undo changes to environment variables +setenv overlays ${ORIG_overlays} +setenv ORIG_overlays +setenv extra_bootargs ${ORIG_extra_bootargs} +setenv ORIG_extra_bootargs diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-pro/install_linux_fw_sd.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-pro/install_linux_fw_sd.txt index 4f9fe3265..f5f4d3365 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-pro/install_linux_fw_sd.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-pro/install_linux_fw_sd.txt @@ -42,14 +42,16 @@ else 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" || \ - test "${module_variant}" = "0x03"; then + elif test "${module_variant}" = "0x02"; then setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-pro-${soc_rev}-2GB_32bit.bin; - elif test "${module_variant}" = "0x04" || \ - test "${module_variant}" = "0x05"; then + 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}-512GB_16bit.bin; + setenv INSTALL_UBOOT_FILENAME imx-boot-ccimx8x-sbc-pro-${soc_rev}-512MB_16bit.bin; fi fi fi diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2017.03.bb b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2017.03.bb index b49765d0d..243ff2143 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2017.03.bb +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2017.03.bb @@ -1,8 +1,8 @@ -# Copyright (C) 2018,2019 Digi International +# Copyright (C) 2018-2020 Digi International require digi-u-boot.inc -SRCBRANCH = "v2017.03/master" +SRCBRANCH = "v2017.03/maint" SRCREV = "${AUTOREV}" COMPATIBLE_MACHINE = "(ccimx6$|ccimx6ul|ccimx8x)" diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2018.03.bb b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2018.03.bb index efe133157..dd3b5a540 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2018.03.bb +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2018.03.bb @@ -2,7 +2,7 @@ require digi-u-boot.inc -SRCBRANCH = "v2018.03/master" +SRCBRANCH = "v2018.03/maint" SRCREV = "${AUTOREV}" COMPATIBLE_MACHINE = "(ccimx8x|ccimx8m)" diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2019.04.bb b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2019.04.bb deleted file mode 100644 index 99287edae..000000000 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2019.04.bb +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright (C) 2019 Digi International - -require digi-u-boot.inc -LIC_FILES_CHKSUM = "file://Licenses/README;md5=30503fd321432fc713238f582193b78e" - -DEPENDS += "flex-native bison-native" - -SRCBRANCH = "v2019.04/master" -SRCREV = "${AUTOREV}" - -COMPATIBLE_MACHINE = "(ccimx8x)" diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2020.04.bb b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2020.04.bb index 1d522300e..ef49e0c04 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2020.04.bb +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2020.04.bb @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://Licenses/README;md5=30503fd321432fc713238f582193b78e" DEPENDS += "flex-native bison-native" -SRCBRANCH = "v2020.04/master" +SRCBRANCH = "v2020.04/maint" SRCREV = "${AUTOREV}" COMPATIBLE_MACHINE = "(ccimx8x)" diff --git a/meta-digi-arm/recipes-digi/trustfence/trustfence-sign-tools_git.bb b/meta-digi-arm/recipes-digi/trustfence/trustfence-sign-tools_git.bb index 23e190c78..de5c09fad 100644 --- a/meta-digi-arm/recipes-digi/trustfence/trustfence-sign-tools_git.bb +++ b/meta-digi-arm/recipes-digi/trustfence/trustfence-sign-tools_git.bb @@ -1,4 +1,4 @@ -# Copyright (C) 2017-2018 Digi International +# Copyright (C) 2017-2020 Digi International SUMMARY = "TrustFence signing and encryption scripts" LICENSE = "GPL-2.0" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" @@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425 DEPENDS = "trustfence-cst coreutils util-linux" DEPENDS += "${@oe.utils.conditional('TRUSTFENCE_SIGN_MODE', 'AHAB', 'imx-mkimage', '', d)}" -SRCBRANCH = "v2019.04/master" +SRCBRANCH = "v2020.04/maint" SRCREV = "${AUTOREV}" S = "${WORKDIR}" diff --git a/meta-digi-arm/recipes-kernel/kernel-module-qualcomm/kernel-module-qualcomm.bb b/meta-digi-arm/recipes-kernel/kernel-module-qualcomm/kernel-module-qualcomm.bb index 73d8df971..4437359c9 100644 --- a/meta-digi-arm/recipes-kernel/kernel-module-qualcomm/kernel-module-qualcomm.bb +++ b/meta-digi-arm/recipes-kernel/kernel-module-qualcomm/kernel-module-qualcomm.bb @@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/ISC;md5=f3b90e78ea0cffb20bf5cca # Reference Qualcomm tag/version PV = "v4.0.11.213X" -SRCBRANCH = "qca65X4/master" +SRCBRANCH = "qca65X4/dey-3.0/maint" SRCREV = "${AUTOREV}" QCOM_GIT_URI = "${@oe.utils.conditional('DIGI_INTERNAL_GIT', '1' , '${DIGI_MTK_GIT}linux/qcacld-2.0.git;protocol=ssh', '${DIGI_GITHUB_GIT}/qcacld-2.0.git;protocol=https', d)}" diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey-src.inc b/meta-digi-arm/recipes-kernel/linux/linux-dey-src.inc index 772b3971c..0774cb146 100644 --- a/meta-digi-arm/recipes-kernel/linux/linux-dey-src.inc +++ b/meta-digi-arm/recipes-kernel/linux/linux-dey-src.inc @@ -4,8 +4,7 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" LOCALVERSION = "-dey" -SRCBRANCH = "v5.4.24/master" -SRCBRANCH_ccimx6 = "v4.9/dey-2.6/maint" +SRCBRANCH = "v5.4/dey-3.0/maint" SRCREV = "${AUTOREV}" # Select internal or Github Linux repo diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey.inc b/meta-digi-arm/recipes-kernel/linux/linux-dey.inc deleted file mode 100644 index 07015ad45..000000000 --- a/meta-digi-arm/recipes-kernel/linux/linux-dey.inc +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright (C) 2013-2018 Digi International - -SUMMARY = "Linux kernel for Digi boards" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" - -DEPENDS += "lzop-native bc-native" -DEPENDS += "${@oe.utils.conditional('TRUSTFENCE_SIGN', '1', 'trustfence-sign-tools-native', '', d)}" - -inherit kernel fsl-kernel-localversion - -require recipes-kernel/linux/linux-dey-src.inc -require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'linux-virtualization.inc', '', d)} - -# Use custom provided 'defconfig' if variable KERNEL_DEFCONFIG is cleared -SRC_URI += "${@oe.utils.conditional('KERNEL_DEFCONFIG', '', 'file://defconfig', '', d)}" - -do_deploy[postfuncs] += "${@oe.utils.conditional('TRUSTFENCE_SIGN', '1', 'trustfence_sign', '', d)}" - -trustfence_sign() { - # Set environment variables for trustfence configuration - export CONFIG_SIGN_KEYS_PATH="${TRUSTFENCE_SIGN_KEYS_PATH}" - [ -n "${TRUSTFENCE_KEY_INDEX}" ] && export CONFIG_KEY_INDEX="${TRUSTFENCE_KEY_INDEX}" - [ -n "${TRUSTFENCE_DEK_PATH}" ] && [ "${TRUSTFENCE_DEK_PATH}" != "0" ] && export CONFIG_DEK_PATH="${TRUSTFENCE_DEK_PATH}" - [ -n "${TRUSTFENCE_SIGN_MODE}" ] && export CONFIG_SIGN_MODE="${TRUSTFENCE_SIGN_MODE}" - - # Sign/encrypt the kernel images - for type in ${KERNEL_IMAGETYPES}; do - KERNEL_IMAGE="${type}-${KERNEL_IMAGE_NAME}.bin" - if [ "${type}" = "Image.gz" ]; then - # Sign the uncompressed Image - KERNEL_IMAGE=${WORKDIR}/build/arch/arm64/boot/Image - fi - - TMP_KERNEL_IMAGE_SIGNED="$(mktemp ${KERNEL_IMAGE}-signed.XXXXXX)" - trustfence-sign-artifact.sh -p "${DIGI_FAMILY}" -l "${KERNEL_IMAGE}" "${TMP_KERNEL_IMAGE_SIGNED}" - - if [ "${type}" = "Image.gz" ]; then - # Compress the signed Image and restore the original filename - gzip "${TMP_KERNEL_IMAGE_SIGNED}" - mv "${TMP_KERNEL_IMAGE_SIGNED}.gz" "${TMP_KERNEL_IMAGE_SIGNED}" - KERNEL_IMAGE="${type}-${KERNEL_IMAGE_NAME}.bin" - fi - - mv "${TMP_KERNEL_IMAGE_SIGNED}" "${KERNEL_IMAGE}" - done - - # Sign/encrypt the device tree blobs - for DTB in ${KERNEL_DEVICETREE}; do - DTB=`normalize_dtb "${DTB}"` - DTB_EXT=${DTB##*.} - DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"` - DTB_IMAGE="${DTB_BASE_NAME}-${KERNEL_IMAGE_NAME}.${DTB_EXT}" - - TMP_DTB_IMAGE_SIGNED="$(mktemp ${DTB_IMAGE}-signed.XXXXXX)" - if [ "${DTB_EXT}" = "dtbo" ]; then - trustfence-sign-artifact.sh -p "${DIGI_FAMILY}" -o "${DTB_IMAGE}" "${TMP_DTB_IMAGE_SIGNED}" - else - trustfence-sign-artifact.sh -p "${DIGI_FAMILY}" -d "${DTB_IMAGE}" "${TMP_DTB_IMAGE_SIGNED}" - fi - mv "${TMP_DTB_IMAGE_SIGNED}" "${DTB_IMAGE}" - done -} -trustfence_sign[dirs] = "${DEPLOYDIR}" - -do_deploy[vardeps] += "TRUSTFENCE_SIGN_KEYS_PATH TRUSTFENCE_KEY_INDEX TRUSTFENCE_DEK_PATH" - -FILES_${KERNEL_PACKAGE_NAME}-image += "/boot/config-${KERNEL_VERSION}" - -# Don't include kernels in standard images -RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" - -# A user can provide his own kernel 'defconfig' file by: -# - setting the variable KERNEL_DEFCONFIG to a custom kernel configuration file -# inside the kernel repository. -# - setting the variable KERNEL_DEFCONFIG to a kernel configuration file using -# the full path to the file. -# - clearing the variable KERNEL_DEFCONFIG and providing a kernel configuration -# file in the layer (in this case the file must be named 'defconfig'). -# Otherwise the default platform's kernel configuration file will be taken from -# the Linux source code tree. -do_copy_defconfig[vardeps] += "KERNEL_DEFCONFIG" -do_copy_defconfig[dirs] = "${S}" -do_copy_defconfig () { - if [ -n "${KERNEL_DEFCONFIG}" ]; then - cp -f ${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig - fi -} -addtask copy_defconfig after do_patch before do_preconfigure diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey_4.9.bb b/meta-digi-arm/recipes-kernel/linux/linux-dey_4.9.bb deleted file mode 100644 index 3669cb577..000000000 --- a/meta-digi-arm/recipes-kernel/linux/linux-dey_4.9.bb +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (C) 2019 Digi International - -require recipes-kernel/linux/linux-dey.inc - -COMPATIBLE_MACHINE = "(ccimx6)" diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey_5.4.bb b/meta-digi-arm/recipes-kernel/linux/linux-dey_5.4.bb index 5d06efec1..19dad04c0 100644 --- a/meta-digi-arm/recipes-kernel/linux/linux-dey_5.4.bb +++ b/meta-digi-arm/recipes-kernel/linux/linux-dey_5.4.bb @@ -1,5 +1,91 @@ -# Copyright (C) 2020 Digi International +# Copyright (C) 2013-2020 Digi International -require recipes-kernel/linux/linux-dey.inc +SUMMARY = "Linux kernel for Digi boards" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" -COMPATIBLE_MACHINE = "(ccimx6ul|ccimx8x|ccimx8m)" +DEPENDS += "lzop-native bc-native" +DEPENDS += "${@oe.utils.conditional('TRUSTFENCE_SIGN', '1', 'trustfence-sign-tools-native', '', d)}" + +inherit kernel fsl-kernel-localversion + +require recipes-kernel/linux/linux-dey-src.inc +require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'linux-virtualization.inc', '', d)} + +# Use custom provided 'defconfig' if variable KERNEL_DEFCONFIG is cleared +SRC_URI += "${@oe.utils.conditional('KERNEL_DEFCONFIG', '', 'file://defconfig', '', d)}" + +do_deploy[postfuncs] += "${@oe.utils.conditional('TRUSTFENCE_SIGN', '1', 'trustfence_sign', '', d)}" + +trustfence_sign() { + # Set environment variables for trustfence configuration + export CONFIG_SIGN_KEYS_PATH="${TRUSTFENCE_SIGN_KEYS_PATH}" + [ -n "${TRUSTFENCE_KEY_INDEX}" ] && export CONFIG_KEY_INDEX="${TRUSTFENCE_KEY_INDEX}" + [ -n "${TRUSTFENCE_DEK_PATH}" ] && [ "${TRUSTFENCE_DEK_PATH}" != "0" ] && export CONFIG_DEK_PATH="${TRUSTFENCE_DEK_PATH}" + [ -n "${TRUSTFENCE_SIGN_MODE}" ] && export CONFIG_SIGN_MODE="${TRUSTFENCE_SIGN_MODE}" + + # Sign/encrypt the kernel images + for type in ${KERNEL_IMAGETYPES}; do + KERNEL_IMAGE="${type}-${KERNEL_IMAGE_NAME}.bin" + if [ "${type}" = "Image.gz" ]; then + # Sign the uncompressed Image + KERNEL_IMAGE=${WORKDIR}/build/arch/arm64/boot/Image + fi + + TMP_KERNEL_IMAGE_SIGNED="$(mktemp ${KERNEL_IMAGE}-signed.XXXXXX)" + trustfence-sign-artifact.sh -p "${DIGI_FAMILY}" -l "${KERNEL_IMAGE}" "${TMP_KERNEL_IMAGE_SIGNED}" + + if [ "${type}" = "Image.gz" ]; then + # Compress the signed Image and restore the original filename + gzip "${TMP_KERNEL_IMAGE_SIGNED}" + mv "${TMP_KERNEL_IMAGE_SIGNED}.gz" "${TMP_KERNEL_IMAGE_SIGNED}" + KERNEL_IMAGE="${type}-${KERNEL_IMAGE_NAME}.bin" + fi + + mv "${TMP_KERNEL_IMAGE_SIGNED}" "${KERNEL_IMAGE}" + done + + # Sign/encrypt the device tree blobs + for DTB in ${KERNEL_DEVICETREE}; do + DTB=`normalize_dtb "${DTB}"` + DTB_EXT=${DTB##*.} + DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"` + DTB_IMAGE="${DTB_BASE_NAME}-${KERNEL_IMAGE_NAME}.${DTB_EXT}" + + TMP_DTB_IMAGE_SIGNED="$(mktemp ${DTB_IMAGE}-signed.XXXXXX)" + if [ "${DTB_EXT}" = "dtbo" ]; then + trustfence-sign-artifact.sh -p "${DIGI_FAMILY}" -o "${DTB_IMAGE}" "${TMP_DTB_IMAGE_SIGNED}" + else + trustfence-sign-artifact.sh -p "${DIGI_FAMILY}" -d "${DTB_IMAGE}" "${TMP_DTB_IMAGE_SIGNED}" + fi + mv "${TMP_DTB_IMAGE_SIGNED}" "${DTB_IMAGE}" + done +} +trustfence_sign[dirs] = "${DEPLOYDIR}" + +do_deploy[vardeps] += "TRUSTFENCE_SIGN_KEYS_PATH TRUSTFENCE_KEY_INDEX TRUSTFENCE_DEK_PATH" + +FILES_${KERNEL_PACKAGE_NAME}-image += "/boot/config-${KERNEL_VERSION}" + +# Don't include kernels in standard images +RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" + +# A user can provide his own kernel 'defconfig' file by: +# - setting the variable KERNEL_DEFCONFIG to a custom kernel configuration file +# inside the kernel repository. +# - setting the variable KERNEL_DEFCONFIG to a kernel configuration file using +# the full path to the file. +# - clearing the variable KERNEL_DEFCONFIG and providing a kernel configuration +# file in the layer (in this case the file must be named 'defconfig'). +# Otherwise the default platform's kernel configuration file will be taken from +# the Linux source code tree. +do_copy_defconfig[vardeps] += "KERNEL_DEFCONFIG" +do_copy_defconfig[dirs] = "${S}" +do_copy_defconfig () { + if [ -n "${KERNEL_DEFCONFIG}" ]; then + cp -f ${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig + fi +} +addtask copy_defconfig after do_patch before do_preconfigure + +COMPATIBLE_MACHINE = "(ccimx6ul|ccimx8x|ccimx8m|ccimx6)" diff --git a/meta-digi-arm/recipes-kernel/linux/linux-imx-headers.inc b/meta-digi-arm/recipes-kernel/linux/linux-imx-headers.inc deleted file mode 100644 index 6449c3c40..000000000 --- a/meta-digi-arm/recipes-kernel/linux/linux-imx-headers.inc +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 2017-2018 NXP -# Released under the MIT license (see COPYING.MIT for the terms) - -SUMMARY = "Installs i.MX-specific kernel headers" -DESCRIPTION = "Installs i.MX-specific kernel headers to userspace. \ -New headers are installed in ${includedir}/imx." -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" - -require recipes-kernel/linux/linux-dey-src.inc - -S = "${WORKDIR}/git" - -do_compile[noexec] = "1" - -IMX_UAPI_HEADERS = " \ - dma-buf.h \ - hantrodec.h \ - hx280enc.h \ - ion.h \ - ipu.h \ - isl29023.h \ - mxc_asrc.h \ - mxc_dcic.h \ - mxc_mlb.h \ - mxc_sim_interface.h \ - mxc_v4l2.h \ - mxcfb.h \ - pxp_device.h \ - pxp_dma.h \ - videodev2.h \ -" - -do_install() { - # We install all headers inside of B so we can copy only the - # whitelisted ones, and there is no risk of a new header to be - # installed by mistake. - oe_runmake headers_install INSTALL_HDR_PATH=${B}${exec_prefix} - - # FIXME: The ion.h is still on staging so "promote" it for now - cp ${S}/drivers/staging/android/uapi/ion.h ${B}${includedir}/linux - - # Install whitelisted headers only - for h in ${IMX_UAPI_HEADERS}; do - install -D -m 0644 ${B}${includedir}/linux/$h \ - ${D}${includedir}/imx/linux/$h - done -} - -DEPENDS += "rsync-native" - -ALLOW_EMPTY_${PN} = "1" - -PACKAGE_ARCH = "${MACHINE_SOCARCH}" diff --git a/meta-digi-arm/recipes-kernel/linux/linux-imx-headers_4.9.bb b/meta-digi-arm/recipes-kernel/linux/linux-imx-headers_4.9.bb deleted file mode 100644 index b2479c47f..000000000 --- a/meta-digi-arm/recipes-kernel/linux/linux-imx-headers_4.9.bb +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (C) 2019 Digi International - -require recipes-kernel/linux/linux-imx-headers.inc - -COMPATIBLE_MACHINE = "(ccimx6)" diff --git a/meta-digi-arm/recipes-kernel/linux/linux-imx-headers_5.4.bb b/meta-digi-arm/recipes-kernel/linux/linux-imx-headers_5.4.bb index ee876eaf0..bf3d9eb6e 100644 --- a/meta-digi-arm/recipes-kernel/linux/linux-imx-headers_5.4.bb +++ b/meta-digi-arm/recipes-kernel/linux/linux-imx-headers_5.4.bb @@ -1,5 +1,56 @@ -# Copyright (C) 2020 Digi International +# Copyright 2017-2018 NXP +# Released under the MIT license (see COPYING.MIT for the terms) -require recipes-kernel/linux/linux-imx-headers.inc +SUMMARY = "Installs i.MX-specific kernel headers" +DESCRIPTION = "Installs i.MX-specific kernel headers to userspace. \ +New headers are installed in ${includedir}/imx." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" -COMPATIBLE_MACHINE = "(ccimx6ul|ccimx8x|ccimx8m)" +require recipes-kernel/linux/linux-dey-src.inc + +S = "${WORKDIR}/git" + +do_compile[noexec] = "1" + +IMX_UAPI_HEADERS = " \ + dma-buf.h \ + hantrodec.h \ + hx280enc.h \ + ion.h \ + ipu.h \ + isl29023.h \ + mxc_asrc.h \ + mxc_dcic.h \ + mxc_mlb.h \ + mxc_sim_interface.h \ + mxc_v4l2.h \ + mxcfb.h \ + pxp_device.h \ + pxp_dma.h \ + videodev2.h \ +" + +do_install() { + # We install all headers inside of B so we can copy only the + # whitelisted ones, and there is no risk of a new header to be + # installed by mistake. + oe_runmake headers_install INSTALL_HDR_PATH=${B}${exec_prefix} + + # FIXME: The ion.h is still on staging so "promote" it for now + cp ${S}/drivers/staging/android/uapi/ion.h ${B}${includedir}/linux + + # Install whitelisted headers only + for h in ${IMX_UAPI_HEADERS}; do + install -D -m 0644 ${B}${includedir}/linux/$h \ + ${D}${includedir}/imx/linux/$h + done +} + +DEPENDS += "rsync-native" + +ALLOW_EMPTY_${PN} = "1" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + +COMPATIBLE_MACHINE = "(ccimx6ul|ccimx8x|ccimx8m|ccimx6)" diff --git a/meta-digi-dey/classes/dey-image-installer.bbclass b/meta-digi-dey/classes/dey-image-installer.bbclass index 4c0923362..048b82173 100644 --- a/meta-digi-dey/classes/dey-image-installer.bbclass +++ b/meta-digi-dey/classes/dey-image-installer.bbclass @@ -39,8 +39,8 @@ generate_installer_zip () { # Create README file cat >${IMGDEPLOYDIR}/README.txt <<_EOF_ -Digi Embedded Yocto kit installer ---------------------------------- +${DISTRO_NAME} ${DISTRO_VERSION} kit installer +---------------------------------------- _EOF_ md5sum ${INSTALLER_FILELIST} | sed -e "s,${DEPLOY_DIR_IMAGE}/,,g;s,${IMGDEPLOYDIR}/,,g" >> ${IMGDEPLOYDIR}/README.txt diff --git a/meta-digi-dey/conf/layer.conf b/meta-digi-dey/conf/layer.conf index d3a402b40..91a959614 100644 --- a/meta-digi-dey/conf/layer.conf +++ b/meta-digi-dey/conf/layer.conf @@ -15,7 +15,6 @@ BBFILE_PATTERN_digi-dey := "^${LAYERDIR}/" BBFILE_PRIORITY_digi-dey = "6" BBMASK += "meta-freescale/recipes-graphics/drm/libdrm_%.bbappend" -BBMASK += "meta-freescale/recipes-graphics/wayland/weston-init.bbappend" LAYERDEPENDS_digi-dey = "core digi-arm" LAYERDEPENDS_digi-dey += "openembedded-layer networking-layer webserver qt5-layer swupdate" diff --git a/meta-digi-dey/recipes-connectivity/packagegroups/packagegroup-dey-wireless.bb b/meta-digi-dey/recipes-connectivity/packagegroups/packagegroup-dey-wireless.bb index c3ec1f8a8..68e43af99 100644 --- a/meta-digi-dey/recipes-connectivity/packagegroups/packagegroup-dey-wireless.bb +++ b/meta-digi-dey/recipes-connectivity/packagegroups/packagegroup-dey-wireless.bb @@ -16,5 +16,3 @@ RDEPENDS_${PN} = "\ " RDEPENDS_${PN}_remove_ccimx6sbc = "hostapd" -RDEPENDS_${PN}_remove_ccimx6 = "wireless-regdb-static" -RDEPENDS_${PN}_append_ccimx6 = " crda" diff --git a/meta-digi-dey/recipes-core/busybox/busybox/ccimx6qpsbc/standby b/meta-digi-dey/recipes-core/busybox/busybox/ccimx6qpsbc/standby index 5b4231e42..e6d8a31a5 100755 --- a/meta-digi-dey/recipes-core/busybox/busybox/ccimx6qpsbc/standby +++ b/meta-digi-dey/recipes-core/busybox/busybox/ccimx6qpsbc/standby @@ -56,7 +56,7 @@ resume_interfaces() { if [ -d "/proc/device-tree/wireless" ]; then # Trigger wireless module loading event, and wait until the interface exists udevadm trigger --action=add --attr-match="modalias=sdio:c00v0271d050A" - timeout -t 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null + timeout 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null # Bring up the interfaces that were bring down on suspend for i in $(echo ${RESUME_IFACES} | tr ' ' '\n' | sort); do diff --git a/meta-digi-dey/recipes-core/busybox/busybox/ccimx6qpsbc/standby-actions b/meta-digi-dey/recipes-core/busybox/busybox/ccimx6qpsbc/standby-actions index a2baa3db2..0099a53aa 100644 --- a/meta-digi-dey/recipes-core/busybox/busybox/ccimx6qpsbc/standby-actions +++ b/meta-digi-dey/recipes-core/busybox/busybox/ccimx6qpsbc/standby-actions @@ -41,7 +41,7 @@ elif [ "${1}" == "post" ]; then if [ -d "/proc/device-tree/wireless" ]; then # Trigger wireless module loading event, and wait until the interface exists udevadm trigger --action=add --attr-match="modalias=sdio:c00v0271d050A" - timeout -t 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null + timeout 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null # Bring up the interfaces that were brought down on suspend for i in $(cat /tmp/suspend_wlan_ifaces | tr ' ' '\n' | sort); do diff --git a/meta-digi-dey/recipes-core/busybox/busybox/ccimx6sbc/standby b/meta-digi-dey/recipes-core/busybox/busybox/ccimx6sbc/standby index 58ce08bf6..89d57d3c4 100755 --- a/meta-digi-dey/recipes-core/busybox/busybox/ccimx6sbc/standby +++ b/meta-digi-dey/recipes-core/busybox/busybox/ccimx6sbc/standby @@ -56,7 +56,7 @@ resume_interfaces() { if [ -d "/proc/device-tree/wireless" ]; then # Trigger wireless module loading event, and wait until the interface exists udevadm trigger --action=add --attr-match="modalias=sdio:c00v0271d0301" - timeout -t 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null + timeout 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null # Bring up the interfaces that were bring down on suspend for i in $(echo ${RESUME_IFACES} | tr ' ' '\n' | sort); do diff --git a/meta-digi-dey/recipes-core/busybox/busybox/ccimx6sbc/standby-actions b/meta-digi-dey/recipes-core/busybox/busybox/ccimx6sbc/standby-actions index 56ce080fd..9c8d5d1f0 100644 --- a/meta-digi-dey/recipes-core/busybox/busybox/ccimx6sbc/standby-actions +++ b/meta-digi-dey/recipes-core/busybox/busybox/ccimx6sbc/standby-actions @@ -41,7 +41,7 @@ elif [ "${1}" == "post" ]; then if [ -d "/proc/device-tree/wireless" ]; then # Trigger wireless module loading event, and wait until the interface exists udevadm trigger --action=add --attr-match="modalias=sdio:c00v0271d0301" - timeout -t 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null + timeout 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null # Bring up the interfaces that were brought down on suspend for i in $(cat /tmp/suspend_wlan_ifaces | tr ' ' '\n' | sort); do diff --git a/meta-digi-dey/recipes-core/busybox/busybox/ccimx6ul/standby b/meta-digi-dey/recipes-core/busybox/busybox/ccimx6ul/standby index 9efc21b44..1f1c9efb1 100755 --- a/meta-digi-dey/recipes-core/busybox/busybox/ccimx6ul/standby +++ b/meta-digi-dey/recipes-core/busybox/busybox/ccimx6ul/standby @@ -56,7 +56,7 @@ resume_interfaces() { if [ -d "/proc/device-tree/wireless" ]; then # Trigger wireless module loading event, and wait until the interface exists udevadm trigger --action=add --attr-match="modalias=sdio:c00v0271d050A" - timeout -t 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null + timeout 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null # Bring up the interfaces that were bring down on suspend for i in $(echo ${RESUME_IFACES} | tr ' ' '\n' | sort); do diff --git a/meta-digi-dey/recipes-core/busybox/busybox/ccimx6ul/standby-actions b/meta-digi-dey/recipes-core/busybox/busybox/ccimx6ul/standby-actions index a2baa3db2..0099a53aa 100644 --- a/meta-digi-dey/recipes-core/busybox/busybox/ccimx6ul/standby-actions +++ b/meta-digi-dey/recipes-core/busybox/busybox/ccimx6ul/standby-actions @@ -41,7 +41,7 @@ elif [ "${1}" == "post" ]; then if [ -d "/proc/device-tree/wireless" ]; then # Trigger wireless module loading event, and wait until the interface exists udevadm trigger --action=add --attr-match="modalias=sdio:c00v0271d050A" - timeout -t 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null + timeout 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null # Bring up the interfaces that were brought down on suspend for i in $(cat /tmp/suspend_wlan_ifaces | tr ' ' '\n' | sort); do diff --git a/meta-digi-dey/recipes-core/busybox/busybox/ccimx8mn/standby b/meta-digi-dey/recipes-core/busybox/busybox/ccimx8mn/standby index e86e1c0a1..b5b47210d 100755 --- a/meta-digi-dey/recipes-core/busybox/busybox/ccimx8mn/standby +++ b/meta-digi-dey/recipes-core/busybox/busybox/ccimx8mn/standby @@ -56,7 +56,7 @@ resume_interfaces() { if [ -d "/proc/device-tree/wireless" ]; then # Trigger wireless module loading event, and wait until the interface exists udevadm trigger --action=add --attr-match="modalias=sdio:c00v0271d050A" - timeout -t 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null + timeout 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null # Bring up the interfaces that were bring down on suspend for i in $(echo ${RESUME_IFACES} | tr ' ' '\n' | sort); do diff --git a/meta-digi-dey/recipes-core/busybox/busybox/ccimx8mn/standby-actions b/meta-digi-dey/recipes-core/busybox/busybox/ccimx8mn/standby-actions index 987e9d3b4..c6bf84654 100644 --- a/meta-digi-dey/recipes-core/busybox/busybox/ccimx8mn/standby-actions +++ b/meta-digi-dey/recipes-core/busybox/busybox/ccimx8mn/standby-actions @@ -41,7 +41,7 @@ elif [ "${1}" == "post" ]; then if [ -d "/proc/device-tree/wireless" ]; then # Trigger wireless module loading event, and wait until the interface exists udevadm trigger --action=add --attr-match="modalias=sdio:c00v0271d050A" - timeout -t 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null + timeout 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null # Bring up the interfaces that were brought down on suspend for i in $(cat /tmp/suspend_wlan_ifaces | tr ' ' '\n' | sort); do diff --git a/meta-digi-dey/recipes-core/busybox/busybox/ccimx8x/standby b/meta-digi-dey/recipes-core/busybox/busybox/ccimx8x/standby index 2830b7ac8..6d369e54a 100755 --- a/meta-digi-dey/recipes-core/busybox/busybox/ccimx8x/standby +++ b/meta-digi-dey/recipes-core/busybox/busybox/ccimx8x/standby @@ -56,7 +56,7 @@ resume_interfaces() { if [ -d "/proc/device-tree/wireless" ]; then # Trigger wireless module loading event, and wait until the interface exists udevadm trigger --action=add --attr-match="modalias=pci:v0000168Cd0000003Esv*sd*bc*sc*i*" - timeout -t 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null + timeout 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null # Bring up the interfaces that were bring down on suspend for i in $(echo ${RESUME_IFACES} | tr ' ' '\n' | sort); do diff --git a/meta-digi-dey/recipes-core/busybox/busybox/ccimx8x/standby-actions b/meta-digi-dey/recipes-core/busybox/busybox/ccimx8x/standby-actions index 6f5c40247..3d3a4a85d 100644 --- a/meta-digi-dey/recipes-core/busybox/busybox/ccimx8x/standby-actions +++ b/meta-digi-dey/recipes-core/busybox/busybox/ccimx8x/standby-actions @@ -41,7 +41,7 @@ elif [ "${1}" == "post" ]; then if [ -d "/proc/device-tree/wireless" ]; then # Trigger wireless module loading event, and wait until the interface exists udevadm trigger --action=add --attr-match="modalias=pci:v0000168Cd0000003Esv*sd*bc*sc*i*" - timeout -t 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null + timeout 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null # Bring up the interfaces that were brought down on suspend for i in $(cat /tmp/suspend_wlan_ifaces | tr ' ' '\n' | sort); do diff --git a/meta-digi-dey/recipes-core/images/dey-image-recovery-initramfs.bb b/meta-digi-dey/recipes-core/images/dey-image-recovery-initramfs.bb index 15cc4481e..e53606405 100644 --- a/meta-digi-dey/recipes-core/images/dey-image-recovery-initramfs.bb +++ b/meta-digi-dey/recipes-core/images/dey-image-recovery-initramfs.bb @@ -29,6 +29,7 @@ IMAGE_ROOTFS_SIZE = "8192" # Remove some packages added via recommendations BAD_RECOMMENDATIONS += " \ + openssl-bin \ openssl-conf \ " diff --git a/meta-digi-dey/recipes-core/trustfence/trustfence-tool_2.3.bb b/meta-digi-dey/recipes-core/trustfence/trustfence-tool_2.3.bb deleted file mode 100644 index fb9d7a042..000000000 --- a/meta-digi-dey/recipes-core/trustfence/trustfence-tool_2.3.bb +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (C) 2016-2019 Digi International. - -SUMMARY = "Trustfence command line tool" -SECTION = "console/tools" -LICENSE = "CLOSED" - -SRC_URI_arm = "${DIGI_PKG_SRC}/${BP}-${TUNE_ARCH}.tar.gz;name=arm" - -SRC_URI[arm.md5sum] = "ef253e2c781d76820f38832ceec22ada" -SRC_URI[arm.sha256sum] = "5fc478f76848b438cc28cbdc7f8eabd63f7db4b2998a5a46d75602a80365a596" - -SRC_URI_aarch64 = "${DIGI_PKG_SRC}/${BP}-${TUNE_ARCH}.tar.gz;name=aarch64" - -SRC_URI[aarch64.md5sum] = "a109efb8a2c7b57f2e83136ada24938d" -SRC_URI[aarch64.sha256sum] = "ddb9cb94b4ffa182e479cfbcc0f57774a6c68ac813b4af747aa493c259970c5b" - -inherit bin_package diff --git a/meta-digi-dey/recipes-core/trustfence/trustfence-tool_2.4.bb b/meta-digi-dey/recipes-core/trustfence/trustfence-tool_2.4.bb new file mode 100644 index 000000000..6ab402d4d --- /dev/null +++ b/meta-digi-dey/recipes-core/trustfence/trustfence-tool_2.4.bb @@ -0,0 +1,17 @@ +# Copyright (C) 2016-2020 Digi International. + +SUMMARY = "Trustfence command line tool" +SECTION = "console/tools" +LICENSE = "CLOSED" + +SRC_URI_arm = "${DIGI_PKG_SRC}/${BP}-${TUNE_ARCH}.tar.gz;name=arm" + +SRC_URI[arm.md5sum] = "926c31fecec8e28a6ed30984b19e868f" +SRC_URI[arm.sha256sum] = "1ec9cae98553e9917ff1a88bfce17fce749a4a8af28b8c40e24c8eebb7540faa" + +SRC_URI_aarch64 = "${DIGI_PKG_SRC}/${BP}-${TUNE_ARCH}.tar.gz;name=aarch64" + +SRC_URI[aarch64.md5sum] = "eec9ff6c3b715ec37c8a38997f446581" +SRC_URI[aarch64.sha256sum] = "fa738cce350028d74363c78fdca567263c4863389d3741e9f8761486d97e99a6" + +inherit bin_package diff --git a/meta-digi-dey/recipes-digi/auto-serial-console/auto-serial-console/auto-getty-systemd b/meta-digi-dey/recipes-digi/auto-serial-console/auto-serial-console/auto-getty-systemd new file mode 100644 index 000000000..2808bda81 --- /dev/null +++ b/meta-digi-dey/recipes-digi/auto-serial-console/auto-serial-console/auto-getty-systemd @@ -0,0 +1,24 @@ +#!/bin/sh + +set -e + +[ -f "/etc/default/autogetty" ] && . /etc/default/autogetty + +[ "${ENABLED}" != "1" ] && exit + +for arg in $(cat /proc/cmdline); do + case "${arg}" in + console=*) + eval ${arg} + TTY="${console%,*}" + SPEED="${console#*,}" + + # If no speed is given default to 115200 and fall-back + [ "${SPEED}" = "${TTY}" ] && SPEED="115200,57600,38400,19200,9600" + + if [ -n "${TTY}" ] && grep -qs "${TTY}" /etc/securetty; then + setsid /sbin/agetty -8 -L ${TTY} ${SPEED} xterm + fi + ;; + esac +done diff --git a/meta-digi-dey/recipes-digi/auto-serial-console/auto-serial-console/auto-getty b/meta-digi-dey/recipes-digi/auto-serial-console/auto-serial-console/auto-getty-sysvinit old mode 100755 new mode 100644 similarity index 100% rename from meta-digi-dey/recipes-digi/auto-serial-console/auto-serial-console/auto-getty rename to meta-digi-dey/recipes-digi/auto-serial-console/auto-serial-console/auto-getty-sysvinit diff --git a/meta-digi-dey/recipes-digi/auto-serial-console/auto-serial-console/auto-getty.service b/meta-digi-dey/recipes-digi/auto-serial-console/auto-serial-console/auto-getty.service new file mode 100644 index 000000000..ae9562b59 --- /dev/null +++ b/meta-digi-dey/recipes-digi/auto-serial-console/auto-serial-console/auto-getty.service @@ -0,0 +1,26 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +[Unit] +Description=Serial Auto-Getty +After=systemd-user-sessions.service plymouth-quit-wait.service +After=rc-local.service + +# If additional gettys are spawned during boot then we should make +# sure that this is synchronized before getty.target, even though +# getty.target didn't actually pull it in. +Before=getty.target +IgnoreOnIsolate=yes + +[Service] +ExecStart=/usr/bin/auto-getty +Type=idle +Restart=always +RestartSec=0 + +[Install] +WantedBy=getty.target diff --git a/meta-digi-dey/recipes-digi/auto-serial-console/auto-serial-console_0.1.bb b/meta-digi-dey/recipes-digi/auto-serial-console/auto-serial-console_0.1.bb index 01a9ec7a9..836862568 100644 --- a/meta-digi-dey/recipes-digi/auto-serial-console/auto-serial-console_0.1.bb +++ b/meta-digi-dey/recipes-digi/auto-serial-console/auto-serial-console_0.1.bb @@ -7,18 +7,22 @@ LIC_FILES_CHKSUM = "\ file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420 \ " +AUTOGETTY_FILE="${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'auto-getty-systemd', 'auto-getty-sysvinit', d)}" + SRC_URI = "\ file://autogetty \ - file://auto-getty \ + file://${AUTOGETTY_FILE} \ + file://auto-getty.service \ file://auto-serial-console \ " S = "${WORKDIR}" -inherit update-rc.d +inherit systemd update-rc.d INITSCRIPT_NAME = "auto-serial-console" INITSCRIPT_PARAMS = "start 99 5 ." +SYSTEMD_SERVICE_${PN} = "auto-getty.service" do_install () { install -m 0755 -d ${D}${sysconfdir}/default @@ -29,6 +33,9 @@ do_install () { install -m 0755 -d ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/auto-serial-console ${D}${sysconfdir}/init.d/auto-serial-console + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/auto-getty.service ${D}${systemd_unitdir}/system/auto-getty.service + install -m 0755 -d ${D}${bindir} - install -m 0755 ${WORKDIR}/auto-getty ${D}${bindir}/auto-getty + install -m 0755 ${WORKDIR}/${AUTOGETTY_FILE} ${D}${bindir}/auto-getty } diff --git a/meta-digi-dey/recipes-digi/dey-examples/dey-examples-src.inc b/meta-digi-dey/recipes-digi/dey-examples/dey-examples-src.inc index ba8ece33b..4e66757e4 100644 --- a/meta-digi-dey/recipes-digi/dey-examples/dey-examples-src.inc +++ b/meta-digi-dey/recipes-digi/dey-examples/dey-examples-src.inc @@ -1,6 +1,6 @@ -# Copyright (C) 2019, Digi International Inc. +# Copyright (C) 2019,2020, Digi International Inc. -SRCBRANCH = "master" +SRCBRANCH = "dey-3.0/maint" SRCREV = "${AUTOREV}" DEY_EXAMPLES_STASH = "${DIGI_MTK_GIT}dey/dey-examples.git;protocol=ssh" diff --git a/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/99-digiapix.rules b/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/99-digiapix.rules index 4da39ff7c..fde3880f2 100644 --- a/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/99-digiapix.rules +++ b/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/99-digiapix.rules @@ -5,6 +5,7 @@ SUBSYSTEM=="iio", GROUP="digiapix", MODE="0660" SUBSYSTEM=="misc", GROUP="digiapix", MODE="0660", ENV{DEVNAME}=="/dev/watchdog" SUBSYSTEM=="spidev", GROUP="digiapix", MODE="0660" SUBSYSTEM=="watchdog",GROUP="digiapix", MODE="0660" +SUBSYSTEM=="gpio", GROUP="digiapix", MODE="0660", ACTION=="add" # # Use two different rules for GPIO's. diff --git a/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/ccimx8x-sbc-pro/libdigiapix.conf b/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/ccimx8x-sbc-pro/libdigiapix.conf index b5a8f6c4b..c445106bf 100644 --- a/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/ccimx8x-sbc-pro/libdigiapix.conf +++ b/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/ccimx8x-sbc-pro/libdigiapix.conf @@ -25,8 +25,8 @@ DEFAULT_SPI = 0,0 [PWM] -# MCA PWM2 channel 0 on Expansion connector (MCA_IO7) -DEFAULT_PWM = 7,0 +# MCA PWM0 channel 5 on USER LED0 (MCA_IO18) +DEFAULT_PWM = 0,5 [ADC] diff --git a/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix_git.bb b/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix_git.bb index 8dd3c771f..9d977bb28 100644 --- a/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix_git.bb +++ b/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix_git.bb @@ -1,4 +1,4 @@ -# Copyright (C) 2017 Digi International Inc. +# Copyright (C) 2017-2020 Digi International Inc. SUMMARY = "Digi APIX library" DESCRIPTION = "C library to access and manage your ConnectCore platform interfaces in an easy manner" @@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/ISC;md5=f3b90e78ea0cffb20bf5cca DEPENDS = "libsoc libsocketcan libgpiod" -SRCBRANCH ?= "master" +SRCBRANCH ?= "dey-3.0/maint" SRCREV = "${AUTOREV}" LIBDIGIAPIX_URI_STASH = "${DIGI_MTK_GIT}dey/libdigiapix.git;protocol=ssh" diff --git a/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo b/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo index e99f88e50..cae3a49e5 100755 --- a/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo +++ b/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo @@ -254,7 +254,7 @@ make_report(){ echo "--------------------------------------" echo "" - if grep -qs '\' /proc/device-tree/compatible; then + if grep -qs '\' /proc/device-tree/compatible; then if [ -f "/proc/device-tree/digi,tf-closed" ]; then echo "Security status: [CLOSED]" elif [ -f "/proc/device-tree/digi,tf-open" ]; then @@ -263,7 +263,7 @@ make_report(){ else if [ -e ${OTP_PATH}/nvmem ]; then # Check SEC_CONFIG on OCOTP_CFG5 (ADDR=6) bit 1. - SEC_CONFIG_WORD=$(dd if=${OTP_PATH}/nvmem of=/dev/stdout bs=4 skip=6 count=1 status=none | hexdump -n 4 -v -e '1/4 "%08x\n"') + SEC_CONFIG_WORD=$(dd if=${OTP_PATH}/nvmem of=/dev/stdout bs=4 skip=6 count=1 status=none | hexdump -n 4 -v -e '1/4 "0x%08x\n"') if [ "$((${SEC_CONFIG_WORD} & 0x2))" != "0" ]; then echo "Security status: [CLOSED]" else @@ -297,7 +297,7 @@ BOARD_VARIANT="$(cat /proc/device-tree/digi,hwid,variant | tr -d '\0')" BOARD_SN="$(cat /proc/device-tree/digi,hwid,sn | tr -d '\0')" BOARD_VERSION="$(cat /proc/device-tree/digi,carrierboard,version | tr -d '\0')" BOARD_ID="$(cat /proc/device-tree/digi,carrierboard,id | tr -d '\0')" -SOC_REV="$(cat /proc/device-tree/cpus/rev | tr -d '\0')" +[ -e "/proc/device-tree/cpus/rev" ] && SOC_REV="$(cat /proc/device-tree/cpus/rev | tr -d '\0')" if grep -qs '\' /proc/device-tree/compatible; then MCA_NODE="/sys/bus/i2c/devices/0-007e" diff --git a/meta-digi-dey/recipes-graphics/wayland/weston-init.bbappend b/meta-digi-dey/recipes-graphics/wayland/weston-init.bbappend index bb0b16be9..0e885d562 100644 --- a/meta-digi-dey/recipes-graphics/wayland/weston-init.bbappend +++ b/meta-digi-dey/recipes-graphics/wayland/weston-init.bbappend @@ -17,6 +17,11 @@ INI_UNCOMMENT_ASSIGNMENTS_append_mx8mp = " \ use-g2d=1 \ " +# Digi: use g2d on ccimx6sbc to fix desktop window issue +INI_UNCOMMENT_ASSIGNMENTS_append_ccimx6sbc = " \ + use-g2d=1 \ +" + do_install_append() { install -Dm0755 ${WORKDIR}/profile ${D}${sysconfdir}/profile.d/weston.sh diff --git a/meta-digi-dey/recipes-graphics/wayland/weston/0001-libweston-g2d-renderer-try-re-adjusting-fb-if-the-FB.patch b/meta-digi-dey/recipes-graphics/wayland/weston/0001-libweston-g2d-renderer-try-re-adjusting-fb-if-the-FB.patch new file mode 100644 index 000000000..eb4d702b3 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston/0001-libweston-g2d-renderer-try-re-adjusting-fb-if-the-FB.patch @@ -0,0 +1,81 @@ +From: Gabriel Valcazar +Date: Thu, 17 Sep 2020 13:16:04 +0200 +Subject: [PATCH] libweston: g2d-renderer: try re-adjusting fb if the + FBIOPAN_DISPLAY ioctl fails + +By default, the g2d renderer works with 3 buffers, and uses the FBIOPAN_DISPLAY +ioctl to have the kernel switch between them everytime the output has to be +shown. Because of this, when the renderer is initialized, it will increase the +framebuffer's yres_virtual parameter so it is 3 times the size of yres +(vertical resolution). + +However, when the system goes through a suspend/resume iteration, the +framebuffer's yres_virtual parameter will change back to its original value, +causing the FBIOPAN_DISPLAY ioctl to fail when using the 2nd and 3rd buffers, +which is 2 out of 3 times whenever something changes in the output. This has +three direct effects: + +* Constant "FBIOPAN_DISPLAY failed" messages in the weston log +* Choppy framerate (due to the renderer only being able to show 1/3 of the + total output frames) +* A 2/3 chance that the desktop will not show after resuming from suspend until + there's movement on the screen + +To avoid this, whenever a FBIOPAN_DISPLAY ioctl fails, check if the +yres_virtual attribute read from the kernel is different from the one saved in +the renderer and, if so, update it once again and retry the ioctl. This adds +some additional overhead in case of a FBIOPAN_DISPLAY failure, but these have +only been observed in the specific suspend/resume scenario, not in an average +use case. + +The only drawback to this workaround is that there's a 1/3 chance that the +display will go blank for a very small period of time when resuming from +suspend. This is due to the framebuffer being reconfigured and, although +undesireable, is much less bothersome than the original issue. + +https://jira.digi.com/browse/DEL-7236 + +Signed-off-by: Gabriel Valcazar +--- + libweston/renderer-g2d/g2d-renderer.c | 24 +++++++++++++++++++++++- + 1 file changed, 23 insertions(+), 1 deletion(-) + +diff --git a/libweston/renderer-g2d/g2d-renderer.c b/libweston/renderer-g2d/g2d-renderer.c +index 456190a3..cfc2e8b6 100644 +--- a/libweston/renderer-g2d/g2d-renderer.c ++++ b/libweston/renderer-g2d/g2d-renderer.c +@@ -528,12 +528,34 @@ static void + g2d_flip_surface(struct weston_output *output) + { + struct g2d_output_state *go = get_output_state(output); ++ struct fb_var_screeninfo aux_varinfo; + go->fb_info.varinfo.yoffset = go->activebuffer * go->fb_info.y_resolution; + + if(ioctl(go->fb_info.fb_fd, FBIOPAN_DISPLAY, &(go->fb_info.varinfo)) < 0) + { +- weston_log("FBIOPAN_DISPLAY Failed\n"); ++ /* Check if yres_virtual has changed (it happens on suspend/resume) */ ++ if (ioctl(go->fb_info.fb_fd, FBIOGET_VSCREENINFO, &aux_varinfo) < 0) { ++ weston_log("FBIOGET_VSCREENINFO Failed\n"); ++ goto out; ++ } ++ ++ /* If yres_virtual has changed, adjust it and try flipping the surface again */ ++ if (aux_varinfo.yres_virtual != go->fb_info.varinfo.yres_virtual) { ++ aux_varinfo.yres_virtual = aux_varinfo.yres * go->nNumBuffers; ++ if (ioctl(go->fb_info.fb_fd, FBIOPUT_VSCREENINFO, &aux_varinfo) < 0) { ++ weston_log("FBIOPUT_VSCREENINFO Failed\n"); ++ goto out; ++ } ++ ++ if(ioctl(go->fb_info.fb_fd, FBIOPAN_DISPLAY, &(go->fb_info.varinfo)) < 0) { ++ weston_log("FBIOPAN_DISPLAY Failed\n"); ++ } ++ } else { ++ weston_log("FBIOPAN_DISPLAY Failed\n"); ++ } + } ++ ++out: + go->activebuffer = (go->activebuffer + 1) % go->nNumBuffers; + } diff --git a/meta-digi-dey/recipes-graphics/wayland/weston_%.bbappend b/meta-digi-dey/recipes-graphics/wayland/weston_%.bbappend new file mode 100644 index 000000000..ddc30ee6d --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston_%.bbappend @@ -0,0 +1,3 @@ +# Copyright (C) 2020 Digi International. + +SRC_URI_append_ccimx6sbc = " file://0001-libweston-g2d-renderer-try-re-adjusting-fb-if-the-FB.patch" diff --git a/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg/0001-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg/0001-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch index 3e24fcfe9..e91c493a5 100644 --- a/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg/0001-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch +++ b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg/0001-MGS-5186-Per-Specification-EGL_NATIVE_PIXMAP_KHR-req.patch @@ -15,10 +15,10 @@ Signed-off-by: Prabhu Sundararaj 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xwayland/xwayland-glamor-gbm.c b/hw/xwayland/xwayland-glamor-gbm.c -index 80655fd16..e8c623e56 100644 +index a211e09..f5be403 100644 --- a/hw/xwayland/xwayland-glamor-gbm.c +++ b/hw/xwayland/xwayland-glamor-gbm.c -@@ -174,7 +174,7 @@ xwl_glamor_gbm_create_pixmap_for_bo(ScreenPtr screen, struct gbm_bo *bo, +@@ -166,7 +166,7 @@ xwl_glamor_gbm_create_pixmap_for_bo(ScreenPtr screen, struct gbm_bo *bo, xwl_pixmap->bo = bo; xwl_pixmap->buffer = NULL; xwl_pixmap->image = eglCreateImageKHR(xwl_screen->egl_display, @@ -26,7 +26,7 @@ index 80655fd16..e8c623e56 100644 + EGL_NO_CONTEXT /*xwl_screen->egl_context*/, EGL_NATIVE_PIXMAP_KHR, xwl_pixmap->bo, NULL); - if (xwl_pixmap->image == EGL_NO_IMAGE_KHR) + -- 2.17.1 diff --git a/meta-digi-dey/recipes-multimedia/alsa/imx-alsa-plugins_git.bbappend b/meta-digi-dey/recipes-multimedia/alsa/imx-alsa-plugins_git.bbappend deleted file mode 100644 index 18d480d34..000000000 --- a/meta-digi-dey/recipes-multimedia/alsa/imx-alsa-plugins_git.bbappend +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (C) 2019, Digi International Inc. - -# ccimx6/ccimx6qp platforms use kernel v4.9, which is incompatible with the -# latest revision of the imx-alsa-plugins code due to UAPI changes. For these -# platforms, use an older revision which is functionally the same, but using -# the v4.9 UAPI. -SRCREV_ccimx6 = "9a63071e7734bd164017f3761b8d1944c017611f" diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin/0002-imx_2d_device_g2d-define-a-G2D_AMPHION_INTERLACED-ma.patch b/meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin/0002-imx_2d_device_g2d-define-a-G2D_AMPHION_INTERLACED-ma.patch deleted file mode 100644 index 1fa126876..000000000 --- a/meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin/0002-imx_2d_device_g2d-define-a-G2D_AMPHION_INTERLACED-ma.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Gabriel Valcazar -Date: Fri, 20 Jul 2018 18:04:55 +0200 -Subject: [PATCH] imx_2d_device_g2d: define a G2D_AMPHION_INTERLACED macro - -Currently, this symbol is not present in the libg2d used by imx6 platforms, so -this is a workaround to get the package to compile. - -https://jira.digi.com/browse/DEL-6078 - -Signed-off-by: Gabriel Valcazar ---- - libs/device-2d/imx_2d_device_g2d.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/libs/device-2d/imx_2d_device_g2d.c b/libs/device-2d/imx_2d_device_g2d.c -index 56dc550..e5d58c3 100755 ---- a/libs/device-2d/imx_2d_device_g2d.c -+++ b/libs/device-2d/imx_2d_device_g2d.c -@@ -27,6 +27,8 @@ - GST_DEBUG_CATEGORY_EXTERN (imx2ddevice_debug); - #define GST_CAT_DEFAULT imx2ddevice_debug - -+#define G2D_AMPHION_INTERLACED 0x10 -+ - typedef struct _Imx2DDeviceG2d { - gint capabilities; - struct g2d_surfaceEx src; diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin_%.bbappend b/meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin_%.bbappend index 1e1c8de7e..d4213ce64 100644 --- a/meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin_%.bbappend +++ b/meta-digi-dey/recipes-multimedia/gstreamer/imx-gst1.0-plugin_%.bbappend @@ -6,4 +6,3 @@ SRC_URI += " \ file://0001-gstimxv4l2-map-dev-video1-to-dev-fb0.patch \ file://0002-imx-gst1.0-plugin-fix-build-using-MUSL-C-library.patch \ " -SRC_URI_append_ccimx6 = " file://0002-imx_2d_device_g2d-define-a-G2D_AMPHION_INTERLACED-ma.patch" diff --git a/meta-digi-dey/recipes-qt/qt5/qtbase/ccimx6/qt5.sh b/meta-digi-dey/recipes-qt/qt5/qtbase/ccimx6/qt5.sh deleted file mode 100644 index 6ffe8f271..000000000 --- a/meta-digi-dey/recipes-qt/qt5/qtbase/ccimx6/qt5.sh +++ /dev/null @@ -1,2 +0,0 @@ -# Use EGLFS platform plugin for images without X11 -[ -f "/etc/init.d/xserver-nodm" ] || export QT_QPA_PLATFORM="eglfs" diff --git a/meta-digi-dey/recipes-qt/qt5/qtbase/ccimx8mn/qt5.sh b/meta-digi-dey/recipes-qt/qt5/qtbase/ccimx8mn/qt5.sh deleted file mode 100644 index 16c8e26d7..000000000 --- a/meta-digi-dey/recipes-qt/qt5/qtbase/ccimx8mn/qt5.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -export QT_QPA_PLATFORM="wayland" - -[ -f "/etc/profile.d/weston.sh" ] && return - -export QT_QPA_PLATFORM="xcb" - -# Use EGLFS platform plugin for images without XWayland and X11 -[ -f "/etc/xserver-nodm/Xserver" ] || export QT_QPA_PLATFORM="eglfs" diff --git a/meta-digi-dey/recipes-qt/qt5/qtbase/qt5-fb.sh b/meta-digi-dey/recipes-qt/qt5/qtbase/qt5-fb.sh deleted file mode 100644 index 34fa033af..000000000 --- a/meta-digi-dey/recipes-qt/qt5/qtbase/qt5-fb.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -export QT_QPA_PLATFORM=eglfs diff --git a/meta-digi-dey/recipes-qt/qt5/qtbase/qt5-wayland.sh b/meta-digi-dey/recipes-qt/qt5/qtbase/qt5-wayland.sh deleted file mode 100644 index 6779c9d12..000000000 --- a/meta-digi-dey/recipes-qt/qt5/qtbase/qt5-wayland.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -export QT_QPA_PLATFORM=wayland diff --git a/meta-digi-dey/recipes-qt/qt5/qtbase/qt5-x11.sh b/meta-digi-dey/recipes-qt/qt5/qtbase/qt5-x11.sh deleted file mode 100644 index 8bbd73b94..000000000 --- a/meta-digi-dey/recipes-qt/qt5/qtbase/qt5-x11.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -export QT_QPA_PLATFORM=xcb diff --git a/meta-digi-dey/recipes-qt/qt5/qtbase/ccimx8x/qt5.sh b/meta-digi-dey/recipes-qt/qt5/qtbase/qt5.sh similarity index 85% rename from meta-digi-dey/recipes-qt/qt5/qtbase/ccimx8x/qt5.sh rename to meta-digi-dey/recipes-qt/qt5/qtbase/qt5.sh index 16c8e26d7..42ad08218 100644 --- a/meta-digi-dey/recipes-qt/qt5/qtbase/ccimx8x/qt5.sh +++ b/meta-digi-dey/recipes-qt/qt5/qtbase/qt5.sh @@ -6,4 +6,4 @@ export QT_QPA_PLATFORM="wayland" export QT_QPA_PLATFORM="xcb" # Use EGLFS platform plugin for images without XWayland and X11 -[ -f "/etc/xserver-nodm/Xserver" ] || export QT_QPA_PLATFORM="eglfs" +[ -f "/etc/xserver-nodm/Xserver" ] || export QT_QPA_PLATFORM="eglfs" QT_QPA_EGLFS_INTEGRATION="eglfs_viv" diff --git a/meta-digi-dey/recipes-qt/qt5/qtbase_%.bbappend b/meta-digi-dey/recipes-qt/qt5/qtbase_%.bbappend index aebffbf37..c1ed65746 100644 --- a/meta-digi-dey/recipes-qt/qt5/qtbase_%.bbappend +++ b/meta-digi-dey/recipes-qt/qt5/qtbase_%.bbappend @@ -6,13 +6,9 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -IMX_BACKEND = \ - "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland',\ - bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \ - 'fb', d), d)}" - +# Digi: we use a custom script per platform, not per backend like NXP does SRC_URI_append = " \ - file://qt5-${IMX_BACKEND}.sh \ + file://qt5.sh \ " SRC_URI_append_imxgpu3d = " \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', \ @@ -52,7 +48,7 @@ do_install_append () { sed -i 's,-L${STAGING_DIR_HOST}/usr/lib,,' ${D}${libdir}/pkgconfig/Qt5*.pc fi install -d ${D}${sysconfdir}/profile.d/ - install -m 0755 ${WORKDIR}/qt5-${IMX_BACKEND}.sh ${D}${sysconfdir}/profile.d/qt5.sh + install -m 0755 ${WORKDIR}/qt5.sh ${D}${sysconfdir}/profile.d/qt5.sh } FILES_${PN} += "${sysconfdir}/profile.d/qt5.sh" diff --git a/sdk/config/ccimx6qpsbc/conf-notes.txt b/sdk/config/ccimx6qpsbc/conf-notes.txt index ed1cd5158..e42d80e4f 100644 --- a/sdk/config/ccimx6qpsbc/conf-notes.txt +++ b/sdk/config/ccimx6qpsbc/conf-notes.txt @@ -2,13 +2,13 @@ Digi Embedded Yocto provides the following image recipes: * dey-image-qt: graphical QT image - By default the image is X11-based so it provides a full SATO theme + By default the image is XWayland-based so it provides a full Weston desktop environment. - To compile the image for the framebuffer (instead of X11) add the - following line to the project's conf/local.conf: + To compile the image for the framebuffer (instead of XWayland) add + the following line to the project's conf/local.conf: - DISTRO_FEATURES_remove = "x11" + DISTRO_FEATURES_remove = "x11 wayland" * dey-image-aws: console-only image supporting Amazon Web Services IoT diff --git a/sdk/config/ccimx6sbc/conf-notes.txt b/sdk/config/ccimx6sbc/conf-notes.txt index ed1cd5158..e42d80e4f 100644 --- a/sdk/config/ccimx6sbc/conf-notes.txt +++ b/sdk/config/ccimx6sbc/conf-notes.txt @@ -2,13 +2,13 @@ Digi Embedded Yocto provides the following image recipes: * dey-image-qt: graphical QT image - By default the image is X11-based so it provides a full SATO theme + By default the image is XWayland-based so it provides a full Weston desktop environment. - To compile the image for the framebuffer (instead of X11) add the - following line to the project's conf/local.conf: + To compile the image for the framebuffer (instead of XWayland) add + the following line to the project's conf/local.conf: - DISTRO_FEATURES_remove = "x11" + DISTRO_FEATURES_remove = "x11 wayland" * dey-image-aws: console-only image supporting Amazon Web Services IoT