arm64: refine the code for primary core checking
We can find caller of z_arm64_mmu_init is on primary core or not, so no need to check mpidr, just add a function parameter. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
This commit is contained in:
parent
a7daeebf0e
commit
7889364771
4 changed files with 7 additions and 7 deletions
|
@ -785,7 +785,7 @@ static sys_slist_t domain_list;
|
||||||
* This function provides the default configuration mechanism for the Memory
|
* This function provides the default configuration mechanism for the Memory
|
||||||
* Management Unit (MMU).
|
* Management Unit (MMU).
|
||||||
*/
|
*/
|
||||||
void z_arm64_mmu_init(void)
|
void z_arm64_mmu_init(bool is_primary_core)
|
||||||
{
|
{
|
||||||
unsigned int flags = 0U;
|
unsigned int flags = 0U;
|
||||||
|
|
||||||
|
@ -801,7 +801,7 @@ void z_arm64_mmu_init(void)
|
||||||
/*
|
/*
|
||||||
* Only booting core setup up the page tables.
|
* Only booting core setup up the page tables.
|
||||||
*/
|
*/
|
||||||
if (IS_PRIMARY_CORE()) {
|
if (is_primary_core) {
|
||||||
kernel_ptables.base_xlat_table = new_table();
|
kernel_ptables.base_xlat_table = new_table();
|
||||||
setup_page_tables(&kernel_ptables);
|
setup_page_tables(&kernel_ptables);
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,9 +20,9 @@
|
||||||
extern FUNC_NORETURN void z_cstart(void);
|
extern FUNC_NORETURN void z_cstart(void);
|
||||||
|
|
||||||
#ifdef CONFIG_ARM_MMU
|
#ifdef CONFIG_ARM_MMU
|
||||||
extern void z_arm64_mmu_init(void);
|
extern void z_arm64_mmu_init(bool is_primary_core);
|
||||||
#else
|
#else
|
||||||
static inline void z_arm64_mmu_init(void) { }
|
static inline void z_arm64_mmu_init(bool is_primary_core) { }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static inline void z_arm64_bss_zero(void)
|
static inline void z_arm64_bss_zero(void)
|
||||||
|
@ -52,7 +52,7 @@ void z_arm64_prep_c(void)
|
||||||
#ifdef CONFIG_XIP
|
#ifdef CONFIG_XIP
|
||||||
z_data_copy();
|
z_data_copy();
|
||||||
#endif
|
#endif
|
||||||
z_arm64_mmu_init();
|
z_arm64_mmu_init(true);
|
||||||
z_arm64_interrupt_init();
|
z_arm64_interrupt_init();
|
||||||
z_cstart();
|
z_cstart();
|
||||||
|
|
||||||
|
|
|
@ -68,7 +68,7 @@ void z_arm64_secondary_start(void)
|
||||||
/* Initialize tpidrro_el0 with our struct _cpu instance address */
|
/* Initialize tpidrro_el0 with our struct _cpu instance address */
|
||||||
write_tpidrro_el0((uintptr_t)&_kernel.cpus[cpu_num]);
|
write_tpidrro_el0((uintptr_t)&_kernel.cpus[cpu_num]);
|
||||||
|
|
||||||
z_arm64_mmu_init();
|
z_arm64_mmu_init(false);
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
arm_gic_secondary_init();
|
arm_gic_secondary_init();
|
||||||
|
|
|
@ -195,7 +195,7 @@ struct arm_mmu_ptables {
|
||||||
extern const struct arm_mmu_config mmu_config;
|
extern const struct arm_mmu_config mmu_config;
|
||||||
|
|
||||||
struct k_thread;
|
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_thread_pt_init(struct k_thread *thread);
|
||||||
void z_arm64_swap_ptables(struct k_thread *thread);
|
void z_arm64_swap_ptables(struct k_thread *thread);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue