[edk2-devel] [edk2-platforms] [patch 00/35] Consume RegisterFilterLibNull instance
Laszlo Ersek
lersek at redhat.com
Wed Mar 17 17:08:16 UTC 2021
On 03/17/21 16:05, Bi, Dandan wrote:
>> -----Original Message-----
>> From: devel at edk2.groups.io <devel at edk2.groups.io> On Behalf Of
>> gaoliming
>> Sent: Wednesday, March 17, 2021 11:05 AM
>> To: devel at edk2.groups.io; ardb at kernel.org; Bi, Dandan
>> <dandan.bi at intel.com>; 'Laszlo Ersek' <lersek at redhat.com>; 'Andrew Fish'
>> <afish at apple.com>
>> Cc: 'Leif Lindholm' <leif at nuviainc.com>; Kinney, Michael D
>> <michael.d.kinney at intel.com>
>> Subject: 回复: [edk2-devel] [edk2-platforms] [patch 00/35] Consume
>> RegisterFilterLibNull instance
>>
>> Ard and Dandan:
>>
>>> -----邮件原件-----
>>> 发件人: devel at edk2.groups.io <devel at edk2.groups.io> 代表 Ard
>> Biesheuvel
>>> 发送时间: 2021年3月16日 23:01
>>> 收件人: devel at edk2.groups.io; dandan.bi at intel.com; Laszlo Ersek
>>> <lersek at redhat.com>; Andrew Fish <afish at apple.com>
>>> 抄送: Leif Lindholm <leif at nuviainc.com>; Michael D Kinney
>>> <michael.d.kinney at intel.com>; Liming Gao <gaoliming at byosoft.com.cn>
>>> 主题: Re: [edk2-devel] [edk2-platforms] [patch 00/35] Consume
>>> RegisterFilterLibNull instance
>>>
>>> On Tue, 16 Mar 2021 at 15:56, Dandan Bi <dandan.bi at intel.com> wrote:
>>>>
>>>> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3246
>>>> RFC: https://edk2.groups.io/g/devel/message/72530
>>>>
>>>>
>>>> Add RegisterFilterLibNull in dsc files in edk2-platforms repo, which
>>>> will be consumed by IoLib and BaseLib.
>>>>
>>>> This is the following update in edk2-platforms repo for the change
>>>> in edk2, which will add RegisterFilterLib dependency for IoLib and
>>>> BaseLib to
>>> filter/trace
>>>> port IO/MMIO/MSR access.
>>>> https://edk2.groups.io/g/devel/message/72754
>>>>
>>>> Cc: Leif Lindholm <leif at nuviainc.com>
>>>> Cc: Michael D Kinney <michael.d.kinney at intel.com>
>>>> Cc: Liming Gao <gaoliming at byosoft.com.cn>
>>>>
>>>
>>> It is a bit disappointing that we have to update every platform in
>>> existence again to apply a change to a core module.
>>>
>>
>> I suggest to add MdePkg.dsc.inc file to include the default library instance,
>> and update all Platform DSC to include it. Then, for the future change, no
>> change is required for platform DSC.
>>
>> Because this patch set updates every platform DSC, I suggest to introduce
>> MdePkg.dsc.inc file in this patch set.
>
> Hi Liming,
>
> I agree that add MdePkg.dsc.inc file to include the default library instance and make it consumed by platform dsc will benefit future similar incompatible changes.
> But I wonder to know whether we could do it in a separated task/topic, as
> 1. It should be a code infrastructure design change/improvement in edk2.
> 2. Personally I don't hope the new solution will have much impact on my current schedule, but it seems have.
> And we may need to:
> 1). Clarify the default library instances which should be added in MdePkg.dsc.inc
> The library instances in MdePkg.dsc.inc should be generic enough to be widely included in platform dsc files.
> 2). Update dsc files in edk2 and edk2-platforms repo to include MdePkg.dsc.inc and cleanup the default Lib instance in dsc files.
(1) The file name should be "MdeLibs.dsc.inc", and it should be
structured similarly "NetworkLibs.dsc.inc" -- no [LibraryClasses] header
should be part of the file.
(2) The introduction of "MdeLibs.dsc.inc" is a big task, in my opinion.
As I stated earlier, I wouldn't like to review a patch for OvmfPkg that
replaces (say) 50-100 lines of library class resolutions with a simple
!include directive. Such a patch is unreviewable, as I'd have no way of
carefully comparing the before-after state, let alone a way of *pointing
out* (in comments) where exactly a problem was.
So I think such an include file would require a patch set, and the lib
class resolutions should be migrated in small *topical* steps. Such as:
- introduce the DSC include file as empty
- add the !include directive to platform DSCs
- add a small set of libraries (with some topical coherence) to the
include file,
- remove the same set of resolutions from platform DSCs,
- repeat the last two steps until all "topics" have been covered.
Thanks
Laszlo
>
>
> Thanks,
> Dandan
>>
>> Thanks
>> Liming
>>> Is there really not a better way to provide a 'default' resolution for
>>> a library class? Maybe a change to the .DEC format, so that the file
>>> which defines the library class can provide a resolution that is used
>>> if none is provided by the .DSC file?
>>>
>>>
>>>
>>>> Dandan Bi (35):
>>>> Drivers/ASIX: Consume RegisterFilterLibNull instance
>>>> Drivers/DisplayLink: Consume RegisterFilterLibNull instance
>>>> Drivers/OptionRomPkg: Consume RegisterFilterLibNull instance
>>>> Features/Debugging: Consume RegisterFilterLibNull instance
>>>> Features/Network: Consume RegisterFilterLibNull instance
>>>> Features/OutOfBandManagement: Consume RegisterFilterLibNull
>>> instance
>>>> Features/PowerManagement: Consume RegisterFilterLibNull instance
>>>> Features/SystemInformation: Consume RegisterFilterLibNull instance
>>>> Features/UserInterface: Consume RegisterFilterLibNull instance
>>>> Platform/AMD: Consume RegisterFilterLibNull instance
>>>> Platform/ARM: Consume RegisterFilterLibNull instance
>>>> Platform/BeagleBoard: Consume RegisterFilterLibNull instance
>>>> Platform/BoardModulePkg: Consume RegisterFilterLibNull instance
>>>> Platform/MinPlatformPkg: Consume RegisterFilterLibNull instance
>>>> Platform/QuarkPlatformPkg: Consume RegisterFilterLibNull instance
>>>> Platform/Vlv2TbltDevicePkg: Consume RegisterFilterLibNull instance
>>>> Platform/LeMaker: Consume RegisterFilterLibNull instance
>>>> Platform/Qemu: Consume RegisterFilterLibNull instance
>>>> Platform/RaspberryPi: Consume RegisterFilterLibNull instance
>>>> Platform/RISC-V: Consume RegisterFilterLibNull instance
>>>> Platform/SiFive: Consume RegisterFilterLibNull instance
>>>> Platform/Socionext: Consume RegisterFilterLibNull instance
>>>> Platform/SoftIron: Consume RegisterFilterLibNull instance
>>>> Silicon/Hisilicon: Consume RegisterFilterLibNull instance
>>>> Silicon/CoffeelakeSiliconPkg: Consume RegisterFilterLibNull instance
>>>> Silicon/IntelSiliconPkg: Consume RegisterFilterLibNull instance
>>>> Silicon/KabylakeSiliconPkg: Consume RegisterFilterLibNull instance
>>>> Silicon/QuarkSocPkg: Consume RegisterFilterLibNull instance
>>>> Silicon/TigerlakeSiliconPkg: Consume RegisterFilterLibNull instance
>>>> Silicon/Marvell: Consume RegisterFilterLibNull instance
>>>> Silicon/NXP: Consume RegisterFilterLibNull instance
>>>> Silicon/Openmoko: Consume RegisterFilterLibNull instance
>>>> Silicon/RISC_V: Consume RegisterFilterLibNull instance
>>>> Silicon/Synopsys/DesignWare: Consume RegisterFilterLibNull instance
>>>> Silicon/TexasInstruments: Consume RegisterFilterLibNull instance
>>>>
>>>> Drivers/ASIX/Asix.dsc
>>> | 1 +
>>>> Drivers/DisplayLink/DisplayLinkPkg/DisplayLinkPkg.dsc | 1 +
>>>> Drivers/OptionRomPkg/OptionRomPkg.dsc
>>> | 3 ++-
>>>> .../Debugging/AcpiDebugFeaturePkg/Include/AcpiDebugFeature.dsc | 3
>>> ++-
>>>> .../Debugging/BeepDebugFeaturePkg/Include/BeepDebugFeature.dsc |
>> 3
>>> ++-
>>>> .../PostCodeDebugFeaturePkg/Include/PostCodeDebugFeature.dsc | 3
>>> ++-
>>>> .../Debugging/Usb3DebugFeaturePkg/Include/Usb3DebugFeature.dsc |
>> 3
>>> ++-
>>>> .../Intel/Network/NetworkFeaturePkg/Include/NetworkFeature.dsc | 3
>>> ++-
>>>> .../OutOfBandManagement/IpmiFeaturePkg/Include/IpmiFeature.dsc |
>> 3
>>> ++-
>>>> .../OutOfBandManagement/SpcrFeaturePkg/Include/SpcrFeature.dsc |
>> 3
>>> ++-
>>>> .../Intel/PowerManagement/S3FeaturePkg/Include/S3Feature.dsc | 3
>>> ++-
>>>> .../SmbiosFeaturePkg/Include/SmbiosFeature.dsc | 3
>>> ++-
>>>> .../Intel/UserInterface/LogoFeaturePkg/Include/LogoFeature.dsc | 3 ++-
>>>> .../UserAuthFeaturePkg/Include/UserAuthFeature.dsc | 3
>>> ++-
>>>> .../Include/VirtualKeyboardFeature.dsc | 3
>>> ++-
>>>> Platform/AMD/OverdriveBoard/OverdriveBoard.dsc
>>> | 1 +
>>>> Platform/ARM/SgiPkg/PlatformStandaloneMm.dsc
>>> | 1 +
>>>> Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc
>>> | 1 +
>>>> Platform/BeagleBoard/BeagleBoardPkg/BeagleBoardPkg.dsc |
>>> 3 ++-
>>>> Platform/Intel/BoardModulePkg/BoardModulePkg.dsc |
>>> 3 ++-
>>>> Platform/Intel/MinPlatformPkg/Include/Dsc/CoreCommonLib.dsc | 3
>>> ++-
>>>> Platform/Intel/QuarkPlatformPkg/Quark.dsc |
>>> 1 +
>>>> Platform/Intel/QuarkPlatformPkg/QuarkMin.dsc |
>>> 1 +
>>>> Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgIA32.dsc | 3
>>> ++-
>>>> Platform/Intel/Vlv2TbltDevicePkg/PlatformPkgX64.dsc | 3
>>> ++-
>>>> Platform/LeMaker/CelloBoard/CelloBoard.dsc |
>>> 1 +
>>>> Platform/Qemu/SbsaQemu/SbsaQemu.dsc
>>> | 1 +
>>>> Platform/RISC-V/PlatformPkg/RiscVPlatformPkg.dsc | 1
>>> +
>>>> Platform/RaspberryPi/RPi3/RPi3.dsc |
>>> 3 ++-
>>>> Platform/RaspberryPi/RPi4/RPi4.dsc |
>>> 3 ++-
>>>> Platform/SiFive/U5SeriesPkg/FreedomU500VC707Board/U500.dsc |
>>> 1 +
>>>> .../U5SeriesPkg/FreedomU540HiFiveUnleashedBoard/U540.dsc |
>>> 1 +
>>>> Platform/Socionext/DeveloperBox/DeveloperBox.dsc.inc | 1
>>> +
>>>> Platform/Socionext/SynQuacerEvalBoard/SynQuacerEvalBoard.dsc | 1
>>> +
>>>> Platform/SoftIron/Overdrive1000Board/Overdrive1000Board.dsc | 1
>>> +
>>>> Silicon/Hisilicon/Hisilicon.dsc.inc | 1 +
>>>> Silicon/Intel/CoffeelakeSiliconPkg/CoffeelakeSiliconPkg.dsc | 1 +
>>>> Silicon/Intel/IntelSiliconPkg/IntelSiliconPkg.dsc | 3 ++-
>>>> Silicon/Intel/KabylakeSiliconPkg/KabylakeSiliconPkg.dsc | 3 ++-
>>>> Silicon/Intel/QuarkSocPkg/QuarkSocPkg.dsc |
>>> 3 ++-
>>>> Silicon/Intel/TigerlakeSiliconPkg/TigerlakeSiliconPkg.dsc | 1 +
>>>> Silicon/Marvell/Armada7k8k/Armada7k8k.dsc.inc |
>>> 1 +
>>>> Silicon/NXP/NxpQoriqLs.dsc.inc |
>>> 1 +
>>>> Silicon/Openmoko/Openmoko.dsc
>>> | 1 +
>>>> Silicon/RISC-V/ProcessorPkg/RiscVProcessorPkg.dsc | 1 +
>>>> Silicon/Synopsys/DesignWare/DesignWare.dsc |
>>> 1 +
>>>> Silicon/TexasInstruments/Omap35xxPkg/Omap35xxPkg.dsc
>>> | 1 +
>>>> 47 files changed, 70 insertions(+), 23 deletions(-)
>>>>
>>>> --
>>>> 2.18.0.windows.1
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>>
>>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#72974): https://edk2.groups.io/g/devel/message/72974
Mute This Topic: https://groups.io/mt/81405169/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list