[PATCH v3 06/17] riscv: Call bootm_final()
Simon Glass
sjg at chromium.org
Sat Feb 28 21:19:54 CET 2026
From: Simon Glass <simon.glass at canonical.com>
The RISC-V announce_and_cleanup() duplicates the common pre-boot
steps. Replace it with a call to bootm_final().
Move board_quiesce_devices() into bootm_final() so it is available to
all architectures. Drop the RISC-V weak definition and header
declaration since the generic one in bootm.h is used instead.
Signed-off-by: Simon Glass <simon.glass at canonical.com>
---
Changes in v3:
- Drop udc_disconnect()
- Move board_quiesce_devices() into bootm_final() instead of dropping it
- Squash with the previous riscv patches
arch/riscv/include/asm/u-boot-riscv.h | 1 -
arch/riscv/lib/bootm.c | 24 +-----------------------
boot/bootm.c | 2 ++
3 files changed, 3 insertions(+), 24 deletions(-)
diff --git a/arch/riscv/include/asm/u-boot-riscv.h b/arch/riscv/include/asm/u-boot-riscv.h
index 543a1688db8..3a8fdb57136 100644
--- a/arch/riscv/include/asm/u-boot-riscv.h
+++ b/arch/riscv/include/asm/u-boot-riscv.h
@@ -16,7 +16,6 @@ int cleanup_before_linux(void);
/* board/.../... */
int board_init(void);
-void board_quiesce_devices(void);
int riscv_board_reserved_mem_fixup(void *fdt);
int riscv_fdt_copy_resv_mem_node(const void *src_fdt, void *dest_fdt);
diff --git a/arch/riscv/lib/bootm.c b/arch/riscv/lib/bootm.c
index 9544907ab1e..bd47275b52e 100644
--- a/arch/riscv/lib/bootm.c
+++ b/arch/riscv/lib/bootm.c
@@ -25,10 +25,6 @@
DECLARE_GLOBAL_DATA_PTR;
-__weak void board_quiesce_devices(void)
-{
-}
-
/**
* announce_and_cleanup() - Print message and prepare for kernel boot
*
@@ -36,25 +32,7 @@ __weak void board_quiesce_devices(void)
*/
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
-
- board_quiesce_devices();
-
- /*
- * 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.c b/boot/bootm.c
index 3a69cc0deb0..ac521094db7 100644
--- a/boot/bootm.c
+++ b/boot/bootm.c
@@ -1206,6 +1206,8 @@ void bootm_final(enum bootm_final_t flags)
if (IS_ENABLED(CONFIG_BOOTSTAGE_REPORT))
bootstage_report();
+ board_quiesce_devices();
+
/*
* Call remove function of all devices with a removal flag set.
* This may be useful for last-stage operations, like cancelling
--
2.43.0
More information about the U-Boot
mailing list