On Wed, Oct 4, 2023 at 9:59 AM Quentin Schulz via lists.yoctoproject.org
<quentin.schulz=theobroma-systems....@lists.yoctoproject.org> wrote:

> Hi Trevor,
>
> On 10/3/23 15:38, Trevor Woerner wrote:
> > On Tue 2023-10-03 @ 12:32:08 PM, Quentin Schulz wrote:
> >> Hi Trevor,
> >>
> >> On 10/3/23 06:19, Trevor Woerner via lists.yoctoproject.org wrote:
> >>> The upstream kernel reorganized the 32-bit arch/arm device-tree
> directory structure
> >>> to separate out the device-trees by manufacturer (similar to the
> organization
> >>> of the arch/arm64 device-trees). Update the references to 32-bit arm
> >>> device-trees to match.
> >>>
> >>
> >> Does this work with linux-yocto and linux-yocto-dev from master or do we
> >> need to add some logic to support both (do you want to?).
> >
> > This doesn't work at all. I figured this was an easy one, made the tweak,
> > submitted it, then added it to my jenkins builder to verify overnight.
> Woke up
> > to find the do_image_wic() tasks failed. It's the same layout as the
> 64-bit
> > machines but I'll have to dig in to figure out why it didn't work.
> >
> > As for the linux-yocto vs linux-yocto-dev question I'll take a look. This
> > happened with linux-yocto, so I would assume it is already the case with
> > linux-yocto-dev. But if oe-core supports multiple versions of
> linux-yocto,
> > that might be the tricky bit and yes, I would look into supporting both
> for
> > the time-being until the transition period ends.
> >
>
> This was done in v6.5-rc1 so anything before won't work sadly.
>
> master branch of poky supports 6.1 6.4 and 6.5 for linux-yocto
> (linux-yocto-dev being typically newer than the latest linux-yocto and
> the latest linux-yocto already having the change, I'll omit the change
> for linux-yocto-dev).
>
> For reference, denix on IRC suggested you look at
>
> https://git.openembedded.org/openembedded-core/commit/?id=04ab57d20009d85eb566e83ae6fe1dcea4db7300
> for what we're trying to do here. But I think this isn't applying to how
> the DTB is found but rather where it's put and this is too late for us.
>
> I think we need to modify get_real_dtb_path_in_kernel in
> meta/classes-recipe/kernel-devicetree.bbclass instead.
>
> We could handle it this way for example to allow a fallback:
> """
> get_real_dtb_path_in_kernel:arm () {
>         dtb="$1"
>         dtb_path="${B}/arch/${ARCH}/boot/dts/$dtb"
>          # Handle pre-v6.5 layout for Aarch32/ARM DTB
>         if [ ! -e "$dtb_path" ]; then
>                 dtb_path="${B}/arch/${ARCH}/boot/dts/$(basename "$dtb")"
>         fi
>         if [ ! -e "$dtb_path" ]; then
>                 dtb_path="${B}/arch/${ARCH}/boot/$dtb"
>         fi
>          # Handle pre-v6.5 layout for Aarch32/ARM DTB
>         if [ ! -e "$dtb_path" ]; then
>                 dtb_path="${B}/arch/${ARCH}/boot/$(basename "$dtb")"
>         fi
>
>         echo "$dtb_path"
> }
> """
> (to be determined if "arm" is a valid OVERRIDES, otherwise we need to
> check against "ARCH" bb variable; also not sure about the second
> basename if it's necessary at all).
>
> Then you would just have KERNEL_DEVICETREE done the same way as in this
> patch:
> KERNEL_DEVICETREE = "rockchip/rk3066a-marsboard.dtb"
>
> and we wouldn't have to handle it on the recipe level.
>
> Otherwise, we could do the following:
> RK_KERNEL_DEVICETREE = "rockchip/rk3066a-marsboard.dtb"
> KERNEL_DEVICETREE ?= "${RK_KERNEL_DEVICETREE}"
>
> then have a bbappend for all old-layout recipes:
> linux-yocto-rt_6.1.bbappend
> linux-yocto-tiny_6.1.bbappend
> linux-yocto_6.1.bbappend
> linux-yocto-rt_6.4.bbappend
> linux-yocto-tiny_6.4.bbappend
> linux-yocto_6.4.bbappend
>
> KERNEL_DEVICETREE:arm = "${@' '.join(os.path.basename(dtb) for dtb in
> d.getVar('RK_KERNEL_DEVICETREE').split())}"
>
> or something like that. We probably want to have something a bit more
> precise than just arm to avoid breaking other arm machine conf files
> which do not define RK_KERNEL_DEVICETREE, maybe
> KERNEL_DEVICETREE:rockchip:arm if that is even resolving properly.
>
> > Although... any BSP layer supporting 32-bit machines will have similar
> issues,
> > so perhaps there's a better way to solve this in oe-core?
> >
> Adding Bruce in Cc, I hope he doesn't mind being summoned like this.
> Maybe you have an idea on how to handle both the new and old layout for
> ARM/Aarch32 DTB in the kernel for the KERNEL_DEVICETREE variable?
>

My last run in with this may have been before some of the most recent
device tree handling patches, and/or I may have been doing it wrong.

But my solution was to simply override the variable in a kernel version
specific bbappend, and not do it in the conf files.

But of course, if that variable is being interpreted by a different class in
the global namespace, then the kernel bbappend approach isn't going
to work anymore.

I've stayed away from utilities or searching, etc, rather just a way for the
configuration to specify directly what to find, as anything that searches
ends up being fragile.

Bruce


>
> Cheers,
> Quentin
>
> 
>
>

-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end
- "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#61240): https://lists.yoctoproject.org/g/yocto/message/61240
Mute This Topic: https://lists.yoctoproject.org/mt/101728482/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to