Skip to content

[Backport Wrynose] Backport OP-TEE and TF-A changes to wrynose - #3033

Merged
Dmitry Baryshkov (lumag) merged 10 commits into
qualcomm-linux:wrynosefrom
lumag:backport/3005-to-wrynose
Sep 13, 2026
Merged

Dmitry Baryshkov (lumag) merged 10 commits into
qualcomm-linux:wrynosefrom
lumag:backport/3005-to-wrynose

Conversation

@lumag

Copy link
Copy Markdown
Contributor

Backport #2707, #2862, #2910 and #3005 to wrynose.

@ricardosalveti

Copy link
Copy Markdown
Contributor
2026-08-29 11:13:13 - ERROR    - Command "/work/build$ /work/bitbake/bin/bitbake -c build qcom-multimedia-image qcom-multimedia-proprietary-image qcom-container-orchestration-image qcom-networking-image" failed:
ERROR: qcom-multimedia-image-1.0-r0 do_populate_lic_deploy: Some packages cannot be installed into the image because they have incompatible licenses:
	trusted-firmware-a-qcom-rb3gen2 (LICENSE.qcom)

Need the distro / license update as well.

Royyan Zahir (royzah) and others added 10 commits September 10, 2026 17:06
coreboot/qc_blobs carries only the sc7280 qtiseclib that qcm6490 links
into BL31, yet every machine building this recipe fetches the whole
repository.

Append the qc_blobs entry to SRC_URI for qcm6490 only, so machines
that do not consume the blob do not fetch it.

Suggested-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com>
Signed-off-by: Royyan Zahir <royzah@gmail.com>
(cherry picked from commit af9c2a8)
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
The underscore is the separator in SRCREV_FORMAT, so an SCM named
qc_blobs cannot be referenced as a format component and its revision is
left out of the format, and with it out of the task hash.

Rename the SCM to qc-blobs and accumulate per-machine components in
SRCREV_FORMAT_qcom, so the blob revision takes part in the task hash on
the machines that fetch it.

Suggested-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com>
Signed-off-by: Royyan Zahir <royzah@gmail.com>
(cherry picked from commit d0132ec)
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
…-2.15-20260804

The 2.14 tags predate the lemans platform drivers, so BL31 built from
them is not functional on qcs9100, and the lemans qtiseclib blob is
superseded work in progress. The native drivers landed with
qcom-next-2.15-20260804.

Upgrade all machines to that tag; lemans builds native, no qtiseclib.

Signed-off-by: Royyan Zahir <royzah@gmail.com>
(cherry picked from commit 8047e1e)
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
The existing TFA_BUILD_TARGET only built bl2 and fip,
which is sufficient for a standard UEFI-based boot
flow. However, to support the U-Boot SPL + FIT image
based secure boot flow, bl31 must be built as an
explicit binary artifact.

U-Boot SPL loads a FIT image that bundles bl31 (TF-A),
OP-TEE (bl32), and U-Boot proper (bl33) as separate
loadable images. For SPL to load and jump to bl31
directly, the bl31.bin binary must be available as a
standalone artifact at deploy time. It cannot be
extracted from the fip alone in this flow.

Adding bl31 to TFA_BUILD_TARGET ensures bl31.bin is
produced and available for packaging into the SPL
FIT image.

Signed-off-by: Kavinaya S <kavinaya@qti.qualcomm.com>
(cherry picked from commit 74606d6)
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
One recipe gated on MACHINE builds a single TF-A platform, so the platform,
the FIP address and the qtiseclib blob all had to be keyed on the machine.

Give each device its own recipe holding those, and keep the shared source
and build rules in the include. The blob follows its recipe, so a platform
without qtiseclib no longer claims its licence. FIP_ELF_ADDR has no sensible
default, so refuse a device recipe that leaves it unset.

Signed-off-by: Royyan Zahir <royzah@gmail.com>
(cherry picked from commit eddb7e7)
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
optee-os-qcom picks its OP-TEE platform from MACHINE, so a build can only
ever hold one, while the TF-A recipes are now per device.

Give each OP-TEE platform its own recipe and point each TF-A recipe at the
one it needs. The devkit and optee-test stay machine-scoped; a rootfs
targets a single machine.

Signed-off-by: Royyan Zahir <royzah@gmail.com>
(cherry picked from commit c7a5770)
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
…hine

Now that both are per platform, nothing ties them to qcm6490 or qcs9100.
Widen them so a machine like qcom-armv8a can build kodiak and lemans
firmware side by side.

Signed-off-by: Royyan Zahir <royzah@gmail.com>
(cherry picked from commit a5c633a)
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
In some cases (`build world` or just a build targeting generic machines)
it might be required to deploy several OP-TEE recipes simultaneously.
The optee-os.inc from meta-arm deploys all recipes to the "optee"
subdir, causing conflicts between optee-os-qcom-lemans and
optee-os-qcom-kodiak. Override the do_deploy() functions locally,
letting individual recipes specify separate deployment directories.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
(cherry picked from commit 1127e71)
Now as the optee-os-qcom provides support for recipe-specific deployment
dirs, deploy Kodiak OP-TEE to the "optee-kodiak" directory.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
(cherry picked from commit 0cacb51)
Now as the optee-os-qcom provides support for recipe-specific deployment
dirs, deploy Lemans OP-TEE to the "optee-lemans" directory.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
(cherry picked from commit ba7c9cf)
@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit d4da613

qcom-distro
Pass: 228 | Fail: 3 | Total: 259
qcom-distro_linux-qcom-next
Pass: 11 | Fail: 1 | Total: 12
nodistro
Pass: 9 | Fail: 1 | Total: 10

@test-reporting-app

test-reporting-app Bot commented Sep 10, 2026

Copy link
Copy Markdown

Test Results

  119 files  +   89    715 suites  +685   7h 16m 56s ⏱️ + 4h 6m 10s
  171 tests +  158    165 ✅ +  156   1 💤 + 1  5 ❌ +1 
4 605 runs  +4 337  4 535 ✅ +4 275  62 💤 +62  8 ❌ ±0 

For more details on these failures, see this check.

Results for commit d4da613. ± Comparison against base commit 4cdb8b0.

♻️ This comment has been updated with latest results.

@qcomlnxci

Copy link
Copy Markdown

Test Coral run workflow

Test jobs for commit d4da613

  • qcomdistro 6.18: multimedia image-prop
    Pass: 32 | Fail: 0 | Total: 32
  • qcomdistro 6.18: multimedia image
    Pass: 8 | Fail: 0 | Total: 8

@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit d4da613

qcom-distro
Pass: 230 | Fail: 1 | Total: 259
qcom-distro_linux-qcom-next
Pass: 294 | Fail: 44 | Total: 357
nodistro
Pass: 10 | Fail: 0 | Total: 10

@github-actions

Copy link
Copy Markdown

Test run workflow

Test jobs for commit d4da613

qcom-distro
Pass: 230 | Fail: 1 | Total: 259
qcom-distro_linux-qcom-next
Pass: 316 | Fail: 7 | Total: 357
nodistro
Pass: 10 | Fail: 0 | Total: 10

@lumag

Copy link
Copy Markdown
Contributor Author

Known issues.

@lumag
Dmitry Baryshkov (lumag) merged commit 5e980b9 into qualcomm-linux:wrynose Sep 13, 2026
241 of 242 checks passed
@lumag
Dmitry Baryshkov (lumag) deleted the backport/3005-to-wrynose branch September 13, 2026 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants