mirror of https://github.com/acidanthera/audk.git
48 lines
1.6 KiB
C
48 lines
1.6 KiB
C
/** @file
|
|
Defines the HOB GUID used to describe the MSEG memory region allocated in PEI.
|
|
Copyright (c) 2015 - 2023, Intel Corporation. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
**/
|
|
|
|
#ifndef MP_HANDOFF_H_
|
|
#define MP_HANDOFF_H_
|
|
|
|
#define MP_HANDOFF_GUID \
|
|
{ \
|
|
0x11e2bd88, 0xed38, 0x4abd, {0xa3, 0x99, 0x21, 0xf2, 0x5f, 0xd0, 0x7a, 0x60 } \
|
|
}
|
|
|
|
extern EFI_GUID mMpHandOffGuid;
|
|
|
|
//
|
|
// The information required to transfer from the PEI phase to the
|
|
// DXE phase is contained within the MP_HAND_OFF and PROCESSOR_HAND_OFF.
|
|
// If the SizeOfPointer (WaitLoopExecutionMode) of both phases are equal,
|
|
// and the APs is not in halt mode,
|
|
// then the APs can be awakened by triggering the start-up
|
|
// signal, rather than using INIT-SIPI-SIPI.
|
|
// To trigger the start-up signal, BSP writes the specified
|
|
// StartupSignalValue to the StartupSignalAddress of each processor.
|
|
// This address is monitored by the APs.
|
|
//
|
|
typedef struct {
|
|
UINT32 ApicId;
|
|
UINT32 Health;
|
|
UINT64 StartupSignalAddress;
|
|
UINT64 StartupProcedureAddress;
|
|
} PROCESSOR_HAND_OFF;
|
|
|
|
typedef struct {
|
|
//
|
|
// The ProcessorIndex indicates the range of processors. If it is set to 0, it signifies
|
|
// processors from 0 to CpuCount - 1. Multiple instances in the HOB list describe
|
|
// processors from ProcessorIndex to ProcessorIndex + CpuCount - 1.
|
|
//
|
|
UINT32 ProcessorIndex;
|
|
UINT32 CpuCount;
|
|
UINT32 WaitLoopExecutionMode;
|
|
UINT32 StartupSignalValue;
|
|
PROCESSOR_HAND_OFF Info[];
|
|
} MP_HAND_OFF;
|
|
#endif
|