REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3246 RFC: https://edk2.groups.io/g/devel/message/72530 Branch for this change: https://github.com/dandanbi/edk2/tree/RegisterFilterLibV3
Patch 1 is to add RegisterFilterLib Library Class in edk2 to filter/trace port IO/MMIO/MSR access and add a RegisterFilterLibNull instance. Patch 2 is to add the MdeLibs.dsc.inc file to MdePkg for some default libraries provided by MdePkg and add RegisterFilterLib into it as the first version of MdeLibs.dsc.inc. Last 2 patches are to update APIs in IoLib and BaseLib to filter/trace port IO/MMIO/MSR access. Remaining patches are to update related dsc files to consume MdeLibs.dsc.inc for RegisterFilterLib. Will submit patch 1 and 2 firstly. And then update related dsc files in edk2 and edk2platform repo to consume MdeLibs.dsc.inc for RegisterFilterLib. At last will submit the patches to update IoLib and BaseLib to filter/trace port IO/MMIO/MSR access. --- V4: Consume the MdeLibs.dsc.inc for RegisterFilterLibNull in dsc file rather than in xxx.dsc.inc. Following 2 patchws were updated for consuming MdeLibs.dsc.inc in platform dsc file. ArmVirtPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib UnitTestFrameworkPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib Other patches are the same with V3. --- V3: 1. Don't assume Library instances in MdeLibs.dsc.inc are must in common [LibraryClasses] section. Can specify different [LibraryClasses] section for the libary instances in MdeLibs.dsc.inc. 2. Update plaftom dsc to consume the MdeLibs.dsc outside the [LibraryClasses] section. 3. Pick up the R-B for patch 1, patch 28, patch 29. Cc: Michael D Kinney <michael.d.kin...@intel.com> Cc: Sean Brogan <sean.bro...@microsoft.com> Cc: Bret Barkelew <bret.barke...@microsoft.com> Cc: Leif Lindholm <l...@nuviainc.com> Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org> Cc: Laszlo Ersek <ler...@redhat.com> Cc: Jiewen Yao <jiewen....@intel.com> Cc: Jian J Wang <jian.j.w...@intel.com> Cc: Sami Mujawar <sami.muja...@arm.com> Cc: Alexei Fedorov <alexei.fedo...@arm.com> Cc: Andrew Fish <af...@apple.com> Cc: Ray Ni <ray...@intel.com> Cc: Chasel Chiu <chasel.c...@intel.com> Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> Cc: Star Zeng <star.z...@intel.com> Cc: Zhichao Gao <zhichao....@intel.com> Cc: Hao A Wu <hao.a...@intel.com> Cc: Maurice Ma <maurice...@intel.com> Cc: Guo Dong <guo.d...@intel.com> Cc: Benjamin You <benjamin....@intel.com> Cc: Eric Dong <eric.d...@intel.com> Cc: Maciej Rabeda <maciej.rab...@linux.intel.com> Cc: Jiaxin Wu <jiaxin...@intel.com> Cc: Siyuan Fu <siyuan...@intel.com> Cc: Jordan Justen <jordan.l.jus...@intel.com> Cc: Supreeth Venkatesh <supreeth.venkat...@arm.com> Cc: Abner Chang <abner.ch...@hpe.com> Cc: Nickle Wang <nickle.w...@hpe.com> Cc: Liming Gao <gaolim...@byosoft.com.cn> Cc: Zhiguang Liu <zhiguang....@intel.com> Dandan Bi (29): MdePkg: Add RegisterFilterLib class and NULL instance MdePkg: Add MdeLibs.dsc.inc file to MdePkg ArmPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib ArmPlatformPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib ArmVirtPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib CryptoPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib DynamicTablesPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib EmbeddedPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib EmulatorPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib FatPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib FmpDevicePkg: Consume MdeLibs.dsc.inc for RegisterFilterLib IntelFsp2Pkg: Consume MdeLibs.dsc.inc for RegisterFilterLib IntelFsp2WrapperPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib MdeModulePkg: Consume MdeLibs.dsc.inc for RegisterFilterLib MdePkg: Consume MdeLibs.dsc.inc for RegisterFilterLib NetworkPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib OvmfPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib PcAtChipsetPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib RedfishPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib SecurityPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib ShellPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib SignedCapsulePkg: Consume MdeLibs.dsc.inc for RegisterFilterLib SourceLevelDebugPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib StandaloneMmPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib UefiCpuPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib UefiPayloadPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib UnitTestFrameworkPkg: Consume MdeLibs.dsc.inc for RegisterFilterLib MdePkg/IoLib: Filter/trace port IO/MMIO access MdePkg/Baseib: Filter/trace MSR access for IA32/X64 ArmPkg/ArmPkg.dsc | 2 + ArmPlatformPkg/ArmPlatformPkg.dsc | 2 + ArmVirtPkg/ArmVirt.dsc.inc | 4 +- CryptoPkg/CryptoPkg.dsc | 5 +- DynamicTablesPkg/DynamicTablesPkg.dsc | 2 + EmbeddedPkg/EmbeddedPkg.dsc | 5 +- EmulatorPkg/EmulatorPkg.dsc | 4 +- FatPkg/FatPkg.dsc | 4 +- FmpDevicePkg/FmpDevicePkg.dsc | 4 +- IntelFsp2Pkg/IntelFsp2Pkg.dsc | 4 +- IntelFsp2Pkg/Tools/Tests/QemuFspPkg.dsc | 2 + IntelFsp2WrapperPkg/IntelFsp2WrapperPkg.dsc | 4 +- MdeModulePkg/MdeModulePkg.dsc | 4 +- MdePkg/Include/Library/RegisterFilterLib.h | 243 ++++++++++++++++ .../BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf | 3 +- .../BaseIoLibIntrinsicArmVirt.inf | 3 +- .../BaseIoLibIntrinsicInternal.h | 3 +- .../BaseIoLibIntrinsicSev.inf | 3 +- MdePkg/Library/BaseIoLibIntrinsic/IoLib.c | 95 ++++-- .../Library/BaseIoLibIntrinsic/IoLibArmVirt.c | 82 +++++- MdePkg/Library/BaseIoLibIntrinsic/IoLibGcc.c | 58 +++- MdePkg/Library/BaseIoLibIntrinsic/IoLibMsc.c | 81 ++++-- MdePkg/Library/BaseIoLibIntrinsic/IoLibNoIo.c | 74 ++++- MdePkg/Library/BaseLib/BaseLib.inf | 5 +- MdePkg/Library/BaseLib/Ia32/GccInlinePriv.c | 38 ++- MdePkg/Library/BaseLib/Ia32/ReadMsr64.c | 38 ++- MdePkg/Library/BaseLib/Ia32/WriteMsr64.c | 22 +- MdePkg/Library/BaseLib/X64/GccInlinePriv.c | 43 ++- MdePkg/Library/BaseLib/X64/ReadMsr64.c | 15 +- MdePkg/Library/BaseLib/X64/WriteMsr64.c | 13 +- .../RegisterFilterLibNull.c | 271 ++++++++++++++++++ .../RegisterFilterLibNull.inf | 23 ++ .../RegisterFilterLibNull.uni | 13 + MdePkg/MdeLibs.dsc.inc | 15 + MdePkg/MdePkg.dec | 7 +- MdePkg/MdePkg.dsc | 6 +- NetworkPkg/NetworkPkg.dsc | 4 +- OvmfPkg/AmdSev/AmdSevX64.dsc | 5 +- OvmfPkg/Bhyve/BhyveX64.dsc | 5 +- OvmfPkg/OvmfPkgIa32.dsc | 5 +- OvmfPkg/OvmfPkgIa32X64.dsc | 5 +- OvmfPkg/OvmfPkgX64.dsc | 5 +- OvmfPkg/OvmfXen.dsc | 5 +- PcAtChipsetPkg/PcAtChipsetPkg.dsc | 4 +- RedfishPkg/RedfishPkg.dsc | 4 +- SecurityPkg/SecurityPkg.dsc | 4 +- ShellPkg/ShellPkg.dsc | 4 +- SignedCapsulePkg/SignedCapsulePkg.dsc | 4 +- SourceLevelDebugPkg/SourceLevelDebugPkg.dsc | 4 +- StandaloneMmPkg/StandaloneMmPkg.dsc | 5 +- UefiCpuPkg/UefiCpuPkg.dsc | 4 +- UefiPayloadPkg/UefiPayloadPkg.dsc | 5 +- .../UnitTestFrameworkPkgTarget.dsc.inc | 4 +- 53 files changed, 1131 insertions(+), 145 deletions(-) create mode 100644 MdePkg/Include/Library/RegisterFilterLib.h create mode 100644 MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.c create mode 100644 MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.inf create mode 100644 MdePkg/Library/RegisterFilterLibNull/RegisterFilterLibNull.uni create mode 100644 MdePkg/MdeLibs.dsc.inc -- 2.18.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#73420): https://edk2.groups.io/g/devel/message/73420 Mute This Topic: https://groups.io/mt/81670678/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-