Skip to content

Commit

Permalink
powerpc/mm: Abstract early MMU init in preparation for radix
Browse files Browse the repository at this point in the history
Signed-off-by: Aneesh Kumar K.V <[email protected]>
Signed-off-by: Michael Ellerman <[email protected]>
  • Loading branch information
kvaneesh authored and mpe committed May 1, 2016
1 parent 6cc1a0e commit 756d08d
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 10 deletions.
20 changes: 20 additions & 0 deletions arch/powerpc/include/asm/book3s/64/mmu.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,5 +97,25 @@ extern int mmu_vmalloc_psize;
extern int mmu_vmemmap_psize;
extern int mmu_io_psize;

/* MMU initialization */
extern void hash__early_init_mmu(void);
static inline void early_init_mmu(void)
{
return hash__early_init_mmu();
}
extern void hash__early_init_mmu_secondary(void);
static inline void early_init_mmu_secondary(void)
{
return hash__early_init_mmu_secondary();
}

extern void hash__setup_initial_memory_limit(phys_addr_t first_memblock_base,
phys_addr_t first_memblock_size);
static inline void setup_initial_memory_limit(phys_addr_t first_memblock_base,
phys_addr_t first_memblock_size)
{
return hash__setup_initial_memory_limit(first_memblock_base,
first_memblock_size);
}
#endif /* __ASSEMBLY__ */
#endif /* _ASM_POWERPC_BOOK3S_64_MMU_H_ */
14 changes: 7 additions & 7 deletions arch/powerpc/include/asm/mmu.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,13 +122,6 @@ static inline void mmu_clear_feature(unsigned long feature)

extern unsigned int __start___mmu_ftr_fixup, __stop___mmu_ftr_fixup;

/* MMU initialization */
extern void early_init_mmu(void);
extern void early_init_mmu_secondary(void);

extern void setup_initial_memory_limit(phys_addr_t first_memblock_base,
phys_addr_t first_memblock_size);

#ifdef CONFIG_PPC64
/* This is our real memory area size on ppc64 server, on embedded, we
* make it match the size our of bolted TLB area
Expand Down Expand Up @@ -185,6 +178,13 @@ static inline void assert_pte_locked(struct mm_struct *mm, unsigned long addr)
#include <asm/book3s/64/mmu.h>
#else /* CONFIG_PPC_BOOK3S_64 */

#ifndef __ASSEMBLY__
/* MMU initialization */
extern void early_init_mmu(void);
extern void early_init_mmu_secondary(void);
extern void setup_initial_memory_limit(phys_addr_t first_memblock_base,
phys_addr_t first_memblock_size);
#endif /* __ASSEMBLY__ */
#endif

#if defined(CONFIG_PPC_STD_MMU_32)
Expand Down
6 changes: 3 additions & 3 deletions arch/powerpc/mm/hash_utils_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -868,7 +868,7 @@ static void __init htab_initialize(void)
#undef KB
#undef MB

void __init early_init_mmu(void)
void __init hash__early_init_mmu(void)
{
/*
* initialize page table size
Expand All @@ -893,7 +893,7 @@ void __init early_init_mmu(void)
}

#ifdef CONFIG_SMP
void early_init_mmu_secondary(void)
void hash__early_init_mmu_secondary(void)
{
/* Initialize hash table for that CPU */
if (!firmware_has_feature(FW_FEATURE_LPAR))
Expand Down Expand Up @@ -1635,7 +1635,7 @@ void __kernel_map_pages(struct page *page, int numpages, int enable)
}
#endif /* CONFIG_DEBUG_PAGEALLOC */

void setup_initial_memory_limit(phys_addr_t first_memblock_base,
void hash__setup_initial_memory_limit(phys_addr_t first_memblock_base,
phys_addr_t first_memblock_size)
{
/* We don't currently support the first MEMBLOCK not mapping 0
Expand Down

0 comments on commit 756d08d

Please sign in to comment.