[ARM] Split ARM MM initialisation for !mmu
Move the MMU specific code from init.c into mmu.c, and add nommu fixups to nommu.c Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
committed by
Russell King
parent
456335e207
commit
d111e8f964
@@ -11,6 +11,42 @@
|
||||
#include <asm/io.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
#include "mm.h"
|
||||
|
||||
extern void _stext, __data_start, _end;
|
||||
|
||||
/*
|
||||
* Reserve the various regions of node 0
|
||||
*/
|
||||
void __init reserve_node_zero(pg_data_t *pgdat)
|
||||
{
|
||||
/*
|
||||
* Register the kernel text and data with bootmem.
|
||||
* Note that this can only be in node 0.
|
||||
*/
|
||||
#ifdef CONFIG_XIP_KERNEL
|
||||
reserve_bootmem_node(pgdat, __pa(&__data_start), &_end - &__data_start);
|
||||
#else
|
||||
reserve_bootmem_node(pgdat, __pa(&_stext), &_end - &_stext);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Register the exception vector page.
|
||||
* some architectures which the DRAM is the exception vector to trap,
|
||||
* alloc_page breaks with error, although it is not NULL, but "0."
|
||||
*/
|
||||
reserve_bootmem_node(pgdat, CONFIG_VECTORS_BASE, PAGE_SIZE);
|
||||
}
|
||||
|
||||
/*
|
||||
* paging_init() sets up the page tables, initialises the zone memory
|
||||
* maps, and sets up the zero page, bad page and bad page tables.
|
||||
*/
|
||||
void __init paging_init(struct meminfo *mi, struct machine_desc *mdesc)
|
||||
{
|
||||
bootmem_init(mi);
|
||||
}
|
||||
|
||||
void flush_dcache_page(struct page *page)
|
||||
{
|
||||
__cpuc_flush_dcache_page(page_address(page));
|
||||
|
Reference in New Issue
Block a user