Glad to see we can get rid of the legacy burden. All: Reviewed-by: Jiewen Yao <jiewen....@intel.com>
> -----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 (#111109): https://edk2.groups.io/g/devel/message/111109 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] -=-=-=-=-=-=-=-=-=-=-=-