Commit Graph

4545 Commits

Author SHA1 Message Date
Gabriel Valcazar d07e68b5a2 imx-boot: apply patches to fix CVE-2023-39902 on i.MX8M platforms
The patches have been backported from the lf-6.1.36-2.1.0 release of
imx-mkimage.

https://onedigi.atlassian.net/browse/DUB-1081

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-06-06 14:59:26 +02:00
Mike Engel 37f5db42ac tsn: add basic Time sensitive networking (TSN)
This commit adds some basic TSN support to DEY.
It includes the kernel configuration fragment with
the IEEE 802.1 support and the some user space tools
necessary to configure the network.

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

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2024-06-04 12:14:18 +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
Javier Viguera 584b263614 meta-digi: enable u-boot env encryption support on ccimx93
https://onedigi.atlassian.net/browse/DUB-1079

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-05-28 17:58:01 +02:00
Javier Viguera 66780aafc4 optee_os: implement Optee-based environment encryption
https://onedigi.atlassian.net/browse/DUB-1079

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-05-28 17:57:31 +02:00
Javier Viguera 720c5f7218 libubootenv: rework patchset with Digi-specific functionality
* Move Digi code out of the upstream files to minimize conflicts in
  version migrations.
* Remove all the TEE client copied code and use the libteeclient library.
* Some fixes in the Optee-based environment encryption
* Some simplifications in CAAM-based environment encryption.

https://onedigi.atlassian.net/browse/DUB-1079

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-05-28 17:57:01 +02:00
Gonzalo Ruiz a288a03ef5 firmware_qualcomm: ccimx8m: update US Board Data File calibration
Update BDF file used on CC8MN and CC8MM with a new calibration
(GOLDEN3) to obtain a flatter frequency response and a better EVM
performance.

Reference calibration file is obtained from 'qca6574au-le-2-2-2_qca_oem'
repo at tag 'r00005.1' under path
'wlanfw/cnss_proc/wlan/fw/target/sdio_dst/qc6174/bdwlan30.bin'
(MD5SUM: 8a40d95698825e1718bee640b1f7982a).

Target output powers tables and CTL tables remain intact.

Changes required to pass the EN 300 328 V2.2.2 blocking test also remain
intact.

New BDF file:
- bdwlan30_US.bin (86180198440e6ab53734aabf0112c6ba)

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

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2024-05-03 11:33:28 +02:00
Gonzalo Ruiz 59025531c5 ccmp15: add DT overlay for configuring a MIPI display
https://onedigi.atlassian.net/browse/DEL-8999

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2024-05-02 15:05:38 +02:00
Mike Engel cc8c038401 linux-dey-5.15: add RT functionality to CCMP1
This commit adds RT functionality to CCMP1. The patches
have been extracted from STM RT expansion package and
includes the maineline RT patches and the STM RT driver
patches and RT Kernel defconfig changes.

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

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2024-04-29 16:13: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
Mike Engel 2eb37cf30b linux-dey-6.1: add RT functionality to CCiMX93
This commit adds RT functionality to the CCiMX93
platform. The patches have been extracted from the
NXP real time edge BSP and include the maineline RT
patches and the NXP RT driver patches and RT Kernel
defconfig changes.

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

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2024-04-29 16:13:49 +02:00
Isaac Hermida e2caf16da4 mount: use the ubi class to check for attached devices
Use the generic sys class to check if a mtd device is attached.
The virtual node may not be present in some kernel versions.

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2024-04-26 14:10:14 +02:00
Mike Engel 55b313e7d2 trustfence: create symbolic links for all SOC revisions of the CCiMX8X
This commit creates symbolic links for all SOC revisions
of the CCiMX8X platform.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2024-04-24 09:56:37 +02:00
Mike Engel 041ca93cd9 ccimx8x: fix u-boot Trustfence naming for installation script
This commit fixes u-boot Trustfence naming for signed and
encrypted images used in the installation script removing
the a duplicated dash in the u-boot name.

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

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2024-04-24 09:39:41 +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
Javier Viguera afde974a17 packagegroup-imx-ml: ccimx93: only install tensorflow-lite
Rework commit c5c9838e54 to only limit ML
packages for our ccimx93 and not for other imx93-based devices.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-04-18 10:49:23 +02:00
Javier Viguera e8860f7bbf optee-client: fix package installation in the rootfs
Several things were wrong after the latest update to version 4.0: the
tee-supplicant path, some settings in the systemd unit, etc.

This commit fixes the installation so the optee test suite completes again.

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

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-04-17 17:55:16 +02:00
Javier Viguera 3c26ef78e0 meta-digi: enable boot artifacts encryption support on ccimx93
Add a check on the existence of the "temp-fitimg-loaded" environment
variable before setting it. It is needed, as with encrypted FIT images,
we need to decrypt them before accessing the boot script. In such cases,
u-boot sets that variable to "no" so the boot script does not override it,
and the FIT image is loaded again before the final boot to the OS.

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

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-04-11 18:18:13 +02:00
Arturo Buzarra cc72882584 ccmp15: add DT overlay for the SV4E MIPI analyzer
https://onedigi.atlassian.net/browse/DEL-8978

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2024-04-08 18:41:35 +02:00
Arturo Buzarra cfd40ca02f trustfence-stm-signtools: include external libraries in the package itself
The signing tools have a dependency of libQt5Core.so.5, which implies that this
library must to be installed on the native PC. This commit includes all the
required shared libraries for the signing tools inside the own package to avoid
external dependencies. With this change there is not needed any more the qtbase
dependency at build time.
Package version has been bumped to 1.2.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2024-04-08 18:02:37 +02:00
Isaac Hermida b84de064c0 ccimx93: tensorflow-lite-ethosu-delegate: fix hang issue with multiple tflite context
This patch fixes the hang issue with EiQ demos using multiple tflite files,
for instance the gesture_detection demo.

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

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2024-04-08 18:00:53 +02:00
Isaac Hermida b00e341495 meta-digi: remove python3-scipy
This recipe is not supported anymore. If you need to add that package
for aarch64, a solution is include pip3 in your image and install it
using the pip3 install manager.

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2024-04-08 17:57:19 +02:00
Arturo Buzarra 4b98b3f49e tf-a-stm32mp: fix set_fip_sign_key() to obtain the key password
This commit fixes the set_fip_sign_key() function to match the new keys format
where there is a key_pass file for each key, no longer needing to search with
the key index.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2024-04-08 13:38:27 +02:00
Mike Engel 4b4d4b5a6b u-boot-dey: add install uboot on redundant partition
This commit adds instructions to update the redundant u-boot
partition.

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

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2024-04-05 17:08:22 +02:00
Arturo Buzarra 2c4e1f85fd trustfence: stm: fix TRUSTFENCE_PASSWORD_FILE initialization for ccmp13 platform
Trustfence class was setting the TRUSTFENCE_PASSWORD_FILE variable using the
old keys format where a unique key_pass.txt file contains all the key
passwords.  However, in the new format there are one key_pass file for each
key, so using a PKI tree with the new format throws an unexpected error in the
FIP generation due to it is not able to find the required key password.
This commit sets the TRUSTFENCE_PASSWORD_FILE variable for the ccmp1 platforms
on different way.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2024-03-26 13:06:51 +01:00
Arturo Buzarra b9d9a0104b trustfence: stm: fix PKI tree check for ccmp13 platform
This commit fixes a race condition where, if you have an existing PKI tree with
the new format (one key_pass file for each key), the script detects that the
PKI tree is incomplete because it is always trying to find the key_pass.txt
file with the old format. This commit adds an additional validation step to
verify the new keys format.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2024-03-26 12:37:06 +01:00
Arturo Buzarra 2592216501 README: remove 802.11r known issue for CCMP1 platform
It is fixed with the new wireless firmware v5.15.58-2023_1128 integrated in
Yocto.

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

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2024-03-22 09:28:44 +01:00
Arturo Buzarra 22429e62cb meta-digi-arm: add support for Worldwide regulatory domains
- For Qualcomm QCA65x4 platforms:

Add support to create the 'World' board data file for the QCA65x4 Wi-Fi
chip to operate on World regulatory domain.

Kernel wireless driver already supports selecting the correct file based
on the configured Regulatory Domain via Kernel command line argument
'wlan.regdmn', which allows the following parameters:
  * "US", for U.S.A. (default)
  * "World", for worldwide

- For Murata type2AE platforms:

Add World CLM blob file for the wireless interface and JRL hcd file for
the Bluetooth interface. Also add the autocountry ininitialization script
and systemd service.

World CLM blob file:
  - cyfmac4373-sdio_World.clm_blob (1abe7f3fa86d4123b0586cbbf0ec91ac)

Kernel wireless and bluetooth drivers already support selecting the correct
files based on the configured Regulatory Domain via Kernel command line
arguments 'brcmfmac.regdmn' and 'btbcm.regdmn' respectively, which allow the
following parameters:
  'brcmfmac.regdmn':
    * "US", for U.S.A. (default)
    * "World", for worldwide

  'btbcm.regdmn':
    * "FCC.CE", for U.S.A., Europe and the rest of the world (default)
    * "JRL", for Japan

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

Co-authored-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2024-03-21 09:12:25 +01:00
Gabriel Valcazar 3fc0a30115 trustfence: rename variables related to FIT image signing
Different mechanisms are used to sign FIT images on the ccmp1 platforms and the
ccimx93, and we manage each mechanism via a different variable. The variable
names don't really reflect which platform they affect, which makes maintenance
harder.

Rename the variables so that it's easier to identify the platforms/vendors they
affect:

    * Replace TRUSTFENCE_FIT_IMG with TRUSTFENCE_SIGN_FIT_STM
    * Replace TRUSTFENCE_SIGN_FIT_ARTIFACT with TRUSTFENCE_SIGN_FIT_NXP

Don't rename TRUSTFENCE_FIT_IMG_SIGN_KEYNAME

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-03-19 13:26:47 +01:00
Gabriel Valcazar aabf4cb72d ccmp1: u-boot-dey: merge FIT signature config fragments into a single file
Unless we have a use case in which we need to apply these fragments separately,
we can merge them both into a single fragment.

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

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-03-19 13:26:47 +01:00
Gabriel Valcazar 9ac912d289 ccmp1: remove linux/u-boot functions related to FIT image bootscript copying
This logic was fixed in commit e915a14b4b, so we
no longer have to manually copy the bootscript to generate FIT images.

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

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-03-19 13:26:47 +01: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 ecd77dece9 firmware-murata: update firmware binaries to version imx-kirkstone-hedorah_r1.0
This commit updates the required firmware binaries for Bluetooth and Wireless
interfaces, hostapd and wpa_supplicant recipes based on the Cypress Linux WiFi
Driver (FMAC) release v5.15.58-2023_1128 (Wireless firmware v13.10.246.334).
This change also includes a custom defconfig file for the hostapd and
wpa_supplicant recipes including the changes from the patches and the Digi
customizations.

Also are updated the Murata firmware repositories to match with the latest
Murata release imx-kirkstone-hedorah_r1.0, which is based in the same Cypress
Linux Wifi Driver release v5.15.58-2023_1128.

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

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2024-03-18 18:13:09 +01:00
Gonzalo Ruiz 67be7da934 u-boot-dey: cc6: fix typo in uuu install script
Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2024-03-14 16:41:56 +01:00
Javier Viguera e6b67b6bf8 meta-digi: trustfence: support signing a FIT boot artifact
And enable it for the ccimx93.

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

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-03-12 18:13:05 +01:00
Javier Viguera 1d0631ef96 u-boot-dey: support Trustfence config options with spaces
The standard string split() function does not support splitting a string
by spaces but preserving quoted strings, so it does not work for build
options disabling functionality, as they have this format:

"# CONFIG_OPTION is not set"

On the other hand, the "shlex" module provides a split function that
allows splitting strings by spaces and, at the same time, preserves
quoted strings.

In Trustfence, we need this functionality to disable default options that
would allow the booting of non-authenticated images.

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

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-03-12 18:13:05 +01:00
Javier Viguera f67d59d7b8 meta-digi: support SRK revocation mask when signing boot artifacts
The script to sign the boot artifacts lacked the support to configure the
revocation mask. The at-the-moment supported platforms did not need it,
but the ccimx93 does need it, so implement it in this commit.

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

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-03-12 18:12:56 +01:00
Javier Viguera 15211c3133 trustfence-sign-artifact: implement support for ccimx93
https://onedigi.atlassian.net/browse/DEL-8704

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-03-12 12:18:59 +01:00
Javier Viguera 765fa48acc trustfence-sign-artifact: move srktool parameters to the platform data
With the introduction of the ccimx93 support in the following commits, the
srktool parameters not only differ for HAB/AHAB devices but also between
devices using AHAB (for example, different parameters for ccimx8x and
ccimx93). Thus, move this information to the platform-specific data table.

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

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-03-12 12:18:59 +01:00
Javier Viguera d8454cecc7 trustfence-sign-artifact: create a table for platform-specific data
It is a cosmetic change, as there is no change in functionality, but
convert the if..elif..fi structure to a table with the platform-specific
data, so it's easier to maintain and extend.

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

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-03-12 12:18:59 +01:00
Gabriel Valcazar 8ce2fddc7f build.sh: fix error when applying CVE layer
In our previous commit, we changed the CVE scan class from "vigiles" to
"digi_ccss" if we plan on building images with the CVE layer. However, we
make this change in conf/local.conf and then run "bitbake-layers add-layer" to
add said layer. Since the bbclass is exclusive to the CVE layer, bitbake isn't
able to recognize it and fails.

Add the CVE layer to the project before adding the Vigiles configuration
template to conf/local.conf.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-03-12 11:07:39 +01:00
Gabriel Valcazar 190e7a8df1 build.sh: change name of class used for CVE scan depending on layers used
Our CVE layer now includes a new bbclass that extends the logic of the
"vigiles" bbclass. Use this new class if we are building images with the CVE
layer.

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

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-03-11 18:08:31 +01:00
Isaac Hermida d013c4c0b1 linux-virtualization: expand docker config extract
expand the docker defconfig excerpt to add more default options, as some
of them might be enable in some platform defconfigs but not in other ones,
so just set all of them, as it is safe, and nothing happens if they are
already set in the original default defconfig.

To check if all LXC/docker options are enabled for a kernel,
run lxc-checkconfig in the system.

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

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2024-03-08 13:13:32 +01:00
Javier Viguera be04b21ecd ccimx93: add support to build FIT images
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-03-04 10:44:58 +01:00
Javier Viguera 3eed042d80 image_types_digi: restrict boot image artifacts using KERNEL_IMAGETYPE
When we use a fitImage kernel type, all the boot artifacts are inside the
FIT image, so there is no need to add them to the boot image additionally.

We were using TRUSTFENCE_FIT_IMG to do this filtering, which uses
a fitImage kernel type underneath. This commit uses KERNEL_IMAGETYPE
instead, as this way, we can use kernel FIT images out of Trustfence and
still prevent polluting the boot images with not-needed artifacts.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-03-04 10:44:58 +01:00
Javier Viguera e915a14b4b u-boot-dey: add /boot directory to the recipe sysroot
Other recipes may access SYSROOT_DIRS content by adding a dependence
on do_populate_sysroot.

We need this specific directory for the kernel fitImage support.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2024-03-04 10:44:58 +01:00
Isaac Hermida c5c9838e54 packagegroup-imx-ml: imx93: only install tensorflow-lite
Not installing all the ML packages but just tensorflow-lite saves space.
We are not including onnxruntime and torchvision, which are not supported
by the i.mx93 (see NXP user guide for details).
The ext4.gz size is decreased from 430MB to 217MB.

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2024-02-29 12:58:16 +01:00
Mike Engel 9f9d016f5d ccmp1: fix the TFA naming with Trustfence enabled.
Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2024-02-29 12:56:28 +01:00
Mike Engel c66be227f6 u-boot-dey: fix generation of uuu script when Trustfence is enabled.
Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2024-02-29 12:56:28 +01:00
Gabriel Valcazar 948e55bde9 swupdate: replace on-the-fly patch with a clearer, equivalent one
The patch we were using comes from the time during dualboot support development
where said feature was selectable at build time. The patch adds a new build
option, giving the impression that it only gets enabled under certain
circumstances, when in reality:

    * The option is never enabled anywhere in our code
    * It's a string option that is treated like a boolean, meaning its
      respective conditional compilation is always getting compiled even when
      disabled

Our current dualboot support is enabled at runtime, so it doesn't make sense to
have a build-time option related to it, especially one that's broken. Replace
the patch with a functionally equivalent one that is less confusing. Also,
remove the related config option from our defconfig.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-02-27 18:37:36 +01:00