Cc: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Cc: Tristan Gingold <tgingold@xxxxxxx>
Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
Index: 20071119-ia64/xen/arch/ia64/xen/ivt.S
===================================================================
--- 20071119-ia64.orig/xen/arch/ia64/xen/ivt.S 2007-11-25 22:37:35.000000000
-0700
+++ 20071119-ia64/xen/arch/ia64/xen/ivt.S 2007-11-25 22:43:59.000000000
-0700
@@ -121,8 +121,28 @@
/* If address belongs to VMM, go to alt tlb handler */
cmp.eq p6,p0=0x1e,r17
(p6) br.cond.spnt late_alt_itlb_miss
- br.cond.sptk fast_tlb_miss_reflect
+ // If it is an EFI address then must have XEN_EFI_RID set
+ // And if that is true, go to alt tlb handler
+ // (r17 == 0x18 && rr[6] == XEN_EFI_RID) ||
+ // (r17 == 0x1c && rr[7] == XEN_EFI_RID)
+ mov r23=6
+ mov r24=7
+ ;;
+ mov r23=rr[r23]
+ mov r24=rr[r24]
;;
+ mov r25=XEN_EFI_RID
+ cmp.eq p8,p0=0x18,r17 // 0xc...
+ cmp.eq p9,p0=0x1c,r17 // 0xe...
+ ;;
+ cmp.eq.and p8,p0=r25,r23 // rr[6] == XEN_EFI_RID
+ cmp.eq.and p9,p0=r25,r24 // rr[7] == XEN_EFI_RID
+ ;;
+(p8) br.cond.spnt late_alt_itlb_miss
+(p9) br.cond.spnt late_alt_itlb_miss
+ ;;
+
+ br.cond.spnt fast_tlb_miss_reflect
END(itlb_miss)
.org ia64_ivt+0x0800
--
--
Horms
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|