Home | History | Annotate | Line # | Download | only in protocol
      1  1.1  jakllsch /*	$NetBSD: piflash64.h,v 1.1.1.1 2014/04/01 16:16:07 jakllsch Exp $	*/
      2  1.1  jakllsch 
      3  1.1  jakllsch #ifndef _PIFLASH64_H
      4  1.1  jakllsch #define _PIFLASH64_H
      5  1.1  jakllsch 
      6  1.1  jakllsch /*++
      7  1.1  jakllsch 
      8  1.1  jakllsch Copyright (c) 1999  Intel Corporation
      9  1.1  jakllsch 
     10  1.1  jakllsch Module Name:
     11  1.1  jakllsch 
     12  1.1  jakllsch     PIflash64.h
     13  1.1  jakllsch 
     14  1.1  jakllsch Abstract:
     15  1.1  jakllsch 
     16  1.1  jakllsch     Iflash64.efi protocol to abstract iflash from
     17  1.1  jakllsch     the system.
     18  1.1  jakllsch 
     19  1.1  jakllsch Revision History
     20  1.1  jakllsch 
     21  1.1  jakllsch --*/
     22  1.1  jakllsch 
     23  1.1  jakllsch //
     24  1.1  jakllsch // Guid that identifies the IFLASH protocol
     25  1.1  jakllsch //
     26  1.1  jakllsch #define IFLASH64_PROTOCOL_PROTOCOL \
     27  1.1  jakllsch     { 0x65cba110, 0x74ab, 0x11d3, 0xbb, 0x89, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 };
     28  1.1  jakllsch 
     29  1.1  jakllsch //
     30  1.1  jakllsch // Unlock FLASH from StartAddress to EndAddress and return a LockKey
     31  1.1  jakllsch //
     32  1.1  jakllsch typedef
     33  1.1  jakllsch EFI_STATUS
     34  1.1  jakllsch (EFIAPI *UNLOCK_FLASH_API)(
     35  1.1  jakllsch     IN struct _IFLASH64_PROTOCOL_INTERFACE  *This
     36  1.1  jakllsch     );
     37  1.1  jakllsch 
     38  1.1  jakllsch //
     39  1.1  jakllsch // Lock the flash represented by the LockKey
     40  1.1  jakllsch //
     41  1.1  jakllsch typedef
     42  1.1  jakllsch EFI_STATUS
     43  1.1  jakllsch (EFIAPI *LOCK_FLASH_API)(
     44  1.1  jakllsch     IN struct _IFLASH64_PROTOCOL_INTERFACE  *This
     45  1.1  jakllsch     );
     46  1.1  jakllsch 
     47  1.1  jakllsch //
     48  1.1  jakllsch // Status callback for a utility like IFLASH64
     49  1.1  jakllsch //
     50  1.1  jakllsch //  Token would map to a list like Ted proposed. The utility has no idea what
     51  1.1  jakllsch //      happens on the other side.
     52  1.1  jakllsch //  ErrorStatus - Level of Error or success. Independent of Token. If you
     53  1.1  jakllsch //      don't know the token you will at least know pass or fail.
     54  1.1  jakllsch //  String - Optional extra information about the error. Could be used for
     55  1.1  jakllsch //      debug or future expansion
     56  1.1  jakllsch //
     57  1.1  jakllsch //  Attributes - Options screen attributes for String. Could allow the string to be different colors.
     58  1.1  jakllsch //
     59  1.1  jakllsch typedef
     60  1.1  jakllsch EFI_STATUS
     61  1.1  jakllsch (EFIAPI *UTILITY_PROGRESS_API)(
     62  1.1  jakllsch     IN struct _IFLASH64_PROTOCOL_INTERFACE  *This,
     63  1.1  jakllsch     IN  UINTN                               Token,
     64  1.1  jakllsch     IN  EFI_STATUS                          ErrorStatus,
     65  1.1  jakllsch     IN  CHAR16                              *String,    OPTIONAL
     66  1.1  jakllsch     IN  UINTN                               *Attributes OPTIONAL
     67  1.1  jakllsch     );
     68  1.1  jakllsch 
     69  1.1  jakllsch //
     70  1.1  jakllsch // Token Values
     71  1.1  jakllsch //
     72  1.1  jakllsch // IFlash64 Token Codes
     73  1.1  jakllsch #define IFLASH_TOKEN_IFLASHSTART    0xB0                // IFlash64 has started
     74  1.1  jakllsch #define IFLASH_TOKEN_READINGFILE    0xB1                // Reading File
     75  1.1  jakllsch #define IFLASH_TOKEN_INITVPP        0xB2                // Initializing Vpp
     76  1.1  jakllsch #define IFLASH_TOKEN_DISABLEVPP     0x10                // Disable Vpp
     77  1.1  jakllsch #define IFLASH_TOKEN_FLASHUNLOCK    0xB3                // Unlocking FLASH Devices
     78  1.1  jakllsch #define IFLASH_TOKEN_FLASHERASE     0xB4                // Erasing FLASH Devices
     79  1.1  jakllsch #define IFLASH_TOKEN_FLASHPROGRAM   0xB5                // Programming FLASH
     80  1.1  jakllsch #define IFLASH_TOKEN_FLASHVERIFY    0xB6                // Verifying FLASH
     81  1.1  jakllsch #define IFLASH_TOKEN_UPDATESUCCES   0xB7                // FLASH Updage Success!
     82  1.1  jakllsch 
     83  1.1  jakllsch #define IFLASH_TOKEN_PROGRESS_READINGFILE   0x11        // % Reading File
     84  1.1  jakllsch #define IFLASH_TOKEN_PROGRESS_FLASHUNLOCK   0x13        // % Unlocking FLASH Devices
     85  1.1  jakllsch #define IFLASH_TOKEN_PROGRESS_FLASHERASE    0x14        // % Erasing FLASH Devices
     86  1.1  jakllsch #define IFLASH_TOKEN_PROGRESS_FLASHPROGRAM  0x15        // % Programming FLASH
     87  1.1  jakllsch #define IFLASH_TOKEN_PROGRESS_FLASHVERIFY   0x16        // % Verifying FLASH
     88  1.1  jakllsch 
     89  1.1  jakllsch #define IFLASH_TOKEN_READINGFILE_ER 0xB8                // File Read Error
     90  1.1  jakllsch #define IFLASH_TOKEN_INITVPP_ER     0xB9                // Initialization of IFB Error
     91  1.1  jakllsch #define IFLASH_TOKEN_FLASHUNLOCK_ER 0xBA                // FLASH Unlock Error
     92  1.1  jakllsch #define IFLASH_TOKEN_FLASHERASE_ER  0xBB                // FLASH Erase Error
     93  1.1  jakllsch #define IFLASH_TOKEN_FLASHVERIFY_ER 0xBC                // FLASH Verify Error
     94  1.1  jakllsch #define IFLASH_TOKEN_FLASHPROG_ER   0xBD                // FLASH Program Error
     95  1.1  jakllsch 
     96  1.1  jakllsch #define IFLASH_TABLE_END            0x00
     97  1.1  jakllsch 
     98  1.1  jakllsch //
     99  1.1  jakllsch // If this number changes one of the existing API's has changes
    100  1.1  jakllsch //
    101  1.1  jakllsch #define IFLASH_PI_MAJOR_VERSION 0x01
    102  1.1  jakllsch 
    103  1.1  jakllsch //
    104  1.1  jakllsch // This number changes when new APIs or data variables get added to the end
    105  1.1  jakllsch //  of the data structure
    106  1.1  jakllsch //
    107  1.1  jakllsch #define IFLASH_PI_MINOR_VERSION 0x01
    108  1.1  jakllsch 
    109  1.1  jakllsch typedef struct _IFLASH64_PROTOCOL_INTERFACE {
    110  1.1  jakllsch     UINT32                  MajorVersion;
    111  1.1  jakllsch     UINT32                  MinorVersion;
    112  1.1  jakllsch     UNLOCK_FLASH_API        UnlockFlash;
    113  1.1  jakllsch     LOCK_FLASH_API          LockFlash;
    114  1.1  jakllsch     UTILITY_PROGRESS_API    Progress;
    115  1.1  jakllsch 
    116  1.1  jakllsch     //
    117  1.1  jakllsch     // Future expansion goes here
    118  1.1  jakllsch     //
    119  1.1  jakllsch 
    120  1.1  jakllsch } IFLASH64_PROTOCOL_INTERFACE;
    121  1.1  jakllsch 
    122  1.1  jakllsch 
    123  1.1  jakllsch #endif
    124