[PATCH 00/12] Some improvements on boot sequence

Xiang W wxjstz at 126.com
Mon Jun 16 05:20:21 PDT 2025


在 2025-06-16一的 17:25 +0530,Anup Patel写道:
> On Wed, Jun 11, 2025 at 5:42 PM Xiang W <wxjstz at 126.com> wrote:
> > 
> > This series of patches mainly merges init_coldboot and init_warm_startup,
> 
> The existing code of having clearly separate coldboot, warm_startup, and
> warm_resume paths are straightforward to understand and maintain. Even,
> Linux has separate start_kernel() (for boot/primary HART), smp_callin()
> (for non-boot/secondary HARTs) and __cpu_resume_enter() (for HART
> resume).
> 
> > and separates sbi_hsm_hart_wait from sbi_hsm_init, so that non-coldboot
> > HART can perform more initialization tasks before entering HSM wait. In
> > order to improve some multi HARTs related codes.
> 
> Performing more initialization on non-coldboot HART before
> sbi_hsm_hart_wait() is redundant because non-coldboot HART
> will have to anyway wait until coldboot HART uses SBI HSM
> start call.
> 
> On the contrary, doing sbi_hsm_hart_wait() as the first thing for
> non-coldboot HART ensures that HART is fully initialized only
> after coldboot HART decides to bring it up (via SBI HSM start)
> which also enables us to poweroff non-coldboot HART on
> platforms with full hart-hotplug.
> 
> > 
> > Xiang W (12):
> >   lib: sbi: Add coldboot parameters to some initialization functions
> >   lib: sbi: Optimise the boot sequence
> >   lib: sbi: Implement synchronisation and wait between multiple HARTs
> >   lib: sbi: Remove wait_for_coldboot and wake_coldboot_harts
> >   lib: sbi: Add wait operations in some initialization functions
> >   lib/utils: Make fdt_parse_isa_extensions reentrant
> >   lib: sbi: Initialize as much as possible before sbi_hsm_init
> >   lib: sbi: Remove cold_boot from sbi_hsm_init
> >   lib: sbi: Ensure that all Harts complete sbi_hart_init
> >   lib/utils: Fix Zicntr detection in fdt_cpu_fixup
> >   lib: sbi: Fix dtbr initialization
> >   lib: sbi: Remove cold_boot from sbi_double_trap_init
> 
> This all seems unnecessary churn and I still find it hard
> to understand the underlying problem.

When initialization depends on other HART extensions, the 
old startup process is completely unaware of other HART 
extensions.For example, the issues fixed by PATCH10/PATCH11
/PATCH12 all assume that the extensions supported by HART 
are the same.

Regards,
Xiang W
> 
> > 
> >  include/sbi/sbi_domain.h   |   2 +-
> >  include/sbi/sbi_hart.h     |   6 +
> >  include/sbi/sbi_hsm.h      |   5 +-
> >  include/sbi/sbi_mpxy.h     |   2 +-
> >  lib/sbi/sbi_dbtr.c         |  32 +++-
> >  lib/sbi/sbi_domain.c       |   9 +-
> >  lib/sbi/sbi_double_trap.c  |   7 +-
> >  lib/sbi/sbi_ecall_dbtr.c   |   2 +-
> >  lib/sbi/sbi_fwft.c         |   3 +
> >  lib/sbi/sbi_hart.c         |  77 +++++++++-
> >  lib/sbi/sbi_hsm.c          |  51 +++----
> >  lib/sbi/sbi_init.c         | 306 +++++++++++++------------------------
> >  lib/sbi/sbi_ipi.c          |   3 +
> >  lib/sbi/sbi_irqchip.c      |   5 +-
> >  lib/sbi/sbi_mpxy.c         |   4 +-
> >  lib/sbi/sbi_pmu.c          |   3 +
> >  lib/sbi/sbi_sse.c          |   3 +
> >  lib/sbi/sbi_timer.c        |   3 +
> >  lib/sbi/sbi_tlb.c          |   3 +
> >  lib/utils/fdt/fdt_fixup.c  |  24 +--
> >  lib/utils/fdt/fdt_helper.c |   4 +
> >  21 files changed, 300 insertions(+), 254 deletions(-)
> > 
> > --
> > 2.47.2
> > 
> 
> Regards,
> Anup




More information about the opensbi mailing list