/** @file | |
Confidential Computing Secret configuration table constructor | |
Copyright (C) 2020 James Bottomley, IBM Corporation. | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
**/ | |
#include <PiDxe.h> | |
#include <Library/UefiBootServicesTableLib.h> | |
#include <Guid/ConfidentialComputingSecret.h> | |
EFI_STATUS | |
EFIAPI | |
InitializeSecretDxe ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
) | |
{ | |
EFI_STATUS Status; | |
CONFIDENTIAL_COMPUTING_SECRET_LOCATION *SecretDxeTable; | |
Status = gBS->AllocatePool ( | |
EfiACPIReclaimMemory, | |
sizeof (CONFIDENTIAL_COMPUTING_SECRET_LOCATION), | |
(VOID **)&SecretDxeTable | |
); | |
if (EFI_ERROR (Status)) { | |
return Status; | |
} | |
SecretDxeTable->Base = FixedPcdGet32 (PcdSevLaunchSecretBase); | |
SecretDxeTable->Size = FixedPcdGet32 (PcdSevLaunchSecretSize); | |
return gBS->InstallConfigurationTable ( | |
&gConfidentialComputingSecretGuid, | |
SecretDxeTable | |
); | |
} |