aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
authorIsaku Yamahata <yamahata@valinux.co.jp>2008-10-16 22:18:09 -0400
committerTony Luck <tony.luck@intel.com>2008-10-17 13:08:56 -0400
commita0df655ccd0669bd3efc85346dc816833dd1197f (patch)
tree1262e19ca7240e0bfe949a81da9b879b1976ea6e /arch/ia64
parentdcbbecdad53bd6273891ad018f9c6bb8f2b7813c (diff)
ia64/xen: define xen machine vector for domU.
define xen machine vector for domU. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/Makefile2
-rw-r--r--arch/ia64/include/asm/machvec.h2
-rw-r--r--arch/ia64/include/asm/machvec_xen.h22
-rw-r--r--arch/ia64/kernel/acpi.c5
-rw-r--r--arch/ia64/xen/Makefile2
-rw-r--r--arch/ia64/xen/machvec.c4
6 files changed, 37 insertions, 0 deletions
diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile
index 905d25b13d5a..40242501bcdd 100644
--- a/arch/ia64/Makefile
+++ b/arch/ia64/Makefile
@@ -56,9 +56,11 @@ core-$(CONFIG_IA64_DIG) += arch/ia64/dig/
56core-$(CONFIG_IA64_GENERIC) += arch/ia64/dig/ 56core-$(CONFIG_IA64_GENERIC) += arch/ia64/dig/
57core-$(CONFIG_IA64_HP_ZX1) += arch/ia64/dig/ 57core-$(CONFIG_IA64_HP_ZX1) += arch/ia64/dig/
58core-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += arch/ia64/dig/ 58core-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += arch/ia64/dig/
59core-$(CONFIG_IA64_XEN_GUEST) += arch/ia64/dig/
59core-$(CONFIG_IA64_SGI_SN2) += arch/ia64/sn/ 60core-$(CONFIG_IA64_SGI_SN2) += arch/ia64/sn/
60core-$(CONFIG_IA64_SGI_UV) += arch/ia64/uv/ 61core-$(CONFIG_IA64_SGI_UV) += arch/ia64/uv/
61core-$(CONFIG_KVM) += arch/ia64/kvm/ 62core-$(CONFIG_KVM) += arch/ia64/kvm/
63core-$(CONFIG_XEN) += arch/ia64/xen/
62 64
63drivers-$(CONFIG_PCI) += arch/ia64/pci/ 65drivers-$(CONFIG_PCI) += arch/ia64/pci/
64drivers-$(CONFIG_IA64_HP_SIM) += arch/ia64/hp/sim/ 66drivers-$(CONFIG_IA64_HP_SIM) += arch/ia64/hp/sim/
diff --git a/arch/ia64/include/asm/machvec.h b/arch/ia64/include/asm/machvec.h
index 2b850ccafef5..de99cb2799cf 100644
--- a/arch/ia64/include/asm/machvec.h
+++ b/arch/ia64/include/asm/machvec.h
@@ -128,6 +128,8 @@ extern void machvec_tlb_migrate_finish (struct mm_struct *);
128# include <asm/machvec_sn2.h> 128# include <asm/machvec_sn2.h>
129# elif defined (CONFIG_IA64_SGI_UV) 129# elif defined (CONFIG_IA64_SGI_UV)
130# include <asm/machvec_uv.h> 130# include <asm/machvec_uv.h>
131# elif defined (CONFIG_IA64_XEN_GUEST)
132# include <asm/machvec_xen.h>
131# elif defined (CONFIG_IA64_GENERIC) 133# elif defined (CONFIG_IA64_GENERIC)
132 134
133# ifdef MACHVEC_PLATFORM_HEADER 135# ifdef MACHVEC_PLATFORM_HEADER
diff --git a/arch/ia64/include/asm/machvec_xen.h b/arch/ia64/include/asm/machvec_xen.h
new file mode 100644
index 000000000000..55f9228056cd
--- /dev/null
+++ b/arch/ia64/include/asm/machvec_xen.h
@@ -0,0 +1,22 @@
1#ifndef _ASM_IA64_MACHVEC_XEN_h
2#define _ASM_IA64_MACHVEC_XEN_h
3
4extern ia64_mv_setup_t dig_setup;
5extern ia64_mv_cpu_init_t xen_cpu_init;
6extern ia64_mv_irq_init_t xen_irq_init;
7extern ia64_mv_send_ipi_t xen_platform_send_ipi;
8
9/*
10 * This stuff has dual use!
11 *
12 * For a generic kernel, the macros are used to initialize the
13 * platform's machvec structure. When compiling a non-generic kernel,
14 * the macros are used directly.
15 */
16#define platform_name "xen"
17#define platform_setup dig_setup
18#define platform_cpu_init xen_cpu_init
19#define platform_irq_init xen_irq_init
20#define platform_send_ipi xen_platform_send_ipi
21
22#endif /* _ASM_IA64_MACHVEC_XEN_h */
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index 5d1eb7ee2bf6..00936491933e 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -52,6 +52,7 @@
52#include <asm/numa.h> 52#include <asm/numa.h>
53#include <asm/sal.h> 53#include <asm/sal.h>
54#include <asm/cyclone.h> 54#include <asm/cyclone.h>
55#include <asm/xen/hypervisor.h>
55 56
56#define BAD_MADT_ENTRY(entry, end) ( \ 57#define BAD_MADT_ENTRY(entry, end) ( \
57 (!entry) || (unsigned long)entry + sizeof(*entry) > end || \ 58 (!entry) || (unsigned long)entry + sizeof(*entry) > end || \
@@ -121,6 +122,8 @@ acpi_get_sysname(void)
121 return "uv"; 122 return "uv";
122 else 123 else
123 return "sn2"; 124 return "sn2";
125 } else if (xen_pv_domain() && !strcmp(hdr->oem_id, "XEN")) {
126 return "xen";
124 } 127 }
125 128
126 return "dig"; 129 return "dig";
@@ -137,6 +140,8 @@ acpi_get_sysname(void)
137 return "uv"; 140 return "uv";
138# elif defined (CONFIG_IA64_DIG) 141# elif defined (CONFIG_IA64_DIG)
139 return "dig"; 142 return "dig";
143# elif defined (CONFIG_IA64_XEN_GUEST)
144 return "xen";
140# else 145# else
141# error Unknown platform. Fix acpi.c. 146# error Unknown platform. Fix acpi.c.
142# endif 147# endif
diff --git a/arch/ia64/xen/Makefile b/arch/ia64/xen/Makefile
index ed31c76d2bf0..972d085567d9 100644
--- a/arch/ia64/xen/Makefile
+++ b/arch/ia64/xen/Makefile
@@ -5,6 +5,8 @@
5obj-y := hypercall.o xenivt.o xensetup.o xen_pv_ops.o irq_xen.o \ 5obj-y := hypercall.o xenivt.o xensetup.o xen_pv_ops.o irq_xen.o \
6 hypervisor.o xencomm.o xcom_hcall.o grant-table.o time.o 6 hypervisor.o xencomm.o xcom_hcall.o grant-table.o time.o
7 7
8obj-$(CONFIG_IA64_GENERIC) += machvec.o
9
8AFLAGS_xenivt.o += -D__IA64_ASM_PARAVIRTUALIZED_XEN 10AFLAGS_xenivt.o += -D__IA64_ASM_PARAVIRTUALIZED_XEN
9 11
10# xen multi compile 12# xen multi compile
diff --git a/arch/ia64/xen/machvec.c b/arch/ia64/xen/machvec.c
new file mode 100644
index 000000000000..4ad588a7c279
--- /dev/null
+++ b/arch/ia64/xen/machvec.c
@@ -0,0 +1,4 @@
1#define MACHVEC_PLATFORM_NAME xen
2#define MACHVEC_PLATFORM_HEADER <asm/machvec_xen.h>
3#include <asm/machvec_init.h>
4