TianoCore EDK2 master
Loading...
Searching...
No Matches
SuperIo.h File Reference
#include <Protocol/SuperIo.h>

Go to the source code of this file.

Data Structures

struct  _EFI_SIO_INFO
 
struct  _EFI_SIO_PPI
 

Macros

#define EFI_SIO_PPI_GUID
 
#define EFI_SIO_REG(ldn, reg)   (EFI_SIO_REGISTER) (((ldn) << 8) | reg)
 
#define EFI_SIO_LDN_GLOBAL   0xFF
 
#define EFI_ACPI_PNP_HID_END   EFI_PNP_ID (0x0000)
 

Typedefs

typedef struct _EFI_SIO_PPI EFI_SIO_PPI
 
typedef struct _EFI_SIO_PPIPEFI_SIO_PPI
 
typedef UINT16 EFI_SIO_REGISTER
 
typedef EFI_STATUS(EFIAPI * EFI_PEI_SIO_REGISTER_READ) (IN EFI_PEI_SERVICES **PeiServices, IN CONST EFI_SIO_PPI *This, IN BOOLEAN ExitCfgMode, IN EFI_SIO_REGISTER Register, OUT UINT8 *IoData)
 
typedef EFI_STATUS(EFIAPI * EFI_PEI_SIO_REGISTER_WRITE) (IN EFI_PEI_SERVICES **PeiServices, IN CONST EFI_SIO_PPI *This, IN BOOLEAN ExitCfgMode, IN EFI_SIO_REGISTER Register, IN UINT8 IoData)
 
typedef EFI_STATUS(EFIAPI * EFI_PEI_SIO_REGISTER_MODIFY) (IN EFI_PEI_SERVICES **PeiServices, IN CONST EFI_SIO_PPI *This, IN CONST EFI_SIO_REGISTER_MODIFY *Command, IN UINTN NumberOfCommands)
 
typedef UINT32 EFI_ACPI_HID
 
typedef UINT32 EFI_ACPI_UID
 
typedef struct _EFI_SIO_INFO EFI_SIO_INFO
 
typedef struct _EFI_SIO_INFOPEFI_SIO_INFO
 

Variables

EFI_GUID gEfiSioPpiGuid
 

Detailed Description

This PPI provides the super I/O register access functionality.

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

Revision Reference:
This PPI is from PI Version 1.2.1.

Definition in file SuperIo.h.

Macro Definition Documentation

◆ EFI_ACPI_PNP_HID_END

#define EFI_ACPI_PNP_HID_END   EFI_PNP_ID (0x0000)

Specifies the end of the information list.

Definition at line 139 of file SuperIo.h.

◆ EFI_SIO_LDN_GLOBAL

#define EFI_SIO_LDN_GLOBAL   0xFF

Definition at line 27 of file SuperIo.h.

◆ EFI_SIO_PPI_GUID

#define EFI_SIO_PPI_GUID
Value:
{ \
0x23a464ad, 0xcb83, 0x48b8, {0x94, 0xab, 0x1a, 0x6f, 0xef, 0xcf, 0xe5, 0x22} \
}

Definition at line 17 of file SuperIo.h.

◆ EFI_SIO_REG

#define EFI_SIO_REG (   ldn,
  reg 
)    (EFI_SIO_REGISTER) (((ldn) << 8) | reg)

Definition at line 26 of file SuperIo.h.

Typedef Documentation

◆ EFI_ACPI_HID

typedef UINT32 EFI_ACPI_HID

Definition at line 141 of file SuperIo.h.

◆ EFI_ACPI_UID

typedef UINT32 EFI_ACPI_UID

Definition at line 142 of file SuperIo.h.

◆ EFI_PEI_SIO_REGISTER_MODIFY

typedef EFI_STATUS(EFIAPI * EFI_PEI_SIO_REGISTER_MODIFY) (IN EFI_PEI_SERVICES **PeiServices, IN CONST EFI_SIO_PPI *This, IN CONST EFI_SIO_REGISTER_MODIFY *Command, IN UINTN NumberOfCommands)

Provides an interface for a table based programming of the Super I/O registers.

The Modify() function provides an interface for table based programming of the Super I/O registers. This function can be used to perform programming of multiple Super I/O registers with a single function call. For each table entry, the Register is read, its content is bitwise ANDed with AndMask, and then ORed with OrMask before being written back to the Register. The Super I/O driver must track the current state of the Super I/O and enable the configuration mode of Super I/O if necessary prior to table processing. Once the table is processed, the Super I/O device must be returned to the original state.

Parameters
PeiServicesA pointer to a pointer to the PEI Services.
ThisA pointer to this instance of the EFI_SIO_PPI.
CommandA pointer to an array of NumberOfCommands EFI_SIO_REGISTER_MODIFY structures. Each structure specifies a single Super I/O register modify operation.
NumberOfCommandsThe number of elements in the Command array.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_INVALID_PARAMETERSCommand is NULL.

Definition at line 128 of file SuperIo.h.

◆ EFI_PEI_SIO_REGISTER_READ

typedef EFI_STATUS(EFIAPI * EFI_PEI_SIO_REGISTER_READ) (IN EFI_PEI_SERVICES **PeiServices, IN CONST EFI_SIO_PPI *This, IN BOOLEAN ExitCfgMode, IN EFI_SIO_REGISTER Register, OUT UINT8 *IoData)

Read a Super I/O register.

The register is specified as an 8-bit logical device number and an 8-bit register value. The logical device numbers for specific SIO devices can be determined using the Info member of the PPI structure.

Parameters
PeiServicesA pointer to a pointer to the PEI Services.
ThisA pointer to this instance of the EFI_SIO_PPI.
ExitCfgModeA boolean specifying whether the driver should turn on configuration mode (FALSE) or turn off configuration mode (TRUE) after completing the read operation. The driver must track the current state of the configuration mode (if any) and turn on configuration mode (if necessary) prior to register access.
RegisterA value specifying the logical device number (bits 15:8) and the register to read (bits 7:0). The logical device number of EFI_SIO_LDN_GLOBAL indicates that global registers will be used.
IoDataA pointer to the returned register value.
Return values
EFI_SUCCESSSuccess.
EFI_TIMEOUTThe register could not be read in the a reasonable amount of time. The exact time is device-specific.
EFI_INVALID_PARAMETERSRegister was out of range for this device.
EFI_INVALID_PARAMETERSIoData was NULL
EFI_DEVICE_ERRORThere was a device fault or the device was not present.

Definition at line 58 of file SuperIo.h.

◆ EFI_PEI_SIO_REGISTER_WRITE

typedef EFI_STATUS(EFIAPI * EFI_PEI_SIO_REGISTER_WRITE) (IN EFI_PEI_SERVICES **PeiServices, IN CONST EFI_SIO_PPI *This, IN BOOLEAN ExitCfgMode, IN EFI_SIO_REGISTER Register, IN UINT8 IoData)

Write a Super I/O register.

The register is specified as an 8-bit logical device number and an 8-bit register value. The logical device numbers for specific SIO devices can be determined using the Info member of the PPI structure.

Parameters
PeiServicesA pointer to a pointer to the PEI Services.
ThisA pointer to this instance of the EFI_SIO_PPI.
ExitCfgModeA boolean specifying whether the driver should turn on configuration mode (FALSE) or turn off configuration mode (TRUE) after completing the read operation. The driver must track the current state of the configuration mode (if any) and turn on configuration mode (if necessary) prior to register access.
RegisterA value specifying the logical device number (bits 15:8) and the register to read (bits 7:0). The logical device number of EFI_SIO_LDN_GLOBAL indicates that global registers will be used.
IoDataA pointer to the returned register value.
Return values
EFI_SUCCESSSuccess.
EFI_TIMEOUTThe register could not be read in the a reasonable amount of time. The exact time is device-specific.
EFI_INVALID_PARAMETERSRegister was out of range for this device.
EFI_INVALID_PARAMETERSIoData was NULL
EFI_DEVICE_ERRORThere was a device fault or the device was not present.

Definition at line 96 of file SuperIo.h.

◆ EFI_SIO_PPI

typedef struct _EFI_SIO_PPI EFI_SIO_PPI

Definition at line 22 of file SuperIo.h.

◆ EFI_SIO_REGISTER

typedef UINT16 EFI_SIO_REGISTER

Definition at line 25 of file SuperIo.h.

◆ PEFI_SIO_PPI

typedef struct _EFI_SIO_PPI* PEFI_SIO_PPI

Definition at line 23 of file SuperIo.h.