Commit Graph

176 Commits

Author SHA1 Message Date
Max Krummenacher
9523cfddcd imx-boot-container.bbclass: follow builddir change
openembedded core renamed the build directory to include the build type.
commit 22e96b32b0be ("u-boot: Make sure the build dir is unique for
each UBOOT_CONFIG")

Follow that.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2025-10-15 14:39:54 +02:00
Max Krummenacher
aab7195c70 EULA: Update to v58
This version is used in NXP release 6.12.20-2.0.0

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2025-07-25 11:14:59 +02:00
Max Krummenacher
b747b01501 global: whinlatter updates for WORKDIR/UNPACKDIR and git fetch location
The series [1] changed the way sources are fetched/unpacked and
S needs to follow that. Additionally for git repos it moved away from
having 'git/' as the checkout directory.

This has been partly tested by building weston based image for
imx6/imx6ull/imx7/imx8/imx8mm/imx8mp/imx95 based images.
E.g. none of the recipes specific for qoriq is built time tested.

As walnascar is no longer compatible with master/whinlatter drop
it from LAYERSERIES_COMPAT.

[1] https://lore.kernel.org/openembedded-core/20250616095000.2918921-1-alex.kanavin@gmail.com/

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2025-06-28 18:58:39 +02:00
Emil Kronborg
6304f94df2 imx-boot-container: copy ${OPTEE_BOOT_IMAGE} to ${B}
After commit commit 015483904c52 ("arm: imx8m: add OP-TEE node") in
upstream U-Boot, Binman complains if building imx8mp_evk with
CONFIG_OPTEE=y because tee.bin is missing:

    Image 'image' is missing external blobs and is non-functional: tee-os

    /binman/section/nxp-imx8mcst@1/fit/images/tee/tee-os (tee.bin):
       See the documentation for your board. You may need to build Open Portable
       Trusted Execution Environment (OP-TEE) and build with TEE=/path/to/tee.bin

    Image 'image' has faked external blobs and is non-functional: tee.bin

    Some images are invalid
    make: *** [Makefile:1135: .binman_stamp] Error 103

This commit ensures that ${OPTEE_BOOT_IMAGE}, for example, tee.bin for
imx8mp-evk, is copied to the build folder if the optee feature is
enabled.
2025-06-23 18:22:06 +02:00
Ernest Van Hoecke
ab2458268c EULA: Update to v58
This version is used in NXP BSP LF6.12.3-1.0.0

Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@toradex.com>
2025-04-15 15:14:20 +02:00
Alexander Stein
f79a6de90e use-imx-security-controller-firmware: Add i.MX 91 configuration
Add the SECO FW file name for i.MX 91. It is based on
imx-6.6.52_2.2.0 NXP BSP release.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
2025-01-29 08:27:34 +01:00
Max Krummenacher
cb0f79f4d1 use-imx-security-controller-firmware: Add i.MX 95 configuration
Add the SECO FW file name for i.MX 95.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2024-10-22 00:13:56 +02:00
Benjamin Szőke
9e09c96405 EULA: Update to v57 2024-10-21 18:14:45 +02:00
Tom Hochstein
ef8b4c41cf boot: Fix UUU tagging, extend to fslc
Using the UUU-tagged bootloader image directly with UUU can cause UUU
to hang. The bootloader image is split on a certain transmit size, and
the hang occurs if the tag does not fit with the final bytes of the
bootloader image and must be split into a new transmit package.

The UUU tag is needed by UUU only in the SD Card image file itself so
that UUU can find the end of the boot partition.

Rework the design so the default bootloader and the default imx-boot
binaries are not tagged.

Also, extend the UUU tagging to fslc so it can gain the same benefit.

Fixes: https://github.com/Freescale/meta-freescale/pull/1762
Fixes: https://github.com/nxp-imx/mfgtools/issues/416
Co-authored-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
2024-09-16 04:36:03 -07:00
Benjamin Szőke
236d75c614
imx-boot-container: Assigne weak init value for IMX_BOOT_CONTAINER_FIRMWARE_SOC 2024-09-07 13:45:00 +02:00
Piotr Wojtaszczyk
3a26a0b27f fsl-u-boot-localversion.bbclass: Add back UBOOT_LOCALVERSION to .scmversion
This fixes regression done in the mentioned commit.

Fixes: d7e13f19fb ("fsl-u-boot-localversion.bbclass: fix SRCREV_machine and AUTOREV use cases")
Signed-off-by: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
2024-07-30 13:16:25 +02:00
Piotr Wojtaszczyk
8c5fbbce4d fsl-u-boot-localversion.bbclass: Unify indentations
Fixes: d7e13f19fb ("fsl-u-boot-localversion.bbclass: fix SRCREV_machine and AUTOREV use cases")
Signed-off-by: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
2024-07-30 13:16:25 +02:00
Benjamin Szőke
7eea973661
EULA: Update to v56 2024-06-24 12:47:29 +02:00
Oleksandr Suvorov
03d400ca8b EULA: Update to v53
This version is used in NXP BSP LF6.6.3-1.0.0.

Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
2024-04-01 21:48:10 +03:00
Hiago De Franco
67f95836f2 uuu_bootloader_tag.bbclass: Use UUU_BOOTLOADER_TAGGED variable
Use UUU_BOOTLOADER_TAGGED variable instead of UUU_BOOTLOADER in the stat
function to make the code more specific and easy to read.

Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
2024-03-09 19:14:32 -03:00
Hiago De Franco
5a906365fd uuu_bootloader_tag.bbclass: Add UUU_BOOTLOADER_UNTAGGED
Add UUU_BOOTLOADER_UNTAGGED flag to add the possibility to deploy a
imx-boot binary without the tagged footer
'UUUBURNXXOEUZX7+A-XY5601QQWWZ%sEN' at the end.

The addition of the footer 'UUUBURNXXOEUZX7+A-XY5601QQWWZ%sEN' at the end
causes issues when the binary is loaded into RAM memory, this footer may
cause issues where the binary size exceeds the typical USB package size
used by UUU (1021 bytes).

As example, if the footer is split across two distinct USB packages,
such as sending 'UUUBURNXXXOE' in the last packet and
'UZX7+A-XY5601QQWWZ%sEND' in the next one, it can lead to UUU halting
while waiting for a response in SDPS mode.

After sending 'UUUBURNXXXOE', iMX8MP's boot room starts SPL, not waiting
for the next packet ('UZX7+A-XY5601QQWWZ%sEND'), leading to UUU
breaking.

Therefore, deploy both binaries separately (-tagged and -untagged) to
allow users to choose the appropriate binary.

Signed-off-by: Hiago De Franco <hiago.franco@toradex.com>
2024-03-08 17:33:21 -03:00
Max Krummenacher
0a9b7135ab EULA,SCR: Update to v49 for NXP release 6.1.55-2.2.0
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2024-01-16 10:34:29 +01:00
Tom Hochstein
9881cac1cc Revert "fsl-dynamic-packagearch: fix MACHINE_SOCARCH definition"
This change makes no sense. MACHINE_SOCARCH must include the suffix
that makes the value SOC-specific. Otherwise, errors such as this occur:
```
ERROR: imx-dpu-g2d-2.1.12-r0 do_create_spdx_setscene: Recipe imx-dpu-g2d is trying to install files into a shared area when those files already exist. The files and the manifests listing them are:
  tmp/deploy/spdx/armv8a/packages/libg2d-dev.spdx.json
    (matched in manifest-armv8a-imx-pxp-g2d.create_spdx)
  tmp/deploy/spdx/armv8a/packages/libg2d2.spdx.json
    (matched in manifest-armv8a-imx-pxp-g2d.create_spdx)
```

This reverts commit 6579ce9b77.
2023-12-31 11:48:02 -07:00
Joao Marcos Costa
6579ce9b77 fsl-dynamic-packagearch: fix MACHINE_SOCARCH definition
The sstate manifest for populate_sysroot was not being named
properly for firmware-sentinel and imx-boot-firmware-files, raising the
following error:

The sstate manifest for task 'firmware-sentinel:populate_sysroot'
(multilib variant '') could not be found.
The pkgarchs considered were: microej_imx93, armv7ahf-neon-vfpv4-mx93,
armv7ahf-neon-mx93, (and so on...)

But none of these manifests exists:
    ...build/tmp-glibc/sstate-control/manifest-microej_imx93-imx-boot-firmware-files.populate_sysroot
    ...build/tmp-glibc/sstate-control/manifest-armv7ahf-neon-vfpv4-mx93-imx-boot-firmware-files.populate_sysroot
... and so on.

All the other packages were suffixed with TUNE_PKGARCH only, so I couldn't
see the reason why only some specific packages from meta-freescale were using
that.

Remove MACHINE_SOCARCH_SUFFIX so as the sstate manifest is compatible
with what's expected in populate_sysroot.

Signed-off-by: Joao Marcos Costa <joaomarcos.costa@bootlin.com>
2023-12-29 14:50:18 +01:00
Jun Zhu
d7e13f19fb fsl-u-boot-localversion.bbclass: fix SRCREV_machine and AUTOREV use cases
Use the same logic as fsl-kernel-localversion.bbclass:
    commit 16a356ef0d

Signed-off-by: Jun Zhu <junzhu@nxp.com>
2023-12-05 18:47:35 +08:00
Max Krummenacher
16a356ef0d fsl-kernel-localversion: fix SRCREV_machine and AUTOREV use cases
Depending on how one uses the Yocto kernel classes the kernels hash
is defined in either "SRCREV_machine" or "SRCREV". If "SRCREV_machine"
is in use, "SRCREV" stays at its bitbake default "INVALID".

If the "SRCREV_machine" or "SRCREV" is set to "AUTOREV" that value is
replaced by "AUTOINC".

If using "SRCREV_machine" and/or "AUTOREV" do_kernel_localversion fails

| run.do_kernel_localversion:158 exit 128 from 'head=`git --git-dir=.../.git rev-parse --verify --short INVALID 2> /dev/null`'

Cope with both use cases.

Fixes: 41537394 ("classes: make localversion classes deterministic")
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2023-12-04 15:16:51 +01:00
Daniel Wagenknecht
415373942a classes: make localversion classes deterministic
The localversion string built into the kernel and u-boot should be
deterministic. With OpenEmbedded it is common practice to apply patches
to the sources. The commit id of HEAD will differ each time the patching
step is rerun. With the previous implementation of the fsl-{kernel,u-
boot}-localversion classes this produced non-deterministic commit ids to
be used. This is undesireable, because the commit-id read from the
version string during runtime is not present in the sources. It also
caused problems when building out-of-tree kernel-modules if the kernel
itself was taken from sstate cache but the kernel-module needed to be
rebuild and retriggered the kernels do_patch task (see #961).

Rework to produce a deterministic string that will use the commit id
given as SRCREV and count the number of patches applied on top.

With e.g. commit id 11aabbcc and 5 patches this will result in a version
string
  +g11aabbcc+p5

Fixes: https://github.com/Freescale/meta-freescale/issues/961

Signed-off-by: Daniel Wagenknecht <dwagenknecht@emlix.com>
2023-11-28 12:05:41 +01:00
Khem Raj
a941be9ce1 image_types_fsl.bbclass: Drop use of IMAGE_NAME_SUFFIX
This is no longer required since its already merged into IMAGE_NAME and
IMAGE_LINK_NAME via [1] in OE-Core. Infact it causes problems now if we
add .rootfs explicitly, this created non-existent filenames and
resulting images are wrong.

[1] https://git.openembedded.org/openembedded-core/commit/meta/classes-recipe/image-artifact-names.bbclass?id=26d97acc71379ab6702fa54a23b6542a3f51779c

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-11-09 19:49:03 -08:00
Tom Hochstein
8687e10df7 EULA,SCR: Update for NXP release 6.1.36-2.1.0
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
2023-10-30 14:29:11 -07:00
Daiane Angolini
23af0e4d35 imx-boot-container: Create only one imx-boot
Only the first UBOOT_CONFIG generate a imx-boot and flash.bin symlink.

Every UBOOT_CONFIG creates a flash.bin-${MACHINE}-${type} binary.

Signed-off-by: Daiane Angolini <daiane.angolini@foundries.io>
2023-09-22 17:08:10 -03:00
Tom Hochstein
0688f79193 imx-base.inc: Implement generic SOC revision design
Rework imx-boot and use-imx-security-controller-firmware.bbclass with a
generic SOC revision design implemented in imx-base.inc. This does
replace the machine feature design using `soc-rev*`, but maintains
backwards compatibility by incorporating that design into the default
settings.

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
2023-08-21 11:48:06 -07:00
Tom Hochstein
413a8b64a5 fsl-eula-unpack.bbclass: Add v44 EULA sum
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
2023-08-21 11:48:06 -07:00
Daiane Angolini
af6bb957e5 fsl-eula-unpack.bbclass: Update EULA for NXP release 6.1.22-2.0.0 EULA is V45 now.
Signed-off-by: Daiane Angolini <daiane.angolini@foundries.io>
2023-07-26 17:20:38 -03:00
Jose Quaresma
0e66dee54a mfgtool-initramfs-image: IMAGE_NAME_SUFFIX should by empty for initramfs
INITRAMFS_IMAGE_NAME stay as before but it assumes that all
images used as initramfs will set IMAGE_NAME_SUFFIX to empty.

https://git.yoctoproject.org/poky/commit/?id=6f6c79029bc2020907295858449c725952d560a1

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
2023-07-05 17:06:25 +00:00
Javier Viguera
e5401e6aeb fsl-kernel-localversion: fix regression setting LOCALVERSION
CONFIG_LOCALVERSION is a string setting. It needs to go between quotes in
the .config file.

$ grep CONFIG_LOCALVERSION= .config
CONFIG_LOCALVERSION="-dey"

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
2023-06-19 15:06:24 +03:00
Otavio Salvador
faf2e7fdee classes/image_populate_mfgtool: fix basehash value change
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2023-04-14 16:10:42 -03:00
Otavio Salvador
1221046d7e classes/image_populate_mfgtool: avoid error copying duplicated files
Eventually, multiple `uuu` script may install same binaries. We need to
ensure we install them once, otherwise it'll fail as it might try to
override a existing binary.

This commit ensure all dependencies and binaries are mentioned once,
removing duplication.

Fixes: ae7af6f8 ("classes/image_populate_mfgtool: init")
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2023-04-13 16:50:02 -03:00
Otavio Salvador
2db70b26e5 classes/mfgtool-initramfs-image: remove u-boot-mfgtool dependency
The initramfs image doesn't use the U-Boot binaries so there is no
reason for a dependency on it.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2023-04-12 17:12:18 -03:00
Otavio Salvador
ae7af6f877 classes/image_populate_mfgtool: init
The class provides the infrastructure for MFGTOOL generation and is tied
to images. To generate the bundle, the task populate_mfgtool must be
called. For example:

,----[ Running populate_mfgtool for core-image-minimal image ]
| $: bitbake core-image-minimal -c populate_mfgtool
`----

The class behavior is controlled through the MFGTOOLCONFIG (analogous to
PACKAGECONFIG) variable. The MFGTOOLCONFIG variable itself specifies a
space-separated list of the script to enable. Following the script, you
can determine the behavior of each script by providing up to two
order-dependent arguments, which are separated by commas. You can omit
any argument you like but must retain the separating commas. The order
is important and specifies the following:

  1. Extra dependencies that should be added to the do_populate_mfgtool
     task, if the script is enabled.
  2. Extra binaries that should be added to the bundle, if the script is
     enabled.

For example:

,----[ Defining foo.uuu.in and bar.uuu script ]
| MFGTOOLCONFIG = "foo.uuu.in bar.uuu"
| MFGTOOLCONFIG[foo.uuu.in] = "dep-foo1:do_deploy dep-foo2:do_deploy,file-foo1"
| MFGTOOLCONFIG[bar.uuu] = "dep-bar1:do_deploy,file-bar1 file-bar2"
`----

The dep-foo1:do_deploy, dep-foo2:do_deploy, and dep-bar1:do_deploy are
added to do_populate_mfgtool dependencies. In addition, file-foo1,
file-bar1, and file-bar2 are copied to the bundle, only if the script is
enabled.

During the mfgtool bundle generation, the uuu.in files are processed and
some variables replaced. The variables are:

  - MACHINE
  - UBOOT_BINARY
  - SPL_BINARY
  - IMAGE_BASENAME

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2023-04-12 17:12:18 -03:00
Otavio Salvador
61e08e8843
Merge pull request #1488 from MaxKrummenacher/master-imx-boot
imx-boot-container: drop from machine overrides
2023-04-10 07:54:11 -03:00
Max Krummenacher
1b67d51cc2 imx-boot-container: drop from machine overrides
Moving the override from the <machine>.conf files to the common
imx-base.inc and setting the use of imx-boot-container unconditionally
on the used SoC makes the use of an extra override obsolete.

Simply set UBOOT_PROVIDES_BOOT_CONTAINER depending on the used SoC
is enough. Both the U-Boot recipe and the class implementing the logic
don't need the override but only look at the variable.

This also simplifies overriding the value set in imx-base.inc
in an individual <machine>.conf should that be needed.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2023-04-10 11:40:55 +02:00
Max Krummenacher
93a4b871a8 imx: fw: allow to build for mainline bsp too
SECO/SC FW/HDMI FW and friends should not be restricted to imx-nxp-bsp.
If one wants to build machines for a mainline kernel / user space these
would be required to build the boot container too.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2023-04-10 11:22:46 +02:00
Jun Zhu
f32b6cd9d5 fsl-eula-unpack.bbclass: Update EULA for NXP release 6.1.1-1.0.0
EULA is V42 now.

Signed-off-by: Jun Zhu <junzhu@nxp.com>
2023-04-09 22:45:38 +08:00
Jun Zhu
9018954bf1 use-imx-security-controller-firmware.bbclass: SECO_FIRMWARE_NAME as weak variable
With `SECO_FIRMWARE_NAME` weak variable, user can update with new name
when new version is released.

Signed-off-by: Jun Zhu <junzhu@nxp.com>
2023-03-22 11:50:52 +08:00
Daiane Angolini
de744be7cf use-imx-security-controller-firmware: Add i.MX 93 configuration
It add SECO_FIRMWARE_NAME for mx93-nxp-bsp.

It is based on 5.15.71_2.2.0 NXP BSP release.

Signed-off-by: Daiane Angolini <daiane.angolini@foundries.io>
2023-02-14 10:59:01 -03:00
Daiane Angolini
5fac36afdf use-imx-security-controller-firmware: Configure for imx8ulp
Add SECO_FIRMWARE_NAME for i.MX 8ULP.

Signed-off-by: Daiane Angolini <daiane.angolini@foundries.io>
2023-02-07 08:16:40 -03:00
Gary Bisson
bfd95d9c43 imx-boot-container: add copy of soc-specific firmware
- Currently only the DDR firmware files are copied
- i.MX 8MQ SoC also requires either HDMI or DP firmware
- Refactor the copy from deploydir to the U-Boot build folder to be
  generic to all firmware files

Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
2022-11-26 18:45:34 +01:00
Laurits Riple
f4cd8cd278 bb.data.update_data is deprecated 2022-11-15 00:27:09 +01:00
Tom Hochstein
9537272254 EULA,SCR: Update for NXP release 5.15.52-2.1.0
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
2022-10-23 10:43:18 -05:00
Guillaume Deroire
61b81118e3 classes/fsl-dynamic-packagearch: Add multilib support
Currently, the class doesn't support multilib image/SDK generation for packages
built for MACHINE_SOCARCH with MULTILIB support and this commit fixes this.

To reproduce the error, add to local.conf:

require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE:virtclass-multilib-lib32 = "armv7athf-neon-vfpv4"
IMAGE_INSTALL_append = "lib32-libusb1"

Build image with: 'bitbake core-image-minimal'

The build will fail during do_rootfs/do_populate_sdk on lib32-wayland-protocols package.
2022-09-16 19:50:13 +00:00
Tom Hochstein
98275f8772 fsl-eula-unpack.bbclass: Expose a function for reuse
Expose find_nxp_eula_licenses for others to use.

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
2022-08-10 10:59:34 -05:00
Tom Hochstein
42458b2586 fsl-eula-unpack.bbclass: Rework logic order
Simple order change to simplify the change in the next commit.

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
2022-08-10 10:58:31 -05:00
Tom Hochstein
4f9ab86277 fsl-eula-unpack.bbclass: Fail if fsl-eula=true is missing
It doesn't make sense to inherit the class but not use it.

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
2022-08-10 10:57:46 -05:00
Francesco Valla
5d96d63456 classes: fsl-kernel-localversion: fix usage with devtool
Make fsl-kernel-localversion devtool-compatible, avoiding to depend on
${WORKDIR}/defconfig to be present. Two approaches are taken:

- for recipes inheriting kernel-yocto, LINUX_VERSION_EXTENSION is set to
  LOCALVERSION; in this way, the do_kernel_configme task will use it to
  set CONFIG_LOCALVERSION once the .config file is generated;

- for recipes not inheriting kernel-yocto, CONFIG_LOCALVERSION is simply
  appended to the .config file contained inside the build directory.

The do_kernel_localversion is being made executed after do_kernel_configme
rather than do_kernel_metadata; in this way, modifications are applied
after the config-by-fragments step has already been performed.

Signed-off-by: Francesco Valla <valla.francesco@gmail.com>
2022-07-31 16:48:22 +02:00
Otavio Salvador
bed09c8dae imx-base.inc: avoid explicit imx-boot dependency
We shouldn't force `imx-boot` dependency for i.MX8 SoCs as many can use
U-Boot mainline and those use `imx-boot-container` to generate the
binary blob.

We moved the backward-compatibility note, about 'imx-boot' to the
'imx-boot-container' class.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2022-07-29 13:20:52 -03:00