summaryrefslogtreecommitdiff
path: root/lib/sbi/sbi_ecall_hsm.c
diff options
context:
space:
mode:
authorAnup Patel <anup.patel@wdc.com>2020-09-19 11:56:52 +0300
committerAnup Patel <anup@brainfault.org>2020-10-20 11:26:36 +0300
commit3a30d2c34d9c287f49419b44c768ffb70764325c (patch)
tree363cac510778fecc2c182ebcf58d5519cec33b08 /lib/sbi/sbi_ecall_hsm.c
parente73b92d8623e9599245c6921025cfe0b40141f07 (diff)
downloadopensbi-3a30d2c34d9c287f49419b44c768ffb70764325c.tar.xz
lib: sbi: Extend sbi_hsm_hart_start() for domains
The sbi_hsm_hart_start() should consider the domain under which we are trying to start the HART. This will help ensure that HART A can start HART B only if both HARTs A and B belong to the same domain. We also have a special case when we bring-up boot HART of non-root domains in sbi_domain_finalize() where we should skip domain checks in sbi_hsm_hart_start(). To achieve this, sbi_hsm_hart_start() should do domain checks only when domain parameter is non-NULL. This patch extends sbi_hsm_hart_start() as-per above. Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Atish Patra <atish.patra@wdc.com>
Diffstat (limited to 'lib/sbi/sbi_ecall_hsm.c')
-rw-r--r--lib/sbi/sbi_ecall_hsm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/sbi/sbi_ecall_hsm.c b/lib/sbi/sbi_ecall_hsm.c
index 3698a41..376740c 100644
--- a/lib/sbi/sbi_ecall_hsm.c
+++ b/lib/sbi/sbi_ecall_hsm.c
@@ -28,8 +28,8 @@ static int sbi_ecall_hsm_handler(unsigned long extid, unsigned long funcid,
case SBI_EXT_HSM_HART_START:
smode = csr_read(CSR_MSTATUS);
smode = (smode & MSTATUS_MPP) >> MSTATUS_MPP_SHIFT;
- ret = sbi_hsm_hart_start(scratch, args[0], args[1],
- smode, args[2]);
+ ret = sbi_hsm_hart_start(scratch, sbi_domain_thishart_ptr(),
+ args[0], args[1], smode, args[2]);
break;
case SBI_EXT_HSM_HART_STOP:
ret = sbi_hsm_hart_stop(scratch, TRUE);