diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-18 17:05:47 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-18 17:05:47 -0400 |
| commit | 78f28b7c555359c67c2a0d23f7436e915329421e (patch) | |
| tree | 7f8197f82f83c0c19fd9bc85b5d10b5a755d0656 /arch/x86/kernel/x86_init.c | |
| parent | 3240a77b515f4a15e24d8a3a2135bc87b02cf1d6 (diff) | |
| parent | 7bd867dfb4e0357e06a3211ab2bd0e714110def3 (diff) | |
Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (38 commits)
x86: Move get/set_wallclock to x86_platform_ops
x86: platform: Fix section annotations
x86: apic namespace cleanup
x86: Distangle ioapic and i8259
x86: Add Moorestown early detection
x86: Add hardware_subarch ID for Moorestown
x86: Add early platform detection
x86: Move tsc_init to late_time_init
x86: Move tsc_calibration to x86_init_ops
x86: Replace the now identical time_32/64.c by time.c
x86: time_32/64.c unify profile_pc
x86: Move calibrate_cpu to tsc.c
x86: Make timer setup and global variables the same in time_32/64.c
x86: Remove mca bus ifdef from timer interrupt
x86: Simplify timer_ack magic in time_32.c
x86: Prepare unification of time_32/64.c
x86: Remove do_timer hook
x86: Add timer_init to x86_init_ops
x86: Move percpu clockevents setup to x86_init_ops
x86: Move xen_post_allocator_init into xen_pagetable_setup_done
...
Fix up conflicts in arch/x86/include/asm/io_apic.h
Diffstat (limited to 'arch/x86/kernel/x86_init.c')
| -rw-r--r-- | arch/x86/kernel/x86_init.c | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c new file mode 100644 index 00000000000..4449a4a2c2e --- /dev/null +++ b/arch/x86/kernel/x86_init.c | |||
| @@ -0,0 +1,75 @@ | |||
| 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> | ||
| 7 | |||
| 8 | #include <asm/bios_ebda.h> | ||
| 9 | #include <asm/paravirt.h> | ||
| 10 | #include <asm/mpspec.h> | ||
| 11 | #include <asm/setup.h> | ||
| 12 | #include <asm/apic.h> | ||
| 13 | #include <asm/e820.h> | ||
| 14 | #include <asm/time.h> | ||
| 15 | #include <asm/irq.h> | ||
| 16 | #include <asm/tsc.h> | ||
| 17 | |||
| 18 | void __cpuinit x86_init_noop(void) { } | ||
| 19 | void __init x86_init_uint_noop(unsigned int unused) { } | ||
| 20 | void __init x86_init_pgd_noop(pgd_t *unused) { } | ||
| 21 | |||
| 22 | /* | ||
| 23 | * The platform setup functions are preset with the default functions | ||
| 24 | * for standard PC hardware. | ||
| 25 | */ | ||
| 26 | struct x86_init_ops x86_init __initdata = { | ||
| 27 | |||
| 28 | .resources = { | ||
| 29 | .probe_roms = x86_init_noop, | ||
| 30 | .reserve_resources = reserve_standard_io_resources, | ||
| 31 | .memory_setup = default_machine_specific_memory_setup, | ||
| 32 | }, | ||
| 33 | |||
| 34 | .mpparse = { | ||
| 35 | .mpc_record = x86_init_uint_noop, | ||
| 36 | .setup_ioapic_ids = x86_init_noop, | ||
| 37 | .mpc_apic_id = default_mpc_apic_id, | ||
| 38 | .smp_read_mpc_oem = default_smp_read_mpc_oem, | ||
| 39 | .mpc_oem_bus_info = default_mpc_oem_bus_info, | ||
| 40 | .find_smp_config = default_find_smp_config, | ||
| 41 | .get_smp_config = default_get_smp_config, | ||
| 42 | }, | ||
| 43 | |||
| 44 | .irqs = { | ||
| 45 | .pre_vector_init = init_ISA_irqs, | ||
| 46 | .intr_init = native_init_IRQ, | ||
| 47 | .trap_init = x86_init_noop, | ||
| 48 | }, | ||
| 49 | |||
| 50 | .oem = { | ||
| 51 | .arch_setup = x86_init_noop, | ||
| 52 | .banner = default_banner, | ||
| 53 | }, | ||
| 54 | |||
| 55 | .paging = { | ||
| 56 | .pagetable_setup_start = native_pagetable_setup_start, | ||
| 57 | .pagetable_setup_done = native_pagetable_setup_done, | ||
| 58 | }, | ||
| 59 | |||
| 60 | .timers = { | ||
| 61 | .setup_percpu_clockev = setup_boot_APIC_clock, | ||
| 62 | .tsc_pre_init = x86_init_noop, | ||
| 63 | .timer_init = hpet_time_init, | ||
| 64 | }, | ||
| 65 | }; | ||
| 66 | |||
| 67 | struct x86_cpuinit_ops x86_cpuinit __cpuinitdata = { | ||
| 68 | .setup_percpu_clockev = setup_secondary_APIC_clock, | ||
| 69 | }; | ||
| 70 | |||
| 71 | struct x86_platform_ops x86_platform = { | ||
| 72 | .calibrate_tsc = native_calibrate_tsc, | ||
| 73 | .get_wallclock = mach_get_cmos_time, | ||
| 74 | .set_wallclock = mach_set_rtc_mmss, | ||
| 75 | }; | ||
