aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/setup.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-x86/setup.h')
-rw-r--r--include/asm-x86/setup.h53
1 files changed, 42 insertions, 11 deletions
diff --git a/include/asm-x86/setup.h b/include/asm-x86/setup.h
index fa6763af8d26..a07c6f1c01e1 100644
--- a/include/asm-x86/setup.h
+++ b/include/asm-x86/setup.h
@@ -8,7 +8,40 @@
8/* Interrupt control for vSMPowered x86_64 systems */ 8/* Interrupt control for vSMPowered x86_64 systems */
9void vsmp_init(void); 9void vsmp_init(void);
10 10
11char *machine_specific_memory_setup(void); 11#ifdef CONFIG_X86_VISWS
12extern void visws_early_detect(void);
13extern int is_visws_box(void);
14#else
15static inline void visws_early_detect(void) { }
16static inline int is_visws_box(void) { return 0; }
17#endif
18
19/*
20 * Any setup quirks to be performed?
21 */
22struct mpc_config_processor;
23struct mpc_config_bus;
24struct mp_config_oemtable;
25struct x86_quirks {
26 int (*arch_pre_time_init)(void);
27 int (*arch_time_init)(void);
28 int (*arch_pre_intr_init)(void);
29 int (*arch_intr_init)(void);
30 int (*arch_trap_init)(void);
31 char * (*arch_memory_setup)(void);
32 int (*mach_get_smp_config)(unsigned int early);
33 int (*mach_find_smp_config)(unsigned int reserve);
34
35 int *mpc_record;
36 int (*mpc_apic_id)(struct mpc_config_processor *m);
37 void (*mpc_oem_bus_info)(struct mpc_config_bus *m, char *name);
38 void (*mpc_oem_pci_bus)(struct mpc_config_bus *m);
39 void (*smp_read_mpc_oem)(struct mp_config_oemtable *oemtable,
40 unsigned short oemsize);
41};
42
43extern struct x86_quirks *x86_quirks;
44
12#ifndef CONFIG_PARAVIRT 45#ifndef CONFIG_PARAVIRT
13#define paravirt_post_allocator_init() do {} while (0) 46#define paravirt_post_allocator_init() do {} while (0)
14#endif 47#endif
@@ -43,26 +76,24 @@ char *machine_specific_memory_setup(void);
43 */ 76 */
44extern struct boot_params boot_params; 77extern struct boot_params boot_params;
45 78
46#ifdef __i386__
47/* 79/*
48 * Do NOT EVER look at the BIOS memory size location. 80 * Do NOT EVER look at the BIOS memory size location.
49 * It does not work on many machines. 81 * It does not work on many machines.
50 */ 82 */
51#define LOWMEMSIZE() (0x9f000) 83#define LOWMEMSIZE() (0x9f000)
52 84
53struct e820entry; 85#ifdef __i386__
54
55char * __init machine_specific_memory_setup(void);
56char *memory_setup(void);
57 86
58int __init copy_e820_map(struct e820entry *biosmap, int nr_map); 87void __init i386_start_kernel(void);
59int __init sanitize_e820_map(struct e820entry *biosmap, char *pnr_map); 88extern void probe_roms(void);
60void __init add_memory_region(unsigned long long start,
61 unsigned long long size, int type);
62 89
90extern unsigned long init_pg_tables_start;
63extern unsigned long init_pg_tables_end; 91extern unsigned long init_pg_tables_end;
64 92
65 93#else
94void __init x86_64_init_pda(void);
95void __init x86_64_start_kernel(char *real_mode);
96void __init x86_64_start_reservations(char *real_mode_data);
66 97
67#endif /* __i386__ */ 98#endif /* __i386__ */
68#endif /* _SETUP */ 99#endif /* _SETUP */