20 #include <linux/module.h>
21 #include <linux/sched.h>
22 #include <linux/kernel.h>
23 #include <linux/errno.h>
24 #include <linux/string.h>
25 #include <linux/types.h>
27 #include <linux/stddef.h>
35 #include <linux/slab.h>
38 #include <asm/pgalloc.h>
41 #include <asm/pgtable.h>
44 #include <asm/machdep.h>
45 #include <asm/btext.h>
47 #include <asm/sections.h>
48 #include <asm/hugetlb.h>
52 #if defined(CONFIG_KERNEL_START_BOOL) || defined(CONFIG_LOWMEM_SIZE_BOOL)
54 #if (CONFIG_LOWMEM_SIZE > (0xF0000000 - PAGE_OFFSET))
55 #error "You must adjust CONFIG_LOWMEM_SIZE or CONFIG_START_KERNEL"
58 #define MAX_LOW_MEM CONFIG_LOWMEM_SIZE
68 #ifdef CONFIG_RELOCATABLE_PPC32
70 long long virt_phys_offset;
77 #ifdef CONFIG_PPC_PMAC
78 unsigned long agp_special_page;
116 #ifdef CONFIG_DEBUG_PAGEALLOC
130 ppc_md.progress(
"MMU:enter", 0x111);
139 reserve_hugetlb_gpages();
141 if (memblock.memory.cnt > 1) {
153 #ifdef CONFIG_FSL_BOOKE
157 adjust_total_lowmem();
163 #ifndef CONFIG_HIGHMEM
171 ppc_md.progress(
"MMU:hw init", 0x300);
176 ppc_md.progress(
"MMU:mapin", 0x301);
184 ppc_md.progress(
"MMU:setio", 0x302);
187 ppc_md.progress(
"MMU:exit", 0x211);
190 #ifdef CONFIG_BOOTX_TEXT
214 BUG_ON(first_memblock_base != 0);