On Fri, May 22, 2026 at 10:10 AM Casey Connolly <[email protected]> wrote: > On 21/05/2026 19:07, Ricardo de Araujo (Salveti) wrote: > > On Thu, May 21, 2026 at 12:32 PM Casey Connolly > > <[email protected]> wrote: > >> I'd also strongly recommend against bootflow, you can just chain > >> commands together "bootefi bootmgr; bootm ..." to implement fallbacks. > > > > Would it be fine to change the patch to add bootflow after "bootefi > > bootmgr" then? > > If anything I'd rather disable bootflow entirely by default. How do you > actually load the FIT image to boot? Is it combined with extlinux?
You can load with extlinux or via a boot script (often the preferred option as you can add boot specific logic to it to support a/b selection and so on). > >>> I agree that EFI is more suitable for generic distributions, but we > >>> expect that some embedded products will leverage FIT directly, and > >>> disable EFI entirely (e.g. faster boot, reduced complexity, etc). > >> > >> I'd expect those products to fork U-Boot already and/or send specific > >> support for their board configuration upstream. > > > > They will probably all reuse qcom_defconfig, which uses > > board/qualcomm/default.env, and that is why I wanted to have bootflow > > available there by default. > > Do you have a list of boards? I don't think any of the Dragonwing boards > use qcom_defconfig currently, maybe they #include it? Yeah, it is included directly at the moment: configs/qcm6490_defconfig:#include "qcom_defconfig" configs/qcom_qcs8300_defconfig:#include "qcom_defconfig" configs/qcom_qcs615_defconfig:#include "qcom_defconfig" configs/qcom_qcs9100_defconfig:#include "qcom_defconfig" > they also will > need CONFIG_QCOM_GENERATE_MBN once the MBN support is merged, so even if > we can get it down to a single config for all of them (which would be > awesome!) I don't think it should be qcom_defconfig. The need for > supporting non-EFI boot methods is additional justification for that. The board level config can contain whatever that is specific for them at that point (e.g. mbn header version), now the boot mechanics would probably be more generic. > >>> Since FIT is already widely known and used in u-boot, I think it is > >>> good to also support it by default here. > >> > >> Appeals to popularity go directly against the point from my last email, > >> booting without EFI might be justified for your product but that doesn't > >> mean the /reference/ Qualcomm env in upstream U-Boot should support it. > >> > >> The reference env upstream is there primarily for testing. > > > > I would say this is more a personal preference, my thinking was having > > both enabled and available by default to facilitate the life of every > > developer/user. > > The community devs over in the #u-boot-qcom IRC channel are also focused > on EFI as far as I'm aware. To a large degree yes it's personal > preference, when there are no technical reasons justifying a change then > that's typically what it boils down to. > > I'm strongly in favour of having Qualcomms dev boards be well supported > upstream to the point where there's no need to have a fork and users can > just run upstream, I'm very glad that ya'll are working towards that > goal. I'm also glad that there has been communication and discussion > about how to architecture some parts of this so that it can land > upstream and you don't have to make breaking changes later. > > I think part of what we're running up against here is that > qcom_defconfig and the default environment don't really have a defined > scope with regards to what platforms and configurations are supported. > I'll share my thoughts here and maybe we can build on that? > > To me it should be a maximally compatible baseline *horizontally* that > runs on as many platforms as possible with as many universal features as > possible (e.g. capsule updates, fastboot, usb, networking...) while > being minimally *deep*. > > So the image it creates requires different post-processing for every > different platform/board (be that building an Android boot image or > baking it into an MBN). The image can boot with EFI and gets you to a > working system but it won't handle PXE boot or expose a UI that can be > navigated with volume keys on a phone. It doesn't support every > filesystem or have secureboot, and so on. > > If you want additional features to support a specific board or usecase > more deeply (like emitting .mbn files directly, booting in a > non-standard way, storing the u-boot env on a partition) then you have > to make some changes to the build configuration. > > Attempting to enable/use bootflow in the most generic qcom_defconfig > might improve things for the platforms/configurations you care about but > it's also a level of vertical integration that does have an impact on > other platforms that use the same configuration. > > To pick an arbitrary example, bootflow has an "Android" boot method, > it's quite possible that on some dev boards or phones U-Boot might then > attempt to boot Android from one of the boot partitions, this could > result in the device booting to a broken state, infinitely booting > U-Boot (if it's chainloaded), crashing, crashlooping, maybe U-Boot tries > to update the slot status and touches something on the misc partition > that makes ABL crashloop and potentially hard bricks a phone (since many > vendors don't provide signed firehose or even a way to access EDL) so > someones perfectly fine device becomes landfill. While that is possible, it depends on the boot methods that are enabled by default in the config, and from my perspective it is ok to assume that it should try all the boot methods which are enabled. Currently we do have several methods enabled (by default), but they are not leveraged by the default boot command and environment. The methods I have with standard qcm6490_defconfig: - CONFIG_BOOTMETH_EXTLINUX=y - CONFIG_BOOTMETH_SCRIPT=y - CONFIG_BOOTMETH_EFILOADER=y - CONFIG_BOOTMETH_EFI_BOOTMGR=y - CONFIG_BOOTMETH_EXTLINUX_PXE=y So if we enable bootflow by default (could as well be the second option after trying efi boot), the behavior will depend on the methods that are enabled, and we can disable options that are not necessarily known to work. > I don't know how likely any of those outcomes are, but given how > crash-heavy all of the non-EFI boot paths are I'd really rather not > tempt fate. > > Hence, I'd feel much more comfortable if we all worked to minimise > unnecessary scope, having board/usecase specific configurations is > absolutely the best way to do that and as a bonus make it much easier to > justify a lot of quality of life improvements that only make sense in > specific cases. > > That's why I would much rather see a dragonwing defconfig and default > environment where we don't have to worry about some change breaking > someone else with a completely different setup. Having a dedicated default configuration for dragonwind should be perfectly fine (and included by the dragonwing targets by default), as we can probably assume that u-boot would be supported natively instead of chainloaded. If you are OK with that I can send another set to create a specific dragonwind configuration file that could support a wider range of use cases by default. Thanks, Ricardo

