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] ia64: update xen address space for VTi compatibility

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] ia64: update xen address space for VTi compatibility
From: BitKeeper Bot <riel@xxxxxxxxxxx>
Date: Fri, 01 Apr 2005 20:27:37 +0000
Delivery-date: Sat, 02 Apr 2005 00:03:14 +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@xxxxxxxxxxxxxxxxxxxxx>
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
ChangeSet 1.1369.1.4, 2005/04/01 13:27:37-07:00, djm@xxxxxxxxxxxxxxxxxx

        ia64: update xen address space for VTi compatibility



 domain.c                     |    6 +++---
 patch/linux-2.6.7/entry.S    |    3 +--
 patch/linux-2.6.7/head.S     |    6 +-----
 patch/linux-2.6.7/ivt.S      |    3 ---
 patch/linux-2.6.7/mca_asm.h  |   20 ++++++++++++++++++++
 patch/linux-2.6.7/minstate.h |   36 ++++++++++++++++++++++++------------
 patch/linux-2.6.7/page.h     |    4 ----
 patch/linux-2.6.7/pal.S      |   17 +++++++++++++++++
 patch/linux-2.6.7/system.h   |    7 +------
 tools/mkbuildtree            |    6 ++++--
 xenasm.S                     |    2 +-
 11 files changed, 72 insertions(+), 38 deletions(-)


diff -Nru a/xen/arch/ia64/domain.c b/xen/arch/ia64/domain.c
--- a/xen/arch/ia64/domain.c    2005-04-01 19:03:16 -05:00
+++ b/xen/arch/ia64/domain.c    2005-04-01 19:03:16 -05:00
@@ -194,9 +194,9 @@
        if (!allocate_rid_range(d,DOMAIN_RID_BITS_DEFAULT)) // FIXME
                BUG();
        // the following will eventually need to be negotiated dynamically
-       d->xen_vastart = 0xfffc000000000000;
-       d->xen_vaend = 0xfffe000000000000;
-       d->shared_info_va = 0xfffd000000000000;
+       d->xen_vastart = 0xf000000000000000;
+       d->xen_vaend = 0xf300000000000000;
+       d->shared_info_va = 0xf100000000000000;
        d->breakimm = 0x1000;
        // stay on kernel stack because may get interrupts!
        // ia64_ret_from_clone (which b0 gets in new_thread) switches
diff -Nru a/xen/arch/ia64/patch/linux-2.6.7/entry.S 
b/xen/arch/ia64/patch/linux-2.6.7/entry.S
--- a/xen/arch/ia64/patch/linux-2.6.7/entry.S   2005-04-01 19:03:16 -05:00
+++ b/xen/arch/ia64/patch/linux-2.6.7/entry.S   2005-04-01 19:03:16 -05:00
@@ -1,5 +1,5 @@
---- /home/djm/src/xen/xeno-ia64.bk/xen/linux-2.6.7/arch/ia64/kernel/entry.S    
2005-01-23 13:23:36.000000000 -0700
-+++ /home/djm/src/xen/xeno-ia64.bk/xen/arch/ia64/entry.S       2004-12-17 
13:47:03.000000000 -0700
+--- ../../linux-2.6.7/arch/ia64/kernel/entry.S 2005-03-24 19:39:56.000000000 
-0700
++++ arch/ia64/entry.S  2005-04-01 12:56:01.000000000 -0700
 @@ -35,7 +35,9 @@
  
  #include <asm/asmmacro.h>
@@ -46,7 +46,7 @@
        mov r27=IA64_KR(CURRENT_STACK)
        adds r21=IA64_TASK_THREAD_KSP_OFFSET,in0
 -      dep r20=0,in0,61,3              // physical address of "current"
-+      dep r20=0,in0,50,14             // physical address of "current"
++      dep r20=0,in0,60,4              // physical address of "current"
        ;;
        st8 [r22]=sp                    // save kernel stack pointer of old task
        shr.u r26=r20,IA64_GRANULE_SHIFT
diff -Nru a/xen/arch/ia64/patch/linux-2.6.7/head.S 
b/xen/arch/ia64/patch/linux-2.6.7/head.S
--- a/xen/arch/ia64/patch/linux-2.6.7/head.S    2005-04-01 19:03:16 -05:00
+++ b/xen/arch/ia64/patch/linux-2.6.7/head.S    2005-04-01 19:03:16 -05:00
@@ -1,5 +1,5 @@
---- /home/djm/src/xen/xeno-ia64.bk/xen/linux-2.6.7/arch/ia64/kernel/head.S     
2005-01-23 13:23:36.000000000 -0700
-+++ /home/djm/src/xen/xeno-ia64.bk/xen/arch/ia64/head.S        2004-12-17 
13:47:03.000000000 -0700
+--- ../../linux-2.6.7/arch/ia64/kernel/head.S  2005-03-24 19:39:56.000000000 
-0700
++++ arch/ia64/head.S   2005-04-01 12:56:01.000000000 -0700
 @@ -1,3 +1,8 @@
 +#ifdef XEN
 +#define       console_print   printf
@@ -14,7 +14,7 @@
        ;;
        or r18=r17,r18
 +#ifdef XEN
-+      dep r2=-1,r3,50,14      // IMVA of task
++      dep r2=-1,r3,60,4       // IMVA of task
 +#else
        dep r2=-1,r3,61,3       // IMVA of task
 +#endif
@@ -26,7 +26,7 @@
        mov ar.rsc=0x3          // place RSE in eager mode
  
 +#ifdef XEN
-+(isBP)        dep r28=-1,r28,50,14    // make address virtual
++(isBP)        dep r28=-1,r28,60,4     // make address virtual
 +#else
  (isBP)        dep r28=-1,r28,61,3     // make address virtual
 +#endif
@@ -69,8 +69,8 @@
        dep r3=0,r3,KERNEL_TR_PAGE_SHIFT,64-KERNEL_TR_PAGE_SHIFT
        dep r14=0,r14,KERNEL_TR_PAGE_SHIFT,64-KERNEL_TR_PAGE_SHIFT
 +#ifdef XEN
-+      dep r17=-1,r17,50,14
-+      dep sp=-1,sp,50,14
++      dep r17=-1,r17,60,4
++      dep sp=-1,sp,60,4
 +#else
        dep r17=-1,r17,61,3
        dep sp=-1,sp,61,3
diff -Nru a/xen/arch/ia64/patch/linux-2.6.7/ivt.S 
b/xen/arch/ia64/patch/linux-2.6.7/ivt.S
--- a/xen/arch/ia64/patch/linux-2.6.7/ivt.S     2005-04-01 19:03:16 -05:00
+++ b/xen/arch/ia64/patch/linux-2.6.7/ivt.S     2005-04-01 19:03:16 -05:00
@@ -1,5 +1,5 @@
 --- ../../linux-2.6.7/arch/ia64/kernel/ivt.S   2004-06-15 23:18:59.000000000 
-0600
-+++ arch/ia64/ivt.S    2005-03-28 20:16:02.000000000 -0700
++++ arch/ia64/ivt.S    2005-04-01 12:56:01.000000000 -0700
 @@ -1,3 +1,21 @@
 +
 +#ifdef XEN
@@ -99,10 +99,10 @@
 +#ifdef XEN
 +      ;;
 +      // FIXME: inadequate test, this is where we test for Xen address
-+      // note that 0xfffc (cached) and 0xdffc (uncached) addresses
++      // note that 0xf000 (cached) and 0xd000 (uncached) addresses
 +      // should be OK.  (Though no I/O is done in Xen, EFI needs uncached
 +      // addresses and some domain EFI calls are passed through)
-+      tbit.nz p0,p8=r16,50
++      tbit.nz p0,p8=r16,60
 +(p8)  br.cond.spnt page_fault
 +//(p8)        br.cond.spnt 0
 +      ;;
diff -Nru a/xen/arch/ia64/patch/linux-2.6.7/mca_asm.h 
b/xen/arch/ia64/patch/linux-2.6.7/mca_asm.h
--- /dev/null   Wed Dec 31 16:00:00 196900
+++ b/xen/arch/ia64/patch/linux-2.6.7/mca_asm.h 2005-04-01 19:03:16 -05:00
@@ -0,0 +1,32 @@
+--- ../../linux-2.6.7/include/asm-ia64/mca_asm.h       2004-06-15 
23:20:03.000000000 -0600
++++ include/asm-ia64/mca_asm.h 2005-04-01 12:56:37.000000000 -0700
+@@ -26,8 +26,13 @@
+  * direct mapped to physical addresses.
+  *    1. Lop off bits 61 thru 63 in the virtual address
+  */
++#ifdef XEN
++#define INST_VA_TO_PA(addr)                                                   
\
++      dep     addr    = 0, addr, 60, 4
++#else // XEN
+ #define INST_VA_TO_PA(addr)                                                   
\
+       dep     addr    = 0, addr, 61, 3
++#endif // XEN
+ /*
+  * This macro converts a data virtual address to a physical address
+  * Right now for simulation purposes the virtual addresses are
+@@ -42,9 +47,15 @@
+  * direct mapped to physical addresses.
+  *    1. Put 0x7 in bits 61 thru 63.
+  */
++#ifdef XEN
++#define DATA_PA_TO_VA(addr,temp)                                              
        \
++      mov     temp    = 0xf   ;;                                              
        \
++      dep     addr    = temp, addr, 60, 4
++#else // XEN
+ #define DATA_PA_TO_VA(addr,temp)                                              
        \
+       mov     temp    = 0x7   ;;                                              
        \
+       dep     addr    = temp, addr, 61, 3
++#endif // XEN
+ 
+ /*
+  * This macro jumps to the instruction at the given virtual address
diff -Nru a/xen/arch/ia64/patch/linux-2.6.7/minstate.h 
b/xen/arch/ia64/patch/linux-2.6.7/minstate.h
--- a/xen/arch/ia64/patch/linux-2.6.7/minstate.h        2005-04-01 19:03:16 
-05:00
+++ b/xen/arch/ia64/patch/linux-2.6.7/minstate.h        2005-04-01 19:03:16 
-05:00
@@ -1,14 +1,29 @@
---- /home/djm/src/xen/xeno-ia64.bk/xen/linux-2.6.7/arch/ia64/kernel/minstate.h 
2004-06-15 23:19:52.000000000 -0600
-+++ /home/djm/src/xen/xeno-ia64.bk/xen/arch/ia64/minstate.h    2004-12-15 
16:36:00.000000000 -0700
-@@ -3,6 +3,11 @@
- #include <asm/cache.h>
+--- ../../linux-2.6.7/arch/ia64/kernel/minstate.h      2004-06-15 
23:19:52.000000000 -0600
++++ arch/ia64/minstate.h       2005-04-01 12:56:01.000000000 -0700
+@@ -45,7 +45,7 @@
+ (pKStk) tpa r1=sp;                            /* compute physical addr of sp  
*/              \
+ (pUStk)       addl r1=IA64_STK_OFFSET-IA64_PT_REGS_SIZE,r1;   /* compute base 
of memory stack */      \
+ (pUStk)       mov r23=ar.bspstore;                            /* save 
ar.bspstore */                  \
+-(pUStk)       dep r22=-1,r22,61,3;                    /* compute kernel 
virtual addr of RBS */        \
++(pUStk)       dep r22=-1,r22,60,4;                    /* compute kernel 
virtual addr of RBS */        \
+       ;;                                                                      
                \
+ (pKStk) addl r1=-IA64_PT_REGS_SIZE,r1;                /* if in kernel mode, 
use sp (r12) */           \
+ (pUStk)       mov ar.bspstore=r22;                    /* switch to kernel RBS 
*/                      \
+@@ -65,7 +65,7 @@
+ #endif
  
- #include "entry.h"
-+#ifdef XEN
-+//this can be removed when offsets.h is properly generated
-+#undef IA64_TASK_THREAD_ON_USTACK_OFFSET
-+#define IA64_TASK_THREAD_ON_USTACK_OFFSET 0x34
-+#endif
- 
- /*
-  * For ivt.s we want to access the stack virtually so we don't have to 
disable translation
+ #ifdef MINSTATE_PHYS
+-# define MINSTATE_GET_CURRENT(reg)    mov reg=IA64_KR(CURRENT);; dep 
reg=0,reg,61,3
++# define MINSTATE_GET_CURRENT(reg)    mov reg=IA64_KR(CURRENT);; dep 
reg=0,reg,60,4
+ # define MINSTATE_START_SAVE_MIN      MINSTATE_START_SAVE_MIN_PHYS
+ # define MINSTATE_END_SAVE_MIN                MINSTATE_END_SAVE_MIN_PHYS
+ #endif
+@@ -172,7 +172,7 @@
+       ;;                                                                      
                \
+ .mem.offset 0,0; st8.spill [r16]=r15,16;                                      
                \
+ .mem.offset 8,0; st8.spill [r17]=r14,16;                                      
                \
+-      dep r14=-1,r0,61,3;                                                     
                \
++      dep r14=-1,r0,60,4;                                                     
                \
+       ;;                                                                      
                \
+ .mem.offset 0,0; st8.spill [r16]=r2,16;                                       
                        \
+ .mem.offset 8,0; st8.spill [r17]=r3,16;                                       
                        \
diff -Nru a/xen/arch/ia64/patch/linux-2.6.7/page.h 
b/xen/arch/ia64/patch/linux-2.6.7/page.h
--- a/xen/arch/ia64/patch/linux-2.6.7/page.h    2005-04-01 19:03:16 -05:00
+++ b/xen/arch/ia64/patch/linux-2.6.7/page.h    2005-04-01 19:03:16 -05:00
@@ -1,5 +1,5 @@
 --- ../../linux-2.6.7/include/asm-ia64/page.h  2004-06-15 23:18:58.000000000 
-0600
-+++ include/asm-ia64/page.h    2005-03-23 14:54:11.000000000 -0700
++++ include/asm-ia64/page.h    2005-04-01 12:56:37.000000000 -0700
 @@ -12,6 +12,9 @@
  #include <asm/intrinsics.h>
  #include <asm/types.h>
@@ -43,8 +43,8 @@
 +#ifdef XEN
 +typedef union xen_va {
 +      struct {
-+              unsigned long off : 50;
-+              unsigned long reg : 14;
++              unsigned long off : 60;
++              unsigned long reg : 4;
 +      } f;
 +      unsigned long l;
 +      void *p;
@@ -67,7 +67,7 @@
  #endif /* !STRICT_MM_TYPECHECKS */
  
 +#ifdef XEN
-+#define PAGE_OFFSET                   0xfffc000000000000
++#define PAGE_OFFSET                   0xf000000000000000
 +#else
  #define PAGE_OFFSET                   0xe000000000000000
 +#endif
diff -Nru a/xen/arch/ia64/patch/linux-2.6.7/pal.S 
b/xen/arch/ia64/patch/linux-2.6.7/pal.S
--- /dev/null   Wed Dec 31 16:00:00 196900
+++ b/xen/arch/ia64/patch/linux-2.6.7/pal.S     2005-04-01 19:03:16 -05:00
@@ -0,0 +1,26 @@
+--- ../../linux-2.6.7/arch/ia64/kernel/pal.S   2004-06-15 23:20:25.000000000 
-0600
++++ arch/ia64/pal.S    2005-04-01 12:56:01.000000000 -0700
+@@ -163,7 +163,11 @@
+       adds r8  = 1f-1b,r8             // calculate return address for call
+       ;;
+       mov loc4=ar.rsc                 // save RSE configuration
++#ifdef XEN
++      dep.z loc2=loc2,0,60            // convert pal entry point to physical
++#else // XEN
+       dep.z loc2=loc2,0,61            // convert pal entry point to physical
++#endif // XEN
+       tpa r8=r8                       // convert rp to physical
+       ;;
+       mov b7 = loc2                   // install target to branch reg
+@@ -218,7 +222,11 @@
+       mov loc3 = psr          // save psr
+       ;;
+       mov loc4=ar.rsc                 // save RSE configuration
++#ifdef XEN
++      dep.z loc2=loc2,0,60            // convert pal entry point to physical
++#else // XEN
+       dep.z loc2=loc2,0,61            // convert pal entry point to physical
++#endif // XEN
+       ;;
+       mov ar.rsc=0                    // put RSE in enforced lazy, LE mode
+       movl r16=PAL_PSR_BITS_TO_CLEAR
diff -Nru a/xen/arch/ia64/patch/linux-2.6.7/system.h 
b/xen/arch/ia64/patch/linux-2.6.7/system.h
--- a/xen/arch/ia64/patch/linux-2.6.7/system.h  2005-04-01 19:03:16 -05:00
+++ b/xen/arch/ia64/patch/linux-2.6.7/system.h  2005-04-01 19:03:16 -05:00
@@ -1,15 +1,15 @@
---- ../../linux-2.6.7/include/asm-ia64/system.h        2005-01-31 
11:15:23.000000000 -0700
-+++ include/asm-ia64/system.h  2005-03-14 11:31:12.000000000 -0700
+--- ../../linux-2.6.7/include/asm-ia64/system.h        2005-03-24 
19:39:56.000000000 -0700
++++ include/asm-ia64/system.h  2005-04-01 12:56:37.000000000 -0700
 @@ -24,8 +24,16 @@

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] ia64: update xen address space for VTi compatibility, BitKeeper Bot <=