Commit Graph

47 Commits

Author SHA1 Message Date
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
Gabriel Valcazar e0be8c3a1f ccimx6qpsbc: add missing "if" condition terminator in UUU install script
One of the conditions used to determine the U-Boot file was missing its
terminator, breaking the script.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
(cherry picked from commit 26dc437a25)
2024-06-26 12:16:22 +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 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
Francisco Gil ecad5dba32 uuu: fix incorrect command for trustfence update from uuu
The command trustfence update doesn't require the partition argument.

Besides of that, remove extra fi on the cc8m platforms.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2024-06-04 08:45:25 +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 26dc437a25 ccimx6qpsbc: add missing "if" condition terminator in UUU install script
One of the conditions used to determine the U-Boot file was missing its
terminator, breaking the script.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-01-29 17:05:26 +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
Hector Palacios 918a9caf1d boot scripts: print boot attempts only when bootcount mechanism active
Improve boot attempts message showing not only the current boot attempt
but also the limit:
	(boot attempt 1/3)

Print the message only when the bootcount mechanism is active, i.e. when
the bootlimit is defined (not zero), and when bootcount is > 0.

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

https://onedigi.atlassian.net/browse/DUB-1056
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 910ee4ab44 u-boot-dey: boot: update all boot scripts to synchronize boot variables for dualboot systems
Until now, for dualboot systems, all boot variables were calculated on each boot depending on the value of the
'active_system'. These variables are used to boot the device but were not saved, which could lead to a missmatch
between their value in the environment and their required values to correctly boot the system. This commit
simplifies a bit the variables calculation and adds a block to synchronize their value in the environment.

Signed-off-by: David Escalona <david.escalona@digi.com>
2023-09-04 18:23:58 +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
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
Javier Viguera aab5eda5c2 meta-digi-arm: add kernel parameter for single boot logo
Number of bootup logos is now configured using fbcon=logo-count parameter,
so use it instead of our deprecated custom code in the kernel.

For backwards compatibility, we add this parameter in the u-boot boot
script for all platforms but the ccimx93, where this is directly handled
by u-boot (v2022.04).

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-01-23 17:33:31 +01: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 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
Hector Palacios 3ab0340741 u-boot: print what system is booting after update
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-10-11 11:36:00 +02:00
Francisco Gil e67ed06dd5 dualboot: move the logic of fallback boot to altbootcmd
U-Boot has embedded support to handle bootcount tries.
When the limit of tries is reached, U-Boot runs the script
in `altbootcmd` rather than the usual `bootcmd`.
This other script resides on meta-digi-dualboot layer.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2021-10-08 12:59:30 +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 555be511a6 u-boot-dey: customize install_linux_fw_uuu script for ccimx6/ccimx6qp
Also, set UBOOT_HAS_FASTBOOT = "true" for these platforms.

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2021-09-30 10:32:17 +02:00
Gonzalo Ruiz 1166981fa1 u-boot-dey: add install_linux_fw_uuu.sh for ccimx6/ccimx6qp
Add initially as a copy of the script used on the ccimx8x platform.

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2021-09-29 18:52:29 +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 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 05d21a1310 u-boot: boot.txt: move dualboot checks to the top
When DualBoot mechanism is enabled and an update is pending,
the boot script needs to change certain variables and save the
environment.
The regular boot script already changes a number of variables,
such as 'extra_bootargs' and 'overlays' by appending strings to
the already existing values. Saving the envionment may make these
grow endlessly with each iteration of the boot script.

For this reason, move the DualBoot check as the first thing in
the script, save the environment if needed, and then continue
with the normal flow, that changes variables before booting
but doesn't save them.

On certain scripts, this allows us to get rid of some instructions
for resetting the overlays variable.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-09-09 17:38:44 +02:00
Hector Palacios f00ce5ca9b u-boot-dey: add support for dualboot to boot scripts
The support for dualboot was integrated on meta-digi-dualboot layer, but it
really depends only on environment variable 'dualboot' so we'd better
integrate the support on the scripts in meta-digi, to avoid synchonization
problems between both layers.
This also allows to be able to easily enable dualboot in U-Boot with the
variable, without needing to update the script on the linux partition.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-09-09 17:38:44 +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 96bc57c7f0 u-boot-dey: use global variables to generalize install scripts
Create global variables:
  DEFAULT_IMAGE_NAME
  GRAPHICAL_IMAGES

to have them substituted on the U-Boot install scripts for better
generalization.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-06-02 11:01:37 +02:00
Hector Palacios c2c3cfb7cd u-boot-dey: use new variable 'image-name' to compose filenames in scripts
U-Boot install scripts (from uSD and USB) were hard-coded to dey-image-qt.
Allow to install other image files by setting a new variable 'image-name'
which defaults to 'dey-image-qt' if not defined, except for the CC6UL
SBC Express, that defaults to 'core-image-base'.

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

https://jira.digi.com/browse/DEL-7385
https://jira.digi.com/browse/DEL-7333
2021-06-02 11:01:37 +02:00
Hector Palacios a7d0ba8b38 u-boot-dey: remove hard-coded platform name from scripts
Use ##MACHINE## placeholder to have it later substituted by the recipe
using Yocto ${MACHINE} variable.
This will help later reducing the number of files to have one per SOM
(or even family) instead of one per platform.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-06-02 11:01:37 +02:00
Arturo Buzarra 8b3b8b5516 uboot: add script to update firmware from a USB stick
Create scripts to install DEY firmware using a USB stick.

https://jira.digi.com/browse/DEL-6802

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2020-12-03 15:46:22 +01:00
Gabriel Valcazar d7d8c7aa56 ccimx6qpsbc: add support for variants 0x02 and 0x03
Build the U-Boot for variants with 1GB of memory and make the installation and
boot scripts recognize all of the current variants.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2020-10-21 14:56:15 +02:00
Hector Palacios 2ade93d8eb u-boot-dey: restore modified env vars in case of error on bootscript
The boot script appends values to certain variables such as
$extra_bootargs and $overlays.

If the final instruction of the boot script (dboot command)
fails, these variables contain the new values, plus the original
one. Since the user recovers the prompt, he may do a 'saveenv'
to save the environment, and the modified variables will be
saved, only to be enlarged again on the next boot.
This can lead to repeated strings on such variables.

Save the original value and restore it in case of failure on
the dboot command.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2020-10-01 16:13:46 +02:00
Gabriel Valcazar 66471fd0c2 ccimx6qpsbc: bootscript: hardcode imx6qp soc_family for all SOC variants
In the ccimx6sbc, since each SOC has a separate set of device trees, we can use
the soc_family environment variable when generating the name of the final
device tree in the bootscript. However, for the ccimx6qpsbc, there is only one
set of device trees with the "imx6qp" prefix, even though there are SOC
variants such as the imx6dp. Running the bootscript on a ccimx6qpsbc with an
imx6dp SOC assembled will result in a failure, since it will look for a
non-existing device tree starting with a "imx6dp" prefix.

Stop using the soc_family variable and hardcode "imx6qp" instead.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2020-09-25 10:23:45 +02:00
Arturo Buzarra 616e2059d3 meta-digi-arm: uboot: Add kernel parameter to center custom logo
https://jira.digi.com/browse/DUB-948

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2020-06-04 08:33:51 +02:00
Arturo Buzarra e508231683 thud migration: u-boot: remove kernel image type from device tree files
Device tree file names won't have the kernel image type like a
prefix anymore, since thud uses the original file names.

https://jira.digi.com/browse/DEL-6443

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-02-08 12:13:11 +01:00
Hector Palacios 8af8817796 u-boot: add support for U-Boot v2017.03
This adds support for U-Boot v2017.03 for all platforms (including CC8X).

For legacy v2015.04:
  - Renames u-boot.inc as a versioned file only for v2015.04.
  - Moves boot/install scripts from versioned folder into non-versioned
    folder (since the scripts remain the same between versions).

For new v2017.03:
  - Re-uses poky's u-boot.inc in rocko for v2017.03
  - DEY recipe re-writes the do_compile for special U-Boot configuration
    required for TrustFence.
  - DEY recipe appends the do_deploy, for U-Boot scripts and deploy of
    special TrustFence artifacts.
  - Adds u-boot-dtb.xxx to UBOOT_CONFIG, required for new U-Boots.
  - Adds CC8X scripts.

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

https://jira.digi.com/browse/DEL-5936
2018-05-31 12:06:37 +02:00