diff mbox series

arm: exynos: Map iRAM APM area for Exynos850 SoC

Message ID 20240525215330.16609-1-semen.protsenko@linaro.org
State Accepted
Commit 7045c4dd04648fd2ba1806b75e139d941db0d6c5
Headers show
Series arm: exynos: Map iRAM APM area for Exynos850 SoC | expand

Commit Message

Sam Protsenko May 25, 2024, 9:53 p.m. UTC
This iRAM APM area is needed for I3C access to PMIC via APM block.
Without this mapping any access to APM iRAM leads to "Synchronous Abort"
exception.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
---
 arch/arm/mach-exynos/mmu-arm64.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Minkyu Kang May 31, 2024, 6:51 a.m. UTC | #1
Hi,

On Sun, 26 May 2024 at 06:53, Sam Protsenko <semen.protsenko@linaro.org>
wrote:

> This iRAM APM area is needed for I3C access to PMIC via APM block.
> Without this mapping any access to APM iRAM leads to "Synchronous Abort"
> exception.
>
> Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
> ---
>  arch/arm/mach-exynos/mmu-arm64.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/arch/arm/mach-exynos/mmu-arm64.c
> b/arch/arm/mach-exynos/mmu-arm64.c
> index 30e522804fbf..4c154950f73b 100644
> --- a/arch/arm/mach-exynos/mmu-arm64.c
> +++ b/arch/arm/mach-exynos/mmu-arm64.c
> @@ -101,6 +101,14 @@ struct mm_region *mem_map = exynos7880_mem_map;
>
>  static struct mm_region exynos850_mem_map[] = {
>         {
> +               /* iRAM */
> +               .virt = 0x02000000UL,
> +               .phys = 0x02000000UL,
> +               .size = SZ_2M,
> +               .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRE) |
> +                        PTE_BLOCK_NON_SHARE |
> +                        PTE_BLOCK_PXN | PTE_BLOCK_UXN
> +       }, {
>                 /* Peripheral block */
>                 .virt = 0x10000000UL,
>                 .phys = 0x10000000UL,
> --
> 2.39.2
>
>
applied to u-boot-samsung.
diff mbox series

Patch

diff --git a/arch/arm/mach-exynos/mmu-arm64.c b/arch/arm/mach-exynos/mmu-arm64.c
index 30e522804fbf..4c154950f73b 100644
--- a/arch/arm/mach-exynos/mmu-arm64.c
+++ b/arch/arm/mach-exynos/mmu-arm64.c
@@ -101,6 +101,14 @@  struct mm_region *mem_map = exynos7880_mem_map;
 
 static struct mm_region exynos850_mem_map[] = {
 	{
+		/* iRAM */
+		.virt = 0x02000000UL,
+		.phys = 0x02000000UL,
+		.size = SZ_2M,
+		.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRE) |
+			 PTE_BLOCK_NON_SHARE |
+			 PTE_BLOCK_PXN | PTE_BLOCK_UXN
+	}, {
 		/* Peripheral block */
 		.virt = 0x10000000UL,
 		.phys = 0x10000000UL,