PiSmmCpuDxeSmm says it depends on SmmLib. The original set of APIs, from
"MdePkg/Include/Library/SmmLib.h", includes:
- TriggerBootServiceSoftwareSmi()
- TriggerRuntimeSoftwareSmi()
- IsBootServiceSoftwareSmi()
- IsRuntimeSoftwareSmi()
- ClearSmi()

Edk2 only contains a Null instance for the SmmLib class
("MdePkg/Library/SmmLibNull/SmmLibNull.inf"). It would be possible to
provide a Q35-specific instance of this library; however it turns out
PiSmmCpuDxeSmm() calls the ClearSmi() interface only. We observe:
- that API is a no-op on Q35,
- PiSmmCpuDxeSmm itself states that the call is a bug, because it embeds a
  chipset specific action in a CPU module.

Get rid of the SmmLib dependency.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <[email protected]>
---
 OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf | 1 -
 OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h   | 1 -
 OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/MpService.c        | 7 -------
 3 files changed, 9 deletions(-)

diff --git a/OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf 
b/OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf
index b64db8f..0e84a66 100644
--- a/OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf
+++ b/OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf
@@ -95,7 +95,6 @@ [LibraryClasses]
   SynchronizationLib
   BaseMemoryLib
   MtrrLib
-  SmmLib
   IoLib
   TimerLib
   SmmServicesTableLib
diff --git a/OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h 
b/OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h
index 59ae8f5..7842c19 100644
--- a/OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h
+++ b/OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h
@@ -50,7 +50,6 @@
 #include <Library/BaseLib.h>
 #include <Library/IoLib.h>
 #include <Library/TimerLib.h>
-#include <Library/SmmLib.h>
 #include <Library/SynchronizationLib.h>
 #include <Library/DebugLib.h>
 #include <Library/BaseMemoryLib.h>
diff --git a/OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/MpService.c 
b/OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/MpService.c
index ce9d3e2..7c3a067 100644
--- a/OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/MpService.c
+++ b/OvmfPkg/QuarkPort/PiSmmCpuDxeSmm/MpService.c
@@ -456,13 +456,6 @@ BSPHandler (
   }
 
   //
-  // Set the EOS bit before SMI resume.
-  //
-  // BUGBUG: The following is a chipset specific action from a CPU module.
-  //
-  ClearSmi();
-
-  //
   // If Relaxed-AP Sync Mode: gather all available APs after BSP SMM handlers 
are done, and
   // make those APs to exit SMI synchronously. APs which arrive later will be 
excluded and 
   // will run through freely.
-- 
1.8.3.1


_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to