RFC: https://bugzilla.tianocore.org/show_bug.cgi?id=3429 PeilessStarupLib provides a function (PeilessStartup) which brings up both Legacy and Tdx guest from SEC phase to DXE phase. PEI phase is skipped so that the attack surfaces are reduced as much as possible. PeilessStartup() does below tasks: 1. Contruct the FW hoblist. Since PEI is skipped, we must find a memory region which is the largest one below 4GB. Then this memory region will be used as the firmware hoblist. 2. Initialize the platform. 3. Build various Hobs, such as SecFv Hob, DxeFv Hob, Stack Hob, etc. 4. At last DXE Core is located / loaded and transfer control to it. Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Brijesh Singh <brijesh.singh@amd.com> Cc: Erdem Aktas <erdemaktas@google.com> Cc: James Bottomley <jejb@linux.ibm.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Tom Lendacky <thomas.lendacky@amd.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> Signed-off-by: Min Xu <min.m.xu@intel.com>
56 lines
1.2 KiB
C
56 lines
1.2 KiB
C
/** @file
|
|
|
|
Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
|
|
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef PEILESS_STARTUP_INTERNAL_LIB_H_
|
|
#define PEILESS_STARTUP_INTERNAL_LIB_H_
|
|
|
|
#include <PiPei.h>
|
|
#include <Library/BaseLib.h>
|
|
#include <Uefi/UefiSpec.h>
|
|
#include <Uefi/UefiBaseType.h>
|
|
#include <IndustryStandard/IntelTdx.h>
|
|
|
|
EFI_STATUS
|
|
EFIAPI
|
|
DxeLoadCore (
|
|
IN INTN FvInstance
|
|
);
|
|
|
|
VOID
|
|
EFIAPI
|
|
TransferHobList (
|
|
IN CONST VOID *HobStart
|
|
);
|
|
|
|
/**
|
|
* This function is to find a memory region which is the largest one below 4GB.
|
|
* It will be used as the firmware hoblist.
|
|
*
|
|
* @param VmmHobList Vmm passed hoblist which constains the memory information.
|
|
* @return EFI_SUCCESS Successfully construct the firmware hoblist.
|
|
* @return EFI_NOT_FOUND Cannot find a memory region to be the fw hoblist.
|
|
*/
|
|
EFI_STATUS
|
|
EFIAPI
|
|
ConstructFwHobList (
|
|
IN CONST VOID *VmmHobList
|
|
);
|
|
|
|
/**
|
|
* Construct the HobList in SEC phase.
|
|
*
|
|
* @return EFI_SUCCESS Successfully construct the firmware hoblist.
|
|
* @return EFI_NOT_FOUND Cannot find a memory region to be the fw hoblist.
|
|
*/
|
|
EFI_STATUS
|
|
EFIAPI
|
|
ConstructSecHobList (
|
|
);
|
|
|
|
#endif
|