On Tue, 6 Jan 2026 at 19:33, Peter Robinson <[email protected]> wrote: > > On Wed, 7 Jan 2026 at 00:40, Simon Glass <[email protected]> wrote: > > > > From: Simon Glass <[email protected]> > > > > Make use of this function, adding some pieces needed by RISC-V > > > > Drop the udc_disconnect() from EFI_LOADER since it is now done in > > bootm_final() > > This is two different changes, please split the patch.
OK > > > Signed-off-by: Simon Glass <[email protected]> > > Signed-off-by: Simon Glass <[email protected]> > > Do you have a clone? Choose one email for a signoff please. Yes it seems I do, and will do. > > > --- > > > > arch/riscv/lib/bootm.c | 22 +--------------------- > > boot/bootm_final.c | 9 ++++++++- > > lib/efi_loader/efi_boottime.c | 2 -- > > 3 files changed, 9 insertions(+), 24 deletions(-) > > > > diff --git a/arch/riscv/lib/bootm.c b/arch/riscv/lib/bootm.c > > index 35403e03ab0..bd47275b52e 100644 > > --- a/arch/riscv/lib/bootm.c > > +++ b/arch/riscv/lib/bootm.c > > @@ -32,27 +32,7 @@ DECLARE_GLOBAL_DATA_PTR; > > */ > > static void announce_and_cleanup(int fake) > > { > > - printf("\nStarting kernel ...%s\n\n", fake ? > > - "(fake run for tracing)" : ""); > > - bootstage_mark_name(BOOTSTAGE_ID_BOOTM_HANDOFF, "start_kernel"); > > -#ifdef CONFIG_BOOTSTAGE_FDT > > - bootstage_fdt_add_report(); > > -#endif > > -#if CONFIG_IS_ENABLED(BOOTSTAGE_REPORT) > > - bootstage_report(); > > -#endif > > - > > -#ifdef CONFIG_USB_DEVICE > > - udc_disconnect(); > > -#endif > > - > > - /* > > - * Call remove function of all devices with a removal flag set. > > - * This may be useful for last-stage operations, like cancelling > > - * of DMA operation or releasing device internal buffers. > > - */ > > - dm_remove_devices_active(); > > - > > + bootm_final(fake); > > cleanup_before_linux(); > > } > > > > diff --git a/boot/bootm_final.c b/boot/bootm_final.c > > index 7077702d8c7..7f069877d06 100644 > > --- a/boot/bootm_final.c > > +++ b/boot/bootm_final.c > > @@ -7,17 +7,24 @@ > > > > #include <bootm.h> > > #include <bootstage.h> > > +#include <usb.h> > > #include <dm/root.h> > > > > void bootm_final(enum bootm_final_t flags) > > { > > - printf("\nStarting kernel ...\n\n"); > > + printf("\nStarting kernel ...%s\n\n", flags & BOOTM_FINAL_FAKE ? > > + "(fake run for tracing)" : ""); > > > > bootstage_mark_name(BOOTSTAGE_ID_BOOTM_HANDOFF, "start_kernel"); > > > > + if (IS_ENABLED(CONFIG_BOOTSTAGE_FDT) && IS_ENABLED(CONFIG_CMD_FDT)) > > + bootstage_fdt_add_report(); > > if (IS_ENABLED(CONFIG_BOOTSTAGE_REPORT)) > > bootstage_report(); > > > > + if (IS_ENABLED(CONFIG_USB_DEVICE)) > > + udc_disconnect(); > > + > > /* > > * Call remove function of all devices with a removal flag set. > > * This may be useful for last-stage operations, like cancelling > > diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c > > index 13d0d4dbe88..0bc66ee61a8 100644 > > --- a/lib/efi_loader/efi_boottime.c > > +++ b/lib/efi_loader/efi_boottime.c > > @@ -2238,8 +2238,6 @@ static efi_status_t EFIAPI > > efi_exit_boot_services(efi_handle_t image_handle, > > > > if (!efi_st_keep_devices) { > > bootm_disable_interrupts(); > > - if (IS_ENABLED(CONFIG_DM_ETH)) > > - eth_halt(); > > board_quiesce_devices(); > > bootm_final(0); > > } > > -- > > 2.43.0 > >

