diff options
author | Alex Shi <alex.shi@linaro.org> | 2015-04-24 09:46:03 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2015-04-24 09:46:03 +0800 |
commit | de68a339fa7899990374c4996170e0ca3e09882e (patch) | |
tree | 8a06de70ba93052022802c57d0608fda71444fe9 /arch/arm64/mm/init.c | |
parent | 6f2263ccea57e41a756d4e309864c4aba601f85c (diff) | |
parent | e13c574895626b6e8bd53f340dbd47f67871b26b (diff) |
Merge branch 'linux-linaro-lsk-v3.10' into linux-linaro-lsk-v3.10-rtlsk-v3.10-15.04-rt
Diffstat (limited to 'arch/arm64/mm/init.c')
-rw-r--r-- | arch/arm64/mm/init.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index d0f86b74fce6..f2bded0254c3 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -141,11 +141,30 @@ static void arm64_memory_present(void) } #endif +static phys_addr_t memory_limit = (phys_addr_t)ULLONG_MAX; + +/* + * Limit the memory size that was specified via FDT. + */ +static int __init early_mem(char *p) +{ + if (!p) + return 1; + + memory_limit = memparse(p, &p) & PAGE_MASK; + pr_notice("Memory limited to %lldMB\n", memory_limit >> 20); + + return 0; +} +early_param("mem", early_mem); + void __init arm64_memblock_init(void) { u64 *reserve_map, base, size; phys_addr_t dma_phys_limit = 0; + memblock_enforce_memory_limit(memory_limit); + /* * Register the kernel text, kernel data, initrd, and initial * pagetables with memblock. |