From: kavinaya@qti.qualcomm.com
To: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 1/2] kernel-fitimage: add support for custom ITS file override
Date: Mon, 22 Sep 2025 01:41:23 -0700 [thread overview]
Message-ID: <19647.1758530483327855783@lists.openembedded.org> (raw)
In-Reply-To: <bbe0c5a1368b36754e800576d8f93d1ca406ab86.camel@siemens.com>
[-- Attachment #1: Type: text/plain, Size: 4007 bytes --]
On Sun, Sep 21, 2025 at 05:10 PM, Adrian Freihofer wrote:
>
> Hi Kavinaya
>
> Thank you for the patch. LGTM.
>
> But, there is a but. While I acknowledge the concept of 'improved
> flexibility for advanced use cases,' it's vital to consider a common
> pitfall. Many existing BSPs have unfortunately led to user frustration.
> This is predominantly due to vendors integrating considerable amounts
> of downstream code that, despite intentions, often proves incompatible
> with future Yocto updates.
>
> The direct consequence is that users face significant hurdles in
> updating their products, leading to either stagnation or high costs
> associated with fixing or circumventing these incompatibilities.
>
> This problem not only impacts users directly but also casts a shadow on
> the Yocto Project, which can be perceived as culpable. In reality, such
> extensions often bypass upstream maintainers entirely, lacking the
> critical upstream test coverage necessary for long-term stability.
>
> My recommendation, therefore, is to proactively prevent such
> frustration by officially supporting these 'advanced' use cases and
> ensuring they have dedicated test coverage. This approach is preferable
> to merely contributing API extensions that might enable all sorts of
> potentially unexpected and untested downstream implementations.
>
> Kind regards,
> Adrian
Hi Adrian,
This change proposes an enhancement to the kernel-FIT image generation process within OpenEmbedded—specifically, the ability to optionally provide a manual.its file in place of the dynamically generated version from kernel-fit-image.bbclass.
This request is motivated by practical challenges encountered in supporting multiple SoC and board variants using a unified DTS file. The current dynamic generation mechanism does not accommodate the level of specificity required for our deployment scenarios. Below are the key reasons for this proposal:
*1. Variant-Specific Compatibility Strings*
Our DTS files support multiple board variants, but the compatible string format required by our UEFI implementation is more granular than what dynamic generation allows. The format we rely on is:
compatible = "qcom,<SoC>[-<soc_version>][-<foundry_id>]-<board>[/<subtype>][-<pmic>][-<board_version>]"
This structure enables precise identification of the appropriate DTB for each board variant, which is critical for correct boot behavior.
*2. Overlay DTBO Integration*
As demonstrated in the upstream kernel Makefile for QCOM platforms (link), overlays are used to generate composite DTBs:
qcs6490-rb3gen2-vision-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-vision-mezzanine.dtbo
qcs6490-rb3gen2-industrial-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-industrial-mezzanine.dtbo
In both cases, the base DTB remains the same, but the overlays differ. Without manual.its file support, we cannot assign unique compatible strings to these variants, which limits UEFI’s ability to distinguish between them.
*3. Scalability and Maintainability*
As the number of supported variants grows, maintaining compatibility and configuration logic solely through dynamic generation becomes increasingly complex and error-prone. Manual.its files offer a scalable and maintainable alternative.
Therefore, we suggest introducing a conditional override mechanism in kernel-fit-image.bbclass that allows developers to supply a manual.its file when needed. This approach preserves existing behavior while enabling advanced use cases.
We understand the importance of maintaining upstream compatibility and minimizing user frustration. To that end, we propose this enhancement as an *opt-in mechanism* , with the intention of collaborating on upstream test coverage and documentation to ensure long-term stability. We believe this strikes a balance between flexibility for advanced use cases and the robustness expected from the Yocto Project.
Thanks,
Kavinaya
[-- Attachment #2: Type: text/html, Size: 13044 bytes --]
next prev parent reply other threads:[~2025-09-22 8:41 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20250919073335.2069114-1-kavinaya@qti.qualcomm.com>
2025-09-19 7:33 ` [PATCH 1/2] kernel-fitimage: add support for custom ITS file override Kavinaya S
2025-09-21 11:40 ` [OE-core] " Freihofer, Adrian
2025-09-22 8:41 ` kavinaya [this message]
2025-09-22 9:58 ` Alexander Kanavin
[not found] ` <1867495AF42A64B8.23261@lists.openembedded.org>
2025-09-22 20:58 ` Freihofer, Adrian
2025-09-24 8:30 ` kavinaya
2025-09-24 9:46 ` kavinaya
2025-09-26 3:42 ` kavinaya
2025-09-26 7:31 ` [OE-core] " Alexander Kanavin
2025-09-29 14:26 ` kavinaya
2025-09-19 7:33 ` [PATCH 2/2] image-fitimage.conf: introduce CUSTOM_ITS_FILE variable Kavinaya S
2025-09-22 9:44 ` [OE-core] " Alexander Kanavin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=19647.1758530483327855783@lists.openembedded.org \
--to=kavinaya@qti.qualcomm.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.