[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-ia64-devel] [patch 5/6] SN2+Machvec support - extra changes



More changes to support machine vectors.

Signed-off-by: Jes Sorensen <jes@xxxxxxx>

---
 arch/ia64/xen/irq.c                            |    7 +++++
 include/asm-ia64/config.h                      |   23 +++++++++-------
 include/asm-ia64/linux-xen/asm/machvec_dig.h   |   33 ++++++++++++-----------
 include/asm-ia64/linux-xen/asm/machvec_hpzx1.h |   35 +++++++++++++------------
 4 files changed, 56 insertions(+), 42 deletions(-)

Index: xen/arch/ia64/xen/irq.c
===================================================================
--- xen.orig/arch/ia64/xen/irq.c
+++ xen/arch/ia64/xen/irq.c
@@ -48,6 +48,13 @@
 #include <xen/event.h>
 #define apicid_to_phys_cpu_present(x)  1
 
+#ifdef CONFIG_IA64_GENERIC
+unsigned int __ia64_local_vector_to_irq (ia64_vector vec)
+{
+       return (unsigned int) vec;
+}
+#endif
+
 /*
  * Linux has a controller-independent x86 interrupt architecture.
  * every controller has a 'controller-template', that is used
Index: xen/include/asm-ia64/config.h
===================================================================
--- xen.orig/include/asm-ia64/config.h
+++ xen/include/asm-ia64/config.h
@@ -8,8 +8,9 @@
 // manufactured from component pieces
 
 // defined in linux/arch/ia64/defconfig
-//#define      CONFIG_IA64_GENERIC
-#define        CONFIG_IA64_HP_SIM
+#define        CONFIG_IA64_GENERIC
+#define CONFIG_HZ      32
+
 #define        CONFIG_IA64_L1_CACHE_SHIFT 7
 // needed by include/asm-ia64/page.h
 #define        CONFIG_IA64_PAGE_SIZE_16KB      // 4KB doesn't work?!?
@@ -144,14 +145,6 @@ extern int smp_num_siblings;
 // avoid redefining task_struct in asm/current.h
 #define task_struct vcpu
 
-// linux/include/asm-ia64/machvec.h (linux/arch/ia64/lib/io.c)
-#define platform_inb   __ia64_inb
-#define platform_inw   __ia64_inw
-#define platform_inl   __ia64_inl
-#define platform_outb  __ia64_outb
-#define platform_outw  __ia64_outw
-#define platform_outl  __ia64_outl
-
 #include <xen/cache.h>
 #ifndef CONFIG_SMP
 #define __cacheline_aligned_in_smp
@@ -203,6 +196,16 @@ void sort_main_extable(void);
 // Deprivated linux inf and put here for short time compatibility
 #define kmalloc(s, t) xmalloc_bytes((s))
 #define kfree(s) xfree((s))
+#define kzalloc(size, flags)                           \
+({                                                     \
+       unsigned char *mem;                             \
+       mem = (unsigned char *)xmalloc_bytes(size);     \
+       if (mem)                                        \
+               memset(mem, 0, size);                   \
+       (void *)mem;                                    \
+})
+#define kcalloc(n, size, flags)                kzalloc(n * size, flags)
+#define alloc_bootmem_node(pg, size)   xmalloc_bytes(size)
 
 // see common/keyhandler.c
 #define        nop()   asm volatile ("nop 0")
Index: xen/include/asm-ia64/linux-xen/asm/machvec_dig.h
===================================================================
--- xen.orig/include/asm-ia64/linux-xen/asm/machvec_dig.h
+++ xen/include/asm-ia64/linux-xen/asm/machvec_dig.h
@@ -15,25 +15,26 @@ extern ia64_mv_setup_t dig_setup;
 /*
  * All the World is a PC .... yay! yay! yay!
  */
-#define platform_setup                 machvec_noop
-#define platform_dma_init              machvec_noop
-#define platform_dma_alloc_coherent    machvec_noop
-#define platform_dma_free_coherent     machvec_noop
-#define platform_dma_map_single                machvec_noop
-#define platform_dma_unmap_single      machvec_noop
-#define platform_dma_map_sg            machvec_noop
-#define platform_dma_unmap_sg          machvec_noop
+extern ia64_mv_setup_t hpsim_setup;
+#define platform_setup                         hpsim_setup
+
+#define platform_dma_init                      machvec_noop
+#define platform_dma_alloc_coherent            machvec_noop
+#define platform_dma_free_coherent             machvec_noop
+#define platform_dma_map_single                        machvec_noop
+#define platform_dma_unmap_single              machvec_noop
+#define platform_dma_map_sg                    machvec_noop
+#define platform_dma_unmap_sg                  machvec_noop
 #define platform_dma_sync_single_for_cpu       machvec_noop
-#define platform_dma_sync_sg_for_cpu   machvec_noop
+#define platform_dma_sync_sg_for_cpu           machvec_noop
 #define platform_dma_sync_single_for_device    machvec_noop
-#define platform_dma_sync_sg_for_device        machvec_noop
-#define platform_dma_mapping_error     machvec_noop
-#define platform_dma_supported         machvec_noop
-#define platform_local_vector_to_irq   machvec_noop
+#define platform_dma_sync_sg_for_device                machvec_noop
+#define platform_dma_mapping_error             machvec_noop
+#define platform_dma_supported                 machvec_noop
 
-#define platform_pci_get_legacy_mem    machvec_noop
-#define platform_pci_legacy_read       machvec_noop
-#define platform_pci_legacy_write      machvec_noop
+#define platform_pci_get_legacy_mem            machvec_noop
+#define platform_pci_legacy_read               machvec_noop
+#define platform_pci_legacy_write              machvec_noop
 #else
 #define platform_setup         dig_setup
 #endif
Index: xen/include/asm-ia64/linux-xen/asm/machvec_hpzx1.h
===================================================================
--- xen.orig/include/asm-ia64/linux-xen/asm/machvec_hpzx1.h
+++ xen/include/asm-ia64/linux-xen/asm/machvec_hpzx1.h
@@ -20,25 +20,28 @@ extern ia64_mv_dma_mapping_error    sba_dma
  */
 #define platform_name                          "hpzx1"
 #ifdef XEN
-#define platform_setup                 machvec_noop
-#define platform_dma_init              machvec_noop
-#define platform_dma_alloc_coherent    machvec_noop
-#define platform_dma_free_coherent     machvec_noop
-#define platform_dma_map_single                machvec_noop
-#define platform_dma_unmap_single      machvec_noop
-#define platform_dma_map_sg            machvec_noop
-#define platform_dma_unmap_sg          machvec_noop
+extern ia64_mv_setup_t hpsim_setup;
+extern ia64_mv_irq_init_t hpsim_irq_init;
+#define platform_setup                         hpsim_setup
+#define platform_irq_init                      hpsim_irq_init
+
+#define platform_dma_init                      machvec_noop
+#define platform_dma_alloc_coherent            machvec_noop
+#define platform_dma_free_coherent             machvec_noop
+#define platform_dma_map_single                        machvec_noop
+#define platform_dma_unmap_single              machvec_noop
+#define platform_dma_map_sg                    machvec_noop
+#define platform_dma_unmap_sg                  machvec_noop
 #define platform_dma_sync_single_for_cpu       machvec_noop
-#define platform_dma_sync_sg_for_cpu   machvec_noop
+#define platform_dma_sync_sg_for_cpu           machvec_noop
 #define platform_dma_sync_single_for_device    machvec_noop
-#define platform_dma_sync_sg_for_device        machvec_noop
-#define platform_dma_mapping_error     machvec_noop
-#define platform_dma_supported         machvec_noop
-#define platform_local_vector_to_irq   machvec_noop
+#define platform_dma_sync_sg_for_device                machvec_noop
+#define platform_dma_mapping_error             machvec_noop
+#define platform_dma_supported                 machvec_noop
 
-#define platform_pci_get_legacy_mem    machvec_noop
-#define platform_pci_legacy_read       machvec_noop
-#define platform_pci_legacy_write      machvec_noop
+#define platform_pci_get_legacy_mem            machvec_noop
+#define platform_pci_legacy_read               machvec_noop
+#define platform_pci_legacy_write              machvec_noop
 #else
 #define platform_setup                         dig_setup
 #define platform_dma_init                      machvec_noop

--

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.