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 (#111071): https://edk2.groups.io/g/devel/message/111071 Mute This Topic: https://groups.io/mt/102518622/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-