From: "Laszlo Ersek" <lersek@redhat.com>
To: "Bi, Dandan" <dandan.bi@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>,
"gaoliming@byosoft.com.cn" <gaoliming@byosoft.com.cn>,
"ardb@kernel.org" <ardb@kernel.org>,
'Andrew Fish' <afish@apple.com>
Cc: 'Leif Lindholm' <leif@nuviainc.com>,
"Kinney, Michael D" <michael.d.kinney@intel.com>
Subject: Re: [edk2-devel] [edk2-platforms] [patch 00/35] Consume RegisterFilterLibNull instance
Date: Wed, 17 Mar 2021 18:08:16 +0100 [thread overview]
Message-ID: <7b41b3f7-b5dd-7fc6-3d75-32d9367b2902@redhat.com> (raw)
In-Reply-To: <SJ0PR11MB486250329A1E1558F4DB1424EA6A9@SJ0PR11MB4862.namprd11.prod.outlook.com>
On 03/17/21 16:05, Bi, Dandan wrote:
>> -----Original Message-----
>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
>> gaoliming
>> Sent: Wednesday, March 17, 2021 11:05 AM
>> To: devel@edk2.groups.io; ardb@kernel.org; Bi, Dandan
>> <dandan.bi@intel.com>; 'Laszlo Ersek' <lersek@redhat.com>; 'Andrew Fish'
>> <afish@apple.com>
>> Cc: 'Leif Lindholm' <leif@nuviainc.com>; Kinney, Michael D
>> <michael.d.kinney@intel.com>
>> Subject: 回复: [edk2-devel] [edk2-platforms] [patch 00/35] Consume
>> RegisterFilterLibNull instance
>>
>> Ard and Dandan:
>>
>>> -----邮件原件-----
>>> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Ard
>> Biesheuvel
>>> 发送时间: 2021年3月16日 23:01
>>> 收件人: devel@edk2.groups.io; dandan.bi@intel.com; Laszlo Ersek
>>> <lersek@redhat.com>; Andrew Fish <afish@apple.com>
>>> 抄送: Leif Lindholm <leif@nuviainc.com>; Michael D Kinney
>>> <michael.d.kinney@intel.com>; Liming Gao <gaoliming@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@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@nuviainc.com>
>>>> Cc: Michael D Kinney <michael.d.kinney@intel.com>
>>>> Cc: Liming Gao <gaoliming@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
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
>>
>>
>>
>
next prev parent reply other threads:[~2021-03-17 17:08 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-16 14:53 [edk2-platforms] [patch 00/35] Consume RegisterFilterLibNull instance Dandan Bi
2021-03-16 14:53 ` [edk2-platforms] [patch 01/35] Drivers/ASIX: " Dandan Bi
2021-03-16 14:53 ` [edk2-platforms] [patch 02/35] Drivers/DisplayLink: " Dandan Bi
2021-03-16 14:53 ` [edk2-platforms] [patch 03/35] Drivers/OptionRomPkg: " Dandan Bi
2021-03-16 14:53 ` [edk2-platforms] [patch 04/35] Features/Debugging: " Dandan Bi
2021-03-16 14:53 ` [edk2-platforms] [patch 05/35] Features/Network: " Dandan Bi
2021-03-16 14:53 ` [edk2-platforms] [patch 06/35] Features/OutOfBandManagement: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 07/35] Features/PowerManagement: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 08/35] Features/SystemInformation: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 09/35] Features/UserInterface: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 10/35] Platform/AMD: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 11/35] Platform/ARM: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 12/35] Platform/BeagleBoard: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 13/35] Platform/BoardModulePkg: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 14/35] Platform/MinPlatformPkg: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 15/35] Platform/QuarkPlatformPkg: " Dandan Bi
2021-03-16 15:04 ` Steele, Kelly
2021-03-16 14:54 ` [edk2-platforms] [patch 16/35] Platform/Vlv2TbltDevicePkg: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 17/35] Platform/LeMaker: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 18/35] Platform/Qemu: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 19/35] Platform/RaspberryPi: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 20/35] Platform/RISC-V: " Dandan Bi
2021-03-17 8:14 ` Abner Chang
2021-03-16 14:54 ` [edk2-platforms] [patch 21/35] Platform/SiFive: " Dandan Bi
2021-03-17 8:14 ` Abner Chang
2021-03-16 14:54 ` [edk2-platforms] [patch 22/35] Platform/Socionext: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 23/35] Platform/SoftIron: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 24/35] Silicon/Hisilicon: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 25/35] Silicon/CoffeelakeSiliconPkg: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 26/35] Silicon/IntelSiliconPkg: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 27/35] Silicon/KabylakeSiliconPkg: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 28/35] Silicon/QuarkSocPkg: " Dandan Bi
2021-03-16 15:05 ` Steele, Kelly
2021-03-16 14:54 ` [edk2-platforms] [patch 29/35] Silicon/TigerlakeSiliconPkg: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 30/35] Silicon/Marvell: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 31/35] Silicon/NXP: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 32/35] Silicon/Openmoko: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 33/35] Silicon/RISC_V: " Dandan Bi
2021-03-17 8:14 ` Abner Chang
2021-03-16 14:54 ` [edk2-platforms] [patch 34/35] Silicon/Synopsys/DesignWare: " Dandan Bi
2021-03-16 14:54 ` [edk2-platforms] [patch 35/35] Silicon/TexasInstruments: " Dandan Bi
2021-03-16 15:00 ` [edk2-devel] [edk2-platforms] [patch 00/35] " Ard Biesheuvel
2021-03-16 16:23 ` Laszlo Ersek
2021-03-17 3:04 ` 回复: " gaoliming
2021-03-17 15:05 ` Dandan Bi
2021-03-17 17:08 ` Laszlo Ersek [this message]
2021-03-18 4:43 ` 回复: " gaoliming
2021-03-18 13:25 ` Laszlo Ersek
2021-03-18 13:42 ` Ni, Ray
2021-03-19 1:20 ` 回复: " gaoliming
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7b41b3f7-b5dd-7fc6-3d75-32d9367b2902@redhat.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox