From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from ma1-aaemail-dr-lapp03.apple.com (ma1-aaemail-dr-lapp03.apple.com [17.171.2.72]) by mx.groups.io with SMTP id smtpd.web12.1026.1589221662265249621 for ; Mon, 11 May 2020 11:27:43 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@apple.com header.s=20180706 header.b=e5lWc5CA; spf=pass (domain: apple.com, ip: 17.171.2.72, mailfrom: afish@apple.com) Received: from pps.filterd (ma1-aaemail-dr-lapp03.apple.com [127.0.0.1]) by ma1-aaemail-dr-lapp03.apple.com (8.16.0.42/8.16.0.42) with SMTP id 04BIQZL9004750; Mon, 11 May 2020 11:27:40 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=from : content-type : mime-version : subject : date : references : to : in-reply-to : message-id; s=20180706; bh=8Hz2TVfSGlWK9AeWGH1ApkmJORks9oHU/LMIW2CXaf4=; b=e5lWc5CAQTSPsj0Gh+tqA+t+b0JiQuYI/A0vKVnqxNAw+8wFVlc+wU3A2e7e7xgAUhzK r1gWT+W986QfQ4Jpdv/+eLD1h46f34glZjfYZgi6ukH2vxndFoEBaZe0jozyovUSiCVD 55d6dUeZLRJ5K8whiKCXa9gCupY2lzfmZSCT0lntoexcgUjBgbgd2BrTbK1yLI8N6SCV 6Dyi9UXZ0Qho6NlCk50P8s6OiE+cv2ndaILnFWxnMrIQDzyyU327YKOfqlhEP+K9jAY2 /GW+mfGSh+jtkNxIRfIlnH26lrAJhkz1oxMa0VI/FkabQvjuEc4Al2A1mH7ZqOtnuV06 0A== Received: from rn-mailsvcp-mta-lapp01.rno.apple.com (rn-mailsvcp-mta-lapp01.rno.apple.com [10.225.203.149]) by ma1-aaemail-dr-lapp03.apple.com with ESMTP id 30wugw3d42-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Mon, 11 May 2020 11:27:40 -0700 Received: from rn-mailsvcp-mmp-lapp01.rno.apple.com (rn-mailsvcp-mmp-lapp01.rno.apple.com [17.179.253.14]) by rn-mailsvcp-mta-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.5.20200312 64bit (built Mar 12 2020)) with ESMTPS id <0QA600CUDJA2NF80@rn-mailsvcp-mta-lapp01.rno.apple.com>; Mon, 11 May 2020 11:27:39 -0700 (PDT) Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp01.rno.apple.com by rn-mailsvcp-mmp-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.5.20200312 64bit (built Mar 12 2020)) id <0QA600F00ITFO400@rn-mailsvcp-mmp-lapp01.rno.apple.com>; Mon, 11 May 2020 11:27:39 -0700 (PDT) X-Va-A: X-Va-T-CD: 678bf7de5df0d9ff994f556fd1b44182 X-Va-E-CD: 848bc3a1d442e814acc1040c50652eff X-Va-R-CD: ab1ed5dc70be5a7d65d4f47b227d8b1b X-Va-CD: 0 X-Va-ID: 9d8f86ec-b188-4249-ae22-a1aef6b2d7f6 X-V-A: X-V-T-CD: 678bf7de5df0d9ff994f556fd1b44182 X-V-E-CD: 848bc3a1d442e814acc1040c50652eff X-V-R-CD: ab1ed5dc70be5a7d65d4f47b227d8b1b X-V-CD: 0 X-V-ID: b927435f-450e-41b4-9601-f4bbdcb08741 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216,18.0.676 definitions=2020-05-11_09:2020-05-11,2020-05-11 signatures=0 Received: from [17.235.21.247] (unknown [17.235.21.247]) by rn-mailsvcp-mmp-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.5.20200312 64bit (built Mar 12 2020)) with ESMTPSA id <0QA60083CJA2FS00@rn-mailsvcp-mmp-lapp01.rno.apple.com>; Mon, 11 May 2020 11:27:39 -0700 (PDT) From: "Andrew Fish" MIME-version: 1.0 (Mac OS X Mail 13.0 \(3594.4.17\)) Subject: Re: [edk2-devel] Help with Logo Display Problems Date: Mon, 11 May 2020 11:27:37 -0700 References: To: devel@edk2.groups.io, jim slaughter In-reply-to: Message-id: <091DE113-3D5A-49D0-983B-DFCE56E970C9@apple.com> X-Mailer: Apple Mail (2.3594.4.17) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216,18.0.676 definitions=2020-05-11_09:2020-05-11,2020-05-11 signatures=0 Content-type: multipart/alternative; boundary="Apple-Mail=_016F94BB-9961-4E30-B83B-67605436B2D0" --Apple-Mail=_016F94BB-9961-4E30-B83B-67605436B2D0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Jim, Sorry wrote this yesterday and did not hit send.... All my example are from OVMF using QEMU on a Mac. You should be able to ru= n OVMF too as a way to learn things.=20 > On May 9, 2020, at 8:00 PM, jim slaughter = wrote: >=20 > Hello, >=20 > I have followed previous directions provided and the build works ok. I b= uilt an IA32 generic binary. > I cannot tell if the logo code is working since I cannot see the logo on= my display. >=20 > I do see a file in the ~/src/edk2-stable202002/Build/MdeModule/DEBUG_GCC= 5/IA32/$ directory, called LogoDxe.efi and another called LogoDxe. This lea= ds me to believe that the Logo entry point is in the image. >=20 So that means it got built.=20 > After the build I did find an empty map file? How do I get a map of the = build? >=20 You can generate a build log by adding '-y build.log' to the build command= . Here is a OVMF example [1]. If you just want to inspect a FD or FV (Firmware Device is the ROM image c= omposed of Firmware Volumes and other bits). Here is an OVMF example. Here = is an OVMF example [2]. > How do I debug this problem? I have no debugger. Can I freely use DEBUG(= (...........)); . >=20 In general yes. The DEBUG_ERROR level should always print out.=20 You should see this in the serial output when the driver loads: Loading driver at 0x00007ABE000 EntryPoint=3D0x00007AC02BB LogoDxe.efi It failed for me as Xcode currently does not support injecting resource se= ctions in to PE/COFF images. I'm just mention this as I can't show you the = expected output, but your toolchain should do the right thing.=20 HII Image Package with logo not found in PE/COFF resource section Error: Image at 00007ABE000 start failed: Unsupported But that brings up the point of what LogoDxe is doing. If we look at the d= river entry point, called InitializeLogo [3], it does the following: 1) Locates some Hii protocols 2) Grabes the gEfiHiiPackageListProtocolGuid from the drivers image handle= . a) The logo.bmp file was injected into the resource section of the PE/CO= FF image and this data is made availible when the driver loads.=20 3) Puts the Logo (Hii Package List) into the Hii database 4) Publishes a protocol (API) that has a member function that returns the = logo.=20 So loading the LogoDxe driver just publishes an API that lets some one els= e grab a logo. OK so lets take a look [4].=20 1) When the gEdkiiPlatformLogoProtocolGuid is installed you should see som= ething like this on the serial log (XXX is me being lazy and it will be upp= er case): InstallProtocolInterface: 53cd299f-2bc1-11D2-40c0-XXXXXXXX 721C040 2) Looks like the consumer of gEdkiiPlatformLogoProtocolGuid is BootLogoLi= b. It looks like BootLogoEnableLogo() does the magic.=20 a) BootLogoEnableLogo() is called from the PlatformBootManagerLib [5] b) So lets see who is using that lib [6]. c) It looks like PlatformBootManagerAfterConsole() calls BootLogoEnableL= ogo (). d) And that is called from BdsEntry().=20 The BDS driver loads earlier in the boot process, but the BdsEntry is only= called after all the drivers have dispatched. So look for this in the seri= al output to see when BdsEntry() is called : [Bds] Entry.. The other thing to look out for is there can be more than one copy of a li= brary [7]. You platforms *.DSC file picks the library instance your platfor= m is using [8]. In the lingo the Library Class is the definition of the API= , the public .h file, and the Library Instance is which library you chose t= o use.=20 > Any help please. I am stuck. Thank you. [1] build -p OvmfPkg/OvmfPkgX64.dsc -a X64 -t XCODE5 -y build.log [2] VolInfo Build/OvmfX64/DEBUG_XCODE5/FV/OVMF_CODE.fd=20 [3] If look in LogoDxe.inf you will see `ENTRY_POINT = =3D InitializeLogo` and this is how we find the entry point of the driver.= [4] git grep -i gEdkiiPlatformLogoProtocolGuid MdeModulePkg/Include/Protocol/PlatformLogo.h:65:extern EFI_GUID gEdkiiPlat= formLogoProtocolGuid; MdeModulePkg/Library/BootLogoLib/BootLogoLib.c:66: Status =3D gBS->Locat= eProtocol (&gEdkiiPlatformLogoProtocolGuid, NULL, (VOID **) &PlatformLogo); MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf:49: gEdkiiPlatformLogoPr= otocolGuid ## CONSUMES MdeModulePkg/Logo/Logo.c:148: &gEdkiiPlatformLogoProtoc= olGuid, &mPlatformLogo, MdeModulePkg/Logo/LogoDxe.inf:49: gEdkiiPlatformLogoProtocolGuid ## P= RODUCES MdeModulePkg/MdeModulePkg.dec:570: gEdkiiPlatformLogoProtocolGuid =3D { 0= x53cd299f, 0x2bc1, 0x40c0, { 0x8c, 0x07, 0x23, 0xf6, 0x4f, 0xdb, 0x30, 0xe0= } } [5] git grep BootLogoEnableLogo ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c:682: Status =3D BootLo= goEnableLogo (); ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBm.c:814: BootLogoEnabl= eLogo (); EmulatorPkg/Library/PlatformBmLib/PlatformBm.c:270: BootLogoEnableLogo = (); MdeModulePkg/Include/Library/BootLogoLib.h:21:BootLogoEnableLogo ( MdeModulePkg/Library/BootLogoLib/BootLogoLib.c:34:BootLogoEnableLogo ( OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c:1504: BootLogoEnable= Logo (); [6] git grep PlatformBootManagerLib -- *.inf | grep -v "=3D" | grep -v "#" MdeModulePkg/Universal/BdsDxe/BdsDxe.inf:53: PlatformBootManagerLib [7] git grep PlatformBootManagerLib | grep "LIBRARY_CLASS" ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf:19: LIBR= ARY_CLASS =3D PlatformBootManagerLib|DXE_DRIVER ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf:18: = LIBRARY_CLASS =3D PlatformBootManagerLib|DXE_DRIVER EmulatorPkg/Library/PlatformBmLib/PlatformBmLib.inf:19: LIBRARY_CLASS = =3D PlatformBootManagerLib|DXE_DRIVER MdeModulePkg/Library/PlatformBootManagerLibNull/PlatformBootManagerLibNull= .inf:16: LIBRARY_CLASS =3D PlatformBootManagerLib|DXE_DRI= VER OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf:15: LIB= RARY_CLASS =3D PlatformBootManagerLib|DXE_DRIVER UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf:1= 5: LIBRARY_CLASS =3D PlatformBootManagerLib|DXE_DRIVER [8] git grep PlatformBootManagerLib -- *.dsc ArmPkg/ArmPkg.dsc:141: ArmPkg/Library/PlatformBootManagerLib/PlatformBoot= ManagerLib.inf ArmVirtPkg/ArmVirtQemu.dsc:71: PlatformBootManagerLib|ArmVirtPkg/Library/= PlatformBootManagerLib/PlatformBootManagerLib.inf ArmVirtPkg/ArmVirtQemuKernel.dsc:69: PlatformBootManagerLib|ArmVirtPkg/Li= brary/PlatformBootManagerLib/PlatformBootManagerLib.inf ArmVirtPkg/ArmVirtXen.dsc:48: PlatformBootManagerLib|ArmPkg/Library/Platf= ormBootManagerLib/PlatformBootManagerLib.inf EmulatorPkg/EmulatorPkg.dsc:95: PlatformBootManagerLib|EmulatorPkg/Librar= y/PlatformBmLib/PlatformBmLib.inf MdeModulePkg/MdeModulePkg.dsc:87: PlatformBootManagerLib|MdeModulePkg/Lib= rary/PlatformBootManagerLibNull/PlatformBootManagerLibNull.inf MdeModulePkg/MdeModulePkg.dsc:305: MdeModulePkg/Library/PlatformBootManag= erLibNull/PlatformBootManagerLibNull.inf OvmfPkg/OvmfPkgIa32.dsc:362: PlatformBootManagerLib|OvmfPkg/Library/Platf= ormBootManagerLib/PlatformBootManagerLib.inf OvmfPkg/OvmfPkgIa32X64.dsc:366: PlatformBootManagerLib|OvmfPkg/Library/Pl= atformBootManagerLib/PlatformBootManagerLib.inf OvmfPkg/OvmfPkgX64.dsc:366: PlatformBootManagerLib|OvmfPkg/Library/Platfo= rmBootManagerLib/PlatformBootManagerLib.inf OvmfPkg/OvmfXen.dsc:306: PlatformBootManagerLib|OvmfPkg/Library/PlatformB= ootManagerLib/PlatformBootManagerLib.inf SignedCapsulePkg/SignedCapsulePkg.dsc:84: PlatformBootManagerLib|MdeModul= ePkg/Library/PlatformBootManagerLibNull/PlatformBootManagerLibNull.inf UefiPayloadPkg/UefiPayloadPkgIa32.dsc:179: PlatformBootManagerLib|UefiPay= loadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc:180: PlatformBootManagerLib|Uefi= PayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf Thanks, Andrew Fish PS If we broke out BaseTools parser for edk2 build config files we could b= uild a smart git grep. Something like: $ edk2-git-grep -p OvmfPkg/OvmfPkgX64.dsc Then you only see files that are used by your project.=20 > --=20 > Jim Slaughter >=20 --Apple-Mail=_016F94BB-9961-4E30-B83B-67605436B2D0 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii
Jim,

Sorry wrote this yesterday and = did not hit send....

All my example are= from OVMF using QEMU on a Mac. You should be able to run OVMF too as a way= to learn things. 

On May 9, 2020, at 8:00 PM, jim= slaughter <j= im.slaughter@sage-micro.com> wrote:

Hello,

I have followed previous direct= ions provided and the build works ok. I built an IA32 generic binary.
=
I cannot tell if the logo code is working since I cannot se= e the logo on my display.

I do see a file in the ~/src/edk2-stable202002/Build/MdeModul= e/DEBUG_GCC5/IA32/$ directory, called LogoDxe.efi and another called LogoDx= e. This leads me to believe that the Logo entry point is in the image.=

So that means it got built. 

After the build I did find an empty map file? How = do I get a map of the build?

You can generate a build log by adding '-y build.log' to the build co= mmand. Here is a OVMF example [1].

If y= ou just want to inspect a FD or FV (Firmware Device is the ROM image compos= ed of Firmware Volumes and other bits). Here is an OVMF example. Here is an= OVMF example [2].

How do I debug this problem? I have no debugger. Can I freely use DEBUG((= ...........)); .


In general yes. The DEBUG_ERR= OR level should always print out. 

You should see this in the serial output when the driver loads:
=
Loading driver at 0x00007ABE000 EntryPoint=3D0x00007AC02BB LogoDx= e.efi

It fa= iled for me as Xcode currently does not support injecting resource sections= in to PE/COFF images. I'm just mention this as I can't show you the expect= ed output, but your toolchain should do the right thing. 
HII Image Package with logo not found in PE/COFF r= esource section
Error: Image at 00007ABE000 start fail= ed: Unsupported

But that brings up the point of what LogoDxe is doing. If we look at= the driver entry point, called InitializeLogo [3], it does the follow= ing:
1) Locates some Hii protocols
2) Grabes the gEfiHiiPackageListProtocolGuid from the drivers image = handle.
  a) The logo.bmp file was injected into = the resource section of the PE/COFF image and this data is made availible w= hen the driver loads. 
3) Puts the Logo (Hii Pack= age List) into the Hii database
4) Publishes a protoco= l (API) that has a member function that returns the logo. 

So loading the LogoDxe drive= r just publishes an API that lets some one else grab a logo.

OK so lets take a look [4].&nbs= p;
1) When the gEdkiiPlatformLogoProtocolGuid is = installed you should see something like this on the serial log (XXX is me b= eing lazy and it will be upper case):
    In= stallProtocolInterface: 53cd299f<= /span>-2bc1-11D2-40c0-XXXXXXXX  721C040

2) Looks like the consumer of g= EdkiiPlatformLogoProtocolGuid is BootLogoLib. It looks like BootLogoEn= ableLogo() does the magic. 
  a) BootLogoEna= bleLogo() is called from the PlatformBootManagerLib [5]
  b) So lets see who is using that lib [6].
  c) It looks like PlatformBootManagerAfterConsole() calls = ;BootLogoEnableLogo ().
  d) And that is called f= rom BdsEntry(). 

The BDS driver loads earlier in the boot process, but the BdsEntr= y is only called after all the drivers have dispatched. So look for this in= the serial output to see when BdsEntry() is called :
= [Bds] Entry..

The other thing to look out for is there = can be more than one copy of a library [7]. You platforms *.DSC file picks = the library instance your platform is using [8]. In the lingo the Library C= lass is the definition of the API, the public .h file, and the Library Inst= ance is which library you chose to use. 

Any help please. I am stuck. Thank you.<= /div>


[1] build -p OvmfPkg/OvmfPkgX64.dsc -a X64= -t XCODE5 -y build.log

[2] &nbs= p;VolInfo  Build/OvmfX64/D= EBUG_XCODE5/FV/OVMF_CODE.fd 

[3] If look in LogoDxe.inf you will see `ENTRY_POINT &nb= sp;                  =3D Initi= alizeLogo` and this is how we find the entry point of the driver.  

[4] git grep -i gEdkiiPlat= formLogoProtocolGuid
MdeModulePkg/Include/Protocol/PlatformLogo.h:65:extern EFI_GUID gEdkiiPlatformLogoProtocolGuid;
MdeModulePkg/Library/BootLog= oLib/BootLogoLib.c:66:  St= atus  =3D gBS->LocateProtocol (&gEdkiiPlatformLogoProtocolGuid, NULL, (VOID **) &PlatformLogo)= ;
MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf:4= 9:  gEdkiiPlatf= ormLogoProtocolGuid              =   ## CONSUMES
MdeModulePkg/Logo/Logo.c:148<= span style=3D"font-variant-ligatures: no-common-ligatures; color: #38b9c7" = class=3D"">:                &nbs= p;   &gEdkiiPlatformLogoProtocolG= uid, &mPlatformLogo,
MdeModulePkg/Logo/LogoDxe.inf:49:  gEd= kiiPlatformLogoProtocolGuid     ## PRODUCES
MdeModulePkg/M= deModulePkg.dec:570:  gEdkiiPlatformLogoProtocolGuid =3D { 0x= 53cd299f, 0x2bc1, 0x40c0, { 0x8c, 0x07, 0x23, 0xf6, 0x4f, 0xdb, 0x30, 0xe0 = } }

[5] git grep = BootLogoEnableLogo
ArmPkg/Library/PlatformBootManagerLib/PlatformBm.c<= span style=3D"font-variant-ligatures: no-common-ligatures; color: #38b9c7" = class=3D"">:682:  Status =3D BootLogoEnableLogo ();
ArmVirtPkg/Library/PlatformBoo= tManagerLib/PlatformBm.c:814:&n= bsp; BootLogoEnableLogo ();<= /div>
EmulatorP= kg/Library/PlatformBmLib/PlatformBm.c:270:    BootLogoEnableLo= go ();
MdeModulePkg/Include/Library/BootLogoLib.h:<= /span>21:BootLogoEnableLogo= (
MdeModulePkg/Library/BootLogoLib/BootLogoLib.c:<= /span>34:BootLogoEnableLogo= (
OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c:1504:  BootLogoEnableLogo ();

[6] git grep PlatformBootManagerLib -- *.inf | grep -v "=3D= " | grep -v "#"
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf:53:  PlatformBo= otManagerLib

[7] = git grep PlatformBootManagerLib | grep "LIBRARY_CLASS"
ArmPkg/Library/Platfor= mBootManagerLib/PlatformBootManagerLib.inf:19:  LIBRARY_CLASS  &n= bsp;               =3D PlatformBootManag= erLib|DXE_DRIVER
ArmVirtPkg/Library/PlatformBootManagerLib/PlatformBootManage= rLib.inf:18:  LIBRARY_CLASS            &= nbsp;     =3D PlatformBootManagerLib|DXE_DRIVER
EmulatorPkg/Library= /PlatformBmLib/PlatformBmLib.inf:19:  LIBRARY_CLASS     = ;             =3D PlatformBootManagerLib|DXE_= DRIVER
MdeModulePkg/Library/PlatformBootManagerLibNull/PlatformBootManagerL= ibNull.inf:16:  LIBRARY_CLASS           =       =3D PlatformBootManagerLib|DXE_DRIVER
OvmfPkg/Librar= y/PlatformBootManagerLib/PlatformBootManagerLib.inf:15:  LIBRARY_CLASS=                   =3D Platform= BootManagerLib|DXE_DRIVER
UefiPayloadPkg/Library/PlatformBootManagerLib/Platf= ormBootManagerLib.inf:15:  LIBRARY_CLASS        &n= bsp;         =3D PlatformBootManagerLib|DXE_DRIVER

[8] git grep PlatformBootManagerLib -- *.dsc
Arm= Pkg/ArmPkg.dsc:141:  ArmPkg/Library/PlatformBootMa= nagerLib/PlatformBootManagerLib= .inf
ArmVirtPkg/ArmVirtQemu.dsc= :71:&n= bsp; PlatformBootManagerLib|ArmVirt= Pkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
ArmVirtPkg/ArmVirtQemuKernel.dsc:69:  = PlatformBootManagerLib|ArmVirtPkg/Library/PlatformBootManagerLib/Platf= ormBootManagerLib.inf
ArmVirtPkg/A= rmVirtXen.dsc:48:<= /span>  PlatformBootManagerLib= |ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
EmulatorPkg/EmulatorPkg.dsc:95:  PlatformBootManagerLib|EmulatorPkg/Library/PlatformBmLib/PlatformBmLib.inf
MdeModulePkg/MdeModuleP= kg.dsc:87:  PlatformBootManagerLib|MdeModulePkg/Library/PlatformBootManagerLibNull/PlatformBootManagerLibNull.inf
<= div style=3D"margin: 0px; font-stretch: normal; font-size: 11px; line-heigh= t: normal; font-family: Menlo; color: rgb(0, 0, 0);" class=3D"">MdeModulePkg/M= deModulePkg.dsc:305:  MdeM= odulePkg/Library/PlatformBootManagerLibNull/PlatformBootManagerLibN= ull.inf
OvmfPkg/OvmfPkgIa32.dsc:362:  PlatformBootManagerLib|OvmfPkg/Library/PlatformBootManagerLib/= PlatformBootManagerLib.inf
OvmfPkg= /OvmfPkgIa32X64.dsc:366:  PlatformBootManagerLib|OvmfPkg/Library/PlatformBootManagerL= ib/PlatformBootManagerLib.inf
OvmfPkg/OvmfPkgX64.dsc:366:  <= b class=3D"">PlatformBootManagerLib|OvmfPkg/Library/= PlatformBootManagerLib/PlatformBootManagerLib.inf
OvmfPkg/OvmfXen.dsc:306:  PlatformBootManagerLib|OvmfPkg/Library/PlatformBootManagerL= ib/PlatformBootManagerLib.inf
SignedCapsulePkg/SignedCapsulePkg.dsc:84:  PlatformB= ootManagerLib|MdeModulePkg/Library/= PlatformBootManagerLibNull/Platform= BootManagerLibNull.inf
UefiPayloadPkg/UefiPayloadPkgIa32.dsc:179:  PlatformBootManagerLib|UefiPayloadPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
UefiPayloadPkg/UefiPayloadPkgIa32X= 64.dsc:180:  PlatformBootManagerLib|UefiPayloadPkg/Library/<= /span>PlatformBootManagerLib/PlatformBootManagerLib.inf


=

Thanks,

= Andrew Fish

PS If we broke out BaseTool= s parser for edk2 build config files we could build a smart git grep. Somet= hing like:
$ edk2-git-grep -p OvmfPkg/OvmfPkgX64.dsc

Then you only see files that are used by your = project. 

--
=
Jim Slaughter

--Apple-Mail=_016F94BB-9961-4E30-B83B-67605436B2D0--