From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from nwk-aaemail-lapp03.apple.com (nwk-aaemail-lapp03.apple.com [17.151.62.68]) by mx.groups.io with SMTP id smtpd.web11.2776.1570741932854316454 for ; Thu, 10 Oct 2019 14:12:13 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@apple.com header.s=20180706 header.b=ai66MW07; spf=pass (domain: apple.com, ip: 17.151.62.68, mailfrom: afish@apple.com) Received: from pps.filterd (nwk-aaemail-lapp03.apple.com [127.0.0.1]) by nwk-aaemail-lapp03.apple.com (8.16.0.27/8.16.0.27) with SMTP id x9ALBjM9024708; Thu, 10 Oct 2019 14:12:10 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=sender : from : content-type : mime-version : subject : message-id : date : to; s=20180706; bh=vbizOTgc8buIN150NwZeicv4eX1ZXnm9XW4WfhYgA1s=; b=ai66MW07qW1G5Dpphua4JXjT0EyLe5S2Ej41XCqpkRWSPN8brOc8hn9F1Vj98veCFITs +dPrmU/8j9nThquGyygQJNIqKuvdhtbW4d3oHEC4lEV6ig0zJIxAohC8bqZufP3OZEin r3ggGkshpGopvHiCdukYA8N3jJ2Mu6YF2FVetlmEiXS3LvAxqgSbx5OuvgaXGMyvGPYD kAjNTAhNfn8aNyoi49+LnuwmKbrHye9SAhyRHqp++W0VzkGIfTXVN7Wd1GzofB5BefrC ilUy1QZLFaDZOAepIf4nq+cQQdbsIpo575AVKgIBtzbQFryzAf2AA/s0e3VbfdFYGl+O yQ== Received: from ma1-mtap-s02.corp.apple.com (ma1-mtap-s02.corp.apple.com [17.40.76.6]) by nwk-aaemail-lapp03.apple.com with ESMTP id 2vfbdmgrrw-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Thu, 10 Oct 2019 14:12:09 -0700 Received: from nwk-mmpp-sz10.apple.com (nwk-mmpp-sz10.apple.com [17.128.115.122]) by ma1-mtap-s02.corp.apple.com (Oracle Communications Messaging Server 8.0.2.4.20190507 64bit (built May 7 2019)) with ESMTPS id <0PZ600LWVG88WXH0@ma1-mtap-s02.corp.apple.com>; Thu, 10 Oct 2019 14:12:09 -0700 (PDT) Received: from process_milters-daemon.nwk-mmpp-sz10.apple.com by nwk-mmpp-sz10.apple.com (Oracle Communications Messaging Server 8.0.2.4.20190507 64bit (built May 7 2019)) id <0PZ600F00FSGTA00@nwk-mmpp-sz10.apple.com>; Thu, 10 Oct 2019 14:12:09 -0700 (PDT) X-Va-A: X-Va-T-CD: 62353fba05c63b05307e574d05c60d0c X-Va-E-CD: dfc290585a6d5cf6df642ada108ba189 X-Va-R-CD: eb7ce35a407b9cec383834a0a0f9fd93 X-Va-CD: 0 X-Va-ID: 2dfbc0db-14fb-4142-bde2-0d6d6edd1747 X-V-A: X-V-T-CD: 62353fba05c63b05307e574d05c60d0c X-V-E-CD: dfc290585a6d5cf6df642ada108ba189 X-V-R-CD: eb7ce35a407b9cec383834a0a0f9fd93 X-V-CD: 0 X-V-ID: 11eb6b1f-5ef1-4332-82d4-91e2c1f4f461 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-10-10_07:,, signatures=0 Received: from [17.235.61.64] (unknown [17.235.61.64]) by nwk-mmpp-sz10.apple.com (Oracle Communications Messaging Server 8.0.2.4.20190507 64bit (built May 7 2019)) with ESMTPSA id <0PZ60058HG87ZQ10@nwk-mmpp-sz10.apple.com>; Thu, 10 Oct 2019 14:12:08 -0700 (PDT) Sender: afish@apple.com From: "Andrew Fish" MIME-version: 1.0 (Mac OS X Mail 13.0 \(3594.4.17\)) Subject: OVMF is crashing for me in master Message-id: Date: Thu, 10 Oct 2019 14:12:07 -0700 To: devel@edk2.groups.io, Pete Batard X-Mailer: Apple Mail (2.3594.4.17) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-10-10_07:,, signatures=0 Content-type: multipart/alternative; boundary="Apple-Mail=_0041C7A6-CDD0-439A-AB62-9C421BE269A7" --Apple-Mail=_0041C7A6-CDD0-439A-AB62-9C421BE269A7 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii This is my flavor of OVMF: build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -t = XCODE5 It looks like I took an exception? Is it expected that an unhandled = exception just hang in a dead loop? I would have expected some serial = output about the failure?=20 Looks like a divide by zero exception. The exception context has PC and = FP so I can manually walk the stack. Yikes I see = PlatformBootManagerWaitCallback() will fault if PcdPlatformBootTimeOut = is zero?=20 /Volumes/Case/UDK2018(master)>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"|gEfiGlobalVaria= bleGuid|0x0|10 OvmfPkg/OvmfPkgIa32.dsc: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....=20 /Volumes/Case/UDK2018(master)>git blame -L344,344 = /Volumes/Case/UDK2018/MdeModulePkg/Universal/BdsDxe/BdsEntry.c=20 2de1f611be0 (Pete Batard 2019-09-25 23:50:05 +0800 344) = PlatformBootManagerWaitCallback (0); This call causes a divide by zero if PcdPlatformBootTimeOut =3D=3D 0.=20 This fixes my crash: diff --git a/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c = b/OvmfPkg/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; =20 Timeout =3D PcdGet16 (PcdPlatformBootTimeOut); + if (Timeout =3D=3D 0) { + Timeout =3D 100; + } else { + Timeout =3D (Timeout - TimeoutRemain) * 100 / Timeout; + } =20 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/PeiDxeSmmC= puException.c:115 frame #2: 0x0000000007b61624 CpuDxe.dll:CommonExceptionHandler() + = 36 at = /Volumes/Case/UDK2018/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeExcepti= on.c:40 frame #3: 0x0000000007b5ff26 CpuDxe.dll:HasErrorCode() + 230 (lldb) fr sel 1 frame #1: 0x0000000007b61222 CpuDxe.dll:CommonExceptionHandlerWorker() + = 674 at = /Volumes/Case/UDK2018/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiDxeSmmC= puException.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->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); 107 // 108 // Release Spinlock of output message 109 // 110 ReleaseSpinLock = (&ExceptionHandlerData->DisplayMessageSpinLock); 111 // 112 // Enter a dead loop if needn't to execute old IDT handler = further 113 // 114 if (ReservedVectors[ExceptionType].Attribute !=3D = EFI_VECTOR_HANDOFF_HOOK_BEFORE) { -> 115 CpuDeadLoop (); 116 } 117 } 118 } 119 =09 (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 = /Volumes/Case/UDK2018/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c= :1646:37 frame 1: 0x07a9e744 BdsDxe:BdsWait + 269 at = /Volumes/Case/UDK2018/MdeModulePkg/Universal/BdsDxe/BdsEntry.c:344:3 frame 2: 0x07a9dff9 BdsDxe:BdsEntry + 2620 at = /Volumes/Case/UDK2018/MdeModulePkg/Universal/BdsDxe/BdsEntry.c:1002:5 frame 3: 0x07eb367d DxeCore:DxeMain + 2680 at = /Volumes/Case/UDK2018/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c:544:3 frame 4: 0x07e943cb DxeCore:_ModuleEntryPoint + 20 at = /Volumes/Case/UDK2018/MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.c= :48:3 frame 5: 0x07edc947 DxeIpl.dll`AsmEnableCache frame 6: 0x07ee1e4e DxeIpl:HandOffToDxeCore + 509 at = /Volumes/Case/UDK2018/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/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:SecStartupPhase2 + 67 at = /Volumes/Case/UDK2018/OvmfPkg/Sec/SecMain.c:858:3 frame 18: 0xfffd1d67 SecMain:SecCoreStartupWithStack + 420 at = /Volumes/Case/UDK2018/OvmfPkg/Sec/SecMain.c:821:3 frame 19: 0xfffd1e14 SecMain:ProcessLibraryConstructorList + 0 at = /Volumes/Case/UDK2018/Build/OvmfX64/DEBUG_XCODE5/X64/OvmfPkg/Sec/SecMain/D= EBUG/AutoGen.c:201 (lldb) l = /Volumes/Case/UDK2018/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c= :1646 1646 (Timeout - TimeoutRemain) * 100 / Timeout, 1647 0 1648 ); 1649 } 1650=09 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=09 (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 =09 348 /** 349 Attempt to boot each boot option in the BootOptions array. 350 =09 351 @param BootOptions Input boot option array. 352 @param BootOptionCount Input boot option count. 353 @param BootManagerMenu Input boot manager menu. 354 =09 Thanks, Andrew Fish --Apple-Mail=_0041C7A6-CDD0-439A-AB62-9C421BE269A7 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii This = is my flavor of OVMF:  build -p OvmfPkg/OvmfPkgX64.dsc -a X64 = -t XCODE5

It looks = like I took an exception? Is it expected that 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 exception 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)>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: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)>git = blame -L344,344  = /Volumes/Case/UDK2018/MdeModulePkg/Universal/BdsDxe/BdsEntry.c 
2de1f611be0 (Pete Batard 2019-09-25 23:50:05 +0800 344) =   PlatformBootManagerWaitCallback (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/OvmfPkg/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/PeiDxeSmmC= puException.c:115
    frame #2: = 0x0000000007b61624 CpuDxe.dll:CommonExceptionHandler() + 36 at = /Volumes/Case/UDK2018/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeExcepti= on.c:40
    frame #3: = 0x0000000007b5ff26 CpuDxe.dll:HasErrorCode() + 230
(lldb) fr sel = 1
frame #1: 0x0000000007b61222 = CpuDxe.dll:CommonExceptionHandlerWorker() + 674 at = /Volumes/Case/UDK2018/UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiDxeSmmC= puException.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->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);
   107   =   //
   108     // = Release Spinlock of output message
   109     //
   110   =   ReleaseSpinLock = (&ExceptionHandlerData->DisplayMessageSpinLock);
   111     //
   112   =   // Enter a dead loop if needn't to = execute old IDT handler further
   113     //
   114   =   if = (ReservedVectors[ExceptionType].Attribute !=3D = EFI_VECTOR_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 = /Volumes/Case/UDK2018/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c= :1646:37
  frame  1: 0x07a9e744 = BdsDxe:BdsWait + 269 at = /Volumes/Case/UDK2018/MdeModulePkg/Universal/BdsDxe/BdsEntry.c:344:3
  frame  2: 0x07a9dff9 BdsDxe:BdsEntry + 2620 at = /Volumes/Case/UDK2018/MdeModulePkg/Universal/BdsDxe/BdsEntry.c:1002:5
  frame  3: 0x07eb367d DxeCore:DxeMain + 2680 at = /Volumes/Case/UDK2018/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c:544:3=
  frame  4: 0x07e943cb DxeCore:_ModuleEntryPoint + = 20 at = /Volumes/Case/UDK2018/MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.c= :48:3
  frame  5: 0x07edc947 = DxeIpl.dll`AsmEnableCache
  = frame  6: 0x07ee1e4e DxeIpl:HandOffToDxeCore + 509 at = /Volumes/Case/UDK2018/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<= /div>
  frame  8: 0x07eeff2f PeiCore.dll`PeiCore.cold.3 + = 847
  frame  9: 0x07ee9d04 = PeiCore:PeiCore + 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:SecStartupPhase2 + 67 at = /Volumes/Case/UDK2018/OvmfPkg/Sec/SecMain.c:858:3
  frame 18: 0xfffd1d67 SecMain:SecCoreStartupWithStack + = 420 at = /Volumes/Case/UDK2018/OvmfPkg/Sec/SecMain.c:821:3
  frame 19: 0xfffd1e14 = SecMain:ProcessLibraryConstructorList + 0 at = /Volumes/Case/UDK2018/Build/OvmfX64/DEBUG_XCODE5/X64/OvmfPkg/Sec/SecMain/D= EBUG/AutoGen.c:201

(lldb) l = /Volumes/Case/UDK2018/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.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:344<= /div>
   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

= --Apple-Mail=_0041C7A6-CDD0-439A-AB62-9C421BE269A7--