EFI SMM CPU IO INTERFACE

From PhoenixWiki

Jump to: navigation, search

Contents

GUID

#define EFI_SMM_CPU_IO_GUID \
  { 0x5f439a0b, 0x45d8, 0x4682, 0xa4, 0xf4, 0xf0, 0x57, 0x6b,
  0x51, 0x34, 0x41 }

Prototype

typedef struct _EFI_SMM_CPU_IO_INTERFACE {
  EFI_SMM_IO_ACCESS Mem;
  EFI_SMM_IO_ACCESS Io;
} EFI_SMM_CPU_IO_INTERFACE;

Members

Member Description
Mem Allows reads and writes to memory-mapped I/O space.
Io Allows reads and writes to I/O space.

Description

The interfaces provided in EFI_SMM_CPU_IO_INTERFACE are for performing basic operations to memory and I/O. The EFI_SMM_CPU_IO_INTERFACE can be thought of as the bus driver for the system. The system provides abstracted access to basic system resources to allow a driver to have a programmatic method to access these basic system resources.

The EFI_SMM_CPU_IO_INTERFACE allows for future innovation of the platform. It abstracts device-specific code from the system memory map. This abstraction allows system designers to greatly change the system memory map without impacting platform-independent code that is consuming basic system resources.

The device I/O services in the system are blocking and will be installed by the agent that abstracts the compatibility bus.

The SMM handler that supports the SMM device I/O services must be executed prior to any other handler installations. The DXE grammar mechanism should be used to enforce this requirement. If this temporal ordering is carried out, then the preamble initialization of the SMM processor I/O handler can populate the SMST using the SmmInstallConfigurationTable() mechanism and the GUID listed in SmmIo.


Copyright (C) 2009 Phoenix Technologies Ltd. All Rights Reserved. Portions copyright (C) 2003-2006 Intel Corporation. Used with permission.

Personal tools