U-Boot uses partition names instead of partition indexes for the nand devices.
This commit syncs the boot scripts with the new dualboot variables.
https://onedigi.atlassian.net/browse/CC6UL-1254
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
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>
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>
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>
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>
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>
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
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>
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>
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
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>
Set the new variable 'rootfsvol' to rootfs_a or rootfs_b when dualboot is
enabled, to cover the case where the devices uses the 'system' partition
with different UBI volumes.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
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>
This command was already present on the script used for CC8X. Add it here
so the scripts are as much alike as possible.
Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
Fastboot is configured on boot with the current MMC configuration.
If we create a GPT partition table, we need to restart fastboot before we
try to program any partition with the 'flash' fastboot command.
Set 'fastboot_dev' to a different device, 'sata' for example an back to 'mmc'
to trigger a fastboot restart after creating the partition table on blank
devices.
Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
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>
We document how to use this script from the Yocto image directory. Now that the
*.ext4 files are compressed by default, the script needs to automatically
decompress said files before starting the update process.
https://onedigi.atlassian.net/browse/DEL-7582
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
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>
install_abort is a temp variable so 'test -n' doesn't work on it.
This was fixed in all scripts except the USB script of ccimx6sbc.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
- 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>
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>
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>
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-7385https://jira.digi.com/browse/DEL-7333
On these boot scripts, this variable is not used, so we can remove it.
Besides, it's generated by U-Boot code.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
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>
Non-graphical images (core-image-base, dey-image-aws) don't contain the
graphic-backend on their filenames.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
- Determine first the filenames and abort if any does not exist.
- Print a warning message about the erasing of the media with a list
of partitions and files to use for the update
- Sync the different scripts so they look more similar
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
https://jira.digi.com/browse/DEL-7333
Similar to how it's done on the ccimx6ul, create a function for updating
a partition with a file, that also prints a message.
Rename the function to be the same in all scripts.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
https://jira.digi.com/browse/DEL-7333
Previously, this script only allowed the U-Boot filename as parameter.
This commit makes use of getopts() to pass the following options to the
script:
-h, for help
-i, to pass the dey image name that prefixes the firmware filenames
-n, to skip the 10 seconds delay that allow you to cancel the process
-u, to pass the U-Boot filename
The default image name (if none passed) keeps being 'dey-image-qt' but the
new option allows reusing this script to install dey-image-webkit or
dey-image-aws images.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
https://jira.digi.com/browse/DEL-7385
This overlay added cooling devices for all quad cores.
On the latest BSP, the SoC device tree include contains all four
cooling devices and the newest U-Boot is able to delete the nodes
for non-existing cores, so there's no need for this overlay
anymore.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
When manually changing the partition table, it could happen that
a UBI volume already exists in the 'update' partition.
If not erased, the system may find the old UBI volume (with wrong
geometry information) and try to mount it which will result in
failure.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
On commit 1e5cafeb79 a fall-back
update command was introduced in case the newest command fails.
If the newest command succeeds, however, the 'test' command for
error doesn't match (there is no error) and the return code of
such test is "1". On the next check for errors, this results on
an error, when we really mean to continue because the first
command was successful.
Move the second error check inside the error path of the first
attempt.
Reported-by: Francisco Gil <francisco.gilmartinez@digi.com>
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
The 'source file system' was removed as an argument from the
'update' command in U-Boot v2020.04.
For platforms using such version, remove it from the update fw
scripts.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
https://jira.digi.com/browse/DUB-983
A similar change was done in the dey-3.0/maint branch for the uSD installation
scripts, but since USB scripts were added in dey-3.0/master, apply the same
to them as well.
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
CC8X SOMs code the RAM size on the OTP bits so this fall-back table
shouldn't be necessary, but update it with latest variants just
in case.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
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>
U-Boot v2020.04 for the CC6UL supports the fastboot protocol.
Create scripts to install DEY firmware via USB using uuu
tool.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
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>
Since this overlay is only used in the SBC Pro bootscript, have a separate
bootscript for the SBC Express.
https://jira.digi.com/browse/DEL-7276
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
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>
Follow the syntax:
_ov_<som|board>_<functionality>[_<hardware>].dts
where:
_ov_ identifies the file as an overlay.
som|board identifies whether the overlay applies to the SOM
or to the carrier board.
functionality identifies the function of the overlay.
hardware identifies the hardware to which the overlay
applies.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
Wrapping unterminated lines doesn't work for scripts (even
if they contain the backslash).
Substitute with full non-wrapped if/elif sentences.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
https://jira.digi.com/browse/DEL-7252
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>
With the previous solution we would need to generate
multiple overlays for each soc_type, so if we have a
new soc type (for example the solo), we would need
to generate 3 different overlays.
Signed-off-by: Francisco Gil Martinez <francisco.gilmartinez@digi.com>
Add running 'mmc partconf 0 1 1 1' command to the uuu scripts after
writing the new U-Boot into the internal eMMC.
This is required for blank eMMCs on CC8MN and CC8X SOMs where the
'update' command has never been run to be able to boot from eMMC.
Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
This update is a cosmetic one and removes the RAM frequency from the SCFW
filenames. Reflect this change in the RAM_CONFIGS variable and in the uSD/UUU
installation scripts.
As a result, the imx-boot filenames will no longer have the RAM frequency
either.
https://jira.digi.com/browse/DEL-7096
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
The scripts need to know the SOC's revision to be able to select the correct
imx-boot image. Modify the boot-artifacts bbclass so the renamed imx-boot files
are included in the installation .zip.
Also, bypass the SECO fw check in the uSD script so it can install future
versions that aren't recognized by U-Boot's SECO fw checking logic. The UUU
script doesn't require this bypass, since it doesn't use the Digi update
command to flash the bootloader.
https://jira.digi.com/browse/DEL-7069
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
With the device tree overlays mechanism in place, the bootscript
doesn't need to set the fdt_file variable. Instead, it will use
the value it has (which can be changed by the user) and it will
simply update the 'overlays' variable with the device tree
overlays that apply basing on the hardware capabilities found
on the HWID, SOM version, and carrier board version.
This allows a user to override the default fdt_file to point
to his custom device tree, but still make use of the boot script
for hardware-detected overlays.
Without the need to set the base filename, the boot script is the
same for any carrier board of the ccimx8x SOM, so this commit
moves it to a common folder.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
Each platform now has only one base device tree, meant for the i.MX8DX variants
of the ccimx8x boards. Apply the QXP overlay in the bootscript if the SOC is
identified as an i.MX8QXP.
Since we want to give this overlay a higher priority than the SOM overlays
(wifi and bluetooth), prepend it to the overlay list after appending the SOM
overlays.
https://jira.digi.com/browse/DEL-7100
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
Remove the old wb device trees from the ccimx8x-sbc-express and ccimx8x-sbc-pro
configuration files and add the ccimx8x wifi and bt overlays. Modify both
platforms' bootscripts to apply the overlays depending on board_id, hardware
capabilities or module variants.
https://jira.digi.com/browse/DEL-7100
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
The function that parsed the output for a U-Boot variable value
was receiving a multi-line output, with blank lines that were
not being properly processed.
Simplify the parsing by using 'sed' command.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
https://jira.digi.com/browse/DUB-951
Parse the hardware version from the HWID and load the overlay if and only if
the revision is "1". Also, update the board's device tree list accordingly.
https://jira.digi.com/browse/DEL-7070
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
Instead of having two separate device trees for the non-wireless and wireless
variants of the ccimx8mn, use the non-wireless .dtb as a base and apply the
overlays in the bootscript depending on the variant's capabilities.
Also, update the board's device tree list accordingly.
https://jira.digi.com/browse/DEL-2609
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
This commit adds a installation script that uses fastboot support to
update the target firmware.
Signed-off-by: Mike Engel <Mike.Engel@digi.com>
https://jira.digi.com/browse/DEL-6845
Wrapped lines must have a back-slash symbol so that U-Boot
doesn't interpret them as finished.
The missing symbol resulted in the script not being able to
determine the U-Boot image to program in some cases.
Reported-by: Leonid Makhnovskiy <leonid.makhnovskiy@digi.com>
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
https://jira.digi.com/browse/DEL-6953
The 'soc_type' variable was already set by fastboot to "imx8qxp"
so the U-Boot board code that was setting this to just "8qxp" has
been changed to set it to "imx8qxp".
Update the scripts accordingly.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
https://jira.digi.com/browse/DUB-901
This commit fixes two issues:
- Comparison clause uses only one equal sign
- Fix soc_type for Dual variants because the supported soc types
for the imx8 processor are: 8qm, 8qxp, and 8dx
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
After the recent changes to generate the bootable artifacts, these are
now formed using the ${MACHINE} variable rather than the string in
${UBOOT_CONFIG} array, so the underscores must be changed with dashes.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
Now the U-Boot binaries contain the RAM frequency and bus width, not just
only the RAM size.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
https://jira.digi.com/browse/DEL-6641
With the arrival of DualX variants, the device tree files have been renamed
to contain the SOC type (8qxp, or 8dx). This is determined by a new U-Boot
variable 'soc_type'.
Default to "8qxp" if the variable is not defined (old U-Boots).
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
https://jira.digi.com/browse/DEL-6641
The new HWID fields make U-Boot create new variable 'module_ram'.
If it exists use it to select the U-Boot file to use during
firmware update. If not, fall back to old method of using the
variant code and the hard-coded table of variants.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
https://jira.digi.com/browse/DEL-6598
The new HWID fields make U-Boot create new variable 'module_ram'.
If it exists calculate new HWID fields to check if the SOM has
Wi-Fi, Bluetooth, etc. in order to select the device tree file.
If not, fall back to old method of using the variant code and
the hard-coded table of variants.
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
https://jira.digi.com/browse/DEL-6598
This variant is exactly the same as variant 0x02, but with a new revision
of the i.MX6UL silicon.
https://jira.digi.com/browse/DEL-6555
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
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>
We have seen errors when verifying the rootfs update on 2 GiB variants. Forcing
otf-update prevents these errors from happening.
https://jira.digi.com/browse/DUB-855
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
Also, make the script recognize the different SOM variants.
https://jira.digi.com/browse/DEL-6175
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
U-Boot's 'dboot' command now supports uncompressing Image.gz.
This will be the default kernel image type for the CC8X.
This also changes the names of the device tree artifacts, that must be
updated on the boot script. While on it, add support for all the SOM
variants (wireless and non-wireless).
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
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