[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] Guest PAL_INIT support for IPI
# HG changeset patch # User awilliam@xxxxxxxxxxx # Node ID 529b3f3fb12790dd22d252d504585a642e09fb01 # Parent dbfd94442e46ea151bc3e129838a4b1273ddf0c0 [IA64] Guest PAL_INIT support for IPI Signed-off-by: Zhang Xin <xing.z.zhang@xxxxxxxxx> --- xen/arch/ia64/vmx/mmio.c | 21 +++++++++++++++++++-- 1 files changed, 19 insertions(+), 2 deletions(-) diff -r dbfd94442e46 -r 529b3f3fb127 xen/arch/ia64/vmx/mmio.c --- a/xen/arch/ia64/vmx/mmio.c Fri Nov 10 12:55:52 2006 -0700 +++ b/xen/arch/ia64/vmx/mmio.c Fri Nov 10 13:01:23 2006 -0700 @@ -380,6 +380,24 @@ memread_p(VCPU *vcpu, u64 *src, u64 *des } */ +/* + * To inject INIT to guest, we must set the PAL_INIT entry + * and set psr to switch to physical mode + */ +#define PAL_INIT_ENTRY 0x80000000ffffffa0 +#define PSR_SET_BITS (IA64_PSR_DT | IA64_PSR_IT | IA64_PSR_RT | \ + IA64_PSR_IC | IA64_PSR_RI) + +static void vmx_inject_guest_pal_init(VCPU *vcpu) +{ + REGS *regs = vcpu_regs(vcpu); + uint64_t psr = vmx_vcpu_get_psr(vcpu); + + regs->cr_iip = PAL_INIT_ENTRY; + + psr = psr & (~PSR_SET_BITS); + vmx_vcpu_set_psr(vcpu,psr); +} /* * Deliver IPI message. (Only U-VP is supported now) @@ -403,8 +421,7 @@ static void deliver_ipi (VCPU *vcpu, uin vmx_vcpu_pend_interrupt (vcpu, 2); break; case 5: // INIT - // TODO -- inject guest INIT - panic_domain (NULL, "Inject guest INIT!\n"); + vmx_inject_guest_pal_init(vcpu); break; case 7: // ExtINT vmx_vcpu_pend_interrupt (vcpu, 0); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |