Openembedded Core Discussions
 help / color / mirror / Atom feed
* [OE-core][PATCH] kernel-fit-image: Add KERNEL_DTBVENDORED support for FIT_CONF_DEFAULT_DTB
@ 2026-06-30 19:04 Ryan Eatmon
  2026-07-02  9:31 ` adrian.freihofer
  0 siblings, 1 reply; 3+ messages in thread
From: Ryan Eatmon @ 2026-06-30 19:04 UTC (permalink / raw)
  To: openembedded-core

When specifying a FIT_CONF_DEFAULT_DTB for a machine, you have to
exactly align the name with what will be in the fitImage file or you
will get a build error.  If you also turn on KERNEL_DTBVENDORED then you
must also specify the vendor directory as part of the dtb name that you
want for the default, but you must manually do the same mapping that the
kernel-fit-image class is doing when it generates the fit-image.its file.

This patch just adds the same logic to figure out the value for the
requested default dtb and eliminate the need to understand the internal
mapping of the class.  It should make specifying the value more
intuitive.  The same value that you put in the KERNEL_DEVICETREE can be
used in the FIT_CONF_DEFAULT_DTB and the new code will correctly honor
the KERNEL_DTBVENDORED setting.

Before:

  KERNEL_DEVICETREE = "
    ti/k3-am62p5-sk.dtb \
    ... \
  "
  FIT_CONF_DEFAULT_DTB = "ti_k3-am62p5-sk.dtb"

After:

  KERNEL_DEVICETREE = "
    ti/k3-am62p5-sk.dtb \
    ... \
  "
  FIT_CONF_DEFAULT_DTB = "ti/k3-am62p5-sk.dtb"

Signed-off-by: Ryan Eatmon <reatmon@ti.com>
---
 meta/classes-recipe/kernel-fit-image.bbclass | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/meta/classes-recipe/kernel-fit-image.bbclass b/meta/classes-recipe/kernel-fit-image.bbclass
index 448a88ccb1..f49838d639 100644
--- a/meta/classes-recipe/kernel-fit-image.bbclass
+++ b/meta/classes-recipe/kernel-fit-image.bbclass
@@ -195,8 +195,21 @@ python do_compile() {
                                                  loadable_loadaddress,
                                                  loadable_entrypoint)
 
+    # Figure out if we have a default dtb and if we need to honor the
+    # KERNEL_DTBVENDORED variable to tweak the name to match what will be
+    # in the fitImage.
+    default_dtb = d.getVar("FIT_CONF_DEFAULT_DTB")
+    if default_dtb:
+        # With vendored DTs, replace any path separators with underscores,
+        # this matches the behavior used to generate the dtb entry in other
+        # parts of the code.
+        if d.getVar('KERNEL_DTBVENDORED') != "1":
+            default_dtb = os.path.basename(default_dtb)
+        else:
+            default_dtb = default_dtb.replace('/', '_')
+
     # Generate the configuration section
-    root_node.fitimage_emit_section_config(d.getVar("FIT_CONF_DEFAULT_DTB"), d.getVar("FIT_CONF_MAPPINGS"))
+    root_node.fitimage_emit_section_config(default_dtb, d.getVar("FIT_CONF_MAPPINGS"))
 
     # Write the its file
     root_node.write_its_file(itsfile)
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [OE-core][PATCH] kernel-fit-image: Add KERNEL_DTBVENDORED support for FIT_CONF_DEFAULT_DTB
  2026-06-30 19:04 [OE-core][PATCH] kernel-fit-image: Add KERNEL_DTBVENDORED support for FIT_CONF_DEFAULT_DTB Ryan Eatmon
@ 2026-07-02  9:31 ` adrian.freihofer
  2026-07-02 11:06   ` Ryan Eatmon
  0 siblings, 1 reply; 3+ messages in thread
From: adrian.freihofer @ 2026-07-02  9:31 UTC (permalink / raw)
  To: reatmon, openembedded-core

Hi Ryan

On Tue, 2026-06-30 at 14:04 -0500, Ryan Eatmon via
lists.openembedded.org wrote:
> When specifying a FIT_CONF_DEFAULT_DTB for a machine, you have to
> exactly align the name with what will be in the fitImage file or you
> will get a build error.  If you also turn on KERNEL_DTBVENDORED then
> you
> must also specify the vendor directory as part of the dtb name that
> you
> want for the default, but you must manually do the same mapping that
> the
> kernel-fit-image class is doing when it generates the fit-image.its
> file.
> 
> This patch just adds the same logic to figure out the value for the
> requested default dtb and eliminate the need to understand the
> internal
> mapping of the class.  It should make specifying the value more
> intuitive.  The same value that you put in the KERNEL_DEVICETREE can
> be
> used in the FIT_CONF_DEFAULT_DTB and the new code will correctly
> honor
> the KERNEL_DTBVENDORED setting.
> 
> Before:
> 
>   KERNEL_DEVICETREE = "
>     ti/k3-am62p5-sk.dtb \
>     ... \
>   "
>   FIT_CONF_DEFAULT_DTB = "ti_k3-am62p5-sk.dtb"
> 
> After:
> 
>   KERNEL_DEVICETREE = "
>     ti/k3-am62p5-sk.dtb \
>     ... \
>   "
>   FIT_CONF_DEFAULT_DTB = "ti/k3-am62p5-sk.dtb"
> 
> Signed-off-by: Ryan Eatmon <reatmon@ti.com>
> ---
>  meta/classes-recipe/kernel-fit-image.bbclass | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/classes-recipe/kernel-fit-image.bbclass
> b/meta/classes-recipe/kernel-fit-image.bbclass
> index 448a88ccb1..f49838d639 100644
> --- a/meta/classes-recipe/kernel-fit-image.bbclass
> +++ b/meta/classes-recipe/kernel-fit-image.bbclass
> @@ -195,8 +195,21 @@ python do_compile() {
>                                                  
> loadable_loadaddress,
>                                                  
> loadable_entrypoint)
>  
> +    # Figure out if we have a default dtb and if we need to honor
> the
> +    # KERNEL_DTBVENDORED variable to tweak the name to match what
> will be
> +    # in the fitImage.
> +    default_dtb = d.getVar("FIT_CONF_DEFAULT_DTB")
> +    if default_dtb:
> +        # With vendored DTs, replace any path separators with
> underscores,
> +        # this matches the behavior used to generate the dtb entry
> in other
> +        # parts of the code.
> +        if d.getVar('KERNEL_DTBVENDORED') != "1":
> +            default_dtb = os.path.basename(default_dtb)
> +        else:
> +            default_dtb = default_dtb.replace('/', '_')

This is probably needed in addition to
https://git.openembedded.org/openembedded-core/commit/?id=4297b94c3728cd2e320d75b68c508e12ab127719
if I understand correctly.

Would it make sense to move this if else block into a function which
can be used in both places?

Regards,
Adrian

> +
>      # Generate the configuration section
> -   
> root_node.fitimage_emit_section_config(d.getVar("FIT_CONF_DEFAULT_DTB
> "), d.getVar("FIT_CONF_MAPPINGS"))
> +    root_node.fitimage_emit_section_config(default_dtb,
> d.getVar("FIT_CONF_MAPPINGS"))
>  
>      # Write the its file
>      root_node.write_its_file(itsfile)
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#239914):
> https://lists.openembedded.org/g/openembedded-core/message/239914
> Mute This Topic: https://lists.openembedded.org/mt/120052405/4454582
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe:
> https://lists.openembedded.org/g/openembedded-core/unsub [
> adrian.freihofer@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [OE-core][PATCH] kernel-fit-image: Add KERNEL_DTBVENDORED support for FIT_CONF_DEFAULT_DTB
  2026-07-02  9:31 ` adrian.freihofer
@ 2026-07-02 11:06   ` Ryan Eatmon
  0 siblings, 0 replies; 3+ messages in thread
From: Ryan Eatmon @ 2026-07-02 11:06 UTC (permalink / raw)
  To: adrian.freihofer, openembedded-core



On 7/2/2026 4:31 AM, adrian.freihofer@gmail.com wrote:
> Hi Ryan
> 
> On Tue, 2026-06-30 at 14:04 -0500, Ryan Eatmon via
> lists.openembedded.org wrote:
>> When specifying a FIT_CONF_DEFAULT_DTB for a machine, you have to
>> exactly align the name with what will be in the fitImage file or you
>> will get a build error.  If you also turn on KERNEL_DTBVENDORED then
>> you
>> must also specify the vendor directory as part of the dtb name that
>> you
>> want for the default, but you must manually do the same mapping that
>> the
>> kernel-fit-image class is doing when it generates the fit-image.its
>> file.
>>
>> This patch just adds the same logic to figure out the value for the
>> requested default dtb and eliminate the need to understand the
>> internal
>> mapping of the class.  It should make specifying the value more
>> intuitive.  The same value that you put in the KERNEL_DEVICETREE can
>> be
>> used in the FIT_CONF_DEFAULT_DTB and the new code will correctly
>> honor
>> the KERNEL_DTBVENDORED setting.
>>
>> Before:
>>
>>    KERNEL_DEVICETREE = "
>>      ti/k3-am62p5-sk.dtb \
>>      ... \
>>    "
>>    FIT_CONF_DEFAULT_DTB = "ti_k3-am62p5-sk.dtb"
>>
>> After:
>>
>>    KERNEL_DEVICETREE = "
>>      ti/k3-am62p5-sk.dtb \
>>      ... \
>>    "
>>    FIT_CONF_DEFAULT_DTB = "ti/k3-am62p5-sk.dtb"
>>
>> Signed-off-by: Ryan Eatmon <reatmon@ti.com>
>> ---
>>   meta/classes-recipe/kernel-fit-image.bbclass | 15 ++++++++++++++-
>>   1 file changed, 14 insertions(+), 1 deletion(-)
>>
>> diff --git a/meta/classes-recipe/kernel-fit-image.bbclass
>> b/meta/classes-recipe/kernel-fit-image.bbclass
>> index 448a88ccb1..f49838d639 100644
>> --- a/meta/classes-recipe/kernel-fit-image.bbclass
>> +++ b/meta/classes-recipe/kernel-fit-image.bbclass
>> @@ -195,8 +195,21 @@ python do_compile() {
>>                                                   
>> loadable_loadaddress,
>>                                                   
>> loadable_entrypoint)
>>   
>> +    # Figure out if we have a default dtb and if we need to honor
>> the
>> +    # KERNEL_DTBVENDORED variable to tweak the name to match what
>> will be
>> +    # in the fitImage.
>> +    default_dtb = d.getVar("FIT_CONF_DEFAULT_DTB")
>> +    if default_dtb:
>> +        # With vendored DTs, replace any path separators with
>> underscores,
>> +        # this matches the behavior used to generate the dtb entry
>> in other
>> +        # parts of the code.
>> +        if d.getVar('KERNEL_DTBVENDORED') != "1":
>> +            default_dtb = os.path.basename(default_dtb)
>> +        else:
>> +            default_dtb = default_dtb.replace('/', '_')
> 
> This is probably needed in addition to
> https://git.openembedded.org/openembedded-core/commit/?id=4297b94c3728cd2e320d75b68c508e12ab127719
> if I understand correctly.
> 
> Would it make sense to move this if else block into a function which
> can be used in both places?

Yes.  It would.  I'll send a v2 with that and a test case as well.


> Regards,
> Adrian
> 
>> +
>>       # Generate the configuration section
>> -
>> root_node.fitimage_emit_section_config(d.getVar("FIT_CONF_DEFAULT_DTB
>> "), d.getVar("FIT_CONF_MAPPINGS"))
>> +    root_node.fitimage_emit_section_config(default_dtb,
>> d.getVar("FIT_CONF_MAPPINGS"))
>>   
>>       # Write the its file
>>       root_node.write_its_file(itsfile)
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#239914):
>> https://lists.openembedded.org/g/openembedded-core/message/239914
>> Mute This Topic: https://lists.openembedded.org/mt/120052405/4454582
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe:
>> https://lists.openembedded.org/g/openembedded-core/unsub [
>> adrian.freihofer@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-

-- 
Ryan Eatmon                reatmon@ti.com
-----------------------------------------
Texas Instruments, Inc.  -  LCPD  -  MGTS


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-07-02 11:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-30 19:04 [OE-core][PATCH] kernel-fit-image: Add KERNEL_DTBVENDORED support for FIT_CONF_DEFAULT_DTB Ryan Eatmon
2026-07-02  9:31 ` adrian.freihofer
2026-07-02 11:06   ` Ryan Eatmon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox