aboutsummaryrefslogtreecommitdiff
path: root/efi32/include/efi/protocol/piflash64.h
diff options
context:
space:
mode:
Diffstat (limited to 'efi32/include/efi/protocol/piflash64.h')
-rw-r--r--efi32/include/efi/protocol/piflash64.h121
1 files changed, 121 insertions, 0 deletions
diff --git a/efi32/include/efi/protocol/piflash64.h b/efi32/include/efi/protocol/piflash64.h
new file mode 100644
index 0000000..d521dfc
--- /dev/null
+++ b/efi32/include/efi/protocol/piflash64.h
@@ -0,0 +1,121 @@
+#ifndef _PIFLASH64_H
+#define _PIFLASH64_H
+
+/*++
+
+Copyright (c) 1999 Intel Corporation
+
+Module Name:
+
+ PIflash64.h
+
+Abstract:
+
+ Iflash64.efi protocol to abstract iflash from
+ the system.
+
+Revision History
+
+--*/
+
+//
+// Guid that identifies the IFLASH protocol
+//
+#define IFLASH64_PROTOCOL_PROTOCOL \
+ { 0x65cba110, 0x74ab, 0x11d3, 0xbb, 0x89, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 };
+
+//
+// Unlock FLASH from StartAddress to EndAddress and return a LockKey
+//
+typedef
+EFI_STATUS
+(EFIAPI *UNLOCK_FLASH_API)(
+ IN struct _IFLASH64_PROTOCOL_INTERFACE *This
+ );
+
+//
+// Lock the flash represented by the LockKey
+//
+typedef
+EFI_STATUS
+(EFIAPI *LOCK_FLASH_API)(
+ IN struct _IFLASH64_PROTOCOL_INTERFACE *This
+ );
+
+//
+// Status callback for a utility like IFLASH64
+//
+// Token would map to a list like Ted proposed. The utility has no idea what
+// happens on the other side.
+// ErrorStatus - Level of Error or success. Independent of Token. If you
+// don't know the token you will at least know pass or fail.
+// String - Optional extra information about the error. Could be used for
+// debug or future expansion
+//
+// Attributes - Options screen attributes for String. Could allow the string to be different colors.
+//
+typedef
+EFI_STATUS
+(EFIAPI *UTILITY_PROGRESS_API)(
+ IN struct _IFLASH64_PROTOCOL_INTERFACE *This,
+ IN UINTN Token,
+ IN EFI_STATUS ErrorStatus,
+ IN CHAR16 *String, OPTIONAL
+ IN UINTN *Attributes OPTIONAL
+ );
+
+//
+// Token Values
+//
+// IFlash64 Token Codes
+#define IFLASH_TOKEN_IFLASHSTART 0xB0 // IFlash64 has started
+#define IFLASH_TOKEN_READINGFILE 0xB1 // Reading File
+#define IFLASH_TOKEN_INITVPP 0xB2 // Initializing Vpp
+#define IFLASH_TOKEN_DISABLEVPP 0x10 // Disable Vpp
+#define IFLASH_TOKEN_FLASHUNLOCK 0xB3 // Unlocking FLASH Devices
+#define IFLASH_TOKEN_FLASHERASE 0xB4 // Erasing FLASH Devices
+#define IFLASH_TOKEN_FLASHPROGRAM 0xB5 // Programming FLASH
+#define IFLASH_TOKEN_FLASHVERIFY 0xB6 // Verifying FLASH
+#define IFLASH_TOKEN_UPDATESUCCES 0xB7 // FLASH Updage Success!
+
+#define IFLASH_TOKEN_PROGRESS_READINGFILE 0x11 // % Reading File
+#define IFLASH_TOKEN_PROGRESS_FLASHUNLOCK 0x13 // % Unlocking FLASH Devices
+#define IFLASH_TOKEN_PROGRESS_FLASHERASE 0x14 // % Erasing FLASH Devices
+#define IFLASH_TOKEN_PROGRESS_FLASHPROGRAM 0x15 // % Programming FLASH
+#define IFLASH_TOKEN_PROGRESS_FLASHVERIFY 0x16 // % Verifying FLASH
+
+#define IFLASH_TOKEN_READINGFILE_ER 0xB8 // File Read Error
+#define IFLASH_TOKEN_INITVPP_ER 0xB9 // Initialization of IFB Error
+#define IFLASH_TOKEN_FLASHUNLOCK_ER 0xBA // FLASH Unlock Error
+#define IFLASH_TOKEN_FLASHERASE_ER 0xBB // FLASH Erase Error
+#define IFLASH_TOKEN_FLASHVERIFY_ER 0xBC // FLASH Verify Error
+#define IFLASH_TOKEN_FLASHPROG_ER 0xBD // FLASH Program Error
+
+#define IFLASH_TABLE_END 0x00
+
+//
+// If this number changes one of the existing API's has changes
+//
+#define IFLASH_PI_MAJOR_VERSION 0x01
+
+//
+// This number changes when new APIs or data variables get added to the end
+// of the data structure
+//
+#define IFLASH_PI_MINOR_VERSION 0x01
+
+typedef struct _IFLASH64_PROTOCOL_INTERFACE {
+ UINT32 MajorVersion;
+ UINT32 MinorVersion;
+ UNLOCK_FLASH_API UnlockFlash;
+ LOCK_FLASH_API LockFlash;
+ UTILITY_PROGRESS_API Progress;
+
+ //
+ // Future expansion goes here
+ //
+
+} IFLASH64_PROTOCOL_INTERFACE;
+
+
+#endif