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] [xen-unstable] Add some necessary files to build IA64 VT

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Add some necessary files to build IA64 VT-d.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 22 Oct 2008 07:50:36 -0700
Delivery-date: Wed, 22 Oct 2008 07:52:02 -0700
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/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1224512119 -3600
# Node ID 6eb23f7ece781a4013fb291217ca2e61756aadcb
# Parent  d752eaa7c1db9d91b141773f177570b0a0e183c7
Add some necessary files to build IA64 VT-d.

Signed-off-by: Anthony Xu <anthony.xu@xxxxxxxxx>
Signed-off-by: Dexuan Cui <dexuan.cui@xxxxxxxxx>
---
 xen/drivers/Makefile                      |    2 
 xen/drivers/passthrough/Makefile          |    1 
 xen/drivers/passthrough/vtd/Makefile      |    1 
 xen/drivers/passthrough/vtd/ia64/Makefile |    1 
 xen/drivers/passthrough/vtd/ia64/vtd.c    |  112 ++++++++++++++++++++++++++++++
 5 files changed, 116 insertions(+), 1 deletion(-)

diff -r d752eaa7c1db -r 6eb23f7ece78 xen/drivers/Makefile
--- a/xen/drivers/Makefile      Mon Oct 20 15:14:55 2008 +0100
+++ b/xen/drivers/Makefile      Mon Oct 20 15:15:19 2008 +0100
@@ -1,6 +1,6 @@ subdir-y += char
 subdir-y += char
 subdir-y += cpufreq
 subdir-y += pci
-subdir-$(x86) += passthrough
+subdir-y += passthrough
 subdir-$(HAS_ACPI) += acpi
 subdir-$(HAS_VGA) += video
diff -r d752eaa7c1db -r 6eb23f7ece78 xen/drivers/passthrough/Makefile
--- a/xen/drivers/passthrough/Makefile  Mon Oct 20 15:14:55 2008 +0100
+++ b/xen/drivers/passthrough/Makefile  Mon Oct 20 15:15:19 2008 +0100
@@ -1,4 +1,5 @@ subdir-$(x86) += vtd
 subdir-$(x86) += vtd
+subdir-$(ia64) += vtd
 subdir-$(x86) += amd
 
 obj-y += iommu.o
diff -r d752eaa7c1db -r 6eb23f7ece78 xen/drivers/passthrough/vtd/Makefile
--- a/xen/drivers/passthrough/vtd/Makefile      Mon Oct 20 15:14:55 2008 +0100
+++ b/xen/drivers/passthrough/vtd/Makefile      Mon Oct 20 15:15:19 2008 +0100
@@ -1,4 +1,5 @@ subdir-$(x86) += x86
 subdir-$(x86) += x86
+subdir-$(ia64) += ia64
 
 obj-y += iommu.o
 obj-y += dmar.o
diff -r d752eaa7c1db -r 6eb23f7ece78 xen/drivers/passthrough/vtd/ia64/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/drivers/passthrough/vtd/ia64/Makefile Mon Oct 20 15:15:19 2008 +0100
@@ -0,0 +1,1 @@
+obj-y += vtd.o
diff -r d752eaa7c1db -r 6eb23f7ece78 xen/drivers/passthrough/vtd/ia64/vtd.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/xen/drivers/passthrough/vtd/ia64/vtd.c    Mon Oct 20 15:15:19 2008 +0100
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2008, Intel Corporation.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * 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.
+ *
+ * Copyright (C) Allen Kay <allen.m.kay@xxxxxxxxx>
+ * Copyright (C) Weidong Han <weidong.han@xxxxxxxxx>
+ */
+
+#include <xen/sched.h>
+#include <xen/domain_page.h>
+#include <xen/iommu.h>
+#include <asm/xensystem.h>
+#include <asm/sal.h>
+#include "../iommu.h"
+#include "../dmar.h"
+#include "../vtd.h"
+
+
+int vector_irq[NR_VECTORS] __read_mostly = { [0 ... NR_VECTORS - 1] = -1};
+/* irq_vectors is indexed by the sum of all RTEs in all I/O APICs. */
+u8 irq_vector[NR_IRQ_VECTORS] __read_mostly;
+
+void *map_vtd_domain_page(u64 maddr)
+{
+    return (void *)((u64)map_domain_page(maddr >> PAGE_SHIFT) |
+            (maddr & (PAGE_SIZE - PAGE_SIZE_4K)));
+}
+
+void unmap_vtd_domain_page(void *va)
+{
+    unmap_domain_page(va);
+}
+
+/* Allocate page table, return its machine address */
+u64 alloc_pgtable_maddr(void)
+{
+    struct page_info *pg;
+    u64 *vaddr;
+
+    pg = alloc_domheap_page(NULL, 0);
+    vaddr = map_domain_page(page_to_mfn(pg));
+    if ( !vaddr )
+        return 0;
+    memset(vaddr, 0, PAGE_SIZE);
+
+    iommu_flush_cache_page(vaddr);
+    unmap_domain_page(vaddr);
+
+    return page_to_maddr(pg);
+}
+
+void free_pgtable_maddr(u64 maddr)
+{
+    if ( maddr != 0 )
+        free_domheap_page(maddr_to_page(maddr));
+}
+
+unsigned int get_cache_line_size(void)
+{
+    return L1_CACHE_BYTES;
+}
+
+void cacheline_flush(char * addr)
+{
+    ia64_fc(addr);
+    ia64_sync_i();
+    ia64_srlz_i();
+}
+
+void flush_all_cache()
+{
+    ia64_sal_cache_flush(3);
+}
+
+void * map_to_nocache_virt(int nr_iommus, u64 maddr)
+{
+  return (void *) ( maddr + __IA64_UNCACHED_OFFSET);
+}
+
+struct hvm_irq_dpci *domain_get_irq_dpci(struct domain *domain)
+{
+    if ( !domain )
+        return NULL;
+
+    return domain->arch.hvm_domain.irq.dpci;
+}
+
+int domain_set_irq_dpci(struct domain *domain, struct hvm_irq_dpci *dpci)
+{
+    if ( !domain || !dpci )
+        return 0;
+
+    domain->arch.hvm_domain.irq.dpci = dpci;
+    return 1;
+}
+
+void hvm_dpci_isairq_eoi(struct domain *d, unsigned int isairq)
+{
+    /* dummy */
+}

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Add some necessary files to build IA64 VT-d., Xen patchbot-unstable <=