On Aug 29, 2013, at 4:16 PM, Chip Ueltschey <[email protected]> wrote:

> So...that means that you cannot specify in the INF file that the PcdType 
> should be Dynamic?

Yes in the INF you can only specify could, not should. 

> -chip
> 
> 
> On Thu, Aug 29, 2013 at 3:07 PM, Andrew Fish <[email protected]> wrote:
> 
> On Aug 29, 2013, at 2:41 PM, Chip Ueltschey <[email protected]> wrote:
> 
>> Thanks, 
>> 
>> I am still struggling with what the right thing is, though.
>> It seems to me that if the driver is the one to use the PCD in a way that 
>> requires that this PCD resolve to a Dynamic type (not a FixedAtBuild type).
> 
> The INF file needs to describe the form that is used in the code:
> FixedPcdGet8()                        [FixedPcd]
> PatchPcdGet8()                        [PatchPcd]
> PcdGet8()                             [Pcd]
> PcdGetEx8()                           [PcdEx]
> 
> [Pcd] is the recommended usage as it is more flexible. 
> 
>> And if the DEC file provided options for the PCD, i.e. 
>> [PcdsFixedAtBuild,PcdsPatchableInModule,PcdsDynamic] like is referenced 
>> earlier.
>> Then the INF file ought to be the one to restrict the possible PcdType for 
>> this PCD.
> 
> It does
> 
>> But in the INF file this PCD is in a [Pcd] section, which in the INF 
>> specification is the correct section for Dynamic types, but in this case the 
>> PcdType is not being resovled to PcdsDynamic but rather to PcdsFixedAtBuild.
> 
> Sorry this is all my fault. Bad names, well overloaded names. The Dynamic 
> form in the module does not mean Dynamic must be used. So a better name would 
> have been something like PcdAuto. Dynamic in the module [Pcd] means the 
> AutoGen.c/AutoGen.h get to decide the form, and this choice is made in the 
> DSC file. 
> 
>> 
>> In this case there was no reference to the PCD in a DSC file, but shouldn't 
>> the type get resolved by the INF, since it used a [Pcd] section?
>> 
>> -chip
>> 
>> 
>> 
>> On Wed, Aug 28, 2013 at 8:21 PM, Zeng, Star <[email protected]> wrote:
>> Hi Chip,
>> 
>>  
>> 
>> FixedAtBuild PCD:
>> 
>> The value of this PCD type is determined
>> 
>> at build time and is stored in the code section of a module’s PE image.
>> 
>>  
>> 
>> Yes, the PCD is required not to be configured as FixedAtBuild, if a driver 
>> that wants to do a set on the PCD.
>> 
>>  
>> 
>>  
>> 
>> Thanks.
>> 
>> Star
>> 
>> From: Chip Ueltschey [mailto:[email protected]] 
>> Sent: Thursday, August 29, 2013 10:42 AM
>> To: [email protected]
>> Subject: Re: [edk2] Mixed Section Types for PCD
>> 
>>  
>> 
>> Ok, interesting, thanks.
>> 
>>  
>> 
>> What if I have a driver that wants to do a set on the PCD.
>> 
>> The driver can't do that if the build is configured to use the PCD as 
>> FixedAtBuild.
>> 
>> Is there any way to detect this in the C code, or does this driver just 
>> require that the PCD not be configured as FixedAtBuild?
>> 
>>  
>> 
>> -chip
>> 
>>  
>> 
>> On Wed, Aug 28, 2013 at 5:51 PM, Andrew Fish <[email protected]> wrote:
>> 
>>  
>> 
>>  
>> 
>> On Aug 28, 2013, at 5:31 PM, Tim Lewis <[email protected]> wrote:
>> 
>> 
>> 
>> 
>> Chip –
>> 
>>  
>> 
>> It is legal. The types that are listed in the .dec file limit the types that 
>> a .dsc file can use. If none is specified in the .dsc file, then the first 
>> one will be used by default. So, for example, you may want to allow a .dsc 
>> file to support either Dynamic, DynamicEx or FixedAtBuild. So the .dec file 
>> lists all three. But if the .dsc file tries to use Patchable, it will fail.
>> 
>>  
>> 
>>  
>> 
>> This is the best way to think about it. Lets say I'm building for a ATM that 
>> does not have setup. In my DSC file I'll set a lot of the PCDs to 
>> FixedAtBuild. But some PC OEM that supports over-clockers may want to to 
>> make a large number of parameters configurable in setup. The concept of PCD 
>> is the driver has these generic hook points for configuration, but the 
>> platform builder gets to chose what knobs get exposed. In this example the 
>> CPU and Chipset drivers code does not have to change between the zero setup 
>> platform and the uber setup platform. That is the concept behind allowing 
>> the platform to chose the type of the PCD.  
>> 
>> 
>> 
>> 
>> So Set will not work on FixedAtBuild, right, because it is defined as CONST. 
>> So you need to change the type in the .dsc file to Dynamic or DynamicEx or 
>> Patchable (actually, I’m not sure if Patchable generates a CONST or not)
>> 
>>  
>> 
>>  
>> 
>> Yes it does but Patchable is for a binary and the patching is done by a 
>> build tool. 
>> 
>>  
>> 
>> Thanks,
>> 
>>  
>> 
>> Andrew Fish
>> 
>> 
>> 
>> 
>> Tim
>> 
>>  
>> 
>> From: Chip Ueltschey [mailto:[email protected]] 
>> Sent: Wednesday, August 28, 2013 5:26 PM
>> To: [email protected]
>> Subject: [edk2] Mixed Section Types for PCD
>> 
>>  
>> 
>> Is it legal to do this in a DEC file?
>> 
>> [PcdsFixedAtBuild,PcdsPatchableInModule,PcdsDynamic]
>> 
>>  
>> 
>> That seems suspect since a PcdsFixedAtBuild type will not allow set, but a 
>> PcdsDynamic will allow set.
>> 
>> What is AutoGen supposed to do?
>> 
>> Currently, I have an error where the C code wants to set a PCD in this 
>> section.
>> 
>>  
>> 
>> Thanks,
>> 
>> -chip
>> 
>> ------------------------------------------------------------------------------
>> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
>> Discover the easy way to master current and previous Microsoft technologies
>> and advance your career. Get an incredible 1,500+ hours of step-by-step
>> tutorial videos with LearnDevNow. Subscribe today and save!
>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk_______________________________________________
>> edk2-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>> 
>>  
>> 
>> 
>> ------------------------------------------------------------------------------
>> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
>> Discover the easy way to master current and previous Microsoft technologies
>> and advance your career. Get an incredible 1,500+ hours of step-by-step
>> tutorial videos with LearnDevNow. Subscribe today and save!
>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
>> _______________________________________________
>> edk2-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>> 
>>  
>> 
>> 
>> ------------------------------------------------------------------------------
>> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
>> Discover the easy way to master current and previous Microsoft technologies
>> and advance your career. Get an incredible 1,500+ hours of step-by-step
>> tutorial videos with LearnDevNow. Subscribe today and save!
>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
>> _______________________________________________
>> edk2-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>> 
>> 
>> ------------------------------------------------------------------------------
>> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
>> Discover the easy way to master current and previous Microsoft technologies
>> and advance your career. Get an incredible 1,500+ hours of step-by-step
>> tutorial videos with LearnDevNow. Subscribe today and save!
>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk_______________________________________________
>> edk2-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
> 
> 
> ------------------------------------------------------------------------------
> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
> Discover the easy way to master current and previous Microsoft technologies
> and advance your career. Get an incredible 1,500+ hours of step-by-step
> tutorial videos with LearnDevNow. Subscribe today and save!
> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
> 
> 
> ------------------------------------------------------------------------------
> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
> Discover the easy way to master current and previous Microsoft technologies
> and advance your career. Get an incredible 1,500+ hours of step-by-step
> tutorial videos with LearnDevNow. Subscribe today and save!
> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk_______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to