]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/OvmfPkgX64.fdf
OvmfPkg: Make an Ia32/X64 hybrid build work with SEV
[mirror_edk2.git] / OvmfPkg / OvmfPkgX64.fdf
index 17ba9e177ac32d67185c7c86243595b32e15f546..438806fba8f1acb30f8698171636e68785ec338f 100644 (file)
@@ -83,7 +83,16 @@ gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbPageTableBase|gUefiOvmfPkgTokenSpaceGui
 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbSize\r
 \r
 0x00B000|0x001000\r
-gUefiCpuPkgTokenSpaceGuid.PcdSevEsWorkAreaBase|gUefiCpuPkgTokenSpaceGuid.PcdSevEsWorkAreaSize\r
+gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaSize\r
+\r
+0x00C000|0x001000\r
+gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBackupBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBackupSize\r
+\r
+0x00D000|0x001000\r
+gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSnpSecretsBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSnpSecretsSize\r
+\r
+0x00E000|0x001000\r
+gUefiOvmfPkgTokenSpaceGuid.PcdOvmfCpuidBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfCpuidSize\r
 \r
 0x010000|0x010000\r
 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamSize\r
@@ -96,6 +105,14 @@ FV = PEIFV
 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase|gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize\r
 FV = DXEFV\r
 \r
+##########################################################################################\r
+# Set the SEV-ES specific work area PCDs (used for all forms of SEV since the\r
+# the SEV STATUS MSR is now saved in the work area)\r
+#\r
+SET gUefiCpuPkgTokenSpaceGuid.PcdSevEsWorkAreaBase = $(MEMFD_BASE_ADDRESS) +  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaBase + gUefiOvmfPkgTokenSpaceGuid.PcdOvmfConfidentialComputingWorkAreaHeader\r
+SET gUefiCpuPkgTokenSpaceGuid.PcdSevEsWorkAreaSize = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaSize - gUefiOvmfPkgTokenSpaceGuid.PcdOvmfConfidentialComputingWorkAreaHeader\r
+##########################################################################################\r
+\r
 ################################################################################\r
 \r
 [FV.SECFV]\r
@@ -169,12 +186,9 @@ INF  MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
 INF  OvmfPkg/SmmAccess/SmmAccessPei.inf\r
 !endif\r
 INF  UefiCpuPkg/CpuMpPei/CpuMpPei.inf\r
+INF  FILE_GUID = $(UP_CPU_PEI_GUID) UefiCpuPkg/CpuMpPei/CpuMpPei.inf\r
 \r
-!if $(TPM_ENABLE) == TRUE\r
-INF  OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf\r
-INF  SecurityPkg/Tcg/TcgPei/TcgPei.inf\r
-INF  SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.inf\r
-!endif\r
+!include OvmfPkg/OvmfTpmPei.fdf.inc\r
 \r
 ################################################################################\r
 \r
@@ -202,7 +216,13 @@ READ_LOCK_STATUS   = TRUE
 APRIORI DXE {\r
   INF  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf\r
   INF  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf\r
+  # AmdSevDxe must be loaded before TdxDxe. Because in SEV guest AmdSevDxe\r
+  # driver performs a MemEncryptSevClearMmioPageEncMask() call against the\r
+  # PcdPciExpressBaseAddress range to mark it shared/unencrypted.\r
+  # Otherwise #VC handler terminates the guest for trying to do MMIO to an\r
+  # encrypted region (Since the range has not been marked shared/unencrypted).\r
   INF  OvmfPkg/AmdSevDxe/AmdSevDxe.inf\r
+  INF  OvmfPkg/TdxDxe/TdxDxe.inf\r
 !if $(SMM_REQUIRE) == FALSE\r
   INF  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf\r
 !endif\r
@@ -220,10 +240,17 @@ INF  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
 INF  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf\r
 INF  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf\r
 INF  MdeModulePkg/Universal/EbcDxe/EbcDxe.inf\r
-INF  OvmfPkg/8259InterruptControllerDxe/8259.inf\r
 INF  UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf\r
+\r
 INF  UefiCpuPkg/CpuDxe/CpuDxe.inf\r
-INF  OvmfPkg/8254TimerDxe/8254Timer.inf\r
+INF  FILE_GUID = $(UP_CPU_DXE_GUID) UefiCpuPkg/CpuDxe/CpuDxe.inf\r
+\r
+!ifdef $(CSM_ENABLE)\r
+  INF  OvmfPkg/8259InterruptControllerDxe/8259.inf\r
+  INF  OvmfPkg/8254TimerDxe/8254Timer.inf\r
+!else\r
+  INF  OvmfPkg/LocalApicTimerDxe/LocalApicTimerDxe.inf\r
+!endif\r
 INF  OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf\r
 INF  OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf\r
 INF  MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf\r
@@ -237,9 +264,6 @@ INF  OvmfPkg/Virtio10Dxe/Virtio10.inf
 INF  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
 INF  OvmfPkg/VirtioScsiDxe/VirtioScsi.inf\r
 INF  OvmfPkg/VirtioRngDxe/VirtioRng.inf\r
-INF  OvmfPkg/XenIoPciDxe/XenIoPciDxe.inf\r
-INF  OvmfPkg/XenBusDxe/XenBusDxe.inf\r
-INF  OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf\r
 !if $(PVSCSI_ENABLE) == TRUE\r
 INF  OvmfPkg/PvScsiDxe/PvScsiDxe.inf\r
 !endif\r
@@ -266,7 +290,6 @@ INF  MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
 INF  MdeModulePkg/Application/UiApp/UiApp.inf\r
 INF  OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf\r
 INF  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf\r
-INF  MdeModulePkg/Universal/PrintDxe/PrintDxe.inf\r
 INF  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
 INF  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
 INF  MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf\r
@@ -293,13 +316,13 @@ INF  OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
 \r
 INF  MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf\r
 INF  OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf\r
-INF  RuleOverride=ACPITABLE OvmfPkg/AcpiTables/AcpiTables.inf\r
 INF  MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveStateDxe.inf\r
 INF  MdeModulePkg/Universal/Acpi/BootScriptExecutorDxe/BootScriptExecutorDxe.inf\r
 INF  MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf\r
 \r
 INF  FatPkg/EnhancedFatDxe/Fat.inf\r
 INF  MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf\r
+INF  OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf\r
 \r
 !if $(TOOL_CHAIN_TAG) != "XCODE5"\r
 INF  ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf\r
@@ -310,6 +333,8 @@ INF  ShellPkg/Application/Shell/Shell.inf
 \r
 INF MdeModulePkg/Logo/LogoDxe.inf\r
 \r
+INF OvmfPkg/TdxDxe/TdxDxe.inf\r
+\r
 #\r
 # Network modules\r
 #\r
@@ -378,13 +403,7 @@ INF  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
 #\r
 # TPM support\r
 #\r
-!if $(TPM_ENABLE) == TRUE\r
-INF  SecurityPkg/Tcg/TcgDxe/TcgDxe.inf\r
-INF  SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf\r
-!if $(TPM_CONFIG_ENABLE) == TRUE\r
-INF  SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigDxe.inf\r
-!endif\r
-!endif\r
+!include OvmfPkg/OvmfTpmDxe.fdf.inc\r
 \r
 ################################################################################\r
 \r
@@ -500,12 +519,6 @@ FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
     VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)\r
   }\r
 \r
-[Rule.Common.USER_DEFINED.ACPITABLE]\r
-  FILE FREEFORM = $(NAMED_GUID) {\r
-    RAW ACPI               |.acpi\r
-    RAW ASL                |.aml\r
-  }\r
-\r
 [Rule.Common.USER_DEFINED.CSM]\r
   FILE FREEFORM = $(NAMED_GUID) {\r
     RAW BIN                |.bin\r