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] First VT-i code drop

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] First VT-i code drop
From: BitKeeper Bot <riel@xxxxxxxxxxx>
Date: Wed, 18 May 2005 20:02:35 +0000
Delivery-date: Mon, 23 May 2005 16:03:04 +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.1389.23.1, 2005/05/18 13:02:35-07:00, 
adsharma@xxxxxxxxxxxxxxxxxxxxxx

          First VT-i code drop



 arch/ia64/Makefile                       |    7 
 arch/ia64/Rules.mk                       |    4 
 arch/ia64/acpi.c                         |  979 +++++++++----------
 arch/ia64/asm-offsets.c                  |   28 
 arch/ia64/dom_fw.c                       |   69 +
 arch/ia64/domain.c                       |  342 ++++++
 arch/ia64/entry.h                        |   97 +
 arch/ia64/mm_init.c                      |   14 
 arch/ia64/mmio.c                         |  325 ++++++
 arch/ia64/patch/linux-2.6.11/entry.S     |   38 
 arch/ia64/patch/linux-2.6.11/head.S      |   58 +
 arch/ia64/patch/linux-2.6.11/hpsim_ssc.h |    7 
 arch/ia64/patch/linux-2.6.11/interrupt.h |   19 
 arch/ia64/patch/linux-2.6.11/io.h        |    8 
 arch/ia64/patch/linux-2.6.11/irq_ia64.c  |    9 
 arch/ia64/patch/linux-2.6.11/kregs.h     |   30 
 arch/ia64/patch/linux-2.6.11/mca_asm.h   |    7 
 arch/ia64/patch/linux-2.6.11/page.h      |   17 
 arch/ia64/patch/linux-2.6.11/pal.S       |   11 
 arch/ia64/patch/linux-2.6.11/processor.h |   19 
 arch/ia64/patch/linux-2.6.11/setup.c     |   37 
 arch/ia64/patch/linux-2.6.11/system.h    |   21 
 arch/ia64/patch/linux-2.6.11/unaligned.c |   47 
 arch/ia64/process.c                      |   13 
 arch/ia64/tools/README.RunVT             |   59 +
 arch/ia64/vcpu.c                         |   13 
 arch/ia64/vlsapic.c                      |  504 +++++++++
 arch/ia64/vmmu.c                         |  801 +++++++++++++++
 arch/ia64/vmx_entry.S                    |  611 ++++++++++++
 arch/ia64/vmx_init.c                     |  275 +++++
 arch/ia64/vmx_interrupt.c                |  388 +++++++
 arch/ia64/vmx_ivt.S                      |  978 +++++++++++++++++++
 arch/ia64/vmx_minstate.h                 |  329 ++++++
 arch/ia64/vmx_phy_mode.c                 |  393 +++++++
 arch/ia64/vmx_process.c                  |  345 ++++++
 arch/ia64/vmx_utility.c                  |  659 +++++++++++++
 arch/ia64/vmx_vcpu.c                     |  436 ++++++++
 arch/ia64/vmx_virt.c                     | 1501 +++++++++++++++++++++++++++++
 arch/ia64/vmx_vsa.S                      |   84 +
 arch/ia64/vtlb.c                         | 1004 +++++++++++++++++++
 arch/ia64/xenmem.c                       |   32 
 arch/ia64/xenmisc.c                      |   25 
 arch/ia64/xensetup.c                     |   18 
 arch/ia64/xentime.c                      |  165 +++
 common/elf.c                             |    3 
 include/asm-ia64/config.h                |   11 
 include/asm-ia64/domain.h                |   29 
 include/asm-ia64/gcc_intrin.h            |  657 ++++++++++++
 include/asm-ia64/ia64_int.h              |    4 
 include/asm-ia64/ia64regs.h              |  129 ++
 include/asm-ia64/mm.h                    |   18 
 include/asm-ia64/mmu_context.h           |    4 
 include/asm-ia64/pal.h                   | 1567 +++++++++++++++++++++++++++++++
 include/asm-ia64/privop.h                |   14 
 include/asm-ia64/ptrace.h                |  341 ++++++
 include/asm-ia64/regionreg.h             |   13 
 include/asm-ia64/regs.h                  |    1 
 include/asm-ia64/serial.h                |   14 
 include/asm-ia64/tlb.h                   |   14 
 include/asm-ia64/virt_event.h            |  114 ++
 include/asm-ia64/vmmu.h                  |  344 ++++++
 include/asm-ia64/vmx.h                   |   35 
 include/asm-ia64/vmx_mm_def.h            |  176 +++
 include/asm-ia64/vmx_pal.h               |  120 ++
 include/asm-ia64/vmx_pal_vsa.h           |   44 
 include/asm-ia64/vmx_phy_mode.h          |  126 ++
 include/asm-ia64/vmx_platform.h          |   37 
 include/asm-ia64/vmx_ptrace.h            |   97 +
 include/asm-ia64/vmx_vcpu.h              |  598 +++++++++++
 include/asm-ia64/vmx_vpd.h               |  193 +++
 include/asm-ia64/vtm.h                   |   68 +
 include/xen/sched.h                      |    2 
 72 files changed, 14999 insertions(+), 600 deletions(-)


diff -Nru a/xen/arch/ia64/Makefile b/xen/arch/ia64/Makefile
--- a/xen/arch/ia64/Makefile    2005-05-23 12:03:44 -04:00
+++ b/xen/arch/ia64/Makefile    2005-05-23 12:03:45 -04:00
@@ -10,6 +10,12 @@
        extable.o linuxextable.o xenirq.o xentime.o \
        regionreg.o entry.o unaligned.o privop.o vcpu.o \
        irq_ia64.o irq_lsapic.o vhpt.o xenasm.o dom_fw.o
+
+ifeq ($(CONFIG_VTI),y)
+OBJS += vmx_init.o vmx_virt.o vmx_vcpu.o vmx_process.o vmx_vsa.o vmx_ivt.o \
+       vmx_phy_mode.o vmx_utility.o vmx_interrupt.o vmx_entry.o vmmu.o \
+       vtlb.o mmio.o vlsapic.o
+endif
 # perfmon.o
 # unwind.o needed for kernel unwinding (rare)
 
@@ -38,6 +44,7 @@
 clean:
        rm -f *.o *~ core  xen.lds.s 
$(BASEDIR)/include/asm-ia64/.offsets.h.stamp
        rm -f lib/*.o
+       $(MAKE) -C lib clean
 
 # setup.o contains bits of compile.h so it must be blown away
 delete-unfresh-files:
diff -Nru a/xen/arch/ia64/Rules.mk b/xen/arch/ia64/Rules.mk
--- a/xen/arch/ia64/Rules.mk    2005-05-23 12:03:45 -04:00
+++ b/xen/arch/ia64/Rules.mk    2005-05-23 12:03:45 -04:00
@@ -1,6 +1,7 @@
 ########################################
 # ia64-specific definitions
 
+CONFIG_VTI     ?= y
 ifneq ($(COMPILE_ARCH),$(TARGET_ARCH))
 CROSS_COMPILE ?= /usr/local/sp_env/v2.2.5/i686/bin/ia64-unknown-linux-
 endif
@@ -17,4 +18,7 @@
 CFLAGS  += -DIA64 -DXEN -DLINUX_2_6
 CFLAGS += -ffixed-r13 -mfixed-range=f12-f15,f32-f127
 CFLAGS += -w -g
+ifeq ($(CONFIG_VTI),y)
+CFLAGS  += -DCONFIG_VTI
+endif
 LDFLAGS := -g
diff -Nru a/xen/arch/ia64/acpi.c b/xen/arch/ia64/acpi.c
--- a/xen/arch/ia64/acpi.c      2005-05-23 12:03:45 -04:00
+++ b/xen/arch/ia64/acpi.c      2005-05-23 12:03:45 -04:00
@@ -1,9 +1,16 @@
 /*
  *  acpi.c - Architecture-Specific Low-Level ACPI Support
  *
- *  Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@xxxxxxxxx>
- *  Copyright (C) 2001 Jun Nakajima <jun.nakajima@xxxxxxxxx>
- *  Copyright (C) 2001 Patrick Mochel <mochel@xxxxxxxx>
+ *  Copyright (C) 1999 VA Linux Systems
+ *  Copyright (C) 1999,2000 Walt Drummond <drummond@xxxxxxxxxxx>
+ *  Copyright (C) 2000, 2002-2003 Hewlett-Packard Co.
+ *     David Mosberger-Tang <davidm@xxxxxxxxxx>
+ *  Copyright (C) 2000 Intel Corp.
+ *  Copyright (C) 2000,2001 J.I. Lee <jung-ik.lee@xxxxxxxxx>
+ *  Copyright (C) 2001 Paul Diefenbaugh <paul.s.diefenbaugh@xxxxxxxxx>
+ *  Copyright (C) 2001 Jenna Hall <jenna.s.hall@xxxxxxxxx>
+ *  Copyright (C) 2001 Takayoshi Kochi <t-kochi@xxxxxxxxxxxxx>
+ *  Copyright (C) 2002 Erich Focht <efocht@xxxxxxxxxx>
  *
  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  *
@@ -19,667 +26,651 @@
  *
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  *
  * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  */
 
-#include <xen/config.h>
-#include <xen/kernel.h>
-#include <xen/init.h>
-#include <xen/types.h>
-/*#include <xen/stddef.h>*/
-#include <xen/slab.h>
-#include <xen/pci.h>
-/*#include <xen/bootmem.h>*/
-#include <xen/irq.h>
-#include <xen/acpi.h>
-//#include <asm/mpspec.h>
+#include <linux/config.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/smp.h>
+#include <linux/string.h>
+#include <linux/types.h>
+#include <linux/irq.h>
+#include <linux/acpi.h>
+#include <linux/efi.h>
+#include <linux/mmzone.h>
 #include <asm/io.h>
-//#include <asm/apic.h>
-//#include <asm/apicdef.h>
+//#include <asm/iosapic.h>
+#include <asm/machvec.h>
 #include <asm/page.h>
-/*#include <asm/pgtable.h>*/
-#include <asm/pgalloc.h>
-//#include <asm/io_apic.h>
-#include <asm/acpi.h>
-/*#include <asm/save_state.h>*/
-//#include <asm/smpboot.h>
-
+#include <asm/system.h>
+#include <asm/numa.h>
+#include <asm/sal.h>
+//#include <asm/cyclone.h>
+
+#define BAD_MADT_ENTRY(entry, end) (                                        \
+               (!entry) || (unsigned long)entry + sizeof(*entry) > end ||  \
+               ((acpi_table_entry_header *)entry)->length != sizeof(*entry))
 
 #define PREFIX                 "ACPI: "
 
-int acpi_lapic = 0;
-int acpi_ioapic = 0;
-
-/* --------------------------------------------------------------------------
-                              Boot-time Configuration
-   -------------------------------------------------------------------------- 
*/
+void (*pm_idle) (void);
+EXPORT_SYMBOL(pm_idle);
+void (*pm_power_off) (void);
+
+unsigned char acpi_kbd_controller_present = 1;
+unsigned char acpi_legacy_devices;
+
+const char *
+acpi_get_sysname (void)
+{
+#ifdef CONFIG_IA64_GENERIC
+       unsigned long rsdp_phys;
+       struct acpi20_table_rsdp *rsdp;
+       struct acpi_table_xsdt *xsdt;
+       struct acpi_table_header *hdr;
+
+       rsdp_phys = acpi_find_rsdp();
+       if (!rsdp_phys) {
+               printk(KERN_ERR "ACPI 2.0 RSDP not found, default to 
\"dig\"\n");
+               return "dig";
+       }
+
+       rsdp = (struct acpi20_table_rsdp *) __va(rsdp_phys);
+       if (strncmp(rsdp->signature, RSDP_SIG, sizeof(RSDP_SIG) - 1)) {
+               printk(KERN_ERR "ACPI 2.0 RSDP signature incorrect, default to 
\"dig\"\n");
+               return "dig";
+       }
+
+       xsdt = (struct acpi_table_xsdt *) __va(rsdp->xsdt_address);
+       hdr = &xsdt->header;
+       if (strncmp(hdr->signature, XSDT_SIG, sizeof(XSDT_SIG) - 1)) {
+               printk(KERN_ERR "ACPI 2.0 XSDT signature incorrect, default to 
\"dig\"\n");
+               return "dig";
+       }
+
+       if (!strcmp(hdr->oem_id, "HP")) {
+               return "hpzx1";
+       }
+       else if (!strcmp(hdr->oem_id, "SGI")) {
+               return "sn2";
+       }
+
+       return "dig";
+#else
+# if defined (CONFIG_IA64_HP_SIM)
+       return "hpsim";
+# elif defined (CONFIG_IA64_HP_ZX1)
+       return "hpzx1";
+# elif defined (CONFIG_IA64_SGI_SN2)
+       return "sn2";
+# elif defined (CONFIG_IA64_DIG)
+       return "dig";
+# else
+#      error Unknown platform.  Fix acpi.c.
+# endif
+#endif
+}
 
 #ifdef CONFIG_ACPI_BOOT
-//int acpi_noirq __initdata = 0;  /* skip ACPI IRQ initialization */
-int acpi_ht __initdata = 1;     /* enable HT */
 
-enum acpi_irq_model_id         acpi_irq_model;
+#define ACPI_MAX_PLATFORM_INTERRUPTS   256
+
+#if 0
+/* Array to record platform interrupt vectors for generic interrupt routing. */
+int platform_intr_list[ACPI_MAX_PLATFORM_INTERRUPTS] = {
+       [0 ... ACPI_MAX_PLATFORM_INTERRUPTS - 1] = -1
+};
 
+enum acpi_irq_model_id acpi_irq_model = ACPI_IRQ_MODEL_IOSAPIC;
 
 /*
- * Temporarily use the virtual area starting from FIX_IO_APIC_BASE_END,
- * to map the target physical address. The problem is that set_fixmap()
- * provides a single page, and it is possible that the page is not
- * sufficient.
- * By using this area, we can map up to MAX_IO_APICS pages temporarily,
- * i.e. until the next __va_range() call.
- *
- * Important Safety Note:  The fixed I/O APIC page numbers are *subtracted*
- * from the fixed base.  That's why we start at FIX_IO_APIC_BASE_END and
- * count idx down while incrementing the phys address.
+ * Interrupt routing API for device drivers.  Provides interrupt vector for
+ * a generic platform event.  Currently only CPEI is implemented.
  */
-char *__acpi_map_table(unsigned long phys, unsigned long size)
+int
+acpi_request_vector (u32 int_type)
 {
-       unsigned long base, offset, mapped_size;
-       int idx;
-
-       if (phys + size < 8*1024*1024) 
-               return __va(phys); 
+       int vector = -1;
 
-       offset = phys & (PAGE_SIZE - 1);
-       mapped_size = PAGE_SIZE - offset;
-#ifndef XEN
-// where is FIX_ACPI_*? hack for now, FIXME later
-       set_fixmap(FIX_ACPI_END, phys);
-       base = fix_to_virt(FIX_ACPI_END);
-
-       /*
-        * Most cases can be covered by the below.
-        */
-       idx = FIX_ACPI_END;
-       while (mapped_size < size) {
-               if (--idx < FIX_ACPI_BEGIN)
-                       return 0;       /* cannot handle this */
-               phys += PAGE_SIZE;
-               set_fixmap(idx, phys);
-               mapped_size += PAGE_SIZE;
-       }
+       if (int_type < ACPI_MAX_PLATFORM_INTERRUPTS) {
+               /* corrected platform error interrupt */
+               vector = platform_intr_list[int_type];
+       } else
+               printk(KERN_ERR "acpi_request_vector(): invalid interrupt 
type\n");

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] First VT-i code drop, BitKeeper Bot <=