]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
bootstd: Adjust the default bootmeth order
authorSimon Glass <sjg@chromium.org>
Sat, 19 Aug 2023 22:49:35 +0000 (16:49 -0600)
committerTom Rini <trini@konsulko.com>
Mon, 28 Aug 2023 19:59:22 +0000 (15:59 -0400)
The existing distro scripts check extlinux and scripts before EFI. Adjust
the default ordering to do the same, to avoid breaking existing flows.

Add some documentation, mentioning that this order will likely change in
future.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Da Xue <da@libre.computer>
boot/bootmeth_extlinux.c
boot/bootmeth_script.c
doc/develop/bootstd.rst
test/boot/bootflow.c

index 6b2b84003836accb6be84aa266eeab92689e93a7..aa2a4591ebd7369cc5df17aaebd371cd07ab0998 100644 (file)
@@ -184,7 +184,8 @@ static const struct udevice_id extlinux_bootmeth_ids[] = {
        { }
 };
 
-U_BOOT_DRIVER(bootmeth_extlinux) = {
+/* Put an number before 'extlinux' to provide a default ordering */
+U_BOOT_DRIVER(bootmeth_1extlinux) = {
        .name           = "bootmeth_extlinux",
        .id             = UCLASS_BOOTMETH,
        .of_match       = extlinux_bootmeth_ids,
index a4050c384dfaf11cb79f9b3553209879e1396d43..58c57a2d4b5babe528195aaf94f7e77c826aa069 100644 (file)
@@ -243,7 +243,8 @@ static const struct udevice_id script_bootmeth_ids[] = {
        { }
 };
 
-U_BOOT_DRIVER(bootmeth_script) = {
+/* Put an number before 'script' to provide a default ordering */
+U_BOOT_DRIVER(bootmeth_2script) = {
        .name           = "bootmeth_script",
        .id             = UCLASS_BOOTMETH,
        .of_match       = script_bootmeth_ids,
index ec31365357830530357af4ad4a0bca3cc0f05213..c47de273ab18543c46d7d9bcc6773541ed5d17ee 100644 (file)
@@ -132,6 +132,9 @@ above bootdev scanning.
 Controlling ordering
 --------------------
 
+By default, faster bootdevs (or those which are assumed to be faster) are used
+first, since they are more likely to be able to boot the device quickly.
+
 Several options are available to control the ordering of boot scanning:
 
 
@@ -151,6 +154,10 @@ bootdevs and their sequence numbers.
 bootmeths
 ~~~~~~~~~
 
+By default bootmeths are checked in name order. Use `bootmeth list` to see the
+ordering. Note that the `extlinux` and `script` bootmeth is first, to preserve the behaviour
+used by the old distro scripts.
+
 This environment variable can be used to control the list of bootmeths used and
 their ordering for example::
 
@@ -164,7 +171,6 @@ controlled by aliases.
 The :ref:`usage/cmd/bootmeth:bootmeth command` (`bootmeth order`) operates in
 the same way as setting this variable.
 
-
 Bootdev uclass
 --------------
 
index 8a4e090e9bcf979a40a174f13ca3988cca8813db..1c91a942e989991c74b8dc878eec08ec5b26e4b2 100644 (file)
@@ -27,7 +27,7 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-extern U_BOOT_DRIVER(bootmeth_script);
+extern U_BOOT_DRIVER(bootmeth_2script);
 
 static int inject_response(struct unit_test_state *uts)
 {
@@ -525,7 +525,7 @@ static int prep_mmc4_bootdev(struct unit_test_state *uts)
 
        /* Enable the script bootmeth too */
        ut_assertok(uclass_first_device_err(UCLASS_BOOTSTD, &bootstd));
-       ut_assertok(device_bind(bootstd, DM_DRIVER_REF(bootmeth_script),
+       ut_assertok(device_bind(bootstd, DM_DRIVER_REF(bootmeth_2script),
                                "bootmeth_script", 0, ofnode_null(), &dev));
 
        /* Change the order to include mmc4 */