[PATCH 5/7] lib: sbi: adjust first usable PMP index to sbi_hart_pmp_reserved
Anup Patel
anup at brainfault.org
Tue Dec 12 00:34:18 PST 2023
On Fri, Dec 8, 2023 at 3:34 AM Yangyu Chen <cyy at cyyself.name> wrote:
>
> Since we have probed the maximum index of locked PMPs and marked PMPs
> reserved from index 0 to it. We can use the number of reserved PMPs as
> the first usable PMP index.
>
> Signed-off-by: Yangyu Chen <cyy at cyyself.name>
Looks good to me.
Reviewed-by: Anup Patel <anup at brainfault.org>
Regards,
Anup
> ---
> include/sbi/sbi_hart.h | 2 +-
> lib/sbi/sbi_hart.c | 6 +++---
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/include/sbi/sbi_hart.h b/include/sbi/sbi_hart.h
> index 8df655c..aeaff45 100644
> --- a/include/sbi/sbi_hart.h
> +++ b/include/sbi/sbi_hart.h
> @@ -65,7 +65,7 @@ enum sbi_hart_extensions {
> * unmapped. sbi_hart_map_saddr/sbi_hart_unmap_saddr function
> * pair should be used to map/unmap the shared memory.
> */
> -#define SBI_SMEPMP_RESV_ENTRY 0
> +#define SBI_SMEPMP_RESV_ENTRY sbi_hart_pmp_reserved(scratch)
>
> struct sbi_hart_features {
> bool detected;
> diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c
> index f8f7b82..f836b1c 100644
> --- a/lib/sbi/sbi_hart.c
> +++ b/lib/sbi/sbi_hart.c
> @@ -401,7 +401,7 @@ static int sbi_hart_smepmp_configure(struct sbi_scratch *scratch,
> pmp_disable(SBI_SMEPMP_RESV_ENTRY);
>
> /* Program M-only regions when MML is not set. */
> - pmp_idx = 0;
> + pmp_idx = sbi_hart_pmp_reserved(scratch);
> sbi_domain_for_each_memregion(dom, reg) {
> /* Skip reserved entry */
> if (pmp_idx == SBI_SMEPMP_RESV_ENTRY)
> @@ -427,7 +427,7 @@ static int sbi_hart_smepmp_configure(struct sbi_scratch *scratch,
> csr_set(CSR_MSECCFG, MSECCFG_MML);
>
> /* Program shared and SU-only regions */
> - pmp_idx = 0;
> + pmp_idx = sbi_hart_pmp_reserved(scratch);
> sbi_domain_for_each_memregion(dom, reg) {
> /* Skip reserved entry */
> if (pmp_idx == SBI_SMEPMP_RESV_ENTRY)
> @@ -464,7 +464,7 @@ static int sbi_hart_oldpmp_configure(struct sbi_scratch *scratch,
> {
> struct sbi_domain_memregion *reg;
> struct sbi_domain *dom = sbi_domain_thishart_ptr();
> - unsigned int pmp_idx = 0;
> + unsigned int pmp_idx = sbi_hart_pmp_reserved(scratch);
> unsigned int pmp_flags;
> unsigned long pmp_addr;
>
> --
> 2.43.0
>
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi
More information about the opensbi
mailing list