[U-Boot] [PATCH] arm64: Fix layerscape mmu setup

york sun york.sun at nxp.com
Mon Mar 21 20:30:07 CET 2016


On 03/21/2016 12:26 PM, Alexander Graf wrote:
> With commit 7985cdf we converted all systems except for the Layerscape
> SoCs to the generic descriptor table based page table setup.
> 
> On the Layerscape SoCs however, we just provide an empty table stub
> and do the setup ourselves. To reserve enough memory for the tables,
> we need to override the default counting mechanism which would end up
> with an empty table because we have no maps.
> 
> Fixes: 7985cdf
> Reported-by: York Sun <york.sun at nxp.com>
> CC: Alison Wang <alison.wang at nxp.com>
> CC: Prabhakar Kushwaha <prabhakar.kushwaha at nxp.com>
> Signed-off-by: Alexander Graf <agraf at suse.de>
> ---
>  arch/arm/cpu/armv8/cache_v8.c           | 2 +-
>  arch/arm/cpu/armv8/fsl-layerscape/cpu.c | 5 +++++
>  2 files changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/cpu/armv8/cache_v8.c b/arch/arm/cpu/armv8/cache_v8.c
> index d1bd06b..1615542 100644
> --- a/arch/arm/cpu/armv8/cache_v8.c
> +++ b/arch/arm/cpu/armv8/cache_v8.c
> @@ -320,7 +320,7 @@ static int count_required_pts(u64 addr, int level, u64 maxaddr)
>  }
>  
>  /* Returns the estimated required size of all page tables */
> -u64 get_page_table_size(void)
> +__weak u64 get_page_table_size(void)
>  {
>  	u64 one_pt = MAX_PTE_ENTRIES * sizeof(u64);
>  	u64 size = 0;
> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> index 7404bd9..4b9e209 100644
> --- a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> +++ b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> @@ -410,6 +410,11 @@ static inline void final_mmu_setup(void)
>  	 */
>  }
>  
> +u64 get_page_table_size(void)
> +{
> +	return 0x10000;
> +}
> +
>  int arch_cpu_init(void)
>  {
>  	icache_enable();
> 

Tested-by: York Sun <york.sun at nxp.com>
Reviewed-by: York Sun <york.sun at nxp.com>



More information about the U-Boot mailing list