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
gfw-sal.patch
Description: Text Data
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|