diff mbox series

[meta-rockchip] rockchip-extlinux.inc: fix non-fit KERNEL_IMAGETYPE image boot

Message ID 20240527-non-fit-fdt-boot-v1-1-72bf2530547d@cherry.de
State New
Headers show
Series [meta-rockchip] rockchip-extlinux.inc: fix non-fit KERNEL_IMAGETYPE image boot | expand

Commit Message

Quentin Schulz May 27, 2024, 1:48 p.m. UTC
From: Quentin Schulz <quentin.schulz@cherry.de>

On systems where KERNEL_IMAGETYPE is not set to fitImage, one needs to
either pass an DTB or a path to a directory where DTBs are located on
the rootfs.

When FDT property in extlinux is provided, FDTDIR isn't used (and
actually u-boot-extlinux-config doesn't even write it to the
configuration file).

When relative paths are used, they are relative to the directory where
extlinux.conf is stored[1]. Since the DTBs are stored in /boot, just
providing the filename of the DTB won't work because extlinux in U-Boot
will search for it in /boot/extlinux. We should therefore either use ../
prefix for relative paths or use /boot to make it absolute. /boot is
more explicit and easily parseable, so let's use the latter.

[1] https://wiki.syslinux.org/wiki/index.php?title=Config#Working_directory

Fixes: d80fa46c42f2 ("rockchip-extlinux.inc: handle multiple DTs in KERNEL_DEVICETREE")
Fixes: 3b51866f2251 ("remove /boot partition")
Fixes: 13316b796814 ("KERNEL_DEVICETREE: 32-bit re-org")
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
 conf/machine/include/rockchip-extlinux.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


---
base-commit: bf9ade59abc15a5f6fb5450265c214450f35857f
change-id: 20240527-non-fit-fdt-boot-ba5931dcbeb7

Best regards,

Comments

Trevor Woerner May 30, 2024, 2:11 p.m. UTC | #1
On Mon 2024-05-27 @ 03:48:24 PM, Quentin Schulz via lists.yoctoproject.org wrote:
> From: Quentin Schulz <quentin.schulz@cherry.de>
> 
> On systems where KERNEL_IMAGETYPE is not set to fitImage, one needs to
> either pass an DTB or a path to a directory where DTBs are located on
> the rootfs.
> 
> When FDT property in extlinux is provided, FDTDIR isn't used (and
> actually u-boot-extlinux-config doesn't even write it to the
> configuration file).
> 
> When relative paths are used, they are relative to the directory where
> extlinux.conf is stored[1]. Since the DTBs are stored in /boot, just
> providing the filename of the DTB won't work because extlinux in U-Boot
> will search for it in /boot/extlinux. We should therefore either use ../
> prefix for relative paths or use /boot to make it absolute. /boot is
> more explicit and easily parseable, so let's use the latter.
> 
> [1] https://wiki.syslinux.org/wiki/index.php?title=Config#Working_directory
> 
> Fixes: d80fa46c42f2 ("rockchip-extlinux.inc: handle multiple DTs in KERNEL_DEVICETREE")
> Fixes: 3b51866f2251 ("remove /boot partition")
> Fixes: 13316b796814 ("KERNEL_DEVICETREE: 32-bit re-org")
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
> ---
>  conf/machine/include/rockchip-extlinux.inc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Applied to meta-rockchip, master branch. Thanks!
Quentin Schulz May 31, 2024, 8:50 a.m. UTC | #2
Hi Trevor,

On 5/30/24 4:11 PM, Trevor Woerner wrote:
> On Mon 2024-05-27 @ 03:48:24 PM, Quentin Schulz via lists.yoctoproject.org wrote:
>> From: Quentin Schulz <quentin.schulz@cherry.de>
>>
>> On systems where KERNEL_IMAGETYPE is not set to fitImage, one needs to
>> either pass an DTB or a path to a directory where DTBs are located on
>> the rootfs.
>>
>> When FDT property in extlinux is provided, FDTDIR isn't used (and
>> actually u-boot-extlinux-config doesn't even write it to the
>> configuration file).
>>
>> When relative paths are used, they are relative to the directory where
>> extlinux.conf is stored[1]. Since the DTBs are stored in /boot, just
>> providing the filename of the DTB won't work because extlinux in U-Boot
>> will search for it in /boot/extlinux. We should therefore either use ../
>> prefix for relative paths or use /boot to make it absolute. /boot is
>> more explicit and easily parseable, so let's use the latter.
>>
>> [1] https://wiki.syslinux.org/wiki/index.php?title=Config#Working_directory
>>
>> Fixes: d80fa46c42f2 ("rockchip-extlinux.inc: handle multiple DTs in KERNEL_DEVICETREE")
>> Fixes: 3b51866f2251 ("remove /boot partition")
>> Fixes: 13316b796814 ("KERNEL_DEVICETREE: 32-bit re-org")
>> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
>> ---
>>   conf/machine/include/rockchip-extlinux.inc | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> Reviewed-by: Trevor Woerner <twoerner@gmail.com>
> Applied to meta-rockchip, master branch. Thanks!

Thanks!

Can we backport this to scarthgap too? How do you want to proceed? I 
send a new patch with [scarthgap] in the title?

Cheers,
Quentin
Trevor Woerner June 4, 2024, 6:04 p.m. UTC | #3
On Fri 2024-05-31 @ 10:50:43 AM, Quentin Schulz wrote:
> Hi Trevor,
> 
> On 5/30/24 4:11 PM, Trevor Woerner wrote:
> > On Mon 2024-05-27 @ 03:48:24 PM, Quentin Schulz via lists.yoctoproject.org wrote:
> > > From: Quentin Schulz <quentin.schulz@cherry.de>
> > > 
> > > On systems where KERNEL_IMAGETYPE is not set to fitImage, one needs to
> > > either pass an DTB or a path to a directory where DTBs are located on
> > > the rootfs.
> > > 
> > > When FDT property in extlinux is provided, FDTDIR isn't used (and
> > > actually u-boot-extlinux-config doesn't even write it to the
> > > configuration file).
> > > 
> > > When relative paths are used, they are relative to the directory where
> > > extlinux.conf is stored[1]. Since the DTBs are stored in /boot, just
> > > providing the filename of the DTB won't work because extlinux in U-Boot
> > > will search for it in /boot/extlinux. We should therefore either use ../
> > > prefix for relative paths or use /boot to make it absolute. /boot is
> > > more explicit and easily parseable, so let's use the latter.
> > > 
> > > [1] https://wiki.syslinux.org/wiki/index.php?title=Config#Working_directory
> > > 
> > > Fixes: d80fa46c42f2 ("rockchip-extlinux.inc: handle multiple DTs in KERNEL_DEVICETREE")
> > > Fixes: 3b51866f2251 ("remove /boot partition")
> > > Fixes: 13316b796814 ("KERNEL_DEVICETREE: 32-bit re-org")
> > > Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
> > > ---
> > >   conf/machine/include/rockchip-extlinux.inc | 2 +-
> > >   1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > Reviewed-by: Trevor Woerner <twoerner@gmail.com>
> > Applied to meta-rockchip, master branch. Thanks!
> 
> Thanks!
> 
> Can we backport this to scarthgap too? How do you want to proceed? I send a
> new patch with [scarthgap] in the title?

Done!
diff mbox series

Patch

diff --git a/conf/machine/include/rockchip-extlinux.inc b/conf/machine/include/rockchip-extlinux.inc
index 1f036c4..fddab73 100644
--- a/conf/machine/include/rockchip-extlinux.inc
+++ b/conf/machine/include/rockchip-extlinux.inc
@@ -14,7 +14,7 @@  NONFITDT ?= "${@d.getVar('KERNEL_DEVICETREE').split()[0].split('/')[1]}"
 UBOOT_EXTLINUX ?= "1"
 UBOOT_EXTLINUX_ROOT ?= "root=PARTLABEL=rootfsA"
 UBOOT_EXTLINUX_FDTDIR ?= "${@bb.utils.contains('KERNEL_IMAGETYPE', 'fitImage', '', '/boot', d)}"
-UBOOT_EXTLINUX_FDT ?= "${@bb.utils.contains('KERNEL_IMAGETYPE', 'fitImage', '', '${NONFITDT}', d)}"
+UBOOT_EXTLINUX_FDT ?= "${@bb.utils.contains('KERNEL_IMAGETYPE', 'fitImage', '', '/boot/${NONFITDT}', d)}"
 UBOOT_EXTLINUX_CONSOLE ?= "earlycon console=tty1 console=${RK_CONSOLE_DEVICE},${RK_CONSOLE_BAUD}n8"
 UBOOT_EXTLINUX_KERNEL_ARGS ?= "rootwait rw rootfstype=ext4"
 UBOOT_EXTLINUX_KERNEL_IMAGE ?= "/boot/${KERNEL_IMAGETYPE}"