summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnup Patel <anup.patel@wdc.com>2020-11-15 11:00:29 +0300
committerAnup Patel <anup@brainfault.org>2020-12-04 15:28:59 +0300
commit62ea4f4e2a107e4f35661cb24673e6d3d24d9dbd (patch)
tree58f073c1141bd6de1aec74bb490b59499ecf2e3d
parentc1f6d8967889438638618e1d1f5615d7b2344454 (diff)
downloadopensbi-62ea4f4e2a107e4f35661cb24673e6d3d24d9dbd.tar.xz
lib: sbi: Override domain boot HART when coldboot HART assigned to it
If coldboot HART is assigned to a domain then we should use coldboot HART as the boot HART of the domain. This allows coldboot HART to continue boot sequence even when it is assigned to some non-root domain. Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Atish Patra <atish.patra@wdc.com>
-rw-r--r--lib/sbi/sbi_domain.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/sbi/sbi_domain.c b/lib/sbi/sbi_domain.c
index ecb098c..1b50604 100644
--- a/lib/sbi/sbi_domain.c
+++ b/lib/sbi/sbi_domain.c
@@ -395,6 +395,17 @@ int sbi_domain_finalize(struct sbi_scratch *scratch, u32 cold_hartid)
&tdom->assigned_harts);
hartid_to_domain_table[i] = dom;
sbi_hartmask_set_hart(i, &dom->assigned_harts);
+
+ /*
+ * If cold boot HART is assigned to this domain then
+ * override boot HART of this domain.
+ */
+ if (i == cold_hartid &&
+ dom->boot_hartid != cold_hartid) {
+ sbi_printf("Domain%d Boot HARTID forced to"
+ " %d\n", dom->index, cold_hartid);
+ dom->boot_hartid = cold_hartid;
+ }
}
}