diff --git a/README.md b/README.md index 3fc61d3a9..beb1eeefa 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Digi Embedded Yocto (DEY) 4.0 -## Release 4.0-r3 +## Release 4.0-r4 This document provides information about Digi Embedded Yocto, Digi International's professional embedded Yocto development environment. @@ -59,6 +59,18 @@ Software for the following hardware platforms is in production support: * ConnectCore 8M Nano Development Kit (DVK) * [CC-WMX8MN-KIT](https://www.digi.com/products/models/cc-wmx8mn-kit) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/4.0/cc8mnano/yocto-gs_index)) +## ConnectCore 8X +* ConnectCore 8X System-on-Module (SOM) + * [CC-WMX-JM8E-NN](https://www.digi.com/products/models/cc-wmx-jm8e-nn) + * [CC-MX-JM8D-ZN](https://www.digi.com/products/models/cc-mx-jm8d-zn) + * [CC-MX-JM7D-ZN](https://www.digi.com/cc8x) + * [CC-WMX-JM7D-NN](https://www.digi.com/products/models/cc-wmx-jm7d-nn) + * [CC-MX-JQ6D-ZN](https://www.digi.com/cc8x) + * [CC-MX-JQ7D-ZN](https://www.digi.com/cc8x) + * [CC-WMX-JQ7D-ZN](https://www.digi.com/cc8x) +* ConnectCore 8X SBC Pro + * [CC-WMX8-PRO](https://www.digi.com/products/embedded-systems/single-board-computers/digi-connectcore-8x-sbc-pro) ([Get Started](https://www.digi.com/resources/documentation/digidocs/embedded/dey/4.0/cc8x/yocto-gs_index)) + ## ConnectCore 6UL * ConnectCore 6UL System-on-Module (SOM) * [CC-WMX-JN7A-NE](https://www.digi.com/products/models/cc-wmx-jn7a-ne) @@ -74,6 +86,32 @@ Software for the following hardware platforms is in production support: * [CC-SBP-WMX-JN58](https://www.digi.com/products/models/cc-sbp-wmx-jn58) * [CC-SBP-WMX-JN7A](https://www.digi.com/products/models/cc-sbp-wmx-jn7a) +## 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/4.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/4.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 Digi Embedded Yocto is composed of a set of different Yocto layers that work in @@ -87,11 +125,57 @@ Documentation is available online at https://www.digi.com/resources/documentatio # Downloads -* Demo images: https://ftp1.digi.com/support/digiembeddedyocto/4.0/r3/images/ -* Software Development Kit (SDK): https://ftp1.digi.com/support/digiembeddedyocto/4.0/r3/sdk/ +* Demo images: https://ftp1.digi.com/support/digiembeddedyocto/4.0/r4/images/ +* Software Development Kit (SDK): https://ftp1.digi.com/support/digiembeddedyocto/4.0/r4/sdk/ # Release Changelog +## 4.0-r4 + +* ST-based platforms + * Reworked NAND partition table and disabled UBI Fastmap mechanism. + * Updated BSP + * Updated Trusted Firmware ARM (based on tag 'v2.6-stm32mp-r2.1' by ST) + * Updated OP-TEE (based on tag 'v2.6-stm32mp-r2.1' by ST) + * Updated U-Boot v2021.10 (based on tag 'v2.6-stm32mp-r2.1' by ST) + * Updated Linux kernel v5.15.118 (based on tag 'v2.6-stm32mp-r2.1' by ST) + * Updated Bluetooth firmware to comply with FCC and CE regulations (release 001.001.025 build 0155 from Murata) + * Restricted Wi-Fi regulatory domain to US only + * Re-enable auto-mount of microSD card on kernel boot + * Add sdcard generation support +* NXP-based platforms + * Added support to ConnectCore 6/6 Plus + * U-Boot v2017.03 + * Linux kernel v5.15.71 (based on tag 'lf-5.15.71-2.2.0' by NXP) + * Added support to ConnectCore 8X + * U-Boot v2020.04 + * Migrate imx-boot format to use SPL support to use the same binary for all memory variants + * Linux kernel v5.15.71 (based on tag 'lf-5.15.71-2.2.0' by NXP) + * Updated support to ConnectCore 93 + * U-Boot v2023.04 (based on tag 'lf-6.1.22-2.0.0' by NXP) + * Linux kernel v6.1.22 (based on tag 'lf-6.1.22-2.0.0' by NXP) + * Arm Ethos-U65 Neural Processing Unit (NPU) acceleration for machine learning + * Updated QT6 to v6.5 +* Improved bootcount support: + * Bootcount feature is now always active and not only after a dual boot firmware update. This new configuration applies to all platforms except for CC6 based devices, which will keep the previous behavior. + * Bootcount value is now stored in registers with soft reset protection to maintain the value: + * CC6 devices: bootcount is still stored in the U-Boot environment. + * CC6UL/CC8X/CC8M devices: bootcount is stored in the MCA NVMEM registers. + * CCMP1/CC93 devices: bootcount is stored in the DVK RTC NVMEM registers. + * Added a bootcount command to U-Boot and Linux to manage the boocount value. + * Moved 'altboot' script functionality to 'altbootcmd' in U-Boot and removed all the 'altboot' scripts +* Improved SWU package support and generation: + * Generalized and simplified recipes to generate the SWU packages using a custom class + * Added support to create a new SWU package based on files to update only specific parts of the active system + * Added support to create a new SWU package based on binary differences to update read-only squashfs rootfs partitions +* New ConnectCore Cloud Services (CCCS) application design: + * Daemon ('cccsd') with general services (cloud connection, files system, system monitor, firmware update, remote command line) and capable of communicate with other applications via CCCS API to send and receive data + * CCCS API applications communicating with CCCS daemon to send data points to the cloud and receive data requests from the cloud + Default images include: + * ConnectCore Cloud Services get started demo ('cccs-gs-demo') + * Example applications in 'dey-examples': 'cccs-upload-data-points-example' and 'cccs-data-request-example' +* General bug fixing and improvements + ## 4.0-r3 * ST-based platforms 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 0b856cea3..13e499f6a 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 @@ -56,12 +56,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 # Check for presence of firmware files on the SD card -for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do +for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}; do if test ! -e mmc ${INSTALL_MMCDEV} ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done +# Verify what kind of rootfs is going to be programmed +if test ! -e mmc ${INSTALL_MMCDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.squashfs + echo "INFO: Trying with file ${INSTALL_ROOTFS_FILENAME}"; + if test ! -e mmc ${INSTALL_MMCDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + install_abort=1; + fi +fi if test "${install_abort}" = "1"; then echo "To install a different image, set variable 'image-name', e.g.:" echo " => setenv image-name core-image-base" diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/install_linux_fw_usb.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/install_linux_fw_usb.txt index 9e9a84f1c..1cf816465 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/install_linux_fw_usb.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/install_linux_fw_usb.txt @@ -56,12 +56,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.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 +for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}; do if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done +# Verify what kind of rootfs is going to be programmed +if test ! -e usb ${INSTALL_USBDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.squashfs + echo "INFO: Trying with file ${INSTALL_ROOTFS_FILENAME}"; + if test ! -e usb ${INSTALL_USBDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + install_abort=1; + fi +fi if test "${install_abort}" = "1"; then echo "To install a different image, set variable 'image-name', e.g.:" echo " => setenv image-name core-image-base" diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/install_linux_fw_uuu.sh b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/install_linux_fw_uuu.sh index 851d48f49..aa53810e1 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/install_linux_fw_uuu.sh +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/install_linux_fw_uuu.sh @@ -164,8 +164,8 @@ if [ -f ${COMPRESSED_ROOTFS_IMAGE} ] && [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; the gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}" fi -# Verify existance of files before starting the update -FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}" +# Verify existence of files before starting the update +FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}" for f in ${FILES}; do if [ ! -f ${f} ]; then echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" @@ -173,6 +173,17 @@ for f in ${FILES}; do fi done; +# Verify what kind of rootfs is going to be programmed +if [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; then + echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.squashfs" + echo "\033[32m[INFO] Trying with file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + if [ ! -f "${INSTALL_ROOTFS_FILENAME}" ]; then + echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + ABORT=true + fi +fi + [ "${ABORT}" = true ] && exit 1 # parts names diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/install_linux_fw_sd.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/install_linux_fw_sd.txt index 339785774..a7d67813b 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/install_linux_fw_sd.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/install_linux_fw_sd.txt @@ -67,12 +67,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 # Check for presence of firmware files on the SD card -for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do +for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}; do if test ! -e mmc ${INSTALL_MMCDEV} ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done +# Verify what kind of rootfs is going to be programmed +if test ! -e mmc ${INSTALL_MMCDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.squashfs + echo "INFO: Trying with file ${INSTALL_ROOTFS_FILENAME}"; + if test ! -e mmc ${INSTALL_MMCDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + install_abort=1; + fi +fi if test "${install_abort}" = "1"; then echo "To install a different image, set variable 'image-name', e.g.:" echo " => setenv image-name core-image-base" diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/install_linux_fw_usb.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/install_linux_fw_usb.txt index 586deb72f..3e93d5fb5 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/install_linux_fw_usb.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/install_linux_fw_usb.txt @@ -67,12 +67,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.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 +for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}; do if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done +# Verify what kind of rootfs is going to be programmed +if test ! -e usb ${INSTALL_USBDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.squashfs + echo "INFO: Trying with file ${INSTALL_ROOTFS_FILENAME}"; + if test ! -e usb ${INSTALL_USBDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + install_abort=1; + fi +fi if test "${install_abort}" = "1"; then echo "To install a different image, set variable 'image-name', e.g.:" echo " => setenv image-name core-image-base" diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/install_linux_fw_uuu.sh b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/install_linux_fw_uuu.sh index 104ae53c1..f5d66d49b 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/install_linux_fw_uuu.sh +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/install_linux_fw_uuu.sh @@ -182,8 +182,8 @@ if [ -f ${COMPRESSED_ROOTFS_IMAGE} ] && [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; the gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}" fi -# Verify existance of files before starting the update -FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}" +# Verify existence of files before starting the update +FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}" for f in ${FILES}; do if [ ! -f ${f} ]; then echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" @@ -191,6 +191,17 @@ for f in ${FILES}; do fi done; +# Verify what kind of rootfs is going to be programmed +if [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; then + echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.squashfs" + echo "\033[32m[INFO] Trying with file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + if [ ! -f "${INSTALL_ROOTFS_FILENAME}" ]; then + echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + ABORT=true + fi +fi + [ "${ABORT}" = true ] && exit 1 # parts names diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ul/install_linux_fw_sd.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ul/install_linux_fw_sd.txt index f03b47ef7..acc2e5fd4 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ul/install_linux_fw_sd.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ul/install_linux_fw_sd.txt @@ -60,12 +60,24 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.ubifs setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ubifs # Check for presence of firmware files on the SD card -for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do +for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}; do if test ! -e mmc ${INSTALL_MMCDEV} ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done +# Verify what kind of rootfs is going to be programmed +if test ! -e mmc ${INSTALL_MMCDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.squashfs + echo "INFO: Trying with file ${INSTALL_ROOTFS_FILENAME}"; + if test ! -e mmc ${INSTALL_MMCDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + install_abort=1; + else + setenv rootfstype squashfs + fi +fi if test "${install_abort}" = "1"; then echo "To install a different image, set variable 'image-name', e.g.:" echo " => setenv image-name core-image-base" @@ -148,6 +160,7 @@ setenv bootcmd " env default -a; setenv singlemtdsys ${singlemtdsys}; setenv dualboot ${dualboot}; + setenv rootfstype ${rootfstype}; setenv install_dualboot ${install_dualboot}; run partition_nand_linux; saveenv; diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ul/install_linux_fw_usb.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ul/install_linux_fw_usb.txt index 1b375ee31..bdad2f6da 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ul/install_linux_fw_usb.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ul/install_linux_fw_usb.txt @@ -60,12 +60,26 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.ubifs setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.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 +for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}; do if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done +# Verify what kind of rootfs is going to be programmed +if test ! -e usb ${INSTALL_USBDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.squashfs + echo "INFO: Trying with file ${INSTALL_ROOTFS_FILENAME}"; + if test ! -e usb ${INSTALL_USBDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + install_abort=1; + else + setenv rootfstype squashfs + fi +else + setenv rootfstype +fi if test "${install_abort}" = "1"; then echo "To install a different image, set variable 'image-name', e.g.:" echo " => setenv image-name core-image-base" @@ -148,6 +162,7 @@ setenv bootcmd " env default -a; setenv singlemtdsys ${singlemtdsys}; setenv dualboot ${dualboot}; + setenv rootfstype ${rootfstype}; setenv install_dualboot ${install_dualboot}; run partition_nand_linux; saveenv; diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ul/install_linux_fw_uuu.sh b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ul/install_linux_fw_uuu.sh index 598dbf7f8..4eeac769d 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ul/install_linux_fw_uuu.sh +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6ul/install_linux_fw_uuu.sh @@ -171,8 +171,8 @@ INSTALL_LINUX_FILENAME="${BASEFILENAME}-##MACHINE##.boot.ubifs" INSTALL_RECOVERY_FILENAME="${BASEFILENAME}-##MACHINE##.recovery.ubifs" INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.ubifs" -# Verify existance of files before starting the update -FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}" +# Verify existence of files before starting the update +FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}" for f in ${FILES}; do if [ ! -f ${f} ]; then echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" @@ -180,6 +180,19 @@ for f in ${FILES}; do fi done; +# Verify what kind of rootfs is going to be programmed +if [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; then + echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.squashfs" + echo "\033[32m[INFO] Trying with file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + if [ -f "${INSTALL_ROOTFS_FILENAME}" ]; then + SQUASHFS=true + else + echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + ABORT=true + fi +fi + [ "${ABORT}" = true ] && exit 1 # parts names @@ -303,6 +316,12 @@ if [ "${DUALBOOT}" != true ]; then uuu fb: ucmd setenv boot_recovery yes uuu fb: ucmd setenv recovery_command wipe_update fi + +# Set the rootfstype if squashfs +if [ "${SQUASHFS}" = true ]; then + uuu fb: ucmd setenv rootfstype squashfs +fi + uuu fb: ucmd saveenv # Reset the target diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8m/install_linux_fw_sd.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8m/install_linux_fw_sd.txt index 9108f1f2b..d4824c6ee 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8m/install_linux_fw_sd.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8m/install_linux_fw_sd.txt @@ -27,12 +27,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 # Check for presence of firmware files on the SD card -for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do +for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}; do if test ! -e mmc ${INSTALL_MMCDEV} ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done +# Verify what kind of rootfs is going to be programmed +if test ! -e mmc ${INSTALL_MMCDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.squashfs + echo "INFO: Trying with file ${INSTALL_ROOTFS_FILENAME}"; + if test ! -e mmc ${INSTALL_MMCDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + install_abort=1; + fi +fi if test "${install_abort}" = "1"; then echo "To install a different image, set variable 'image-name', e.g.:" echo " => setenv image-name core-image-base" diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8m/install_linux_fw_usb.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8m/install_linux_fw_usb.txt index fad077216..896eaf1e6 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8m/install_linux_fw_usb.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8m/install_linux_fw_usb.txt @@ -27,12 +27,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.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 +for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}; do if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done +# Verify what kind of rootfs is going to be programmed +if test ! -e usb ${INSTALL_USBDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.squashfs + echo "INFO: Trying with file ${INSTALL_ROOTFS_FILENAME}"; + if test ! -e usb ${INSTALL_USBDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + install_abort=1; + fi +fi if test "${install_abort}" = "1"; then echo "To install a different image, set variable 'image-name', e.g.:" echo " => setenv image-name core-image-base" diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8m/install_linux_fw_uuu.sh b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8m/install_linux_fw_uuu.sh index f819e6aec..e548c0c21 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8m/install_linux_fw_uuu.sh +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8m/install_linux_fw_uuu.sh @@ -130,8 +130,8 @@ if [ -f ${COMPRESSED_ROOTFS_IMAGE} ] && [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; the gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}" fi -# Verify existance of files before starting the update -FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}" +# Verify existence of files before starting the update +FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}" for f in ${FILES}; do if [ ! -f ${f} ]; then echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" @@ -139,6 +139,17 @@ for f in ${FILES}; do fi done; +# Verify what kind of rootfs is going to be programmed +if [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; then + echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.squashfs" + echo "\033[32m[INFO] Trying with file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + if [ ! -f "${INSTALL_ROOTFS_FILENAME}" ]; then + echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + ABORT=true + fi +fi + [ "${ABORT}" = true ] && exit 1 # parts names diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/install_linux_fw_sd.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/install_linux_fw_sd.txt index 300ef49d2..8322ffa99 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/install_linux_fw_sd.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/install_linux_fw_sd.txt @@ -39,12 +39,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 # Check for presence of firmware files on the SD card -for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do +for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}; do if test ! -e mmc ${INSTALL_MMCDEV} ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done +# Verify what kind of rootfs is going to be programmed +if test ! -e mmc ${INSTALL_MMCDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.squashfs + echo "INFO: Trying with file ${INSTALL_ROOTFS_FILENAME}"; + if test ! -e mmc ${INSTALL_MMCDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + install_abort=1; + fi +fi if test "${install_abort}" = "1"; then echo "To install a different image, set variable 'image-name', e.g.:" echo " => setenv image-name core-image-base" diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/install_linux_fw_usb.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/install_linux_fw_usb.txt index 32c3eaf99..46dfbe340 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/install_linux_fw_usb.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/install_linux_fw_usb.txt @@ -39,12 +39,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.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 +for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}; do if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done +# Verify what kind of rootfs is going to be programmed +if test ! -e usb ${INSTALL_USBDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.squashfs + echo "INFO: Trying with file ${INSTALL_ROOTFS_FILENAME}"; + if test ! -e usb ${INSTALL_USBDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + install_abort=1; + fi +fi if test "${install_abort}" = "1"; then echo "To install a different image, set variable 'image-name', e.g.:" echo " => setenv image-name core-image-base" diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/install_linux_fw_uuu.sh b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/install_linux_fw_uuu.sh index de02952cf..e6ded19d5 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/install_linux_fw_uuu.sh +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x/install_linux_fw_uuu.sh @@ -137,8 +137,8 @@ if [ -f ${COMPRESSED_ROOTFS_IMAGE} ] && [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; the gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}" fi -# Verify existance of files before starting the update -FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}" +# Verify existence of files before starting the update +FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}" for f in ${FILES}; do if [ ! -f ${f} ]; then echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" @@ -146,6 +146,17 @@ for f in ${FILES}; do fi done; +# Verify what kind of rootfs is going to be programmed +if [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; then + echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.squashfs" + echo "\033[32m[INFO] Trying with file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + if [ ! -f "${INSTALL_ROOTFS_FILENAME}" ]; then + echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + ABORT=true + fi +fi + [ "${ABORT}" = true ] && exit 1 # parts names diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx93/install_linux_fw_sd.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx93/install_linux_fw_sd.txt index 3a50597f0..a5c969145 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx93/install_linux_fw_sd.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx93/install_linux_fw_sd.txt @@ -27,12 +27,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 # Check for presence of firmware files on the SD card -for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do +for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}; do if test ! -e mmc ${INSTALL_MMCDEV} ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done +# Verify what kind of rootfs is going to be programmed +if test ! -e mmc ${INSTALL_MMCDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.squashfs + echo "INFO: Trying with file ${INSTALL_ROOTFS_FILENAME}"; + if test ! -e mmc ${INSTALL_MMCDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + install_abort=1; + fi +fi if test "${install_abort}" = "1"; then echo "Aborted."; exit; diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx93/install_linux_fw_usb.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx93/install_linux_fw_usb.txt index e916de50e..90e7e1f3d 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx93/install_linux_fw_usb.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx93/install_linux_fw_usb.txt @@ -27,12 +27,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.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 +for install_f in ${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}; do if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done +# Verify what kind of rootfs is going to be programmed +if test ! -e usb ${INSTALL_USBDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.squashfs + echo "INFO: Trying with file ${INSTALL_ROOTFS_FILENAME}"; + if test ! -e usb ${INSTALL_USBDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + install_abort=1; + fi +fi if test "${install_abort}" = "1"; then echo "Aborted."; exit; diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx93/install_linux_fw_uuu.sh b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx93/install_linux_fw_uuu.sh index f819e6aec..e548c0c21 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx93/install_linux_fw_uuu.sh +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx93/install_linux_fw_uuu.sh @@ -130,8 +130,8 @@ if [ -f ${COMPRESSED_ROOTFS_IMAGE} ] && [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; the gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}" fi -# Verify existance of files before starting the update -FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}" +# Verify existence of files before starting the update +FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}" for f in ${FILES}; do if [ ! -f ${f} ]; then echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" @@ -139,6 +139,17 @@ for f in ${FILES}; do fi done; +# Verify what kind of rootfs is going to be programmed +if [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; then + echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.squashfs" + echo "\033[32m[INFO] Trying with file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + if [ ! -f "${INSTALL_ROOTFS_FILENAME}" ]; then + echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + ABORT=true + fi +fi + [ "${ABORT}" = true ] && exit 1 # parts names diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_sd.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_sd.txt index 6d36154d7..b2990ab35 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_sd.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_sd.txt @@ -28,12 +28,24 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.ubifs setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ubifs # Check for presence of firmware files on the SD card -for install_f in ${INSTALL_ATF_FILENAME} ${INSTALL_FIP_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do +for install_f in ${INSTALL_ATF_FILENAME} ${INSTALL_FIP_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}; do if test ! -e mmc ${INSTALL_MMCDEV} ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done +# Verify what kind of rootfs is going to be programmed +if test ! -e mmc ${INSTALL_MMCDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.squashfs + echo "INFO: Trying with file ${INSTALL_ROOTFS_FILENAME}"; + if test ! -e mmc ${INSTALL_MMCDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + install_abort=1; + else + setenv rootfstype squashfs + fi +fi if test "${install_abort}" = "1"; then echo "To install a different image, set variable 'image-name', e.g.:" echo " => setenv image-name core-image-base" @@ -147,6 +159,7 @@ fi setenv bootcmd " env default -a; setenv dualboot ${dualboot}; + setenv rootfstype ${rootfstype}; setenv install_dualboot ${install_dualboot}; run ubivolscript; if test \"\$\{dualboot\}\" = yes; then diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_usb.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_usb.txt index 3d161c03f..de7c1d6ae 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_usb.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_usb.txt @@ -28,12 +28,26 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.ubifs setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ubifs # Check for presence of firmware files on the USB -for install_f in ${INSTALL_ATF_FILENAME} ${INSTALL_FIP_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}; do +for install_f in ${INSTALL_ATF_FILENAME} ${INSTALL_FIP_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}; do if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then echo "ERROR: Could not find file ${install_f}"; install_abort=1; fi; done +# Verify what kind of rootfs is going to be programmed +if test ! -e usb ${INSTALL_USBDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.squashfs + echo "INFO: Trying with file ${INSTALL_ROOTFS_FILENAME}"; + if test ! -e usb ${INSTALL_USBDEV} ${INSTALL_ROOTFS_FILENAME}; then + echo "ERROR: Could not find file ${INSTALL_ROOTFS_FILENAME}"; + install_abort=1; + else + setenv rootfstype squashfs + fi +else + setenv rootfstype +fi if test "${install_abort}" = "1"; then echo "To install a different image, set variable 'image-name', e.g.:" echo " => setenv image-name core-image-base" @@ -147,6 +161,7 @@ fi setenv bootcmd " env default -a; setenv dualboot ${dualboot}; + setenv rootfstype ${rootfstype}; setenv install_dualboot ${install_dualboot}; run ubivolscript; usb start; diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_uuu.sh b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_uuu.sh index aaa5555b3..43922c07d 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_uuu.sh +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp1/install_linux_fw_uuu.sh @@ -1,7 +1,7 @@ #!/bin/sh #=============================================================================== # -# Copyright (C) 2022 by Digi International Inc. +# Copyright (C) 2022-2023 by Digi International Inc. # All rights reserved. # # This program is free software; you can redistribute it and/or modify it @@ -141,8 +141,8 @@ INSTALL_LINUX_FILENAME="${BASEFILENAME}-##MACHINE##.boot.ubifs" INSTALL_RECOVERY_FILENAME="${BASEFILENAME}-##MACHINE##.recovery.ubifs" INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.ubifs" -# Verify existance of files before starting the update -FILES="${INSTALL_ATF_FILENAME} ${INSTALL_FIP_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}" +# Verify existence of files before starting the update +FILES="${INSTALL_ATF_FILENAME} ${INSTALL_FIP_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}" for f in ${FILES}; do if [ ! -f ${f} ]; then echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" @@ -150,6 +150,19 @@ for f in ${FILES}; do fi done; +# Verify what kind of rootfs is going to be programmed +if [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; then + echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.squashfs" + echo "\033[32m[INFO] Trying with file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + if [ -f "${INSTALL_ROOTFS_FILENAME}" ]; then + SQUASHFS=true + else + echo "\033[31m[ERROR] Could not find file '${INSTALL_ROOTFS_FILENAME}'\033[0m" + ABORT=true + fi +fi + [ "${ABORT}" = true ] && exit 1 # parts names @@ -278,6 +291,12 @@ else uuu fb: ucmd saveenv fi +# Set the rootfstype if squashfs +if [ "${SQUASHFS}" = true ]; then + uuu fb: ucmd setenv rootfstype squashfs + uuu fb: ucmd saveenv +fi + # Reset the target uuu fb: ucmd bootcount reset uuu fb: acmd reset diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp13-dvk/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp13-dvk/boot.txt index 94fed3c6d..f960f2118 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp13-dvk/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp13-dvk/boot.txt @@ -37,9 +37,6 @@ else # We are booting from the NAND 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 rootfsvol rootfs fi @@ -64,7 +61,11 @@ if test "${module_has_wifi}" = "1" && test -z "${disable_wifi}"; then setenv overlays _ov_som_wifi_ccmp13.dtbo,${overlays} fi -dboot linux nand ${mtdbootpart} +if test "${boot_device}" = "mmc"; then + dboot linux mmc +else + dboot linux nand ${mtdbootpart} +fi diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp15-dvk/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp15-dvk/boot.txt index 632feb7aa..05216ff2d 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp15-dvk/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp15-dvk/boot.txt @@ -37,9 +37,6 @@ else # We are booting from the NAND 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 rootfsvol rootfs fi @@ -75,7 +72,11 @@ if test -z "${board_version}" || test "${board_version}" -eq "1"; then setenv overlays _ov_board_v1_ccmp15-dvk.dtbo,${overlays} fi -dboot linux nand ${mtdbootpart} +if test "${boot_device}" = "mmc"; then + dboot linux mmc +else + dboot linux nand ${mtdbootpart} +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 df23f490e..07353c3ae 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,4 +1,4 @@ -# Copyright (C) 2018-2021 Digi International +# Copyright (C) 2018-2023 Digi International require u-boot-dey.inc diff --git a/meta-digi-dey/classes/dey-image-installer.bbclass b/meta-digi-dey/classes/dey-image-installer.bbclass index c0d6ad7ba..523168e15 100644 --- a/meta-digi-dey/classes/dey-image-installer.bbclass +++ b/meta-digi-dey/classes/dey-image-installer.bbclass @@ -15,12 +15,14 @@ FSTYPES_WHITELIST = " \ recovery.ubifs \ recovery.vfat \ ubifs \ + squashfs \ " FSTYPES_WHITELIST:ccmp1 = " \ boot.ubifs \ recovery.ubifs \ ubifs \ + squashfs \ " HAS_USB_DRIVER = "false" diff --git a/meta-digi-dey/classes/trustfence.bbclass b/meta-digi-dey/classes/trustfence.bbclass index 823151566..d559e9a29 100644 --- a/meta-digi-dey/classes/trustfence.bbclass +++ b/meta-digi-dey/classes/trustfence.bbclass @@ -80,7 +80,7 @@ check_gen_pki_tree() { copy_public_key() { if [ "${DEY_SOC_VENDOR}" = "NXP" ]; then - KEY_INDEX="$(expr $TRUSTFENCE_KEY_INDEX + 1)" + KEY_INDEX="$(expr ${TRUSTFENCE_KEY_INDEX} + 1)" PUBLIC_KEY="${TRUSTFENCE_SIGN_KEYS_PATH}/crts/key${KEY_INDEX}.pub" # The new hab/ahab_pki_tree.sh script extracts the public keys after the PKI # generation and leaves them in the crts/ folder. However, the PKI tree may diff --git a/meta-digi-dey/conf/distro/dey.conf b/meta-digi-dey/conf/distro/dey.conf index 394cd3a93..263b7642d 100644 --- a/meta-digi-dey/conf/distro/dey.conf +++ b/meta-digi-dey/conf/distro/dey.conf @@ -77,3 +77,7 @@ PACKAGECONFIG:append:class-target:pn-qtbase = " examples" PACKAGECONFIG:append:class-target:pn-qtdeclarative = " examples" PACKAGECONFIG:append:class-target:pn-qtquick3d = " examples" PACKAGECONFIG:append:class-target:pn-qtwebengine = " examples" +# libarchive is using "zstd" in its package config. +# This is not used in the swupdate that is the only consumer of the libarchive package. +# Remove it to reduce the size of the recovery image. +PACKAGECONFIG:remove:class-target:pn-libarchive = " zstd" diff --git a/meta-digi-dey/recipes-digi/dualboot/dualboot/update-firmware b/meta-digi-dey/recipes-digi/dualboot/dualboot/update-firmware index 2fd76f9b8..4fbabc52a 100755 --- a/meta-digi-dey/recipes-digi/dualboot/dualboot/update-firmware +++ b/meta-digi-dey/recipes-digi/dualboot/dualboot/update-firmware @@ -173,7 +173,11 @@ update_emmc() { echo "" # Execute the update. - swupdate ${VERBOSE} -i "${UPDATE_FILE}" -e "${IMAGE_SET}" + if [ -f "${PUBLIC_KEY}" ]; then + swupdate ${VERBOSE} -i "${UPDATE_FILE}" -e "${IMAGE_SET}" -k "${PUBLIC_KEY}" + else + swupdate ${VERBOSE} -i "${UPDATE_FILE}" -e "${IMAGE_SET}" + fi } update_nand() { diff --git a/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/ccmp13-dvk/libdigiapix.conf b/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/ccmp13-dvk/libdigiapix.conf index 5c1c02435..95df95fc4 100644 --- a/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/ccmp13-dvk/libdigiapix.conf +++ b/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/ccmp13-dvk/libdigiapix.conf @@ -21,10 +21,10 @@ DEFAULT_SPI = 0,0 [PWM] -# PWM2 on MikroBus connector J31 (pin 1). Set overlay _ov_board_mikroe-pwm_ccmp13-dvk.dtbo +# PWM2 on MikroBus connector J31 (pin 1). Set overlay _ov_board_pwm8_ccmp13-dvk.dtbo DEFAULT_PWM = 0,0 [ADC] # ADC0_IN2 on MikroBus connector J31 (pin 1). - DEFAULT_ADC = 0,2 +DEFAULT_ADC = 0,2 diff --git a/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/ccmp15-dvk/libdigiapix.conf b/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/ccmp15-dvk/libdigiapix.conf index 65b2acb84..833eadfb5 100644 --- a/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/ccmp15-dvk/libdigiapix.conf +++ b/meta-digi-dey/recipes-digi/libdigiapix/libdigiapix-git/ccmp15-dvk/libdigiapix.conf @@ -27,4 +27,4 @@ DEFAULT_PWM = 4,0 [ADC] # ANA0 on GPIO board connector J41 (pin 4) -DEFAULT_ADC = 1,0 +DEFAULT_ADC = 2,0 diff --git a/meta-digi-dey/recipes-digi/swu-images/files/image_template_rdiff_mmc b/meta-digi-dey/recipes-digi/swu-images/files/image_template_rdiff_mmc index 6ca186650..d67ef11b8 100644 --- a/meta-digi-dey/recipes-digi/swu-images/files/image_template_rdiff_mmc +++ b/meta-digi-dey/recipes-digi/swu-images/files/image_template_rdiff_mmc @@ -2,6 +2,7 @@ type = "rdiff_image"; filename = "@@SWUPDATE_RDIFF_ROOTFS_DELTA_FILE_NAME@@"; device = "##DEV##"; + sha256 = "$swupdate_get_sha256(@@SWUPDATE_RDIFF_ROOTFS_DELTA_FILE_NAME@@)"; properties: { rdiffbase = ["/dev/rdiff_source_rootfs"]; }; diff --git a/meta-digi-dey/recipes-digi/swu-images/files/image_template_rdiff_nand b/meta-digi-dey/recipes-digi/swu-images/files/image_template_rdiff_nand index 88585fa5b..76372f6ee 100644 --- a/meta-digi-dey/recipes-digi/swu-images/files/image_template_rdiff_nand +++ b/meta-digi-dey/recipes-digi/swu-images/files/image_template_rdiff_nand @@ -2,6 +2,7 @@ type = "ubivol_rdiff_image"; filename = "@@SWUPDATE_RDIFF_ROOTFS_DELTA_FILE_NAME@@"; volume = "##DEV##"; + sha256 = "$swupdate_get_sha256(@@SWUPDATE_RDIFF_ROOTFS_DELTA_FILE_NAME@@)"; properties: { rdiffbase = ["/dev/rdiff_source_rootfs"]; rdiffnewsize = "$swupdate_get_size(@@DEPLOY_DIR_IMAGE@@/@@IMG_NAME@@-@@MACHINE@@.squashfs)"; diff --git a/meta-digi-dey/recipes-digi/swu-images/files/sw-description-files_template b/meta-digi-dey/recipes-digi/swu-images/files/sw-description-files_template index d6fb84bdc..d03492e00 100644 --- a/meta-digi-dey/recipes-digi/swu-images/files/sw-description-files_template +++ b/meta-digi-dey/recipes-digi/swu-images/files/sw-description-files_template @@ -11,6 +11,7 @@ software = type = "archive"; compressed = "zlib"; path = "/"; + sha256 = "$swupdate_get_sha256(@@SWUPDATE_FILES_TARGZ_FILE_NAME@@)"; } ); scripts: ( @@ -37,6 +38,7 @@ software = type = "archive"; compressed = "zlib"; path = "/system/"; + sha256 = "$swupdate_get_sha256(@@SWUPDATE_FILES_TARGZ_FILE_NAME@@)"; } ); scripts: ( diff --git a/meta-digi-dey/recipes-support/swupdate/swupdate/defconfig b/meta-digi-dey/recipes-support/swupdate/swupdate/defconfig index ed9b3f416..8b52b25d9 100644 --- a/meta-digi-dey/recipes-support/swupdate/swupdate/defconfig +++ b/meta-digi-dey/recipes-support/swupdate/swupdate/defconfig @@ -1,10 +1,123 @@ +# +# Automatically generated file; DO NOT EDIT. +# SWUpdate Configuration +# + +# +# SWUpdate Settings +# + +# +# General Configuration +# +# CONFIG_CURL is not set +# CONFIG_CURL_SSL is not set +# CONFIG_DISKFORMAT is not set +# CONFIG_SYSTEMD is not set +CONFIG_DEFAULT_CONFIG_FILE="/etc/swupdate.cfg" +CONFIG_SCRIPTS=y +# CONFIG_HW_COMPATIBILITY is not set +CONFIG_SW_VERSIONS_FILE="/etc/sw-versions" + +# +# Socket Paths +# +CONFIG_SOCKET_CTRL_PATH="" +CONFIG_SOCKET_PROGRESS_PATH="" # CONFIG_MTD is not set # CONFIG_LUA is not set +# CONFIG_FEATURE_SYSLOG is not set +CONFIG_DIGI_ON_THE_FLY="n" + +# +# Build Options +# +CONFIG_CROSS_COMPILE="" +CONFIG_SYSROOT="" +CONFIG_EXTRA_CFLAGS="" +CONFIG_EXTRA_LDFLAGS="" +CONFIG_EXTRA_LDLIBS="" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_WERROR is not set +# CONFIG_NOCLEANUP is not set + +# +# Bootloader support +# + +# +# Bootloader Interfaces +# # CONFIG_BOOTLOADER_NONE is not set +# CONFIG_BOOTLOADER_EBG is not set CONFIG_UBOOT=y +CONFIG_UBOOT_FWENV="/etc/fw_env.config" +CONFIG_UBOOT_DEFAULTENV="/etc/u-boot-initial-env" +# CONFIG_BOOTLOADER_GRUB is not set +CONFIG_BOOTLOADER_DEFAULT_UBOOT=y +# CONFIG_BOOTLOADER_STATIC_LINKED is not set +CONFIG_UPDATE_STATE_CHOICE_BOOTLOADER=y +CONFIG_UPDATE_STATE_BOOTLOADER="ustate" + +# +# Interfaces +# +# CONFIG_DOWNLOAD is not set +# CONFIG_SURICATTA is not set +# CONFIG_WEBSERVER is not set + +# +# Security +# +# CONFIG_SSL_IMPL_NONE is not set +CONFIG_SSL_IMPL_OPENSSL=y +# CONFIG_SSL_IMPL_WOLFSSL is not set +# CONFIG_SSL_IMPL_MBEDTLS is not set CONFIG_HASH_VERIFY=y +# CONFIG_SIGNED_IMAGES is not set +# CONFIG_ENCRYPTED_IMAGES is not set + +# +# Compressors (zlib always on) +# +CONFIG_GUNZIP=y +# CONFIG_ZSTD is not set + +# +# Parsers +# + +# +# Parser Features +# +CONFIG_LIBCONFIG=y +CONFIG_PARSERROOT="" +# CONFIG_JSON is not set +# CONFIG_SETSWDESCRIPTION is not set + +# +# Handlers +# + +# +# Image Handlers +# CONFIG_ARCHIVE=y +CONFIG_LOCALE=y CONFIG_BOOTLOADERHANDLER=y +# CONFIG_COPY is not set +# CONFIG_DELTA is not set +# CONFIG_DISKPART is not set +# CONFIG_DISKFORMAT_HANDLER is not set CONFIG_RAW=y CONFIG_RDIFFHANDLER=y +# CONFIG_READBACKHANDLER is not set +# CONFIG_REMOTE_HANDLER is not set CONFIG_SHELLSCRIPTHANDLER=y +# CONFIG_SWUFORWARDER_HANDLER is not set +# CONFIG_UCFWHANDLER is not set +# CONFIG_UNIQUEUUID is not set