TianoCore EDK2 master
|
#include <Library/BaseLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/DebugLib.h>
#include <Library/IoLib.h>
#include <Library/PcdLib.h>
#include <Library/PciLib.h>
#include <Library/PeiServicesLib.h>
#include <Ppi/SmmAccess.h>
#include <OvmfPlatforms.h>
#include "SmramInternal.h"
Go to the source code of this file.
Functions | |
STATIC EFI_STATUS EFIAPI | SmmAccessPeiOpen (IN EFI_PEI_SERVICES **PeiServices, IN PEI_SMM_ACCESS_PPI *This, IN UINTN DescriptorIndex) |
STATIC EFI_STATUS EFIAPI | SmmAccessPeiClose (IN EFI_PEI_SERVICES **PeiServices, IN PEI_SMM_ACCESS_PPI *This, IN UINTN DescriptorIndex) |
STATIC EFI_STATUS EFIAPI | SmmAccessPeiLock (IN EFI_PEI_SERVICES **PeiServices, IN PEI_SMM_ACCESS_PPI *This, IN UINTN DescriptorIndex) |
STATIC EFI_STATUS EFIAPI | SmmAccessPeiGetCapabilities (IN EFI_PEI_SERVICES **PeiServices, IN PEI_SMM_ACCESS_PPI *This, IN OUT UINTN *SmramMapSize, IN OUT EFI_SMRAM_DESCRIPTOR *SmramMap) |
STATIC UINT8 | CmosRead8 (IN UINT8 Index) |
STATIC UINT32 | GetSystemMemorySizeBelow4gb (VOID) |
EFI_STATUS EFIAPI | SmmAccessPeiEntryPoint (IN EFI_PEI_FILE_HANDLE FileHandle, IN CONST EFI_PEI_SERVICES **PeiServices) |
Variables | |
STATIC PEI_SMM_ACCESS_PPI | mAccess |
STATIC EFI_PEI_PPI_DESCRIPTOR | mPpiList [] |
A PEIM with the following responsibilities:
This PEIM runs from RAM, so we can write to variables with static storage duration.
Copyright (C) 2013, 2015, Red Hat, Inc.
Copyright (c) 2010 - 2024, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file SmmAccessPei.c.
Definition at line 234 of file SmmAccessPei.c.
STATIC UINT32 GetSystemMemorySizeBelow4gb | ( | VOID | ) |
Definition at line 244 of file SmmAccessPei.c.
STATIC EFI_STATUS EFIAPI SmmAccessPeiClose | ( | IN EFI_PEI_SERVICES ** | PeiServices, |
IN PEI_SMM_ACCESS_PPI * | This, | ||
IN UINTN | DescriptorIndex | ||
) |
Inhibits access to the SMRAM.
This function "closes" SMRAM so that it is not visible while outside of SMM. The function should return EFI_UNSUPPORTED if the hardware does not support hiding of SMRAM.
PeiServices | General purpose services available to every PEIM. |
This | The pointer to the SMM Access Interface. |
DescriptorIndex | The region of SMRAM to Close. |
EFI_SUCCESS | The region was successfully closed. |
EFI_DEVICE_ERROR | The region could not be closed because locked by chipset. |
EFI_INVALID_PARAMETER | The descriptor index was out of bounds. |
Definition at line 105 of file SmmAccessPei.c.
EFI_STATUS EFIAPI SmmAccessPeiEntryPoint | ( | IN EFI_PEI_FILE_HANDLE | FileHandle, |
IN CONST EFI_PEI_SERVICES ** | PeiServices | ||
) |
Definition at line 262 of file SmmAccessPei.c.
STATIC EFI_STATUS EFIAPI SmmAccessPeiGetCapabilities | ( | IN EFI_PEI_SERVICES ** | PeiServices, |
IN PEI_SMM_ACCESS_PPI * | This, | ||
IN OUT UINTN * | SmramMapSize, | ||
IN OUT EFI_SMRAM_DESCRIPTOR * | SmramMap | ||
) |
Queries the memory controller for the possible regions that will support SMRAM.
PeiServices | General purpose services available to every PEIM. |
This | The pointer to the SmmAccessPpi Interface. |
SmramMapSize | The pointer to the variable containing size of the buffer to contain the description information. |
SmramMap | The buffer containing the data describing the Smram region descriptors. |
EFI_BUFFER_TOO_SMALL | The user did not provide a sufficient buffer. |
EFI_SUCCESS | The user provided a sufficiently-sized buffer. |
Definition at line 199 of file SmmAccessPei.c.
STATIC EFI_STATUS EFIAPI SmmAccessPeiLock | ( | IN EFI_PEI_SERVICES ** | PeiServices, |
IN PEI_SMM_ACCESS_PPI * | This, | ||
IN UINTN | DescriptorIndex | ||
) |
Inhibits access to the SMRAM.
This function prohibits access to the SMRAM region. This function is usually implemented such that it is a write-once operation.
PeiServices | General purpose services available to every PEIM. |
This | The pointer to the SMM Access Interface. |
DescriptorIndex | The region of SMRAM to Close. |
EFI_SUCCESS | The region was successfully locked. |
EFI_DEVICE_ERROR | The region could not be locked because at least one range is still open. |
EFI_INVALID_PARAMETER | The descriptor index was out of bounds. |
Definition at line 152 of file SmmAccessPei.c.
STATIC EFI_STATUS EFIAPI SmmAccessPeiOpen | ( | IN EFI_PEI_SERVICES ** | PeiServices, |
IN PEI_SMM_ACCESS_PPI * | This, | ||
IN UINTN | DescriptorIndex | ||
) |
Opens the SMRAM area to be accessible by a PEIM driver.
This function "opens" SMRAM so that it is visible while not inside of SMM. The function should return EFI_UNSUPPORTED if the hardware does not support hiding of SMRAM. The function should return EFI_DEVICE_ERROR if the SMRAM configuration is locked.
PeiServices | General purpose services available to every PEIM. |
This | The pointer to the SMM Access Interface. |
DescriptorIndex | The region of SMRAM to Open. |
EFI_SUCCESS | The region was successfully opened. |
EFI_DEVICE_ERROR | The region could not be opened because locked by chipset. |
EFI_INVALID_PARAMETER | The descriptor index was out of bounds. |
Definition at line 57 of file SmmAccessPei.c.
STATIC PEI_SMM_ACCESS_PPI mAccess |
Definition at line 215 of file SmmAccessPei.c.
STATIC EFI_PEI_PPI_DESCRIPTOR mPpiList[] |
Definition at line 222 of file SmmAccessPei.c.