On Sat, 11 Nov 2023 at 12:12, Yao, Jiewen <jiewen....@intel.com> wrote: > > Glad to see we can get rid of the legacy burden. > > All: Reviewed-by: Jiewen Yao <jiewen....@intel.com> > >
Agreed, thanks for taking care of this. Reviewed-by: Ard Biesheuvel <a...@kernel.org> > > -----Original Message----- > > From: Laszlo Ersek <ler...@redhat.com> > > Sent: Saturday, November 11, 2023 7:58 AM > > To: devel@edk2.groups.io > > Cc: Anatol Belski <anbel...@linux.microsoft.com>; Warkentin, Andrei > > <andrei.warken...@intel.com>; Anthony Perard <anthony.per...@citrix.com>; > > Ard Biesheuvel <ardb+tianoc...@kernel.org>; Corvin Köhne > > <corv...@freebsd.org>; Aktas, Erdem <erdemak...@google.com>; Gerd > > Hoffmann <kra...@redhat.com>; Jianyong Wu <jianyong...@arm.com>; Yao, > > Jiewen <jiewen....@intel.com>; Michael Roth <michael.r...@amd.com>; Xu, > > Min M <min.m...@intel.com>; Rebecca Cran <rebe...@bsdio.com>; Sunil V L > > <suni...@ventanamicro.com>; Tom Lendacky <thomas.lenda...@amd.com> > > Subject: [PATCH 00/37] OvmfPkg: remove the CSM (after edk2-stable202311) > > > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4588 > > CI: https://github.com/tianocore/edk2/pull/5031 (@ 961d5add9f03) > > > > Remove the Compatibility Support Module (CSM) from OVMF (after > > edk2-stable202311). > > > > Modify the following platforms: > > > > OvmfPkg/AmdSev/AmdSevX64.dsc > > OvmfPkg/Bhyve/BhyveX64.dsc > > OvmfPkg/CloudHv/CloudHvX64.dsc > > OvmfPkg/IntelTdx/IntelTdxX64.dsc > > OvmfPkg/Microvm/MicrovmX64.dsc > > OvmfPkg/OvmfPkgIa32.dsc > > OvmfPkg/OvmfPkgIa32X64.dsc > > OvmfPkg/OvmfPkgX64.dsc > > OvmfPkg/OvmfXen.dsc > > > > Each of those platforms builds at every stage of the series. > > > > Follow a gradual approach. Peel off CSM components in (reverse) > > dependency order: > > > > - exclude a high-level CSM component (library or driver) from the OVMF > > platforms, without breaking dependencies of low-level components; > > > > - delete the high-level component from OvmfPkg; > > > > - add, to a removal queue, any source code artifacts (protocols, GUIDs, > > headers, PCDs) that the high-level component's deletion > > *unreferences*; > > > > - delete all entries of the removal queue (protocols, GUIDs, headers, > > PCDs) from the edk2 source tree that are now completely unreferenced > > (... and extend the removal queue recursively, if needed); > > > > - advance to the next component that now qualifies as "high-level" > > (because nothing consumes the services it provides any longer), and > > exclude that one. > > > > Regression-test the traditional platforms as needed; see the notes in > > the following patches: > > > > - OvmfPkg: remove PcdCsmEnable > > - OvmfPkg/IncompatiblePciDeviceSupportDxe: ignore CSM presence > > - OvmfPkg: exclude 8254TimerDxe > > > > Cc: Anatol Belski <anbel...@linux.microsoft.com> > > Cc: Andrei Warkentin <andrei.warken...@intel.com> > > Cc: Anthony Perard <anthony.per...@citrix.com> > > Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org> > > Cc: Corvin Köhne <corv...@freebsd.org> > > Cc: Erdem Aktas <erdemak...@google.com> > > Cc: Gerd Hoffmann <kra...@redhat.com> > > Cc: Jianyong Wu <jianyong...@arm.com> > > Cc: Jiewen Yao <jiewen....@intel.com> > > Cc: Michael Roth <michael.r...@amd.com> > > Cc: Min Xu <min.m...@intel.com> > > Cc: Rebecca Cran <rebe...@bsdio.com> > > Cc: Sunil V L <suni...@ventanamicro.com> > > Cc: Tom Lendacky <thomas.lenda...@amd.com> > > > > Thanks > > Laszlo > > > > Laszlo Ersek (37): > > OvmfPkg: cripple CSM_ENABLE macro > > OvmfPkg: remove PcdCsmEnable > > OvmfPkg: unplug LegacyBootManagerLib from BdsDxe and UiApp > > OvmfPkg: remove LegacyBootManagerLib > > OvmfPkg: unplug LegacyBootMaintUiLib from UiApp > > OvmfPkg: remove LegacyBootMaintUiLib > > OvmfPkg: remove gEfiLegacyDevOrderVariableGuid > > OvmfPkg: exclude the CSM-based VideoDxe driver > > OvmfPkg: remove Csm/BiosThunk/VideoDxe > > OvmfPkg: remove gEfiVgaMiniPortProtocolGuid > > OvmfPkg: remove Bios Video PCDs > > OvmfPkg: exclude LegacyBiosDxe > > OvmfPkg/IncompatiblePciDeviceSupportDxe: ignore CSM presence > > Revert "OvmfPkg: don't assign PCI BARs above 4GiB when CSM enabled" > > OvmfPkg: remove LegacyBiosDxe > > OvmfPkg: exclude NullMemoryTestDxe driver > > OvmfPkg: remove gEfiIsaIoProtocolGuid > > OvmfPkg: remove gEfiIsaAcpiProtocolGuid > > OvmfPkg: remove gEfiLegacyBiosGuid > > OvmfPkg: remove LegacyBiosDxe PCDs > > OvmfPkg: unplug CsmSupportLib from BdsDxe > > OvmfPkg: remove CsmSupportLib > > OvmfPkg: remove gEfiFirmwareVolumeProtocolGuid > > OvmfPkg: remove gEfiLegacyBiosPlatformProtocolGuid > > OvmfPkg: remove gEfiLegacyBiosProtocolGuid > > OvmfPkg: remove gEfiLegacyInterruptProtocolGuid > > OvmfPkg: remove <FrameworkDxe.h> > > OvmfPkg: exclude Csm16.inf / Csm16.bin > > OvmfPkg: remove Rule.Common.USER_DEFINED.CSM from all FDF files > > OvmfPkg: remove Csm16 > > OvmfPkg: exclude 8254TimerDxe > > OvmfPkg: remove 8254TimerDxe > > OvmfPkg: exclude 8259InterruptControllerDxe > > OvmfPkg: remove 8259InterruptControllerDxe > > OvmfPkg: remove gEfiLegacy8259ProtocolGuid > > OvmfPkg: remove Pcd8259LegacyModeEdgeLevel and > > Pcd8259LegacyModeMask > > OvmfPkg: remove CSM_ENABLE build macro > > > > OvmfPkg/8254TimerDxe/8254Timer.inf | > > 43 - > > OvmfPkg/8254TimerDxe/Timer.c | > > 406 --- > > OvmfPkg/8254TimerDxe/Timer.h | > > 186 -- > > OvmfPkg/8254TimerDxe/Timer.uni | > > 16 - > > OvmfPkg/8254TimerDxe/TimerExtra.uni | > > 14 - > > OvmfPkg/8259InterruptControllerDxe/8259.c | > > 622 ---- > > OvmfPkg/8259InterruptControllerDxe/8259.h | > > 218 -- > > OvmfPkg/8259InterruptControllerDxe/8259.inf | > > 45 - > > OvmfPkg/8259InterruptControllerDxe/Legacy8259.uni | > > 16 - > > OvmfPkg/8259InterruptControllerDxe/Legacy8259Extra.uni | > > 14 - > > OvmfPkg/AmdSev/AmdSevX64.dsc | > > 4 - > > OvmfPkg/AmdSev/AmdSevX64.fdf | > > 1 - > > OvmfPkg/Bhyve/BhyveRfbDxe/GopDriver.c | > > 2 - > > OvmfPkg/Bhyve/BhyveX64.dsc | > > 24 +- > > OvmfPkg/Bhyve/BhyveX64.fdf | > > 14 - > > OvmfPkg/CloudHv/CloudHvX64.dsc | > > 1 - > > OvmfPkg/CloudHv/CloudHvX64.fdf | > > 6 - > > OvmfPkg/Csm/BiosThunk/VideoDxe/BiosVideo.c | > > 3357 --------- > > ----------- > > OvmfPkg/Csm/BiosThunk/VideoDxe/BiosVideo.h | > > 524 --- > > OvmfPkg/Csm/BiosThunk/VideoDxe/BiosVideoDxe.uni | > > 17 - > > OvmfPkg/Csm/BiosThunk/VideoDxe/BiosVideoDxeExtra.uni | > > 14 - > > OvmfPkg/Csm/BiosThunk/VideoDxe/ComponentName.c | > > 304 -- > > OvmfPkg/Csm/BiosThunk/VideoDxe/VesaBiosExtensions.h | > > 459 --- > > OvmfPkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf | > > 78 - > > OvmfPkg/Csm/Csm16/Csm16.inf | > > 17 - > > OvmfPkg/Csm/Csm16/ReadMe.txt | > > 12 - > > OvmfPkg/Csm/CsmSupportLib/CsmSupportLib.c | > > 31 - > > OvmfPkg/Csm/CsmSupportLib/CsmSupportLib.h | > > 48 - > > OvmfPkg/Csm/CsmSupportLib/CsmSupportLib.inf | > > 55 - > > OvmfPkg/Csm/CsmSupportLib/LegacyInterrupt.c | > > 212 -- > > OvmfPkg/Csm/CsmSupportLib/LegacyInterrupt.h | > > 115 - > > OvmfPkg/Csm/CsmSupportLib/LegacyPlatform.c | > > 1086 ------- > > OvmfPkg/Csm/CsmSupportLib/LegacyPlatform.h | > > 97 - > > OvmfPkg/Csm/CsmSupportLib/LegacyRegion.c | > > 506 --- > > OvmfPkg/Csm/CsmSupportLib/LegacyRegion.h | > > 202 -- > > OvmfPkg/Csm/Include/Framework/BootScript.h | > > 40 - > > OvmfPkg/Csm/Include/Framework/DxeCis.h | > > 169 - > > OvmfPkg/Csm/Include/Framework/FirmwareVolumeHeader.h | > > 79 - > > OvmfPkg/Csm/Include/Framework/FirmwareVolumeImageFormat.h | > > 32 - > > OvmfPkg/Csm/Include/Framework/FrameworkInternalFormRepresentation.h > > | 396 --- > > OvmfPkg/Csm/Include/Framework/Hob.h | > > 28 - > > OvmfPkg/Csm/Include/Framework/StatusCode.h | > > 155 - > > OvmfPkg/Csm/Include/FrameworkDxe.h | > > 26 - > > OvmfPkg/Csm/Include/Guid/LegacyBios.h | > > 29 - > > OvmfPkg/Csm/Include/Guid/LegacyDevOrder.h | > > 39 - > > OvmfPkg/Csm/Include/Protocol/FirmwareVolume.h | > > 339 -- > > OvmfPkg/Csm/Include/Protocol/IsaAcpi.h | > > 298 -- > > OvmfPkg/Csm/Include/Protocol/IsaIo.h | > > 356 --- > > OvmfPkg/Csm/Include/Protocol/LegacyBios.h | > > 1551 --------- > > OvmfPkg/Csm/Include/Protocol/LegacyBiosPlatform.h | > > 753 ----- > > OvmfPkg/Csm/Include/Protocol/LegacyInterrupt.h | > > 121 - > > OvmfPkg/Csm/Include/Protocol/VgaMiniPort.h | > > 88 - > > OvmfPkg/Csm/LegacyBiosDxe/IA32/InterruptTable.nasm | > > 63 - > > OvmfPkg/Csm/LegacyBiosDxe/LegacyBbs.c | > > 530 --- > > OvmfPkg/Csm/LegacyBiosDxe/LegacyBda.c | > > 62 - > > OvmfPkg/Csm/LegacyBiosDxe/LegacyBios.c | > > 1227 ------- > > OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf | > > 129 - > > OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.uni | > > 16 - > > OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxeExtra.uni | > > 14 - > > OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosInterface.h | > > 1435 ------- > > -- > > OvmfPkg/Csm/LegacyBiosDxe/LegacyBootSupport.c | > > 2212 ------- > > ------ > > OvmfPkg/Csm/LegacyBiosDxe/LegacyCmos.c | > > 117 - > > OvmfPkg/Csm/LegacyBiosDxe/LegacyIde.c | > > 315 -- > > OvmfPkg/Csm/LegacyBiosDxe/LegacyPci.c | > > 3114 ------------- > > ----- > > OvmfPkg/Csm/LegacyBiosDxe/LegacySio.c | > > 489 --- > > OvmfPkg/Csm/LegacyBiosDxe/Thunk.c | > > 422 --- > > OvmfPkg/Csm/LegacyBiosDxe/X64/InterruptTable.nasm | > > 64 - > > OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUi.c | > > 1500 - > > -------- > > OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUi.h | > > 242 -- > > OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUiLib.inf | > > 62 - > > OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUiLib.uni | > > 20 - > > OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUiStrings.uni | > > 43 - > > OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUiVfr.Vfr | > > 67 - > > OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUiVfr.h | > > 73 - > > OvmfPkg/Csm/LegacyBootManagerLib/InternalLegacyBm.h | > > 60 - > > OvmfPkg/Csm/LegacyBootManagerLib/LegacyBm.c | > > 1573 ------ > > --- > > OvmfPkg/Csm/LegacyBootManagerLib/LegacyBootManagerLib.inf | > > 57 > > - > > OvmfPkg/Csm/LegacyBootManagerLib/LegacyBootManagerLib.uni | > > 20 - > > OvmfPkg/Include/Protocol/Legacy8259.h | > > 290 -- > > OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.c | > > 141 +- > > OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf | > > 5 +- > > OvmfPkg/IntelTdx/IntelTdxX64.dsc | > > 9 - > > OvmfPkg/IntelTdx/IntelTdxX64.fdf | > > 6 - > > OvmfPkg/Microvm/MicrovmX64.dsc | > > 4 - > > OvmfPkg/Microvm/MicrovmX64.fdf | > > 6 - > > OvmfPkg/OvmfPkg.dec | > > 100 - > > OvmfPkg/OvmfPkgIa32.dsc | > > 33 - > > OvmfPkg/OvmfPkgIa32.fdf | > > 20 +- > > OvmfPkg/OvmfPkgIa32X64.dsc | > > 37 - > > OvmfPkg/OvmfPkgIa32X64.fdf | > > 20 +- > > OvmfPkg/OvmfPkgX64.dsc | > > 37 - > > OvmfPkg/OvmfPkgX64.fdf | > > 20 +- > > OvmfPkg/OvmfXen.dsc | > > 28 +- > > OvmfPkg/OvmfXen.fdf | > > 12 - > > OvmfPkg/PlatformPei/MemDetect.c | > > 36 +- > > OvmfPkg/PlatformPei/PlatformPei.inf | > > 1 - > > OvmfPkg/RiscVVirt/RiscVVirtQemu.fdf | > > 2 - > > 97 files changed, 24 insertions(+), 27974 deletions(-) > > delete mode 100644 OvmfPkg/8254TimerDxe/8254Timer.inf > > delete mode 100644 OvmfPkg/8254TimerDxe/Timer.c > > delete mode 100644 OvmfPkg/8254TimerDxe/Timer.h > > delete mode 100644 OvmfPkg/8254TimerDxe/Timer.uni > > delete mode 100644 OvmfPkg/8254TimerDxe/TimerExtra.uni > > delete mode 100644 OvmfPkg/8259InterruptControllerDxe/8259.c > > delete mode 100644 OvmfPkg/8259InterruptControllerDxe/8259.h > > delete mode 100644 OvmfPkg/8259InterruptControllerDxe/8259.inf > > delete mode 100644 OvmfPkg/8259InterruptControllerDxe/Legacy8259.uni > > delete mode 100644 OvmfPkg/8259InterruptControllerDxe/Legacy8259Extra.uni > > delete mode 100644 OvmfPkg/Csm/BiosThunk/VideoDxe/BiosVideo.c > > delete mode 100644 OvmfPkg/Csm/BiosThunk/VideoDxe/BiosVideo.h > > delete mode 100644 OvmfPkg/Csm/BiosThunk/VideoDxe/BiosVideoDxe.uni > > delete mode 100644 OvmfPkg/Csm/BiosThunk/VideoDxe/BiosVideoDxeExtra.uni > > delete mode 100644 OvmfPkg/Csm/BiosThunk/VideoDxe/ComponentName.c > > delete mode 100644 OvmfPkg/Csm/BiosThunk/VideoDxe/VesaBiosExtensions.h > > delete mode 100644 OvmfPkg/Csm/BiosThunk/VideoDxe/VideoDxe.inf > > delete mode 100644 OvmfPkg/Csm/Csm16/Csm16.inf > > delete mode 100644 OvmfPkg/Csm/Csm16/ReadMe.txt > > delete mode 100644 OvmfPkg/Csm/CsmSupportLib/CsmSupportLib.c > > delete mode 100644 OvmfPkg/Csm/CsmSupportLib/CsmSupportLib.h > > delete mode 100644 OvmfPkg/Csm/CsmSupportLib/CsmSupportLib.inf > > delete mode 100644 OvmfPkg/Csm/CsmSupportLib/LegacyInterrupt.c > > delete mode 100644 OvmfPkg/Csm/CsmSupportLib/LegacyInterrupt.h > > delete mode 100644 OvmfPkg/Csm/CsmSupportLib/LegacyPlatform.c > > delete mode 100644 OvmfPkg/Csm/CsmSupportLib/LegacyPlatform.h > > delete mode 100644 OvmfPkg/Csm/CsmSupportLib/LegacyRegion.c > > delete mode 100644 OvmfPkg/Csm/CsmSupportLib/LegacyRegion.h > > delete mode 100644 OvmfPkg/Csm/Include/Framework/BootScript.h > > delete mode 100644 OvmfPkg/Csm/Include/Framework/DxeCis.h > > delete mode 100644 > > OvmfPkg/Csm/Include/Framework/FirmwareVolumeHeader.h > > delete mode 100644 > > OvmfPkg/Csm/Include/Framework/FirmwareVolumeImageFormat.h > > delete mode 100644 > > OvmfPkg/Csm/Include/Framework/FrameworkInternalFormRepresentation.h > > delete mode 100644 OvmfPkg/Csm/Include/Framework/Hob.h > > delete mode 100644 OvmfPkg/Csm/Include/Framework/StatusCode.h > > delete mode 100644 OvmfPkg/Csm/Include/FrameworkDxe.h > > delete mode 100644 OvmfPkg/Csm/Include/Guid/LegacyBios.h > > delete mode 100644 OvmfPkg/Csm/Include/Guid/LegacyDevOrder.h > > delete mode 100644 OvmfPkg/Csm/Include/Protocol/FirmwareVolume.h > > delete mode 100644 OvmfPkg/Csm/Include/Protocol/IsaAcpi.h > > delete mode 100644 OvmfPkg/Csm/Include/Protocol/IsaIo.h > > delete mode 100644 OvmfPkg/Csm/Include/Protocol/LegacyBios.h > > delete mode 100644 OvmfPkg/Csm/Include/Protocol/LegacyBiosPlatform.h > > delete mode 100644 OvmfPkg/Csm/Include/Protocol/LegacyInterrupt.h > > delete mode 100644 OvmfPkg/Csm/Include/Protocol/VgaMiniPort.h > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/IA32/InterruptTable.nasm > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/LegacyBbs.c > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/LegacyBda.c > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/LegacyBios.c > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.inf > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxe.uni > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosDxeExtra.uni > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/LegacyBiosInterface.h > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/LegacyBootSupport.c > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/LegacyCmos.c > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/LegacyIde.c > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/LegacyPci.c > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/LegacySio.c > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/Thunk.c > > delete mode 100644 OvmfPkg/Csm/LegacyBiosDxe/X64/InterruptTable.nasm > > delete mode 100644 > > OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUi.c > > delete mode 100644 > > OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUi.h > > delete mode 100644 > > OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUiLib.inf > > delete mode 100644 > > OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUiLib.uni > > delete mode 100644 > > OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUiStrings.uni > > delete mode 100644 > > OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUiVfr.Vfr > > delete mode 100644 > > OvmfPkg/Csm/LegacyBootMaintUiLib/LegacyBootMaintUiVfr.h > > delete mode 100644 > > OvmfPkg/Csm/LegacyBootManagerLib/InternalLegacyBm.h > > delete mode 100644 OvmfPkg/Csm/LegacyBootManagerLib/LegacyBm.c > > delete mode 100644 > > OvmfPkg/Csm/LegacyBootManagerLib/LegacyBootManagerLib.inf > > delete mode 100644 > > OvmfPkg/Csm/LegacyBootManagerLib/LegacyBootManagerLib.uni > > delete mode 100644 OvmfPkg/Include/Protocol/Legacy8259.h > > > > > > base-commit: 589f2e49e5f9ff998bd4f08cbf28a1572ab7b544 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#111112): https://edk2.groups.io/g/devel/message/111112 Mute This Topic: https://groups.io/mt/102518622/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-