Hi Larry,
Thanks for your detailed response. What you say correctly describes the current 
behavior. I'm asking why that behavior is desired, and suggesting that it is 
not desired. I believe there may be situations where you want a binary 
distributed driver, but a human-readable dependency expression.
Removing the python code I mentioned in my original message (ignoring [Depex] 
sections when only [Binaries] sections are present) allows a dependency section 
to be generated on the fly. An appropriate FDF statement will include the 
correct section.
- Justin

From: Hauch, Larry [mailto:larry.ha...@intel.com]
Sent: Tuesday, December 04, 2012 3:40 PM
To: Andrew Fish; edk2-devel@lists.sourceforge.net
Cc: edk2-buildtools-de...@lists.sourceforge.net
Subject: Re: [edk2-buildtools] [edk2] binary-only modules and [depex] sections

Hi Justin,

The EDK II tools should support a binary INF file that has both the drive and 
the compiled depex file in the [Binaries] section.
Using the PcAtChipsetPkg/PcatRealTimeClockRuntimeDex.inf as an example, a valid 
INF for the binary would looks like:
[Defines]
  INF_VERSION                = 0x00010016
  BASE_NAME                  = PcRtc
  FILE_GUID                  = 378D7B65-8DA9-4773-B6E4-A47826A833E1
  MODULE_TYPE                = DXE_RUNTIME_DRIVER
  VERSION_STRING             = 1.0

[Binaries.IA32]
  PE32|Ia32/PcRtc.efi
  DXE_DEPEX|Ia32/PcRtc.depex

The tools do not support building a source depex file without building the 
module from source.

The tools will ignore the sources section if a [Binaries] section does exist; 
so the following is not valid:
[Defines]
  INF_VERSION                = 0x00010016
  BASE_NAME                  = PcRtc
  FILE_GUID                  = 378D7B65-8DA9-4773-B6E4-A47826A833E1
  MODULE_TYPE                = DXE_RUNTIME_DRIVER
  VERSION_STRING             = 1.0
  DPX_SOURCE = myDepexSrc.depex

[Binaries.IA32]
  PE32|Ia32/PcRtc.efi

Nor can you specify a [Depex] section in an INF file that has the binary efi 
file. The following is also not valid
[Defines]
  INF_VERSION                = 0x00010016
  BASE_NAME                  = PcRtc
  FILE_GUID                  = 378D7B65-8DA9-4773-B6E4-A47826A833E1
  MODULE_TYPE                = DXE_RUNTIME_DRIVER
  VERSION_STRING             = 1.0

[Binaries.IA32]
  PE32|Ia32/PcRtc.efi

[Depex]
  gEfiVariableArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid

Cheers,
Larry


From: Andrew Fish [mailto:af...@apple.com]
Sent: Monday, December 03, 2012 3:25 PM
To: edk2-devel@lists.sourceforge.net
Cc: edk2-buildtools-de...@lists.sourceforge.net
Subject: Re: [edk2-buildtools] [edk2] binary-only modules and [depex] sections

Sounds like a bug to me.

Thanks,

Andrew

On Dec 3, 2012, at 3:00 PM, 
justin_johns...@dell.com<mailto:justin_johns...@dell.com> wrote:

Hi all,
I have some binary-only drivers with dependency expressions that are not being 
processed. These drivers are not UEFI model drivers.

I see in WorkspaceDatabase.py:
# If the module has only Binaries and no Sources, then ignore [Depex]
if self.Sources == None or self.Sources == []:
    if self.Binaries != None and self.Binaries != []:
        return self._Depex
The intent being obvious from the comment (comes from SVN revision 2135 of 
edk2-buildtools repo). My question is, why are the [Depex] sections ignored 
from INFs with only binaries? I don't see in any of the EDKII documentation 
where this is stated. Is this a behavior that could be changed?


--
Justin Johnson
Platform Software Engineer
Dell, Inc.

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to