]>
Commit | Line | Data |
---|---|---|
57844a8f TG |
1 | /* |
2 | * Copyright (C) 2009 Thomas Gleixner <tglx@linutronix.de> | |
3 | * | |
4 | * For licencing details see kernel-base/COPYING | |
5 | */ | |
6 | #include <linux/init.h> | |
9325a28c | 7 | #include <linux/ioport.h> |
72550b3a | 8 | #include <linux/module.h> |
294ee6f8 | 9 | #include <linux/pci.h> |
57844a8f | 10 | |
816c25e7 | 11 | #include <asm/bios_ebda.h> |
6f30c1ac | 12 | #include <asm/paravirt.h> |
b72d0db9 | 13 | #include <asm/pci_x86.h> |
294ee6f8 | 14 | #include <asm/pci.h> |
fd6c6661 | 15 | #include <asm/mpspec.h> |
8fee697d | 16 | #include <asm/setup.h> |
736decac | 17 | #include <asm/apic.h> |
6b18ae3e | 18 | #include <asm/e820.h> |
845b3944 | 19 | #include <asm/time.h> |
d9112f43 | 20 | #include <asm/irq.h> |
fd12a0d6 | 21 | #include <asm/pat.h> |
2d826404 | 22 | #include <asm/tsc.h> |
338bac52 | 23 | #include <asm/iommu.h> |
57844a8f TG |
24 | |
25 | void __cpuinit x86_init_noop(void) { } | |
f4848472 | 26 | void __init x86_init_uint_noop(unsigned int unused) { } |
030cb6c0 | 27 | void __init x86_init_pgd_noop(pgd_t *unused) { } |
d07c1be0 | 28 | int __init iommu_init_noop(void) { return 0; } |
62ad33f6 | 29 | void iommu_shutdown_noop(void) { } |
57844a8f TG |
30 | |
31 | /* | |
32 | * The platform setup functions are preset with the default functions | |
33 | * for standard PC hardware. | |
34 | */ | |
54e2603f | 35 | struct x86_init_ops x86_init __initdata = { |
f7cf5a5b TG |
36 | |
37 | .resources = { | |
38 | .probe_roms = x86_init_noop, | |
8fee697d | 39 | .reserve_resources = reserve_standard_io_resources, |
6b18ae3e | 40 | .memory_setup = default_machine_specific_memory_setup, |
f7cf5a5b | 41 | }, |
f4848472 TG |
42 | |
43 | .mpparse = { | |
44 | .mpc_record = x86_init_uint_noop, | |
de934103 | 45 | .setup_ioapic_ids = x86_init_noop, |
fd6c6661 | 46 | .mpc_apic_id = default_mpc_apic_id, |
72302142 | 47 | .smp_read_mpc_oem = default_smp_read_mpc_oem, |
90e1c696 | 48 | .mpc_oem_bus_info = default_mpc_oem_bus_info, |
b3f1b617 TG |
49 | .find_smp_config = default_find_smp_config, |
50 | .get_smp_config = default_get_smp_config, | |
f4848472 | 51 | }, |
d9112f43 TG |
52 | |
53 | .irqs = { | |
54 | .pre_vector_init = init_ISA_irqs, | |
66bcaf0b | 55 | .intr_init = native_init_IRQ, |
428cf902 | 56 | .trap_init = x86_init_noop, |
d9112f43 | 57 | }, |
42bbdb43 TG |
58 | |
59 | .oem = { | |
60 | .arch_setup = x86_init_noop, | |
6f30c1ac | 61 | .banner = default_banner, |
42bbdb43 | 62 | }, |
030cb6c0 | 63 | |
279b706b SS |
64 | .mapping = { |
65 | .pagetable_reserve = native_pagetable_reserve, | |
66 | }, | |
67 | ||
030cb6c0 TG |
68 | .paging = { |
69 | .pagetable_setup_start = native_pagetable_setup_start, | |
70 | .pagetable_setup_done = native_pagetable_setup_done, | |
71 | }, | |
736decac TG |
72 | |
73 | .timers = { | |
74 | .setup_percpu_clockev = setup_boot_APIC_clock, | |
845b3944 TG |
75 | .tsc_pre_init = x86_init_noop, |
76 | .timer_init = hpet_time_init, | |
6b617e22 | 77 | .wallclock_init = x86_init_noop, |
736decac | 78 | }, |
d07c1be0 FT |
79 | |
80 | .iommu = { | |
81 | .iommu_init = iommu_init_noop, | |
82 | }, | |
b72d0db9 TG |
83 | |
84 | .pci = { | |
85 | .init = x86_default_pci_init, | |
ab3b3793 | 86 | .init_irq = x86_default_pci_init_irq, |
9325a28c | 87 | .fixup_irqs = x86_default_pci_fixup_irqs, |
b72d0db9 | 88 | }, |
736decac TG |
89 | }; |
90 | ||
54e2603f | 91 | struct x86_cpuinit_ops x86_cpuinit __cpuinitdata = { |
736decac | 92 | .setup_percpu_clockev = setup_secondary_APIC_clock, |
57844a8f | 93 | }; |
2d826404 | 94 | |
78c06176 | 95 | static void default_nmi_init(void) { }; |
c516ac58 | 96 | static int default_i8042_detect(void) { return 1; }; |
78c06176 | 97 | |
2d826404 TG |
98 | struct x86_platform_ops x86_platform = { |
99 | .calibrate_tsc = native_calibrate_tsc, | |
7bd867df FT |
100 | .get_wallclock = mach_get_cmos_time, |
101 | .set_wallclock = mach_set_rtc_mmss, | |
338bac52 | 102 | .iommu_shutdown = iommu_shutdown_noop, |
eb41c8be | 103 | .is_untracked_pat_range = is_ISA_range, |
c516ac58 FT |
104 | .nmi_init = default_nmi_init, |
105 | .i8042_detect = default_i8042_detect | |
2d826404 | 106 | }; |
72550b3a PA |
107 | |
108 | EXPORT_SYMBOL_GPL(x86_platform); | |
294ee6f8 SS |
109 | struct x86_msi_ops x86_msi = { |
110 | .setup_msi_irqs = native_setup_msi_irqs, | |
111 | .teardown_msi_irq = native_teardown_msi_irq, | |
112 | .teardown_msi_irqs = default_teardown_msi_irqs, | |
113 | }; |