mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-25 14:44:28 +02:00
OvmfPkg/QemuFwCfgLib: Support Tdx in QemuFwCfgDxe
RFC: https://bugzilla.tianocore.org/show_bug.cgi?id=3429 In the previous QemuFwCfgDxe only SEV is supported. This commit introduce TDX support in QemuFwCfgDxe. Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Brijesh Singh <brijesh.singh@amd.com> Cc: Erdem Aktas <erdemaktas@google.com> Cc: James Bottomley <jejb@linux.ibm.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Tom Lendacky <thomas.lendacky@amd.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> Signed-off-by: Min Xu <min.m.xu@intel.com>
This commit is contained in:
parent
fae5c1464d
commit
07c721fea7
@ -19,6 +19,7 @@
|
|||||||
#include <Library/DebugLib.h>
|
#include <Library/DebugLib.h>
|
||||||
#include <Library/QemuFwCfgLib.h>
|
#include <Library/QemuFwCfgLib.h>
|
||||||
#include <Library/UefiBootServicesTableLib.h>
|
#include <Library/UefiBootServicesTableLib.h>
|
||||||
|
#include <Library/MemEncryptTdxLib.h>
|
||||||
#include <Library/MemEncryptSevLib.h>
|
#include <Library/MemEncryptSevLib.h>
|
||||||
|
|
||||||
#include "QemuFwCfgLibInternal.h"
|
#include "QemuFwCfgLibInternal.h"
|
||||||
@ -85,7 +86,7 @@ QemuFwCfgInitialize (
|
|||||||
DEBUG ((DEBUG_INFO, "QemuFwCfg interface (DMA) is supported.\n"));
|
DEBUG ((DEBUG_INFO, "QemuFwCfg interface (DMA) is supported.\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mQemuFwCfgDmaSupported && MemEncryptSevIsEnabled ()) {
|
if (mQemuFwCfgDmaSupported && (MemEncryptSevIsEnabled () || (MemEncryptTdxIsEnabled ()))) {
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -100,7 +101,7 @@ QemuFwCfgInitialize (
|
|||||||
if (EFI_ERROR (Status)) {
|
if (EFI_ERROR (Status)) {
|
||||||
DEBUG ((
|
DEBUG ((
|
||||||
DEBUG_ERROR,
|
DEBUG_ERROR,
|
||||||
"QemuFwCfgSevDma %a:%a Failed to locate IOMMU protocol.\n",
|
"QemuFwCfgDma %a:%a Failed to locate IOMMU protocol.\n",
|
||||||
gEfiCallerBaseName,
|
gEfiCallerBaseName,
|
||||||
__FUNCTION__
|
__FUNCTION__
|
||||||
));
|
));
|
||||||
@ -411,10 +412,10 @@ InternalQemuFwCfgDmaBytes (
|
|||||||
DataBuffer = Buffer;
|
DataBuffer = Buffer;
|
||||||
|
|
||||||
//
|
//
|
||||||
// When SEV is enabled, map Buffer to DMA address before issuing the DMA
|
// When SEV or TDX is enabled, map Buffer to DMA address before issuing the DMA
|
||||||
// request
|
// request
|
||||||
//
|
//
|
||||||
if (MemEncryptSevIsEnabled ()) {
|
if (MemEncryptSevIsEnabled () || MemEncryptTdxIsEnabled ()) {
|
||||||
VOID *AccessBuffer;
|
VOID *AccessBuffer;
|
||||||
EFI_PHYSICAL_ADDRESS DataBufferAddress;
|
EFI_PHYSICAL_ADDRESS DataBufferAddress;
|
||||||
|
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
IoLib
|
IoLib
|
||||||
MemoryAllocationLib
|
MemoryAllocationLib
|
||||||
MemEncryptSevLib
|
MemEncryptSevLib
|
||||||
|
MemEncryptTdxLib
|
||||||
|
|
||||||
[Protocols]
|
[Protocols]
|
||||||
gEdkiiIoMmuProtocolGuid ## SOMETIMES_CONSUMES
|
gEdkiiIoMmuProtocolGuid ## SOMETIMES_CONSUMES
|
||||||
|
Loading…
x
Reference in New Issue
Block a user