1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
|
/** @file
This file declares the internal Framework Boot Script format used by
the PI implementation of Script Saver and Executor.
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _BOOT_SCRIPT_INTERNAL_FORMAT_H_
#define _BOOT_SCRIPT_INTERNAL_FORMAT_H_
#pragma pack(1)
//
// Boot Script Opcode Header Structure Definitions
//
typedef struct {
UINT16 OpCode;
UINT8 Length;
} EFI_BOOT_SCRIPT_GENERIC_HEADER;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT16 Version;
UINT32 TableLength;
UINT16 Reserved[2];
} EFI_BOOT_SCRIPT_TABLE_HEADER;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 Width;
} EFI_BOOT_SCRIPT_COMMON_HEADER;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 Width;
UINT32 Count;
UINT64 Address;
} EFI_BOOT_SCRIPT_IO_WRITE;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 Width;
UINT64 Address;
} EFI_BOOT_SCRIPT_IO_READ_WRITE;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 Width;
UINT32 Count;
UINT64 Address;
} EFI_BOOT_SCRIPT_MEM_WRITE;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 Width;
UINT64 Address;
} EFI_BOOT_SCRIPT_MEM_READ_WRITE;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 Width;
UINT32 Count;
UINT64 Address;
} EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 Width;
UINT32 Count;
UINT64 Address;
UINT16 Segment;
} EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 Width;
UINT64 Address;
} EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 Width;
UINT64 Address;
UINT16 Segment;
} EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT64 SmBusAddress;
UINT32 Operation;
UINT32 DataSize;
} EFI_BOOT_SCRIPT_SMBUS_EXECUTE;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT64 Duration;
} EFI_BOOT_SCRIPT_STALL;
typedef struct {
UINT16 OpCode;
UINT8 Length;
EFI_PHYSICAL_ADDRESS EntryPoint;
} EFI_BOOT_SCRIPT_DISPATCH;
typedef struct {
UINT16 OpCode;
UINT8 Length;
EFI_PHYSICAL_ADDRESS EntryPoint;
EFI_PHYSICAL_ADDRESS Context;
} EFI_BOOT_SCRIPT_DISPATCH_2;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 Width;
UINT64 Address;
UINT64 Duration;
UINT64 LoopTimes;
} EFI_BOOT_SCRIPT_MEM_POLL;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 InformationLength;
// UINT8 InformationData[InformationLength];
} EFI_BOOT_SCRIPT_INFORMATION;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 Width;
UINT64 Address;
UINT64 Delay;
} EFI_BOOT_SCRIPT_IO_POLL;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 Width;
UINT64 Address;
UINT64 Delay;
} EFI_BOOT_SCRIPT_PCI_CONFIG_POLL;
typedef struct {
UINT16 OpCode;
UINT8 Length;
UINT32 Width;
UINT64 Address;
UINT16 Segment;
UINT64 Delay;
} EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL;
typedef struct {
UINT16 OpCode;
UINT8 Length;
} EFI_BOOT_SCRIPT_TERMINATE;
#pragma pack()
#define BOOT_SCRIPT_NODE_MAX_LENGTH 1024
#define BOOT_SCRIPT_TABLE_VERSION 0x0001
#endif
|