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]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to