[PATCH] arm: mach-k3: arm64-mmu: do not map ATF and OPTEE regions in A53 MMU

Andrew Davis afd at ti.com
Thu May 11 18:44:14 CEST 2023


On 5/11/23 4:58 AM, kamlesh at ti.com wrote:
> From: Kamlesh Gurudasani <kamlesh at ti.com>
> 
> Do not include ATF and OPTEE regions in MMU table for am64, am62,
> am62a as access to those regions is not allowed anyway.
> 

Commit messages should include the "why" we are doing this.

> Create separate table as ATF region are at different location for am64
> and am62/am62a.

We should find a way to get the reserved regions from DT, this table
is growing unmaintainable.

Andrew

> 
> Signed-off-by: Kamlesh Gurudasani <kamlesh at ti.com>
> ---
>   arch/arm/mach-k3/arm64-mmu.c | 64 +++++++++++++++++++++++++++++++++---
>   1 file changed, 59 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/arm/mach-k3/arm64-mmu.c b/arch/arm/mach-k3/arm64-mmu.c
> index 88687c2d09..f8087d2421 100644
> --- a/arch/arm/mach-k3/arm64-mmu.c
> +++ b/arch/arm/mach-k3/arm64-mmu.c
> @@ -222,14 +222,13 @@ struct mm_region *mem_map = j721s2_mem_map;
>   
>   #endif /* CONFIG_SOC_K3_J721S2 */
>   
> -#if defined(CONFIG_SOC_K3_AM642) || defined(CONFIG_SOC_K3_AM625) || \
> -	defined(CONFIG_SOC_K3_AM62A7)
> +#if defined(CONFIG_SOC_K3_AM625) || defined(CONFIG_SOC_K3_AM62A7)
>   
>   /* NR_DRAM_BANKS + 32bit IO + 64bit IO + terminator */
> -#define NR_MMU_REGIONS	(CONFIG_NR_DRAM_BANKS + 3)
> +#define NR_MMU_REGIONS	(CONFIG_NR_DRAM_BANKS + 4)
>   
>   /* ToDo: Add 64bit IO */
> -struct mm_region am64_mem_map[NR_MMU_REGIONS] = {
> +struct mm_region am62_mem_map[NR_MMU_REGIONS] = {
>   	{
>   		.virt = 0x0UL,
>   		.phys = 0x0UL,
> @@ -240,9 +239,64 @@ struct mm_region am64_mem_map[NR_MMU_REGIONS] = {
>   	}, {
>   		.virt = 0x80000000UL,
>   		.phys = 0x80000000UL,
> +		.size = 0x1E780000UL,
> +		.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
> +			PTE_BLOCK_INNER_SHARE
> +	}, {
> +		.virt = 0xA0000000UL,
> +		.phys = 0xA0000000UL,
> +		.size = 0x60000000UL,
> +		.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
> +			 PTE_BLOCK_INNER_SHARE
> +
> +	}, {
> +		.virt = 0x880000000UL,
> +		.phys = 0x880000000UL,
>   		.size = 0x80000000UL,
>   		.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
>   			 PTE_BLOCK_INNER_SHARE
> +	}, {
> +		.virt = 0x500000000UL,
> +		.phys = 0x500000000UL,
> +		.size = 0x400000000UL,
> +		.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
> +			 PTE_BLOCK_NON_SHARE |
> +			 PTE_BLOCK_PXN | PTE_BLOCK_UXN
> +	}, {
> +		/* List terminator */
> +		0,
> +	}
> +};
> +
> +struct mm_region *mem_map = am62_mem_map;
> +#endif /* CONFIG_SOC_K3_AM625 || CONFIG_SOC_K3_AM62A7 */
> +
> +#ifdef CONFIG_SOC_K3_AM642
> +
> +/* NR_DRAM_BANKS + 32bit IO + 64bit IO + terminator */
> +#define NR_MMU_REGIONS	(CONFIG_NR_DRAM_BANKS + 4)
> +
> +/* ToDo: Add 64bit IO */
> +struct mm_region am64_mem_map[NR_MMU_REGIONS] = {
> +	{
> +		.virt = 0x0UL,
> +		.phys = 0x0UL,
> +		.size = 0x80000000UL,
> +		.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
> +			 PTE_BLOCK_NON_SHARE |
> +			 PTE_BLOCK_PXN | PTE_BLOCK_UXN
> +	}, {
> +		.virt = 0x80000000UL,
> +		.phys = 0x80000000UL,
> +		.size = 0x1E800000UL,
> +		.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
> +			PTE_BLOCK_INNER_SHARE
> +	}, {
> +		.virt = 0xA0000000UL,
> +		.phys = 0xA0000000UL,
> +		.size = 0x60000000UL,
> +		.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
> +			 PTE_BLOCK_INNER_SHARE
>   	}, {
>   		.virt = 0x880000000UL,
>   		.phys = 0x880000000UL,
> @@ -263,4 +317,4 @@ struct mm_region am64_mem_map[NR_MMU_REGIONS] = {
>   };
>   
>   struct mm_region *mem_map = am64_mem_map;
> -#endif /* CONFIG_SOC_K3_AM642 || CONFIG_SOC_K3_AM625 || CONFIG_SOC_K3_AM62A7 */
> +#endif /* CONFIG_SOC_K3_AM642 */


More information about the U-Boot mailing list