Commit Graph

50 Commits

Author SHA1 Message Date
Hector Palacios 1e726ebcf5 installer media: use INSTALL_MEDIA variable value, not name
At the point of saving the bootcmd for the second stage of the install
process we want to use the variable value, not the variable name
since this variable doesn't exist after the environment is reset.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-9711
2025-07-07 07:27:17 +02:00
Hector Palacios 41810d5c17 installers: add missing ##SIGNED## placeholder to uboot filenames
This gets substituted when TrustFence is enabled to "signed/encrypted"
or removed when TrustFence is disabled.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-07-02 21:17:24 +02:00
Hector Palacios 9672b2a80a installer: uuu: prevent installing encrypted uboot on open device
Programming an encrypted bootloader can only be done after the
secure keys have been programed on the OTP bits, and the device
has been closed. Programming on an open device would result in a
non-secure configuration or a non-bootable device after the
close operation.

Create functions to detect the current TrustFence status and exit
the install script if the device is open and the artifacts are
encrypted.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-9699
2025-07-02 21:17:24 +02:00
Hector Palacios 01107a1d87 uuu installer: remove -t option and determine by filename
The `-t` option to program images with TrustFence didn't make
much sense because the install script is dynamically generated
at build-time with the name of the boot artifacts containing
"signed/encrypted" on their filenames.

This commit:
 - Removes `-t` option to simplify the script.
 - Determines if programming a signed/encrypted bootloader by
   looking at the bootloader filename.
 - For NXP platforms, reworks the function that updates the
   bootloader to properly program only-signed bootloaders (currently
   wrongly using `trustfence update`)

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-07-02 21:17:24 +02:00
Hector Palacios ac69566ecd installer: merge USB/SD installers into a single template
The USB and SD installers are U-Boot scripts that are practically
identical.
Merge them into a single template with a couple of machine variables that
determine the default device index in U-Boot for the USB or the microSD
card.

Do dynamic substitutions to create the two installers out of the template.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-06-12 10:56:57 +02:00
Hector Palacios 5156fe26b3 installers: use if/elif/else to determine rootfs filename
The installer uses the regular rootfs filename or falls back to search
for a squashfs (read-only) rootfs image.
The UUU installers of eMMC-based platforms use an if/elif/else structure
to determine which file exist (in order of preference). Replicate this
structure on the rest of platforms and installers.
This avoids printing an error message if the default rootfs does not exist
but the read-only one does.
Also, reset 'rootfstype' variable if the default rootfs file exists, which
allows to install regular images over a previous read-only system.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-06-12 10:56:57 +02:00
Francisco Gil 96e1e8351d installers: escape quotes in assignment of variable
Assignment of variable 'force_erase' was done without escaping quotes
which led to wrong assignment and the script not forcing the erasure of
NAND partitions.

While on it, remove it from ccmp1 scripts where its use makes no sense
as the 'ubivolscript' script takes care of erasing the partitions.


Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2025-03-05 16:57:31 +01:00
Gabriel Valcazar 8fad761961 ccimx6ul: install_linux_fw_uuu.sh: increase timeouts to account for large NANDs
When running the installation script on variants with larger NANDs, two of the
script's commands take longer than our intended timeouts under specific
circumstances:

    * When the variant has a NAND with 512 MiB or more and singlemtdsys is set
      to "yes", running ubivolscipt takes longer than our 10 second timeout.
      The larger the NAND storage size, the longer this command takes.
    * When the variant has a 1 GiB NAND, singlemtdsys is set to "yes" and
      dualboot is set to "no", the update of the recovery UBI volume takes
      longer than our 15 second timeout.

In both of these cases, the script fails and the installation process cannot
continue. Apply the following changes to prevent this:

    * Increase the ubivolscript timeout from 10 seconds to 30
    * Increase the recovery update timeout from 15 seconds to 20

Also, remove the command immediately before ubivolscript is run, since said
command is already being run at the beginning of ubivolscript.

https://onedigi.atlassian.net/browse/DEL-9097

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-06-27 17:48:10 +02:00
Francisco Gil 7e493b74ae install script: enable trustfence if -k is selected
Also use the name DEK_FILE for all the files.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2024-06-18 11:56:44 +02:00
Francisco Gil 828f5da09b install script: allow -k parameter to be used without arguments
There is a corner case that wasn't cover by the script, if you
use the script using a -k -t the "-t" would be the name of the
dek.bin.

This new implementation solves the issue.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2024-06-18 11:56:44 +02:00
Francisco Gil d86648f791 install scripts: capitalize F from TrustFence
Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2024-06-18 11:56:44 +02:00
Francisco Gil 0a5274e06f firmware installation scripts: correct usage of u-boot variables
Some variables in the script belong to u-boot, not to the shell
running the script. Escape those variables so the shell does not
expand them.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2024-06-18 11:56:44 +02:00
Mike Engel a8f5951578 u-boot-dey: add support to installation script for Trustfence
This commit adds support to installation script for Trustfence
artifacts.

https://onedigi.atlassian.net/browse/DEL-8271

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2024-02-19 15:51:24 +01:00
Isaac Hermida 81d0ce168f u-boot-dey: installation scripts: minor fixes
Some minor fixes:
* return error code if installation fails
* cosmetic: update comment with options
* just exit after error and do not execute boolimit command

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2024-02-19 09:04:36 +01:00
Isaac Hermida 4a057144ee u-boot-dey: installation scripts: do not check recovery image for dual systems
Recovery image is not required for dual systems, so do not check it.

https://onedigi.atlassian.net/browse/DEL-8859

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2024-02-19 09:04:36 +01:00
Isaac Hermida 4372eaba01 u-boot-dey: unify installation scripts
https://onedigi.atlassian.net/browse/DEL-8860

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2024-02-19 09:04:36 +01:00
Gabriel Valcazar 71940ead08 install_linux_fw_[sd/usb]: add missing comment character '#' to avoid an error
An additional line was added to a comment block without the '#' character,
resulting in the following error when running the script:

Unknown command '-' - try 'help'

Nonetheless, this error is harmless and the script continues as expected, which
is the reason why we hadn't found it until now.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-01-25 18:37:42 +01:00
Isaac Hermida 75bd0d887b install_linux_fw_uuu: do not assing a default U-Boot file for 0x00 variants
In case a HWID is not set or the variant is unknown, do not set it to a default
U-Boot file but ask the user for the proper file.
This case should not happen, but cover it for safety.

https://onedigi.atlassian.net/browse/DEL-8855

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2024-01-25 12:15:51 +01:00
Hector Palacios bb36b04777 install_linux_fw: enable bootcount by setting bootlimit if dualboot enabled
Use the intention of installing dual boot firmware as a condition to set
bootlimit=3 so that the bootcount mechanism is enabled.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DUB-1058
2023-10-20 10:48:07 +02:00
Hector Palacios 961acf48de install_linux_fw: reset bootcount before resetting target
During firmware install, the target may be reset several times.
We don't want the bootcount to count these as boot attempts.

This was done in a791bb4463 for the ccmp1
but not for the rest of platforms.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-10-20 10:48:07 +02:00
Hector Palacios fb349b10f7 install_fw: [cosmetic] alphabetize script options
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-10-20 10:48:07 +02:00
Francisco Gil 1e513f89a7 installer: squashfs: add fallback option to flash squashfs images
If the default r/w rootfs is not found it will try to do a
fallback to the squashfs image.

In the nand devices additionally we need to set the rootfstype
to squashfs.

https://onedigi.atlassian.net/browse/DEL-8638

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2023-09-11 08:48:57 +02:00
David Escalona 3c9384a99c u-boot-dey: altboot: remove the 'altboot' script for all platforms
All the 'altboot' script functionality has been moved directly to the 'altbootcmd' command
in U-Boot, so this script is no longer necessary. Remove it for all platforms.

https://onedigi.atlassian.net/browse/DEL-8674

Signed-off-by: David Escalona <david.escalona@digi.com>
2023-09-04 14:17:16 +02:00
Hector Palacios 39fadff26a install_linux_fw_sd/usb: add helper msg to set image-name
The install scripts from SD/USB use a fixed image name.
If you are trying to install a different image you need to set
the env variable 'image-name' first.
Add a helper message if default files are not found to
avoid needing to go to the documentation.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-09-01 17:17:04 +02:00
David Escalona 88f74279b1 recipes-bsp: u-boot: boot-scripts: update boot scripts to use new 'bootcount' mechanism
The 'bootcount' value is now incremented and stored in the system on every boot and
not only then the 'upgrade_available' flag is set. Also, ensure the value is cleared
when the 'altboot' script is executed by running the new U-Boot command 'bootcount reset'.

https://onedigi.atlassian.net/browse/DEL-8506

Signed-off-by: David Escalona <david.escalona@digi.com>
2023-08-29 09:48:04 +02:00
Tatiana Leon 8718734b46 ccimx6: ccimx6ul: ccimx8m: ccimx8x: ccimx93: install: only install system A by default, add an option to install B
https://onedigi.atlassian.net/browse/DEL-8232

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-04-18 17:49:03 +02:00
Gonzalo Ruiz 44a05a819e u-boot-dey: fix install scripts for dual boot
The first time the 'dualboot' variable is tested it is directly run in
the script and doesn't need to escape the special characters.

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2022-11-10 14:09:25 +01:00
Hector Palacios 1105a8fecd dualboot: move contents of meta-digi-dualboot layer into meta-digi as a class
- create dualboot.bbclass that
  - sets DUALBOOT_ENABLED variable
  - defines partition names and function for changing the sw-description
    for swupdate
- move files from layer into meta-digi

https://onedigi.atlassian.net/browse/DEL-7962

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2022-10-26 11:29:23 +02:00
Javier Viguera 69f4956f7a u-boot: cc6ul: install script: increase rootfs programming timeout
For the CC6UL 1GB flash variant, the programming of the rootfs exceeds
the current 90 secs timeout, giving following failure:

[Bulk(R):LIBUSB_ERROR_TIMEOUT] fb[-t 90000]: ucmd update rootfs ram ${fastboot_buffer} ${fastboot_bytes} -e
Error: Bulk(R):LIBUSB_ERROR_TIMEOUT

Increase the timeout to prevent the failure.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-09-05 18:22:21 +02:00
Javier Viguera 33f881806a uboot: install scripts: fix u-boot image for variants 0x09 and 0x0a
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
(cherry picked from commit 16eded4f0edcc603de83be7155f7c09718ba5ddd)
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-06-21 16:56:27 +02:00
Francisco Gil a96fc150bf u-boot-dey: missing ";" in installation scripts for cc6ul
Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2021-12-02 17:14:58 +01:00
Hector Palacios 75fca73cc5 u-boot: cc6ul: fix script adding missing call to 'uuu'
Add missing call to 'uuu' and erase the partition before creating
the UBI volumes.

Also add larger timeouts to erase operations.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-11-11 13:32:16 +01:00
Hector Palacios 9ac3bd46ca uboot: install-uuu: restore variables on bootcmd after 'env default -a'
The variable 'dualboot' (and 'singlemtdsys' for CC6UL) was restored
after the bootcmd that runs the first time after programming U-Boot runs
fastboot again to resume the script.
This is ok for the CC6UL but not for the rest of platforms, that run the
partition script on the bootcmd, *before* running fastboot.

Restore the variables for all platforms in the bootcmd right after
resetting the environment.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-10-14 13:35:46 +02:00
Gonzalo Ruiz 825dd6a555 install_linux_fw_uuu: remove redirection in every case
Ensure stdout redirection to the USB interface is removed in every case.
Otherwise, it would be left redirected when INSTALL_UBOOT_FILENAME is
manually set.

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2021-09-30 10:36:40 +02:00
Gonzalo Ruiz 2e375b2e3f u-boot-dey: [cosmetic] change permissions for install_linux_fw_uuu.sh
Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2021-09-29 18:52:29 +02:00
Hector Palacios cc2df395c5 uboot: ccimx6ul: rename variable for single MTD system partition
Rename from 'ubisysvols' to 'singlemtdsys'.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-09-29 13:44:50 +02:00
Hector Palacios fa3028a17e uboot: install sd/usb: convert double condition in a simpler single condition
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-09-29 13:44:50 +02:00
Hector Palacios f3ae964d10 uboot: cc6ul: force erase of partitions before update on install scripts
Install scripts may rework the partition table basing on the value of
env variables. Information of UBI volumes may remain on the NAND that
could later not correspond to the new partition table.
Make sure the MTD partitions are erased prior to updating:
- For Multi-MTD, append '-e' option to the update command.
- For Single-MTD, erase the system partition.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-09-29 13:44:50 +02:00
Hector Palacios f647e6d442 uboot: add dualboot support to fw install script from SD/USB
Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-7649
2021-09-24 09:42:59 +02:00
Hector Palacios dae2b5000a uboot: add dualboot support to uuu firmware install script
Check the status of 'dualboot' env variable.
If set to "yes", use the dualboot partition table in the script and
restore the variable (default is "no") after resetting the environment.
Also, for dualboot, there's no need to wipe the recovery partition or
boot into recovery mode.

For dualboot, this script programs both systems A and B with the same
images.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-7649
2021-09-24 09:42:50 +02:00
Hector Palacios 27c13055eb uboot: ccimx6ul: decide on using UBI vols basing on ubisysvols
The script required the passing of option '-b' for setting up the
target to use a single MTD partition and multiple UBI volumes.
If a target however already has the variable 'ubisysvols' set to
'yes' but this parameter is forgotten when calling the script, the
partition layout would change to default (several MTD partitions).

Remove the recently added '-b' option and make the script decide
basing on the current value of 'ubisysvols' variable.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-09-09 17:38:44 +02:00
Hector Palacios 13df57c1fc ccimx6ul: add support for ubisysvols on SD/USB install scripts
The script preserves the current value of env variable 'ubisysvols'
so that the new partition script generates the appropriate partition
table before proceeding with the update operations.
If using a UBI volumes layout, the script will not erase the partitions.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-7614
2021-09-09 17:38:44 +02:00
Hector Palacios e380377310 uboot: exit on error on uuu install script
Exit on error to prevent continuation of programming when
there was an issue.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-09-09 17:38:44 +02:00
Hector Palacios f46851e245 uboot: ccimx6ul: add ubisysvols support to uuu install script
With U-Boot supporting the creation of mtdparts and UBI volumes depending
on the value of variable 'ubisysvols', adapt the install script to make
use of those to generate a partition table and UBI volumes accordingly.
This can be triggered with new option '-b'.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-09-09 17:38:44 +02:00
Gabriel Valcazar 7d3c5bcccf u-boot-dey: install-uuu: fix bash-ism in condition that checks the variant
The current syntax only works properly when running the script through bash.
Change this so that it works for other shells as well.

While at it, fix a typo in the message that appears when the variant can't be
detected in the 6UL script.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-07-05 14:34:06 +02:00
Hector Palacios 4838aa4849 u-boot-dey: fix typo on script name of help text
Reported-by: Hector Bujanda <hector.bujanda@digi.com>
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-06-28 09:50:46 +02:00
Hector Palacios 3096af0069 u-boot-dey: install-uuu: fix when U-Boot cannot be determined
The install script of cc8x had errors (using double '==' instead
of single on comparisions).
Besides fixing this typo, this commit changes the logic to:
- default to 2GB U-Boot for variants other than the ones in the
  list.
- consider variant code 0x00 (not programmed HWID) as a failure.
  thus forcing the user to specify the file on the command line.

This second action is done also on the cc6ul script.

Reported-by: Hector Bujanda <hector.bujanda@digi.com>
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-06-25 13:24:45 +02:00
Hector Palacios ec0341358a u-boot-dey: fix closing quotes on U-Boot install scripts
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-06-15 11:24:25 +02:00
Hector Palacios a61873f7f1 u-boot-dey: improvements to microSD and USB install scripts
- Check the existence of files before the 10 second wait.
- Print the list of filenames to program to each partition.
- Print the file that's being updated to each partition.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-06-02 11:01:37 +02:00
Hector Palacios 9f3ab7c9d9 u-boot-dey: group identical files per SOM or SOM family
With the generalization done in previous commits, we have now several files
that are identical and can be merged into a common SOM or SOM family
folder.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-06-02 11:01:37 +02:00