TianoCore EDK2 master
|
#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_PPI * | PEFI_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_INFO * | PEFI_SIO_INFO |
Variables | |
EFI_GUID | gEfiSioPpiGuid |
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
Definition in file SuperIo.h.
#define EFI_ACPI_PNP_HID_END EFI_PNP_ID (0x0000) |
#define EFI_SIO_PPI_GUID |
#define EFI_SIO_REG | ( | ldn, | |
reg | |||
) | (EFI_SIO_REGISTER) (((ldn) << 8) | reg) |
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.
PeiServices | A pointer to a pointer to the PEI Services. |
This | A pointer to this instance of the EFI_SIO_PPI. |
Command | A pointer to an array of NumberOfCommands EFI_SIO_REGISTER_MODIFY structures. Each structure specifies a single Super I/O register modify operation. |
NumberOfCommands | The number of elements in the Command array. |
EFI_SUCCESS | The operation completed successfully. |
EFI_INVALID_PARAMETERS | Command is NULL. |
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.
PeiServices | A pointer to a pointer to the PEI Services. |
This | A pointer to this instance of the EFI_SIO_PPI. |
ExitCfgMode | A 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. |
Register | A 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. |
IoData | A pointer to the returned register value. |
EFI_SUCCESS | Success. |
EFI_TIMEOUT | The register could not be read in the a reasonable amount of time. The exact time is device-specific. |
EFI_INVALID_PARAMETERS | Register was out of range for this device. |
EFI_INVALID_PARAMETERS | IoData was NULL |
EFI_DEVICE_ERROR | There was a device fault or the device was not present. |
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.
PeiServices | A pointer to a pointer to the PEI Services. |
This | A pointer to this instance of the EFI_SIO_PPI. |
ExitCfgMode | A 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. |
Register | A 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. |
IoData | A pointer to the returned register value. |
EFI_SUCCESS | Success. |
EFI_TIMEOUT | The register could not be read in the a reasonable amount of time. The exact time is device-specific. |
EFI_INVALID_PARAMETERS | Register was out of range for this device. |
EFI_INVALID_PARAMETERS | IoData was NULL |
EFI_DEVICE_ERROR | There was a device fault or the device was not present. |
typedef struct _EFI_SIO_PPI EFI_SIO_PPI |
typedef struct _EFI_SIO_PPI* PEFI_SIO_PPI |