[PATCH] OvmfPkg/BhyvePkg: add WorkAreaHeader PCD


Yao, Jiewen
 

Hi
To avoid unnecessary change in DSC/FDF, can we change default size to be 4 in DEC?

gUefiOvmfPkgTokenSpaceGuid.PcdOvmfConfidentialComputingWorkAreaHeader|4|UINT32|0x51

We shall also add comment on 4 == sizeof(CONFIDENTIAL_COMPUTING_WORK_AREA_HEADER) in OvmfPkg/Include/WorkArea.h.


Thank you
Yao Jiewen

-----Original Message-----
From: Corvin Köhne <c.koehne@beckhoff.com>
Sent: Wednesday, September 15, 2021 5:27 PM
To: devel@edk2.groups.io
Cc: ardb+tianocore@kernel.org; Yao, Jiewen <jiewen.yao@intel.com>; Justen,
Jordan L <jordan.l.justen@intel.com>; kraxel@redhat.com; rebecca@bsdio.com;
grehan@freebsd.org; Köhne, Corvin <c.koehne@beckhoff.com>
Subject: [PATCH] OvmfPkg/BhyvePkg: add WorkAreaHeader PCD

SEC phase will throw an assertion in IsSevGuest if
PcdOvmfConfidentialComputingWorkAreaHeader doesn't match the
sizeof CONFIDENTIAL_COMPUTING_WORK_AREA_HEADER.

Signed-off-by: Corvin Köhne <c.koehne@beckhoff.com>
---
OvmfPkg/Bhyve/BhyveDefines.fdf.inc | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/OvmfPkg/Bhyve/BhyveDefines.fdf.inc
b/OvmfPkg/Bhyve/BhyveDefines.fdf.inc
index 66e0e4d270..9f01ef797c 100644
--- a/OvmfPkg/Bhyve/BhyveDefines.fdf.inc
+++ b/OvmfPkg/Bhyve/BhyveDefines.fdf.inc
@@ -82,4 +82,10 @@ SET
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize =
$(BLOCK_SIZ
SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwSpareBase =
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase +
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize =
$(VARS_SPARE_SIZE)

+# The OVMF WorkArea contains a fixed size header followed by the actual data.
+# The size of header is accessed through a fixed PCD in the reset vector code.
+# The value need to be kept in sync with the any changes to the Confidential
+# Computing Work Area header defined in the Include/WorkArea.h
+SET
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfConfidentialComputingWorkAreaHeade
r = 4
+
DEFINE MEMFD_BASE_ADDRESS = 0x800000
--
2.11.0

Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans
Beckhoff Registered office: Verl, Germany | Register court: Guetersloh HRA
7075


Corvin Köhne
 

SEC phase will throw an assertion in IsSevGuest if
PcdOvmfConfidentialComputingWorkAreaHeader doesn't match the
sizeof CONFIDENTIAL_COMPUTING_WORK_AREA_HEADER.

Signed-off-by: Corvin Köhne <c.koehne@beckhoff.com>
---
OvmfPkg/Bhyve/BhyveDefines.fdf.inc | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/OvmfPkg/Bhyve/BhyveDefines.fdf.inc b/OvmfPkg/Bhyve/BhyveDefines.fdf.inc
index 66e0e4d270..9f01ef797c 100644
--- a/OvmfPkg/Bhyve/BhyveDefines.fdf.inc
+++ b/OvmfPkg/Bhyve/BhyveDefines.fdf.inc
@@ -82,4 +82,10 @@ SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize = $(BLOCK_SIZ
SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwSpareBase = gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashNvStorageFtwWorkingBase + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
SET gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize = $(VARS_SPARE_SIZE)

+# The OVMF WorkArea contains a fixed size header followed by the actual data.
+# The size of header is accessed through a fixed PCD in the reset vector code.
+# The value need to be kept in sync with the any changes to the Confidential
+# Computing Work Area header defined in the Include/WorkArea.h
+SET gUefiOvmfPkgTokenSpaceGuid.PcdOvmfConfidentialComputingWorkAreaHeader = 4
+
DEFINE MEMFD_BASE_ADDRESS = 0x800000
--
2.11.0

Beckhoff Automation GmbH & Co. KG | Managing Director: Dipl. Phys. Hans Beckhoff Registered office: Verl, Germany | Register court: Guetersloh HRA 7075