OvmfPkg: Add VirtHstiDxe driver

The driver supports qemu machine types 'pc' and 'q35'.

This patch adds some helper functions to manage the bitmasks.
The implemented features depend on both OVMF build configuration
and qemu VM configuration.

For q35 a single security feature is supported and checked: In
SMM-enabled builds the driver will verify smram is properly locked.
That test should never fail.

Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Konstantin Kostiuk <kkostiuk@redhat.com>
Initial-patch-by: Konstantin Kostiuk <kkostiuk@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
This commit is contained in:
Konstantin Kostiuk
2024-04-22 12:47:25 +02:00
committed by mergify[bot]
parent be92e09206
commit d0906f602b
5 changed files with 382 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
/** @file
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include <Library/BaseLib.h>
#include <Library/DebugLib.h>
#include <Library/HstiLib.h>
#include <Library/PcdLib.h>
#include <Library/PciLib.h>
#include <IndustryStandard/Hsti.h>
#include <IndustryStandard/Q35MchIch9.h>
#include "VirtHstiDxe.h"
STATIC VIRT_ADAPTER_INFO_PLATFORM_SECURITY mHstiPC = {
PLATFORM_SECURITY_VERSION_VNEXTCS,
PLATFORM_SECURITY_ROLE_PLATFORM_REFERENCE,
{ L"OVMF (Qemu PC)" },
VIRT_HSTI_SECURITY_FEATURE_SIZE,
};
VIRT_ADAPTER_INFO_PLATFORM_SECURITY *
VirtHstiQemuPCInit (
VOID
)
{
return &mHstiPC;
}
VOID
VirtHstiQemuPCVerify (
VOID
)
{
}