TianoCore EDK2 master
|
Go to the source code of this file.
Data Structures | |
struct | SMM_BASE_HOB_DATA |
Macros | |
#define | SMM_BASE_HOB_DATA_GUID |
Variables | |
EFI_GUID | gSmmBaseHobGuid |
The Smm Base HOB is used to store the information of: The relocated SmBase address in array for each processor.
The default Smbase for the x86 processor is 0x30000. When SMI happens, processor runs the SMI handler at Smbase+0x8000. Also, the SMM save state area is within Smbase+0x10000. Since it's the start address to store the processor save state and code for the SMI entry point, those info are tiled within an SMRAM allocated or reserved buffer. This tile size shall be enough to cover 3 parts:
One of the SMM initialization from processor perspective is to relocate and program the new Smbase (in TSEG range) for each processor thread. When the Smbase relocation happens in a PEI module, the PEI module shall produce the SMM_BASE_HOB in HOB database which tells the PiSmmCpuDxeSmm driver (which runs at a later phase) about the new Smbase for each processor. PiSmmCpuDxeSmm driver installs the SMI handler at the SMM_BASE_HOB.Smbase[Index]+0x8000 for processor index. When the HOB doesn't exist, PiSmmCpuDxeSmm driver shall relocate and program the new Smbase itself.
Note:
Copyright (c) 2023, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file SmmBaseHob.h.
#define SMM_BASE_HOB_DATA_GUID |
Definition at line 45 of file SmmBaseHob.h.