2 * machine_specific_memory_setup - Hook for machine specific memory setup.
5 * This is included late in kernel/setup.c so that it can make
6 * use of all of the static functions.
9 static char * __init machine_specific_memory_setup(void)
12 unsigned long start_pfn, max_pfn;
17 max_pfn = xen_start_info.nr_pages;
20 add_memory_region(PFN_PHYS(start_pfn), PFN_PHYS(max_pfn) - PFN_PHYS(start_pfn), E820_RAM);
25 void __init machine_specific_modify_cpu_capabilities(struct cpuinfo_x86 *c)
27 clear_bit(X86_FEATURE_VME, c->x86_capability);
28 clear_bit(X86_FEATURE_DE, c->x86_capability);
29 clear_bit(X86_FEATURE_PSE, c->x86_capability);
30 clear_bit(X86_FEATURE_PGE, c->x86_capability);
31 clear_bit(X86_FEATURE_SEP, c->x86_capability);
32 if (!(xen_start_info.flags & SIF_PRIVILEGED))
33 clear_bit(X86_FEATURE_MTRR, c->x86_capability);
36 extern void hypervisor_callback(void);
37 extern void failsafe_callback(void);
39 static void __init machine_specific_arch_setup(void)
41 HYPERVISOR_set_callbacks(
42 __KERNEL_CS, (unsigned long)hypervisor_callback,
43 __KERNEL_CS, (unsigned long)failsafe_callback);
45 machine_specific_modify_cpu_capabilities(&boot_cpu_data);