]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg: introduce PcdCsmEnable feature flag
authorLaszlo Ersek <lersek@redhat.com>
Wed, 29 Jan 2020 18:53:18 +0000 (19:53 +0100)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Wed, 5 Feb 2020 12:59:32 +0000 (12:59 +0000)
In the DXE phase and later, it is possible for a module to dynamically
determine whether a CSM is enabled. An example can be seen in commit
855743f71774 ("OvmfPkg: prevent 64-bit MMIO BAR degradation if there is no
CSM", 2016-05-25).

SEC and PEI phase modules cannot check the Legacy BIOS Protocol however.
For their sake, introduce a new feature PCD that simply reflects the
CSM_ENABLE build flag.

Cc: Anthony Perard <anthony.perard@citrix.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Julien Grall <julien@xen.org>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1512
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20200129214412.2361-11-lersek@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
OvmfPkg/OvmfPkg.dec
OvmfPkg/OvmfPkgIa32.dsc
OvmfPkg/OvmfPkgIa32X64.dsc
OvmfPkg/OvmfPkgX64.dsc
OvmfPkg/OvmfXen.dsc

index 57034c784f88b2757736bdcaa6afe64fd4c64d66..4c5b6511cb9750c6d125086c294cabcca4680e75 100644 (file)
   #  runtime OS from tampering with firmware structures (special memory ranges\r
   #  used by OVMF, the varstore pflash chip, LockBox etc).\r
   gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire|FALSE|BOOLEAN|0x1e\r
+\r
+  ## Informs modules (including pre-DXE-phase modules) whether the platform\r
+  #  firmware contains a CSM (Compatibility Support Module).\r
+  #\r
+  gUefiOvmfPkgTokenSpaceGuid.PcdCsmEnable|FALSE|BOOLEAN|0x35\r
index 43ff51933609fdcf063905a7887fde381038a16c..19728f20b34e704b71387f21a78c3d65dec1d5db 100644 (file)
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE\r
+!ifdef $(CSM_ENABLE)\r
+  gUefiOvmfPkgTokenSpaceGuid.PcdCsmEnable|TRUE\r
+!endif\r
 !if $(SMM_REQUIRE) == TRUE\r
   gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire|TRUE\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE\r
index 5b3e217e9220c7589952dc396ef2bbc4cd856900..3c0c229e3a724260f6c0e788bea040e9402f3ceb 100644 (file)
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE\r
+!ifdef $(CSM_ENABLE)\r
+  gUefiOvmfPkgTokenSpaceGuid.PcdCsmEnable|TRUE\r
+!endif\r
 !if $(SMM_REQUIRE) == TRUE\r
   gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire|TRUE\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE\r
index a378d0a449aaa21866c22ddf5637798571bdce26..f6c1d8d228c6f5326b36c628a2e3ade2709fa9b8 100644 (file)
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE\r
+!ifdef $(CSM_ENABLE)\r
+  gUefiOvmfPkgTokenSpaceGuid.PcdCsmEnable|TRUE\r
+!endif\r
 !if $(SMM_REQUIRE) == TRUE\r
   gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire|TRUE\r
   gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmEnableBspElection|FALSE\r
index 1b18f1769bbc0ed779296e651b01ca4172752c14..5751ff1f035291f1d2904b9d419717b575db4ec7 100644 (file)
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE\r
+!ifdef $(CSM_ENABLE)\r
+  gUefiOvmfPkgTokenSpaceGuid.PcdCsmEnable|TRUE\r
+!endif\r
 \r
 [PcdsFixedAtBuild]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1\r