summaryrefslogtreecommitdiff
path: root/IntelFrameworkModulePkg/Include/Protocol
diff options
context:
space:
mode:
authorqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>2007-06-26 08:14:44 +0000
committerqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>2007-06-26 08:14:44 +0000
commita9102619d488c92947605380f00c10e4651f4dc6 (patch)
tree31697b9a99405471402be7061558fb4491ecab6f /IntelFrameworkModulePkg/Include/Protocol
parenta9c9a31de867c87a4823414f057bc17632e9804a (diff)
downloadedk2-platforms-a9102619d488c92947605380f00c10e4651f4dc6.tar.xz
1. Create Intel Framework Module Package directory
2. Complete the public inclusion files git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2746 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'IntelFrameworkModulePkg/Include/Protocol')
-rw-r--r--IntelFrameworkModulePkg/Include/Protocol/IsaAcpi.h177
-rw-r--r--IntelFrameworkModulePkg/Include/Protocol/PciHotPlugInit.h165
-rw-r--r--IntelFrameworkModulePkg/Include/Protocol/PciHotPlugRequest.h54
-rw-r--r--IntelFrameworkModulePkg/Include/Protocol/VgaMiniPort.h72
4 files changed, 468 insertions, 0 deletions
diff --git a/IntelFrameworkModulePkg/Include/Protocol/IsaAcpi.h b/IntelFrameworkModulePkg/Include/Protocol/IsaAcpi.h
new file mode 100644
index 0000000000..8e7402d667
--- /dev/null
+++ b/IntelFrameworkModulePkg/Include/Protocol/IsaAcpi.h
@@ -0,0 +1,177 @@
+/*++
+
+Copyright (c) 2006, 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.
+
+Module Name:
+
+ IsaAcpi.h
+
+Abstract:
+
+ EFI ISA Acpi Protocol
+
+Revision History
+
+--*/
+
+#ifndef __ISA_ACPI_H_
+#define __ISA_ACPI_H_
+
+#define EFI_ISA_ACPI_PROTOCOL_GUID \
+ { 0x64a892dc, 0x5561, 0x4536, { 0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55 } }
+
+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
+
+#define EFI_ISA_ACPI_DMA_SPEED_TYPE_MASK 0x03
+
+#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
+
+#define EFI_ISA_ACPI_MEMORY_WIDTH_MASK 0x03
+
+#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:
+// at first, the resource was defined as below
+// but in the future, it will be defined again that follow ACPI spec: ACPI resource type
+// so that, in this driver, we can interpret the ACPI table and get the ISA device information.
+//
+
+typedef enum {
+ EfiIsaAcpiResourceEndOfList,
+ EfiIsaAcpiResourceIo,
+ EfiIsaAcpiResourceMemory,
+ EfiIsaAcpiResourceDma,
+ EfiIsaAcpiResourceInterrupt
+} EFI_ISA_ACPI_RESOURCE_TYPE;
+
+typedef struct {
+ EFI_ISA_ACPI_RESOURCE_TYPE Type;
+ UINT32 Attribute;
+ UINT32 StartRange;
+ UINT32 EndRange;
+} EFI_ISA_ACPI_RESOURCE;
+
+typedef struct {
+ UINT32 HID;
+ UINT32 UID;
+} EFI_ISA_ACPI_DEVICE_ID;
+
+typedef struct {
+ EFI_ISA_ACPI_DEVICE_ID Device;
+ EFI_ISA_ACPI_RESOURCE *ResourceItem;
+} EFI_ISA_ACPI_RESOURCE_LIST;
+
+//
+// Prototypes for the 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
+ );
+
+//
+// Interface structure for the ISA ACPI Protocol
+//
+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;
+};
+
+extern EFI_GUID gEfiIsaAcpiProtocolGuid;
+
+#endif
diff --git a/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugInit.h b/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugInit.h
new file mode 100644
index 0000000000..342d5b2aaf
--- /dev/null
+++ b/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugInit.h
@@ -0,0 +1,165 @@
+/** @file
+ This file declares EFI PCI Hot Plug Init Protocol
+
+ Copyright (c) 2006, 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.
+
+ Module Name: PciHotPlugInit.h
+
+ @par Revision Reference:
+ This protocol is defined in Framework of EFI Hot Plug Pci Initialization Protocol Spec
+ Version 0.9
+
+**/
+
+#ifndef __EFI_PCI_HOT_PLUG_INIT_H_
+#define __EFI_PCI_HOT_PLUG_INIT_H_
+
+//
+// Global ID for the PCI Hot Plug Protocol
+//
+#define EFI_PCI_HOT_PLUG_INIT_PROTOCOL_GUID \
+ { 0xaa0e8bc1, 0xdabc, 0x46b0, {0xa8, 0x44, 0x37, 0xb8, 0x16, 0x9b, 0x2b, 0xea } }
+
+
+typedef struct _EFI_PCI_HOT_PLUG_INIT_PROTOCOL EFI_PCI_HOT_PLUG_INIT_PROTOCOL;
+
+#define EFI_HPC_STATE_INITIALIZED 0x01
+#define EFI_HPC_STATE_ENABLED 0x02
+
+typedef UINT16 EFI_HPC_STATE;
+
+
+typedef struct{
+ EFI_DEVICE_PATH_PROTOCOL *HpcDevicePath;
+ EFI_DEVICE_PATH_PROTOCOL *HpbDevicePath;
+} EFI_HPC_LOCATION;
+
+
+typedef enum{
+ EfiPaddingPciBus,
+ EfiPaddingPciRootBridge
+} EFI_HPC_PADDING_ATTRIBUTES;
+
+/**
+ Returns a list of root Hot Plug Controllers (HPCs) that require initialization
+ during the boot process.
+
+ @param This Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance.
+ @param HpcCount The number of root HPCs that were returned.
+ @param HpcList The list of root HPCs. HpcCount defines the number of
+ elements in this list.
+
+ @retval EFI_SUCCESS HpcList was returned.
+ @retval EFI_OUT_OF_RESOURCES HpcList was not returned due to insufficient resources.
+ @retval EFI_INVALID_PARAMETER HpcCount is NULL or HpcList is NULL.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_GET_ROOT_HPC_LIST) (
+ IN EFI_PCI_HOT_PLUG_INIT_PROTOCOL *This,
+ OUT UINTN *HpcCount,
+ OUT EFI_HPC_LOCATION **HpcList
+);
+
+/**
+ Initializes one root Hot Plug Controller (HPC). This process may causes
+ initialization of its subordinate buses.
+
+ @param This Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance.
+ @param HpcDevicePath The device path to the HPC that is being initialized.
+ @param HpcPciAddress The address of the HPC function on the PCI bus.
+ @param Event The event that should be signaled when the HPC initialization
+ is complete.
+ @param HpcState The state of the HPC hardware.
+
+ @retval EFI_SUCCESS If Event is NULL, the specific HPC was successfully
+ initialized. If Event is not NULL, Event will be signaled at a later time
+ when initialization is complete.
+ @retval EFI_UNSUPPORTED This instance of EFI_PCI_HOT_PLUG_INIT_PROTOCOL
+ does not support the specified HPC.
+ @retval EFI_OUT_OF_RESOURCES Initialization failed due to insufficient
+ resources.
+ @retval EFI_INVALID_PARAMETER HpcState is NULL.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_INITIALIZE_ROOT_HPC) (
+ IN EFI_PCI_HOT_PLUG_INIT_PROTOCOL *This,
+ IN EFI_DEVICE_PATH_PROTOCOL *HpcDevicePath,
+ IN UINT64 HpcPciAddress,
+ IN EFI_EVENT Event, OPTIONAL
+ OUT EFI_HPC_STATE *HpcState
+);
+
+/**
+ Returns the resource padding that is required by the PCI bus that is controlled
+ by the specified Hot Plug Controller (HPC).
+
+ @param This Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance.
+ @param HpcDevicePath The device path to the HPC.
+ @param HpcPciAddress The address of the HPC function on the PCI bus.
+ @param HpcState The state of the HPC hardware.
+ @param Padding The amount of resource padding that is required by the
+ PCI bus under the control of the specified HPC.
+ @param Attributes Describes how padding is accounted for. The padding
+ is returned in the form of ACPI 2.0 resource descriptors.
+
+ @retval EFI_SUCCESS The resource padding was successfully returned.
+ @retval EFI_UNSUPPORTED This instance of the EFI_PCI_HOT_PLUG_INIT_PROTOCOL
+ does not support the specified HPC.
+ @retval EFI_NOT_READY This function was called before HPC initialization is complete.
+ @retval EFI_INVALID_PARAMETER HpcState or Padding or Attributes is NULL.
+ @retval EFI_OUT_OF_RESOURCES ACPI 2.0 resource descriptors for Padding
+ cannot be allocated due to insufficient resources.
+
+**/
+typedef
+EFI_STATUS
+(EFIAPI *EFI_GET_PCI_HOT_PLUG_PADDING) (
+ IN EFI_PCI_HOT_PLUG_INIT_PROTOCOL *This,
+ IN EFI_DEVICE_PATH_PROTOCOL *HpcDevicePath,
+ IN UINT64 HpcPciAddress,
+ OUT EFI_HPC_STATE *HpcState,
+ OUT VOID **Padding,
+ OUT EFI_HPC_PADDING_ATTRIBUTES *Attributes
+);
+
+
+//
+// Prototypes for the PCI Hot Plug Init Protocol
+//
+
+/**
+ @par Protocol Description:
+ This protocol provides the necessary functionality to initialize the
+ Hot Plug Controllers (HPCs) and the buses that they control. This protocol
+ also provides information regarding resource padding.
+
+ @param GetRootHpcList
+ Returns a list of root HPCs and the buses that they control.
+
+ @param InitializeRootHpc
+ Initializes the specified root HPC.
+
+ @param GetResourcePadding
+ Returns the resource padding that is required by the HPC.
+
+**/
+struct _EFI_PCI_HOT_PLUG_INIT_PROTOCOL {
+ EFI_GET_ROOT_HPC_LIST GetRootHpcList;
+ EFI_INITIALIZE_ROOT_HPC InitializeRootHpc;
+ EFI_GET_PCI_HOT_PLUG_PADDING GetResourcePadding;
+};
+
+extern EFI_GUID gEfiPciHotPlugInitProtocolGuid;
+
+#endif
diff --git a/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugRequest.h b/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugRequest.h
new file mode 100644
index 0000000000..0aa641e3c0
--- /dev/null
+++ b/IntelFrameworkModulePkg/Include/Protocol/PciHotPlugRequest.h
@@ -0,0 +1,54 @@
+/*++
+
+Copyright (c) 2006, 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.
+
+Module Name:
+
+ PciHotPlugRequest.h
+
+Abstract:
+
+
+
+--*/
+
+#ifndef __PCI_HOTPLUG_REQUEST_H_
+#define __PCI_HOTPLUG_REQUEST_H_
+
+#define EFI_PCI_HOTPLUG_REQUEST_PROTOCOL_GUID \
+{0x19cb87ab,0x2cb9,{0x4665,0x83,0x60,0xdd,0xcf,0x60,0x54,0xf7,0x9d}}
+
+typedef enum {
+ EfiPciHotPlugRequestAdd,
+ EfiPciHotplugRequestRemove
+} EFI_PCI_HOTPLUG_OPERATION;
+
+typedef struct _EFI_PCI_HOTPLUG_REQUEST_PROTOCOL EFI_PCI_HOTPLUG_REQUEST_PROTOCOL;
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_PCI_HOTPLUG_REQUEST_NOTIFY) (
+ IN EFI_PCI_HOTPLUG_REQUEST_PROTOCOL *This,
+ IN EFI_PCI_HOTPLUG_OPERATION Operation,
+ IN EFI_HANDLE Controller,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL,
+ IN OUT UINT8 *NumberOfChildren,
+ IN OUT EFI_HANDLE *ChildHandleBuffer
+);
+
+
+
+struct _EFI_PCI_HOTPLUG_REQUEST_PROTOCOL {
+ EFI_PCI_HOTPLUG_REQUEST_NOTIFY Notify;
+};
+
+extern EFI_GUID gEfiPciHotPlugRequestProtocolGuid;
+
+#endif
diff --git a/IntelFrameworkModulePkg/Include/Protocol/VgaMiniPort.h b/IntelFrameworkModulePkg/Include/Protocol/VgaMiniPort.h
new file mode 100644
index 0000000000..b20a3afb4d
--- /dev/null
+++ b/IntelFrameworkModulePkg/Include/Protocol/VgaMiniPort.h
@@ -0,0 +1,72 @@
+/*++
+
+Copyright (c) 2006, 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.
+
+
+Module Name:
+
+ VgaMiniPort.h
+
+Abstract:
+
+ Vga Mini port binding for a VGA controller
+
+Revision History
+
+--*/
+
+#ifndef __VGA_MINI_PORT_H_
+#define __VGA_MINI_PORT_H_
+
+#define EFI_VGA_MINI_PORT_PROTOCOL_GUID \
+ { \
+ 0xc7735a2f, 0x88f5, 0x4882, {0xae, 0x63, 0xfa, 0xac, 0x8c, 0x8b, 0x86, 0xb3 } \
+ }
+
+typedef struct _EFI_VGA_MINI_PORT_PROTOCOL EFI_VGA_MINI_PORT_PROTOCOL;
+
+typedef
+EFI_STATUS
+(EFIAPI *EFI_VGA_MINI_PORT_SET_MODE) (
+ IN EFI_VGA_MINI_PORT_PROTOCOL * This,
+ IN UINTN ModeNumber
+ );
+
+/*++
+
+ Routine Description:
+ Sets the text display mode of a VGA controller
+
+ Arguments:
+ This - Protocol instance pointer.
+ Mode - Mode number. 0 - 80x25 1-80x50
+
+ Returns:
+ EFI_SUCCESS - The mode was set
+ EFI_DEVICE_ERROR - The device is not functioning properly.
+
+--*/
+struct _EFI_VGA_MINI_PORT_PROTOCOL {
+ EFI_VGA_MINI_PORT_SET_MODE SetMode;
+
+ UINT64 VgaMemoryOffset;
+ UINT64 CrtcAddressRegisterOffset;
+ UINT64 CrtcDataRegisterOffset;
+
+ UINT8 VgaMemoryBar;
+ UINT8 CrtcAddressRegisterBar;
+ UINT8 CrtcDataRegisterBar;
+
+ UINT8 MaxMode;
+};
+
+extern EFI_GUID gEfiVgaMiniPortProtocolGuid;
+
+#endif