Commit Graph

52 Commits

Author SHA1 Message Date
Arturo Buzarra 13556606e0 swupdate: stm: fix TF-A/FIP artifact names in .swu when TrustFence is enabled
Correct the bootloader artifact names (TF-A and FIP) for CCMP1/CCMP2 during
.swu generation with TrustFence enabled.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2025-12-10 11:16:38 +01:00
Arturo Buzarra 8ee168de0a ccmp1/ccmp2: adapt virtual optee syntax
This commit updates the virtual OP-TEE syntax for the CCMP1 and CCMP2 platforms
to align with the changes introduced in the meta-st-stm32mp layer. Specifically,
it mirrors the update made in commit ded46c7d24addf91ec81c9f64309e6376689977a
("Adapt to virtual optee changes").

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2025-10-28 12:39:51 +01:00
Arturo Buzarra ea5027e623 stm-st-stm32mp: fip/tf-a: sync .bbappend recipes with ST BSP v25.06.11 release
This commit updates the Digi custom .bbappend recipes for FIP and TF-A to align
with the latest ST BSP release, based on the openstlinux-6.6-yocto-scarthgap-mpu-v25.06.11
tag for Yocto 5.0 (scarthgap).

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

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2025-07-29 11:33:15 +02:00
Hector Palacios f65dc4440e ccmp1: reorder addresses for fitImage binaries
Move the address where the fitImage is loaded after the addresses
where the binaries in it are decompressed. This way, the fitImage
can grow without size restrictions.

The memory map now looks like this:

  0xC0000000    Start of memory
      |
      |           (32 MiB)
      v
  0xC2000000    Kernel loadaddr ($loadaddr)
      |
      |           (32 MiB)
      v
  0xC4000000    DTB/DTBO load address ($fdt_addr)
      |           (4 MiB)
      v
  0xC4400000    Init ram disk ($initrd_addr)
      |
      |
      |           (64 MiB)
      |
      v
  0xC8400000    ZIP/fitImage address ($fit_addr_r)
      |
      ~
      |
      v

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-06-23 16:19:28 +02:00
Hector Palacios 0aed6a9c73 move IMAGE_FSTYPES to digi-defaults.inc
IMAGE_FSTYPES was declared on each platform config file, but it has the
same values for all platforms depending on the storage media (mmc or mtd)
and whether read-only is enabled.

Move the conditional weak assignment to digi-default.inc and remove it from
each platform config.
In the case of STM platforms, since IMAGE_FSTYPES is weak-assigned by STM
layer, we still need to append/remove from it inside the platform config,
but move it to the family includes, rather than declaring it on each
specific platform.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-06-16 08:35:19 +02:00
Arturo Buzarra 09714323a6 ccmp1: adjust memory layout for FIT image support
This commit updates the memory layout to properly allocate space for the
different FIT image components, while ensuring total memory usage stays below
128 MiB. This avoids overlaps and ensures correct loading on memory-constrained
variants.

Final memory map:

  Start of memory:        #  0xC0000000
                          #   |
                          #   | 32 MiB reserved
                          #   v
  FIT image load address: #  0xC2000000
                          #   |
                          #   | 32 MiB for FIT image
                          #   v
  Kernel load address:    #  0xC4000000
                          #   |
                          #   | 32 MiB for Kernel
                          #   v
  DTB/DTBO load address:  #  0xC6000000
                          #   |
                          #   | Size for DTB/DTBO
                          #   v

Total memory mapped: 96 MiB

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

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2025-05-26 09:48:00 +02:00
Gabriel Valcazar e03ef8941c ccmp1: remove spurious UBI/UBIFS images
In theory, we already had the necessary changes to remove these images, but
two things needed tweaking:

    * MULTIUBI_BUILD values use underscores instead of hyphens, so use
      underscores to properly remove the default value inherited from
      BOOTDEVICE_LABELS.
    * STM used to incorporate a custom "stmultiubi" image type in the stm32mp
      builds, but they've replaced this with the upstream "multiubi" type.
      Reflect this change to avoid generating additional UBI/UBIFS images in
      our builds.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2025-05-19 10:25:01 +02:00
Hector Palacios 63e7031614 add missing `pn-` prefix to INSANE_SKIP appends
Commit 9c3916da94 added INSANE_SKIP
"32bit-time" to certain recipes that use 32bit APIs on the ccmp1
SOMs, but forgot to include the `pn-` prefix to really apply to
those recipes.

While on it, add two additional ones on recipes used by NXP 32-bit
platforms.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-05-09 12:40:51 +02:00
Hector Palacios 9c3916da94 add INSANE_SKIP 32bit-time to avoid warnings on recipes using 32-bit APIs
The binaries of certain recipes use 32-bit APIs (ioctl, stat) that produce
build warnings. Add INSANE_SKIP to prevent the warnings.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-05-02 11:05:02 +02:00
Hector Palacios 3c6d3d356b ccmp1/ccmp2: clear ALSA_LIST with override and move it to include file
ALSA_LIST variable is weakly set through an override (stm32mp1common or
stm32mp2common). When the override is in place, the hard assignment of
the plain variable is not enough, and the value weakly set in
meta-st-stm32mp layer takes precedence over the plain variable hard
assignment.
Clear the variable with the override and move it from machine config files
to the include file.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-05-02 11:04:31 +02:00
Hector Palacios 51116d4065 ccmp1: use 'opteemin' BOOTSCHEME_LABELS for ccmp15 by default
Move BOOTSCHEME_LABELS from common include to platform config

Default to:
- 'opteemin' for ccmp15
- 'optee' for ccmp13

This doesn't change the behavior present in DEY-4.0, where OPTEE in ccmp15
was minimal and running on non-secure DDR.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-05-02 11:04:31 +02:00
Hector Palacios 2a547ac302 ccmp1: disable STM32MP_DEVICETREE_PROGRAMMER_ENABLE
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-05-02 11:03:40 +02:00
Hector Palacios 4d37569a52 ccmp1: move common ccmp15/ccmp13 defines to common include file
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-05-02 11:03:40 +02:00
Hector Palacios 7722e3a1d2 ccmp1: [cosmetic] re-order definitions to match the ccmp25 layout
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-05-02 11:03:40 +02:00
Hector Palacios d21c7b5fdd ccmp1: update BOOTDEVICE_LABELS string for nand to new BSP
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-05-02 11:03:40 +02:00
Hector Palacios b4c5345be8 ccmp1: remove 'kernel-headers' dependency
This commit removes kernel headers from the SDK package list to
prevent overwriting the default ones, as there are currently no
ST-specific headers required.

Reference: ebadb27d60
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2025-05-02 11:03:02 +02:00
Gonzalo Ruiz 654df8bd50 trustfence: repurpose TRUSTFENCE_GPIO_ENABLE to contain the GPIO name
Now all platforms support setting the GPIO name instead of an index
as the configuration for the GPIO-enabled secure console.

Repurpose the TRUSTFENCE_GPIO_ENABLE macro to directly set the GPIO
name.

Also take the opportunity to remove TRUSTFENCE_GPIO_ENABLE and
TRUSTFENCE_CONSOLE_PASSPHRASE_ENABLE commented definitions from bbclass
and conf files, and remove a duplicated TRUSTFENCE_CONSOLE_DISABLE
definition from ccmp1.inc.

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2025-02-06 13:45:14 +01:00
Gabriel Valcazar 767a3a4929 Replace bz2 rootfs tarball compression with xz compression
We tested all tarball compression formats supported by poky, and although bz2
has faster (de)compression time, xz is better in terms of compression ratio:
for all of the rootfs tarballs generated for our currently supported
images/platforms (15 at the moment), the xz format saves an average of 30 MiB
per tarball compared to bz2, totalling up to 450 MiB.

No extra dependencies are pulled in, since xz-native is already being pulled in
for all of our image builds, so the only drawback to this change is the
increased compression time (+7.34s on average per tarball).

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

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2025-01-21 11:56:31 +01:00
Gabriel Valcazar a481d7225d ccmp1: change the way we disable the generation of flashlayout files
Instead of manually disabling the task, use the ENABLE_FLASHLAYOUT_CONFIG
variable which is meant for that exact purpose.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-09-18 18:15:35 +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 8e63e52435 stm32mp: optee: add optee-client support by default
Optee-client provides the TEE Client API as defined by the GlobalPlatform TEE standard.
It is required to communicate with a Trusted Application (TA) running in a Trusted OS.

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

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2024-04-22 11:33:41 +02:00
Gabriel Valcazar 72675e510c ccmp1: decouple FIT functionality from signed FIT functionality
We rely on FIT support to implement boot artifact authentication on ccmp1
platforms, but our implementation made it impossible to enable FIT support
outside of the context of Trustfence/secure boot.

Change this so that it's possible to enable FIT support without having to sign
the FIT artifacts. Also, modify the linux-dey 5.15 recipe so that the U-Boot
DTBs with signatures get copied only when FIT signing is enabled.

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

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-03-19 13:26:47 +01:00
Arturo Buzarra e7d90794f8 ccmp1: support different DDR3 configurations
This commit implements the support to allow different memory configurations for
the CCMP1 platforms, adding support to 512MB and 1GB memory variants for the CCMP15.

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

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2024-02-20 15:34:58 +01:00
David Escalona 76e2672b22 ccmp1: fix platform 'UBOOT_PREFIX' variable
Signed-off-by: David Escalona <david.escalona@digi.com>
2024-01-16 17:55:17 +01:00
Hector Palacios efd5f898d8 ccmp1: move definition of TF-A and OP-TEE suffixes to platform
The TF-A and OP-TEE images have different suffixes depending
on whether TrustFence is enabled or not, but the suffix variables
themselves must exist independently of whether TF is enabled.
Currently, they were defined on the trustfence.bbclass, and the
variables did not exist when TF was disabled, which caused build
problems, for example, building the SWU file.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2024-01-04 16:56:06 +01:00
Mike Engel 56219a7e59 conf: machine: remove BOOTLOADER_SEEK_OFFSET
This commit removes the BOOTLOADER_SEEK_OFFSER, because it has been
moved into the swupdate class and renamed into SWUPDATE_UBOOT_OFFSET.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2023-12-05 10:54:26 +01:00
Mike Engel e4bb4d69af swupdate: add u-boot swupdate support
This commit adds u-boot swupdate support for all platforms.
Now u-boot can be updated with all our supported update
options. Currently it will only update first partition
u-boot partition.

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

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2023-12-05 10:53:55 +01:00
Hector Palacios fd70bf2fce swupdate: use dynamic mtd-blacklist for configuration file
The 'mtd-blacklist' parameter prevents swupdate from acting upon those
partitions that we consider sensitive.
Make such list platform-dependent.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-12-01 10:55:05 +01:00
Hector Palacios d3f3cfdb62 ccmp1: remove dependencies from kernel include file from meta-st-stm32mp
An anonymous function in linux-stm32mp.inc produces a bbfatal error when
KERNEL_DEVICETREE variable contains more than one device tree. This is our
case since we build the main DT plus a number of DT overlays.
This commit removes the dependency to this include file since we have our
own recipe to build the kernel and it is not needed at all.
It also removes the build of a uImage and the need to provide a
LOADADDR.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-11-28 12:53:30 +01:00
Mike Engel df9b1cf329 ccmp1: add signed FIT image support
This commit adds signed FIT image support for the CCMP1
platforms when using Trustfence.

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

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2023-10-30 12:58:19 +01:00
Hector Palacios 8fb4832433 ccmp1: don't build additional UBI/UBIFS images via meta-st-stm32mp layer
Through the inclusion of 'nand-4-256' in BOOTDEVICE_LABELS, the include
file 'st-machine-common-stm32mp.inc' adds strings to MULTIUBI_BUILD and
IMAGE_FSTYPES that result in building ubi and ubifs images.
These are redundant and not needed since meta-digi's
'image_types_digi.bbclass' already generates the needed ubifs images.

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

https://onedigi.atlassian.net/browse/DEL-8714
2023-10-09 15:37:16 +02:00
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 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 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 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
Mike Engel c515187ed4 ccmp1: add secure console support
Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2023-05-11 12:42:49 +02:00
Hector Palacios 56f323044c global: rename DEY_BUILD_PLATFORM to DEY_SOC_VENDOR
The name of the variable was not very intuitive of what
it contains. This variable expands to the SoC vendor
(NXP or STM).

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-05-10 17:33:23 +02:00
Javier Viguera d76bb3ac2c machine: restrict udev extra rules to systemd or udevd device managers
There are other device managers (e.g. mdev) that do not understand those
udev rules, so do not install them unconditionally.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-03-21 17:05:15 +01:00
Javier Viguera adbb511484 meta-digi: remove True option to getVar
True is the default since long time ago, and thus not necessary. This
follows similar changes done in other layers.

Command used:

sed -e 's|\(d\.getVar \?\)( \?\([^,()]*\), \?True)|\1(\2)|g' -i $(git grep -E 'getVar ?\( ?([^,()]*), ?True\)' | cut -d':' -f1 | sort -u)

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-02-24 16:24:47 +01:00
Mike Engel 925d96155b ccmp1: add mtd-utils for CCMP1 platform
This commit adds the mdt-utils to the CCMP1 platform and
builds the tools with cyptographic support.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2023-02-16 10:06:29 +01:00
Hector Palacios d3a8d312fd digi: machines: remove unused UBOOT_DEV_NAME variable
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-01-18 11:08:25 +01:00
Hector Palacios 856a4a3c70 ccmp1: remove existing common settings and move others to include file
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-01-02 17:24:59 +01:00
Hector Palacios 27ca6138e1 ccmp1/ccimx6ul: move U-Boot env defines to common include file
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2022-11-28 13:40:14 +01:00
Hector Palacios 63916b1143 swu-images: fix ccimx6ul ROOTFS extension when read-only enabled
When read-only feature is enabled, the rootfs should be .squashfs
and not .ubifs.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
(cherry picked from commit c32278af74cea8cb38aa81590eaa867be1c739c9)
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-11-25 11:54:45 +01:00
Gonzalo Ruiz b8f8174579 ccmp1: define DIGI_FAMILY variable
DIGI_FAMILY is "ccmp1" and is common to both CCMP15 and CCMP13.

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2022-11-22 14:09:30 +01:00
Francisco Gil 6ffbbb390a dualboot: get rid of DUALBOOT_ENABLED configuration
All the dualboot logic will be checked in run time.
To do this:
* Include the altboot.src by default in all the images
* Create a post installation script to change the
firmware_download_path in the cloud connector
* Unify the swupdate file descriptor for dual and single boot

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2022-11-22 11:42:39 +01:00
Arturo Buzarra 9ad980e0d7 ccmp1: remove unused build artifacts
This commit removes duplicated and unused build artifacts for the ccmp1
platforms. Also fixes a build warning related with flashlayout config file.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2022-11-22 09:01:45 +01:00
Arturo Buzarra 120005ceeb ccmp1: add udev-extraconf recipe for ccmp1 platforms
This commit adds the extra machine specific configuration files for udev on
ccmp1 platforms to allow, for example, automount storage devices.

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

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2022-11-17 17:48:34 +01:00
Francisco Gil 305789730e ccmp1: enable dualboot by default in stm platforms
Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2022-11-15 07:51:46 +01:00