On Mon, 21 Jan 2019 at 14:36, Julien Grall <[email protected]> wrote:
>
> Hi,
>
> On 21/01/2019 10:46, Zeng, Star wrote:
> > On 2019/1/18 2:59, Julien Grall wrote:
> > I saw the discussion at
> > https://lists.01.org/pipermail/edk2-devel/2019-January/035405.html. 
> > Fortunately,
> > it has been fixed.
> > So I did rebase for the code.
> > Repo: [email protected]:lzeng14/edk2.git
> > Branch: MergedVariableDriver_EmuNvMode_V3_rebased
>
> I was about to ask a branch as there were conflicts in the rebase.
> Thank you for providing the branch!
>
> >
> > If you can help have a quick test, that will be very helpful. :)
>
> With your series applied, EDK2 is crashing while the Linux EFI stub
> is running. See the log below.
>
> My knowledge of EDK2 is quite limited, so I am not entirely where to
> look at. I am happy to help debugging if you provide guidance.
>

Hi Julien,

Could you try the patch below please?

diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
index a8bb9cf25ebd..adaf6ccb48b0 100644
--- a/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
+++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c
@@ -236,14 +236,16 @@ VariableClassAddressChangeEvent (
 {
   UINTN          Index;

-  EfiConvertPointer (0x0, (VOID **)
&mVariableModuleGlobal->FvbInstance->GetBlockSize);
-  EfiConvertPointer (0x0, (VOID **)
&mVariableModuleGlobal->FvbInstance->GetPhysicalAddress);
-  EfiConvertPointer (0x0, (VOID **)
&mVariableModuleGlobal->FvbInstance->GetAttributes);
-  EfiConvertPointer (0x0, (VOID **)
&mVariableModuleGlobal->FvbInstance->SetAttributes);
-  EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->FvbInstance->Read);
-  EfiConvertPointer (0x0, (VOID **)
&mVariableModuleGlobal->FvbInstance->Write);
-  EfiConvertPointer (0x0, (VOID **)
&mVariableModuleGlobal->FvbInstance->EraseBlocks);
-  EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->FvbInstance);
+  if (mVariableModuleGlobal->FvbInstance != NULL) {
+    EfiConvertPointer (0x0, (VOID **)
&mVariableModuleGlobal->FvbInstance->GetBlockSize);
+    EfiConvertPointer (0x0, (VOID **)
&mVariableModuleGlobal->FvbInstance->GetPhysicalAddress);
+    EfiConvertPointer (0x0, (VOID **)
&mVariableModuleGlobal->FvbInstance->GetAttributes);
+    EfiConvertPointer (0x0, (VOID **)
&mVariableModuleGlobal->FvbInstance->SetAttributes);
+    EfiConvertPointer (0x0, (VOID **)
&mVariableModuleGlobal->FvbInstance->Read);
+    EfiConvertPointer (0x0, (VOID **)
&mVariableModuleGlobal->FvbInstance->Write);
+    EfiConvertPointer (0x0, (VOID **)
&mVariableModuleGlobal->FvbInstance->EraseBlocks);
+    EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->FvbInstance);
+  }
   EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->PlatformLangCodes);
   EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->LangCodes);
   EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal->PlatformLang);





> Press any key to continue...
>
> [Security] 3rd party image[0] can be loaded after EndOfDxe: 
> MemoryMapped(0x2,0x67789000,0x68DF1200).
>
> InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 7AB2B040
>
> Loading driver at 0x00065783000 EntryPoint=0x00066878664
>
> Loading driver at 0x00065783000 EntryPoint=0x00066878664
>
> InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 7AA54B18
>
> ProtectUefiImageCommon - 0x7AB2B040
>
>   - 0x0000000065783000 - 0x0000000002006000
>
> SetUefiImageMemoryAttributes - 0x0000000065783000 - 0x0000000000001000 
> (0x0000000000004008)
>
> SetUefiImageMemoryAttributes - 0x0000000065784000 - 0x00000000011CD000 
> (0x0000000000020008)
>
> SetUefiImageMemoryAttributes - 0x0000000066951000 - 0x0000000000E38000 
> (0x0000000000004008)
>
> EFI stub: Booting Linux Kernel...
>
> EFI stub: Using DTB from configuration table
>
> EFI stub: Exiting boot services and installing virtual address map...
>
> XenBus: Set state to 5
>
> XenBus: Set state to 5, done
>
> XenPvBlk: waiting backend state 5, current: 4
>
> XenStore: Watch event 7B036698
>
> XenBus: Set state to 6
>
> XenBus: Set state to 6, done
>
> XenPvBlk: waiting backend state 6, current: 5
>
> XenStore: Watch event 7B036698
>
> XenBus: Set state to 1
>
> XenBus: Set state to 1, done
>
> Xen GrantTable, removing 38003
>
> Xen GrantTable, removing 38002
>
> Xen GrantTable, removing 38001
>
> Xen GrantTable, removing 38000
>
> SetUefiImageMemoryAttributes - 0x000000007BE60000 - 0x0000000000040000 
> (0x0000000000000008)
>
> SetUefiImageMemoryAttributes - 0x0000000078AE0000 - 0x0000000000050000 
> (0x0000000000000008)
>
> SetUefiImageMemoryAttributes - 0x0000000078A90000 - 0x0000000000040000 
> (0x0000000000000008)
>
> SetUefiImageMemoryAttributes - 0x00000000789F0000 - 0x0000000000040000 
> (0x0000000000000008)
>
> SetUefiImageMemoryAttributes - 0x0000000078950000 - 0x0000000000040000 
> (0x0000000000000008)
>
> SetUefiImageMemoryAttributes - 0x00000000788B0000 - 0x0000000000040000 
> (0x0000000000000008)
>
>
>
>
>
> Synchronous Exception at 0x000000007BE70698
>
> PC 0x00007BE70698 (0x00007BE60000+0x00010698) [ 0] RuntimeDxe.dll
>
> PC 0x000078AFECB0 (0x000078AE0000+0x0001ECB0) [ 1] VariableRuntimeDxe.dll
>
> PC 0x000078AF0AC8 (0x000078AE0000+0x00010AC8) [ 1] VariableRuntimeDxe.dll
>
> PC 0x00007BE7094C (0x00007BE60000+0x0001094C) [ 2] RuntimeDxe.dll
>
> PC 0x00006687E014
>
> PC 0x00006687C348
>
> PC 0x000066878680
>
> PC 0x00007F492BF4 (0x00007F48C000+0x00006BF4) [ 3] DxeCore.dll
>
> PC 0x0000783E6724
>
> PC 0x0000783E6A38
>
> PC 0x0000784BF888
>
> PC 0x0000784605F8
>
> PC 0x0000784602A4
>
> PC 0x00007845C608
>
> PC 0x00007845C838
>
> PC 0x00007845C914
>
> PC 0x00007845C974
>
> PC 0x0000784DFB48
>
> PC 0x0000786922D0
>
> PC 0x00007F492BF4 (0x00007F48C000+0x00006BF4) [ 3] DxeCore.dll
>
> PC 0x00007875B27C
>
> PC 0x00007877A2D0
>
> PC 0x00007F492BF4 (0x00007F48C000+0x00006BF4) [ 3] DxeCore.dll
>
> PC 0x00007BD1912C (0x00007BD0A000+0x0000F12C) [ 4] BdsDxe.dll
>
> PC 0x00007BD0BFBC (0x00007BD0A000+0x00001FBC) [ 4] BdsDxe.dll
>
> PC 0x00007BD0D5C8 (0x00007BD0A000+0x000035C8) [ 4] BdsDxe.dll
>
> PC 0x00007F48E564 (0x00007F48C000+0x00002564) [ 5] DxeCore.dll
>
> PC 0x00007F48D598 (0x00007F48C000+0x00001598) [ 5] DxeCore.dll
>
> PC 0x00007F48D024 (0x00007F48C000+0x00001024) [ 5] DxeCore.dll
>
> PC 0x0000400895C8
>
> PC 0x0000400897AC
>
> PC 0x000040082B4C
>
> PC 0x000040082C24
>
>
>
> [ 0] 
> /home/julien/works/edk2/Build/ArmVirtXen-AARCH64/DEBUG_GCC49/AARCH64/MdeModulePkg/Core/RuntimeDxe/RuntimeDxe/DEBUG/RuntimeDxe.dll
>
> [ 1] 
> /home/julien/works/edk2/Build/ArmVirtXen-AARCH64/DEBUG_GCC49/AARCH64/MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe/DEBUG/VariableRuntimeDxe.dll
>
> [ 2] 
> /home/julien/works/edk2/Build/ArmVirtXen-AARCH64/DEBUG_GCC49/AARCH64/MdeModulePkg/Core/RuntimeDxe/RuntimeDxe/DEBUG/RuntimeDxe.dll
>
> [ 3] 
> /home/julien/works/edk2/Build/ArmVirtXen-AARCH64/DEBUG_GCC49/AARCH64/MdeModulePkg/Core/Dxe/DxeMain/DEBUG/DxeCore.dll
>
> [ 4] 
> /home/julien/works/edk2/Build/ArmVirtXen-AARCH64/DEBUG_GCC49/AARCH64/MdeModulePkg/Universal/BdsDxe/BdsDxe/DEBUG/BdsDxe.dll
>
> [ 5] 
> /home/julien/works/edk2/Build/ArmVirtXen-AARCH64/DEBUG_GCC49/AARCH64/MdeModulePkg/Core/Dxe/DxeMain/DEBUG/DxeCore.dll
>
>
>
>   X0 0x0000000000000018   X1 0x0000000000000018   X2 0x000000007BE7066C   X3 
> 0x000000007BFDD998
>
>   X4 0x000000007BE707D8   X5 0x0000000000000004   X6 0x0000000000000000   X7 
> 0x000000007B036E18
>
>   X8 0x000000007BFFF608   X9 0x0000000400000000  X10 0x000000007B036000  X11 
> 0x000000007BA37FFF
>
>  X12 0x0000000000000000  X13 0x0000000000000008  X14 0x000000007FFFEF5C  X15 
> 0x0000000000000000
>
>  X16 0x00000000DEADBEEF  X17 0x0000000000000000  X18 0x00000000FFFFFFFE  X19 
> 0x000000007BFD0018
>
>  X20 0x000000007FFFF170  X21 0x000000007FFFF250  X22 0x0000000000000000  X23 
> 0x000000007F200000
>
>  X24 0x000000007AA54918  X25 0x0000000000000078  X26 0xFFFFFFFFFFFFFFFF  X27 
> 0x000000007FFFF150
>
>  X28 0x0000000000000000   FP 0x000000007FFFEFB0   LR 0x0000000078AFECB0
>
>
>
>   V0 0x0000000000000000 0000000000000000   V1 0x0000000000000000 
> 0000000000000000
>
>   V2 0x0000000000000000 0000000000000000   V3 0x0000000000000000 
> 0000000000000000
>
>   V4 0x0000000000000000 0000000000000000   V5 0x0000000000000000 
> 0000000000000000
>
>   V6 0x0000000000000000 0000000000000000   V7 0x0000000000000000 
> 0000000000000000
>
>   V8 0x0000000000000000 0000000000000000   V9 0x0000000000000000 
> 0000000000000000
>
>  V10 0x0000000000000000 0000000000000000  V11 0x0000000000000000 
> 0000000000000000
>
>  V12 0x0000000000000000 0000000000000000  V13 0x0000000000000000 
> 0000000000000000
>
>  V14 0x0000000000000000 0000000000000000  V15 0x0000000000000000 
> 0000000000000000
>
>  V16 0x0000000000000000 0000000000000000  V17 0x0000000000000000 
> 0000000000000000
>
>  V18 0x0000000000000000 0000000000000000  V19 0x0000000000000000 
> 0000000000000000
>
>  V20 0x0000000000000000 0000000000000000  V21 0x0000000000000000 
> 0000000000000000
>
>  V22 0x0000000000000000 0000000000000000  V23 0x0000000000000000 
> 0000000000000000
>
>  V24 0x0000000000000000 0000000000000000  V25 0x0000000000000000 
> 0000000000000000
>
>  V26 0x0000000000000000 0000000000000000  V27 0x0000000000000000 
> 0000000000000000
>
>  V28 0x0000000000000000 0000000000000000  V29 0x0000000000000000 
> 0000000000000000
>
>  V30 0x0000000000000000 0000000000000000  V31 0x0000000000000000 
> 0000000000000000
>
>
>
>   SP 0x000000007FFFEFB0  ELR 0x000000007BE70698  SPSR 0x200000C5  FPSR 
> 0x00000000
>
>  ESR 0x96000000          FAR 0x0000000000000018
>
>
>
>  ESR : EC 0x25  IL 0x1  ISS 0x00000000
>
>
>
> Data abort: Address size fault, zeroth level of translation or translation 
> table base register
>
>
>
> Stack dump:
>
>   000007FFFEEB0: 000000007FFFEEE0 0000000000000003 0000000000001000 
> 000000007B04EFF8
>
>   000007FFFEED0: 000000007B04E780 000000030000030C 000000007FFFEF30 
> 000000007BCEA25C
>
>   000007FFFEEF0: 000000007FFFEF70 0000000000000008 0000000000040000 
> 00000000788B0000
>
>   000007FFFEF10: 0000000000000000 000000007FFFB000 0000000000000000 
> 000000000000070C
>
>   000007FFFEF30: 000000007FFFEF90 000000007F4974E4 0000000000000008 
> 0000000000040000
>
>   000007FFFEF50: 00000000788B0000 000000007BCF7008 00000000788B0000 
> 006000000000070C
>
>   000007FFFEF70: 0000000000010000 00000000788B0000 0000000000000000 
> 000000000000070C
>
>   000007FFFEF90: 000000007FFFEFD0 000000007BE70E1C 0000000000000078 
> 000000007BFD0018
>
> > 000007FFFEFB0: 000000007FFFEFF0 0000000078AFECB0 0000000000000018 
> > 0000000000000000
>
>   000007FFFEFD0: 0000000078B109A8 0000000000000000 000000007BFE0000 
> 000000007BFDFF18
>
>   000007FFFEFF0: 000000007FFFF010 0000000078AF0AC8 0000000000000018 
> 0000000000000000
>
>   000007FFFF010: 000000007FFFF040 000000007BE7094C 0000000000000000 
> 000000007BFDD998
>
>   000007FFFF030: 0000000000000000 000000007BFDEA18 000000007FFFF0A0 
> 000000006687E014
>
>   000007FFFF050: 00000000784D4018 0000000100000000 0000000000000030 
> 00000000000001E0
>
>   000007FFFF070: 000000007BFD0018 000000007FFFF170 000000007FFFF250 
> 0000000000000000
>
>   000007FFFF090: 000000007BFDD9F8 000000007BFDDA20 000000007FFFF1B0 
> 000000006687C348
>
> ASSERT [ArmCpuDxe] 
> /home/julien/works/edk2/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c(279):
>  ((BOOLEAN)(0==1))
>
> Cheers,
>
> --
> Julien Grall
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to