mirror of https://github.com/acidanthera/audk.git
62 lines
2.3 KiB
C
62 lines
2.3 KiB
C
/** @file
|
|
Migrated FV information
|
|
|
|
Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef __EDKII_MIGRATED_FV_INFO_GUID_H__
|
|
#define __EDKII_MIGRATED_FV_INFO_GUID_H__
|
|
|
|
//
|
|
// FLAGS_FV_RAW_DATA_COPY indicates FV raw data will be copied to permanent memory
|
|
// or not. When FV is migrated to permanent memory, it will be rebased and raw
|
|
// data will be lost. This bit can be configured as below values:
|
|
// 0: FV raw data will not be used in later phase, and the copy will be skipped to
|
|
// optimize boot performance.
|
|
// 1: FV raw data will be copied to permanent memory for later phase use (such as
|
|
// FV measurement).
|
|
//
|
|
#define FLAGS_FV_RAW_DATA_COPY BIT0
|
|
|
|
///
|
|
/// In real use cases, not all FVs need migrate to permanent memory before TempRam tears
|
|
/// down. EDKII_MIGRATION_INFO hob should be published by platform to indicate which
|
|
/// FVs need migration to optimize boot performance. If this hob is not detected by Pei
|
|
/// Core, all FVs on TempRam will be migrated and FV raw data will also be copied.
|
|
/// Only one EDKII_MIGRATION_INFO hob should be published by platform, and this hob will
|
|
/// take effect only when migration feature is enabled by PCD.
|
|
///
|
|
typedef struct {
|
|
UINT32 FvOrgBaseOnTempRam; // Original FV address on Temporary Ram
|
|
//
|
|
// FV Migration Flags:
|
|
// Bit0: Indicate to copy FV raw data or not
|
|
// Others: Reserved bits
|
|
//
|
|
UINT32 FvMigrationFlags;
|
|
} TO_MIGRATE_FV_INFO;
|
|
|
|
typedef struct {
|
|
BOOLEAN MigrateAll; // Migrate all FVs and also copy FV raw data
|
|
//
|
|
// ToMigrateFvCount and ToMigrateFvInfo array indicate which FVs need be migrated, and
|
|
// these info should be ignored when MigrateAll field is set to TRUE.
|
|
//
|
|
UINT32 ToMigrateFvCount;
|
|
// TO_MIGRATE_FV_INFO ToMigrateFvInfo[];
|
|
} EDKII_MIGRATION_INFO;
|
|
|
|
typedef struct {
|
|
UINT32 FvOrgBase; // original FV address
|
|
UINT32 FvNewBase; // new FV address
|
|
UINT32 FvDataBase; // original FV data, 0 means raw data is not copied
|
|
UINT32 FvLength; // Fv Length
|
|
} EDKII_MIGRATED_FV_INFO;
|
|
|
|
extern EFI_GUID gEdkiiMigrationInfoGuid;
|
|
extern EFI_GUID gEdkiiMigratedFvInfoGuid;
|
|
|
|
#endif // #ifndef __EDKII_MIGRATED_FV_INFO_GUID_H__
|