ia64/xen-unstable

changeset 18360:8f00ddcd1c47

[IA64] fix PAL call in physical mode.

Now firmware code is mapped at its own virtual address space
which is same to Linux. So the calculation from virutal
address to physical address should be same to the linux one.
In practice firmware is located in low physical address area
so that masking 60 bit instead of 61 bits doesn't make difference.

I just checked and with the patch below,
xen/arch/ia64/linux-xen/pal.S becomes the same as
arch/ia64/kernel/pal.S from linux 2.6.21.

Signed-off-by: Simon Horman <horms@verge.net.au>
author Isaku Yamahata <yamahata@valinux.co.jp>
date Mon Aug 25 19:04:37 2008 +0900 (2008-08-25)
parents de736eefb6e1
children 9112c53b70cd
files xen/arch/ia64/linux-xen/pal.S
line diff
     1.1 --- a/xen/arch/ia64/linux-xen/pal.S	Mon Aug 25 19:04:37 2008 +0900
     1.2 +++ b/xen/arch/ia64/linux-xen/pal.S	Mon Aug 25 19:04:37 2008 +0900
     1.3 @@ -162,11 +162,7 @@ 1:	{
     1.4  	adds r8  = 1f-1b,r8		// calculate return address for call
     1.5  	;;
     1.6  	mov loc4=ar.rsc			// save RSE configuration
     1.7 -#ifdef XEN
     1.8 -	dep.z loc2=loc2,0,60		// convert pal entry point to physical
     1.9 -#else // XEN
    1.10  	dep.z loc2=loc2,0,61		// convert pal entry point to physical
    1.11 -#endif // XEN
    1.12  	tpa r8=r8			// convert rp to physical
    1.13  	;;
    1.14  	mov b7 = loc2			// install target to branch reg
    1.15 @@ -219,11 +215,7 @@ 1:	{
    1.16  	mov loc3 = psr			// save psr
    1.17  	;;
    1.18  	mov loc4=ar.rsc			// save RSE configuration
    1.19 -#ifdef XEN
    1.20 -	dep.z loc2=loc2,0,60		// convert pal entry point to physical
    1.21 -#else // XEN
    1.22  	dep.z loc2=loc2,0,61		// convert pal entry point to physical
    1.23 -#endif // XEN
    1.24  	;;
    1.25  	mov ar.rsc=0			// put RSE in enforced lazy, LE mode
    1.26  	movl r16=PAL_PSR_BITS_TO_CLEAR