OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
PavpProvision.c File Reference
#include <PiDxe.h>
#include <Protocol/FirmwareVolume.h>
#include <Protocol/PciRootBridgeIo.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Library/BaseLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/PciLib.h>
#include <Library/HobLib.h>
#include <Library/IoLib.h>
#include <Guid/GlobalVariable.h>
#include <Library/OcDebugLogLib.h>
#include <Library/OcHeciLib.h>
#include <Library/OcMiscLib.h>
#include <Protocol/Heci.h>
#include <Protocol/Heci2.h>
#include <IndustryStandard/AppleProvisioning.h>
#include <IndustryStandard/HeciMsg.h>
#include <IndustryStandard/HeciClientMsg.h>

Go to the source code of this file.

Macros

#define FORCE_PROVISIONING   1
 
#define SA_MC_BUS   0x00
 
#define R_SA_PAVPC   (0x58)
 
#define MmPciAddress(Segment, Bus, Device, Function, Register)
 
#define MmPci32(Segment, Bus, Device, Function, Register)
 

Functions

STATIC EFI_STATUS ReadProvisioningDataFile (IN EFI_GUID *FvNameGuid, OUT VOID **Buffer, OUT UINTN *BufferSize)
 
STATIC EFI_STATUS ReadProvisioningData (OUT EPID_CERTIFICATE **EpidCertificate, OUT EPID_GROUP_PUBLIC_KEY **EpidGroupPublicKeys, OUT UINT32 *EpidGroupPublicKeysCount)
 
STATIC VOID SetProvisioningVariable (IN CHAR16 *Variable, IN UINT32 Value)
 
STATIC EFI_STATUS GetGroupPublicKey (IN EPID_GROUP_PUBLIC_KEY *PublicKeys, IN UINTN PublicKeyCount, IN UINT32 Key, OUT EPID_GROUP_PUBLIC_KEY **ChosenPublicKey)
 
STATIC BOOLEAN IsBuiltinGpuAvailable (VOID)
 
STATIC EFI_STATUS NeedsEpidProvisioning (VOID)
 
STATIC EFI_STATUS NeedsFpfProvisioning (VOID)
 
EFI_STATUS OcPerformEpidProvisioning (VOID)
 
EFI_STATUS OcPerformFpfProvisioning (VOID)
 
STATIC VOID OcPerformProvisioning (VOID)
 
EFI_STATUS EFIAPI UefiMain (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
 

Variables

STATIC UINT8 mMeClientMap [HBM_ME_CLIENT_MAX]
 
STATIC UINT8 mMeClientActiveCount
 
UINT8 gDefaultAppleEpidCertificate []
 
UINTN gDefaultAppleEpidCertificateSize
 
UINT8 gDefaultAppleGroupPublicKeys []
 
UINTN gDefaultAppleGroupPublicKeysSize
 

Detailed Description

Provision EPID key.

Copyright (c) 2019, vit9696. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Definition in file PavpProvision.c.

Macro Definition Documentation

◆ FORCE_PROVISIONING

#define FORCE_PROVISIONING   1

Definition at line 38 of file PavpProvision.c.

◆ MmPci32

#define MmPci32 ( Segment,
Bus,
Device,
Function,
Register )
Value:
*((volatile UINT32 *) MmPciAddress (Segment, Bus, Device, Function, Register))
#define MmPciAddress(Segment, Bus, Device, Function, Register)

Definition at line 47 of file PavpProvision.c.

◆ MmPciAddress

#define MmPciAddress ( Segment,
Bus,
Device,
Function,
Register )
Value:
((UINTN) (PciRead32 (PCI_LIB_ADDRESS (0,0,0,0x60)) & 0xFC000000) + \
(UINTN) (Bus << 20) + (UINTN) (Device << 15) + (UINTN) \
(Function << 12) + (UINTN) (Register))

Definition at line 42 of file PavpProvision.c.

◆ R_SA_PAVPC

#define R_SA_PAVPC   (0x58)

Definition at line 40 of file PavpProvision.c.

◆ SA_MC_BUS

#define SA_MC_BUS   0x00

Definition at line 39 of file PavpProvision.c.

Function Documentation

◆ GetGroupPublicKey()

STATIC EFI_STATUS GetGroupPublicKey ( IN EPID_GROUP_PUBLIC_KEY * PublicKeys,
IN UINTN PublicKeyCount,
IN UINT32 Key,
OUT EPID_GROUP_PUBLIC_KEY ** ChosenPublicKey )

Definition at line 212 of file PavpProvision.c.

◆ IsBuiltinGpuAvailable()

STATIC BOOLEAN IsBuiltinGpuAvailable ( VOID )

Definition at line 236 of file PavpProvision.c.

◆ NeedsEpidProvisioning()

STATIC EFI_STATUS NeedsEpidProvisioning ( VOID )

Definition at line 281 of file PavpProvision.c.

◆ NeedsFpfProvisioning()

STATIC EFI_STATUS NeedsFpfProvisioning ( VOID )

Definition at line 314 of file PavpProvision.c.

◆ OcPerformEpidProvisioning()

EFI_STATUS OcPerformEpidProvisioning ( VOID )

Definition at line 352 of file PavpProvision.c.

◆ OcPerformFpfProvisioning()

EFI_STATUS OcPerformFpfProvisioning ( VOID )

Definition at line 479 of file PavpProvision.c.

◆ OcPerformProvisioning()

STATIC VOID OcPerformProvisioning ( VOID )

Definition at line 581 of file PavpProvision.c.

◆ ReadProvisioningData()

STATIC EFI_STATUS ReadProvisioningData ( OUT EPID_CERTIFICATE ** EpidCertificate,
OUT EPID_GROUP_PUBLIC_KEY ** EpidGroupPublicKeys,
OUT UINT32 * EpidGroupPublicKeysCount )

Definition at line 146 of file PavpProvision.c.

◆ ReadProvisioningDataFile()

STATIC EFI_STATUS ReadProvisioningDataFile ( IN EFI_GUID * FvNameGuid,
OUT VOID ** Buffer,
OUT UINTN * BufferSize )

Definition at line 61 of file PavpProvision.c.

◆ SetProvisioningVariable()

STATIC VOID SetProvisioningVariable ( IN CHAR16 * Variable,
IN UINT32 Value )

Definition at line 191 of file PavpProvision.c.

◆ UefiMain()

EFI_STATUS EFIAPI UefiMain ( IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE * SystemTable )

Definition at line 616 of file PavpProvision.c.

Variable Documentation

◆ gDefaultAppleEpidCertificate

UINT8 gDefaultAppleEpidCertificate[]
extern

Definition at line 19 of file PavpProvisionData.c.

◆ gDefaultAppleEpidCertificateSize

UINTN gDefaultAppleEpidCertificateSize
extern

Definition at line 23 of file PavpProvisionData.c.

◆ gDefaultAppleGroupPublicKeys

UINT8 gDefaultAppleGroupPublicKeys[]
extern

Definition at line 25 of file PavpProvisionData.c.

◆ gDefaultAppleGroupPublicKeysSize

UINTN gDefaultAppleGroupPublicKeysSize
extern

Definition at line 29 of file PavpProvisionData.c.

◆ mMeClientActiveCount

STATIC UINT8 mMeClientActiveCount

Definition at line 51 of file PavpProvision.c.

◆ mMeClientMap

STATIC UINT8 mMeClientMap[HBM_ME_CLIENT_MAX]

Definition at line 50 of file PavpProvision.c.