Tim,

Even if a PCD is only accessed at runtime, it must be access by a runtime FW 
module, which means it must be listed in the INF for the runtime FW module.

What is use case in which a PCD is only accessed by a non FW component and how 
would such a component access the PCD?

The PCD database takes up space in the FLASH, so the default behavior of the 
build tools is to  only include the PCDs that are actually accessed by the set 
of modules that are included in the build.

Best regards,

Mike
From: Tim Lewis [mailto:[email protected]]
Sent: Friday, August 09, 2013 8:59 AM
To: [email protected]
Subject: Re: [edk2] PCD Database Issue #3: Build-Time Pruning Makes PCDs 
Disappear

Liming -

The root question is: what criteria is used to include PCDs in the PCD 
database? Currently there is no way to include PCDs in the database unless each 
one is listed in an INF. And there is no documentation to this effect.

In my opinion, any Dynamic, since it is possible that the PCD will be accessed 
at runtime without using any PCD macros.

Tim

From: Gao, Liming [mailto:[email protected]]
Sent: Thursday, August 08, 2013 10:49 PM
To: [email protected]<mailto:[email protected]>
Subject: Re: [edk2] PCD Database Issue #3: Build-Time Pruning Makes PCDs 
Disappear

Tim:
  This is like a feature request on generating PCD DataBase to include 
DynamicExPcd. This may need more discussion to figure out the way on which PCD 
will be included. Any DynamicEx PCD defined in Package DEC file? Or those 
DynamicEx PCD used in Platform DSC file?

Thanks
Liming
From: Tim Lewis [mailto:[email protected]]
Sent: Tuesday, August 06, 2013 1:45 AM
To: [email protected]<mailto:[email protected]>
Subject: [edk2] PCD Database Issue #3: Build-Time Pruning Makes PCDs Disappear

An undocumented feature of the EDK2 build system prunes PCD entries from the 
PCD database if no INF refers to them. This causes problems when PCD accesses 
happen purely at runtime using generated PCD token numbers (i.e. the token 
number is some form of 0x2000+X) or when PCD tokens are meant to be discovered 
by searching through certain GUID (i.e. using GetNextToken() with a specific 
GUID returns all PCDs associated with it). Currently, in order to work around 
this, every time we create this type of PCD in the project's .dec fie, we must 
also add it to an .inf.

I understand the value of auto-pruning. Currently INFs do not have a way to 
disable references to PCDs that are not used because of feature flags. But 
there needs to be some way to turn off this undocumented behavior.

Tim
------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to