lib: sbi: Fix pmp_flags for Smepmp read-only shared region
authorAnup Patel <apatel@ventanamicro.com>
Thu, 7 Sep 2023 11:49:44 +0000 (17:19 +0530)
committerAnup Patel <anup@brainfault.org>
Sun, 24 Sep 2023 11:10:52 +0000 (16:40 +0530)
The Smepmp read-only shared region must have pmpcfg.L, pmpcfg.R,
pmpcfg.W, and pmpcfg.X bits set so sbi_hart_get_smepmp_flags()
must return pmp_flags accordingly.

Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com>
lib/sbi/sbi_hart.c

index 6320ea6e4fe1d470eaa53d650c2b1dfbcb810011..c8aa342e207ff7211c85ac8b686d8f7bbb4fa64c 100644 (file)
@@ -297,7 +297,7 @@ static unsigned int sbi_hart_get_smepmp_flags(struct sbi_scratch *scratch,
        if (SBI_DOMAIN_MEMREGION_IS_SHARED(reg->flags)) {
                /* Read only for both M and SU modes */
                if (SBI_DOMAIN_MEMREGION_IS_SUR_MR(reg->flags))
-                       pmp_flags = (PMP_R | PMP_W | PMP_X);
+                       pmp_flags = (PMP_L | PMP_R | PMP_W | PMP_X);
 
                /* Execute for SU but Read/Execute for M mode */
                else if (SBI_DOMAIN_MEMREGION_IS_SUX_MRX(reg->flags))