TianoCore EDK2 master
MmAccess.h File Reference

Go to the source code of this file.

Data Structures

struct  _EFI_MM_ACCESS_PROTOCOL
 

Macros

#define EFI_MM_ACCESS_PROTOCOL_GUID
 

Typedefs

typedef struct _EFI_MM_ACCESS_PROTOCOL EFI_MM_ACCESS_PROTOCOL
 
typedef EFI_STATUS(EFIAPIEFI_MM_OPEN) (IN EFI_MM_ACCESS_PROTOCOL *This)
 
typedef EFI_STATUS(EFIAPIEFI_MM_CLOSE) (IN EFI_MM_ACCESS_PROTOCOL *This)
 
typedef EFI_STATUS(EFIAPIEFI_MM_LOCK) (IN EFI_MM_ACCESS_PROTOCOL *This)
 
typedef EFI_STATUS(EFIAPIEFI_MM_CAPABILITIES) (IN CONST EFI_MM_ACCESS_PROTOCOL *This, IN OUT UINTN *MmramMapSize, IN OUT EFI_MMRAM_DESCRIPTOR *MmramMap)
 

Variables

EFI_GUID gEfiMmAccessProtocolGuid
 

Detailed Description

EFI MM Access Protocol as defined in the PI 1.5 specification.

This protocol is used to control the visibility of the MMRAM on the platform. It abstracts the location and characteristics of MMRAM. The expectation is that the north bridge or memory controller would publish this protocol.

The principal functionality found in the memory controller includes the following:

  • Exposing the MMRAM to all non-MM agents, or the "open" state
  • Shrouding the MMRAM to all but the MM agents, or the "closed" state
  • Preserving the system integrity, or "locking" the MMRAM, such that the settings cannot be perturbed by either boot service or runtime agents

Copyright (c) 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file MmAccess.h.

Macro Definition Documentation

◆ EFI_MM_ACCESS_PROTOCOL_GUID

#define EFI_MM_ACCESS_PROTOCOL_GUID
Value:
{ \
0xc2702b74, 0x800c, 0x4131, {0x87, 0x46, 0x8f, 0xb5, 0xb8, 0x9c, 0xe4, 0xac } \
}

Definition at line 22 of file MmAccess.h.

Typedef Documentation

◆ EFI_MM_ACCESS_PROTOCOL

Definition at line 27 of file MmAccess.h.

◆ EFI_MM_CAPABILITIES

typedef EFI_STATUS(EFIAPI * EFI_MM_CAPABILITIES) (IN CONST EFI_MM_ACCESS_PROTOCOL *This, IN OUT UINTN *MmramMapSize, IN OUT EFI_MMRAM_DESCRIPTOR *MmramMap)

Queries the memory controller for the possible regions that will support MMRAM.

Parameters
[in]ThisThe EFI_MM_ACCESS_PROTOCOL instance.
[in,out]MmramMapSizeA pointer to the size, in bytes, of the MmramMemoryMap buffer.
[in,out]MmramMapA pointer to the buffer in which firmware places the current memory map.
Return values
EFI_SUCCESSThe chipset supported the given resource.
EFI_BUFFER_TOO_SMALLThe MmramMap parameter was too small. The current buffer size needed to hold the memory map is returned in MmramMapSize.

Definition at line 95 of file MmAccess.h.

◆ EFI_MM_CLOSE

typedef EFI_STATUS(EFIAPI * EFI_MM_CLOSE) (IN EFI_MM_ACCESS_PROTOCOL *This)

Inhibits access to the MMRAM.

This function "closes" MMRAM so that it is not visible while outside of MM. The function should return EFI_UNSUPPORTED if the hardware does not support hiding of MMRAM.

Parameters
[in]ThisThe EFI_MM_ACCESS_PROTOCOL instance.
Return values
EFI_SUCCESSThe operation was successful.
EFI_UNSUPPORTEDThe system does not support opening and closing of MMRAM.
EFI_DEVICE_ERRORMMRAM cannot be closed.

Definition at line 61 of file MmAccess.h.

◆ EFI_MM_LOCK

typedef EFI_STATUS(EFIAPI * EFI_MM_LOCK) (IN EFI_MM_ACCESS_PROTOCOL *This)

Inhibits access to the MMRAM.

This function prohibits access to the MMRAM region. This function is usually implemented such that it is a write-once operation.

Parameters
[in]ThisThe EFI_MM_ACCESS_PROTOCOL instance.
Return values
EFI_SUCCESSThe device was successfully locked.
EFI_UNSUPPORTEDThe system does not support locking of MMRAM.

Definition at line 78 of file MmAccess.h.

◆ EFI_MM_OPEN

typedef EFI_STATUS(EFIAPI * EFI_MM_OPEN) (IN EFI_MM_ACCESS_PROTOCOL *This)

Opens the MMRAM area to be accessible by a boot-service driver.

This function "opens" MMRAM so that it is visible while not inside of MM. The function should return EFI_UNSUPPORTED if the hardware does not support hiding of MMRAM. The function should return EFI_DEVICE_ERROR if the MMRAM configuration is locked.

Parameters
[in]ThisThe EFI_MM_ACCESS_PROTOCOL instance.
Return values
EFI_SUCCESSThe operation was successful.
EFI_UNSUPPORTEDThe system does not support opening and closing of MMRAM.
EFI_DEVICE_ERRORMMRAM cannot be opened, perhaps because it is locked.

Definition at line 43 of file MmAccess.h.