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 <[email protected]>
> ---
>  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 (#240029): 
https://lists.openembedded.org/g/openembedded-core/message/240029
Mute This Topic: https://lists.openembedded.org/mt/120052405/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to