/** @file UbaSoftStrapUpdateLib implementation. @copyright Copyright 2012 - 2021 Intel Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include #include #include #include #include #include #include #include EFI_STATUS GetPchSoftSoftStrapTable ( IN VOID **PchSoftStrapTable ) { EFI_STATUS Status; UBA_CONFIG_DATABASE_PPI *UbaConfigPpi = NULL; PLATFORM_PCH_SOFTSTRAP_UPDATE PchSoftStrapUpdate; UINTN Size; Status = PeiServicesLocatePpi ( &gUbaConfigDatabasePpiGuid, 0, NULL, &UbaConfigPpi ); if (EFI_ERROR(Status)) { return Status; } Size = sizeof(PchSoftStrapUpdate); Status = UbaConfigPpi->GetData ( UbaConfigPpi, &gPlatformPchSoftStrapConfigDataGuid, &PchSoftStrapUpdate, &Size ); if (EFI_ERROR(Status)) { return Status; } ASSERT (PchSoftStrapUpdate.Signature == PLATFORM_SOFT_STRAP_UPDATE_SIGNATURE); ASSERT (PchSoftStrapUpdate.Version == PLATFORM_SOFT_STRAP_UPDATE_VERSION); *PchSoftStrapTable = PchSoftStrapUpdate.PchSoftStrapTablePtr; return Status; } VOID PlatformSpecificPchSoftStrapUpdate ( IN OUT UINT8 *FlashDescriptorCopy ) { EFI_STATUS Status; UBA_CONFIG_DATABASE_PPI *UbaConfigPpi = NULL; PLATFORM_PCH_SOFTSTRAP_UPDATE PchSoftStrapUpdate; UINTN Size; Status = PeiServicesLocatePpi ( &gUbaConfigDatabasePpiGuid, 0, NULL, &UbaConfigPpi ); if (EFI_ERROR(Status)) { return; } Size = sizeof(PchSoftStrapUpdate); Status = UbaConfigPpi->GetData ( UbaConfigPpi, &gPlatformPchSoftStrapConfigDataGuid, &PchSoftStrapUpdate, &Size ); if (EFI_ERROR(Status)) { return; } ASSERT (PchSoftStrapUpdate.Signature == PLATFORM_SOFT_STRAP_UPDATE_SIGNATURE); ASSERT (PchSoftStrapUpdate.Version == PLATFORM_SOFT_STRAP_UPDATE_VERSION); PchSoftStrapUpdate.PchSoftStrapPlatformSpecificUpdate (FlashDescriptorCopy); }