WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [PATCH] pci-ioapic-x86-64.patch

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [PATCH] pci-ioapic-x86-64.patch
From: BitKeeper Bot <riel@xxxxxxxxxxx>
Date: Sat, 21 May 2005 10:12:11 +0000
Delivery-date: Sun, 22 May 2005 17:02:54 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: Xen Development List <xen-devel@xxxxxxxxxxxxxxxxxxx>
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
ChangeSet 1.1501, 2005/05/21 11:12:11+01:00, arun.sharma@xxxxxxxxx

        [PATCH] pci-ioapic-x86-64.patch
        
        Enable PCI, IOAPIC and ACPI on domain 0 for x86-64.
        
        This patch is based on apic.c,io_apic.c and mpparse.c on x86-64. It
        applies changes analogous to the i386 files for paravirtualization.
        
        The patch was tested on UP and DP with acpi=on and off. We did this
        on a 5/10 bk tree + Jun's fixes. The latest bk tree doesn't boot yet
        and needs more work.
        
        Signed-off-by: Arun Sharma <arun.sharma@xxxxxxxxx>



 arch/xen/configs/xen0_defconfig_x86_64            |   44 
 arch/xen/x86_64/Kconfig                           |   12 
 arch/xen/x86_64/kernel/Makefile                   |   11 
 arch/xen/x86_64/kernel/acpi/Makefile              |   16 
 arch/xen/x86_64/kernel/apic.c                     |  200 ++
 arch/xen/x86_64/kernel/entry.S                    |    3 
 arch/xen/x86_64/kernel/io_apic.c                  | 2051 ++++++++++++++++++++++
 arch/xen/x86_64/kernel/mpparse.c                  |  954 ++++++++++
 arch/xen/x86_64/kernel/setup.c                    |   30 
 arch/xen/x86_64/kernel/traps.c                    |    4 
 include/asm-xen/asm-x86_64/fixmap.h               |    6 
 include/asm-xen/asm-x86_64/mach-xen/irq_vectors.h |    5 
 12 files changed, 3294 insertions(+), 42 deletions(-)


diff -Nru a/linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_64 
b/linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_64
--- a/linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_64    
2005-05-22 13:03:37 -04:00
+++ b/linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_64    
2005-05-22 13:03:37 -04:00
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.11-xen0
-# Thu Apr 14 19:45:44 2005
+# Linux kernel version: 2.6.11.1-xen0
+# Tue May 10 11:07:02 2005
 #
 CONFIG_XEN=y
 CONFIG_ARCH_XEN=y
@@ -88,8 +88,11 @@
 # CONFIG_X86_CPUID is not set
 # CONFIG_NUMA is not set
 # CONFIG_MTRR is not set
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
 CONFIG_PCI=y
 CONFIG_PCI_DIRECT=y
+# CONFIG_PCI_MMCONFIG is not set
 CONFIG_EARLY_PRINTK=y
 CONFIG_GENERIC_HARDIRQS=y
 CONFIG_GENERIC_IRQ_PROBE=y
@@ -118,11 +121,6 @@
 # CONFIG_PM is not set
 
 #
-# ACPI (Advanced Configuration and Power Interface) Support
-#
-# CONFIG_ACPI is not set
-
-#
 # CPU Frequency scaling
 #
 # CONFIG_CPU_FREQ is not set
@@ -130,7 +128,6 @@
 #
 # Bus options (PCI etc.)
 #
-# CONFIG_PCI_MMCONFIG is not set
 # CONFIG_UNORDERED_IO is not set
 
 #
@@ -168,6 +165,7 @@
 #
 # Plug and Play support
 #
+# CONFIG_PNP is not set
 
 #
 # Block devices
@@ -725,6 +723,7 @@
 CONFIG_DRM_SIS=m
 # CONFIG_MWAVE is not set
 # CONFIG_RAW_DRIVER is not set
+# CONFIG_HPET is not set
 # CONFIG_HANGCHECK_TIMER is not set
 
 #
@@ -794,6 +793,35 @@
 # InfiniBand support
 #
 # CONFIG_INFINIBAND is not set
+
+#
+# Power management options
+#
+
+#
+# ACPI (Advanced Configuration and Power Interface) Support
+#
+CONFIG_ACPI=y
+CONFIG_ACPI_BOOT=y
+CONFIG_ACPI_INTERPRETER=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_THERMAL=m
+CONFIG_ACPI_ASUS=m
+CONFIG_ACPI_IBM=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_BUS=y
+CONFIG_ACPI_EC=y
+CONFIG_ACPI_POWER=y
+CONFIG_ACPI_PCI=y
+CONFIG_ACPI_SYSTEM=y
+# CONFIG_ACPI_CONTAINER is not set
 
 #
 # File systems
diff -Nru a/linux-2.6.11-xen-sparse/arch/xen/x86_64/Kconfig 
b/linux-2.6.11-xen-sparse/arch/xen/x86_64/Kconfig
--- a/linux-2.6.11-xen-sparse/arch/xen/x86_64/Kconfig   2005-05-22 13:03:37 
-04:00
+++ b/linux-2.6.11-xen-sparse/arch/xen/x86_64/Kconfig   2005-05-22 13:03:37 
-04:00
@@ -188,13 +188,13 @@
 config EISA
        bool
 
-#config X86_IO_APIC
-#      bool
-#      default n
+config X86_LOCAL_APIC
+       bool
+       default y
 
-#config X86_LOCAL_APIC
-#      bool
-#      default n
+config X86_IO_APIC
+       bool
+       default y
 
 config MTRR
        bool "MTRR (Memory Type Range Register) support"
diff -Nru a/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/Makefile 
b/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/Makefile
--- a/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/Makefile   2005-05-22 
13:03:37 -04:00
+++ b/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/Makefile   2005-05-22 
13:03:37 -04:00
@@ -12,7 +12,7 @@
                x8664_ksyms.o vsyscall.o \
                setup64.o e820.o irq.o early_printk.o
 c-obj-y        := semaphore.o i387.o sys_x86_64.o \
-               ptrace.o quirks.o syscall.o
+               ptrace.o quirks.o syscall.o bootflag.o
 
 i386-obj-y                     := time.o
 obj-y                          += ../../i386/kernel/timers/
@@ -21,14 +21,15 @@
 
 #obj-$(CONFIG_X86_MCE)         += mce.o
 #obj-$(CONFIG_MTRR)            += ../../i386/kernel/cpu/mtrr/
-#obj-$(CONFIG_ACPI_BOOT)               += acpi/
+obj-$(CONFIG_ACPI_BOOT)                += acpi/
 obj-$(CONFIG_X86_MSR)          += msr.o
 obj-$(CONFIG_MICROCODE)                += microcode.o
 obj-$(CONFIG_X86_CPUID)                += cpuid.o
 #obj-$(CONFIG_SMP)             += smp.o smpboot.o trampoline.o
-#obj-$(CONFIG_X86_LOCAL_APIC)  += apic.o  nmi.o
-#obj-$(CONFIG_X86_IO_APIC)     += io_apic.o mpparse.o \
-#              genapic.o genapic_cluster.o genapic_flat.o
+obj-$(CONFIG_X86_LOCAL_APIC)   += apic.o
+c-obj-$(CONFIG_X86_LOCAL_APIC) += nmi.o
+obj-$(CONFIG_X86_IO_APIC)      += io_apic.o mpparse.o
+c-obj-$(CONFIG_X86_IO_APIC)    += genapic.o genapic_cluster.o genapic_flat.o
 #obj-$(CONFIG_PM)              += suspend.o
 #obj-$(CONFIG_SOFTWARE_SUSPEND)        += suspend_asm.o
 #obj-$(CONFIG_CPU_FREQ)                += cpufreq/
diff -Nru a/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/acpi/Makefile 
b/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/acpi/Makefile
--- /dev/null   Wed Dec 31 16:00:00 196900
+++ b/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/acpi/Makefile      
2005-05-22 13:03:37 -04:00
@@ -0,0 +1,16 @@
+i386-obj-$(CONFIG_ACPI_BOOT)           := boot.o
+c-obj-$(CONFIG_X86_IO_APIC)            := earlyquirk.o
+c-obj-$(CONFIG_ACPI_SLEEP)             += sleep.o wakeup.o
+
+c-link                                  :=
+
+$(patsubst %.o,$(obj)/%.c,$(c-obj-y) $(c-link)):
+       @ln -fsn $(srctree)/arch/i386/kernel/acpi/$(notdir $@) $@
+
+$(patsubst %.o,$(obj)/%.c,$(i386-obj-y)):
+       ln -fsn $(srctree)/arch/xen/i386/kernel/acpi/$(notdir $@) $@
+
+obj-y  += $(c-obj-y) $(s-obj-y) $(i386-obj-y)
+
+clean-files += $(patsubst %.o,%.c,$(c-obj-y) $(c-obj-) $(c-link))
+clean-files += $(patsubst %.o,%.S,$(s-obj-y) $(s-obj-) $(s-link))
diff -Nru a/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/apic.c 
b/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/apic.c
--- /dev/null   Wed Dec 31 16:00:00 196900
+++ b/linux-2.6.11-xen-sparse/arch/xen/x86_64/kernel/apic.c     2005-05-22 
13:03:37 -04:00
@@ -0,0 +1,200 @@
+/*
+ *     Local APIC handling, local APIC timers
+ *
+ *     (c) 1999, 2000 Ingo Molnar <mingo@xxxxxxxxxx>
+ *
+ *     Fixes
+ *     Maciej W. Rozycki       :       Bits for genuine 82489DX APICs;
+ *                                     thanks to Eric Gilmore
+ *                                     and Rolf G. Tews
+ *                                     for testing these extensively.
+ *     Maciej W. Rozycki       :       Various updates and fixes.
+ *     Mikael Pettersson       :       Power Management for UP-APIC.
+ *     Pavel Machek and
+ *     Mikael Pettersson       :       PM converted to driver model.
+ */
+
+#include <linux/config.h>
+#include <linux/init.h>
+
+#include <linux/mm.h>
+#include <linux/irq.h>
+#include <linux/delay.h>
+#include <linux/bootmem.h>
+#include <linux/smp_lock.h>
+#include <linux/interrupt.h>
+#include <linux/mc146818rtc.h>
+#include <linux/kernel_stat.h>
+#include <linux/sysdev.h>
+
+#include <asm/atomic.h>
+#include <asm/smp.h>
+#include <asm/mtrr.h>
+#include <asm/mpspec.h>
+#include <asm/desc.h>
+#include <asm/arch_hooks.h>
+#include <asm/hpet.h>
+
+#include "io_ports.h"
+
+/*
+ * Debug level
+ */
+int apic_verbosity;
+int disable_apic;
+
+void smp_local_timer_interrupt(struct pt_regs *regs)
+{
+       int cpu = smp_processor_id();
+
+       profile_tick(CPU_PROFILING, regs);
+#if 0
+       if (--per_cpu(prof_counter, cpu) <= 0) {
+               /*
+                * The multiplier may have changed since the last time we got
+                * to this point as a result of the user writing to
+                * /proc/profile. In this case we need to adjust the APIC
+                * timer accordingly.
+                *
+                * Interrupts are already masked off at this point.
+                */
+               per_cpu(prof_counter, cpu) = per_cpu(prof_multiplier, cpu);
+               if (per_cpu(prof_counter, cpu) != 
+                   per_cpu(prof_old_multiplier, cpu)) {
+                       __setup_APIC_LVTT(calibration_result/
+                                       per_cpu(prof_counter, cpu));
+                       per_cpu(prof_old_multiplier, cpu) =
+                               per_cpu(prof_counter, cpu);
+               }
+
+#ifdef CONFIG_SMP
+               update_process_times(user_mode(regs));
+#endif
+       }
+#endif

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [PATCH] pci-ioapic-x86-64.patch, BitKeeper Bot <=