* [PATCH] EmbeddedPkg: Allow DXE_DRIVER to depend on NvVarStoreFormattedLib
@ 2019-04-25 9:18 Marcin Wojtas
2019-04-25 11:04 ` Ard Biesheuvel
0 siblings, 1 reply; 5+ messages in thread
From: Marcin Wojtas @ 2019-04-25 9:18 UTC (permalink / raw)
To: devel
Cc: leif.lindholm, ard.biesheuvel, mw, jsd, jaz, kostap, Jici.Gao,
feng.tian, michael.d.kinney, liming.gao, lersek
Some modules (such as FaultTolerantWriteDxe) use the FlashNvStorage
PCDs (PcdFlashNvStorageFtw*). In case the flash contents are not
mapped in memory, the module loading order of the FVB driver
may become important.
To handle above, this patch allows to hook the dependency of
desired DXE_DRIVER type module in the .DSC file via
NvVarStoreFormattedLib NULL resolution.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Marcin Wojtas <mw@semihalf.com>
---
EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf b/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
index fefc311..98a0049 100644
--- a/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
+++ b/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
@@ -39,8 +39,8 @@
#
# The matching DEPEX section below will generate the EFI_SECTION_PEI_DEPEX,
# EFI_SECTION_DXE_DEPEX or EFI_SECTION_MM_DEPEX leaf section for the PEIM
-# (EFI_FV_FILETYPE_PEIM), DXE_RUNTIME_DRIVER (EFI_FV_FILETYPE_DRIVER), or
+# (EFI_FV_FILETYPE_PEIM), DXE_RUNTIME_DRIVER/DXE_DRIVER (EFI_FV_FILETYPE_DRIVER), or
# DXE_SMM_DRIVER (EFI_FV_FILETYPE_MM) module, respectively.
#
-[Depex.common.PEIM, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_SMM_DRIVER]
+[Depex.common.PEIM, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_DRIVER, Depex.common.DXE_SMM_DRIVER]
gEdkiiNvVarStoreFormattedGuid
--
2.7.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] EmbeddedPkg: Allow DXE_DRIVER to depend on NvVarStoreFormattedLib
2019-04-25 9:18 [PATCH] EmbeddedPkg: Allow DXE_DRIVER to depend on NvVarStoreFormattedLib Marcin Wojtas
@ 2019-04-25 11:04 ` Ard Biesheuvel
2019-04-26 17:02 ` Laszlo Ersek
0 siblings, 1 reply; 5+ messages in thread
From: Ard Biesheuvel @ 2019-04-25 11:04 UTC (permalink / raw)
To: Marcin Wojtas
Cc: edk2-devel-groups-io, Leif Lindholm, Jan Dąbroś,
Grzegorz Jaszczyk, Kostya Porotchkin, Jici Gao, Tian, Feng,
Kinney, Michael D, Gao, Liming, Laszlo Ersek
On Thu, 25 Apr 2019 at 11:18, Marcin Wojtas <mw@semihalf.com> wrote:
>
> Some modules (such as FaultTolerantWriteDxe) use the FlashNvStorage
> PCDs (PcdFlashNvStorageFtw*). In case the flash contents are not
> mapped in memory, the module loading order of the FVB driver
> may become important.
>
> To handle above, this patch allows to hook the dependency of
> desired DXE_DRIVER type module in the .DSC file via
> NvVarStoreFormattedLib NULL resolution.
>
> Contributed-under: TianoCore Contribution Agreement 1.1
This line is no longer required, so you can drop it in the future.
Note that the licensing terms have changed accordingly: by
contributing patches under the new license terms, you are basically
granting the same IP rights you were granting before by adhering to
the TianoCore Contribution Agreement, so nothing has really changed.
However, it is your *own* responsibility to confirm that I am not
misrepresenting anything here, so please check the repository for the
license changes.
> Signed-off-by: Marcin Wojtas <mw@semihalf.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Pushed as b9d4847ec258..20029ca22baa
Thanks,
> ---
> EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf b/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
> index fefc311..98a0049 100644
> --- a/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
> +++ b/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
> @@ -39,8 +39,8 @@
> #
> # The matching DEPEX section below will generate the EFI_SECTION_PEI_DEPEX,
> # EFI_SECTION_DXE_DEPEX or EFI_SECTION_MM_DEPEX leaf section for the PEIM
> -# (EFI_FV_FILETYPE_PEIM), DXE_RUNTIME_DRIVER (EFI_FV_FILETYPE_DRIVER), or
> +# (EFI_FV_FILETYPE_PEIM), DXE_RUNTIME_DRIVER/DXE_DRIVER (EFI_FV_FILETYPE_DRIVER), or
> # DXE_SMM_DRIVER (EFI_FV_FILETYPE_MM) module, respectively.
> #
> -[Depex.common.PEIM, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_SMM_DRIVER]
> +[Depex.common.PEIM, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_DRIVER, Depex.common.DXE_SMM_DRIVER]
> gEdkiiNvVarStoreFormattedGuid
> --
> 2.7.4
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] EmbeddedPkg: Allow DXE_DRIVER to depend on NvVarStoreFormattedLib
2019-04-25 11:04 ` Ard Biesheuvel
@ 2019-04-26 17:02 ` Laszlo Ersek
2019-04-26 23:38 ` Laszlo Ersek
0 siblings, 1 reply; 5+ messages in thread
From: Laszlo Ersek @ 2019-04-26 17:02 UTC (permalink / raw)
To: Ard Biesheuvel, Marcin Wojtas
Cc: edk2-devel-groups-io, Leif Lindholm, Jan Dąbroś,
Grzegorz Jaszczyk, Kostya Porotchkin, Jici Gao, Tian, Feng,
Kinney, Michael D, Gao, Liming
On 04/25/19 13:04, Ard Biesheuvel wrote:
> On Thu, 25 Apr 2019 at 11:18, Marcin Wojtas <mw@semihalf.com> wrote:
>>
>> Some modules (such as FaultTolerantWriteDxe) use the FlashNvStorage
>> PCDs (PcdFlashNvStorageFtw*). In case the flash contents are not
>> mapped in memory, the module loading order of the FVB driver
>> may become important.
>>
>> To handle above, this patch allows to hook the dependency of
>> desired DXE_DRIVER type module in the .DSC file via
>> NvVarStoreFormattedLib NULL resolution.
>>
>> Contributed-under: TianoCore Contribution Agreement 1.1
>
> This line is no longer required, so you can drop it in the future.
>
> Note that the licensing terms have changed accordingly: by
> contributing patches under the new license terms, you are basically
> granting the same IP rights you were granting before by adhering to
> the TianoCore Contribution Agreement, so nothing has really changed.
> However, it is your *own* responsibility to confirm that I am not
> misrepresenting anything here, so please check the repository for the
> license changes.
>
>> Signed-off-by: Marcin Wojtas <mw@semihalf.com>
>
> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>
> Pushed as b9d4847ec258..20029ca22baa
patch looks good to me as well, thanks
>
> Thanks,
>> ---
>> EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf b/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
>> index fefc311..98a0049 100644
>> --- a/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
>> +++ b/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
>> @@ -39,8 +39,8 @@
>> #
>> # The matching DEPEX section below will generate the EFI_SECTION_PEI_DEPEX,
>> # EFI_SECTION_DXE_DEPEX or EFI_SECTION_MM_DEPEX leaf section for the PEIM
>> -# (EFI_FV_FILETYPE_PEIM), DXE_RUNTIME_DRIVER (EFI_FV_FILETYPE_DRIVER), or
>> +# (EFI_FV_FILETYPE_PEIM), DXE_RUNTIME_DRIVER/DXE_DRIVER (EFI_FV_FILETYPE_DRIVER), or
>> # DXE_SMM_DRIVER (EFI_FV_FILETYPE_MM) module, respectively.
>> #
>> -[Depex.common.PEIM, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_SMM_DRIVER]
>> +[Depex.common.PEIM, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_DRIVER, Depex.common.DXE_SMM_DRIVER]
>> gEdkiiNvVarStoreFormattedGuid
>> --
>> 2.7.4
>>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] EmbeddedPkg: Allow DXE_DRIVER to depend on NvVarStoreFormattedLib
2019-04-26 17:02 ` Laszlo Ersek
@ 2019-04-26 23:38 ` Laszlo Ersek
2019-04-27 9:17 ` Marcin Wojtas
0 siblings, 1 reply; 5+ messages in thread
From: Laszlo Ersek @ 2019-04-26 23:38 UTC (permalink / raw)
To: Ard Biesheuvel, Marcin Wojtas
Cc: edk2-devel-groups-io, Leif Lindholm, Jan Dąbroś,
Grzegorz Jaszczyk, Kostya Porotchkin, Jici Gao, Tian, Feng,
Kinney, Michael D, Gao, Liming
On 04/26/19 19:02, Laszlo Ersek wrote:
> On 04/25/19 13:04, Ard Biesheuvel wrote:
>> On Thu, 25 Apr 2019 at 11:18, Marcin Wojtas <mw@semihalf.com> wrote:
>>>
>>> Some modules (such as FaultTolerantWriteDxe) use the FlashNvStorage
>>> PCDs (PcdFlashNvStorageFtw*). In case the flash contents are not
>>> mapped in memory, the module loading order of the FVB driver
>>> may become important.
>>>
>>> To handle above, this patch allows to hook the dependency of
>>> desired DXE_DRIVER type module in the .DSC file via
>>> NvVarStoreFormattedLib NULL resolution.
>>>
>>> Contributed-under: TianoCore Contribution Agreement 1.1
>>
>> This line is no longer required, so you can drop it in the future.
>>
>> Note that the licensing terms have changed accordingly: by
>> contributing patches under the new license terms, you are basically
>> granting the same IP rights you were granting before by adhering to
>> the TianoCore Contribution Agreement, so nothing has really changed.
>> However, it is your *own* responsibility to confirm that I am not
>> misrepresenting anything here, so please check the repository for the
>> license changes.
>>
>>> Signed-off-by: Marcin Wojtas <mw@semihalf.com>
>>
>> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>>
>> Pushed as b9d4847ec258..20029ca22baa
>
> patch looks good to me as well, thanks
Hmm, don't know how I missed it, but the INF file still has:
LIBRARY_CLASS = NvVarStoreFormattedLib|PEIM DXE_RUNTIME_DRIVER DXE_SMM_DRIVER
I don't understand why BaseTools don't catch that, when the lib instance is hooked into a DXE_DRIVER.
... Perhaps because the "hooking" uses the "NULL class", and the above restriction list only applies to the NvVarStoreFormattedLib class (which is ultimately never used)?
I'm not sure; still for consistency's sake, I think we should add DXE_DRIVER to LIBRARY_CLASS too.
Thanks
Laszlo
>
>>
>> Thanks,
>>> ---
>>> EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf b/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
>>> index fefc311..98a0049 100644
>>> --- a/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
>>> +++ b/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
>>> @@ -39,8 +39,8 @@
>>> #
>>> # The matching DEPEX section below will generate the EFI_SECTION_PEI_DEPEX,
>>> # EFI_SECTION_DXE_DEPEX or EFI_SECTION_MM_DEPEX leaf section for the PEIM
>>> -# (EFI_FV_FILETYPE_PEIM), DXE_RUNTIME_DRIVER (EFI_FV_FILETYPE_DRIVER), or
>>> +# (EFI_FV_FILETYPE_PEIM), DXE_RUNTIME_DRIVER/DXE_DRIVER (EFI_FV_FILETYPE_DRIVER), or
>>> # DXE_SMM_DRIVER (EFI_FV_FILETYPE_MM) module, respectively.
>>> #
>>> -[Depex.common.PEIM, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_SMM_DRIVER]
>>> +[Depex.common.PEIM, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_DRIVER, Depex.common.DXE_SMM_DRIVER]
>>> gEdkiiNvVarStoreFormattedGuid
>>> --
>>> 2.7.4
>>>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] EmbeddedPkg: Allow DXE_DRIVER to depend on NvVarStoreFormattedLib
2019-04-26 23:38 ` Laszlo Ersek
@ 2019-04-27 9:17 ` Marcin Wojtas
0 siblings, 0 replies; 5+ messages in thread
From: Marcin Wojtas @ 2019-04-27 9:17 UTC (permalink / raw)
To: Laszlo Ersek
Cc: Ard Biesheuvel, edk2-devel-groups-io, Leif Lindholm,
Jan Dąbroś, Grzegorz Jaszczyk, Kostya Porotchkin,
Jici Gao, Tian, Feng, Kinney, Michael D, Gao, Liming
Hi Laszlo,
sob., 27 kwi 2019 o 01:38 Laszlo Ersek <lersek@redhat.com> napisał(a):
>
> On 04/26/19 19:02, Laszlo Ersek wrote:
> > On 04/25/19 13:04, Ard Biesheuvel wrote:
> >> On Thu, 25 Apr 2019 at 11:18, Marcin Wojtas <mw@semihalf.com> wrote:
> >>>
> >>> Some modules (such as FaultTolerantWriteDxe) use the FlashNvStorage
> >>> PCDs (PcdFlashNvStorageFtw*). In case the flash contents are not
> >>> mapped in memory, the module loading order of the FVB driver
> >>> may become important.
> >>>
> >>> To handle above, this patch allows to hook the dependency of
> >>> desired DXE_DRIVER type module in the .DSC file via
> >>> NvVarStoreFormattedLib NULL resolution.
> >>>
> >>> Contributed-under: TianoCore Contribution Agreement 1.1
> >>
> >> This line is no longer required, so you can drop it in the future.
> >>
> >> Note that the licensing terms have changed accordingly: by
> >> contributing patches under the new license terms, you are basically
> >> granting the same IP rights you were granting before by adhering to
> >> the TianoCore Contribution Agreement, so nothing has really changed.
> >> However, it is your *own* responsibility to confirm that I am not
> >> misrepresenting anything here, so please check the repository for the
> >> license changes.
> >>
> >>> Signed-off-by: Marcin Wojtas <mw@semihalf.com>
> >>
> >> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> >>
> >> Pushed as b9d4847ec258..20029ca22baa
> >
> > patch looks good to me as well, thanks
>
> Hmm, don't know how I missed it, but the INF file still has:
>
> LIBRARY_CLASS = NvVarStoreFormattedLib|PEIM DXE_RUNTIME_DRIVER DXE_SMM_DRIVER
>
> I don't understand why BaseTools don't catch that, when the lib instance is hooked into a DXE_DRIVER.
>
> ... Perhaps because the "hooking" uses the "NULL class", and the above restriction list only applies to the NvVarStoreFormattedLib class (which is ultimately nev
>
> I'm not sure; still for consistency's sake, I think we should add DXE_DRIVER to LIBRARY_CLASS too.
>
I've just submitted a patch extending the LIBRARY_CLASS.
Best regards.
Marcin
> >>
> >> Thanks,
> >>> ---
> >>> EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf | 4 ++--
> >>> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf b/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
> >>> index fefc311..98a0049 100644
> >>> --- a/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
> >>> +++ b/EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
> >>> @@ -39,8 +39,8 @@
> >>> #
> >>> # The matching DEPEX section below will generate the EFI_SECTION_PEI_DEPEX,
> >>> # EFI_SECTION_DXE_DEPEX or EFI_SECTION_MM_DEPEX leaf section for the PEIM
> >>> -# (EFI_FV_FILETYPE_PEIM), DXE_RUNTIME_DRIVER (EFI_FV_FILETYPE_DRIVER), or
> >>> +# (EFI_FV_FILETYPE_PEIM), DXE_RUNTIME_DRIVER/DXE_DRIVER (EFI_FV_FILETYPE_DRIVER), or
> >>> # DXE_SMM_DRIVER (EFI_FV_FILETYPE_MM) module, respectively.
> >>> #
> >>> -[Depex.common.PEIM, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_SMM_DRIVER]
> >>> +[Depex.common.PEIM, Depex.common.DXE_RUNTIME_DRIVER, Depex.common.DXE_DRIVER, Depex.common.DXE_SMM_DRIVER]
> >>> gEdkiiNvVarStoreFormattedGuid
> >>> --
> >>> 2.7.4
> >>>
> >
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-04-27 9:17 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-25 9:18 [PATCH] EmbeddedPkg: Allow DXE_DRIVER to depend on NvVarStoreFormattedLib Marcin Wojtas
2019-04-25 11:04 ` Ard Biesheuvel
2019-04-26 17:02 ` Laszlo Ersek
2019-04-26 23:38 ` Laszlo Ersek
2019-04-27 9:17 ` Marcin Wojtas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox