diff options
| author | Yu-Chien Peter Lin <peter.lin@sifive.com> | 2026-03-27 13:49:36 +0800 |
|---|---|---|
| committer | Anup Patel <anup@brainfault.org> | 2026-05-11 10:11:06 +0530 |
| commit | 8cd279e321ce8eedd2750d3e2ed9a906e43e6e38 (patch) | |
| tree | 5d3e26492643365fa0fdadf9d056d12ad19a37a6 /lib | |
| parent | ae8f28a868513a76e0934dbd2a0a852c295c7051 (diff) | |
| download | opensbi-8cd279e321ce8eedd2750d3e2ed9a906e43e6e38.tar.gz opensbi-8cd279e321ce8eedd2750d3e2ed9a906e43e6e38.zip | |
lib: fdt_domain: Default boot-hart to coldboot HART for multi-domain boot
When "boot-hart" is not specified, dom->boot_hartid was left as -1U,
causing domain context switching to fail. Default it to the coldboot
HART to enable SMP boot in multi-domain setups, consistent with how
next-arg1 is handled.
Also update its description in domain_support.md.
Signed-off-by: Yu-Chien Peter Lin <peter.lin@sifive.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Link: https://lore.kernel.org/r/20260327054936.3462935-1-peter.lin@sifive.com
Signed-off-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/utils/fdt/fdt_domain.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/lib/utils/fdt/fdt_domain.c b/lib/utils/fdt/fdt_domain.c index b2fa8633..1b039533 100644 --- a/lib/utils/fdt/fdt_domain.c +++ b/lib/utils/fdt/fdt_domain.c @@ -396,16 +396,13 @@ static int __fdt_parse_domain(const void *fdt, int domain_offset, void *opaque) dom->fw_region_inited = root.fw_region_inited; /* Read "boot-hart" DT property */ - val32 = -1U; + val32 = current_hartid(); val = fdt_getprop(fdt, domain_offset, "boot-hart", &len); if (val && len >= 4) { cpu_offset = fdt_node_offset_by_phandle(fdt, fdt32_to_cpu(*val)); if (cpu_offset >= 0 && fdt_node_is_enabled(fdt, cpu_offset)) fdt_parse_hart_id(fdt, cpu_offset, &val32); - } else { - if (domain_offset == *cold_domain_offset) - val32 = current_hartid(); } dom->boot_hartid = val32; |
