Commit Graph

472 Commits

Author SHA1 Message Date
Mike Engel 269d80105d recovery-utils: add preprocessor flag to change recovery tool usage help
This commit adds a compiler flag to remove certain options from the
recovery-utils, because some features rely on functionality that is
not supported by the CCMP1 platforms.

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

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2024-09-04 11:34:40 +02:00
Mike Engel 11426fcb5b recovery: add initramfs into FIT recovery image
This commit adds the initramfs into the FIT recovery
image. If the RAM disk image is included in the FIT
image we need to create a initramfs file that doesn't
include the u-boot header, because the FIT descriptor
contains all the necessary information to use the
initramfs file.

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

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2024-09-04 11:34:40 +02:00
Arturo Buzarra 1d29e40d23 meta-digi: integrate ConnectCore MP25 DVK platform on common recipes
Add initial support on common DEY recipes for ConnectCore MP25 DVK platform.

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

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2024-07-22 17:12:33 +02:00
Hector Palacios 22238772ee Merge tag 'dey-4.0-r6.1' into dey-4.0/master
Digi Embedded Yocto 4.0-r6.1

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2024-07-19 13:35:27 +02:00
Mike Engel d11b291f9a meta-digi: add new CCMX91 platform into DEY
This commits adds the CCMX91 platform to the DEY
build system. Furthermore, it creates generic ccimx9
support to be used for the CCiMX91 and CCiMX93
platform.

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

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2024-07-19 07:32:00 +02:00
Isaac Hermida 0c642ed7ec Update Digi Copyright header
Standarize the Copyright header according to company policy.

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2024-07-15 09:28:58 +02:00
Gabriel Valcazar 85e59417a3 recovery: prevent partition encryption when singlemtdsys is enabled
In legacy NAND platforms like the ccimx6ul, it's possible to use a single-MTD
configuration with dualboot disabled, which allows access to the functionality
provided by the recovery partition. However, the partition encryption feature
requires a multi-MTD configuation, so said feature shouldn't be accessible in
this case.

Prevent access to partition encryption in a single-MTD system by:

    * Adding the "system" partition to the partition blacklist in both the
      recovery-utils library and the recovery initscript.
    * Checking the "singlemtdsys" environment variable before using any
      functionality related to partition encryption.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-07-01 13:27:38 +02:00
Gabriel Valcazar 5695cf15db recovery-initramfs-init: fix "update" volume wipe when singlemtdsys is enabled
Currently, when wiping the update volume via the recovery partition on a
ccimx6ul with singlemtdsys enabled, the procedure fails with this error:

    [RECOVERY] Starting recovery...
    [RECOVERY] Wipe 'update' partition requested
    [RECOVERY] Formatting 'update' ubi volume
    ubi0 error: ubi_open_volume.part.0: cannot open device 0, volume 3, error -16
    ubiupdatevol: error!: cannot open "/dev/ubi0_3"
                  error 16 (Device or resource busy)

This is because the logic used to unmount a volume before formatting it is
expecting this entry format when running "mount":

    ubi0:update on /mnt/update type ubifs

While this is the format of the "mount" output in userspace for the rootfs
volume, other trivial volumes have this format instead:

    ubi0_3 on /mnt/update type ubifs

Adapt the logic to this format so that the "update" volume wipe procedure can
take place.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-06-28 13:07:11 +02:00
Mike Engel 8a2a1beb08 fscrypt: include trustfence-fscrypt tool into rootfs
Add also 'e2fsprogs-tune2fs' to the image, as busybox's version of
tune2fs command does not support setting the "encrypt" feature of the
EXT4 filesystem.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-06-27 15:39:49 +02:00
Mike Engel 932c186225 packagegroups: add packages related to RT
This commit adds real time test tools to the system.

The hwlatedetct is a program that controls the kernel
hardware latency detector module. This is used to detect
large system latencies independent of Linux itself.

The rt-tests package is a test suite that includes the cyclictest
tool to measure the difference between a thread's intended
wake-up time and the time at which it actually wakes up.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2024-04-29 16:13:49 +02:00
Arturo Buzarra 6b5b341a38 psplash: fix bbappend for different distro than "dey"
This commit fixes a build issue using meta-digi layer with a different distro
than "dey". Also simplified the bbappend to avoid creating a custom
do_patch_png() task before do_configure().

Reported-by: Stephan Klatt <skladd@users.noreply.github.com>
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2024-02-23 14:27:01 +01:00
Hector Palacios ff22903a81 cc93: standby-actions: rework the programming of resume actions
There are some cases in which the loading of the Wi-Fi modules may be
problematic due to timing conditions:
- when a suspend operation in progress is aborted
- when Bluetooth is disabled

The Wi-Fi needs some time for the system to be ready before loading the
modules.

This commit:
- Stops the Bluetooth before bringing down the Wi-Fi on suspend
- Starts the Bluetooth (or adds a small delay) before bringing up the
  Wi-Fi on resume
- Reworks the way the resume operations are programmed, to do them in
  reverse order (first load the Wi-Fi modules, then bring the interfaces
  up (if required). It does so by appending/prepending actions into a
  variable and dumping the contents finally to a temp file.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2024-01-25 13:57:16 +01:00
Gabriel Valcazar 568d142b11 ccimx6ul: remove "-x11" suffix from dey-image-lvgl image name
The ccimx6ul is the only platform that doesn't include a desktop backend in the
LVGL image, so remove the desktop backend suffix from the image's name. This
affects the image name itself, the corresponding SWU package and the
installation scripts.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-01-25 09:30:13 +01:00
Arturo Buzarra a1a176f091 dey-image-lvgl: remove x11 graphical support for ccimx6ul platform
LVGL graphical library has support for different backends, in the case of the
ccimx6ul we use the fbdev directly, so we don't need the x11 support.
This commit removes x11 support for the ccimx6ul platform for the
dey-image-lvgl image.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2024-01-24 17:12:31 +01:00
Isaac Hermida efb80f3806 cc93: standby: decople bluetooth from WiFi actions
Do not make conditional the bluetooth actions on WiFi, as they can be
treated independently.

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2024-01-17 10:51:28 +01:00
Hector Palacios bf1eeabbf5 cc93: standby: add a small delay before resuming Wi-Fi
When switching off the 3.3V supply from the Wi-Fi during suspend,
around a 10% of the times, when resuming the Wi-Fi driver fails to load.

It was verified that a rebind operation over the mmc interface (which
eventually calls the script that loads the Wi-Fi module) makes it
load successfully, which denotes a timing issue during resume.

Adding a small delay on the resume operation before running the script
makes the Wi-Fi driver load at the first try.

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

https://onedigi.atlassian.net/browse/DEL-8821
2024-01-10 13:15:12 +01:00
Gabriel Valcazar 214acb335d trustfence-initramfs: remove openssl-ossl-module-legacy
We removed this package from the recovery initramfs, but it was getting added
as a recommendation to the trustfence initramfs as well.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-01-05 14:24:17 +01:00
Gabriel Valcazar 82a96801de Remove "wipe" from recovery and trustfence initramfs
This package is purely vestigial and hasn't been used at all in any of our
initramfs images for over 7 years. It was used in the first implementation
of the trustfence initramfs (commit 4dd7d438af)
to securely erase the key used by cryptsetup, but two weeks later, that logic
was moved to trustfence-tool (commit a8c50c16ea)
and "wipe" was no longer needed. However, the package remained in the
dependencies of the trustfence initramfs, which were then used as reference for
the recovery initramfs, even though this initramfs didn't even need "wipe" to
begin with.

Removing this package saves 30.8 KiB in the ccimx6ul recovery image.

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

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-01-04 11:24:20 +01:00
Gabriel Valcazar a0309c2a39 recovery-initramfs: remove openssl-ossl-module-legacy from recovery image
This is added as a recommendation for libcrypto and only contains legacy
ciphers which are deemed outdated or unsafe. If any of the packages in the
image actually required this module, they would depend on it explicitly, but
this isn't the case. This saves 66.8 KiB on the ccimx6ul recovery image.

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

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-01-04 11:24:20 +01:00
Gabriel Valcazar 32e46e4f9b swupdate: change runtime config file suffix to avoid build-time config errors
We were using the .cfg suffix for both the build-time config fragments and the
runtime configuration file. During do_configure(), all files in SRC_URI ending
in .cfg were being merged together to create the final build configuration,
including said runtime file, which has a completely different syntax. In most
cases, the contents of this file were being ignored, but when tweaking
swupdate's configuration and re-building the package, sometimes strange errors
would prevent the build from finishing.

Change the runtime file's suffix entirely to separate it from the config
fragments and prevent it from being treated as such, and reflect the name
change in the defconfig and the recovery script.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-01-02 11:14:23 +01:00
Gabriel Valcazar 90afd7025c recovery-initramfs: fix multi-MTD detection when formatting NAND partitions
Commit 7e81e706a1 modified the logic used to
determine if a NAND is using multi-MTD or single-MTD, but single quotes were
used in the grep pattern, which prevents the variable inside from expanding.
This makes the script always enter the single-MTD code path, even in multi-MTD
systems, which breaks partition formatting in these cases.

Replace the single quotes with double quotes so the variable can expand and the
condition can be properly checked.

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

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2023-12-21 11:21:09 +01:00
Mike Engel aa2480d1de images: add imx-kobs support to recovery image
Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2023-12-05 10:54:29 +01:00
Hector Palacios e9aac1b489 swupdate: install a default config file with optional public-key-file
The swupdate recipe installs by default a systemd service
and a socket to listen for updates coming from a web server.
DEY only makes use of such service during on-the-fly updates from Cloud
Connector web service.

The default swupdate service fails on images with TrustFence because it's
called with no arguments and there doesn't exist a configuration file.
This commit installs a default configuration file and, if TrustFence is
enabled, sets the parameter 'public-key-file' to point to the public
certificate to use to authenticate SWU packages.

While on it, it removes the same file from the recovery-initramfs recipe
that was the only recipe that was adding such config file for recovery
images only.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-12-01 10:55:05 +01:00
Gabriel Valcazar 2a015f3f87 Add support for dey-image-lvgl images
LVGL is a free and open-source embedded graphics library that is able to run
in environments with limited resources.

This image includes a desktop environment and an LVGL widget demo (lvgl_demo)

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

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2023-11-16 11:39:03 +01:00
Arturo Buzarra e2ee631832 meta-digi: [cosmetic] alphabetize compatible machine string
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2023-10-10 14:58:58 +02:00
Javier Viguera 34e82e9bac trustfence-initramfs: make compatible with ccimx93
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-09-25 14:23:40 +02:00
Tatiana Leon f13c0e60cf cc: cccs: replace cloudconnector recipe with new ConnectCore Cloud Services
This recipe generates several packages:

   * 'cccs' includes the CCCS shared library
   * 'cccs-daemon' includes the binary and resources to execute the CCCS daemon
     (daemon, service and init scripts, configuration file)
   * 'cccs-cert' includes the required certificate to use CCCS daemon
   * 'cccs-gs-demo' includes the binary and resources to execute the CCCS get
     started demo (binary, service and init scripts)
   * 'cccs-legacy' includes the binary (all-in-one) application to execute
     the legacy CCCS application (aka cloud-connector) and the configuration
     file
   * 'cccs-legacy-dev' includes resources to develop legacy CCCS applications
     (all-in-one) (header files inside 'cloud-connector' and 'cloudconnector.pc'
     pkg config file)
   * 'cccs-legacy-staticdev' includes static resources to develop legacy CCCS
     applications (all-in-one) (static library)

This commit also renames:
   * 'CLOUDCONNECTOR_PKGS' variable to 'CCCS_PKGS'.
   * 'CC_DEVICE_TYPE' variable to 'CCCS_DEVICE_TYPE'.

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

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-09-06 13:01:50 +02:00
Hector Palacios 7e81e706a1 recovery-initramfs: adapt format_ubi_volume() to new partition layout of ccmp1
The ccmp1 has two MTD partitions (UBI, UBI_2) with different system
volumes.
Previously, the fact of having two ubi devices was taken as proof of
being on a multi-MTD system (one that has one UBI volume per partition).
Instead, this commit reformulates the condition to having a partition of
the same name than the UBI volume.

For the case of the ccmp1, add a new for loop to iterate across any number
of UBI devices.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-09-01 17:16:54 +02:00
Isaac Hermida eba8e21d72 p2p scripts: generalize support getting name from configuration
The P2P interface may have a different name, for instance, in the ccimx93 it
is wfd (wifi direct).
Generalize Digi P2P scripts to use the name from the platform config file.

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

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2023-09-01 14:55:37 +02:00
David Escalona 981c5e44bb meta-digi-dey: core: add 'bootcount' to DEY core package group to reset bootcount on boot
While on it, remove the block of the 'dualboot' script that was taking care of this action.

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

Signed-off-by: David Escalona <david.escalona@digi.com>
2023-08-29 14:55:44 +02:00
Hector Palacios 13e28b293d recovery-initramfs: remove copying of public key
This is now handled by trustfence.bbclass at image level.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-08-24 11:49:49 +02:00
Francisco Gil c85d064bdd recovery: squashfs: change the way to determine nand device
There is a corner case in the cc6ul where the update from
recovery was failing.

If the u-boot variable rootfstype is set to squashfs u-boot
modify the bootargs adding "root=/dev/ubiblock1_0". The grep
of the command line was failing and detecting the device as
mmc and making the firmware update process fail.

Modify the grep to use the same system that we are using in
the update-firmware script.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2023-08-23 11:04:22 +02:00
Javier Viguera 787bab09d3 busybox: backport hwclock support to get/set RTC parameters
This allows to set RTC configuration parameters. For example, the rv3028
RTC included in ccmp1 and ccimx93 has the "backup switching mode"
configuration in a register that is saved to an eeprom. By default the
BSM value is 00, which means backup switchover disabled. This means that
even if you connect a coin cell to our DVK, the RTC will ignore it.

With this commit, the BSM can be configured to direct switching mode
(DSM) or level switching mode (LSM) so the RTC uses the battery when the
device is powered off.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-08-17 10:23:00 +02:00
Isaac Hermida bc4aaf2237 ccimx93: bluetooth-init: adjust recipes to btnxpuart driver
The btnxpuart driver uses internally the serial port to manage the chip, and
loads the BT FW independently of the WiFi subsystem.
While on it, add support in the bluetooth-init script to be able to power the
chip when the WiFi support is not present.

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

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2023-08-01 18:54:00 +02:00
Javier Viguera 19373e38f8 systemd: remove console on virtual terminals
This reuses the same variable from sysvinit (USE_VT) to disable running
getty/login on virtual terminals.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-07-28 12:40:38 +02:00
Francisco Gil 1e5bd003bd recovery-initramfs: get rid off singlemtdsys variable
This variable is not defined in ccmp1 platforms, making the
swupdate for single mtd failing.

Instead of reading this variable from uboot environment,
determine if the system is multimtd checking the existence
of /dev/ubi1.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2023-07-06 08:18:22 +02:00
Javier Viguera eecc3cf6c1 systemd-conf: configure KEY_POWER events on ccimx93
To support suspend/resume and software controlled poweroff.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-05-26 14:04:02 +02:00
Hector Palacios 6298a50b2e trustfence: copy the public key to the rootfs
The root file system requires the public key to authenticate SWU files.
For NXP platforms, the public key is extracted from the certificate.
For STM platforms, simply copy the public key over to the rootfs.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-05-10 17:33:23 +02:00
Hector Palacios 13c136dbc5 trustfence: add recipe to generate the PKI tree
Several recipes depend on the PKI creation.
Create a small recipe to just run this function which
is moved from the trustfence.bbclass.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-05-10 17:33:23 +02:00
Hector Palacios a7ce03f66c trustfence: add dependency of sign tools for recipes requiring keys
dualboot and recovery recipes may require to use the keys so they must
depend on the recipe that installs the script that generates them.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-05-10 17:33:23 +02:00
Hector Palacios 74ed606339 trustfence: use conditionals for NXP-specific stuff
Set TRUSTFENCE_DEK_PATH to "0" for CCMP1 (not using dek.bin), as if this
was disabled.
Set temporarily TRUSTFENCE_ENCRYPT_ENVIRONMENT to "0" for CCMP1 until
environment encryption is fully supported.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-05-10 17:33:23 +02:00
Hector Palacios 3229e37e88 trustfence-sign-tools: make dependency of cst-tool NXP-specific
While on it, merge the two RDEPENDS assignments in one.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-05-10 17:33:23 +02:00
Arturo Buzarra 9a713e56c8 init-ifupdown: virtwlans: generalize function to check virtual wireless MACs
Also this commit removes the virtual wireless MACs verification on ccmp1 platforms

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2023-05-10 09:11:19 +02:00
Arturo Buzarra c4a328dfd3 init-ifupdown: remove references to QCA wireless chipsets
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2023-05-10 09:11:19 +02:00
Tatiana Leon 70b0a17b0e cloudconnector: new variable to allow custom cloudconnector package definition
By default, our 'cloudconnector' package is installed.
This can be overriden by defining 'CLOUDCONNECTOR_PKG' in the 'local.conf'
with the custom package that includes this application.

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-05-09 11:47:25 +02:00
Isaac Hermida 181ce4761a cc93: iw612: rename name of main wlan interface
rename interface sta_name to be "wlan0" instead of "mlan0", so it keeps
compatibility with other platforms.

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2023-05-05 14:00:01 +02:00
Isaac Hermida ea81fda3bf ccimx93: standby: check bluetooth-init service status
Check if the bluetooth-init service is running before going to suspend,
just in case has stopped or disabled it on purpose.

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

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2023-05-05 14:00:01 +02:00
Isaac Hermida fd5ee3a5e3 ccimx93: standby: customize script support for systemd
We need to take in account if the IW612 chip (WiFi/Bt) is going to be powered
off on suspend state. In such a case, we need to unload the driver modules and
restore the expected tty speed for Bluetooth, so that functionality is restored
back on resume.

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

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2023-04-27 14:39:48 +02:00
Isaac Hermida 5f5855744d init-ifupdown: ccimx93: add p2p and AP support
https://onedigi.atlassian.net/browse/DEL-8346

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2023-04-20 17:05:00 +02:00
Javier Viguera 951789093f meta-digi-dey: remove dead code (udev-cache)
This was removed from Poky long ago:

https://git.yoctoproject.org/poky/commit/?id=44f550f392e231b7fbd1e29da3f59d6c9dd7f472

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-04-03 18:39:35 +02:00