Commit Graph

2148 Commits

Author SHA1 Message Date
Hector Palacios bda889282c ccmp1: don't execute task that generates flashlayout files
These are files for programming images with STM32CubeMX tool.
We don't use the tool or the files. Remove the task to avoid build
warnings.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-09-07 16:22:30 +02:00
Hector Palacios 6aeedd19d5 ccmp1: don't set TF_A_CONFIG explicitly
The include in meta-st-stm32mp layer will generate this basing on
BOOTDEVICE_LABELS.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-09-07 16:22:30 +02:00
Hector Palacios da11d76ae0 ccmp1: define custom WKS_FILE_DEPENDS
Define dependencies for creating a wic sdcard bootable image.

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

https://onedigi.atlassian.net/browse/DEL-8650
2023-09-07 16:22:30 +02:00
Hector Palacios d3ba672d51 ccmp1: build ext4.gz and boot.vfat images when sdcard boot is enabled
Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-8650
2023-09-07 16:22:30 +02:00
Hector Palacios b80a7ced0e ccmp1: add ccmp1 platforms to supported list when enabling sdcard boot
Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-8650
2023-09-07 16:22:30 +02:00
Hector Palacios d76a83fa38 ccmp1: fix default BOOTDEVICE_LABELS and set default BOOTSCHEME_LABELS
BOOTDEVICE_LABELS defines the supported boot device (NAND by default).
BOOTSCHEME_LABELS defines the which kind of boot is supported.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-09-07 16:22:30 +02:00
Hector Palacios 1085b73dcc Revert "ccmp1: allow override of TF_A_CONFIG"
We will use BOOTDEVICE_LABELS as a means to add 'sdcard'
configuration to TF_A_CONFIG within meta-st-stm32 so there
is no need to have a wrapper variable in meta-digi.

This reverts commit 7cf314ba80.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-09-07 16:22:30 +02:00
Hector Palacios e89385894d Revert "ccmp1x: create new variable to be able to truly override TF_A_CONFIG"
We will use BOOTDEVICE_LABELS as a means to add 'sdcard'
configuration to TF_A_CONFIG within meta-st-stm32 so there
is no need to have a wrapper variable in meta-digi.

This reverts commit c6f19a099c.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-09-07 16:22:30 +02:00
Francisco Gil 894a28de64 ccmp1: add weak assignment for KERNEL_EXTERNAL_DEFCONFIG
Digi's mechanism to use a custom Linux kernel defconfig is
based on setting the variable KERNEL_DEFCONFIG, however ST
implements their own mechanism with a custom variable
KERNEL_EXTERNAL_DEFCONFIG. When providing an external defconfig,
the variable needs to be set, otherwise a build error
will be generated.  So to keep compatibility with NXP
platforms, this commit weakly assigns KERNEL_EXTERNAL_DEFCONFIG
to a default value "defconfig".

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2023-09-07 14:45:32 +02:00
Mike Engel b4e886f216 Revert "udev: disable uSD card mounting for the CCMP1"
Reverted due to u-boot mtd environment partition change (DEL-8652)

This reverts commit a3af0c8597.

https://onedigi.atlassian.net/browse/DEL-8502
2023-09-07 10:32:37 +02:00
Tatiana Leon 2f2f68dc34 dey-examples: cccs: move cccs examples to dey-examples repository
ConnectCore Cloud Services examples are included in 'dey-examples' repository
so they can be built from here and also imported in Eclipse/Digi Application
Development Environment for Linux with the samples wizard.

The example 'upload_file' has been removed since currently there is no support
for binary data points in the CCCS daemon/client model.

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

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-09-06 13:02:01 +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
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
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
Hector Palacios a791bb4463 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.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-09-01 17:17:04 +02:00
Francisco Gil b2dddb2b4c readonly: change index for ubi volume to 1
Now in the ccmp1X platform the index for the data partition is
hosted in the ubi1 volume instead of the ubi0.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2023-09-01 17:17:04 +02:00
Hector Palacios 8c0dc9af13 udev-extraconf: adapt mount rules and script for new ccmp1 partition table
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.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-09-01 17:16:32 +02:00
Arturo Buzarra 00c87360ad Revert "ccmp15: force set TRUSTFENCE_KEY_INDEX to "0""
Since ccmp15 and ccmp13 have a different workflow, this change is no longer necessary.
This reverts commit 1650cc973a.
2023-08-30 09:53:56 +02:00
Arturo Buzarra acd2ee22c1 trustfence: stm: rework PKI tree generation for CCMP15 platforms
PKI tree generation for the STM32MP15 cpu provides the undesired file
"publicKeysHashHashes.bin", which is only required by STM32MP13. This commit
generates the PKI tree according to the KeyGen tool documentation to avoid
generate this extra file and avoid confusing the end user.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2023-08-30 09:53:56 +02:00
Arturo Buzarra 4d6947e02a trustfence: stm: improve error handling for PKI tree generation script
Any errors in the PKI tree generation are not reported to bitbake, so the
script fails silently. This commit adds a validation of the script execution,
and if it fails, it aborts the execution and notifies to bitbake.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2023-08-30 09:53:56 +02:00
Arturo Buzarra a8809e68c7 trustfence: stm: fix PKI generation for CCMP13 platform
The KeyGen tool to generate 8 key pairs requires 8 consecutive passwords,
however, when the shell expands the passwords variable, it interprets it as a
single string instead of 8 different strings and fails.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2023-08-30 09:53:56 +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
Gabriel Valcazar 6dfbab7e17 linux-dey-5.15: use v5.15.118/stm/master branch for STM-based products
This branch contains the latest BSP changes from STM's v5.15-stm32mp-r2.1
release.

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

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2023-08-21 13:00:05 +02:00
Hector Palacios 1650cc973a ccmp15: force set TRUSTFENCE_KEY_INDEX to "0"
The STM32MP15 SoC can only use one sign key.
Forcibly set TRUSTFENCE_KEY_INDEX on the machine conf so
that it cannot be overriden by mistake on the local.conf.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-08-21 09:21:30 +02:00
Hector Palacios 998598415a dey-image: generate public key after rootfs install
When TrustFence is enabled, a PKI tree is generated.
In the case of NXP platforms, the PKI contains public certificates
from which the public key needs to be extracted using an openssl
command.
In the case of STM platforms, the PKI contains directly the
public key.

In all cases, we need the public key to be installed in the
rootfs /etc/ssl/certs/ folder, so that it can be used by
swupdate to authenticate signed SWU packages.
Up to now, this was being done on the dualboot recipe, but the
installation of the public key should really be only dependant
on the fact of TF being enabled.

This commit:
 - Removes the generation of the public key from dualboot.bb.
 - Generates a patch to extract the public key from the certificate
   as part of the PKI tree generation (on NXP platforms).
 - Installs the public key during a post install function after
   the final rootfs has been created.
 - For NXP platforms, extracts the public key using openssl if
   it does not exist (for backwards compatibility).

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-08-21 09:21:30 +02:00
Isaac Hermida e369f71019 u-boot-dey: ccimx93: fix boot from sdcard image
When booting from recovery sdcard, in the imx93 the dualboot is yes by
default, so the mmcroot variable was not set correctly for the uSD.
If we boot from uSD, just assume all the system is in the uSD card, whether
it is a recovery system or a prepared uSD card for demo.

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

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2023-08-18 17:19:58 +02:00
Isaac Hermida 5a8132067b ccimx93-dvk.conf: define bootloader seek
Define the bootloader seek variable to generate a booteable sdcard image.

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

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2023-08-18 17:19:58 +02:00
Arturo Buzarra a9176f53d3 Revert "optee-os-stm32mp: enable OTP program support"
Commit 92969f0c4 ("plat-stm32mp1: Remove CFG_STM32_BSEC_WRITE dependency with
debug configuration OP-TEE") on OP-TEE source code, removed the link between
the BSEC WRITE feature with DEBUG feature, so now by default it is enabled.

This reverts commit 2395378ec4.

https://onedigi.atlassian.net/browse/DEL-8657
2023-08-18 09:06:01 +02:00
Hector Palacios ae327e8dae trustfence: stm: move generation of PKI out of sign script
Create a new script for the generation of PKI tree for STM platforms
and leave the trustfence-sign-artifact script exclusively for signing.
The new gen-pki script only requires the platform as an argument and the
path to where to save the tree (if it doesn't exist) in
CONFIG_SIGN_KEYS_PATH.

This commit also reverts commit 13c136dbc5 by getting rid of the
trustfence-genpki-native.bb recipe and moving back the PKI generation
functions into trustfence.bbclass. This recipe didn't quite guarantee
that the PKI was generated on time for the recipes that required the
keys to exist, anyway.
Instead, the PKI generation function must be called right after
do_compile() of recipe tf-a-stm32mp to be ready for do_deploy() where
the key is used.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-08-14 09:19:16 +02:00
Hector Palacios fad45f44d7 image_types.bbclass: do not try to sign rootfs image for ccmp1x family
Signing of rootfs is not yet supported for ST platforms.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-08-10 09:04:56 +02:00
Hector Palacios 43a264284a image_types.bbclass: [cosmetic] tab indent
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-08-10 09:04:56 +02:00
Isaac Hermida 3bfcc31563 sound: max98088: update card name
Starting at kernel 6.1, the maxim98088 driver has been migrated
from the old imx-max98088.c driver to NXP’s new audio framework
fsl-asoc-card.c.
Update the sound stuff to match the new audio card and some of
the new controls.

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

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2023-08-08 10:29:16 +02:00
Hector Palacios c6f19a099c ccmp1x: create new variable to be able to truly override TF_A_CONFIG
Commit 7cf314ba80 made a weak assignment of TF_A_CONFIG in the machine
config file, so that it could be overriden from conf/local.conf with a
straight assignment. However, this variable already has a weak assignment
on include files for the tf-a-stm32mp recipe, which apparently take
precedence over the machine files.

This commit creates a new variable DEY_TF_A_CONFIG in the machine config,
and then uses a straight assignment of TF_A_CONFIG to the new variable on the
tf-a-stm32mp.bbappend.
This allows users to override the machine default and avoids the STM recipe
weak assignment.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-08-03 15:17:03 +02:00
David Escalona 1fe98681ac meta-digi-arm: udev: mount_digiparts: minor script syntax fix
Signed-off-by: David Escalona <david.escalona@digi.com>
2023-08-02 10:22:13 +02:00
Isaac Hermida 87ebf1f15d kernel-module-nxp-wlan: fix HE Rate Index warning
Translate the enum between FW and Driver to avoid a kernel index warning.

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

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2023-08-01 18:56:54 +02:00
Isaac Hermida 57048f9177 kernel-module-nxp-wlan: adjust expected FW file.
Do not load the combo FW but only the FW for the SD (WiFI).

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

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2023-08-01 18:54:00 +02:00
Isaac Hermida c0d1b4067c firmware-nxp-wifi: include separated FWs for WiFi and BT
Do not install the combo FW and install the WiFi and BT FW as separated FWs,
so they are managed independently.

Md5sums are:
	44cf5535f3b40784296843544eae159e  sd_w61x_v1.bin.se
	300c739a4e126a8f430001c41e5b3a5f  uartspi_n61x_v1.bin.se

Note: currently these FW files are copied manually here, till the github FW
files are updated.
These firmware files come from the package IW612_18.99.2.p19.5.zip provided
by NXP support page.

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

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2023-08-01 18:54:00 +02:00
Isaac Hermida c91b6219e9 linux-dey: blacklist btnxpuart module
The btnxpuart driver is used for the bluetooth chip. We want to control
when to load and unload it, and when power/unpower the chip.
Therefore, blacklist it, so we can manage it in our scripts.

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 110a742d06 digi-sc-firmware: fix license checksum
This change was missing in the previous commit updating the package to
version v1.15.0.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-08-01 13:47:19 +02:00
Hector Palacios 415caa2b66 ccmp1: add wks file to generate a bootable sdcard
This wks file creates the required GPT and partition layout
to have a bootable SD card with the following partitions:
 - fsbl1
 - fsbl2
 - metadata1
 - metadata2
 - fip-a
 - fip-b
 - u-boot-env
 - linux
 - rootfs
 - data

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

https://onedigi.atlassian.net/browse/DEL-8120
2023-07-31 11:51:16 +02:00
Hector Palacios 7cf314ba80 ccmp1: allow override of TF_A_CONFIG
Use a weak assignment of TF_A_CONFIG to allow override from
conf/local.conf.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-07-31 11:51:16 +02:00
Gabriel Valcazar cfb4cd9d47 digi-sc-firmware: update to v1.15.0
This includes NXP's code from the SCFW porting kit v1.15.0, support for
variants with 4 GiB of RAM and a fix for an issue when resuming from suspend.

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

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2023-07-31 11:13:58 +02:00
Mike Engel b1d20d686e libubootenv: add support for environment encryption on CCMP1
This commit adds support for environment encryption/decryption of the
u-boot environment on the CCMP1 platform in Linux.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2023-07-28 13:29:51 +02:00
Javier Viguera e4cab54375 meta-digi-arm: bring fixes from meta-freescale's imx-base.inc
Equivalent commits in meta-freescale:

71d2a1ad49a3e04d0d401d4e9c52d5a50105b6dc
995f2f0a86da9428af348e72e51beb5063ebd729

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-07-28 12:40:38 +02:00
David Escalona a84d011f16 meta-digi-arm: udev: mount_digiparts: fix script for R/O systems
When the system runs as read-only with '/etc' overlayfs enabled, '/sbin/init' is not a symlink
to 'systemd', but '/sbin/init.orig' is. This causes the script to wrongly think than 'systemd'
is not being used. The outcome is that partitions are not being automatically mounted in R/O
systems running in mmc with '/etc' overlayfs enabled, as the specific '/usr/bin/systemd-mount'
binary needs to be invoked in these cases.

The proposed fix performs a second check with '/sbin/init.orig' to determine whether systemd is
being used or not. While on it, add an early check to determine if the partition is already
mounted to exit the script.

Signed-off-by: David Escalona <david.escalona@digi.com>
2023-07-27 10:13:50 +02:00
Gonzalo Ruiz 49614158a6 u-boot-dey: fix evaluation of BUILD_UBOOT_SCRIPTS variable
Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2023-07-13 12:50:46 +02:00
Gabriel Valcazar 1ce17da864 imx-boot: fix ccimx8x builds when Trustfence is enabled
Make a series of changes to make sure the imx-boot signing process works:

    * Store separate mkimage logs for each imx-boot build. In our case, this
      means storing one log per SoC revision. Each SoC revision has a different
      SECO fw binary with varying sizes, which causes offsets of specific
      signing regions to differ among revisions. Since we parse the offsets
      from the logs, we need to make sure the offset information is correct in
      each case.
    * Remove u-boot-atf-container.img in each mkimage iteration, otherwise the
      ATF offset information will be missing from subsequent logs.
    * Implement a separate trustfence_sign_imxboot() function for the ccimx8x
      to iterate through all SoC revisions.

Note that the SPL+AHAB signing script doesn't support imx-boot encryption yet.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2023-07-10 11:09:37 +02:00
Gabriel Valcazar 9d98563945 trustfence-sign-tools: use appropriate signing script when using SPL and AHAB
When building imx-boot images with SPL on the ccimx8x, a different signing
procedure is required. We already have a script for this use case in our U-Boot
fork, so make use of it.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2023-07-10 11:09:37 +02:00
Gonzalo Ruiz aa41094ef5 firmware_qualcomm: remove BDF symlinks
Regulatory domain is now provided as a Kernel parameter, and the
wlan driver uses it to select the correct BDF file, so we don't
need to change the symbolic links to point to one file or another
anymore.

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

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2023-07-07 15:55:46 +02:00