]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Vlv2DeviceRefCodePkg/ValleyView2Soc/SouthCluster/Include/Protocol/ActiveBiosProtocol.h
Upload BSD-licensed Vlv2TbltDevicePkg and Vlv2DeviceRefCodePkg to
[mirror_edk2.git] / Vlv2DeviceRefCodePkg / ValleyView2Soc / SouthCluster / Include / Protocol / ActiveBiosProtocol.h
diff --git a/Vlv2DeviceRefCodePkg/ValleyView2Soc/SouthCluster/Include/Protocol/ActiveBiosProtocol.h b/Vlv2DeviceRefCodePkg/ValleyView2Soc/SouthCluster/Include/Protocol/ActiveBiosProtocol.h
new file mode 100644 (file)
index 0000000..e59cfc0
--- /dev/null
@@ -0,0 +1,131 @@
+/**\r
+  This protocol is used to report and control what BIOS is mapped to the\r
+  BIOS address space anchored at 4GB boundary.\r
+\r
+  This protocol is EFI compatible.\r
+\r
+  E.G. For current generation ICH, the 4GB-16MB to 4GB range can be mapped\r
+  to PCI, SPI, or FWH.\r
+\r
+Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR>\r
+\r
+  This program and the accompanying materials are licensed and made available under\r
+  the terms and conditions of the BSD License that accompanies this distribution.\r
+  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php.\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+\r
+**/\r
+\r
+\r
+#ifndef _EFI_ACTIVE_BIOS_PROTOCOL_H_\r
+#define _EFI_ACTIVE_BIOS_PROTOCOL_H_\r
+\r
+//\r
+// Define the  protocol GUID\r
+//\r
+#define EFI_ACTIVE_BIOS_PROTOCOL_GUID  \\r
+  { 0xebbe2d1b, 0x1647, 0x4bda, {0xab, 0x9a, 0x78, 0x63, 0xe3, 0x96, 0xd4, 0x1a} }\r
+\r
+typedef struct _EFI_ACTIVE_BIOS_PROTOCOL EFI_ACTIVE_BIOS_PROTOCOL;\r
+\r
+//\r
+// Protocol definitions\r
+//\r
+typedef enum {\r
+  ActiveBiosStateSpi,\r
+  ActiveBiosStatePci,\r
+  ActiveBiosStateLpc,\r
+  ActiveBiosStateMax\r
+} EFI_ACTIVE_BIOS_STATE;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_ACTIVE_BIOS_SET_ACTIVE_BIOS_STATE) (\r
+  IN EFI_ACTIVE_BIOS_PROTOCOL     *This,\r
+  IN EFI_ACTIVE_BIOS_STATE        DesiredState,\r
+  IN UINTN                        Key\r
+  );\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  Change the current active BIOS settings to the requested state.\r
+  The caller is responsible for requesting a supported state from\r
+  the EFI_ACTIVE_BIOS_STATE selections.\r
+\r
+  This will fail if someone has locked the interface and the correct key is\r
+  not provided.\r
+\r
+Arguments:\r
+\r
+  This                    Pointer to the EFI_ACTIVE_BIOS_PROTOCOL instance.\r
+  DesiredState            The requested state to configure the system for.\r
+  Key                     If the interface is locked, Key must be the Key\r
+                          returned from the LockState function call.\r
+\r
+Returns:\r
+\r
+  EFI_SUCCESS             Command succeed.\r
+  EFI_ACCESS_DENIED       The interface is currently locked.\r
+  EFI_DEVICE_ERROR        Device error, command aborts abnormally.\r
+\r
+--*/\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_ACTIVE_BIOS_LOCK_ACTIVE_BIOS_STATE) (\r
+  IN     EFI_ACTIVE_BIOS_PROTOCOL   *This,\r
+  IN     BOOLEAN                    Lock,\r
+  IN OUT UINTN                      *Key\r
+  );\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  Lock the current active BIOS state from further changes.  This allows a\r
+  caller to implement a critical section.  This is optionally supported\r
+  functionality.  Size conscious implementations may choose to require\r
+  callers cooperate without support from this protocol.\r
+\r
+Arguments:\r
+\r
+  This                    Pointer to the EFI_ACTIVE_BIOS_PROTOCOL instance.\r
+  Lock                    TRUE to lock the current state, FALSE to unlock.\r
+  Key                     If Lock is TRUE, then a key will be returned.  If\r
+                          Lock is FALSE, the key returned from the prior call\r
+                          to lock the protocol must be provided to unlock the\r
+                          protocol.  The value of Key is undefined except that it\r
+                          will never be 0.\r
+\r
+Returns:\r
+\r
+  EFI_SUCCESS             Command succeed.\r
+  EFI_UNSUPPORTED         The function is not supported.\r
+  EFI_ACCESS_DENIED       The interface is currently locked.\r
+  EFI_DEVICE_ERROR        Device error, command aborts abnormally.\r
+\r
+--*/\r
+\r
+//\r
+// Protocol definition\r
+//\r
+// Note that some functions are optional.  This means that they may be NULL.\r
+// Caller is required to verify that an optional function is defined by checking\r
+// that the value is not NULL.\r
+//\r
+struct _EFI_ACTIVE_BIOS_PROTOCOL {\r
+  EFI_ACTIVE_BIOS_STATE                       State;\r
+  EFI_ACTIVE_BIOS_SET_ACTIVE_BIOS_STATE       SetState;\r
+  EFI_ACTIVE_BIOS_LOCK_ACTIVE_BIOS_STATE      LockState;\r
+};\r
+\r
+//\r
+// Extern the GUID for protocol users.\r
+//\r
+extern EFI_GUID gEfiActiveBiosProtocolGuid;\r
+\r
+#endif\r