On 8 April 2015 at 13:33, Ard Biesheuvel <ard.biesheu...@linaro.org> wrote: > On 8 April 2015 at 13:13, Ard Biesheuvel <ard.biesheu...@linaro.org> wrote: >> On 8 April 2015 at 13:12, Olivier Martin <olivier.mar...@arm.com> wrote: >>> Is the reason why it does not work is dependency issue on other PEIM >>> library? >> >> MODULE_TYPE must be either 'SEC' or 'PEIM' and not both. If we are >> going to use the library in modules of both flavors, it would be >> cleaner just to use BASE >> > > Actually, looking at it again, shouldn't it just be a PEIM module type? > I don't think any modules depend on MemoryInitPeiLib at all, let alone > any SEC modules. >
Hmm, or maybe they do. Apologies for thinking/typing out loud like this btw :-) What confused me is that the name was wrong in the MemoryInitPeiLib.inf file. But PrePi does depend on it, and is a SEC module >> >>> Yes, using 'BASE' might fix the issue. >>> >>> -----Original Message----- >>> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org] >>> Sent: 08 April 2015 12:07 >>> To: Olivier Martin >>> Cc: edk2-devel@lists.sourceforge.net; ler...@redhat.com; >>> roy.fr...@linaro.org; leif.lindh...@linaro.org >>> Subject: Re: [PATCH v3 1/5] ArmPlatformPkg: do not fulfil MemoryInitPeiLib >>> dependency directly via .c file >>> >>> On 8 April 2015 at 13:03, Olivier Martin <olivier.mar...@arm.com> wrote: >>>> That's correct! >>>> >>> >>> Hmm, that doesn't seem to work. >>> >>> Would there be any problem with making it a 'BASE' module type? >>> And making it a general dependency in [LibraryClasses]' rather than for SEC >>> or PEIM specifically? >>> >>>> -----Original Message----- >>>> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org] >>>> Sent: 08 April 2015 12:01 >>>> To: Olivier Martin >>>> Cc: edk2-devel@lists.sourceforge.net; ler...@redhat.com; >>>> roy.fr...@linaro.org; leif.lindh...@linaro.org >>>> Subject: Re: [PATCH v3 1/5] ArmPlatformPkg: do not fulfil >>>> MemoryInitPeiLib dependency directly via .c file >>>> >>>> On 8 April 2015 at 12:58, Olivier Martin <olivier.mar...@arm.com> wrote: >>>>> I have just had a look to understand the reason. And here is the >>>>> reason... ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf is a PEIM >>>>> module (MODULE_TYPE = PEIM); while all the declarations you quoted before >>>>> are for the SEC module: >>>>> >>>>> [LibraryClasses.common.SEC] >>>>> MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf >>>>> >>>>> Moving >>>>> `MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf` >>>>> from [LibraryClasses.common.SEC] to [LibraryClasses.common.SEC, >>>>> LibraryClasses.common.PEIM] should fix the issue. >>>>> >>>> >>>> OK, but that also implies that MemoryInitPeiLib.inf's module type should >>>> become 'SEC PEIM' not just 'SEC', right? >>>> >>>>> -----Original Message----- >>>>> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org] >>>>> Sent: 08 April 2015 11:55 >>>>> To: Olivier Martin >>>>> Cc: edk2-devel@lists.sourceforge.net; ler...@redhat.com; >>>>> roy.fr...@linaro.org; leif.lindh...@linaro.org >>>>> Subject: Re: [PATCH v3 1/5] ArmPlatformPkg: do not fulfil >>>>> MemoryInitPeiLib dependency directly via .c file >>>>> >>>>> On 8 April 2015 at 12:46, Olivier Martin <olivier.mar...@arm.com> wrote: >>>>>> This patch breaks the following builds: >>>>>> - ArmPlatformPkg/ArmPlatformPkg.dsc >>>>>> - ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb-RTSM-A9x2.dsc >>>>>> - ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.dsc >>>>>> - (...) >>>>>> >>>>>> Always with the same issue: >>>>>> ArmPlatformPkg/ArmPlatformPkg.dsc(...): error 4000: Instance of library >>>>>> class [MemoryInitPeiLib] is not found >>>>>> in [ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf] [ARM] >>>>>> consumed by module >>>>>> [ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf] >>>>>> >>>>> >>>>> Hmm, that is surprising: >>>>> >>>>> $ git grep MemoryInitPeiLib >>>>> ArmPlatformPkg/ArmJunoPkg/ArmJuno.dsc: >>>>> MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf >>>>> ArmPlatformPkg/ArmPlatformPkg-2ndstage.dsc: >>>>> MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf >>>>> ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb.dsc.inc: >>>>> MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf >>>>> ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc: >>>>> MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf >>>>> >>>>> produces hits for the associated platforms, so I did not look at the >>>>> .DSCs in detail. ArmVExpress-FVP-AArch64 does build, btw >>>>> >>>>> I will update the patch so that all .DSCs are updated with the missing >>>>> library reference. >>>>> >>>>> -- >>>>> Ard. >>>>> >>>>> >>>>> >>>>> >>>>>> -----Original Message----- >>>>>> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org] >>>>>> Sent: 08 April 2015 08:11 >>>>>> To: edk2-devel@lists.sourceforge.net; ler...@redhat.com; Olivier >>>>>> Martin >>>>>> Cc: roy.fr...@linaro.org; leif.lindh...@linaro.org; Ard Biesheuvel >>>>>> Subject: [PATCH v3 1/5] ArmPlatformPkg: do not fulfil >>>>>> MemoryInitPeiLib dependency directly via .c file >>>>>> >>>>>> MemoryInitPeim short-circuits its MemoryInitPeiLib dependency by >>>>>> including the .c file directly. This prevents us from having a special >>>>>> implementation for ArmVirtualizationPkg that performs additional cache >>>>>> maintenance before enabling the MMU. So instead, make it depend on the >>>>>> library class. >>>>>> >>>>>> Contributed-under: TianoCore Contribution Agreement 1.0 >>>>>> Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org> >>>>>> --- >>>>>> ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualization.dsc.inc | 1 + >>>>>> ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf | 2 +- >>>>>> ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf | 2 +- >>>>>> 3 files changed, 3 insertions(+), 2 deletions(-) >>>>>> >>>>>> diff --git >>>>>> a/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualization.dsc.inc >>>>>> b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualization.dsc.inc >>>>>> index 51c163286d1f..b03616842f81 100644 >>>>>> --- a/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualization.dsc.inc >>>>>> +++ b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualization.dsc.inc >>>>>> @@ -77,6 +77,7 @@ >>>>>> >>>>>> ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerVirtCounterL >>>>>> ArmGenericTimerCounterLib|i >>>>>> b/ArmGenericTimerVirtCounterLib.inf >>>>>> >>>>>> >>>>>> PlatformPeiLib|ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformP >>>>>> PlatformPeiLib|e >>>>>> iLib/PlatformPeiLib.inf >>>>>> + >>>>>> + MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf >>>>>> >>>>>> EfiResetSystemLib|ArmPlatformPkg/ArmVirtualizationPkg/Library/ArmVir >>>>>> EfiResetSystemLib|t >>>>>> ualizationPsciResetSystemLib/ArmVirtualizationPsciResetSystemLib.inf >>>>>> >>>>>> # ARM PL031 RTC Driver >>>>>> diff --git a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf >>>>>> b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf >>>>>> index 1e5b93e8a507..7f1976d60c31 100755 >>>>>> --- a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf >>>>>> +++ b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf >>>>>> @@ -17,7 +17,7 @@ >>>>>> FILE_GUID = 55ddb6e0-70b5-11e0-b33e-0002a5d5c51b >>>>>> MODULE_TYPE = SEC >>>>>> VERSION_STRING = 1.0 >>>>>> - LIBRARY_CLASS = PlatformPeiLib >>>>>> + LIBRARY_CLASS = MemoryInitPeiLib >>>>>> >>>>>> [Sources] >>>>>> MemoryInitPeiLib.c >>>>>> diff --git a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf >>>>>> b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf >>>>>> index 6374b63f8524..2c14a9c826ff 100755 >>>>>> --- a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf >>>>>> +++ b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf >>>>>> @@ -28,7 +28,6 @@ >>>>>> >>>>>> [Sources] >>>>>> MemoryInitPeim.c >>>>>> - MemoryInitPeiLib.c >>>>>> >>>>>> [Packages] >>>>>> MdePkg/MdePkg.dec >>>>>> @@ -43,6 +42,7 @@ >>>>>> HobLib >>>>>> ArmLib >>>>>> ArmPlatformLib >>>>>> + MemoryInitPeiLib >>>>>> >>>>>> [Guids] >>>>>> gEfiMemoryTypeInformationGuid >>>>>> -- >>>>>> 1.8.3.2 >>>>>> >>>>>> >>>>>> -- IMPORTANT NOTICE: The contents of this email and any attachments are >>>>>> confidential and may also be privileged. If you are not the intended >>>>>> recipient, please notify the sender immediately and do not disclose the >>>>>> contents to any other person, use it for any purpose, or store or copy >>>>>> the information in any medium. Thank you. >>>>>> >>>>>> ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, >>>>>> Registered in England & Wales, Company No: 2557590 ARM Holdings >>>>>> plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, >>>>>> Registered in England & Wales, Company No: 2548782 >>>>>> >>>>> >>>>> >>>>> -- IMPORTANT NOTICE: The contents of this email and any attachments are >>>>> confidential and may also be privileged. If you are not the intended >>>>> recipient, please notify the sender immediately and do not disclose the >>>>> contents to any other person, use it for any purpose, or store or copy >>>>> the information in any medium. Thank you. >>>>> >>>>> ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, >>>>> Registered in England & Wales, Company No: 2557590 ARM Holdings plc, >>>>> Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in >>>>> England & Wales, Company No: 2548782 >>>> >>>> >>>> -- IMPORTANT NOTICE: The contents of this email and any attachments are >>>> confidential and may also be privileged. If you are not the intended >>>> recipient, please notify the sender immediately and do not disclose the >>>> contents to any other person, use it for any purpose, or store or copy the >>>> information in any medium. Thank you. >>>> >>>> ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, >>>> Registered in England & Wales, Company No: 2557590 ARM Holdings plc, >>>> Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in >>>> England & Wales, Company No: 2548782 >>> >>> >>> -- IMPORTANT NOTICE: The contents of this email and any attachments are >>> confidential and may also be privileged. If you are not the intended >>> recipient, please notify the sender immediately and do not disclose the >>> contents to any other person, use it for any purpose, or store or copy the >>> information in any medium. Thank you. >>> >>> ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, >>> Registered in England & Wales, Company No: 2557590 >>> ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, >>> Registered in England & Wales, Company No: 2548782 ------------------------------------------------------------------------------ BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel