On 2/16/24 09:25, Trevor Woerner wrote:
On Thu 2024-02-15 @ 06:45:59 PM, Quentin Schulz wrote:
Hi Trevor,
On 2/12/24 21:23, Trevor Woerner via lists.yoctoproject.org wrote:
[...]
+UBOOT_EXTLINUX_KERNEL_IMAGE ?= "/boot/${KERNEL_IMAGETYPE}"
FWIW, I don't think /boot is required. bootstd/bootmeth in U-Boot (upstream
at the very least) will check for / and then /boot prefix for the paths in
extlinux.conf. Not providing /boot means if someone still wants to use a
separate boot partition, they wouldn't have to update this variable. But
since it's overridable, this is basically up to your preference.
This is a good example of working ahead. The next thing I have queued up is
a meta-rauc-rockchip example that works generically on all (most?) rockchip
boards. As part of the U-Boot script I need to make the A/B logic work, it
needs the "/boot" in there otherwise it doesn't work; therefore it's best to
set it up properly now.
Mmmm I'm interested to see why it fails without the /boot thing? Let's
see when we get patches :)
+UBOOT_EXTLINUX_LABELS ?= "default"
+UBOOT_EXTLINUX_MENU_DESCRIPTION:default ?= "${MACHINE}"
+
+MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "u-boot-extlinux"
Is the image actually bootable if we do NOT have u-boot-extlinux installed?
I'm challenging the RRECOMMENDS basically. And wondering whether
MACHINE_ESSENTIAL_EXTRA_* is always included (it seems like RDEPENDS one is
part of packagegroup-core-boot which is virtually installed in all images).
I can double-check, but I'm pretty sure that line was added explicitly after
testing and noticing that it was needed. If we remove the extlinux artifacts
from the image, what boot method is U-Boot supposed to use?
I'm not saying it is not needed, I'm thinking _RRECOMMENDS is too weak
and it should be _RDEPENDS instead?
I'm not sure the wic image (or rather the rootfs) is proper basically if
u-boot-extlinux is not installed.
As for what U-Boot does if it doesn't find an extlinux.conf, it depends
on what U-Boot is configured to do. If I rememebr correctly, most (all)
Rockchip boards now use bootflow by default.
You can check the content of the bootcmd environment variable, that's
what's started when the user does nothing to interrupt the boot.
For me on Jaguar RK3588:
"""
> printenv bootcmd
bootcmd=bootflow scan -lb
"""
remove the -b flag so it doesn't boot and you should have something
reasonable.
For me:
"""
=> bootflow scan -lae
Scanning for bootflows in all bootdevs
Seq Method State Uclass Part Name Filename
--- ----------- ------ -------- ---- ------------------------
----------------
Scanning global bootmeth 'efi_mgr':
0 efi_mgr ready (none) 0 <NULL>
Scanning bootdev 'mmc@fe2e0000.bootdev':
1 extlinux media mmc 0 m...@fe2e0000.bootdev.whol
** No partition found, err=-2: No such file or directory
2 script media mmc 0 m...@fe2e0000.bootdev.whol
** No partition found, err=-2: No such file or directory
3 efi media mmc 0 m...@fe2e0000.bootdev.whol
** No partition found, err=-2: No such file or directory
4 pxe base mmc 0 m...@fe2e0000.bootdev.whol
** No media/partition found, err=-524: Unknown error
5 extlinux media mmc 1 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
6 script media mmc 1 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
7 efi media mmc 1 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
8 pxe base mmc 1 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
9 extlinux media mmc 2 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
a script media mmc 2 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
b efi media mmc 2 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
c pxe base mmc 2 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
d extlinux media mmc 3 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
e script media mmc 3 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
f efi media mmc 3 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
10 pxe base mmc 3 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
11 extlinux media mmc 4 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
12 script media mmc 4 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
13 efi media mmc 4 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
14 pxe base mmc 4 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
15 extlinux media mmc 5 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
16 script media mmc 5 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
17 efi media mmc 5 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
18 pxe base mmc 5 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
19 extlinux ready mmc 6 m...@fe2e0000.bootdev.part
/extlinux/extlinux.conf
1a script fs mmc 6 m...@fe2e0000.bootdev.part
/boot/boot.scr
** File not found, err=-2: No such file or directory
1b efi fs mmc 6 m...@fe2e0000.bootdev.part
efi/boot/bootaa64.efi
** File not found, err=-2: No such file or directory
1c pxe base mmc 6 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
1d extlinux media mmc 7 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
1e script media mmc 7 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
1f efi media mmc 7 m...@fe2e0000.bootdev.part
** No partition found, err=-22: Invalid argument
20 pxe base mmc 7 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
21 extlinux media mmc 8 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
22 script media mmc 8 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
23 efi media mmc 8 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
24 pxe base mmc 8 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
25 extlinux media mmc 9 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
26 script media mmc 9 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
27 efi media mmc 9 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
28 pxe base mmc 9 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
29 extlinux media mmc a m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
2a script media mmc a m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
2b efi media mmc a m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
2c pxe base mmc a m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
2d extlinux media mmc b m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
2e script media mmc b m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
2f efi media mmc b m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
30 pxe base mmc b m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
31 extlinux media mmc c m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
32 script media mmc c m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
33 efi media mmc c m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
34 pxe base mmc c m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
35 extlinux media mmc d m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
36 script media mmc d m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
37 efi media mmc d m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
38 pxe base mmc d m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
39 extlinux media mmc e m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
3a script media mmc e m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
3b efi media mmc e m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
3c pxe base mmc e m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
3d extlinux media mmc f m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
3e script media mmc f m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
3f efi media mmc f m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
40 pxe base mmc f m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
41 extlinux media mmc 10 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
42 script media mmc 10 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
43 efi media mmc 10 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
44 pxe base mmc 10 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
45 extlinux media mmc 11 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
46 script media mmc 11 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
47 efi media mmc 11 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
48 pxe base mmc 11 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
49 extlinux media mmc 12 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
4a script media mmc 12 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
4b efi media mmc 12 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
4c pxe base mmc 12 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
4d extlinux media mmc 13 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
4e script media mmc 13 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
4f efi media mmc 13 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
50 pxe base mmc 13 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
51 extlinux media mmc 14 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
52 script media mmc 14 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
53 efi media mmc 14 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
54 pxe base mmc 14 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
55 extlinux media mmc 15 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
56 script media mmc 15 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
57 efi media mmc 15 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
58 pxe base mmc 15 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
59 extlinux media mmc 16 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
5a script media mmc 16 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
5b efi media mmc 16 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
5c pxe base mmc 16 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
5d extlinux media mmc 17 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
5e script media mmc 17 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
5f efi media mmc 17 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
60 pxe base mmc 17 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
61 extlinux media mmc 18 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
62 script media mmc 18 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
63 efi media mmc 18 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
64 pxe base mmc 18 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
65 extlinux media mmc 19 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
66 script media mmc 19 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
67 efi media mmc 19 m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
68 pxe base mmc 19 m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
69 extlinux media mmc 1a m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
6a script media mmc 1a m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
6b efi media mmc 1a m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
6c pxe base mmc 1a m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
6d extlinux media mmc 1b m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
6e script media mmc 1b m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
6f efi media mmc 1b m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
70 pxe base mmc 1b m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
71 extlinux media mmc 1c m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
72 script media mmc 1c m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
73 efi media mmc 1c m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
74 pxe base mmc 1c m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
75 extlinux media mmc 1d m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
76 script media mmc 1d m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
77 efi media mmc 1d m...@fe2e0000.bootdev.part
** No partition found, err=-2: No such file or directory
78 pxe base mmc 1d m...@fe2e0000.bootdev.part
** No media/partition found, err=-524: Unknown error
Scanning bootdev 'mmc@fe2c0000.bootdev':
Card did not respond to voltage select! : -110
Unknown uclass 'nvme' in label
scanning bus for devices...
Bus usb@fc800000: USB EHCI 1.00
Bus usb@fc840000: USB OHCI 1.0
Bus usb@fc880000: USB EHCI 1.00
Bus usb@fc8c0000: USB OHCI 1.0
scanning bus usb@fc800000 for devices... 1 USB Device(s) found
scanning bus usb@fc840000 for devices... 1 USB Device(s) found
scanning bus usb@fc880000 for devices... 1 USB Device(s) found
scanning bus usb@fc8c0000 for devices... 1 USB Device(s) found
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
BOOTP broadcast 6
BOOTP broadcast 7
BOOTP broadcast 8
BOOTP broadcast 9
BOOTP broadcast 10
BOOTP broadcast 11
BOOTP broadcast 12
BOOTP broadcast 13
BOOTP broadcast 14
BOOTP broadcast 15
BOOTP broadcast 16
BOOTP broadcast 17
Retry time exceeded; starting again
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
BOOTP broadcast 6
BOOTP broadcast 7
BOOTP broadcast 8
BOOTP broadcast 9
BOOTP broadcast 10
BOOTP broadcast 11
BOOTP broadcast 12
BOOTP broadcast 13
BOOTP broadcast 14
BOOTP broadcast 15
BOOTP broadcast 16
BOOTP broadcast 17
Retry time exceeded; starting again
No more bootdevs
--- ----------- ------ -------- ---- ------------------------
----------------
(121 bootflows, 2 valid)
"""
The media tested seems to be located in boot_targets, which defaults for
that board to:
"""
> printenv boot_targets
boot_targets=mmc0 mmc1 nvme scsi usb pxe dhcp spi
"""
So it tries to boot from mmc0 (eMMC usually), mmc1 (SD card usually),
nvme, scsi, usb, pxe (glorified TFTP?), dhcp, spi.
So if nothing works/exists before scsi, then it'll try to boot from
that, then USB, then from the network and finally maybe from spi but
that is very likely to fail as well since SPI flashes are typically very
small and wouldn't be able to contain even the kernel Image?
This is actually quite nice, I was wondering also if there was a way to
create as many entries as there are Device Trees supported for the machine
(and maybe even device tree overlays? but this one's difficult because we
need knowledge of which device tree overlay can apply on top of which device
tree(s) :) ). But I don't think we can have anonymous python in conf file?
Or maybe we should do this in u-boot bbappend?
Yes. The bbclass has logic to generate as many entries as user-supplied labels
in UBOOT_EXTLINUX_LABELS:
https://git.openembedded.org/openembedded-core/tree/meta/classes-recipe/uboot-extlinux-config.bbclass#n114
I actually hint at the mechanism my providing the superfluous ":default"
entry.
I'm actually more discussing how to *feed* this to this part of the
code. Right now, this is manual because we need to define labels and for
each variable a label override.
I was wondering if we could have something that automatically creates
labels for the non fitimage usecase, based on the KERNEL_DEVICETREE
variable.
in pseudo code:
UBOOT_EXTLINUX_LABELS ?= ""
python __anonymous() {
UBOOT_EXTLINUX_DEFAULT_LABEL = first(KERNEL_DEVICETREE)
for devicetree in KERNEL_DEVICETREE:
UBOOT_EXTLINUX_LABELS += basename(devicetree)
UBOOT_EXTLINUX_FDT:basename(devicetree) = devicetree
}
diff --git a/conf/machine/include/rockchip-wic.inc
b/conf/machine/include/rockchip-wic.inc
index 67a8310f7d6a..cae14c90e1db 100644
--- a/conf/machine/include/rockchip-wic.inc
+++ b/conf/machine/include/rockchip-wic.inc
@@ -1,5 +1,7 @@
# common meta-rockchip wic/wks items
+require conf/machine/include/rockchip-extlinux.inc
+
SPL_BINARY ?= "idbloader.img"
IMAGE_FSTYPES += "wic wic.bmap"
@@ -11,23 +13,8 @@ WKS_FILE_DEPENDS ?= " \
virtual/bootloader \
virtual/kernel \
"
Does the WKS file still really depend on virtual/kernel or is it rather a
misplaced dependency now?
Great catch! Also, since all the partitions now have explicit fstypes, and the
fact we no longer have a vfat-formatted /boot partition, the mtools-native and
dosfstools-native dependencies can also be removed.
It will probably get rejected, but I think I'm going to create a patch for wic
that assumes unspecified partitions are "none" instead of "vfat". I wonder how
many BSP layers are copy&past'ing the mtools and dosfstools dependencies that
aren't using vfat-based partitions and wondering why?
And a nice catch from you there too :)
Cheers,
Quentin
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#62517): https://lists.yoctoproject.org/g/yocto/message/62517
Mute This Topic: https://lists.yoctoproject.org/mt/104319696/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-