[PATCH 2/3] platform: generic: spacemit: k3: override cold_boot_allowed for hart 0 only
Valentin Haudiquet
valentin.haudiquet at canonical.com
Mon Aug 31 13:07:51 PDT 2026
Only hart 0 is powered at reset on K3. Without overriding
cold_boot_allowed, the generic default checks a DTB hart mask which may
allow non-hart-0 harts to attempt cold boot, breaking the coldboot
lottery on a platform where only one hart is running.
Add spacemit_k3_cold_boot_allowed() returning true only for hart 0,
matching K1's pattern.
Signed-off-by: Valentin Haudiquet <valentin.haudiquet at canonical.com>
---
platform/generic/spacemit/k3.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/platform/generic/spacemit/k3.c b/platform/generic/spacemit/k3.c
index 12c991b6..f134427d 100644
--- a/platform/generic/spacemit/k3.c
+++ b/platform/generic/spacemit/k3.c
@@ -138,11 +138,17 @@ static int spacemit_k3_early_init(bool cold_boot)
return generic_early_init(cold_boot);
}
+static bool spacemit_k3_cold_boot_allowed(u32 hartid)
+{
+ return !hartid;
+}
+
static int spacemit_k3_platform_init(const void *fdt, int nodeoff,
const struct fdt_match *match)
{
spacemit_k3_hart_init(current_hartid());
generic_platform_ops.early_init = spacemit_k3_early_init;
+ generic_platform_ops.cold_boot_allowed = spacemit_k3_cold_boot_allowed;
return 0;
}
--
2.53.0
More information about the opensbi
mailing list