From 2cf171afc3bcc903bc8334d579cd1c60a7a32f26 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Tue, 20 Mar 2012 18:53:10 -0400 Subject: [PATCH] --- yaml --- r: 305011 b: refs/heads/master c: 31b3c9d723407b395564d1fff3624cc0083ae520 h: refs/heads/master i: 305009: c5c063bce17ffff473219f7608590afde880f656 305007: b2eaf47669c7d912e0dca5771dcf7d2e830bd075 v: v3 --- [refs] | 2 +- trunk/arch/x86/xen/Makefile | 2 +- trunk/arch/x86/xen/apic.c | 17 +++++++++++++++++ trunk/arch/x86/xen/enlighten.c | 2 ++ trunk/arch/x86/xen/xen-ops.h | 4 ++++ 5 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 trunk/arch/x86/xen/apic.c diff --git a/[refs] b/[refs] index 8c5b161eb515..d596427dd9b2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4a8e2a3115e7aa4bd2deb4c6483d47c743e0fbb3 +refs/heads/master: 31b3c9d723407b395564d1fff3624cc0083ae520 diff --git a/trunk/arch/x86/xen/Makefile b/trunk/arch/x86/xen/Makefile index add2c2d729ce..96ab2c09cb68 100644 --- a/trunk/arch/x86/xen/Makefile +++ b/trunk/arch/x86/xen/Makefile @@ -20,5 +20,5 @@ obj-$(CONFIG_EVENT_TRACING) += trace.o obj-$(CONFIG_SMP) += smp.o obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= spinlock.o obj-$(CONFIG_XEN_DEBUG_FS) += debugfs.o -obj-$(CONFIG_XEN_DOM0) += vga.o +obj-$(CONFIG_XEN_DOM0) += apic.o vga.o obj-$(CONFIG_SWIOTLB_XEN) += pci-swiotlb-xen.o diff --git a/trunk/arch/x86/xen/apic.c b/trunk/arch/x86/xen/apic.c new file mode 100644 index 000000000000..73ade38caa32 --- /dev/null +++ b/trunk/arch/x86/xen/apic.c @@ -0,0 +1,17 @@ +#include +#include + +unsigned int xen_io_apic_read(unsigned apic, unsigned reg) +{ + if (reg == 0x1) + return 0x00170020; + else if (reg == 0x0) + return apic << 24; + + return 0xfd; +} + +void __init xen_init_apic(void) +{ + x86_io_apic_ops.read = xen_io_apic_read; +} diff --git a/trunk/arch/x86/xen/enlighten.c b/trunk/arch/x86/xen/enlighten.c index a8f8844b8d32..c2ea9e9f420d 100644 --- a/trunk/arch/x86/xen/enlighten.c +++ b/trunk/arch/x86/xen/enlighten.c @@ -1362,6 +1362,8 @@ asmlinkage void __init xen_start_kernel(void) xen_start_info->console.domU.mfn = 0; xen_start_info->console.domU.evtchn = 0; + xen_init_apic(); + /* Make sure ACS will be enabled */ pci_request_acs(); } diff --git a/trunk/arch/x86/xen/xen-ops.h b/trunk/arch/x86/xen/xen-ops.h index b095739ccd4c..45c0c0667bd9 100644 --- a/trunk/arch/x86/xen/xen-ops.h +++ b/trunk/arch/x86/xen/xen-ops.h @@ -92,11 +92,15 @@ struct dom0_vga_console_info; #ifdef CONFIG_XEN_DOM0 void __init xen_init_vga(const struct dom0_vga_console_info *, size_t size); +void __init xen_init_apic(void); #else static inline void __init xen_init_vga(const struct dom0_vga_console_info *info, size_t size) { } +static inline void __init xen_init_apic(void) +{ +} #endif /* Declare an asm function, along with symbols needed to make it