[PATCH v2 06/11] lib: sbi: Override domain boot HART when coldboot HART assigned to it

Anup Patel Anup.Patel at wdc.com
Sat Dec 5 04:50:18 EST 2020



> -----Original Message-----
> From: Anup Patel <Anup.Patel at wdc.com>
> Sent: 04 December 2020 21:22
> To: Atish Patra <Atish.Patra at wdc.com>; Alistair Francis
> <Alistair.Francis at wdc.com>
> Cc: Anup Patel <anup at brainfault.org>; opensbi at lists.infradead.org; Anup
> Patel <Anup.Patel at wdc.com>; Alistair Francis <Alistair.Francis at wdc.com>
> Subject: [PATCH v2 06/11] 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 at wdc.com>
> Reviewed-by: Alistair Francis <alistair.francis at wdc.com>
> Reviewed-by: Atish Patra <atish.patra at wdc.com>
> ---
>  lib/sbi/sbi_domain.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> 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;
> +			}
>  		}
>  	}
> 
> --
> 2.25.1

Applied this patch to the riscv/opensbi repo.

Regards,
Anup




More information about the opensbi mailing list