diff --git a/arch/arm64/core/mmu.c b/arch/arm64/core/mmu.c index fae0476be81..3f3d323e547 100644 --- a/arch/arm64/core/mmu.c +++ b/arch/arm64/core/mmu.c @@ -785,7 +785,7 @@ static sys_slist_t domain_list; * This function provides the default configuration mechanism for the Memory * Management Unit (MMU). */ -void z_arm64_mmu_init(void) +void z_arm64_mmu_init(bool is_primary_core) { unsigned int flags = 0U; @@ -801,7 +801,7 @@ void z_arm64_mmu_init(void) /* * Only booting core setup up the page tables. */ - if (IS_PRIMARY_CORE()) { + if (is_primary_core) { kernel_ptables.base_xlat_table = new_table(); setup_page_tables(&kernel_ptables); } diff --git a/arch/arm64/core/prep_c.c b/arch/arm64/core/prep_c.c index e2704e80a4d..e69ca6f6ebd 100644 --- a/arch/arm64/core/prep_c.c +++ b/arch/arm64/core/prep_c.c @@ -20,9 +20,9 @@ extern FUNC_NORETURN void z_cstart(void); #ifdef CONFIG_ARM_MMU -extern void z_arm64_mmu_init(void); +extern void z_arm64_mmu_init(bool is_primary_core); #else -static inline void z_arm64_mmu_init(void) { } +static inline void z_arm64_mmu_init(bool is_primary_core) { } #endif static inline void z_arm64_bss_zero(void) @@ -52,7 +52,7 @@ void z_arm64_prep_c(void) #ifdef CONFIG_XIP z_data_copy(); #endif - z_arm64_mmu_init(); + z_arm64_mmu_init(true); z_arm64_interrupt_init(); z_cstart(); diff --git a/arch/arm64/core/smp.c b/arch/arm64/core/smp.c index a040abd69e1..0150fe5097a 100644 --- a/arch/arm64/core/smp.c +++ b/arch/arm64/core/smp.c @@ -68,7 +68,7 @@ void z_arm64_secondary_start(void) /* Initialize tpidrro_el0 with our struct _cpu instance address */ write_tpidrro_el0((uintptr_t)&_kernel.cpus[cpu_num]); - z_arm64_mmu_init(); + z_arm64_mmu_init(false); #ifdef CONFIG_SMP arm_gic_secondary_init(); diff --git a/include/arch/arm64/arm_mmu.h b/include/arch/arm64/arm_mmu.h index 4511eef1de1..e549546aeac 100644 --- a/include/arch/arm64/arm_mmu.h +++ b/include/arch/arm64/arm_mmu.h @@ -195,7 +195,7 @@ struct arm_mmu_ptables { extern const struct arm_mmu_config mmu_config; struct k_thread; -void z_arm64_mmu_init(void); +void z_arm64_mmu_init(bool is_primary_core); void z_arm64_thread_pt_init(struct k_thread *thread); void z_arm64_swap_ptables(struct k_thread *thread);