Merge tag 'dey-4.0-r4.1' into dey-4.0/master

Digi Embedded Yocto 4.0-r4.1

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
This commit is contained in:
Arturo Buzarra 2023-10-09 15:20:21 +02:00
commit 65f7ca3999
35 changed files with 508 additions and 46 deletions

View File

@ -1,5 +1,5 @@
# Digi Embedded Yocto (DEY) 4.0 # Digi Embedded Yocto (DEY) 4.0
## Release 4.0-r3 ## Release 4.0-r4
This document provides information about Digi Embedded Yocto, This document provides information about Digi Embedded Yocto,
Digi International's professional embedded Yocto development environment. 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) * 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)) * [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
* ConnectCore 6UL System-on-Module (SOM) * ConnectCore 6UL System-on-Module (SOM)
* [CC-WMX-JN7A-NE](https://www.digi.com/products/models/cc-wmx-jn7a-ne) * [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-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) * [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 # Installation
Digi Embedded Yocto is composed of a set of different Yocto layers that work in 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 # Downloads
* Demo images: https://ftp1.digi.com/support/digiembeddedyocto/4.0/r3/images/ * Demo images: https://ftp1.digi.com/support/digiembeddedyocto/4.0/r4/images/
* Software Development Kit (SDK): https://ftp1.digi.com/support/digiembeddedyocto/4.0/r3/sdk/ * Software Development Kit (SDK): https://ftp1.digi.com/support/digiembeddedyocto/4.0/r4/sdk/
# Release Changelog # 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 ## 4.0-r3
* ST-based platforms * ST-based platforms

View File

@ -56,12 +56,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat
setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4
# Check for presence of firmware files on the SD card # 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 if test ! -e mmc ${INSTALL_MMCDEV} ${install_f}; then
echo "ERROR: Could not find file ${install_f}"; echo "ERROR: Could not find file ${install_f}";
install_abort=1; install_abort=1;
fi; fi;
done 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 if test "${install_abort}" = "1"; then
echo "To install a different image, set variable 'image-name', e.g.:" echo "To install a different image, set variable 'image-name', e.g.:"
echo " => setenv image-name core-image-base" echo " => setenv image-name core-image-base"

View File

@ -56,12 +56,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat
setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4
# Check for presence of firmware files on the USB # 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 if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then
echo "ERROR: Could not find file ${install_f}"; echo "ERROR: Could not find file ${install_f}";
install_abort=1; install_abort=1;
fi; fi;
done 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 if test "${install_abort}" = "1"; then
echo "To install a different image, set variable 'image-name', e.g.:" echo "To install a different image, set variable 'image-name', e.g.:"
echo " => setenv image-name core-image-base" echo " => setenv image-name core-image-base"

View File

@ -164,8 +164,8 @@ if [ -f ${COMPRESSED_ROOTFS_IMAGE} ] && [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; the
gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}" gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}"
fi fi
# Verify existance of files before starting the update # Verify existence of files before starting the update
FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}" FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}"
for f in ${FILES}; do for f in ${FILES}; do
if [ ! -f ${f} ]; then if [ ! -f ${f} ]; then
echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" echo "\033[31m[ERROR] Could not find file '${f}'\033[0m"
@ -173,6 +173,17 @@ for f in ${FILES}; do
fi fi
done; 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 [ "${ABORT}" = true ] && exit 1
# parts names # parts names

View File

@ -67,12 +67,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat
setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4
# Check for presence of firmware files on the SD card # 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 if test ! -e mmc ${INSTALL_MMCDEV} ${install_f}; then
echo "ERROR: Could not find file ${install_f}"; echo "ERROR: Could not find file ${install_f}";
install_abort=1; install_abort=1;
fi; fi;
done 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 if test "${install_abort}" = "1"; then
echo "To install a different image, set variable 'image-name', e.g.:" echo "To install a different image, set variable 'image-name', e.g.:"
echo " => setenv image-name core-image-base" echo " => setenv image-name core-image-base"

View File

@ -67,12 +67,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat
setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4
# Check for presence of firmware files on the USB # 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 if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then
echo "ERROR: Could not find file ${install_f}"; echo "ERROR: Could not find file ${install_f}";
install_abort=1; install_abort=1;
fi; fi;
done 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 if test "${install_abort}" = "1"; then
echo "To install a different image, set variable 'image-name', e.g.:" echo "To install a different image, set variable 'image-name', e.g.:"
echo " => setenv image-name core-image-base" echo " => setenv image-name core-image-base"

View File

@ -182,8 +182,8 @@ if [ -f ${COMPRESSED_ROOTFS_IMAGE} ] && [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; the
gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}" gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}"
fi fi
# Verify existance of files before starting the update # Verify existence of files before starting the update
FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}" FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}"
for f in ${FILES}; do for f in ${FILES}; do
if [ ! -f ${f} ]; then if [ ! -f ${f} ]; then
echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" echo "\033[31m[ERROR] Could not find file '${f}'\033[0m"
@ -191,6 +191,17 @@ for f in ${FILES}; do
fi fi
done; 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 [ "${ABORT}" = true ] && exit 1
# parts names # parts names

View File

@ -60,12 +60,24 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.ubifs
setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ubifs setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ubifs
# Check for presence of firmware files on the SD card # 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 if test ! -e mmc ${INSTALL_MMCDEV} ${install_f}; then
echo "ERROR: Could not find file ${install_f}"; echo "ERROR: Could not find file ${install_f}";
install_abort=1; install_abort=1;
fi; fi;
done 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 if test "${install_abort}" = "1"; then
echo "To install a different image, set variable 'image-name', e.g.:" echo "To install a different image, set variable 'image-name', e.g.:"
echo " => setenv image-name core-image-base" echo " => setenv image-name core-image-base"
@ -148,6 +160,7 @@ setenv bootcmd "
env default -a; env default -a;
setenv singlemtdsys ${singlemtdsys}; setenv singlemtdsys ${singlemtdsys};
setenv dualboot ${dualboot}; setenv dualboot ${dualboot};
setenv rootfstype ${rootfstype};
setenv install_dualboot ${install_dualboot}; setenv install_dualboot ${install_dualboot};
run partition_nand_linux; run partition_nand_linux;
saveenv; saveenv;

View File

@ -60,12 +60,26 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.ubifs
setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ubifs setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ubifs
# Check for presence of firmware files on the USB # 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 if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then
echo "ERROR: Could not find file ${install_f}"; echo "ERROR: Could not find file ${install_f}";
install_abort=1; install_abort=1;
fi; fi;
done 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 if test "${install_abort}" = "1"; then
echo "To install a different image, set variable 'image-name', e.g.:" echo "To install a different image, set variable 'image-name', e.g.:"
echo " => setenv image-name core-image-base" echo " => setenv image-name core-image-base"
@ -148,6 +162,7 @@ setenv bootcmd "
env default -a; env default -a;
setenv singlemtdsys ${singlemtdsys}; setenv singlemtdsys ${singlemtdsys};
setenv dualboot ${dualboot}; setenv dualboot ${dualboot};
setenv rootfstype ${rootfstype};
setenv install_dualboot ${install_dualboot}; setenv install_dualboot ${install_dualboot};
run partition_nand_linux; run partition_nand_linux;
saveenv; saveenv;

View File

@ -171,8 +171,8 @@ INSTALL_LINUX_FILENAME="${BASEFILENAME}-##MACHINE##.boot.ubifs"
INSTALL_RECOVERY_FILENAME="${BASEFILENAME}-##MACHINE##.recovery.ubifs" INSTALL_RECOVERY_FILENAME="${BASEFILENAME}-##MACHINE##.recovery.ubifs"
INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.ubifs" INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.ubifs"
# Verify existance of files before starting the update # Verify existence of files before starting the update
FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}" FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}"
for f in ${FILES}; do for f in ${FILES}; do
if [ ! -f ${f} ]; then if [ ! -f ${f} ]; then
echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" echo "\033[31m[ERROR] Could not find file '${f}'\033[0m"
@ -180,6 +180,19 @@ for f in ${FILES}; do
fi fi
done; 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 [ "${ABORT}" = true ] && exit 1
# parts names # parts names
@ -303,6 +316,12 @@ if [ "${DUALBOOT}" != true ]; then
uuu fb: ucmd setenv boot_recovery yes uuu fb: ucmd setenv boot_recovery yes
uuu fb: ucmd setenv recovery_command wipe_update uuu fb: ucmd setenv recovery_command wipe_update
fi fi
# Set the rootfstype if squashfs
if [ "${SQUASHFS}" = true ]; then
uuu fb: ucmd setenv rootfstype squashfs
fi
uuu fb: ucmd saveenv uuu fb: ucmd saveenv
# Reset the target # Reset the target

View File

@ -27,12 +27,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat
setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4
# Check for presence of firmware files on the SD card # 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 if test ! -e mmc ${INSTALL_MMCDEV} ${install_f}; then
echo "ERROR: Could not find file ${install_f}"; echo "ERROR: Could not find file ${install_f}";
install_abort=1; install_abort=1;
fi; fi;
done 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 if test "${install_abort}" = "1"; then
echo "To install a different image, set variable 'image-name', e.g.:" echo "To install a different image, set variable 'image-name', e.g.:"
echo " => setenv image-name core-image-base" echo " => setenv image-name core-image-base"

View File

@ -27,12 +27,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat
setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4
# Check for presence of firmware files on the USB # 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 if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then
echo "ERROR: Could not find file ${install_f}"; echo "ERROR: Could not find file ${install_f}";
install_abort=1; install_abort=1;
fi; fi;
done 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 if test "${install_abort}" = "1"; then
echo "To install a different image, set variable 'image-name', e.g.:" echo "To install a different image, set variable 'image-name', e.g.:"
echo " => setenv image-name core-image-base" echo " => setenv image-name core-image-base"

View File

@ -130,8 +130,8 @@ if [ -f ${COMPRESSED_ROOTFS_IMAGE} ] && [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; the
gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}" gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}"
fi fi
# Verify existance of files before starting the update # Verify existence of files before starting the update
FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}" FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}"
for f in ${FILES}; do for f in ${FILES}; do
if [ ! -f ${f} ]; then if [ ! -f ${f} ]; then
echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" echo "\033[31m[ERROR] Could not find file '${f}'\033[0m"
@ -139,6 +139,17 @@ for f in ${FILES}; do
fi fi
done; 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 [ "${ABORT}" = true ] && exit 1
# parts names # parts names

View File

@ -39,12 +39,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat
setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4
# Check for presence of firmware files on the SD card # 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 if test ! -e mmc ${INSTALL_MMCDEV} ${install_f}; then
echo "ERROR: Could not find file ${install_f}"; echo "ERROR: Could not find file ${install_f}";
install_abort=1; install_abort=1;
fi; fi;
done 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 if test "${install_abort}" = "1"; then
echo "To install a different image, set variable 'image-name', e.g.:" echo "To install a different image, set variable 'image-name', e.g.:"
echo " => setenv image-name core-image-base" echo " => setenv image-name core-image-base"

View File

@ -39,12 +39,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat
setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4
# Check for presence of firmware files on the USB # 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 if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then
echo "ERROR: Could not find file ${install_f}"; echo "ERROR: Could not find file ${install_f}";
install_abort=1; install_abort=1;
fi; fi;
done 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 if test "${install_abort}" = "1"; then
echo "To install a different image, set variable 'image-name', e.g.:" echo "To install a different image, set variable 'image-name', e.g.:"
echo " => setenv image-name core-image-base" echo " => setenv image-name core-image-base"

View File

@ -137,8 +137,8 @@ if [ -f ${COMPRESSED_ROOTFS_IMAGE} ] && [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; the
gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}" gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}"
fi fi
# Verify existance of files before starting the update # Verify existence of files before starting the update
FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}" FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}"
for f in ${FILES}; do for f in ${FILES}; do
if [ ! -f ${f} ]; then if [ ! -f ${f} ]; then
echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" echo "\033[31m[ERROR] Could not find file '${f}'\033[0m"
@ -146,6 +146,17 @@ for f in ${FILES}; do
fi fi
done; 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 [ "${ABORT}" = true ] && exit 1
# parts names # parts names

View File

@ -27,12 +27,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat
setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4
# Check for presence of firmware files on the SD card # 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 if test ! -e mmc ${INSTALL_MMCDEV} ${install_f}; then
echo "ERROR: Could not find file ${install_f}"; echo "ERROR: Could not find file ${install_f}";
install_abort=1; install_abort=1;
fi; fi;
done 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 if test "${install_abort}" = "1"; then
echo "Aborted."; echo "Aborted.";
exit; exit;

View File

@ -27,12 +27,22 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.vfat
setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4 setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ext4
# Check for presence of firmware files on the USB # 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 if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then
echo "ERROR: Could not find file ${install_f}"; echo "ERROR: Could not find file ${install_f}";
install_abort=1; install_abort=1;
fi; fi;
done 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 if test "${install_abort}" = "1"; then
echo "Aborted."; echo "Aborted.";
exit; exit;

View File

@ -130,8 +130,8 @@ if [ -f ${COMPRESSED_ROOTFS_IMAGE} ] && [ ! -f ${INSTALL_ROOTFS_FILENAME} ]; the
gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}" gzip -d -k -f "${COMPRESSED_ROOTFS_IMAGE}"
fi fi
# Verify existance of files before starting the update # Verify existence of files before starting the update
FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}" FILES="${INSTALL_UBOOT_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}"
for f in ${FILES}; do for f in ${FILES}; do
if [ ! -f ${f} ]; then if [ ! -f ${f} ]; then
echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" echo "\033[31m[ERROR] Could not find file '${f}'\033[0m"
@ -139,6 +139,17 @@ for f in ${FILES}; do
fi fi
done; 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 [ "${ABORT}" = true ] && exit 1
# parts names # parts names

View File

@ -28,12 +28,24 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.ubifs
setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ubifs setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ubifs
# Check for presence of firmware files on the SD card # 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 if test ! -e mmc ${INSTALL_MMCDEV} ${install_f}; then
echo "ERROR: Could not find file ${install_f}"; echo "ERROR: Could not find file ${install_f}";
install_abort=1; install_abort=1;
fi; fi;
done 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 if test "${install_abort}" = "1"; then
echo "To install a different image, set variable 'image-name', e.g.:" echo "To install a different image, set variable 'image-name', e.g.:"
echo " => setenv image-name core-image-base" echo " => setenv image-name core-image-base"
@ -147,6 +159,7 @@ fi
setenv bootcmd " setenv bootcmd "
env default -a; env default -a;
setenv dualboot ${dualboot}; setenv dualboot ${dualboot};
setenv rootfstype ${rootfstype};
setenv install_dualboot ${install_dualboot}; setenv install_dualboot ${install_dualboot};
run ubivolscript; run ubivolscript;
if test \"\$\{dualboot\}\" = yes; then if test \"\$\{dualboot\}\" = yes; then

View File

@ -28,12 +28,26 @@ setenv INSTALL_RECOVERY_FILENAME ${BASEFILENAME}-##MACHINE##.recovery.ubifs
setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ubifs setenv INSTALL_ROOTFS_FILENAME ${BASEFILENAME}-##MACHINE##.ubifs
# Check for presence of firmware files on the USB # 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 if test ! -e usb ${INSTALL_USBDEV} ${install_f}; then
echo "ERROR: Could not find file ${install_f}"; echo "ERROR: Could not find file ${install_f}";
install_abort=1; install_abort=1;
fi; fi;
done 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 if test "${install_abort}" = "1"; then
echo "To install a different image, set variable 'image-name', e.g.:" echo "To install a different image, set variable 'image-name', e.g.:"
echo " => setenv image-name core-image-base" echo " => setenv image-name core-image-base"
@ -147,6 +161,7 @@ fi
setenv bootcmd " setenv bootcmd "
env default -a; env default -a;
setenv dualboot ${dualboot}; setenv dualboot ${dualboot};
setenv rootfstype ${rootfstype};
setenv install_dualboot ${install_dualboot}; setenv install_dualboot ${install_dualboot};
run ubivolscript; run ubivolscript;
usb start; usb start;

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
#=============================================================================== #===============================================================================
# #
# Copyright (C) 2022 by Digi International Inc. # Copyright (C) 2022-2023 by Digi International Inc.
# All rights reserved. # All rights reserved.
# #
# This program is free software; you can redistribute it and/or modify it # 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_RECOVERY_FILENAME="${BASEFILENAME}-##MACHINE##.recovery.ubifs"
INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.ubifs" INSTALL_ROOTFS_FILENAME="${BASEFILENAME}-##MACHINE##.ubifs"
# Verify existance of files before starting the update # Verify existence of files before starting the update
FILES="${INSTALL_ATF_FILENAME} ${INSTALL_FIP_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME} ${INSTALL_ROOTFS_FILENAME}" FILES="${INSTALL_ATF_FILENAME} ${INSTALL_FIP_FILENAME} ${INSTALL_LINUX_FILENAME} ${INSTALL_RECOVERY_FILENAME}"
for f in ${FILES}; do for f in ${FILES}; do
if [ ! -f ${f} ]; then if [ ! -f ${f} ]; then
echo "\033[31m[ERROR] Could not find file '${f}'\033[0m" echo "\033[31m[ERROR] Could not find file '${f}'\033[0m"
@ -150,6 +150,19 @@ for f in ${FILES}; do
fi fi
done; 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 [ "${ABORT}" = true ] && exit 1
# parts names # parts names
@ -278,6 +291,12 @@ else
uuu fb: ucmd saveenv uuu fb: ucmd saveenv
fi fi
# Set the rootfstype if squashfs
if [ "${SQUASHFS}" = true ]; then
uuu fb: ucmd setenv rootfstype squashfs
uuu fb: ucmd saveenv
fi
# Reset the target # Reset the target
uuu fb: ucmd bootcount reset uuu fb: ucmd bootcount reset
uuu fb: acmd reset uuu fb: acmd reset

View File

@ -37,9 +37,6 @@ else
# We are booting from the NAND using 'recovery'. # We are booting from the NAND using 'recovery'.
setenv boot_initrd true setenv boot_initrd true
setenv initrd_file uramdisk-recovery.img setenv initrd_file uramdisk-recovery.img
else
# We are booting from the SD card.
setenv mmcroot /dev/mmcblk${mmcbootdev}p2
fi fi
setenv rootfsvol rootfs setenv rootfsvol rootfs
fi fi
@ -64,7 +61,11 @@ if test "${module_has_wifi}" = "1" && test -z "${disable_wifi}"; then
setenv overlays _ov_som_wifi_ccmp13.dtbo,${overlays} setenv overlays _ov_som_wifi_ccmp13.dtbo,${overlays}
fi fi
if test "${boot_device}" = "mmc"; then
dboot linux mmc
else
dboot linux nand ${mtdbootpart} dboot linux nand ${mtdbootpart}
fi

View File

@ -37,9 +37,6 @@ else
# We are booting from the NAND using 'recovery'. # We are booting from the NAND using 'recovery'.
setenv boot_initrd true setenv boot_initrd true
setenv initrd_file uramdisk-recovery.img setenv initrd_file uramdisk-recovery.img
else
# We are booting from the SD card.
setenv mmcroot /dev/mmcblk${mmcbootdev}p2
fi fi
setenv rootfsvol rootfs setenv rootfsvol rootfs
fi 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} setenv overlays _ov_board_v1_ccmp15-dvk.dtbo,${overlays}
fi fi
if test "${boot_device}" = "mmc"; then
dboot linux mmc
else
dboot linux nand ${mtdbootpart} dboot linux nand ${mtdbootpart}
fi

View File

@ -1,4 +1,4 @@
# Copyright (C) 2018-2021 Digi International # Copyright (C) 2018-2023 Digi International
require u-boot-dey.inc require u-boot-dey.inc

View File

@ -15,12 +15,14 @@ FSTYPES_WHITELIST = " \
recovery.ubifs \ recovery.ubifs \
recovery.vfat \ recovery.vfat \
ubifs \ ubifs \
squashfs \
" "
FSTYPES_WHITELIST:ccmp1 = " \ FSTYPES_WHITELIST:ccmp1 = " \
boot.ubifs \ boot.ubifs \
recovery.ubifs \ recovery.ubifs \
ubifs \ ubifs \
squashfs \
" "
HAS_USB_DRIVER = "false" HAS_USB_DRIVER = "false"

View File

@ -80,7 +80,7 @@ check_gen_pki_tree() {
copy_public_key() { copy_public_key() {
if [ "${DEY_SOC_VENDOR}" = "NXP" ]; then 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" 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 # 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 # generation and leaves them in the crts/ folder. However, the PKI tree may

View File

@ -77,3 +77,7 @@ PACKAGECONFIG:append:class-target:pn-qtbase = " examples"
PACKAGECONFIG:append:class-target:pn-qtdeclarative = " examples" PACKAGECONFIG:append:class-target:pn-qtdeclarative = " examples"
PACKAGECONFIG:append:class-target:pn-qtquick3d = " examples" PACKAGECONFIG:append:class-target:pn-qtquick3d = " examples"
PACKAGECONFIG:append:class-target:pn-qtwebengine = " 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"

View File

@ -173,7 +173,11 @@ update_emmc() {
echo "" echo ""
# Execute the update. # Execute the update.
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}" swupdate ${VERBOSE} -i "${UPDATE_FILE}" -e "${IMAGE_SET}"
fi
} }
update_nand() { update_nand() {

View File

@ -21,7 +21,7 @@ DEFAULT_SPI = 0,0
[PWM] [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 DEFAULT_PWM = 0,0
[ADC] [ADC]

View File

@ -27,4 +27,4 @@ DEFAULT_PWM = 4,0
[ADC] [ADC]
# ANA0 on GPIO board connector J41 (pin 4) # ANA0 on GPIO board connector J41 (pin 4)
DEFAULT_ADC = 1,0 DEFAULT_ADC = 2,0

View File

@ -2,6 +2,7 @@
type = "rdiff_image"; type = "rdiff_image";
filename = "@@SWUPDATE_RDIFF_ROOTFS_DELTA_FILE_NAME@@"; filename = "@@SWUPDATE_RDIFF_ROOTFS_DELTA_FILE_NAME@@";
device = "##DEV##"; device = "##DEV##";
sha256 = "$swupdate_get_sha256(@@SWUPDATE_RDIFF_ROOTFS_DELTA_FILE_NAME@@)";
properties: { properties: {
rdiffbase = ["/dev/rdiff_source_rootfs"]; rdiffbase = ["/dev/rdiff_source_rootfs"];
}; };

View File

@ -2,6 +2,7 @@
type = "ubivol_rdiff_image"; type = "ubivol_rdiff_image";
filename = "@@SWUPDATE_RDIFF_ROOTFS_DELTA_FILE_NAME@@"; filename = "@@SWUPDATE_RDIFF_ROOTFS_DELTA_FILE_NAME@@";
volume = "##DEV##"; volume = "##DEV##";
sha256 = "$swupdate_get_sha256(@@SWUPDATE_RDIFF_ROOTFS_DELTA_FILE_NAME@@)";
properties: { properties: {
rdiffbase = ["/dev/rdiff_source_rootfs"]; rdiffbase = ["/dev/rdiff_source_rootfs"];
rdiffnewsize = "$swupdate_get_size(@@DEPLOY_DIR_IMAGE@@/@@IMG_NAME@@-@@MACHINE@@.squashfs)"; rdiffnewsize = "$swupdate_get_size(@@DEPLOY_DIR_IMAGE@@/@@IMG_NAME@@-@@MACHINE@@.squashfs)";

View File

@ -11,6 +11,7 @@ software =
type = "archive"; type = "archive";
compressed = "zlib"; compressed = "zlib";
path = "/"; path = "/";
sha256 = "$swupdate_get_sha256(@@SWUPDATE_FILES_TARGZ_FILE_NAME@@)";
} }
); );
scripts: ( scripts: (
@ -37,6 +38,7 @@ software =
type = "archive"; type = "archive";
compressed = "zlib"; compressed = "zlib";
path = "/system/"; path = "/system/";
sha256 = "$swupdate_get_sha256(@@SWUPDATE_FILES_TARGZ_FILE_NAME@@)";
} }
); );
scripts: ( scripts: (

View File

@ -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_MTD is not set
# CONFIG_LUA 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_NONE is not set
# CONFIG_BOOTLOADER_EBG is not set
CONFIG_UBOOT=y 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_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_ARCHIVE=y
CONFIG_LOCALE=y
CONFIG_BOOTLOADERHANDLER=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_RAW=y
CONFIG_RDIFFHANDLER=y CONFIG_RDIFFHANDLER=y
# CONFIG_READBACKHANDLER is not set
# CONFIG_REMOTE_HANDLER is not set
CONFIG_SHELLSCRIPTHANDLER=y CONFIG_SHELLSCRIPTHANDLER=y
# CONFIG_SWUFORWARDER_HANDLER is not set
# CONFIG_UCFWHANDLER is not set
# CONFIG_UNIQUEUUID is not set