diff mbox series

lib: utils: Fix reserved memory node for firmware memory

Message ID 20230121064559.3164930-1-mchitale@ventanamicro.com
State Accepted
Headers show
Series lib: utils: Fix reserved memory node for firmware memory | expand

Commit Message

Mayuresh Chitale Jan. 21, 2023, 6:45 a.m. UTC
The commit 9e0ba090 introduced more fine grained permissions for memory
regions and did not update the fdt_reserved_memory_fixup() function. As
a result, the fdt_reserved_memory_fixup continued to use the older coarse
permissions which causes the reserved memory node to be not inserted
into the DT.

To fix the above issue, we correct the flags used for memory region
permission checks in the fdt_reserved_memory_fixup() function.

Fixes: 9e0ba090 ("include: sbi: Fine grain the permissions for M and SU modes")
Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com>
---
 lib/utils/fdt/fdt_fixup.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Anup Patel Jan. 21, 2023, 1:31 p.m. UTC | #1
On Sat, Jan 21, 2023 at 12:16 PM Mayuresh Chitale
<mchitale@ventanamicro.com> wrote:
>
> The commit 9e0ba090 introduced more fine grained permissions for memory
> regions and did not update the fdt_reserved_memory_fixup() function. As
> a result, the fdt_reserved_memory_fixup continued to use the older coarse
> permissions which causes the reserved memory node to be not inserted
> into the DT.
>
> To fix the above issue, we correct the flags used for memory region
> permission checks in the fdt_reserved_memory_fixup() function.
>
> Fixes: 9e0ba090 ("include: sbi: Fine grain the permissions for M and SU modes")
> Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com>

Thanks for catching and fixing this issue.

Reviewed-by: Anup Patel <anup@brainfault.org>

Regards,
Anup

> ---
>  lib/utils/fdt/fdt_fixup.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/lib/utils/fdt/fdt_fixup.c b/lib/utils/fdt/fdt_fixup.c
> index 41f6cbb..42692cc 100644
> --- a/lib/utils/fdt/fdt_fixup.c
> +++ b/lib/utils/fdt/fdt_fixup.c
> @@ -259,11 +259,11 @@ int fdt_reserved_memory_fixup(void *fdt)
>                 /* Ignore MMIO or READABLE or WRITABLE or EXECUTABLE regions */
>                 if (reg->flags & SBI_DOMAIN_MEMREGION_MMIO)
>                         continue;
> -               if (reg->flags & SBI_DOMAIN_MEMREGION_READABLE)
> +               if (reg->flags & SBI_DOMAIN_MEMREGION_SU_READABLE)
>                         continue;
> -               if (reg->flags & SBI_DOMAIN_MEMREGION_WRITEABLE)
> +               if (reg->flags & SBI_DOMAIN_MEMREGION_SU_WRITABLE)
>                         continue;
> -               if (reg->flags & SBI_DOMAIN_MEMREGION_EXECUTABLE)
> +               if (reg->flags & SBI_DOMAIN_MEMREGION_SU_EXECUTABLE)
>                         continue;
>
>                 addr = reg->base;
> --
> 2.34.1
>
Anup Patel Jan. 23, 2023, 4:59 a.m. UTC | #2
On Sat, Jan 21, 2023 at 12:16 PM Mayuresh Chitale
<mchitale@ventanamicro.com> wrote:
>
> The commit 9e0ba090 introduced more fine grained permissions for memory
> regions and did not update the fdt_reserved_memory_fixup() function. As
> a result, the fdt_reserved_memory_fixup continued to use the older coarse
> permissions which causes the reserved memory node to be not inserted
> into the DT.
>
> To fix the above issue, we correct the flags used for memory region
> permission checks in the fdt_reserved_memory_fixup() function.
>
> Fixes: 9e0ba090 ("include: sbi: Fine grain the permissions for M and SU modes")
> Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com>

Applied this patch to the riscv/opensbi repo.

Thanks,
Anup

> ---
>  lib/utils/fdt/fdt_fixup.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/lib/utils/fdt/fdt_fixup.c b/lib/utils/fdt/fdt_fixup.c
> index 41f6cbb..42692cc 100644
> --- a/lib/utils/fdt/fdt_fixup.c
> +++ b/lib/utils/fdt/fdt_fixup.c
> @@ -259,11 +259,11 @@ int fdt_reserved_memory_fixup(void *fdt)
>                 /* Ignore MMIO or READABLE or WRITABLE or EXECUTABLE regions */
>                 if (reg->flags & SBI_DOMAIN_MEMREGION_MMIO)
>                         continue;
> -               if (reg->flags & SBI_DOMAIN_MEMREGION_READABLE)
> +               if (reg->flags & SBI_DOMAIN_MEMREGION_SU_READABLE)
>                         continue;
> -               if (reg->flags & SBI_DOMAIN_MEMREGION_WRITEABLE)
> +               if (reg->flags & SBI_DOMAIN_MEMREGION_SU_WRITABLE)
>                         continue;
> -               if (reg->flags & SBI_DOMAIN_MEMREGION_EXECUTABLE)
> +               if (reg->flags & SBI_DOMAIN_MEMREGION_SU_EXECUTABLE)
>                         continue;
>
>                 addr = reg->base;
> --
> 2.34.1
>
diff mbox series

Patch

diff --git a/lib/utils/fdt/fdt_fixup.c b/lib/utils/fdt/fdt_fixup.c
index 41f6cbb..42692cc 100644
--- a/lib/utils/fdt/fdt_fixup.c
+++ b/lib/utils/fdt/fdt_fixup.c
@@ -259,11 +259,11 @@  int fdt_reserved_memory_fixup(void *fdt)
 		/* Ignore MMIO or READABLE or WRITABLE or EXECUTABLE regions */
 		if (reg->flags & SBI_DOMAIN_MEMREGION_MMIO)
 			continue;
-		if (reg->flags & SBI_DOMAIN_MEMREGION_READABLE)
+		if (reg->flags & SBI_DOMAIN_MEMREGION_SU_READABLE)
 			continue;
-		if (reg->flags & SBI_DOMAIN_MEMREGION_WRITEABLE)
+		if (reg->flags & SBI_DOMAIN_MEMREGION_SU_WRITABLE)
 			continue;
-		if (reg->flags & SBI_DOMAIN_MEMREGION_EXECUTABLE)
+		if (reg->flags & SBI_DOMAIN_MEMREGION_SU_EXECUTABLE)
 			continue;
 
 		addr = reg->base;