aboutsummaryrefslogtreecommitdiffstats
path: root/roms/edk2/OvmfPkg/IoMmuDxe/IoMmuDxe.c
diff options
context:
space:
mode:
authorAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
committerAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
commitaf1a266670d040d2f4083ff309d732d648afba2a (patch)
tree2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/edk2/OvmfPkg/IoMmuDxe/IoMmuDxe.c
parente02cda008591317b1625707ff8e115a4841aa889 (diff)
Add submodule dependency filesHEADmaster
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/edk2/OvmfPkg/IoMmuDxe/IoMmuDxe.c')
-rw-r--r--roms/edk2/OvmfPkg/IoMmuDxe/IoMmuDxe.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/roms/edk2/OvmfPkg/IoMmuDxe/IoMmuDxe.c b/roms/edk2/OvmfPkg/IoMmuDxe/IoMmuDxe.c
new file mode 100644
index 000000000..13df8ba87
--- /dev/null
+++ b/roms/edk2/OvmfPkg/IoMmuDxe/IoMmuDxe.c
@@ -0,0 +1,40 @@
+/** @file
+
+ IoMmuDxe driver installs EDKII_IOMMU_PROTOCOL to provide the support for DMA
+ operations when SEV is enabled.
+
+ Copyright (c) 2017, AMD Inc. All rights reserved.<BR>
+
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "AmdSevIoMmu.h"
+
+EFI_STATUS
+EFIAPI
+IoMmuDxeEntryPoint (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+ EFI_HANDLE Handle;
+
+ //
+ // When SEV is enabled, install IoMmu protocol otherwise install the
+ // placeholder protocol so that other dependent module can run.
+ //
+ if (MemEncryptSevIsEnabled ()) {
+ Status = AmdSevInstallIoMmuProtocol ();
+ } else {
+ Handle = NULL;
+
+ Status = gBS->InstallMultipleProtocolInterfaces (
+ &Handle,
+ &gIoMmuAbsentProtocolGuid,
+ NULL, NULL);
+ }
+
+ return Status;
+}