[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-ia64-devel] [PATCH][GFW][RFC] fix EFI_SAL_SET_VECTORS
While booting recent Linux kernel under VTi domain with the latest open gfw, it panics as following. Linux kernel calls sal call of (EFI_SAL_SET_VECTORS, EFI_SAL_SET_INIT_VECTOR) and the gfw accesses the invalid address. The uncached physical addresses are hard coded, but they aren't relocated when switching to virtual address mode. And calling xen sal hypercall looks copy and past typo. Note: I haven't tested this patch yet. efi-vfirmware.hg/edk2-sparse/EdkXenPkg/Dxe/XenSal/XenSal.msa seems to need modification too, but I don't know how to generate the file. Is there any documentation describing that? thanks, panic log: Unable to handle kernel paging request at virtual address 80000000ffffff80 swapper[0]: Oops 8804682956800 [1] Modules linked in: Pid: 0, CPU 0, comm: swapper psr : 00001010084a2010 ifs : 8000000000001634 ip : [<e00000000f1479e0>] Not tainted (2.6.26-rc1xen-ia64-08245-g59409b5-dirt(XEN) paddr_to_maddr: called with bad memory address: 0x7000000004138100 - iip=a0000001000660c0 ip is at 0xe00000000f1479e0 unat: 0000000000000000 pfs : 000000000000091a rsc : 0000000000000003 rnat: 0000000000000005 bsps: 0000000000000000 pr : 000000000002aa49 ldrs: 0000000000000000 ccv : 0000000000000000 fpsr: 0009804c8a70433f csd : 0000000000000000 ssd : 0000000000000000 b0 : a00000010075e3f0 b6 : a000000100052100 b7 : e00000000f147620 f6 : 000000000000000000000 f7 : 000000000000000000000 f8 : 000000000000000000000 f9 : 000000000000000000000 f10 : 000000000000000000000 f11 : 000000000000000000000 r1 : e00000000f152020 r2 : 0000000000000001 r3 : 000000000000040d r8 : 0000000000000000 r9 : 000000000000040c r10 : a000000100052100 r11 : a000000100958708 r12 : a000000100943bd0 r13 : a00000010093c000 r14 : 80000000ffffff80 r15 : e00000000f152130 r16 : e00000000f152138 r17 : a000000100731948 r18 : a000000100052100 r19 : a0000001009b23b8 r20 : a0000001009ed548 r21 : 00000000dead4ead r22 : a000000100958704 r23 : 0000000000000000 r24 : a000000100a07518 r25 : e00000000f147620 r26 : a0000001009ee038 r27 : a000000100731948 r28 : a000000100052100 r29 : a000000100731948 r30 : a000000100052100 r31 : 0000000000000000 diff -r ececa5a5473b edk2-sparse/EdkXenPkg/Dxe/XenSal/Sal.c --- a/edk2-sparse/EdkXenPkg/Dxe/XenSal/Sal.c Thu Apr 17 06:50:28 2008 +0200 +++ b/edk2-sparse/EdkXenPkg/Dxe/XenSal/Sal.c Tue May 13 16:50:49 2008 +0900 @@ -122,7 +122,7 @@ SalSlaveInitVector->Gp = Arg7; status = EFI_SAL_SUCCESS; - return SalEmulator (FunctionId, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8); + break; case EFI_SAL_SET_BOOT_RENDEZ_VECTOR: SalRendezVector.Ip = Arg3; SalRendezVector.Gp = Arg4; @@ -136,3 +136,23 @@ } return (SAL_RETURN_REGS) {status, r9, r10, r11}; } + +VOID +EFIAPI +SalProcAddressChangeEvent ( + IN EFI_EVENT Event, + IN VOID *Context + ) +/*++ + +Routine Description: + +Arguments: + +Returns: + +--*/ +{ + EfiConvertPointer (0x0, (VOID **) &SalMonarchInitVector); + EfiConvertPointer (0x0, (VOID **) &SalSlaveInitVector); +} -- yamahata Attachment:
gfw-sal.patch _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |