Update comments for IsaAcpi.h, IsaIo.h, and VgaMiniPort.h

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8728 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
mdkinney
2009-07-03 00:37:42 +00:00
parent 2e747cee12
commit 099fae5d83
3 changed files with 473 additions and 280 deletions

View File

@ -1,237 +1,305 @@
/** @file
ISA Acpi Protocol is used to operate and communicate with ISA device.
EFI ISA ACPI Protocol is used to enumerate and manage all the ISA controllers on
the platform's ISA Bus.
Copyright (c) 2006 - 2009, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Copyright (c) 2006 - 2009, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef __ISA_ACPI_H_
#define __ISA_ACPI_H_
///
/// Global ID for the EFI ISA ACPI Protocol
///
#define EFI_ISA_ACPI_PROTOCOL_GUID \
{ 0x64a892dc, 0x5561, 0x4536, { 0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55 } }
{ \
0x64a892dc, 0x5561, 0x4536, { 0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55 } \
}
///
/// Forward declaration fo the EFI ISA ACPI Protocol
///
typedef struct _EFI_ISA_ACPI_PROTOCOL EFI_ISA_ACPI_PROTOCOL;
//
// Resource Attribute definition
//
#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_EDGE_SENSITIVE 0x01
#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_EDGE_SENSITIVE 0x02
#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_LEVEL_SENSITIVE 0x04
#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_LEVEL_SENSITIVE 0x08
///
/// ISA ACPI Protocol interrupt resource attributes
///
#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_EDGE_SENSITIVE 0x01 ///< Edge triggered interrupt on a rising edge
#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_EDGE_SENSITIVE 0x02 ///< Edge triggered interrupt on a falling edge
#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_LEVEL_SENSITIVE 0x04 ///< Level sensitive interrupt active high
#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_LEVEL_SENSITIVE 0x08 ///< Level sensitive interrupt active low
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_MASK 0x03
///
/// ISA ACPI Protocol DMA resource attributes
///
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_MASK 0x03 ///< Bit mask of supported DMA speed attributes
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_COMPATIBILITY 0x00 ///< ISA controller supports compatibility mode DMA transfers
#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_F 0x03 ///< ISA controller supports type F DMA transfers
#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_BUS_MASTER 0x10 ///< ISA controller is a DMA bus master
#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_DMA_TRANSFER_TYPE_16_BIT 0x80 ///< ISA controller only supports 16-bit DMA transfers
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_COMPATIBILITY 0x00
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_A 0x01
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_B 0x02
#define EFI_ISA_ACPI_DMA_SPEED_TYPE_F 0x03
#define EFI_ISA_ACPI_DMA_COUNT_BY_BYTE 0x04
#define EFI_ISA_ACPI_DMA_COUNT_BY_WORD 0x08
#define EFI_ISA_ACPI_DMA_BUS_MASTER 0x10
#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT 0x20
#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT 0x40
#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_16_BIT 0x80
///
/// ISA ACPI Protocol MMIO resource attributes
///
#define EFI_ISA_ACPI_MEMORY_WIDTH_MASK 0x03 ///< Bit mask of supported ISA memory width attributes
#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT 0x00 ///< ISA MMIO region only supports 8-bit access
#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_AND_16_BIT 0x02 ///< ISA MMIO region supports both 8-bit and 16-bit access
#define EFI_ISA_ACPI_MEMORY_WRITEABLE 0x04 ///< ISA MMIO region supports write transactions
#define EFI_ISA_ACPI_MEMORY_CACHEABLE 0x08 ///< ISA MMIO region supports being cached
#define EFI_ISA_ACPI_MEMORY_SHADOWABLE 0x10 ///< ISA MMIO region may be shadowed
#define EFI_ISA_ACPI_MEMORY_EXPANSION_ROM 0x20 ///< ISA MMIO region is an expansion ROM
#define EFI_ISA_ACPI_MEMORY_WIDTH_MASK 0x03
///
/// ISA ACPI Protocol I/O resource attributes
///
#define EFI_ISA_ACPI_IO_DECODE_10_BITS 0x01 ///< ISA controllers uses a 10-bit address decoder for I/O cycles
#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_MEMORY_WIDTH_8_BIT 0x00
#define EFI_ISA_ACPI_MEMORY_WIDTH_16_BIT 0x01
#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT_AND_16_BIT 0x02
#define EFI_ISA_ACPI_MEMORY_WRITEABLE 0x04
#define EFI_ISA_ACPI_MEMORY_CACHEABLE 0x08
#define EFI_ISA_ACPI_MEMORY_SHADOWABLE 0x10
#define EFI_ISA_ACPI_MEMORY_EXPANSION_ROM 0x20
#define EFI_ISA_ACPI_IO_DECODE_10_BITS 0x01
#define EFI_ISA_ACPI_IO_DECODE_16_BITS 0x02
//
// Resource List definition:
//
///
/// EFI ISA ACPI resource type
///
typedef enum {
EfiIsaAcpiResourceEndOfList,
EfiIsaAcpiResourceIo,
EfiIsaAcpiResourceMemory,
EfiIsaAcpiResourceDma,
EfiIsaAcpiResourceInterrupt
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
} EFI_ISA_ACPI_RESOURCE_TYPE;
///
/// EFI ISA ACPI generic resource structure
///
typedef struct {
EFI_ISA_ACPI_RESOURCE_TYPE Type;
UINT32 Attribute;
UINT32 StartRange;
UINT32 EndRange;
EFI_ISA_ACPI_RESOURCE_TYPE Type; ///< The type of resource (I/O, MMIO, DMA, Interrupt)
UINT32 Attribute; ///< Bit mask of attributes associated with this resource. See EFI_ISA_ACPI_xxx macros for valid combinations.
UINT32 StartRange; ///< The start of the resource range
UINT32 EndRange; ///< The end of the resource range
} EFI_ISA_ACPI_RESOURCE;
///
/// EFI ISA ACPI resource device identifier
///
typedef struct {
UINT32 HID;
UINT32 UID;
UINT32 HID; ///< The ACPI Hardware Identifier value associated with an ISA controller. Matchs ACPI DSDT contents.
UINT32 UID; ///< The ACPI Unique Identifier value associated with an ISA controller. Matches ACPI DSDT contents.
} EFI_ISA_ACPI_DEVICE_ID;
///
/// EFI ISA ACPI resource list
///
typedef struct {
EFI_ISA_ACPI_DEVICE_ID Device;
EFI_ISA_ACPI_RESOURCE *ResourceItem;
EFI_ISA_ACPI_DEVICE_ID Device; ///< The ACPI HID/UID associated with an ISA controller
EFI_ISA_ACPI_RESOURCE *ResourceItem; ///< Pointer to the list of resources associated with an ISA controller
} EFI_ISA_ACPI_RESOURCE_LIST;
/**
Enumerate the ISA devices on the ISA bus.
Enumerates the ISA controllers on an ISA bus.
@param This Pointer to EFI_ISA_ACPI_PROTOCOL.
@param Device Found next ISA device.
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_SUCESS is returned. If Device is a pointer
to 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.
@retval EFI_NOT_FOUND No device found.
@retval EFI_SUCCESS Success get the next ISA device.
@param[in] This Pointer to the EFI_ISA_ACPI_PROTOCOL instance.
@param[out] Device Pointer to an ISA controller named by ACPI HID/UID.
@retval EFI_SUCCESS The next ISA controller on the ISA bus was returned.
@retval EFI_NOT_FOUND No device found.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_ISA_ACPI_DEVICE_ENUMERATE) (
IN EFI_ISA_ACPI_PROTOCOL *This,
OUT EFI_ISA_ACPI_DEVICE_ID **Device
(EFIAPI *EFI_ISA_ACPI_DEVICE_ENUMERATE)(
IN EFI_ISA_ACPI_PROTOCOL *This,
OUT EFI_ISA_ACPI_DEVICE_ID **Device
);
/**
Set ISA device power.
Sets the power state of an ISA controller.
@param This Pointer to EFI_ISA_ACPI_PROTOCOL.
@param Device ISA device.
@param OnOff Whether to set power on or off.
This services sets the power state of the ISA controller specified by Device to
the power state specified by OnOff. If OnOff is TRUE, then power is applied to
the ISA controller. If OnOff is FALSE, then power is remobed from the ISA
controller. If the power state is sucessfully set on the ISA Controller, then
EFI_SUCCESS is returned.
@retval EFI_SUCCESS Successfully set ISA device.
@param[in] This Pointer to the EFI_ISA_ACPI_PROTOCOL instance.
@param[in] Device Pointer to an ISA controller named by ACPI HID/UID.
@param[in] OnOff TRUE to apply power to the ISA controller. FALSE to remove
power from the ISA controller.
@retval EFI_SUCCESS Successfully set the power state of the ISA controller.
@retval Other The ISA controller cound not be placed in the requested power state.
**/
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
(EFIAPI *EFI_ISA_ACPI_SET_DEVICE_POWER)(
IN EFI_ISA_ACPI_PROTOCOL *This,
IN EFI_ISA_ACPI_DEVICE_ID *Device,
IN BOOLEAN OnOff
);
/**
Get current Resource of the specific ISA device.
Retrieves the current set of resource associated with an ISA controller.
@param This Pointer to EFI_ISA_ACPI_PROTOCOL.
@param Device ISA device.
@param ResourceList Returned resource list.
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.
@retval EFI_SUCCESS Successfully get current resource.
@retval EFI_NOT_FOUND No resource found.
@param[in] This Pointer to the EFI_ISA_ACPI_PROTOCOL instance.
@param[in] Device Pointer to an ISA controller named by ACPI HID/UID.
@param[out] ResourceList Pointer to the current resource list for Device.
@retval EFI_SUCCESS Successfully retrieved the current resource list.
@retval EFI_NOT_FOUND The resource list could not be retrieved.
**/
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
(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
);
/**
Get possible resource for the specific ISA device.
Retrieves the set of possible resources that may be assigned to an ISA controller
with SetResource().
@param This Pointer to EFI_ISA_ACPI_PROTOCOL.
@param Device ISA device.
@param ResourceList Returned resource list.
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.
@param[in] This Pointer to the EFI_ISA_ACPI_PROTOCOL instance.
@param[in] Device Pointer to an ISA controller named by ACPI HID/UID.
@param[out] ResourceList Pointer to the returned list of resource lists.
@retval EFI_UNSUPPORTED This services is not supported.
@retval EFI_SUCCESS Successfully get possible resource.
@retval EFI_NOT_FOUND No resource found.
**/
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
(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
);
/**
Set resources for the specific ISA device.
Assigns resources to an ISA controller.
@param This Pointer to EFI_ISA_ACPI_PROTOCOL.
@param Device ISA device.
@param ResourceList Resource list will be set.
Assigns the I/O, MMIO, DMA, and interrupt resources specified by ResourceList
to the ISA controller specified by Device. ResourceList must match on of the
possible resource lists returned by GetPosResource() for the same ISA controller.
@retval EFI_SUCCESS Successfully set resource.
@param[in] This Pointer to the EFI_ISA_ACPI_PROTOCOL instance.
@param[in] Device Pointer to an ISA controller named by ACPI HID/UID.
@param[in] ResourceList Pointer to a resources list that must be one of the
resource lists returned by GetPosResource() for the
ISA controller specified by Device.
@retval EFI_SUCCESS Successfully set resources on the ISA controller.
@retval Other The resources could not be set for the ISA controller.
**/
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
(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
);
/**
Enable or disable ISA device.
Enables or disables an ISA controller.
@param This Pointer of EFI_ISA_ACPI_PROTOCOL.
@param Device ISA device.
@param Enable Enable/Disable.
@param[in] This Pointer to the EFI_ISA_ACPI_PROTOCOL instance.
@param[in] Device Pointer to the ISA controller to enable/disable.
@param[in] Enable TRUE to enable the ISA controller. FALSE to disable the
ISA controller.
@retval EFI_SUCCESS Successfully perform this action.
@retval EFI_SUCCESS Successfully enabled/disabled the ISA controller.
@retval Other The ISA controller cound not be placed in the requested state.
**/
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
(EFIAPI *EFI_ISA_ACPI_ENABLE_DEVICE)(
IN EFI_ISA_ACPI_PROTOCOL *This,
IN EFI_ISA_ACPI_DEVICE_ID *Device,
IN BOOLEAN Enable
);
/**
Init ISA device.
Places an ISA controller into a usable state. This service must be called
before SetResource(), EnableDevice(), or SetPower() will behave as expected.
@param This Pointer to EFI_ISA_ACPI_PROTOCOL.
@param Device ISA device.
@param[in] This Pointer to the EFI_ISA_ACPI_PROTOCOL instance.
@param[in] Device Pointer to an ISA controller named by ACPI HID/UID.
@retval EFI_SUCCESS Successfully initialize ISA device.
@retval EFI_SUCCESS Successfully initialized an ISA controller.
@retval Other The ISA controller could not be initialized.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_ISA_ACPI_INIT_DEVICE) (
IN EFI_ISA_ACPI_PROTOCOL *This,
IN EFI_ISA_ACPI_DEVICE_ID *Device
(EFIAPI *EFI_ISA_ACPI_INIT_DEVICE)(
IN EFI_ISA_ACPI_PROTOCOL *This,
IN EFI_ISA_ACPI_DEVICE_ID *Device
);
/**
ISA Interface Init.
Initializes all the HW state required for the ISA controlers on the ISA bus
to be enumerated and managed by this 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.
@param[in] This Pointer to the EFI_ISA_ACPI_PROTOCOL instance.
@param This Pointer of EFI_ISA_ACPI_PROTOCOL.
@retval EFI_SUCCESS Successfully initialize ISA interface.
@retval EFI_SUCCESS Successfully initialized the ISA interface.
@retval Other The ISA interface could not be initialized.
**/
typedef
EFI_STATUS
(EFIAPI *EFI_ISA_ACPI_INTERFACE_INIT) (
IN EFI_ISA_ACPI_PROTOCOL *This
(EFIAPI *EFI_ISA_ACPI_INTERFACE_INIT)(
IN EFI_ISA_ACPI_PROTOCOL *This
);
//
// Interface structure for the ISA ACPI Protocol
//
///
/// The EFI_ISA_ACPI_PROTOCOL provides the services to enumberate and manage
/// ISA controllers on an ISA bus. This include the ability to initialize,
/// enable, disable, and manag the power state of ISA controllers. It also
/// includes services to query current ressources, query possible resources,
/// and assign resources to an ISA controller.
///
struct _EFI_ISA_ACPI_PROTOCOL {
EFI_ISA_ACPI_DEVICE_ENUMERATE DeviceEnumerate;
EFI_ISA_ACPI_SET_DEVICE_POWER SetPower;
EFI_ISA_ACPI_GET_CUR_RESOURCE GetCurResource;
EFI_ISA_ACPI_GET_POS_RESOURCE GetPosResource;
EFI_ISA_ACPI_SET_RESOURCE SetResource;
EFI_ISA_ACPI_ENABLE_DEVICE EnableDevice;
EFI_ISA_ACPI_INIT_DEVICE InitDevice;
EFI_ISA_ACPI_INTERFACE_INIT InterfaceInit;
EFI_ISA_ACPI_DEVICE_ENUMERATE DeviceEnumerate;
EFI_ISA_ACPI_SET_DEVICE_POWER SetPower;
EFI_ISA_ACPI_GET_CUR_RESOURCE GetCurResource;
EFI_ISA_ACPI_GET_POS_RESOURCE GetPosResource;
EFI_ISA_ACPI_SET_RESOURCE SetResource;
EFI_ISA_ACPI_ENABLE_DEVICE EnableDevice;
EFI_ISA_ACPI_INIT_DEVICE InitDevice;
EFI_ISA_ACPI_INTERFACE_INIT InterfaceInit;
};
extern EFI_GUID gEfiIsaAcpiProtocolGuid;