From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web10.4735.1570756775203348297 for ; Thu, 10 Oct 2019 18:19:35 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: liming.gao@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Oct 2019 18:19:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,282,1566889200"; d="scan'208,217";a="207316475" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga001.fm.intel.com with ESMTP; 10 Oct 2019 18:19:34 -0700 Received: from fmsmsx153.amr.corp.intel.com (10.18.125.6) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 10 Oct 2019 18:19:34 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by FMSMSX153.amr.corp.intel.com (10.18.125.6) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 10 Oct 2019 18:19:33 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.166]) by SHSMSX152.ccr.corp.intel.com ([10.239.6.52]) with mapi id 14.03.0439.000; Fri, 11 Oct 2019 09:19:32 +0800 From: "Liming Gao" To: "devel@edk2.groups.io" , "afish@apple.com" , Pete Batard Subject: Re: [edk2-devel] OVMF is crashing for me in master Thread-Topic: [edk2-devel] OVMF is crashing for me in master Thread-Index: AQHVf69qXczYI6KApUaEXpY33Yugv6dUnnEA Date: Fri, 11 Oct 2019 01:19:32 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E515A05@SHSMSX104.ccr.corp.intel.com> References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: liming.gao@intel.com Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_4A89E2EF3DFEDB4C8BFDE51014F606A14E515A05SHSMSX104ccrcor_" --_000_4A89E2EF3DFEDB4C8BFDE51014F606A14E515A05SHSMSX104ccrcor_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Andrew: I verify the change (2de1f611be06ded3a59726a4052a9039be7d459b MdeModuleP= kg/BdsDxe: Also call PlatformBootManagerWaitCallback on 0) in Emulator. It works, because PCD value is set to 10 in Emulator. Before this change, if TimeOut PCD is zero, BdsEntry doesn't call Platfo= rmBootManagerWaitCallback(). After this change, if TimeOut PCD is zero, BdsEntry still call Platform= BootManagerWaitCallback(). So, it trigs this issue. I agree your fix. Pete: Will you contribute the patch to fix this hang issue in OVMF? Thanks Liming From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Andr= ew Fish via Groups.Io Sent: Friday, October 11, 2019 5:12 AM To: devel@edk2.groups.io; Pete Batard Subject: [edk2-devel] OVMF is crashing for me in master This is my flavor of OVMF: build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -t XCOD= E5 It looks like I took an exception? Is it expected that an unhandled except= ion just hang in a dead loop? I would have expected some serial output abo= ut the failure? Looks like a divide by zero exception. The exception context has PC and FP= so I can manually walk the stack. Yikes I see PlatformBootManagerWaitCallb= ack() will fault if PcdPlatformBootTimeOut is zero? /Volumes/Case/UDK2018(master)>git grep PcdPlatformBootTimeOut -- *.dsc ArmVirtPkg/ArmVirtQemu.dsc:194: gEfiMdePkgTokenSpaceGuid.PcdPlatformBootT= imeOut|3 ArmVirtPkg/ArmVirtQemuKernel.dsc:191: gEfiMdePkgTokenSpaceGuid.PcdPlatfor= mBootTimeOut|3 ArmVirtPkg/ArmVirtXen.dsc:122: gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTi= meOut|3 EmulatorPkg/EmulatorPkg.dsc:236: gEfiMdePkgTokenSpaceGuid.PcdPlatformBoot= TimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|10 OvmfPkg/OvmfPkgIa32.dsc:541: gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTime= Out|0 OvmfPkg/OvmfPkgIa32X64.dsc:553: gEfiMdePkgTokenSpaceGuid.PcdPlatformBootT= imeOut|0 OvmfPkg/OvmfPkgX64.dsc:552: gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeO= ut|0 OvmfPkg/OvmfXen.dsc:470: gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|= 0 UefiPayloadPkg/UefiPayloadPkgIa32.dsc:344: gEfiMdePkgTokenSpaceGuid.PcdPl= atformBootTimeOut|3 UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc:345: gEfiMdePkgTokenSpaceGuid.Pc= dPlatformBootTimeOut|3 OK PcdPlatformBootTimeOut is zero on Ovmf, so how did this ever work? Ahhh gotom.... /Volumes/Case/UDK2018(master)>git blame -L344,344 /Volumes/Case/UDK2018/M= deModulePkg/Universal/BdsDxe/BdsEntry.c 2de1f611be0 (Pete Batard 2019-09-25 23:50:05 +0800 344) PlatformBootMana= gerWaitCallback (0); This call causes a divide by zero if PcdPlatformBootTimeOut =3D=3D 0. This fixes my crash: diff --git a/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c b/OvmfPk= g/Library/PlatformBootManagerLib/BdsPlatform.c index 70df6b841a..d6ae43e900 100644 --- a/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c +++ b/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c @@ -1634,6 +1634,11 @@ PlatformBootManagerWaitCallback ( UINT16 Timeout; Timeout =3D PcdGet16 (PcdPlatformBootTimeOut); + if (Timeout =3D=3D 0) { + Timeout =3D 100; + } else { + Timeout =3D (Timeout - TimeoutRemain) * 100 / Timeout; + } Black.Raw =3D 0x00000000; White.Raw =3D 0x00FFFFFF; @@ -1643,7 +1648,7 @@ PlatformBootManagerWaitCallback ( Black.Pixel, L"Start boot option", White.Pixel, - (Timeout - TimeoutRemain) * 100 / Timeout, + Timeout, 0 ); } lldb debugger output: (lldb) bt * thread #1, stop reason =3D signal SIGTRAP * frame #0: 0x0000000007b58a70 CpuDxe.dll:CpuDeadLoop() + 13 at /Volumes= /Case/UDK2018/MdePkg/Library/BaseLib/CpuDeadLoop.c:31 frame #1: 0x0000000007b61222 CpuDxe.dll:CommonExceptionHandlerWorker()= + 674 at /Volumes/Case/UDK2018/UefiCpuPkg/Library/CpuExceptionHandlerLib/P= eiDxeSmmCpuException.c:115 frame #2: 0x0000000007b61624 CpuDxe.dll:CommonExceptionHandler() + 36 = at /Volumes/Case/UDK2018/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeExcep= tion.c:40 frame #3: 0x0000000007b5ff26 CpuDxe.dll:HasErrorCode() + 230 (lldb) fr sel 1 frame #1: 0x0000000007b61222 CpuDxe.dll:CommonExceptionHandlerWorker() + 6= 74 at /Volumes/Case/UDK2018/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiDx= eSmmCpuException.c:115 91 (ExternalInterruptHandler[ExceptionType]) (ExceptionType= , SystemContext); 92 } else if (ExceptionType < CPU_EXCEPTION_NUM) { 93 // 94 // Get Spinlock to display CPU information 95 // 96 while (!AcquireSpinLockOrFail (&ExceptionHandlerData->Di= splayMessageSpinLock)) { 97 CpuPause (); 98 } 99 // 100 // Initialize the serial port before dumping. 101 // 102 SerialPortInitialize (); 103 // 104 // Display ExceptionType, CPU information and Image infor= mation 105 // 106 DumpImageAndCpuContent (ExceptionType, SystemContext); 107 // 108 // Release Spinlock of output message 109 // 110 ReleaseSpinLock (&ExceptionHandlerData->DisplayMessageSpi= nLock); 111 // 112 // Enter a dead loop if needn't to execute old IDT handle= r further 113 // 114 if (ReservedVectors[ExceptionType].Attribute !=3D EFI_VEC= TOR_HANDOFF_HOOK_BEFORE) { -> 115 CpuDeadLoop (); 116 } 117 } 118 } 119 (lldb) p ExceptionType (EFI_EXCEPTION_TYPE) $0 =3D 0 (lldb) p SystemContext.SystemContextX64->Rip (UINT64) $1 =3D 0x0000000007a9cc38 (lldb) p SystemContext.SystemContextX64->Rbp (UINT64) $2 =3D 0x0000000007e8fc20 (lldb) efi_backtrace --pc 0x0000000007a9cc38 --frame 0x0000000007e8fc20 --= symbols frame 0: 0x07a9cc38 BdsDxe:PlatformBootManagerWaitCallback + 35 at /Vol= umes/Case/UDK2018/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c:1646= :37 frame 1: 0x07a9e744 BdsDxe:BdsWait + 269 at /Volumes/Case/UDK2018/MdeMo= dulePkg/Universal/BdsDxe/BdsEntry.c:344:3 frame 2: 0x07a9dff9 BdsDxe:BdsEntry + 2620 at /Volumes/Case/UDK2018/Mde= ModulePkg/Universal/BdsDxe/BdsEntry.c:1002:5 frame 3: 0x07eb367d DxeCore:DxeMain + 2680 at /Volumes/Case/UDK2018/Mde= ModulePkg/Core/Dxe/DxeMain/DxeMain.c:544:3 frame 4: 0x07e943cb DxeCore:_ModuleEntryPoint + 20 at /Volumes/Case/UDK= 2018/MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.c:48:3 frame 5: 0x07edc947 DxeIpl.dll`AsmEnableCache frame 6: 0x07ee1e4e DxeIpl:HandOffToDxeCore + 509 at /Volumes/Case/UDK2= 018/MdeModulePkg/Core/DxeIplPeim/X64/DxeLoadFunc.c:113:3 frame 7: 0x07ee0604 DxeIpl:DxeLoadCore + 1354 at /Volumes/Case/UDK2018/= MdeModulePkg/Core/DxeIplPeim/DxeLoad.c:449:3 frame 8: 0x07eeff2f PeiCore.dll`PeiCore.cold.3 + 847 frame 9: 0x07ee9d04 PeiCore:PeiCore + 163 at /Volumes/Case/UDK2018/MdeM= odulePkg/Core/Pei/PeiMain/PeiMain.c:502:3 frame 10: 0x0082c387 0x0082c387 frame 11: 0x00825dd7 0x00825dd7 frame 12: 0x0082ad27 0x0082ad27 frame 13: 0x0082b3a8 0x0082b3a8 frame 14: 0x0082bf23 0x0082bf23 frame 15: 0x00825e24 0x00825e24 frame 16: 0x00823af2 0x00823af2 frame 17: 0xfffd1db8 SecMain:SecStartupPhase2 + 67 at /Volumes/Case/UDK2= 018/OvmfPkg/Sec/SecMain.c:858:3 frame 18: 0xfffd1d67 SecMain:SecCoreStartupWithStack + 420 at /Volumes/C= ase/UDK2018/OvmfPkg/Sec/SecMain.c:821:3 frame 19: 0xfffd1e14 SecMain:ProcessLibraryConstructorList + 0 at /Volum= es/Case/UDK2018/Build/OvmfX64/DEBUG_XCODE5/X64/OvmfPkg/Sec/SecMain/DEBUG/Au= toGen.c:201 (lldb) l /Volumes/Case/UDK2018/OvmfPkg/Library/PlatformBootManagerLib/BdsP= latform.c:1646 1646 (Timeout - TimeoutRemain) * 100 / Timeout, 1647 0 1648 ); 1649 } 1650 1651 /** 1652 The function is called when no boot option could be launched= , 1653 including platform recovery options and options pointing to = applications 1654 built into firmware volumes. 1655 (lldb) l /Volumes/Case/UDK2018/MdeModulePkg/Universal/BdsDxe/BdsEntry.c:34= 4 344 PlatformBootManagerWaitCallback (0); 345 DEBUG ((EFI_D_INFO, "[Bds]Exit the waiting!\n")); 346 } 347 348 /** 349 Attempt to boot each boot option in the BootOptions array. 350 351 @param BootOptions Input boot option array. 352 @param BootOptionCount Input boot option count. 353 @param BootManagerMenu Input boot manager menu. 354 Thanks, Andrew Fish --_000_4A89E2EF3DFEDB4C8BFDE51014F606A14E515A05SHSMSX104ccrcor_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Andrew:

  I verify the change (2de1f611= be06ded3a59726a4052a9039be7d459b MdeModulePkg/BdsDxe: Also call PlatformBoo= tManagerWaitCallback on 0) in Emulator.

  It works, because PCD va= lue is set to 10 in Emulator.

 

  Before this change, if TimeOu= t PCD is zero, BdsEntry doesn’t call PlatformBootManagerWaitCallback(= ).

  After this change,  = ;if TimeOut PCD is zero, BdsEntry still call PlatformBootManagerWaitCallbac= k(). So, it trigs this issue. I agree your fix.

 

Pete:

  Will you contribute the patch= to fix this hang issue in OVMF?

 

Thanks

Liming

From: devel@edk2.groups.io [mailto:= devel@edk2.groups.io] On Behalf Of Andrew Fish via Groups.Io
Sent: Friday, October 11, 2019 5:12 AM
To: devel@edk2.groups.io; Pete Batard <pete@akeo.ie>
Subject: [edk2-devel] OVMF is crashing for me in master<= /span>

 

This is my flavor of OVMF:  build -p Ovmf= Pkg/OvmfPkgX64.dsc -a X64 -t XCODE5

 

It looks like I took an exception? Is it expected t= hat an unhandled exception just hang in a dead loop? I would have expected = some serial  output about the failure? 

 

Looks like a divide by zero exception. The exceptio= n context has PC and FP so I can manually walk the stack. Yikes I see = PlatformBootManagerWaitCallback() will fault if PcdPlatformBootTimeOut= is zero? 

/Volumes/Case/UDK2018(master)<= /span>>git grep PcdPlatformBootTimeOut -- *.dsc

ArmVirtPkg/ArmVirtQemu.dsc:194:  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3

ArmVirtPkg/ArmVirtQemuKernel.dsc= :191:  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3

ArmVirtPkg/ArmVirtXen.dsc:122:  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3

EmulatorPkg/EmulatorPkg.dsc:236:  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|10

OvmfPkg/OvmfPkgIa32.dsc:<= span style=3D"font-size:8.5pt;font-family:"Menlo",serif;color:bla= ck">541:  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0

OvmfPkg/OvmfPkgIa32X64.dsc:553:  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0

OvmfPkg/OvmfPkgX64.dsc:552:  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0

OvmfPkg/OvmfXen.dsc:= 470:  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|0

UefiPayloadPkg/UefiPayloadPkgIa32.dsc:344:  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3

UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc:345:  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3



OK PcdPlatformBootTimeOut is zero on Ovmf, so = how did this ever work?



Ahhh gotom.... 

/Volumes/Case/UDK2018(master)<= /span>>git blame -L344,344  /Volumes/Case/UDK2018/MdeModulePkg/Universal/BdsDxe= /BdsEntry.c 

2de1f611be0 (Pete Batard 2019-09-25 23:50:05 &= #43;0800 344)   PlatformBootManagerWaitCallback (0);=



This call causes a divide by zero if PcdPlatfo= rmBootTimeOut =3D=3D 0. 

 

This fixes my crash:

diff --git a/OvmfPkg/Library/PlatformBootMa= nagerLib/BdsPlatform.c b/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform= .c

index 70df6b841a..d6ae43e900 100644<= /b>

--- a/OvmfPkg/Library/PlatformBootManagerLi= b/BdsPlatform.c

+++ b/OvmfPkg/Library/PlatformB= ootManagerLib/BdsPlatform.c

@@ -1634,6 +1634,11 @@ Plat= formBootManagerWaitCallback (

   UINT16       =                     &nbs= p; Timeout;

 

   Timeout =3D PcdGet16 (PcdPlatform= BootTimeOut);

+  if (Timeout =3D=3D  0) {

+    Timeout =3D 100;

+  } else {

+    Timeout =3D (Timeout - Ti= meoutRemain) * 100 / Timeout;

+  }

 

   Black.Raw =3D 0x00000000;

   White.Raw =3D 0x00FFFFFF;

@@ -1643,7 +1648,7 @@ Plat= formBootManagerWaitCallback (

     Black.Pixel,

     L"Start boot option&q= uot;,

     White.Pixel,

-    (Timeout - TimeoutRemain) * 1= 00 / Timeout,

+    Timeout,

     0

     );

 }



 

lldb debugger output:

 

(lldb) bt

* thread #1, stop reason =3D signal SIGTRAP

  * frame #0: 0x0000000007b58a70 CpuDxe.d= ll:CpuDeadLoop() + 13 at /Volumes/Case/UDK2018/MdePkg/Library/BaseLib/C= puDeadLoop.c:31

    frame #1: 0x0000000007b61222 Cpu= Dxe.dll:CommonExceptionHandlerWorker() + 674 at /Volumes/Case/UDK2018/U= efiCpuPkg/Library/CpuExceptionHandlerLib/PeiDxeSmmCpuException.c:115

    frame #2: 0x0000000007b61624 Cpu= Dxe.dll:CommonExceptionHandler() + 36 at /Volumes/Case/UDK2018/UefiCpuP= kg/Library/CpuExceptionHandlerLib/DxeException.c:40

    frame #3: 0x0000000007b5ff26 Cpu= Dxe.dll:HasErrorCode() + 230

(lldb) fr sel 1

frame #1: 0x0000000007b61222 CpuDxe.dll:Common= ExceptionHandlerWorker() + 674 at /Volumes/Case/UDK2018/UefiCpuPkg/Libr= ary/CpuExceptionHandlerLib/PeiDxeSmmCpuException.c:115

   91             (ExternalInterruptHandler[ExceptionType]) (ExceptionType, Sy= stemContext);

   92           } else if (ExceptionType < CPU_EXCEPTION_NUM) {=

   93             //

   94             // Get Spinlock to display CPU information

   95             //

   96             while (!AcquireSpinLockOrFail (&am= p;ExceptionHandlerData->DisplayMessageSpinLock)) {

   97               CpuPause ();

   98             }

   99             //

   100        = ;   // Initialize the serial port before dumping.

   101        = ;   //

   102        = ;   SerialPortInitialize ();

   103        = ;   //

   104        = ;   // Display ExceptionType, CPU information and Image = information

   105        = ;   //

   106        = ;   DumpImageAndCpuContent (ExceptionType, SystemContext);<= /span>

   107        = ;   //

   108        = ;   // Release Spinlock of output message

   109        = ;   //

   110        = ;   ReleaseSpinLock (&ExceptionHandlerData->DisplayMessageSpinL= ock);

   111        = ;   //

   112        = ;   // Enter a dead loop if needn't to execute old IDT h= andler further

   113        = ;   //

   114        = ;   if (ReservedVectors[ExceptionType].Attri= bute !=3D EFI_VECTOR_HANDOFF_HOOK_BEFORE) {

-> 115        &nbs= p;   CpuDeadLoop ();

   116        = ;   }

   117        = ; }

   118       }

   119      

(lldb) p ExceptionType

(EFI_EXCEPTION_TYPE) $0 =3D 0

(lldb) p SystemContext.SystemContextX64->Rip

(UINT64) $1 =3D 0x0000000007a9cc38<= /span>

(lldb) p SystemContext.SystemContextX64->Rbp

(UINT64) $2 =3D 0x0000000007e8fc20<= /span>

(lldb) efi_backtrace --pc 0x0000000007a9cc38 --frame 0x0000000007e8fc= 20 --symbols

  frame  0: 0x07a9cc38 BdsDxe:Platfo= rmBootManagerWaitCallback + 35 at /Volumes/Case/UDK2018/OvmfPkg/Library= /PlatformBootManagerLib/BdsPlatform.c:1646:37

  frame  1: 0x07a9e744 BdsDxe:BdsWai= t + 269 at /Volumes/Case/UDK2018/MdeModulePkg/Universal/BdsDxe/BdsEntry= .c:344:3

  frame  2: 0x07a9dff9 BdsDxe:BdsEnt= ry + 2620 at /Volumes/Case/UDK2018/MdeModulePkg/Universal/BdsDxe/BdsEnt= ry.c:1002:5

  frame  3: 0x07eb367d DxeCore:DxeMa= in + 2680 at /Volumes/Case/UDK2018/MdeModulePkg/Core/Dxe/DxeMain/DxeMai= n.c:544:3

  frame  4: 0x07e943cb DxeCore:_Modu= leEntryPoint + 20 at /Volumes/Case/UDK2018/MdePkg/Library/DxeCoreEntryP= oint/DxeCoreEntryPoint.c:48:3

  frame  5: 0x07edc947 DxeIpl.dll`As= mEnableCache

  frame  6: 0x07ee1e4e DxeIpl:HandOf= fToDxeCore + 509 at /Volumes/Case/UDK2018/MdeModulePkg/Core/DxeIplPeim/= X64/DxeLoadFunc.c:113:3

  frame  7: 0x07ee0604 DxeIpl:DxeLoa= dCore + 1354 at /Volumes/Case/UDK2018/MdeModulePkg/Core/DxeIplPeim/DxeL= oad.c:449:3

  frame  8: 0x07eeff2f PeiCore.dll`P= eiCore.cold.3 + 847

  frame  9: 0x07ee9d04 PeiCore:PeiCo= re + 163 at /Volumes/Case/UDK2018/MdeModulePkg/Core/Pei/PeiMain/PeiMain= .c:502:3

  frame 10: 0x0082c387 0x0082c387

  frame 11: 0x00825dd7 0x00825dd7

  frame 12: 0x0082ad27 0x0082ad27

  frame 13: 0x0082b3a8 0x0082b3a8

  frame 14: 0x0082bf23 0x0082bf23

  frame 15: 0x00825e24 0x00825e24

  frame 16: 0x00823af2 0x00823af2

  frame 17: 0xfffd1db8 SecMain:SecStartup= Phase2 + 67 at /Volumes/Case/UDK2018/OvmfPkg/Sec/SecMain.c:858:3

  frame 18: 0xfffd1d67 SecMain:SecCoreSta= rtupWithStack + 420 at /Volumes/Case/UDK2018/OvmfPkg/Sec/SecMain.c:821:= 3

  frame 19: 0xfffd1e14 SecMain:ProcessLib= raryConstructorList + 0 at /Volumes/Case/UDK2018/Build/OvmfX64/DEBUG_XC= ODE5/X64/OvmfPkg/Sec/SecMain/DEBUG/AutoGen.c:201

 

(lldb) l /Volumes/Case/UDK2018/OvmfPkg/Library/PlatformBootManagerLib= /BdsPlatform.c:1646

   1646         (Timeout - TimeoutRemain) * 100<= span style=3D"font-size:8.5pt;font-family:"Menlo",serif;color:bla= ck"> / Timeout,

   1647         0

   1648         );

   1649     }

   1650    

   1651     /**

   1652       The function is called when no boot option could be launched= ,

   1653       including platform recovery options and options pointing to = applications

   1654       built into firmware volumes.

   1655    

(lldb) l /Volumes/Case/UDK2018/MdeModulePkg/Universal/BdsDxe/BdsEntry= .c:344

   344        = ; PlatformBootManagerWaitCallback (0);=

   345        = ; DEBUG ((EFI_D_INFO, "[Bds]Exit the waiting!\n"));

   346       }

   347      

   348       /**

   349        = ; Attempt to boot each boot option in the BootOptions array.

   350      

   351        = ; @param BootOptions       Input boot option array.

   352        = ; @param BootOptionCount   Input boot option count.<= /p>

   353        = ; @param BootManagerMenu   Input boot manager menu.<= /p>

   354      

 

 

Thanks,

 

Andrew Fish

 

--_000_4A89E2EF3DFEDB4C8BFDE51014F606A14E515A05SHSMSX104ccrcor_--