Date
1 - 1 of 1
[EXTERNAL] Re: [edk2-discuss] How to link DXE_DRIVER from UEFI_APPLICATION?
Bret Barkelew <bret.barkelew@...>
Yeah, DxeTcg2PhysicalPresence could use some TLC. It’s a weird catch-all of stuff which should be refactored.
I’ve had it on my backlog forever.
- Bret
From: Laszlo Ersek via groups.io<mailto:lersek@...>
Sent: Friday, February 5, 2021 7:47 AM
To: joseph@...<mailto:joseph@...>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Subject: [EXTERNAL] Re: [edk2-discuss] How to link DXE_DRIVER from UEFI_APPLICATION?
On 02/05/21 15:44, joseph via [] wrote:
Let's see if there are some other library INF files that have a similar issue:
$ git grep -l -w UefiDriverEntryPoint -- '*inf' \
| xargs grep -l -w LIBRARY_CLASS
MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
SecurityPkg/Library/DxeTcg2PhysicalPresenceLib/DxeTcg2PhysicalPresenceLib.inf
SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.inf
OK, so the bugged library INF files are:
- CustomizedDisplayLib.inf
- DxeTcg2PhysicalPresenceLib.inf
- DxeTcgPhysicalPresenceLib.inf
Can you please file a bugzilla ticket at <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2F&data=04%7C01%7Cbret.barkelew%40microsoft.com%7Ca5ed4a8cc1d74674a28708d8c9ed6450%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637481368714208086%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=cUIKRsSv9HUywTgoybjzT%2FnavUVC4JLdCleHnpxjtg4%3D&reserved=0>, about this? Those library instances should not depend on the UefiDriverEntryPoint class.
When you delete UefiDriverEntryPoint from DxeTcg2PhysicalPresenceLib.inf, you actually fix a bug. And therefore the build process advances a bit further, before it runs into *another* problem.
This particular (new) problem is that your platform DSC file does not resolve the Tcg2PpVendorLib class to a library instance. DxeTcg2PhysicalPresenceLib depends on Tcg2PpVendorLib, but the build process doesn't know what instance of Tcg2PpVendorLib to use. Edk2 offers a Null instance of this library:
SecurityPkg/Library/Tcg2PpVendorLibNull/Tcg2PpVendorLibNull.inf
So in your DSC file, you could use:
[LibraryClasses]
Tcg2PpVendorLib|SecurityPkg/Library/Tcg2PpVendorLibNull/Tcg2PpVendorLibNull.inf
Hope this helps,
Laszlo
I’ve had it on my backlog forever.
- Bret
From: Laszlo Ersek via groups.io<mailto:lersek@...>
Sent: Friday, February 5, 2021 7:47 AM
To: joseph@...<mailto:joseph@...>; discuss@edk2.groups.io<mailto:discuss@edk2.groups.io>
Subject: [EXTERNAL] Re: [edk2-discuss] How to link DXE_DRIVER from UEFI_APPLICATION?
On 02/05/21 15:44, joseph via [] wrote:
Hi, LaszloOuch. That's a bug in "DxeTcg2PhysicalPresenceLib.inf", no doubt.
Thank you for reply.
My app does not use UefiDriverEntryPoint.
UefiDriverEntryPoint exists in DxeTcg2PhysicalPresenceLib.inf.
Let's see if there are some other library INF files that have a similar issue:
$ git grep -l -w UefiDriverEntryPoint -- '*inf' \
| xargs grep -l -w LIBRARY_CLASS
MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
SecurityPkg/Library/DxeTcg2PhysicalPresenceLib/DxeTcg2PhysicalPresenceLib.inf
SecurityPkg/Library/DxeTcgPhysicalPresenceLib/DxeTcgPhysicalPresenceLib.inf
OK, so the bugged library INF files are:
- CustomizedDisplayLib.inf
- DxeTcg2PhysicalPresenceLib.inf
- DxeTcgPhysicalPresenceLib.inf
Can you please file a bugzilla ticket at <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2F&data=04%7C01%7Cbret.barkelew%40microsoft.com%7Ca5ed4a8cc1d74674a28708d8c9ed6450%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637481368714208086%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=cUIKRsSv9HUywTgoybjzT%2FnavUVC4JLdCleHnpxjtg4%3D&reserved=0>, about this? Those library instances should not depend on the UefiDriverEntryPoint class.
If forcibly delete UefiDriverEntryPoint from DxeTcg2PhysicalPresenceLib.inf, Another error occurs.Wait, that's a different case.Instance of library class [Tcg2PpVendorLib] is not found
When you delete UefiDriverEntryPoint from DxeTcg2PhysicalPresenceLib.inf, you actually fix a bug. And therefore the build process advances a bit further, before it runs into *another* problem.
This particular (new) problem is that your platform DSC file does not resolve the Tcg2PpVendorLib class to a library instance. DxeTcg2PhysicalPresenceLib depends on Tcg2PpVendorLib, but the build process doesn't know what instance of Tcg2PpVendorLib to use. Edk2 offers a Null instance of this library:
SecurityPkg/Library/Tcg2PpVendorLibNull/Tcg2PpVendorLibNull.inf
So in your DSC file, you could use:
[LibraryClasses]
Tcg2PpVendorLib|SecurityPkg/Library/Tcg2PpVendorLibNull/Tcg2PpVendorLibNull.inf
Hope this helps,
Laszlo
Adding the Tcg2PpVendorLib again gives me the "error 1001" error.
========== MyApp.inf =========
[LibraryClasses]
UefiApplicationEntryPoint
UefiLib
PcdLib
OpensslLib
Tpm2DeviceLibTcg2
Tcg2PhysicalPresenceLib
========== DxeTcg2PhysicalPresenceLib.inf =========
[LibraryClasses]
MemoryAllocationLib
UefiLib
UefiBootServicesTableLib
UefiDriverEntryPoint
UefiRuntimeServicesTableLib
BaseMemoryLib
DebugLib
PrintLib
HiiLib
HobLib
Tpm2CommandLib
Tcg2PpVendorLib