OvmfPkg[all]  0.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
IsaAcpi.h File Reference

Data Structures

struct  EFI_ISA_ACPI_RESOURCE
 
struct  EFI_ISA_ACPI_DEVICE_ID
 
struct  EFI_ISA_ACPI_RESOURCE_LIST
 
struct  _EFI_ISA_ACPI_PROTOCOL
 

Macros

#define EFI_ISA_ACPI_PROTOCOL_GUID
 
#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_EDGE_SENSITIVE   0x01
 Edge triggered interrupt on a rising edge. More...
 
#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_EDGE_SENSITIVE   0x02
 Edge triggered interrupt on a falling edge. More...
 
#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_LEVEL_SENSITIVE   0x04
 Level sensitive interrupt active high. More...
 
#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_LEVEL_SENSITIVE   0x08
 Level sensitive interrupt active low. More...
 
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_MASK   0x03
 Bit mask of supported DMA speed attributes. More...
 
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_COMPATIBILITY   0x00
 ISA controller supports compatibility mode DMA transfers. More...
 
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_A   0x01
 ISA controller supports type A DMA transfers. More...
 
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_B   0x02
 ISA controller supports type B DMA transfers. More...
 
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_F   0x03
 ISA controller supports type F DMA transfers. More...
 
#define EFI_ISA_ACPI_DMA_COUNT_BY_BYTE   0x04
 ISA controller increments DMA address by bytes (8-bit). More...
 
#define EFI_ISA_ACPI_DMA_COUNT_BY_WORD   0x08
 ISA controller increments DMA address by words (16-bit). More...
 
#define EFI_ISA_ACPI_DMA_BUS_MASTER   0x10
 ISA controller is a DMA bus master. More...
 
#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT   0x20
 ISA controller only supports 8-bit DMA transfers. More...
 
#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT   0x40
 ISA controller both 8-bit and 16-bit DMA transfers. More...
 
#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_16_BIT   0x80
 ISA controller only supports 16-bit DMA transfers. More...
 
#define EFI_ISA_ACPI_MEMORY_WIDTH_MASK   0x03
 Bit mask of supported ISA memory width attributes. More...
 
#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT   0x00
 ISA MMIO region only supports 8-bit access. More...
 
#define EFI_ISA_ACPI_MEMORY_WIDTH_16_BIT   0x01
 ISA MMIO region only supports 16-bit access. More...
 
#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT_AND_16_BIT   0x02
 ISA MMIO region supports both 8-bit and 16-bit access. More...
 
#define EFI_ISA_ACPI_MEMORY_WRITEABLE   0x04
 ISA MMIO region supports write transactions. More...
 
#define EFI_ISA_ACPI_MEMORY_CACHEABLE   0x08
 ISA MMIO region supports being cached. More...
 
#define EFI_ISA_ACPI_MEMORY_SHADOWABLE   0x10
 ISA MMIO region may be shadowed. More...
 
#define EFI_ISA_ACPI_MEMORY_EXPANSION_ROM   0x20
 ISA MMIO region is an expansion ROM. More...
 
#define EFI_ISA_ACPI_IO_DECODE_10_BITS   0x01
 ISA controllers uses a 10-bit address decoder for I/O cycles. More...
 
#define EFI_ISA_ACPI_IO_DECODE_16_BITS   0x02
 ISA controllers uses a 16-bit address decoder for I/O cycles. More...
 

Typedefs

typedef struct
_EFI_ISA_ACPI_PROTOCOL 
EFI_ISA_ACPI_PROTOCOL
 
typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_DEVICE_ENUMERATE )(IN EFI_ISA_ACPI_PROTOCOL *This, OUT EFI_ISA_ACPI_DEVICE_ID **Device)
 
typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_SET_DEVICE_POWER )(IN EFI_ISA_ACPI_PROTOCOL *This, IN EFI_ISA_ACPI_DEVICE_ID *Device, IN BOOLEAN OnOff)
 
typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_GET_CUR_RESOURCE )(IN EFI_ISA_ACPI_PROTOCOL *This, IN EFI_ISA_ACPI_DEVICE_ID *Device, OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList)
 
typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_GET_POS_RESOURCE )(IN EFI_ISA_ACPI_PROTOCOL *This, IN EFI_ISA_ACPI_DEVICE_ID *Device, OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList)
 
typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_SET_RESOURCE )(IN EFI_ISA_ACPI_PROTOCOL *This, IN EFI_ISA_ACPI_DEVICE_ID *Device, IN EFI_ISA_ACPI_RESOURCE_LIST *ResourceList)
 
typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_ENABLE_DEVICE )(IN EFI_ISA_ACPI_PROTOCOL *This, IN EFI_ISA_ACPI_DEVICE_ID *Device, IN BOOLEAN Enable)
 
typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_INIT_DEVICE )(IN EFI_ISA_ACPI_PROTOCOL *This, IN EFI_ISA_ACPI_DEVICE_ID *Device)
 
typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_INTERFACE_INIT )(IN EFI_ISA_ACPI_PROTOCOL *This)
 

Enumerations

enum  EFI_ISA_ACPI_RESOURCE_TYPE {
  EfiIsaAcpiResourceEndOfList, EfiIsaAcpiResourceIo, EfiIsaAcpiResourceMemory, EfiIsaAcpiResourceDma,
  EfiIsaAcpiResourceInterrupt
}
 

Variables

EFI_GUID gEfiIsaAcpiProtocolGuid
 

Detailed Description

EFI ISA ACPI Protocol is used to enumerate and manage all the ISA controllers on the platform's ISA Bus.

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

Macro Definition Documentation

#define EFI_ISA_ACPI_DMA_BUS_MASTER   0x10

ISA controller is a DMA bus master.

#define EFI_ISA_ACPI_DMA_COUNT_BY_BYTE   0x04

ISA controller increments DMA address by bytes (8-bit).

#define EFI_ISA_ACPI_DMA_COUNT_BY_WORD   0x08

ISA controller increments DMA address by words (16-bit).

#define EFI_ISA_ACPI_DMA_SPEED_TYPE_A   0x01

ISA controller supports type A DMA transfers.

#define EFI_ISA_ACPI_DMA_SPEED_TYPE_B   0x02

ISA controller supports type B DMA transfers.

#define EFI_ISA_ACPI_DMA_SPEED_TYPE_COMPATIBILITY   0x00

ISA controller supports compatibility mode DMA transfers.

#define EFI_ISA_ACPI_DMA_SPEED_TYPE_F   0x03

ISA controller supports type F DMA transfers.

#define EFI_ISA_ACPI_DMA_SPEED_TYPE_MASK   0x03

Bit mask of supported DMA speed attributes.

ISA ACPI Protocol DMA resource attributes.

#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_16_BIT   0x80

ISA controller only supports 16-bit DMA transfers.

#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT   0x20

ISA controller only supports 8-bit DMA transfers.

#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT   0x40

ISA controller both 8-bit and 16-bit DMA transfers.

#define EFI_ISA_ACPI_IO_DECODE_10_BITS   0x01

ISA controllers uses a 10-bit address decoder for I/O cycles.

ISA ACPI Protocol I/O resource attributes

#define EFI_ISA_ACPI_IO_DECODE_16_BITS   0x02

ISA controllers uses a 16-bit address decoder for I/O cycles.

#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_EDGE_SENSITIVE   0x01

Edge triggered interrupt on a rising edge.

ISA ACPI Protocol interrupt resource attributes.

#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_LEVEL_SENSITIVE   0x04

Level sensitive interrupt active high.

#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_EDGE_SENSITIVE   0x02

Edge triggered interrupt on a falling edge.

#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_LEVEL_SENSITIVE   0x08

Level sensitive interrupt active low.

#define EFI_ISA_ACPI_MEMORY_CACHEABLE   0x08

ISA MMIO region supports being cached.

#define EFI_ISA_ACPI_MEMORY_EXPANSION_ROM   0x20

ISA MMIO region is an expansion ROM.

#define EFI_ISA_ACPI_MEMORY_SHADOWABLE   0x10

ISA MMIO region may be shadowed.

#define EFI_ISA_ACPI_MEMORY_WIDTH_16_BIT   0x01

ISA MMIO region only supports 16-bit access.

#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT   0x00

ISA MMIO region only supports 8-bit access.

#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT_AND_16_BIT   0x02

ISA MMIO region supports both 8-bit and 16-bit access.

#define EFI_ISA_ACPI_MEMORY_WIDTH_MASK   0x03

Bit mask of supported ISA memory width attributes.

ISA ACPI Protocol MMIO resource attributes

#define EFI_ISA_ACPI_MEMORY_WRITEABLE   0x04

ISA MMIO region supports write transactions.

#define EFI_ISA_ACPI_PROTOCOL_GUID
Value:
{ \
0x64a892dc, 0x5561, 0x4536, { 0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55 } \
}

Global ID for the EFI ISA ACPI Protocol.

Typedef Documentation

typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_DEVICE_ENUMERATE)(IN EFI_ISA_ACPI_PROTOCOL *This, OUT EFI_ISA_ACPI_DEVICE_ID **Device)

Enumerates the ISA controllers on an ISA bus.

This service allows all the ISA controllers on an ISA bus to be enumerated. If Device is a pointer to a NULL value, then the first ISA controller on the ISA bus is returned in Device and EFI_SUCCESS is returned. If Device is a pointer to a value that was returned on a prior call to DeviceEnumerate(), then the next ISA controller on the ISA bus is returned in Device and EFI_SUCCESS is returned. If Device is a pointer to the last ISA controller on the ISA bus, then EFI_NOT_FOUND is returned.

Parameters
[in]ThisThe pointer to the EFI_ISA_ACPI_PROTOCOL instance.
[out]DeviceThe pointer to an ISA controller named by ACPI HID/UID.
Return values
EFI_SUCCESSThe next ISA controller on the ISA bus was returned.
EFI_NOT_FOUNDNo device found.
typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_ENABLE_DEVICE)(IN EFI_ISA_ACPI_PROTOCOL *This, IN EFI_ISA_ACPI_DEVICE_ID *Device, IN BOOLEAN Enable)

Enables or disables an ISA controller.

Parameters
[in]ThisThe pointer to the EFI_ISA_ACPI_PROTOCOL instance.
[in]DeviceThe pointer to the ISA controller to enable/disable.
[in]EnableTRUE to enable the ISA controller. FALSE to disable the ISA controller.
Return values
EFI_SUCCESSSuccessfully enabled/disabled the ISA controller.
OtherThe ISA controller could not be placed in the requested state.
typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_GET_CUR_RESOURCE)(IN EFI_ISA_ACPI_PROTOCOL *This, IN EFI_ISA_ACPI_DEVICE_ID *Device, OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList)

Retrieves the current set of resources associated with an ISA controller.

Retrieves the set of I/O, MMIO, DMA, and interrupt resources currently assigned to the ISA controller specified by Device. These resources are returned in ResourceList.

Parameters
[in]ThisThe pointer to the EFI_ISA_ACPI_PROTOCOL instance.
[in]DeviceThe pointer to an ISA controller named by ACPI HID/UID.
[out]ResourceListThe pointer to the current resource list for Device.
Return values
EFI_SUCCESSSuccessfully retrieved the current resource list.
EFI_NOT_FOUNDThe resource list could not be retrieved.
typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_GET_POS_RESOURCE)(IN EFI_ISA_ACPI_PROTOCOL *This, IN EFI_ISA_ACPI_DEVICE_ID *Device, OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList)

Retrieves the set of possible resources that may be assigned to an ISA controller with SetResource().

Retrieves the possible sets of I/O, MMIO, DMA, and interrupt resources for the ISA controller specified by Device. The sets are returned in ResourceList.

Parameters
[in]ThisThe pointer to the EFI_ISA_ACPI_PROTOCOL instance.
[in]DeviceThe pointer to an ISA controller named by ACPI HID/UID.
[out]ResourceListThe pointer to the returned list of resource lists.
Return values
EFI_UNSUPPORTEDThis service is not supported.
typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_INIT_DEVICE)(IN EFI_ISA_ACPI_PROTOCOL *This, IN EFI_ISA_ACPI_DEVICE_ID *Device)

Initializes an ISA controller, so that it can be used. This service must be called before SetResource(), EnableDevice(), or SetPower() will behave as expected.

Parameters
[in]ThisThe pointer to the EFI_ISA_ACPI_PROTOCOL instance.
[in]DeviceThe pointer to an ISA controller named by ACPI HID/UID.
Return values
EFI_SUCCESSSuccessfully initialized an ISA controller.
OtherThe ISA controller could not be initialized.
typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_INTERFACE_INIT)(IN EFI_ISA_ACPI_PROTOCOL *This)

Initializes all the HW states required for the ISA controllers on the ISA bus to be enumerated and managed by the rest of the services in this prorotol. This service must be called before any of the other services in this protocol will function as expected.

Parameters
[in]ThisThe pointer to the EFI_ISA_ACPI_PROTOCOL instance.
Return values
EFI_SUCCESSSuccessfully initialized all required hardware states.
OtherThe ISA interface could not be initialized.

Forward declaration fo the EFI ISA ACPI Protocol

typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_SET_DEVICE_POWER)(IN EFI_ISA_ACPI_PROTOCOL *This, IN EFI_ISA_ACPI_DEVICE_ID *Device, IN BOOLEAN OnOff)

Sets the power state of an ISA controller.

This services sets the power state of the ISA controller specified by Device to the power state specified by OnOff. TRUE denotes on, FALSE denotes off. If the power state is successfully set on the ISA Controller, then EFI_SUCCESS is returned.

Parameters
[in]ThisThe pointer to the EFI_ISA_ACPI_PROTOCOL instance.
[in]DeviceThe pointer to an ISA controller named by ACPI HID/UID.
[in]OnOffTRUE denotes on, FALSE denotes off.
Return values
EFI_SUCCESSSuccessfully set the power state of the ISA controller.
OtherThe ISA controller could not be placed in the requested power state.
typedef EFI_STATUS(EFIAPI * EFI_ISA_ACPI_SET_RESOURCE)(IN EFI_ISA_ACPI_PROTOCOL *This, IN EFI_ISA_ACPI_DEVICE_ID *Device, IN EFI_ISA_ACPI_RESOURCE_LIST *ResourceList)

Assigns resources to an ISA controller.

Assigns the I/O, MMIO, DMA, and interrupt resources specified by ResourceList to the ISA controller specified by Device. ResourceList must match a resource list returned by GetPosResource() for the same ISA controller.

Parameters
[in]ThisThe pointer to the EFI_ISA_ACPI_PROTOCOL instance.
[in]DeviceThe pointer to an ISA controller named by ACPI HID/UID.
[in]ResourceListThe pointer to a resources list that must be one of the resource lists returned by GetPosResource() for the ISA controller specified by Device.
Return values
EFI_SUCCESSSuccessfully set resources on the ISA controller.
OtherThe resources could not be set for the ISA controller.

Enumeration Type Documentation

EFI ISA ACPI resource type

Enumerator
EfiIsaAcpiResourceEndOfList 

Marks the end if a resource list.

EfiIsaAcpiResourceIo 

ISA I/O port resource range.

EfiIsaAcpiResourceMemory 

ISA MMIO resource range.

EfiIsaAcpiResourceDma 

ISA DMA resource.

EfiIsaAcpiResourceInterrupt 

ISA interrupt resource.

Variable Documentation

EFI_GUID gEfiIsaAcpiProtocolGuid