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

Re: [Xen-ia64-devel] [patch 06/12] ia64: kexec: Repining for EFI RID



On Thu, Mar 20, 2008 at 05:52:54PM +1100, Simon Horman wrote:

> Index: xen-unstable.hg/xen/arch/ia64/xen/xenasm.S
> ===================================================================
> --- xen-unstable.hg.orig/xen/arch/ia64/xen/xenasm.S   2008-04-22 
> 11:24:46.000000000 +1000
> +++ xen-unstable.hg/xen/arch/ia64/xen/xenasm.S        2008-04-22 
> 16:56:00.000000000 +1000
> @@ -195,6 +195,193 @@ GLOBAL_ENTRY(ia64_new_rr7)
...
> +GLOBAL_ENTRY(ia64_new_rr7_efi)
...
> +     //  privregs / mapped_regs
> +     cmp.eq p7,p0=r0,in2
> +(p7) br.cond.sptk ia64_new_rr7_efi_privregs_not_mapped
> +     or loc7 = r26,loc7              // construct PA | page properties
> +     mov r22=IA64_TR_VPD
> +     mov r24=IA64_TR_MAPPED_REGS
> +     mov r23=IA64_GRANULE_SHIFT<<2
> +     ;;
> +     ptr.i   in2,r23
> +     ;;
> +     srlz.i
> +     ;;
> +     mov cr.itir=r23
> +     mov cr.ifa=in2
> +     ;;
> +     itr.i itr[r22]=loc7
> +     ;;
> +     srlz.i
> +ia64_new_rr7_efi_privregs_not_mapped:

VPD must be pinned not only by itr[], but also dtr[] too.

SDM 2.2 vol2 says that VPD must be pinned down by
both ITR and DTR.
See the pal call section, PAL_VP_REGISTER, PAL_VP_RESTORE,
PAL_VP_SAVE, PAL_VPS_RESTORE, PAL_VPS_SAVE.
It's very unintuitive to pin down by ITR.

And I think ia64_do_tlb_purge() have to purge not only dtr[],
but also itr[IA64_TR_VPD].

-- 
yamahata

_______________________________________________
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®.